3 Rakka.showLoginPanel = function () {
4 var $area = Rakka.switchScreen();
6 $area.append($.H1({}, "Login"));
9 = $.INPUT({type: "text"});
12 = $.INPUT({type: "password"});
15 = $.INPUT({type: "button", value: "Login"});
17 $(btnLogin).click(function () {
18 login(fldUserID.value, fldPassword.value);
22 = $.INPUT({type: "button", value: "Cancel"});
24 $(btnCancel).click(function () {
25 Rakka.restoreScreen();
29 = $.TABLE({className: "loginPanel"},
41 $.TD({}, btnLogin, btnCancel)
46 $area.append(loginPanel);
49 var login = function (userID, password) {
52 url : Rakka.baseURI + "checkAuth",
53 beforeSend: function (req) {
56 "Basic " + Rakka.encodeBase64(userID + ":" + password));
58 success : function () {
61 + Rakka.encodeBase64(userID + ":" + password)
62 + ";max-age=31536000";
64 Rakka.restoreScreen();
66 error : function (req) {
67 if (req.status == 403) {
68 alert("Login failed: wrong ID or password");
71 alert("Error: " + req.status + " " + req.statusText);
77 var logout = function () {
78 document.cookie = "rakkaLoginInfo=;max-age=0";
80 Rakka.restoreScreen();
86 var updateLoginState = function () {
88 currentPassword = null;
90 var cookies = document.cookie.split(/;\s*/);
91 $.each(cookies, function () {
92 var m = this.match(/^([^=]*)=(.*)$/);
97 if (key == "rakkaLoginInfo") {
98 m = Rakka.decodeBase64(value).match(/^([^:]*):(.*)$/);
100 currentUserID = m[1];
101 currentPassword = m[2];
107 if (currentUserID != null) {
109 $("input.loginButton")
110 .val("Logout [" + currentUserID + "]")
116 $("input.newButton").attr({disabled: ""});
118 $("input.editButton").attr({disabled: ""});
122 $("input.loginButton")
125 .click(Rakka.showLoginPanel);
127 $("input.newButton").attr({
128 disabled: (Rakka.isGlobalLocked ? "disabled" : "")
131 $("input.editButton").attr({
132 disabled: (Rakka.isLocked || Rakka.isGlobalLocked ? "disabled" : "")
137 Rakka.setAuthorization = function (req) {
138 if (Rakka.isLoggedIn()) {
139 req.setRequestHeader(
141 "Basic " + Rakka.encodeBase64(currentUserID + ":" + currentPassword));
145 Rakka.isLoggedIn = function () {
146 return currentUserID != null;
149 $(document).ready(function () {