341 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			341 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| Product Name: dhtmlxSuite 
 | |
| Version: 5.2.0 
 | |
| 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;
 | |
| 	else
 | |
| 		var z=this.cellWidthPC;
 | |
| 
 | |
| 	var z2=(this.initCellWidth||[]).join(",");
 | |
| 
 | |
| 	if (this._hrrar)
 | |
| 		for (var i = 0; i < this._hrrar.length; i++)
 | |
| 			if (this._hrrar[i]) z[i] = "";
 | |
| 		
 | |
| 	this.setCookie(name,cookie_param,0,z.join(","));
 | |
| 	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]<this._cCount){
 | |
| 		this.sortRows(z[0],null,z[1]);
 | |
| 		this.setSortImgState(true,z[0],z[1]);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| /**   @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.saveOrderToCookie=function(name,cookie_param){
 | |
| 	if (!this._c_order) {
 | |
| 		this._c_order=[];
 | |
| 		var l=this._cCount;
 | |
| 		for (var i=0; i<l; i++)
 | |
| 			this._c_order[i]=i;
 | |
| 	}
 | |
| 	this.setCookie(name,cookie_param,3,((this._c_order||[]).slice(0,this._cCount)).join(","));
 | |
| 	this.saveSortingToCookie(name, cookie_param);
 | |
| }
 | |
| 
 | |
| 
 | |
| /**   @desc: load sorting order from cookie
 | |
| *     @type: public
 | |
| *     @param: name - optional,cookie name
 | |
| *     @edition: Professional
 | |
| *     @topic: 2
 | |
| */
 | |
| dhtmlXGridObject.prototype.loadOrderFromCookie=function(name){
 | |
| 	var z=this._getCookie(name,3);
 | |
| 	z=(z||"").split(",");
 | |
| 	if (z.length>1 && z.length<=this._cCount){
 | |
| 			//code below probably may be optimized
 | |
| 			for (var i=0; i<z.length; i++)
 | |
| 				if ((!this._c_order && z[i]!=i)||(this._c_order && z[i]!=this._c_order[i])){
 | |
| 					var t=z[i];
 | |
| 					if (this._c_order)
 | |
| 						for (var j=0; j<this._c_order.length; j++) {
 | |
| 							if (this._c_order[j]==z[i]) {
 | |
| 								t=j; break;
 | |
| 								}
 | |
| 						}
 | |
| 					this.moveColumn(t*1,i);
 | |
| 				}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| 
 | |
| /**   @desc: load grid layout from cookie
 | |
| *     @type: public
 | |
| *     @param: name - optional,cookie name
 | |
| *     @edition: Professional
 | |
| *     @topic: 2
 | |
| */
 | |
| dhtmlXGridObject.prototype.loadSizeFromCookie=function(name){ 
 | |
| 	var z=this._getCookie(name,1);
 | |
| 	if (z)
 | |
| 		this.initCellWidth=z.split(",");
 | |
| 	var z=this._getCookie(name,0);
 | |
| 	if ((z)&&(z.length)){
 | |
| 		z = z.split(",");
 | |
| 
 | |
| 		if (!this._fake && this._hrrar) 
 | |
| 			for (var i=0; i<z.length; i++) 
 | |
| 				if (this._hrrar[i]) z[i]=0;
 | |
| 
 | |
| 		if (this.cellWidthType=='px')
 | |
| 			this.cellWidthPX=z;
 | |
| 		else
 | |
| 			this.cellWidthPC=z;
 | |
| 		}
 | |
| 
 | |
| 	for (var i=0; i<z.length; i++)
 | |
| 		if (z[i] === ""){
 | |
| 			z[i] = this.initCellWidth[i];
 | |
| 			this.setColumnHidden(i, true);
 | |
| 		}
 | |
| 
 | |
| 	this.setSizes();
 | |
|     return true;
 | |
| }
 | |
| 
 | |
| /**   @desc: clear cookie with grid config details
 | |
| *     @type: public
 | |
| *     @param: name - optional,cookie name
 | |
| *     @edition: Professional
 | |
| *     @topic: 2
 | |
| */
 | |
| dhtmlXGridObject.prototype.clearConfigCookie=function(name){
 | |
| 	if (!name) name=this.entBox.id;
 | |
| 	var str = "gridSettings"+name + "=||||";
 | |
| 	document.cookie = str;
 | |
| }
 | |
| dhtmlXGridObject.prototype.clearSizeCookie=dhtmlXGridObject.prototype.clearConfigCookie;
 | |
| 
 | |
| 
 | |
| /**   @desc: save cookie
 | |
| *     @type: private
 | |
| *     @param: name - cookie name
 | |
| *     @param: value - cookie value
 | |
| *     @param: cookie_param - additional parameters added to cookie
 | |
| *     @edition: Professional
 | |
| *     @topic: 0
 | |
| */
 | |
| 
 | |
| dhtmlXGridObject.prototype.setCookie=function(name,cookie_param,pos,value) {
 | |
| 	if (!name) name=this.entBox.id;
 | |
| 	var t=this.getCookie(name);
 | |
| 	t=(t||"||||").split("|");
 | |
| 	t[pos]=value;
 | |
| 	var str = "gridSettings"+name + "=" + t.join("|").replace(/,/g,"-") +  (cookie_param?("; "+cookie_param):"");
 | |
| //	console.log("save",str)
 | |
| 	document.cookie = str;
 | |
| }
 | |
| 
 | |
| /**   @desc: get cookie
 | |
| *     @type: private
 | |
| *     @param: name - cookie name
 | |
| *     @edition: Professional
 | |
| *     @topic: 0
 | |
| */
 | |
| dhtmlXGridObject.prototype.getCookie=function(name,surname) { 
 | |
| 	if (!name) name=this.entBox.id;
 | |
| 	name=(surname||"gridSettings")+name;
 | |
| 	var search = name + "=";
 | |
| 	if (document.cookie.length > 0) {
 | |
| 		var offset = document.cookie.indexOf(search);
 | |
| 		if (offset != -1) {
 | |
| 			offset += search.length;
 | |
| 			var end = document.cookie.indexOf(";", offset);
 | |
| 			if (end == -1)
 | |
| 				end = document.cookie.length;
 | |
| 			return document.cookie.substring(offset, end);
 | |
| 						}		}
 | |
| };
 | |
| dhtmlXGridObject.prototype._getCookie=function(name,pos) {
 | |
| //	console.log("get",this.getCookie(name))
 | |
| 	return ((this.getCookie(name)||"||||").replace(/-/g,",").split("|"))[pos];
 | |
| }
 | |
| //(c)dhtmlx ltd. www.dhtmlx.com
 |