]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - js/editPage.js
misc changes
[Rakka.git] / js / editPage.js
index e4483a1e3520104e5372401ae8f6f12a13dfd489..26b68ce7a7e4542c3411e2cbb5242255b4512580 100644 (file)
@@ -35,8 +35,9 @@
                         return obj;
                     })();
                     var source
-                        = $page.attr("redirect") != null ? $page.attr("redirect")
-                        : $page.find("textData").text()
+                        = $page.attr("redirect") != null  ? $page.attr("redirect")
+                        : $page.attr("isBinary") == "yes" ? Rakka.decodeBase64($page.find("binaryData").text())
+                        :                                   $page.find("textData").text()
                         ;
                     var summary     = $page.find("summary").text();
 
 
         $(fldJSSource).change(makeDirty);
 
+        var uploadFileBin
+            = (defaultType == "binary" && source != null ? source : "");
         var fldUploadFile
-            = $.INPUT({type: "text", disabled: true});
+            = $.TEXTAREA({className: "hexDump", disabled: true}, Rakka.hexDump(uploadFileBin, 128));
         var btnSelectFile
-            = $.INPUT({type: "button", value: "Select File"});
+            = $.INPUT({type: "button", value: "Select file..."});
 
         $(btnSelectFile).click(function () {
                                    var path = Rakka.selectFile("Select a binary file to upload", "open");
                                    if (path != null) {
-                                       fldUploadFile.value = path;
+                                       uploadFileBin = Rakka.loadLocalBinaryFile(path);
+                                       fldUploadFile.value = Rakka.hexDump(uploadFileBin, 128);
                                        makeDirty();
                                    }
                                });
                     fldPageName.value, fldRakkaSource.value);
             }
             else if (btnTypeBinary.checked) {
-                if (fldUploadFile.value != "") {
+                if (uploadFileBin != "") {
                     previewBinaryPage(
-                        fldPageName.value, fldUploadFile.value);
+                        fldPageName.value, uploadFileBin);
                 }
             }
         });
                         $(selPageLang).val(),
                         otherLangs,
                         fldSummary.value,
-                        fldUploadFile.value);
+                        uploadFileBin);
                 }
             }
             else if (btnTypeRedirect.checked) {
             }
         });
 
-        var btnCancel
-            = $.INPUT({type: "button", value: "Cancel editing"});
-
-        $(btnCancel).click(function () {
-            if (isDirty) {
-                if (window.confirm("Do you really want to discard changes?")) {
-                    Rakka.restoreScreen();
-                }
-            }
-            else {
-                Rakka.restoreScreen();
-            }
-        });
-
         var updateTRContent = function () {
             if (btnTypeRakka.checked) {
                 $(trPageLang).show();
                               trContent,
                               $.TR({},
                                    $.TH({}),
-                                   $.TD({}, btnPreview, btnSubmit, btnDelete, btnCancel)
+                                   $.TD({}, btnPreview, btnSubmit, btnDelete)
                                   )
                              )
                      );
                     }
 
                     if (btnTypeBinary.checked) {
-                        if (fldUploadFile.value == "") {
+                        if (uploadFileBin == "") {
                             return false;
                         }
                     }
             .add(fldRedirect)
             .change(validate)
             .keyup(validate);
+        $(btnSelectFile).click(validate);
         validate();
 
         if (oldRevision == null || oldRevision == 0) {
         });
     };
 
-    var previewBinaryPage = function (pageName, path) {
+    var previewBinaryPage = function (pageName, data) {
         Rakka.displayWaitingMessage("Loading... please wait.");
 
         /* Firefox でバイナリを送らうとすると 0x00 の位置で切れてしまふ。*/
-        var bin = Rakka.loadLocalBinaryFile(path);
         var url = Rakka.baseURI + "render/" + encodeURI(pageName);
         $.ajax({
             type       : "POST",
             url        : url,
             contentType: "application/x-rakka-base64-stream",
-            data       : Rakka.encodeBase64(bin),
+            data       : Rakka.encodeBase64(data),
             processData: false,
             success    : function (resultDoc) {
                 Rakka.hideWaitingMessage();
         });
     };
 
-    var submitBinaryPage = function (pageName, oldRevision, givenPageName, isLocked, lang, otherLangs, summary, path) {
+    var submitBinaryPage = function (pageName, oldRevision, givenPageName, isLocked, lang, otherLangs, summary, data) {
         var NS   = "http://cielonegro.org/schema/Rakka/Page/1.0";
         var doc  = document.implementation.createDocument(NS, "page", null);
         var page = doc.documentElement;
         }
         page.appendChild(oLang);
 
-        var bin = Rakka.loadLocalBinaryFile(path);
-        var b64 = Rakka.encodeBase64(bin);
-
+        var b64 = Rakka.encodeBase64(data);
         var binaryData = doc.createElementNS(NS, "binaryData");
         binaryData.appendChild(
             doc.createTextNode(b64));