(function () {
-
+
Rakka.showLoginPanel = function () {
var $area = Rakka.switchScreen();
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"});
);
$area.append(loginPanel);
+ $(fldUserID).focus();
};
var login = function (userID, password) {
var logout = function () {
document.cookie = "rakkaLoginInfo=;max-age=0";
updateLoginState();
+ Rakka.restoreScreen();
};
var currentUserID;
var updateLoginState = function () {
currentUserID = null;
currentPassword = null;
-
+
var cookies = document.cookie.split(/;\s*/);
$.each(cookies, function () {
var m = this.match(/^([^=]*)=(.*)$/);
.click(function () {
logout();
});
+
+ $("input.newButton").attr({disabled: ""});
+
+ $("input.editButton").attr({
+ disabled: (Rakka.isSpecialPage ? "disabled" : "")
+ });
+
+ $("input.configButton").attr({
+ disabled: ""
+ });
}
else {
/* ログインしてゐない */
.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();
});