git-svn-id: http://xe-core.googlecode.com/svn/trunk@293 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-03-07 06:49:24 +00:00
parent af50e40164
commit 2aebd5960f
17 changed files with 303 additions and 215 deletions

View file

@ -1,49 +1,49 @@
/**
* @file : common/js/xml_handler.js
* @author : zero <zero@nzeo.com>
* @desc : ajax 사용을 위한 기본 js
* @file common/js/xml_handler.js
* @author zero <zero@nzeo.com>
* @brief ajax 사용을 위한 기본 js
**/
// xml handler을 이용하는 user function
function exec_xml(module, act, params, callback_func, response_tags, callback_func_arg, fo_obj) {
var oXml = new xml_handler();
oXml.reset();
for(var key in params) {
var val = params[key];
oXml.addParam(key, val);
}
oXml.addParam('module', module);
oXml.addParam('act', act);
var oXml = new xml_handler();
oXml.reset();
for(var key in params) {
var val = params[key];
oXml.addParam(key, val);
}
oXml.addParam("module", module);
oXml.addParam("act", act);
response_tags[response_tags.length] = 'redirect_url';
response_tags[response_tags.length] = "redirect_url";
var waiting_obj = document.getElementById('waitingforserverresponse');
waiting_obj.style.visibility = 'visible';
oXml.request(xml_response_filter, oXml, callback_func, response_tags, callback_func_arg, fo_obj);
var waiting_obj = document.getElementById("waitingforserverresponse");
waiting_obj.style.visibility = "visible";
oXml.request(xml_response_filter, oXml, callback_func, response_tags, callback_func_arg, fo_obj);
}
// 결과 처리 후 callback_func에 넘겨줌
function xml_response_filter(oXml, callback_func, response_tags, callback_func_arg, fo_obj) {
var xmlDoc = oXml.getResponseXml();
if(!xmlDoc) return;
var xmlDoc = oXml.getResponseXml();
if(!xmlDoc) return null;
var waiting_obj = document.getElementById('waitingforserverresponse');
waiting_obj.style.visibility = 'hidden';
var ret_obj = oXml.toZMsgObject(xmlDoc, response_tags);
if(ret_obj['error']!=0) {
alert(ret_obj['message']);
return;
}
var waiting_obj = document.getElementById("waitingforserverresponse");
waiting_obj.style.visibility = "hidden";
callback_func(ret_obj, response_tags, callback_func_arg, fo_obj);
var ret_obj = oXml.toZMsgObject(xmlDoc, response_tags);
if(ret_obj["error"]!=0) {
alert(ret_obj["message"]);
return;
}
callback_func(ret_obj, response_tags, callback_func_arg, fo_obj);
}
// xml handler
function xml_handler() {
this.obj_xmlHttp = null;
this.method_name = null;
if(location.href.indexOf('admin.php')>0) this.xml_path = "./admin.php";
else this.xml_path = "./index.php";
this.xml_path = "./index.php";
this.params = new Array();
@ -71,25 +71,25 @@ function zGetXmlHttp() {
}
function xml_handlerRequest(callBackFunc, xmlObj, callBackFunc2, response_tags, callback_func_arg, fo_obj) {
var rd = "";
rd += "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n"
+ "<methodCall>\n"
+ "<params>\n"
+ "<methodCall>\n"
+ "<params>\n"
for (var key in this.params) {
var val = this.params[key];
rd += "<"+key+"><![CDATA["+val+"]]></"+key+">\n";
}
rd += "</params>\n"
+ "</methodCall>\n";
+ "</methodCall>\n";
if(this.obj_xmlHttp.readyState!=0) {
this.obj_xmlHttp.abort();
this.obj_xmlHttp = this.getXmlHttp();
}
this.obj_xmlHttp.onreadystatechange = function () {callBackFunc(xmlObj, callBackFunc2, response_tags, callback_func_arg, fo_obj)};
this.obj_xmlHttp.open('POST', this.xml_path, true);
this.obj_xmlHttp.open("POST", this.xml_path, true);
this.obj_xmlHttp.send(rd);
}
@ -119,14 +119,14 @@ function xml_handlerGetResponseXML() {
function xml_handlerToZMsgObject(xmlDoc, tags) {
if(!xmlDoc) return null;
if(!tags) {
tags = new Array('error','message');
tags = new Array("error","message");
}
var obj_ret = new Array();
for(var i=0; i<tags.length; i++) {
try {
obj_ret[tags[i]] = xmlDoc.getElementsByTagName(tags[i])[0].firstChild.nodeValue;
} catch(e) {
obj_ret[tags[i]] = '';
obj_ret[tags[i]] = "";
}
}
return obj_ret;