changeset 865:80f6f31d3711

File upload fixes.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 26 Nov 2014 11:45:30 +0200
parents 16bc6c1029ee
children db9810510670
files admajax.php admin.js ajax.js
diffstat 3 files changed, 53 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/admajax.php	Wed Nov 26 11:34:48 2014 +0200
+++ b/admajax.php	Wed Nov 26 11:45:30 2014 +0200
@@ -224,7 +224,7 @@
   {
     echo
       "  <div class=\"entryRow ".($row % 2 == 1 ? "rodd" : "reven").
-      "\" id=\"entry".$eid."\"".($mode == EEMODE_NORMAL ? " onClick=\"activateEntry(".$eid.")\"" : "").">\n";
+      "\" id=\"entry".$eid."\"".($mode == EEMODE_NORMAL ? " onClick=\"activateEntry(".$eid.", false)\"" : "").">\n";
   }
 
   // Only show show_id if this is a normal compo and we are not adding
@@ -742,7 +742,10 @@
     // File upload
     //
     if (stHandleGenericFileUpload(0))
-      stSetStatus(200, "File successfully uploaded.");
+    {
+      echo "File upload successful!";
+      stSetStatus(902, "File successfully uploaded.");
+    }
     break;
 
   case "randomize":
--- a/admin.js	Wed Nov 26 11:34:48 2014 +0200
+++ b/admin.js	Wed Nov 26 11:45:30 2014 +0200
@@ -391,7 +391,7 @@
 //
 // Entry management
 //
-function activateEntry(id)
+function activateEntry(id, force)
 {
   var msuccess1 = function(txt)
   {
@@ -415,7 +415,7 @@
     }
   }
 
-  if (activeEntry != id)
+  if (activeEntry != id || force)
   {
     prevEntry = activeEntry;
     activeEntry = id;
@@ -466,7 +466,7 @@
         nitem.style.display = "none";
     }
     else
-      activateEntry(-1);
+      activateEntry(edit ? id : -1, true);
   }
 
   var mcb_ok = function(data)
--- a/ajax.js	Wed Nov 26 11:34:48 2014 +0200
+++ b/ajax.js	Wed Nov 26 11:45:30 2014 +0200
@@ -69,6 +69,12 @@
 }
 
 
+function jsTitleMessageBox(title, msg)
+{
+  jsMessageBox("<h1>"+title+"</h1><div>"+msg+"</div>");
+}
+
+
 function jsConfirmBox(msg, cb_ok, cb_cancel, cb_data)
 {
   var nitem = document.getElementById("messageBox");
@@ -288,14 +294,47 @@
   var formData = new FormData(formElem);
   var req = jsCreateXMLRequest();
   req.upload.addEventListener("progress", jsUploadProgress, false);
-  req.addEventListener("load", function(ev)
-    {
-      if (fileCallback)
-        setTimeout(fileCallback, 1);
-    }, false);
-
   req.addEventListener("error", jsUploadError, false);
   req.addEventListener("abort", jsUploadAbort, false);
+
+  req.onreadystatechange = function()
+  {
+    if (req.readyState == 4)
+    {
+      switch (req.status)
+      {
+        case 902:
+          jsStatusMsg(req.statusText);
+          jsMessageBox(req.responseText);
+          break;
+
+        case 903:
+          {
+            var nitem = document.getElementById("messageBox");
+            if (nitem)
+            {
+              nitem.innerHTML = "<div class='messageBoxInner'>"+ req.responseText +
+                "<div class='messageBoxControls'>"+
+                "</div></div>";
+              nitem.style.display = "block";
+            }
+          }
+          break;
+        
+        case 200:
+          if (fileCallback)
+            setTimeout(fileCallback, 1);
+
+          jsTitleMessageBox("File upload", req.responseText);
+          break;
+        
+        default:
+          jsStatusMsg("["+req.status+" - "+req.statusText+"] "+ req.responseText);
+          break;
+      }
+    }
+  }
+
   req.open("POST", formTarget);
   req.send(formData);
 }