[Cluster-devel] conga/luci/plone-custom conga_ajax.js
rmccabe at sourceware.org
rmccabe at sourceware.org
Mon Nov 12 17:10:44 UTC 2007
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2007-11-12 17:10:43
Modified files:
luci/plone-custom: conga_ajax.js
Log message:
support async POST requests
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/plone-custom/conga_ajax.js.diff?cvsroot=cluster&r1=1.3&r2=1.4
--- conga/luci/plone-custom/conga_ajax.js 2007/08/08 21:26:37 1.3
+++ conga/luci/plone-custom/conga_ajax.js 2007/11/12 17:10:43 1.4
@@ -9,7 +9,7 @@
var xmlHttp_object = false;
-function initiate_async_get(url, callback_function) {
+function get_xmlhttp_obj() {
xmlHttp_object = false;
if (!xmlHttp_object && typeof XMLHttpRequest != 'undefined') {
@@ -27,14 +27,48 @@
}
}
}
+ return (xmlHttp_object);
+}
- if (xmlHttp_object) {
- xmlHttp_object.open("GET", url, true);
- xmlHttp_object.onreadystatechange = callback_function;
- xmlHttp_object.send(null);
- } else {
+function initiate_async_get(url, callback_function) {
+ xmlHttp_object = get_xmlhttp_obj();
+
+ if (!xmlHttp_object) {
+ alert("Unable to communicate with the luci server.");
+ return (-1);
+ }
+
+ xmlHttp_object.open("GET", url, true);
+ xmlHttp_object.onreadystatechange = callback_function;
+ xmlHttp_object.send(null);
+}
+
+function initiate_async_post(form, url, callback) {
+ xmlHttp_object = get_xmlhttp_obj();
+ if (!xmlHttp_object) {
alert("Unable to communicate with the luci server.");
+ return (-1);
}
+
+ var form_data_str = '';
+ for (var i = 0 ; i < form.elements.length ; i++) {
+ switch (form.elements[i].type) {
+ case 'hidden':
+ case 'password':
+ case 'select-one':
+ case 'text':
+ case 'textarea':
+ form_data_str += form.elements[i].name + '=' +
+ escape(form.elements[i].value) + '&';
+ }
+ }
+
+ xmlHttp_object.onreadystatechange = callback;
+ xmlHttp_object.open('POST', url, true);
+ xmlHttp_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+ xmlHttp_object.setRequestHeader("Content-length", form_data_str.length);
+ xmlHttp_object.setRequestHeader("Connection", "close");
+ xmlHttp_object.send(form_data_str);
}
function get_ajax_msgs(obj, tag_name) {
More information about the Cluster-devel
mailing list