]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - js/editPage.js
we can now create new pages
[Rakka.git] / js / editPage.js
index e14b383eebe13197ae5f591e5db4db336bbdeaeb..43dc7766f5397a7874a63ac5b62cb6ae1cee111b 100644 (file)
@@ -1,11 +1,14 @@
 Rakka.editPage = function (baseURI, pageName) {
     var $area = Rakka.switchScreen();
-    $area.text("Loading... please wait.");
+
+    Rakka.displayWaitingMessage("Loading... please wait.");
     
     // XML 版のページを取得する。
     $.ajax({
         url    : baseURI + pageName + ".xml",
         success: function (pageXml) {
+            Rakka.hideWaitingMessage();
+            
             var $page       = $(pageXml).find("page");
             var oldRevision = $page.attr("revision");
             var defaultType
@@ -18,6 +21,8 @@ Rakka.editPage = function (baseURI, pageName) {
             Rakka.displayPageEditor(baseURI, pageName, oldRevision, defaultType, source);
         },
         error  : function (req) {
+            Rakka.hideWaitingMessage();
+            
             if (req.status == 404) {
                 Rakka.displayPageEditor(baseURI, pageName, null, "rakka", null);
             }
@@ -28,11 +33,15 @@ Rakka.editPage = function (baseURI, pageName) {
     });
 };
 
+Rakka.newPage = function (baseURI) {
+    Rakka.displayPageEditor(baseURI, "", null, "rakka", null);
+};
+
 Rakka.displayPageEditor = function (baseURI, pageName, oldRevision, defaultType, source) {
     var $area = Rakka.switchScreen();
     $area.empty();
 
-    $area.append($.H1({}, "Edit page"));
+    $area.append($.H1({}, pageName == "" ? "Create page" : "Edit page"));
 
     var fldPageName
         = $.INPUT({type : "text", value: pageName});
@@ -214,11 +223,23 @@ Rakka.submitTextPage = function (baseURI, pageName, oldRevision, givenPageName,
         page.appendChild(textData);
     }
 
+    Rakka.displayWaitingMessage("Submitting... please wait.");
+
+    var url = baseURI + encodeURI(givenPageName);
     $.ajax({
         type       : "PUT",
-        url        : baseURI + encodeURI(givenPageName),
+        url        : url,
         contentType: "text/xml",
         data       : doc,
-        processData: false
+        processData: false,
+        success    : function () {
+            window.location.replace(url);
+        },
+        error      : function (req) {
+            Rakka.hideWaitingMessage();
+            
+            var $area = Rakka.switchScreen();
+            $area.text("Error: " + req.status + " " + req.statusText);
+        }
     });
 };