/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to codeigniter/js/bannermenu.js

  • Committer: Gustav Hatvigsson
  • Date: 2013-05-28 15:21:12 UTC
  • mfrom: (83.2.23 pvp)
  • Revision ID: gustav.hartvigsson@gmail.com-20130528152112-pn1d6h8o6udcia0b
merged  Bigestans:s changes.


* Moved login JS to bannermenu.js and removed login.js
* Removed deprecated login CSS and JS
* Fixed login functionality -- now shows validation errors directly in the login popup, works through ajax
* Added a nifty little icon to represent the disabled login hint button
* Removed temporary functions from cms controller: tempLogin(), tempLogout(), test()
* Cleaned up ajax.php and cms.php

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
        /* Makes the bannermenu scrollable horizontally but not vertically */
7
7
        $('#bannerBody').scrollToFixed();
8
8
 
 
9
        $("#dropdownUserMenu").click(function(e) {
 
10
                e.stopPropagation();
 
11
        });
 
12
 
9
13
        /* Sets the click-function for the usermenubutton */
10
14
        $('#bannerUserMenuButton').click(function(e){
11
 
                
 
15
                e.stopPropagation();
12
16
                $.get('ajax/isLoggedIn', function(response) {
13
17
                        if(response == 'yes') {
14
18
                                // If the user is logged in and the usermenu-div is hidden it's shown.
15
 
                                if($('#dropdownUserMenu').is(':hidden')) {
16
19
                                        // TODO: Secure that the courseblock-div is hidden when the usermenu-div is oppened.
17
20
                                        /*
18
21
                                        if($('#dropdownMenuCourseBlock').is(':visible')) {
20
23
                                        }
21
24
                                        $('#dropdownUserMenu').load('bannermenu.php #dropdownUserMenu');
22
25
                                        */
23
 
                                        $('#dropdownUserMenu').show();
24
 
                                }
 
26
                                        //$("#dropdownMenuCourseBlock").hide();
25
27
                                // If the user is logged in and the usermenu-div is shown it's hidden.
26
 
                                else {
27
 
                                        $('#dropdownUserMenu').hide();
28
 
                                }
 
28
                                $('#dropdownMenuCourseBlock').hide();
 
29
                                $('#dropdownUserMenu').toggle();
29
30
                        }
 
31
 
30
32
                        else {
31
33
                                // If the user is not logged in and the popup-div is hidden it's filled and shown.
32
34
                                if($('#popup').is(':hidden')) {
33
35
                                        $('#popup').load('ajax/popup/login', function(){
34
 
                                                $('#popup').show();
 
36
                                                $('#popup').show().click(function(e){e.stopPropagation();});
35
37
                                                $("#popup .hint").click(loginHint);
 
38
                                                $("#popup #username").focus().keydown(function() {
 
39
                                                        $("#popup .hint").addClass("available");
 
40
                                                });
 
41
                                                $("#popup form").submit(loginSubmit);
36
42
                                        });
37
43
                                }
38
44
                                // If the user is not logged in and the popup-div shows it's hidden.
58
64
                }
59
65
 
60
66
        });
61
 
});
 
 
b'\\ No newline at end of file'
 
67
 
 
68
        $("#dropdownMenuLogout").click(function(e) {
 
69
                e.stopPropagation();
 
70
                window.location.href = "./start/logout";
 
71
        });
 
72
 
 
73
        $("html").click(function(e) {
 
74
                e.stopPropagation();
 
75
                $("#dropdownUserMenu").hide();
 
76
                $("#popup").hide();
 
77
        });
 
78
});
 
79
 
 
80
function loginSubmit(e) {
 
81
        e.stopPropagation();
 
82
        e.preventDefault();
 
83
 
 
84
        var un = $(this).find("#username").val();
 
85
        var pw = $(this).find("#password").val();
 
86
 
 
87
        $.post(
 
88
                "start/login",
 
89
                { username: un, password: pw},
 
90
                function(data) {
 
91
                        if(data == "true") {
 
92
                                window.location.href ="./cms";
 
93
                        } else {
 
94
                                if($("#popup .popup").hasClass("error")) {
 
95
                                        $("#popup .popup form .errorContainer").html('Error! '+data+' Please try again.');
 
96
                                } else {
 
97
                                        $("#popup .popup").addClass("error");
 
98
                                        $("#popup .popup form").prepend('<div class="errorContainer">Error! '+data+' Please try again. </div>');
 
99
                                }
 
100
                        }
 
101
                }
 
102
        );
 
103
}
 
104
 
 
105
function loginHint(e) {
 
106
        e.preventDefault();
 
107
        e.stopPropagation();
 
108
 
 
109
        // If username field is empty, inform user and exit function
 
110
        var uname = $("#login #username").val();
 
111
        if(uname == "") {
 
112
                return;
 
113
        }
 
114
 
 
115
        // POST username to the function /ajax/pwdhint which returns a json object with password hint
 
116
        $.post(
 
117
                // Replace with final production URL!!!
 
118
 
 
119
                "ajax/pwdhint",
 
120
                // Data sent through POST
 
121
                { username: uname },
 
122
 
 
123
                // Callback function
 
124
                function(data) {
 
125
                        var result = $.parseJSON(data)["hint"];
 
126
 
 
127
                        // result["hint"] is either a boolean false or a string containing the hint
 
128
                        if(result === false) {
 
129
                                $("#hinttext").html('<p class="error">No password hint available</p>');
 
130
                        } else {
 
131
                                $("#hinttext").html('<p>Hint: ' + result + '</p>');
 
132
                        }
 
133
 
 
134
                        $("#login").toggleClass("expanded");
 
135
                        $("#hinttext").toggle();
 
136
 
 
137
                }
 
138
        ); // End $.post {}
 
139
 
 
140
} // End loginHint()
 
 
b'\\ No newline at end of file'