+ Rakka.showConfigPanel = function () {
+ var conf = Rakka.getSystemConfig();
+ var $area = Rakka.switchScreen();
+
+ $area.append($.H1({}, "Configuration"));
+
+ var fldSiteName
+ = $.INPUT({type: "text", value: conf.siteName});
+
+ var fldBaseURI
+ = $.INPUT({type: "text", value: conf.baseURI});
+
+ var fldDefaultPage
+ = $.INPUT({type: "text", value: conf.defaultPage});
+
+ var fldStyleSheet
+ = $.INPUT({type: "text", value: conf.styleSheet});
+
+ var fldLanguages
+ = $.TEXTAREA({value: encoder_of.languages(conf.languages)});
+
+ var chkGlobalLock
+ = $.INPUT({type: "checkbox", checked: conf.globalLock});
+
+ var btnSave
+ = $.INPUT({type: "button", value: "Save"});
+
+ var btnCancel
+ = $.INPUT({type: "button", value: "Cancel"});
+
+ var configPanel
+ = $.TABLE({className: "pageEditor"},
+ $.TBODY({},
+ $.TR({},
+ $.TH({}, "Site name"),
+ $.TD({}, fldSiteName)
+ ),
+ $.TR({},
+ $.TH({}, "Base URI"),
+ $.TD({}, fldBaseURI)
+ ),
+ $.TR({},
+ $.TH({}, "Default page"),
+ $.TD({}, fldDefaultPage)
+ ),
+ $.TR({},
+ $.TH({}, "Style sheet"),
+ $.TD({}, fldStyleSheet)
+ ),
+ $.TR({},
+ $.TH({}, "Languages"),
+ $.TD({}, fldLanguages)
+ ),
+ $.TR({},
+ $.TH({}, "Global lock"),
+ $.TD({},
+ $.LABEL({},
+ chkGlobalLock,
+ "Disallow guest users to edit pages."))
+ ),
+ $.TR({},
+ $.TH({}),
+ $.TD({}, btnSave, btnCancel)
+ )
+ )
+ );
+
+ var validate = function () {
+ var isValid = (function () {
+ if (!isValidBaseURI(fldBaseURI.value)) {
+ return false;
+ }
+
+ return true;
+ })();
+
+ $(btnSave).attr({disabled: (isValid ? "" : "disabled")});
+ };
+
+ var isDirty = null;
+ var makeDirty = function () {
+ isDirty = true;
+ };
+
+ $(fldSiteName)
+ .add(fldBaseURI)
+ .add(fldDefaultPage)
+ .add(fldStyleSheet)
+ .add(fldLanguages)
+ .change(validate)
+ .keyup(validate)
+ .change(makeDirty);
+
+ $area.append(configPanel);
+ };
+
+ $(document).ready(function () {
+ $("input.configButton")
+ .click(function () {
+ Rakka.showConfigPanel();
+ });
+ });
+