summaryrefslogtreecommitdiff
path: root/js/codeq/aaiLogin.js
blob: 2e4913889b7ef7c4773698018df62365fc6efcf5 (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
61
62
63
64
/**
 * Created by robert on 10/14/15.
 */
(function(){

    var jqNavBarRight = $('.nav.navbar-nav.navbar-right'),
        jqNavigationHomeBtn = $('#navigation-home'),
        jqCancelAaiLogin = $("#cancel_aai_login"),
        jqDisabledOverlay = $('#disabled'),
        jqAaiIframe = $('#aai_iframe'),
        baseSamlUrl = 'https://codeq.si/Shibboleth.sso/Login?sid=',
        samlLoginUrl = '';

    codeq.globalStateMachine.register('aailogin',{
        'enter': function(){
            jqDisabledOverlay.css('display', '');

            jqNavigationHomeBtn.off('click');//remove the click listener of this element here
            jqNavBarRight.css('display','none');//hide settings etc.

            //enable the back button
            jqCancelAaiLogin.on('click',function(){
                codeq.globalStateMachine.transition('login');
            });

            $('#signed-in-title').html('');
            $('#screen_aai_login').css('display','');

            codeq.comms.connect()
                .then(function(){
                    samlLoginUrl = baseSamlUrl + codeq.comms.getSid();
                    jqAaiIframe.attr('src', samlLoginUrl);
                    return codeq.comms.samlLogin();
                })
                .then(codeq.loginCallbackFunction)
                .fail(function(reason){
                    codeq.log.error('SAML login failed: ' + reason);
                    alert('SAML login failed: ' + reason);
                    codeq.globalStateMachine.transition('login');
                })
                .done();

            jqDisabledOverlay.css('display','none');
        },
        'exit' : function(){
            //disable site specific listeners
            codeq.comms.off('saml_login');
            jqAaiIframe.attr('src','');//lets remove the url
            jqCancelAaiLogin.off('click');
            samlLoginUrl = '';

            $("#screen_aai_login").css('display', 'none');

            //re-enable the click listener of the logo
            jqNavigationHomeBtn.on('click', function(e){
                codeq.globalStateMachine.transition('language');
                e.preventDefault();
            });
            //show the menu buttons
            jqNavBarRight.css('display','');
        }
    });

})();