git-svn-id: file:///svn-source/pmgr/branches/ledger_transactions_20090605/site@110 97e9348a-65ac-dc4b-aefc-98561f571b83
132 lines
5.4 KiB
JavaScript
132 lines
5.4 KiB
JavaScript
;(function($){
|
|
/*
|
|
* jqGrid extension for constructing Grid Data from external file
|
|
* Tony Tomov tony@trirand.com
|
|
* http://trirand.com/blog/
|
|
* Dual licensed under the MIT and GPL licenses:
|
|
* http://www.opensource.org/licenses/mit-license.php
|
|
* http://www.gnu.org/licenses/gpl.html
|
|
**/
|
|
$.fn.extend({
|
|
jqGridImport : function(o) {
|
|
o = $.extend({
|
|
imptype : "xml", // xml, json, xmlstring, jsonstring
|
|
impstring: "",
|
|
impurl: "",
|
|
mtype: "GET",
|
|
impData : {},
|
|
xmlGrid :{
|
|
config : "roots>grid",
|
|
data: "roots>rows"
|
|
},
|
|
jsonGrid :{
|
|
config : "grid",
|
|
data: "data"
|
|
}
|
|
}, o || {});
|
|
return this.each(function(){
|
|
var $t = this;
|
|
var XmlConvert = function (xml,o) {
|
|
var cnfg = $(o.xmlGrid.config,xml)[0];
|
|
var xmldata = $(o.xmlGrid.data,xml)[0];
|
|
if(xmlJsonClass.xml2json && JSON.parse) {
|
|
var jstr = xmlJsonClass.xml2json(cnfg," ");
|
|
var jstr = JSON.parse(jstr);
|
|
for(var key in jstr) { var jstr1=jstr[key];}
|
|
if(xmldata) {
|
|
// save the datatype
|
|
var svdatatype = jstr.grid.datatype;
|
|
jstr.grid.datatype = 'xmlstring';
|
|
jstr.grid.datastr = xml;
|
|
$($t).jqGrid( jstr1 ).setGridParam({datatype:svdatatype});
|
|
} else {
|
|
$($t).jqGrid( jstr1 );
|
|
}
|
|
jstr = null;jstr1=null;
|
|
} else {
|
|
alert("xml2json or json.parse are not present");
|
|
}
|
|
};
|
|
var JsonConvert = function (jsonstr,o){
|
|
if (jsonstr && typeof jsonstr == 'string' && JSON.parse) {
|
|
var json = JSON.parse(jsonstr);
|
|
var gprm = json[o.jsonGrid.config];
|
|
var jdata = json[o.jsonGrid.data];
|
|
if(jdata) {
|
|
var svdatatype = gprm.datatype;
|
|
gprm.datatype = 'jsonstring';
|
|
gprm.datastr = jdata;
|
|
$($t).jqGrid( gprm ).setGridParam({datatype:svdatatype});
|
|
} else {
|
|
$($t).jqGrid( gprm );
|
|
}
|
|
}
|
|
};
|
|
switch (o.imptype){
|
|
case 'xml':
|
|
$.ajax({
|
|
url:o.impurl,
|
|
type:o.mtype,
|
|
data: o.impData,
|
|
dataType:"xml",
|
|
complete: function(xml,stat) {
|
|
if(stat == 'success') {
|
|
XmlConvert(xml.responseXML,o);
|
|
xml=null;
|
|
}
|
|
}
|
|
});
|
|
break;
|
|
case 'xmlstring' :
|
|
// we need to make just the conversion and use the same code as xml
|
|
if(o.impstring && typeof o.impstring == 'string') {
|
|
var xmld = xmlJsonClass.parseXml(o.impstring);
|
|
if(xmld) {
|
|
XmlConvert(xmld,o);
|
|
xmld = null;
|
|
}
|
|
}
|
|
break;
|
|
case 'json':
|
|
$.ajax({
|
|
url:o.impurl,
|
|
type:o.mtype,
|
|
data: o.impData,
|
|
dataType:"json",
|
|
complete: function(json,stat) {
|
|
if(stat == 'success') {
|
|
JsonConvert(json.responseText,o );
|
|
json=null;
|
|
}
|
|
}
|
|
});
|
|
break;
|
|
case 'jsonstring' :
|
|
if(o.impstring && typeof o.impstring == 'string') {
|
|
JsonConvert(o.impstring,o );
|
|
}
|
|
break;
|
|
}
|
|
});
|
|
},
|
|
jqGridExport : function(o) {
|
|
o = $.extend({
|
|
exptype : "xmlstring"
|
|
}, o || {});
|
|
var ret = null;
|
|
this.each(function () {
|
|
if(!this.grid) { return;}
|
|
var gprm = $(this).getGridParam();
|
|
switch (o.exptype) {
|
|
case 'xmlstring' :
|
|
ret = xmlJsonClass.json2xml(gprm," ");
|
|
break;
|
|
case 'jsonstring' :
|
|
ret = JSON.stringify(gprm);
|
|
break;
|
|
}
|
|
});
|
|
return ret;
|
|
}
|
|
});
|
|
})(jQuery); |