X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Rakka.git;a=blobdiff_plain;f=js%2FeditPage.js;h=f0d3d507021ce012ea140ecd1ec256834726b516;hp=d50e5b40c6003c32d2029285366c2e72dd23886a;hb=0447be1b59496ca4266226ed52d264009cf41899;hpb=53e2ccc8c3202b1b3992f0d25c2c07bae0b39638 diff --git a/js/editPage.js b/js/editPage.js index d50e5b4..f0d3d50 100644 --- a/js/editPage.js +++ b/js/editPage.js @@ -25,19 +25,20 @@ : $page.attr("redirect") != null ? "redirect" : "unknown" ; + var isLocked = $page.attr("isLocked") == "yes"; var source = $page.attr("redirect") != null ? $page.attr("redirect") : $page.find("textData").text() ; var summary = $page.find("summary").text(); - displayPageEditor(pageName, oldRevision, defaultType, source, summary); + displayPageEditor(pageName, oldRevision, defaultType, isLocked, source, summary); }, error : function (req) { Rakka.hideWaitingMessage(); if (req.status == 404) { - displayPageEditor(pageName, null, "rakka", null, ""); + displayPageEditor(pageName, null, "rakka", false, null, ""); } else { $area.text("Error: " + req.status + " " + req.statusText); @@ -47,10 +48,10 @@ }; Rakka.newPage = function () { - displayPageEditor("", null, "rakka", null, ""); + displayPageEditor("", null, "rakka", false, null, ""); }; - var displayPageEditor = function (pageName, oldRevision, defaultType, source, summary) { + var displayPageEditor = function (pageName, oldRevision, defaultType, isLocked, source, summary) { var $area = Rakka.switchScreen(); $previewHeader = $( $.H1({}, "Preview") ); @@ -72,6 +73,20 @@ $(fldPageName).change(makeDirty); + var chkIsLocked + = $.INPUT({type : "checkbox", + checked: (isLocked ? "checked" : "")}); + + $(chkIsLocked).change(makeDirty); + + var trIsLocked + = $.TR({}, + $.TH({}, "Page lock"), + $.TD({}, + $.LABEL({}, + chkIsLocked, + "Disallow anonymous users to edit or delete this page"))); + var btnTypeRakka = $.INPUT({type : "radio", name : "type", @@ -161,6 +176,7 @@ pageName, oldRevision, fldPageName.value, + chkIsLocked.checked, "text/x-rakka", fldSummary.value, fldRakkaSource.value); @@ -170,6 +186,7 @@ pageName, oldRevision, fldPageName.value, + chkIsLocked.checked, "text/css", fldSummary.value, fldCSSSource.value); @@ -179,6 +196,7 @@ pageName, oldRevision, fldPageName.value, + chkIsLocked.checked, fldSummary.value, fldUploadFile.value); } @@ -187,6 +205,7 @@ pageName, oldRevision, fldPageName.value, + chkIsLocked.checked, fldRedirect.value); } }); @@ -253,6 +272,7 @@ $.TH({}, "Page name"), $.TD({}, fldPageName) ), + trIsLocked, $.TR({}, $.TH({}, "Page type"), $.TD({}, @@ -365,7 +385,7 @@ Rakka.scrollToTopLeft(); }; - var submitTextPage = function (pageName, oldRevision, givenPageName, mimeType, summary, text) { + var submitTextPage = function (pageName, oldRevision, givenPageName, isLocked, mimeType, summary, text) { var doc = document.implementation.createDocument( "http://cielonegro.org/schema/Rakka/Page/1.0", "page", null); @@ -385,6 +405,7 @@ page.appendChild(updateInfo); } + page.setAttribute("isLocked", isLocked ? "yes" : "no"); page.setAttribute("type", mimeType); if (summary != null) { @@ -424,7 +445,7 @@ }); }; - var submitBinaryPage = function (pageName, oldRevision, givenPageName, summary, path) { + var submitBinaryPage = function (pageName, oldRevision, givenPageName, isLocked, summary, path) { var doc = document.implementation.createDocument( "http://cielonegro.org/schema/Rakka/Page/1.0", "page", null); @@ -444,6 +465,7 @@ page.appendChild(updateInfo); } + page.setAttribute("isLocked", isLocked ? "yes" : "no"); page.setAttribute("type", ""); if (summary != null) { @@ -486,7 +508,7 @@ }); }; - var submitRedirection = function (pageName, oldRevision, givenPageName, destination) { + var submitRedirection = function (pageName, oldRevision, givenPageName, isLocked, destination) { var doc = document.implementation.createDocument( "http://cielonegro.org/schema/Rakka/Page/1.0", "page", null); @@ -506,6 +528,7 @@ page.appendChild(updateInfo); } + page.setAttribute("isLocked", isLocked ? "yes" : "no"); page.setAttribute("redirect", destination); Rakka.displayWaitingMessage("Submitting... please wait.");