/* Product Name: dhtmlxSuite Version: 4.0.3 Edition: Professional License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com Copyright UAB Dinamenta http://www.dhtmlx.com */ /** * @desc: enable automatic size saving to cookie * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @type: public * @edition: Professional * @topic: 0 */ dhtmlXGridObject.prototype.enableAutoSizeSaving = function(name,cookie_param){ this.attachEvent("onResizeEnd",function(){ this.saveSizeToCookie(name,cookie_param) }); } /** * @desc: store opene state of TreeGrid in cookie * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @type: public * @edition: Professional * @topic: 0 */ dhtmlXGridObject.prototype.saveOpenStates = function(name,cookie_param){ if (!name) name=this.entBox.id; var t=[]; this._h2.forEachChild(0,function(el){ if (el.state=="minus") t.push(el.id); }); var str = "gridOpen"+(name||"") + "=" + t.join("|") + (cookie_param?("; "+cookie_param):""); document.cookie = str; } /** * @desc: load open state of TreeGrid in cookie * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @type: public * @edition: Professional * @topic: 0 */ dhtmlXGridObject.prototype.loadOpenStates = function(name,cookie_param){ var val=this.getCookie(name,"gridOpen"); if (!val) return; val=val.split("|"); for (var i = 0; i < val.length; i++) { var pid = this.getParentId(val[i]); if (!this.getOpenState(pid)) continue; this.openItem(val[i]); } } /** * @desc: enable automatic saving column state ( hidden | shown ) * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @type: public * @edition: Professional * @topic: 0 */ dhtmlXGridObject.prototype.enableAutoHiddenColumnsSaving = function(name,cookie_param){ this.attachEvent("onColumnHidden",function(){ this.saveHiddenColumnsToCookie(name,cookie_param); }); } /** * @desc: enable automatic sorting state saving to cookie * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @type: public * @edition: Professional * @topic: 0 */ dhtmlXGridObject.prototype.enableSortingSaving = function(name,cookie_param){ this.attachEvent("onBeforeSorting",function(){ var that=this; window.setTimeout(function(){ that.saveSortingToCookie(name,cookie_param); },1); return true; }); } /** * @desc: enable automatic column order saving to cookie * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @type: public * @edition: Professional * @topic: 0 */ dhtmlXGridObject.prototype.enableOrderSaving = function(name,cookie_param){ this.attachEvent("onAfterCMove",function(){ this.saveOrderToCookie(name,cookie_param); this.saveSizeToCookie(name,cookie_param); }); } /** * @desc: enable automatic saving of all possible params * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @type: public * @edition: Professional * @topic: 0 */ dhtmlXGridObject.prototype.enableAutoSaving = function(name,cookie_param){ this.enableOrderSaving(name,cookie_param); this.enableAutoSizeSaving(name,cookie_param); this.enableSortingSaving(name,cookie_param); } /** @desc: save grid layout to cookie * @type: public * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @edition: Professional * @topic: 2 */ dhtmlXGridObject.prototype.saveSizeToCookie=function(name,cookie_param){ if (this.cellWidthType=='px') var z=this.cellWidthPX.join(","); else var z=this.cellWidthPC.join(","); var z2=(this.initCellWidth||(new Array)).join(","); this.setCookie(name,cookie_param,0,z); this.setCookie(name,cookie_param,1,z2); } /** @desc: save hidden columns to cookie * @type: public * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @edition: Professional * @topic: 2 */ dhtmlXGridObject.prototype.saveHiddenColumnsToCookie=function(name,cookie_param){ var hs=[].concat(this._hrrar||[]); if (this._fake && this._fake._hrrar) for (var i=0; i < this._fake._cCount; i++) hs[i]=this._fake._hrrar[i]?"1":""; this.setCookie(name,cookie_param,4,hs.join(",").replace(/display:none;/g,"1")); } /** @desc: load sorting order from cookie * @type: public * @param: name - optional,cookie name * @edition: Professional * @topic: 2 */ dhtmlXGridObject.prototype.loadHiddenColumnsFromCookie=function(name){ var z=this._getCookie(name,4); var ar=(z||"").split(","); for (var i=0; i < this._cCount; i++) this.setColumnHidden(i,(ar[i]?true:false)); } /** @desc: save sorting order to cookie * @type: public * @param: name - optional, cookie name * @param: cookie_param - additional parameters added to cookie * @edition: Professional * @topic: 2 */ dhtmlXGridObject.prototype.saveSortingToCookie=function(name,cookie_param){ this.setCookie(name,cookie_param,2,(this.getSortingState()||[]).join(",")); } /** @desc: load sorting order from cookie * @type: public * @param: name - optional,cookie name * @edition: Professional * @topic: 2 */ dhtmlXGridObject.prototype.loadSortingFromCookie=function(name){ var z=this._getCookie(name,2); z=(z||"").split(","); if (z.length>1 && z[0]1 && z.length<=this._cCount){ //code below probably may be optimized for (var i=0; i