summaryrefslogtreecommitdiffstats
path: root/extensions/BrowserID/template/en/default/hook/account/auth/login-small-additional_methods.html.tmpl
blob: b1c1864932aff972e730b5629d22b448ebd32873 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
[% IF Param('user_info_class').split(',').contains('BrowserID')
      && Param('browserid_includejs_url') %]
<script src="[% Param('browserid_includejs_url') %]" type="text/javascript"></script>

[%# Note this code is a tiny bit different from the other copy; the name of
  # the variable containing the login url is 'login_target' rather than
  # 'target' #%]

<script type="text/javascript">
function createHidden(name, value, form) {
    var field = document.createElement('input');
    field.type = 'hidden';
    field.name = name;
    field.value = value;;
    form.appendChild(field);
}

function browserid_sign_in() {
    navigator.id.getVerifiedEmail(function(assertion) {
        if (assertion) {
            // This code will be invoked once the user has successfully
            // selected an email address they control to sign in with.
            var form = document.createElement('form');
            form.action = '[% login_target FILTER js %]';
            form.method = 'POST';
            form.style.display = 'none';

            createHidden('token', '[% issue_hash_token(['login']) FILTER js %]', form);
            createHidden('Bugzilla_remember', 'on', form);
            createHidden('browserid_assertion', assertion, form);

            [% FOREACH field = cgi.param() %]
              [% NEXT IF field.search("^(Bugzilla_(login|password|restrictlogin)|token|browserid_assertion)$") %]
              [% FOREACH mvalue = cgi.param(field).slice(0) %]
                createHidden('[% field FILTER js %]',
                             '[% mvalue FILTER html_linebreak FILTER js %]',
                             form);
              [% END %]
            [% END %]

            document.body.appendChild(form);
            form.submit();
            return true;
        }
    });
}
YAHOO.util.Event.addListener('login_link[% qs_suffix FILTER js %]','click', function () {
    var login_link = YAHOO.util.Dom.get('browserid_mini_login[% qs_suffix FILTER js %]');
    YAHOO.util.Dom.removeClass(login_link, 'bz_default_hidden');
});
YAHOO.util.Event.addListener('hide_mini_login[% qs_suffix FILTER js %]','click', function () {
    var login_link = YAHOO.util.Dom.get('browserid_mini_login[% qs_suffix FILTER js %]');
    YAHOO.util.Dom.addClass(login_link, 'bz_default_hidden');
});
</script>

<span id="browserid_mini_login[% qs_suffix FILTER html %]" class="bz_default_hidden">
  <img src="extensions/BrowserID/web/sign_in_orange.png" onclick="browserid_sign_in()" style="margin-bottom: -8px"> or
</span>
[% END %]