Add the legacy frontend themes, scripts, and plugin assets required by the main SPOTA interfaces.
216 lines
9.0 KiB
JavaScript
216 lines
9.0 KiB
JavaScript
/*jshint eqeqeq:false, eqnull:true, devel:true */
|
|
/*global jQuery, xmlJsonClass */
|
|
(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-2.0.html
|
|
**/
|
|
|
|
"use strict";
|
|
$.jgrid.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"
|
|
},
|
|
ajaxOptions :{}
|
|
}, 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], jstr, jstr1, key;
|
|
if(xmlJsonClass.xml2json && $.jgrid.parse) {
|
|
jstr = xmlJsonClass.xml2json(cnfg," ");
|
|
jstr = $.jgrid.parse(jstr);
|
|
for(key in jstr) {
|
|
if(jstr.hasOwnProperty(key)) {
|
|
jstr1=jstr[key];
|
|
}
|
|
}
|
|
if(xmldata) {
|
|
// save the datatype
|
|
var svdatatype = jstr.grid.datatype;
|
|
jstr.grid.datatype = 'xmlstring';
|
|
jstr.grid.datastr = xml;
|
|
$($t).jqGrid( jstr1 ).jqGrid("setGridParam",{datatype:svdatatype});
|
|
} else {
|
|
$($t).jqGrid( jstr1 );
|
|
}
|
|
jstr = null;jstr1=null;
|
|
} else {
|
|
alert("xml2json or parse are not present");
|
|
}
|
|
};
|
|
var jsonConvert = function (jsonstr,o){
|
|
if (jsonstr && typeof jsonstr == 'string') {
|
|
var _jsonparse = false;
|
|
if($.jgrid.useJSON) {
|
|
$.jgrid.useJSON = false;
|
|
_jsonparse = true;
|
|
}
|
|
var json = $.jgrid.parse(jsonstr);
|
|
if(_jsonparse) { $.jgrid.useJSON = true; }
|
|
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 ).jqGrid("setGridParam",{datatype:svdatatype});
|
|
} else {
|
|
$($t).jqGrid( gprm );
|
|
}
|
|
}
|
|
};
|
|
switch (o.imptype){
|
|
case 'xml':
|
|
$.ajax($.extend({
|
|
url:o.impurl,
|
|
type:o.mtype,
|
|
data: o.impData,
|
|
dataType:"xml",
|
|
complete: function(xml,stat) {
|
|
if(stat == 'success') {
|
|
xmlConvert(xml.responseXML,o);
|
|
$($t).triggerHandler("jqGridImportComplete", [xml, o]);
|
|
if($.isFunction(o.importComplete)) {
|
|
o.importComplete(xml);
|
|
}
|
|
}
|
|
xml=null;
|
|
}
|
|
}, o.ajaxOptions));
|
|
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 = $.jgrid.stringToDoc(o.impstring);
|
|
if(xmld) {
|
|
xmlConvert(xmld,o);
|
|
$($t).triggerHandler("jqGridImportComplete", [xmld, o]);
|
|
if($.isFunction(o.importComplete)) {
|
|
o.importComplete(xmld);
|
|
}
|
|
o.impstring = null;
|
|
}
|
|
xmld = null;
|
|
}
|
|
break;
|
|
case 'json':
|
|
$.ajax($.extend({
|
|
url:o.impurl,
|
|
type:o.mtype,
|
|
data: o.impData,
|
|
dataType:"json",
|
|
complete: function(json) {
|
|
try {
|
|
jsonConvert(json.responseText,o );
|
|
$($t).triggerHandler("jqGridImportComplete", [json, o]);
|
|
if($.isFunction(o.importComplete)) {
|
|
o.importComplete(json);
|
|
}
|
|
} catch (ee){}
|
|
json=null;
|
|
}
|
|
}, o.ajaxOptions ));
|
|
break;
|
|
case 'jsonstring' :
|
|
if(o.impstring && typeof o.impstring == 'string') {
|
|
jsonConvert(o.impstring,o );
|
|
$($t).triggerHandler("jqGridImportComplete", [o.impstring, o]);
|
|
if($.isFunction(o.importComplete)) {
|
|
o.importComplete(o.impstring);
|
|
}
|
|
o.impstring = null;
|
|
}
|
|
break;
|
|
}
|
|
});
|
|
},
|
|
jqGridExport : function(o) {
|
|
o = $.extend({
|
|
exptype : "xmlstring",
|
|
root: "grid",
|
|
ident: "\t"
|
|
}, o || {});
|
|
var ret = null;
|
|
this.each(function () {
|
|
if(!this.grid) { return;}
|
|
var key, gprm = $.extend(true, {},$(this).jqGrid("getGridParam"));
|
|
// we need to check for:
|
|
// 1.multiselect, 2.subgrid 3. treegrid and remove the unneded columns from colNames
|
|
if(gprm.rownumbers) {
|
|
gprm.colNames.splice(0,1);
|
|
gprm.colModel.splice(0,1);
|
|
}
|
|
if(gprm.multiselect) {
|
|
gprm.colNames.splice(0,1);
|
|
gprm.colModel.splice(0,1);
|
|
}
|
|
if(gprm.subGrid) {
|
|
gprm.colNames.splice(0,1);
|
|
gprm.colModel.splice(0,1);
|
|
}
|
|
gprm.knv = null;
|
|
if(gprm.treeGrid) {
|
|
for (key in gprm.treeReader) {
|
|
if(gprm.treeReader.hasOwnProperty(key)) {
|
|
gprm.colNames.splice(gprm.colNames.length-1);
|
|
gprm.colModel.splice(gprm.colModel.length-1);
|
|
}
|
|
}
|
|
}
|
|
switch (o.exptype) {
|
|
case 'xmlstring' :
|
|
ret = "<"+o.root+">"+xmlJsonClass.json2xml(gprm,o.ident)+"</"+o.root+">";
|
|
break;
|
|
case 'jsonstring' :
|
|
ret = "{"+ xmlJsonClass.toJson(gprm,o.root,o.ident,false)+"}";
|
|
if(gprm.postData.filters !== undefined) {
|
|
ret=ret.replace(/filters":"/,'filters":');
|
|
ret=ret.replace(/}]}"/,'}]}');
|
|
}
|
|
break;
|
|
}
|
|
});
|
|
return ret;
|
|
},
|
|
excelExport : function(o) {
|
|
o = $.extend({
|
|
exptype : "remote",
|
|
url : null,
|
|
oper: "oper",
|
|
tag: "excel",
|
|
exportOptions : {}
|
|
}, o || {});
|
|
return this.each(function(){
|
|
if(!this.grid) { return;}
|
|
var url;
|
|
if(o.exptype == "remote") {
|
|
var pdata = $.extend({},this.p.postData);
|
|
pdata[o.oper] = o.tag;
|
|
var params = jQuery.param(pdata);
|
|
if(o.url.indexOf("?") != -1) { url = o.url+"&"+params; }
|
|
else { url = o.url+"?"+params; }
|
|
window.location = url;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
})(jQuery);
|