[pLog-svn] r7015 - plog/branches/lifetype-1.2/js/ui

jondaley at devel.lifetype.net jondaley at devel.lifetype.net
Sat Jul 31 11:33:40 EDT 2010


Author: jondaley
Date: 2010-07-31 11:33:40 -0400 (Sat, 31 Jul 2010)
New Revision: 7015

Modified:
   plog/branches/lifetype-1.2/js/ui/plogui.js
Log:
the ajax addCategory op needed some extra help to get the CSRF Token.  While I was editing, cleaned up the code, with error checking on the ajax responses, and appropriate (though hard-coded English, for now) messages to the user when the ajax action fails

Modified: plog/branches/lifetype-1.2/js/ui/plogui.js
===================================================================
--- plog/branches/lifetype-1.2/js/ui/plogui.js	2010-07-31 13:48:54 UTC (rev 7014)
+++ plog/branches/lifetype-1.2/js/ui/plogui.js	2010-07-31 15:33:40 UTC (rev 7015)
@@ -45,67 +45,94 @@
 	var params = 'op=saveDraftArticleAjax&'+formData;
 	var myAjax = new Ajax.Request(
 					url,
-					{method: 'post', parameters: params, onComplete: saveDraftArticleResponse}
+					{method: 'post', 
+                     parameters: params, 
+                     onComplete: saveDraftArticleResponse}
 					);    
 }
 
 function saveDraftArticleResponse(originalRequest)
 {
+    var success = false;
 	//put returned XML in the textarea
 	var xmldoc = originalRequest.responseXML;
-	var id_elem = xmldoc.getElementsByTagName('id');
-    if(id_elem[0]){
-        $( 'postId' ).value = id_elem[0].firstChild.nodeValue;
+    if(xmldoc){
+        var id_elem = xmldoc.getElementsByTagName('id');
+        if(id_elem && id_elem[0]){
+            $('postId').value = id_elem[0].firstChild.nodeValue;
+
+            var message = xmldoc.getElementsByTagName('message')[0].firstChild.nodeValue;
+            if(message != ''){
+                window.alert(message);
+                success = true;
+            }
+        }
     }
-	var message = xmldoc.getElementsByTagName('message')[0].firstChild.nodeValue;
-	window.alert(message);
+    if(!success){
+        window.alert('Error: couldn\'t save draft');
+    }
 }
 
+
 /**
  * The following functions are called when clicking the "add category" button
  */
 function addArticleCategoryAjax()
 {
 	var categoryName = $F('newArticleCategory');
-	if (categoryName != '')
-	{
+	if (categoryName != ''){
 		var url = plogAdminBaseUrl;
-		var params = 'op=addArticleCategoryAjax' + '&categoryName=' + encodeURIComponent(categoryName);
-		var myAjax = new Ajax.Request(
-						url,
-						{method: 'get', parameters: params, onComplete: addArticleCategoryOption, onLoading: showArticleCategorySavingStatus }
-						);
+
+	var params = '';
+	form = document.getElementById("newPost");
+	for(i = 0; i < form.elements.length; i++ ) {
+		itemName = form.elements[i].name;
+		if(itemName == "CsrfToken" ) {
+            params += itemName + '=' + escape(form.elements[i].value) + "&";
+            break;
+		}
+    }	
+
+    params += 'op=addArticleCategoryAjax' + '&categoryName=' + encodeURIComponent(categoryName);
+    var myAjax = new Ajax.Request(
+        url,
+        {method: 'post', 
+         parameters: params, 
+         onComplete: addArticleCategoryResponse, 
+         onLoading: showArticleCategorySavingStatus }
+                                  );
 	}
 }
 
-function addArticleCategoryOption(originalRequest)
+function addArticleCategoryResponse(originalRequest)
 {
 	//put returned XML in the textarea
 	var xmldoc = originalRequest.responseXML;
-	var success = xmldoc.getElementsByTagName('success')[0].firstChild.nodeValue;
-	var message = xmldoc.getElementsByTagName('message')[0].firstChild.nodeValue;
-	if (success=='0') {
-		window.alert(message);
-		$( 'newArticleCategory' ).value = '';
-		$( 'addArticleCategory' ).disabled = 0;
-	}
-	else
-	{
-		var catId = xmldoc.getElementsByTagName('id')[0].firstChild.nodeValue;
-		var catName = xmldoc.getElementsByTagName('name')[0].firstChild.nodeValue;
-	    for(i=$( 'postCategories' ).length; i>0; i--)
-	    {
-			tmpText = $( 'postCategories' ).options[i-1].text;
-			tmpValue = $( 'postCategories' ).options[i-1].value;
-			tmpSelected = $( 'postCategories' ).options[i-1].selected;
-			$( 'postCategories' ).options[i] = new Option( tmpText, tmpValue );
-			$( 'postCategories' ).options[i].selected = tmpSelected;
-	    }
-	    $( 'postCategories' ).options[0] = new Option( catName, catId );
-	    $( 'postCategories' ).options[0].selected = true;
-	    $( 'newArticleCategory' ).value = '';
-	    $( 'addArticleCategory' ).disabled = 0;
-	}
+	if(xmldoc){
+        var success = xmldoc.getElementsByTagName('success')[0].firstChild.nodeValue;
+        var message = xmldoc.getElementsByTagName('message')[0].firstChild.nodeValue;
+        if(success == '0'){
+            window.alert(message);
+        }
+        else{
+            var catId = xmldoc.getElementsByTagName('id')[0].firstChild.nodeValue;
+            var catName = xmldoc.getElementsByTagName('name')[0].firstChild.nodeValue;
+            for(i=$( 'postCategories' ).length; i>0; i--){
+                tmpText = $( 'postCategories' ).options[i-1].text;
+                tmpValue = $( 'postCategories' ).options[i-1].value;
+                tmpSelected = $( 'postCategories' ).options[i-1].selected;
+                $( 'postCategories' ).options[i] = new Option( tmpText, tmpValue );
+                $( 'postCategories' ).options[i].selected = tmpSelected;
+            }
+            $( 'postCategories' ).options[0] = new Option( catName, catId );
+            $( 'postCategories' ).options[0].selected = true;
+        }
+    }
+    else{
+        window.alert("Error adding category");
+    }
+    $( 'newArticleCategory' ).value = '';
+    $( 'addArticleCategory' ).disabled = 0;
 }
 
 function showArticleCategorySavingStatus(originalRequest) {



More information about the pLog-svn mailing list