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"});
19 login(fldUserID.value, fldPassword.value);
22 var fldHandler = function (ev) {
23 if (ev.keyCode == 27) { // ESC
24 Rakka.restoreScreen();
27 else if (ev.keyCode == 13) { // CR
28 login(fldUserID.value, fldPassword.value);
35 $(fldUserID).keypress(fldHandler);
36 $(fldPassword).keypress(fldHandler);
39 = $.INPUT({type: "button", value: "Cancel"});
41 $(btnCancel).click(function () {
42 Rakka.restoreScreen();
46 = $.TABLE({className: "loginPanel"},
58 $.TD({}, btnLogin, btnCancel)
63 $area.append(loginPanel);
67 var login = function (userID, password) {
70 url : Rakka.baseURI + "checkAuth",
71 beforeSend: function (req) {
74 "Basic " + Rakka.encodeBase64(userID + ":" + password));
76 success : function () {
79 + Rakka.encodeBase64(userID + ":" + password)
80 + ";max-age=31536000";
82 Rakka.restoreScreen();
84 error : function (req) {
85 if (req.status == 403) {
86 alert("Login failed: wrong ID or password");
89 alert("Error: " + req.status + " " + req.statusText);
95 var logout = function () {
96 document.cookie = "rakkaLoginInfo=;max-age=0";
98 Rakka.restoreScreen();
104 var updateLoginState = function () {
105 currentUserID = null;
106 currentPassword = null;
108 var cookies = document.cookie.split(/;\s*/);
109 $.each(cookies, function () {
110 var m = this.match(/^([^=]*)=(.*)$/);
115 if (key == "rakkaLoginInfo") {
116 m = Rakka.decodeBase64(value).match(/^([^:]*):(.*)$/);
118 currentUserID = m[1];
119 currentPassword = m[2];
125 if (currentUserID != null) {
127 $("input.loginButton")
128 .val("Logout [" + currentUserID + "]")
134 $("input.newButton").attr({disabled: ""});
136 $("input.editButton").attr({
137 disabled: (Rakka.isSpecialPage ? "disabled" : "")
140 $("input.configButton").attr({
146 $("input.loginButton")
149 .click(Rakka.showLoginPanel);
151 $("input.newButton").attr({
152 disabled: (Rakka.isGlobalLocked ? "disabled" : "")
155 $("input.editButton").attr({
156 disabled: (Rakka.isLocked || Rakka.isGlobalLocked || Rakka.isSpecialPage ? "disabled" : "")
159 $("input.configButton").attr({
165 Rakka.setAuthorization = function (req) {
166 if (Rakka.isLoggedIn()) {
167 req.setRequestHeader(
169 "Basic " + Rakka.encodeBase64(currentUserID + ":" + currentPassword));
173 Rakka.isLoggedIn = function () {
174 return currentUserID != null;
177 $(document).ready(function () {