var lines = src.split(/\n/);
$.each(lines, function () {
- var m = this.match(/^(\S+)\s+(\S+)$/);
+ var m = this.match(/^(\S+)\s+(\S+)$/);
- map[ m[1] ] = m[2];
- });
+ if (m) {
+ map[ m[1] ] = m[2];
+ }
+ });
return map;
};
};
var appendConfigPanel = function ($area) {
- var conf = Rakka.getSystemConfig();
$area.append($.H1({}, "Configuration"));
var fldSiteName
- = $.INPUT({type: "text", value: conf.siteName});
+ = $.INPUT({type: "text"});
var fldBaseURI
- = $.INPUT({type: "text", value: conf.baseURI});
+ = $.INPUT({type: "text"});
var fldDefaultPage
- = $.INPUT({type: "text", value: conf.defaultPage});
+ = $.INPUT({type: "text"});
var fldStyleSheet
- = $.INPUT({type: "text", value: conf.styleSheet});
+ = $.INPUT({type: "text"});
var fldLanguages
- = $.TEXTAREA({value: encoder_of.languages(conf.languages)});
+ = $.TEXTAREA({});
var chkGlobalLock
- = $.INPUT({type: "checkbox", checked: conf.globalLock});
+ = $.INPUT({type: "checkbox"});
var btnSave
- = $.INPUT({type: "button", value: "Save changes", disabled: "disabled"});
+ = $.INPUT({type: "button", value: "Save changes"});
+
+ var btnRevert
+ = $.INPUT({type: "button", value: "Revert changes"});
+
+ var makeClean = function () {
+ $(btnSave).attr({disabled: "disabled"});
+ $(btnRevert).attr({disabled: "disabled"});
+ };
+
+ var updateConfig = function () {
+ var conf = Rakka.getSystemConfig();
+
+ fldSiteName.value = conf.siteName;
+ fldBaseURI.value = conf.baseURI;
+ fldDefaultPage.value = conf.defaultPage;
+ fldStyleSheet.value = conf.styleSheet;
+ fldLanguages.value = encoder_of.languages(conf.languages);
+ chkGlobalLock.checked = conf.globalLock;
+
+ makeClean();
+ };
+ updateConfig();
+
+ var validate = function () {
+ var isValid = (function () {
+ if (!isValidBaseURI(fldBaseURI.value)) {
+ return false;
+ }
+
+ if (fldDefaultPage.value.match(Rakka.rePageName) == null) {
+ return false;
+ }
+
+ if (fldStyleSheet.value.match(Rakka.rePageName) == null) {
+ return false;
+ }
+
+ if (!isValidMap(fldLanguages.value)) {
+ return false;
+ }
+
+ return true;
+ })();
+
+ $(btnSave).attr({disabled: (isValid ? "" : "disabled")});
+ };
+
+ var makeDirty = function () {
+ $(btnRevert).attr({disabled: ""});
+ validate();
+ };
$(btnSave).click(function () {
var NS = "http://cielonegro.org/schema/Rakka/Config/1.0";
success : function () {
cachedConf = null;
Rakka.hideWaitingMessage();
- Rakka.restoreScreen();
+ makeClean();
},
error : function (req) {
Rakka.hideWaitingMessage();
+ // FIXME: better error handling
var $area = Rakka.switchScreen();
$area.text("Error: " + req.status + " " + req.statusText);
}
});
});
- var btnRevert
- = $.INPUT({type: "button", value: "Revert changes", disabled: "disabled"});
-
$(btnRevert).click(function () {
if (window.confirm("Do you really want to discard changes?")) {
- // FIXME: implement this
+ updateConfig();
}
});
$.TH({}),
$.TD({}, btnSave, btnRevert))));
- var validate = function () {
- var isValid = (function () {
- if (!isValidBaseURI(fldBaseURI.value)) {
- return false;
- }
-
- if (fldDefaultPage.value.match(Rakka.rePageName) == null) {
- return false;
- }
-
- if (fldStyleSheet.value.match(Rakka.rePageName) == null) {
- return false;
- }
-
- if (!isValidMap(fldLanguages.value)) {
- return false;
- }
-
- return true;
- })();
-
- $(btnSave).attr({disabled: (isValid ? "" : "disabled")});
- };
-
- var isDirty = null;
- var makeDirty = function () {
- if (!isDirty) {
- $(btnRevert).attr({disabled: ""});
- isDirty = true;
- }
- validate();
- };
-
$(fldSiteName)
.add(fldBaseURI)
.add(fldDefaultPage)
var tbody = $.TBODY();
var usersPanel
- = $.TABLE({className: "pageEditor"},
+ = $.TABLE({className: "pageEditor vertical"},
$.THEAD({},
$.TR({},
$.TH({}, "User ID"),