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({
119 disabled: (Rakka.isSpecialPage ? "disabled" : "")
124 $("input.loginButton")
127 .click(Rakka.showLoginPanel);
129 $("input.newButton").attr({
130 disabled: (Rakka.isGlobalLocked ? "disabled" : "")
133 $("input.editButton").attr({
134 disabled: (Rakka.isLocked || Rakka.isGlobalLocked || Rakka.isSpecialPage ? "disabled" : "")
139 Rakka.setAuthorization = function (req) {
140 if (Rakka.isLoggedIn()) {
141 req.setRequestHeader(
143 "Basic " + Rakka.encodeBase64(currentUserID + ":" + currentPassword));
147 Rakka.isLoggedIn = function () {
148 return currentUserID != null;
151 $(document).ready(function () {