X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Rakka.git;a=blobdiff_plain;f=js%2FeditPage.js;h=705f47adbb1f5351a929defeab96f6be25b74af6;hp=e390a1949ec67a7cf8c7e2b8f8b698887409f82e;hb=2ff55c9709fde69968ef97f61b8f395e58b3ec8c;hpb=df6079ca32f808d76c595e7953bff7a1dd46b10b diff --git a/js/editPage.js b/js/editPage.js index e390a19..705f47a 100644 --- a/js/editPage.js +++ b/js/editPage.js @@ -5,6 +5,8 @@ var isDirty = null; + var rePageName = /^[^ a-z.|#\[\]][^ .|#\[\]]*$/; + Rakka.editPage = function (pageName) { var $area = Rakka.switchScreen(); @@ -241,8 +243,10 @@ fldPageName.value, fldRakkaSource.value); } else if (btnTypeBinary.checked) { - previewBinaryPage( - fldPageName.value, fldUploadFile.value); + if (fldUploadFile.value != "") { + previewBinaryPage( + fldPageName.value, fldUploadFile.value); + } } }); @@ -275,15 +279,17 @@ fldCSSSource.value); } else if (btnTypeBinary.checked) { - submitBinaryPage( - pageName, - oldRevision, - fldPageName.value, - chkIsLocked.checked, - $(selPageLang).val(), - otherLangs, - fldSummary.value, - fldUploadFile.value); + if (fldUploadFile.value != "") { + submitBinaryPage( + pageName, + oldRevision, + fldPageName.value, + chkIsLocked.checked, + $(selPageLang).val(), + otherLangs, + fldSummary.value, + fldUploadFile.value); + } } else if (btnTypeRedirect.checked) { submitRedirection( @@ -408,6 +414,48 @@ ) ); + var validate = function () { + var isValid = (function () { + if (fldPageName.value.match(rePageName) == null) { + return false; + } + + if (btnTypeRedirect.checked) { + if (fldRedirect.value.match(rePageName) == null) { + return false; + } + } + else { + for (var tag in otherLangs) { + if (otherLangs[tag].match(rePageName) == null) { + return false; + } + } + + if (btnTypeBinary.checked) { + if (fldUploadFile.value == "") { + return false; + } + } + } + + return true; + })(); + + $(btnSubmit).attr({disabled: (isValid ? "" : "disabled")}); + }; + $(fldPageName) + .add(btnTypeRakka) + .add(btnTypeCSS) + .add(btnTypeBinary) + .add(btnTypeRedirect) + .add($(trOtherLangs).find("input")) + .add(fldUploadFile) + .add(fldRedirect) + .change(validate) + .keyup(validate); + validate(); + if (oldRevision == null || oldRevision == 0) { // 削除不可 $(btnDelete).hide();