X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=js%2Flogin.js;h=3223bcf2b9466a65307d1b0b007acee1e26418e5;hb=e3e30c2bfa341cef11754e3f4d90b03844ef74d1;hp=174376bc590a3cf8a44a765dbcfd017d449bae48;hpb=443af4d3304139bb2187a0c726327b9c05829810;p=Rakka.git diff --git a/js/login.js b/js/login.js index 174376b..3223bcf 100644 --- a/js/login.js +++ b/js/login.js @@ -1,5 +1,5 @@ (function () { - + Rakka.showLoginPanel = function () { var $area = Rakka.switchScreen(); @@ -14,9 +14,26 @@ var btnLogin = $.INPUT({type: "button", value: "Login"}); - $(btnLogin).click(function () { - login(fldUserID.value, fldPassword.value); - }); + $(btnLogin) + .click(function () { + login(fldUserID.value, fldPassword.value); + }); + + var fldHandler = function (ev) { + if (ev.keyCode == 27) { // ESC + Rakka.restoreScreen(); + return false; + } + else if (ev.keyCode == 13) { // CR + login(fldUserID.value, fldPassword.value); + return false; + } + else { + return true; + } + }; + $(fldUserID).keypress(fldHandler); + $(fldPassword).keypress(fldHandler); var btnCancel = $.INPUT({type: "button", value: "Cancel"}); @@ -44,6 +61,7 @@ ); $area.append(loginPanel); + $(fldUserID).focus(); }; var login = function (userID, password) { @@ -77,6 +95,7 @@ var logout = function () { document.cookie = "rakkaLoginInfo=;max-age=0"; updateLoginState(); + Rakka.restoreScreen(); }; var currentUserID; @@ -85,7 +104,7 @@ var updateLoginState = function () { currentUserID = null; currentPassword = null; - + var cookies = document.cookie.split(/;\s*/); $.each(cookies, function () { var m = this.match(/^([^=]*)=(.*)$/); @@ -111,6 +130,16 @@ .click(function () { logout(); }); + + $("input.newButton").attr({disabled: ""}); + + $("input.editButton").attr({ + disabled: (Rakka.isSpecialPage ? "disabled" : "") + }); + + $("input.configButton").attr({ + disabled: "" + }); } else { /* ログインしてゐない */ @@ -118,17 +147,33 @@ .val("Login") .unbind("click") .click(Rakka.showLoginPanel); + + $("input.newButton").attr({ + disabled: (Rakka.isGlobalLocked ? "disabled" : "") + }); + + $("input.editButton").attr({ + disabled: (Rakka.isLocked || Rakka.isGlobalLocked || Rakka.isSpecialPage ? "disabled" : "") + }); + + $("input.configButton").attr({ + disabled: "disabled" + }); } }; Rakka.setAuthorization = function (req) { - if (currentUserID != null) { + if (Rakka.isLoggedIn()) { req.setRequestHeader( "Authorization", "Basic " + Rakka.encodeBase64(currentUserID + ":" + currentPassword)); } }; + Rakka.isLoggedIn = function () { + return currentUserID != null; + }; + $(document).ready(function () { updateLoginState(); });