git-svn-id: file:///svn-source/pmgr/branches/ledger_transactions_20090605@110 97e9348a-65ac-dc4b-aefc-98561f571b83
1 line
8.0 KiB
JavaScript
1 line
8.0 KiB
JavaScript
(function(a){a.fn.extend({getColProp:function(d){var b={},f=this[0];if(!f.grid){return}var e=f.p.colModel;for(var c=0;c<e.length;c++){if(e[c].name==d){b=e[c];break}}return b},setColProp:function(c,b){return this.each(function(){if(this.grid){if(b){var e=this.p.colModel;for(var d=0;d<e.length;d++){if(e[d].name==c){a.extend(this.p.colModel[d],b);break}}}}})},sortGrid:function(c,b){return this.each(function(){var g=this,d=-1;if(!g.grid){return}if(!c){c=g.p.sortname}for(var f=0;f<g.p.colModel.length;f++){if(g.p.colModel[f].index==c||g.p.colModel[f].name==c){d=f;break}}if(d!=-1){var e=g.p.colModel[d].sortable;if(typeof e!=="boolean"){e=true}if(typeof b!=="boolean"){b=false}if(e){g.sortData("jqgh_"+c,d,b)}}})},GridDestroy:function(){return this.each(function(){if(this.grid){if(this.p.pager){a(this.p.pager).remove()}var c=this.id;a("#lui_"+c).remove();try{a("#editmod"+c).remove();a("#delmod"+c).remove();a("#srchmod"+c).remove()}catch(b){}a(this.grid.bDiv).remove();a(this.grid.hDiv).remove();a(this.grid.cDiv).remove();if(this.p.toolbar[0]){a(this.grid.uDiv).remove()}this.p=null;this.grid=null}})},GridUnload:function(){return this.each(function(){if(!this.grid){return}var e={id:a(this).attr("id"),cl:a(this).attr("class")};if(this.p.pager){a(this.p.pager).empty()}var b=document.createElement("table");a(b).attr({id:e.id});b.className=e.cl;var d=this.id;a("#lui_"+d).remove();try{a("#editmod"+d).remove();a("#delmod"+d).remove();a("#srchmod"+d).remove()}catch(c){}if(this.p.toolbar[0]){a(this.grid.uDiv).remove()}a(this.grid.cDiv).remove();a(this.grid.bDiv).remove();a(this.grid.hDiv).before(b).remove();this.p=null;this.grid=null})},filterGrid:function(c,b){b=a.extend({gridModel:false,gridNames:false,gridToolbar:false,filterModel:[],formtype:"horizontal",autosearch:true,formclass:"filterform",tableclass:"filtertable",buttonclass:"filterbutton",searchButton:"Search",clearButton:"Clear",enableSearch:false,enableClear:false,beforeSearch:null,afterSearch:null,beforeClear:null,afterClear:null,url:"",marksearched:true},b||{});return this.each(function(){var l=this;this.p=b;if(this.p.filterModel.length==0&&this.p.gridModel===false){alert("No filter is set");return}if(!c){alert("No target grid is set!");return}this.p.gridid=c.indexOf("#")!=-1?c:"#"+c;var d=a(this.p.gridid).getGridParam("colModel");if(d){if(this.p.gridModel===true){var e=a(this.p.gridid)[0];var g;a.each(d,function(o,p){var m=[];this.search=this.search===false?false:true;if(this.editrules&&this.editrules.searchhidden===true){g=true}else{if(this.hidden===true){g=false}else{g=true}}if(this.search===true&&g===true){if(l.p.gridNames===true){m.label=e.p.colNames[o]}else{m.label=""}m.name=this.name;m.index=this.index||this.name;m.stype=this.edittype||"text";if(m.stype!="select"||m.stype!="select"){m.stype="text"}m.defval=this.defval||"";m.surl=this.surl||"";m.sopt=this.editoptions||{};m.width=this.width;l.p.filterModel.push(m)}})}else{a.each(l.p.filterModel,function(o,p){for(var m=0;m<d.length;m++){if(this.name==d[m].name){this.index=d[m].index||this.name;break}}if(!this.index){this.index=this.name}})}}else{alert("Could not get grid colModel");return}var h=function(){var p={},o=0,m;var n=a(l.p.gridid)[0];if(a.isFunction(l.p.beforeSearch)){l.p.beforeSearch()}a.each(l.p.filterModel,function(s,u){switch(this.stype){case"select":m=a("select[name="+this.name+"]",l).val();if(m){p[this.index]=m;if(l.p.marksearched){a("#jqgh_"+this.name,n.grid.hDiv).addClass("dirty-cell")}o++}else{if(l.p.marksearched){a("#jqgh_"+this.name,n.grid.hDiv).removeClass("dirty-cell")}try{delete n.p.postData[this.index]}catch(t){}}break;default:m=a("input[name="+this.name+"]",l).val();if(m){p[this.index]=m;if(l.p.marksearched){a("#jqgh_"+this.name,n.grid.hDiv).addClass("dirty-cell")}o++}else{if(l.p.marksearched){a("#jqgh_"+this.name,n.grid.hDiv).removeClass("dirty-cell")}try{delete n.p.postData[this.index]}catch(t){}}}});var q=o>0?true:false;n.p.postData=a.extend(n.p.postData,p);var r;if(l.p.url){r=a(n).getGridParam("url");a(n).setGridParam({url:l.p.url})}a(n).setGridParam({search:q,page:1}).trigger("reloadGrid");if(r){a(n).setGridParam({url:r})}if(a.isFunction(l.p.afterSearch)){l.p.afterSearch()}};var k=function(){var p={},m,o=0;var n=a(l.p.gridid)[0];if(a.isFunction(l.p.beforeClear)){l.p.beforeClear()}a.each(l.p.filterModel,function(s,v){m=(this.defval)?this.defval:"";if(!this.stype){this.stype=="text"}switch(this.stype){case"select":if(m){var u;a("select[name="+this.name+"] option",l).each(function(){if(a(this).text()==m){this.selected=true;u=a(this).val();return false}});p[this.index]=u||"";if(l.p.marksearched){a("#jqgh_"+this.name,n.grid.hDiv).addClass("dirty-cell")}o++}else{if(l.p.marksearched){a("#jqgh_"+this.name,n.grid.hDiv).removeClass("dirty-cell")}try{delete n.p.postData[this.index]}catch(t){}}break;case"text":a("input[name="+this.name+"]",l).val(m);if(m){p[this.index]=m;if(l.p.marksearched){a("#jqgh_"+this.name,n.grid.hDiv).addClass("dirty-cell")}o++}else{if(l.p.marksearched){a("#jqgh_"+this.name,n.grid.hDiv).removeClass("dirty-cell")}try{delete n.p.postData[this.index]}catch(t){}}}});var q=o>0?true:false;n.p.postData=a.extend(n.p.postData,p);var r;if(l.p.url){r=a(n).getGridParam("url");a(n).setGridParam({url:l.p.url})}a(n).setGridParam({search:q,page:1}).trigger("reloadGrid");if(r){a(n).setGridParam({url:r})}if(a.isFunction(l.p.afterClear)){l.p.afterClear()}};var i=function(){var q=document.createElement("tr");var n,s,m,o,r,p;if(l.p.formtype=="horizontal"){a(f).append(q)}a.each(l.p.filterModel,function(z,u){o=document.createElement("td");a(o).append("<label for='"+this.name+"'>"+this.label+"</label>");r=document.createElement("td");var y=this;if(!this.stype){this.stype="text"}switch(this.stype){case"select":if(this.surl){a(r).load(this.surl,function(){if(y.defval){a("select",this).val(y.defval)}a("select",this).attr({name:y.name,id:"sg_"+y.name});if(y.sopt){a("select",this).attr(y.sopt)}if(l.p.gridToolbar===true&&y.width){a("select",this).width(y.width)}if(l.p.autosearch===true){a("select",this).change(function(C){h();return false})}})}else{if(y.sopt.value){var t=y.sopt.value.split(";"),B,w;var v=document.createElement("select");a(v).attr({name:y.name,id:"sg_"+y.name}).attr(y.sopt);for(var x=0;x<t.length;x++){B=t[x].split(":");w=document.createElement("option");w.value=B[0];w.innerHTML=B[1];if(B[1]==y.defval){w.selected="selected"}v.appendChild(w)}if(l.p.gridToolbar===true&&y.width){a(v).width(y.width)}a(r).append(v);if(l.p.autosearch===true){a(v).change(function(C){h();return false})}}}break;case"text":var A=this.defval?this.defval:"";a(r).append("<input type='text' name='"+this.name+"' id='sg_"+this.name+"' value='"+A+"'/>");if(y.sopt){a("input",r).attr(y.sopt)}if(l.p.gridToolbar===true&&y.width){if(a.browser.msie){a("input",r).width(y.width-4)}else{a("input",r).width(y.width-2)}}if(l.p.autosearch===true){a("input",r).keypress(function(D){var C=D.charCode?D.charCode:D.keyCode?D.keyCode:0;if(C==13){h();return false}return this})}break}if(l.p.formtype=="horizontal"){if(l.p.gridToolbar===true&&l.p.gridNames===false){a(q).append(r)}else{a(q).append(o).append(r)}a(q).append(r)}else{n=document.createElement("tr");a(n).append(o).append(r);a(f).append(n)}});r=document.createElement("td");if(l.p.enableSearch===true){s="<input type='button' id='sButton' class='"+l.p.buttonclass+"' value='"+l.p.searchButton+"'/>";a(r).append(s);a("input#sButton",r).click(function(){h();return false})}if(l.p.enableClear===true){m="<input type='button' id='cButton' class='"+l.p.buttonclass+"' value='"+l.p.clearButton+"'/>";a(r).append(m);a("input#cButton",r).click(function(){k();return false})}if(l.p.enableClear===true||l.p.enableSearch===true){if(l.p.formtype=="horizontal"){a(q).append(r)}else{n=document.createElement("tr");a(n).append("<td> </td>").append(r);a(f).append(n)}}};var j=a("<form name='SearchForm' style=display:inline;' class='"+this.p.formclass+"'></form>");var f=a("<table class='"+this.p.tableclass+"' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>");a(j).append(f);i();a(this).append(j);this.triggerSearch=function(){h()};this.clearSearch=function(){k()}})}})})(jQuery); |