incubator-ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vik...@apache.org
Subject svn commit: r1356336 [22/34] - in /incubator/ambari/trunk: ./ mon_dashboard/src/addOns/nagios/plugins/ mon_dashboard/src/ui/libs/ mon_dashboard/src/ui/libs/html5shiv/ mon_dashboard/src/ui/libs/jqgrid/css/ mon_dashboard/src/ui/libs/jqgrid/js/ mon_dashbo...
Date Mon, 02 Jul 2012 16:46:24 GMT
Modified: incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/grid.treegrid.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/grid.treegrid.js?rev=1356336&r1=1356335&r2=1356336&view=diff
==============================================================================
--- incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/grid.treegrid.js (original)
+++ incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/grid.treegrid.js Mon Jul  2 16:45:55 2012
@@ -1,668 +1,689 @@
-/**
- * jqGrid extension - Tree Grid
- * 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
-**/
-
-/*global document, jQuery, $ */
-(function($) {
-$.jgrid.extend({
-	setTreeNode : function(i, len){
-		return this.each(function(){
-			var $t = this;
-			if( !$t.grid || !$t.p.treeGrid ) {return;}
-			var expCol = $t.p.expColInd,
-			expanded = $t.p.treeReader.expanded_field,
-			isLeaf = $t.p.treeReader.leaf_field,
-			level = $t.p.treeReader.level_field,
-			icon = $t.p.treeReader.icon_field,
-			loaded = $t.p.treeReader.loaded,  lft, rgt, curLevel, ident,lftpos, twrap,
-			ldat, lf;
-			while(i<len) {
-				var ind = $t.rows[i].id, dind = $t.p._index[ind], expan;
-				ldat = $t.p.data[dind];
-				//$t.rows[i].level = ldat[level];
-				if($t.p.treeGridModel == 'nested') {
-					if(!ldat[isLeaf]) {
-					lft = parseInt(ldat[$t.p.treeReader.left_field],10);
-					rgt = parseInt(ldat[$t.p.treeReader.right_field],10);
-					// NS Model
-						ldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false';
-						$t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];
-					}
-				}
-				//else {
-					//row.parent_id = rd[$t.p.treeReader.parent_id_field];
-				//}
-				curLevel = parseInt(ldat[level],10);
-				if($t.p.tree_root_level === 0) {
-					ident = curLevel+1;
-					lftpos = curLevel;
-				} else {
-					ident = curLevel;
-					lftpos = curLevel -1;
-				}
-				twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>";
-				twrap += "<div style='"+($t.p.direction=="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='ui-icon ";
-
-
-				if(ldat[loaded] !== undefined) {
-					if(ldat[loaded]=="true" || ldat[loaded]===true) {
-						ldat[loaded] = true;
-					} else {
-						ldat[loaded] = false;
-					}
-				}
-				if(ldat[isLeaf] == "true" || ldat[isLeaf] === true) {
-					twrap += ((ldat[icon] !== undefined && ldat[icon] !== "") ? ldat[icon] : $t.p.treeIcons.leaf)+" tree-leaf treeclick";
-					ldat[isLeaf] = true;
-					lf="leaf";
-				} else {
-					ldat[isLeaf] = false;
-					lf="";
-				}
-				ldat[expanded] = ((ldat[expanded] == "true" || ldat[expanded] === true) ? true : false) && ldat[loaded];
-				if(ldat[expanded] === false) {
-					twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.plus+" tree-plus treeclick'");
-				} else {
-					twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.minus+" tree-minus treeclick'");
-				}
-				
-				twrap += "></div></div>";
-				$($t.rows[i].cells[expCol]).wrapInner("<span class='cell-wrapper"+lf+"'></span>").prepend(twrap);
-
-				if(curLevel !== parseInt($t.p.tree_root_level,10)) {
-					var pn = $($t).jqGrid('getNodeParent',ldat);
-					expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true;
-					if( !expan ){
-						$($t.rows[i]).css("display","none");
-					}
-				}
-				$($t.rows[i].cells[expCol])
-					.find("div.treeclick")
-					.bind("click",function(e){
-						var target = e.target || e.srcElement,
-						ind2 =$(target,$t.rows).closest("tr.jqgrow")[0].id,
-						pos = $t.p._index[ind2];
-						if(!$t.p.data[pos][isLeaf]){
-							if($t.p.data[pos][expanded]){
-								$($t).jqGrid("collapseRow",$t.p.data[pos]);
-								$($t).jqGrid("collapseNode",$t.p.data[pos]);
-							} else {
-								$($t).jqGrid("expandRow",$t.p.data[pos]);
-								$($t).jqGrid("expandNode",$t.p.data[pos]);
-							}
-						}
-						return false;
-					});
-				if($t.p.ExpandColClick === true) {
-					$($t.rows[i].cells[expCol])
-						.find("span.cell-wrapper")
-						.css("cursor","pointer")
-						.bind("click",function(e) {
-							var target = e.target || e.srcElement,
-							ind2 =$(target,$t.rows).closest("tr.jqgrow")[0].id,
-							pos = $t.p._index[ind2];
-							if(!$t.p.data[pos][isLeaf]){
-								if($t.p.data[pos][expanded]){
-									$($t).jqGrid("collapseRow",$t.p.data[pos]);
-									$($t).jqGrid("collapseNode",$t.p.data[pos]);
-								} else {
-									$($t).jqGrid("expandRow",$t.p.data[pos]);
-									$($t).jqGrid("expandNode",$t.p.data[pos]);
-								}
-							}
-							$($t).jqGrid("setSelection",ind2);
-							return false;
-						});
-				}
-				i++;
-			}
-
-		});
-	},
-	setTreeGrid : function() {
-		return this.each(function (){
-			var $t = this, i=0, pico, ecol = false, nm, key, dupcols=[];
-			if(!$t.p.treeGrid) {return;}
-			if(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});}
-			$t.p.subGrid = false;$t.p.altRows =false;
-			$t.p.pgbuttons = false;$t.p.pginput = false;
-			$t.p.gridview =  true;
-			if($t.p.rowTotal === null ) { $t.p.rowNum = 10000; }
-			$t.p.multiselect = false;$t.p.rowList = [];
-			$t.p.expColInd = 0;
-			pico = 'ui-icon-triangle-1-' + ($t.p.direction=="rtl" ? 'w' : 'e');
-			$t.p.treeIcons = $.extend({plus:pico,minus:'ui-icon-triangle-1-s',leaf:'ui-icon-radio-off'},$t.p.treeIcons || {});
-			if($t.p.treeGridModel == 'nested') {
-				$t.p.treeReader = $.extend({
-					level_field: "level",
-					left_field:"lft",
-					right_field: "rgt",
-					leaf_field: "isLeaf",
-					expanded_field: "expanded",
-					loaded: "loaded",
-					icon_field: "icon"
-				},$t.p.treeReader);
-			} else if($t.p.treeGridModel == 'adjacency') {
-				$t.p.treeReader = $.extend({
-						level_field: "level",
-						parent_id_field: "parent",
-						leaf_field: "isLeaf",
-						expanded_field: "expanded",
-						loaded: "loaded",
-						icon_field: "icon"
-				},$t.p.treeReader );
-			}
-			for ( key in $t.p.colModel){
-				if($t.p.colModel.hasOwnProperty(key)) {
-					nm = $t.p.colModel[key].name;
-					if( nm == $t.p.ExpandColumn && !ecol ) {
-						ecol = true;
-						$t.p.expColInd = i;
-					}
-					i++;
-					//
-					for(var tkey in $t.p.treeReader) {
-						if($t.p.treeReader[tkey] == nm)
-							dupcols.push(nm);
-				}
-
-			}
-			}
-			$.each($t.p.treeReader,function(j,n){
-				if(n && $.inArray(n, dupcols) === -1){
-					if(j==='leaf_field') { $t.p._treeleafpos= i; }
-				i++;
-					$t.p.colNames.push(n);
-					$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});
-				}
-			});			
-		});
-	},
-	expandRow: function (record){
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) {return;}
-			var childern = $($t).jqGrid("getNodeChildren",record),
-			//if ($($t).jqGrid("isVisibleNode",record)) {
-			expanded = $t.p.treeReader.expanded_field;
-			$(childern).each(function(i){
-				var id  = $.jgrid.getAccessor(this,$t.p.localReader.id);
-				$("#"+id,$t.grid.bDiv).css("display","");
-				if(this[expanded]) {
-					$($t).jqGrid("expandRow",this);
-				}
-			});
-			//}
-		});
-	},
-	collapseRow : function (record) {
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) {return;}
-			var childern = $($t).jqGrid("getNodeChildren",record),
-			expanded = $t.p.treeReader.expanded_field;
-			$(childern).each(function(i){
-				var id  = $.jgrid.getAccessor(this,$t.p.localReader.id);
-				$("#"+id,$t.grid.bDiv).css("display","none");
-				if(this[expanded]){
-					$($t).jqGrid("collapseRow",this);
-				}
-			});
-		});
-	},
-	// NS ,adjacency models
-	getRootNodes : function() {
-		var result = [];
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) {return;}
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var level = $t.p.treeReader.level_field;
-					$($t.p.data).each(function(i){
-						if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {
-							result.push(this);
-						}
-					});
-					break;
-				case 'adjacency' :
-					var parent_id = $t.p.treeReader.parent_id_field;
-					$($t.p.data).each(function(i){
-						if(this[parent_id] === null || String(this[parent_id]).toLowerCase() == "null") {
-							result.push(this);
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},
-	getNodeDepth : function(rc) {
-		var ret = null;
-		this.each(function(){
-			if(!this.grid || !this.p.treeGrid) {return;}
-			var $t = this;
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var level = $t.p.treeReader.level_field;
-					ret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10);
-					break;
-				case 'adjacency' :
-					ret = $($t).jqGrid("getNodeAncestors",rc).length;
-					break;
-			}
-		});
-		return ret;
-	},
-	getNodeParent : function(rc) {
-		var result = null;
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) {return;}
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var lftc = $t.p.treeReader.left_field,
-					rgtc = $t.p.treeReader.right_field,
-					levelc = $t.p.treeReader.level_field,
-					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
-					$(this.p.data).each(function(){
-						if(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) {
-							result = this;
-							return false;
-						}
-					});
-					break;
-				case 'adjacency' :
-					var parent_id = $t.p.treeReader.parent_id_field,
-					dtid = $t.p.localReader.id;
-					$(this.p.data).each(function(i,val){
-						if(this[dtid] == rc[parent_id] ) {
-							result = this;
-							return false;
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},
-	getNodeChildren : function(rc) {
-		var result = [];
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) {return;}
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var lftc = $t.p.treeReader.left_field,
-					rgtc = $t.p.treeReader.right_field,
-					levelc = $t.p.treeReader.level_field,
-					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
-					$(this.p.data).each(function(i){
-						if(parseInt(this[levelc],10) === level+1 && parseInt(this[lftc],10) > lft && parseInt(this[rgtc],10) < rgt) {
-							result.push(this);
-						}
-					});
-					break;
-				case 'adjacency' :
-					var parent_id = $t.p.treeReader.parent_id_field,
-					dtid = $t.p.localReader.id;
-					$(this.p.data).each(function(i,val){
-						if(this[parent_id] == rc[dtid]) {
-							result.push(this);
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},
-	getFullTreeNode : function(rc) {
-		var result = [];
-		this.each(function(){
-			var $t = this, len;
-			if(!$t.grid || !$t.p.treeGrid) {return;}
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var lftc = $t.p.treeReader.left_field,
-					rgtc = $t.p.treeReader.right_field,
-					levelc = $t.p.treeReader.level_field,
-					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
-					$(this.p.data).each(function(i){
-						if(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) {
-							result.push(this);
-						}
-					});
-					break;
-				case 'adjacency' :
-					if(rc) {
-					result.push(rc);
-					var parent_id = $t.p.treeReader.parent_id_field,
-					dtid = $t.p.localReader.id;
-					$(this.p.data).each(function(i){
-						len = result.length;
-						for (i = 0; i < len; i++) {
-							if (result[i][dtid] == this[parent_id]) {
-								result.push(this);
-								break;
-							}
-						}
-					});
-					}
-					break;
-			}
-		});
-		return result;
-	},	
-	// End NS, adjacency Model
-	getNodeAncestors : function(rc) {
-		var ancestors = [];
-		this.each(function(){
-			if(!this.grid || !this.p.treeGrid) {return;}
-			var parent = $(this).jqGrid("getNodeParent",rc);
-			while (parent) {
-				ancestors.push(parent);
-				parent = $(this).jqGrid("getNodeParent",parent);	
-			}
-		});
-		return ancestors;
-	},
-	isVisibleNode : function(rc) {
-		var result = true;
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) {return;}
-			var ancestors = $($t).jqGrid("getNodeAncestors",rc),
-			expanded = $t.p.treeReader.expanded_field;
-			$(ancestors).each(function(){
-				result = result && this[expanded];
-				if(!result) {return false;}
-			});
-		});
-		return result;
-	},
-	isNodeLoaded : function(rc) {
-		var result;
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) {return;}
-			var isLeaf = $t.p.treeReader.leaf_field;
-			if(rc !== undefined ) {
-				if(rc.loaded !== undefined) {
-					result = rc.loaded;
-				} else if( rc[isLeaf] || $($t).jqGrid("getNodeChildren",rc).length > 0){
-					result = true;
-				} else {
-					result = false;
-				}
-			} else {
-				result = false;
-			}
-		});
-		return result;
-	},
-	expandNode : function(rc) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) {return;}
-			var expanded = this.p.treeReader.expanded_field,
-			parent = this.p.treeReader.parent_id_field,
-			loaded = this.p.treeReader.loaded,
-			level = this.p.treeReader.level_field,
-			lft = this.p.treeReader.left_field,
-			rgt = this.p.treeReader.right_field;
-
-			if(!rc[expanded]) {
-				var id = $.jgrid.getAccessor(rc,this.p.localReader.id);
-				var rc1 = $("#"+id,this.grid.bDiv)[0];
-				var position = this.p._index[id];
-				if( $(this).jqGrid("isNodeLoaded",this.p.data[position]) ) {
-					rc[expanded] = true;
-					$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
-				} else {
-					rc[expanded] = true;
-					$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
-					this.p.treeANode = rc1.rowIndex;
-					this.p.datatype = this.p.treedatatype;
-					if(this.p.treeGridModel == 'nested') {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});
-					} else {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );
-					}
-					$(this).trigger("reloadGrid");
-					rc[loaded] = true;
-					if(this.p.treeGridModel == 'nested') {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
-					} else {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); 
-					}
-				}
-			}
-		});
-	},
-	collapseNode : function(rc) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) {return;}
-			var expanded = this.p.treeReader.expanded_field;
-			if(rc[expanded]) {
-				rc[expanded] = false;
-				var id = $.jgrid.getAccessor(rc,this.p.localReader.id);
-				var rc1 = $("#"+id,this.grid.bDiv)[0];
-				$("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus");
-			}
-		});
-	},
-	SortTree : function( sortname, newDir, st, datefmt) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) {return;}
-			var i, len,
-			rec, records = [], $t = this, query, roots,
-			rt = $(this).jqGrid("getRootNodes");
-			// Sorting roots
-			query = $.jgrid.from(rt);
-			query.orderBy(sortname,newDir,st, datefmt);
-			roots = query.select();
-
-			// Sorting children
-			for (i = 0, len = roots.length; i < len; i++) {
-				rec = roots[i];
-				records.push(rec);
-				$(this).jqGrid("collectChildrenSortTree",records, rec, sortname, newDir,st, datefmt);
-			}
-			$.each(records, function(index, row) {
-				var id  = $.jgrid.getAccessor(this,$t.p.localReader.id);
-				$('#'+$t.p.id+ ' tbody tr:eq('+index+')').after($('tr#'+id,$t.grid.bDiv));
-			});
-			query = null;roots=null;records=null;
-		});
-	},
-	collectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) {return;}
-			var i, len,
-			child, ch, query, children;
-			ch = $(this).jqGrid("getNodeChildren",rec);
-			query = $.jgrid.from(ch);
-			query.orderBy(sortname, newDir, st, datefmt);
-			children = query.select();
-			for (i = 0, len = children.length; i < len; i++) {
-				child = children[i];
-				records.push(child);
-				$(this).jqGrid("collectChildrenSortTree",records, child, sortname, newDir, st, datefmt); 
-			}
-		});
-	},
-	// experimental 
-	setTreeRow : function(rowid, data) {
-		var success=false;
-		this.each(function(){
-			var t = this;
-			if(!t.grid || !t.p.treeGrid) {return;}
-			success = $(t).jqGrid("setRowData",rowid,data);
-		});
-		return success;
-	},
-	delTreeNode : function (rowid) {
-		return this.each(function () {
-			var $t = this, rid = $t.p.localReader.id,
-			left = $t.p.treeReader.left_field,
-			right = $t.p.treeReader.right_field, myright, width, res, key;
-			if(!$t.grid || !$t.p.treeGrid) {return;}
-			var rc = $t.p._index[rowid];
-			if (rc !== undefined) {
-				// nested
-				myright = parseInt($t.p.data[rc][right],10);
-				width = myright -  parseInt($t.p.data[rc][left],10) + 1;
-				var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]);
-				if(dr.length>0){
-					for (var i=0;i<dr.length;i++){
-						$($t).jqGrid("delRowData",dr[i][rid]);
-					}
-				}
-				if( $t.p.treeGridModel === "nested") {
-					// ToDo - update grid data
-					res = $.jgrid.from($t.p.data)
-						.greater(left,myright,{stype:'integer'})
-						.select();
-					if(res.length) {
-						for( key in res) {
-							res[key][left] = parseInt(res[key][left],10) - width ;
-			}
-					}
-					res = $.jgrid.from($t.p.data)
-						.greater(right,myright,{stype:'integer'})
-						.select();
-					if(res.length) {
-						for( key in res) {
-							res[key][right] = parseInt(res[key][right],10) - width ;
-						}
-					}
-				}
-			}
-		});
-	},
-	addChildNode : function( nodeid, parentid, data ) {
-		//return this.each(function(){
-		var $t = this[0];
-		if(data) {
-			// we suppose tha the id is autoincremet and
-			var expanded = $t.p.treeReader.expanded_field,
-			isLeaf = $t.p.treeReader.leaf_field,
-			level = $t.p.treeReader.level_field,
-			icon = $t.p.treeReader.icon_field,
-			parent = $t.p.treeReader.parent_id_field,
-			left = $t.p.treeReader.left_field,
-			right = $t.p.treeReader.right_field,
-			loaded = $t.p.treeReader.loaded,
-			method, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright;
-
-			if ( typeof nodeid === 'undefined' || nodeid === null ) {
-				i = $t.p.data.length-1;
-				if(	i>= 0 ) {
-					while(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;}
-				}
-				nodeid = max+1;
-			}
-			var prow = $($t).jqGrid('getInd', parentid);
-				leaf = false;
-				// if not a parent we assume root
-				if ( parentid === undefined  || parentid === null || parentid==="") {
-					parentid = null;
-					rowind = null;
-					method = 'last';
-					parentlevel = $t.p.tree_root_level;
-					i = $t.p.data.length+1;
-				} else {
-					method = 'after';
-					parentindex = $t.p._index[parentid];
-					parentdata = $t.p.data[parentindex];
-					parentid = parentdata[$t.p.localReader.id];
-					parentlevel = parseInt(parentdata[level],10)+1;
-					var childs = $($t).jqGrid('getFullTreeNode', parentdata);
-					// if there are child nodes get the last index of it
-					if(childs.length) {
-						i = childs[childs.length-1][$t.p.localReader.id];
-						rowind = i;
-						i = $($t).jqGrid('getInd',rowind)+1;
-					} else {
-						i = $($t).jqGrid('getInd', parentid)+1;
-					}
-					// if the node is leaf
-					if(parentdata[isLeaf]) {
-						leaf = true;
-						parentdata[expanded] = true;
-						//var prow = $($t).jqGrid('getInd', parentid);
-						$($t.rows[prow])
-							.find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper")
-							.end()
-							.find("div.tree-leaf").removeClass($t.p.treeIcons.leaf+" tree-leaf").addClass($t.p.treeIcons.minus+" tree-minus");
-						$t.p.data[parentindex][isLeaf] = false;
-						parentdata[loaded] = true;
-					}
-				}
-				len = i+1;
-
-			data[expanded] = false;
-			data[loaded] = true;
-			data[level] = parentlevel;
-			data[isLeaf] = true;
-			if( $t.p.treeGridModel === "adjacency") {
-				data[parent] = parentid;
-			}
-			if( $t.p.treeGridModel === "nested") {
-				// this method requiere more attention
-				var query, res, key;
-				//maxright = parseInt(maxright,10);
-				// ToDo - update grid data
-				if(parentid !== null) {
-					maxright = parseInt(parentdata[right],10);
-					query = $.jgrid.from($t.p.data);
-					query = query.greaterOrEquals(right,maxright,{stype:'integer'});
-					res = query.select();
-					if(res.length) {
-						for( key in res) {
-							res[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];
-							res[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];
-						}
-					}
-					data[left] = maxright;
-					data[right]= maxright+1;
-				} else {
-					maxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10);
-					res = $.jgrid.from($t.p.data)
-						.greater(left,maxright,{stype:'integer'})
-						.select();
-					if(res.length) {
-						for( key in res) {
-							res[key][left] = parseInt(res[key][left],10) +2 ;
-						}
-					}
-					res = $.jgrid.from($t.p.data)
-						.greater(right,maxright,{stype:'integer'})
-						.select();
-					if(res.length) {
-						for( key in res) {
-							res[key][right] = parseInt(res[key][right],10) +2 ;
-						}
-					}
-					data[left] = maxright+1;
-					data[right] = maxright + 2;
-				}
-			}
-			if( parentid === null || $($t).jqGrid("isNodeLoaded",parentdata) || leaf ) {
-					$($t).jqGrid('addRowData', nodeid, data, method, rowind);
-					$($t).jqGrid('setTreeNode', i, len);
-			}
-			if(parentdata && !parentdata[expanded]) {
-				$($t.rows[prow])
-					.find("div.treeclick")
-					.click();
-			}
-		}
-		//});
-	}
-});
-})(jQuery);
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+/**
+ * jqGrid extension - Tree Grid
+ * 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
+**/
+
+/*global document, jQuery, $ */
+(function($) {
+$.jgrid.extend({
+	setTreeNode : function(i, len){
+		return this.each(function(){
+			var $t = this;
+			if( !$t.grid || !$t.p.treeGrid ) {return;}
+			var expCol = $t.p.expColInd,
+			expanded = $t.p.treeReader.expanded_field,
+			isLeaf = $t.p.treeReader.leaf_field,
+			level = $t.p.treeReader.level_field,
+			icon = $t.p.treeReader.icon_field,
+			loaded = $t.p.treeReader.loaded,  lft, rgt, curLevel, ident,lftpos, twrap,
+			ldat, lf;
+			while(i<len) {
+				var ind = $t.rows[i].id, dind = $t.p._index[ind], expan;
+				ldat = $t.p.data[dind];
+				//$t.rows[i].level = ldat[level];
+				if($t.p.treeGridModel == 'nested') {
+					if(!ldat[isLeaf]) {
+					lft = parseInt(ldat[$t.p.treeReader.left_field],10);
+					rgt = parseInt(ldat[$t.p.treeReader.right_field],10);
+					// NS Model
+						ldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false';
+						$t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];
+					}
+				}
+				//else {
+					//row.parent_id = rd[$t.p.treeReader.parent_id_field];
+				//}
+				curLevel = parseInt(ldat[level],10);
+				if($t.p.tree_root_level === 0) {
+					ident = curLevel+1;
+					lftpos = curLevel;
+				} else {
+					ident = curLevel;
+					lftpos = curLevel -1;
+				}
+				twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>";
+				twrap += "<div style='"+($t.p.direction=="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='ui-icon ";
+
+
+				if(ldat[loaded] !== undefined) {
+					if(ldat[loaded]=="true" || ldat[loaded]===true) {
+						ldat[loaded] = true;
+					} else {
+						ldat[loaded] = false;
+					}
+				}
+				if(ldat[isLeaf] == "true" || ldat[isLeaf] === true) {
+					twrap += ((ldat[icon] !== undefined && ldat[icon] !== "") ? ldat[icon] : $t.p.treeIcons.leaf)+" tree-leaf treeclick";
+					ldat[isLeaf] = true;
+					lf="leaf";
+				} else {
+					ldat[isLeaf] = false;
+					lf="";
+				}
+				ldat[expanded] = ((ldat[expanded] == "true" || ldat[expanded] === true) ? true : false) && ldat[loaded];
+				if(ldat[expanded] === false) {
+					twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.plus+" tree-plus treeclick'");
+				} else {
+					twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.minus+" tree-minus treeclick'");
+				}
+				
+				twrap += "></div></div>";
+				$($t.rows[i].cells[expCol]).wrapInner("<span class='cell-wrapper"+lf+"'></span>").prepend(twrap);
+
+				if(curLevel !== parseInt($t.p.tree_root_level,10)) {
+					var pn = $($t).jqGrid('getNodeParent',ldat);
+					expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true;
+					if( !expan ){
+						$($t.rows[i]).css("display","none");
+					}
+				}
+				$($t.rows[i].cells[expCol])
+					.find("div.treeclick")
+					.bind("click",function(e){
+						var target = e.target || e.srcElement,
+						ind2 =$(target,$t.rows).closest("tr.jqgrow")[0].id,
+						pos = $t.p._index[ind2];
+						if(!$t.p.data[pos][isLeaf]){
+							if($t.p.data[pos][expanded]){
+								$($t).jqGrid("collapseRow",$t.p.data[pos]);
+								$($t).jqGrid("collapseNode",$t.p.data[pos]);
+							} else {
+								$($t).jqGrid("expandRow",$t.p.data[pos]);
+								$($t).jqGrid("expandNode",$t.p.data[pos]);
+							}
+						}
+						return false;
+					});
+				if($t.p.ExpandColClick === true) {
+					$($t.rows[i].cells[expCol])
+						.find("span.cell-wrapper")
+						.css("cursor","pointer")
+						.bind("click",function(e) {
+							var target = e.target || e.srcElement,
+							ind2 =$(target,$t.rows).closest("tr.jqgrow")[0].id,
+							pos = $t.p._index[ind2];
+							if(!$t.p.data[pos][isLeaf]){
+								if($t.p.data[pos][expanded]){
+									$($t).jqGrid("collapseRow",$t.p.data[pos]);
+									$($t).jqGrid("collapseNode",$t.p.data[pos]);
+								} else {
+									$($t).jqGrid("expandRow",$t.p.data[pos]);
+									$($t).jqGrid("expandNode",$t.p.data[pos]);
+								}
+							}
+							$($t).jqGrid("setSelection",ind2);
+							return false;
+						});
+				}
+				i++;
+			}
+
+		});
+	},
+	setTreeGrid : function() {
+		return this.each(function (){
+			var $t = this, i=0, pico, ecol = false, nm, key, dupcols=[];
+			if(!$t.p.treeGrid) {return;}
+			if(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});}
+			$t.p.subGrid = false;$t.p.altRows =false;
+			$t.p.pgbuttons = false;$t.p.pginput = false;
+			$t.p.gridview =  true;
+			if($t.p.rowTotal === null ) { $t.p.rowNum = 10000; }
+			$t.p.multiselect = false;$t.p.rowList = [];
+			$t.p.expColInd = 0;
+			pico = 'ui-icon-triangle-1-' + ($t.p.direction=="rtl" ? 'w' : 'e');
+			$t.p.treeIcons = $.extend({plus:pico,minus:'ui-icon-triangle-1-s',leaf:'ui-icon-radio-off'},$t.p.treeIcons || {});
+			if($t.p.treeGridModel == 'nested') {
+				$t.p.treeReader = $.extend({
+					level_field: "level",
+					left_field:"lft",
+					right_field: "rgt",
+					leaf_field: "isLeaf",
+					expanded_field: "expanded",
+					loaded: "loaded",
+					icon_field: "icon"
+				},$t.p.treeReader);
+			} else if($t.p.treeGridModel == 'adjacency') {
+				$t.p.treeReader = $.extend({
+						level_field: "level",
+						parent_id_field: "parent",
+						leaf_field: "isLeaf",
+						expanded_field: "expanded",
+						loaded: "loaded",
+						icon_field: "icon"
+				},$t.p.treeReader );
+			}
+			for ( key in $t.p.colModel){
+				if($t.p.colModel.hasOwnProperty(key)) {
+					nm = $t.p.colModel[key].name;
+					if( nm == $t.p.ExpandColumn && !ecol ) {
+						ecol = true;
+						$t.p.expColInd = i;
+					}
+					i++;
+					//
+					for(var tkey in $t.p.treeReader) {
+						if($t.p.treeReader[tkey] == nm)
+							dupcols.push(nm);
+				}
+
+			}
+			}
+			$.each($t.p.treeReader,function(j,n){
+				if(n && $.inArray(n, dupcols) === -1){
+					if(j==='leaf_field') { $t.p._treeleafpos= i; }
+				i++;
+					$t.p.colNames.push(n);
+					$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});
+				}
+			});			
+		});
+	},
+	expandRow: function (record){
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) {return;}
+			var childern = $($t).jqGrid("getNodeChildren",record),
+			//if ($($t).jqGrid("isVisibleNode",record)) {
+			expanded = $t.p.treeReader.expanded_field;
+			$(childern).each(function(i){
+				var id  = $.jgrid.getAccessor(this,$t.p.localReader.id);
+				$("#"+id,$t.grid.bDiv).css("display","");
+				if(this[expanded]) {
+					$($t).jqGrid("expandRow",this);
+				}
+			});
+			//}
+		});
+	},
+	collapseRow : function (record) {
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) {return;}
+			var childern = $($t).jqGrid("getNodeChildren",record),
+			expanded = $t.p.treeReader.expanded_field;
+			$(childern).each(function(i){
+				var id  = $.jgrid.getAccessor(this,$t.p.localReader.id);
+				$("#"+id,$t.grid.bDiv).css("display","none");
+				if(this[expanded]){
+					$($t).jqGrid("collapseRow",this);
+				}
+			});
+		});
+	},
+	// NS ,adjacency models
+	getRootNodes : function() {
+		var result = [];
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) {return;}
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var level = $t.p.treeReader.level_field;
+					$($t.p.data).each(function(i){
+						if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {
+							result.push(this);
+						}
+					});
+					break;
+				case 'adjacency' :
+					var parent_id = $t.p.treeReader.parent_id_field;
+					$($t.p.data).each(function(i){
+						if(this[parent_id] === null || String(this[parent_id]).toLowerCase() == "null") {
+							result.push(this);
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},
+	getNodeDepth : function(rc) {
+		var ret = null;
+		this.each(function(){
+			if(!this.grid || !this.p.treeGrid) {return;}
+			var $t = this;
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var level = $t.p.treeReader.level_field;
+					ret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10);
+					break;
+				case 'adjacency' :
+					ret = $($t).jqGrid("getNodeAncestors",rc).length;
+					break;
+			}
+		});
+		return ret;
+	},
+	getNodeParent : function(rc) {
+		var result = null;
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) {return;}
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var lftc = $t.p.treeReader.left_field,
+					rgtc = $t.p.treeReader.right_field,
+					levelc = $t.p.treeReader.level_field,
+					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
+					$(this.p.data).each(function(){
+						if(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) {
+							result = this;
+							return false;
+						}
+					});
+					break;
+				case 'adjacency' :
+					var parent_id = $t.p.treeReader.parent_id_field,
+					dtid = $t.p.localReader.id;
+					$(this.p.data).each(function(i,val){
+						if(this[dtid] == rc[parent_id] ) {
+							result = this;
+							return false;
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},
+	getNodeChildren : function(rc) {
+		var result = [];
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) {return;}
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var lftc = $t.p.treeReader.left_field,
+					rgtc = $t.p.treeReader.right_field,
+					levelc = $t.p.treeReader.level_field,
+					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
+					$(this.p.data).each(function(i){
+						if(parseInt(this[levelc],10) === level+1 && parseInt(this[lftc],10) > lft && parseInt(this[rgtc],10) < rgt) {
+							result.push(this);
+						}
+					});
+					break;
+				case 'adjacency' :
+					var parent_id = $t.p.treeReader.parent_id_field,
+					dtid = $t.p.localReader.id;
+					$(this.p.data).each(function(i,val){
+						if(this[parent_id] == rc[dtid]) {
+							result.push(this);
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},
+	getFullTreeNode : function(rc) {
+		var result = [];
+		this.each(function(){
+			var $t = this, len;
+			if(!$t.grid || !$t.p.treeGrid) {return;}
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var lftc = $t.p.treeReader.left_field,
+					rgtc = $t.p.treeReader.right_field,
+					levelc = $t.p.treeReader.level_field,
+					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
+					$(this.p.data).each(function(i){
+						if(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) {
+							result.push(this);
+						}
+					});
+					break;
+				case 'adjacency' :
+					if(rc) {
+					result.push(rc);
+					var parent_id = $t.p.treeReader.parent_id_field,
+					dtid = $t.p.localReader.id;
+					$(this.p.data).each(function(i){
+						len = result.length;
+						for (i = 0; i < len; i++) {
+							if (result[i][dtid] == this[parent_id]) {
+								result.push(this);
+								break;
+							}
+						}
+					});
+					}
+					break;
+			}
+		});
+		return result;
+	},	
+	// End NS, adjacency Model
+	getNodeAncestors : function(rc) {
+		var ancestors = [];
+		this.each(function(){
+			if(!this.grid || !this.p.treeGrid) {return;}
+			var parent = $(this).jqGrid("getNodeParent",rc);
+			while (parent) {
+				ancestors.push(parent);
+				parent = $(this).jqGrid("getNodeParent",parent);	
+			}
+		});
+		return ancestors;
+	},
+	isVisibleNode : function(rc) {
+		var result = true;
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) {return;}
+			var ancestors = $($t).jqGrid("getNodeAncestors",rc),
+			expanded = $t.p.treeReader.expanded_field;
+			$(ancestors).each(function(){
+				result = result && this[expanded];
+				if(!result) {return false;}
+			});
+		});
+		return result;
+	},
+	isNodeLoaded : function(rc) {
+		var result;
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) {return;}
+			var isLeaf = $t.p.treeReader.leaf_field;
+			if(rc !== undefined ) {
+				if(rc.loaded !== undefined) {
+					result = rc.loaded;
+				} else if( rc[isLeaf] || $($t).jqGrid("getNodeChildren",rc).length > 0){
+					result = true;
+				} else {
+					result = false;
+				}
+			} else {
+				result = false;
+			}
+		});
+		return result;
+	},
+	expandNode : function(rc) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) {return;}
+			var expanded = this.p.treeReader.expanded_field,
+			parent = this.p.treeReader.parent_id_field,
+			loaded = this.p.treeReader.loaded,
+			level = this.p.treeReader.level_field,
+			lft = this.p.treeReader.left_field,
+			rgt = this.p.treeReader.right_field;
+
+			if(!rc[expanded]) {
+				var id = $.jgrid.getAccessor(rc,this.p.localReader.id);
+				var rc1 = $("#"+id,this.grid.bDiv)[0];
+				var position = this.p._index[id];
+				if( $(this).jqGrid("isNodeLoaded",this.p.data[position]) ) {
+					rc[expanded] = true;
+					$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
+				} else {
+					rc[expanded] = true;
+					$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
+					this.p.treeANode = rc1.rowIndex;
+					this.p.datatype = this.p.treedatatype;
+					if(this.p.treeGridModel == 'nested') {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});
+					} else {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );
+					}
+					$(this).trigger("reloadGrid");
+					rc[loaded] = true;
+					if(this.p.treeGridModel == 'nested') {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
+					} else {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); 
+					}
+				}
+			}
+		});
+	},
+	collapseNode : function(rc) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) {return;}
+			var expanded = this.p.treeReader.expanded_field;
+			if(rc[expanded]) {
+				rc[expanded] = false;
+				var id = $.jgrid.getAccessor(rc,this.p.localReader.id);
+				var rc1 = $("#"+id,this.grid.bDiv)[0];
+				$("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus");
+			}
+		});
+	},
+	SortTree : function( sortname, newDir, st, datefmt) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) {return;}
+			var i, len,
+			rec, records = [], $t = this, query, roots,
+			rt = $(this).jqGrid("getRootNodes");
+			// Sorting roots
+			query = $.jgrid.from(rt);
+			query.orderBy(sortname,newDir,st, datefmt);
+			roots = query.select();
+
+			// Sorting children
+			for (i = 0, len = roots.length; i < len; i++) {
+				rec = roots[i];
+				records.push(rec);
+				$(this).jqGrid("collectChildrenSortTree",records, rec, sortname, newDir,st, datefmt);
+			}
+			$.each(records, function(index, row) {
+				var id  = $.jgrid.getAccessor(this,$t.p.localReader.id);
+				$('#'+$t.p.id+ ' tbody tr:eq('+index+')').after($('tr#'+id,$t.grid.bDiv));
+			});
+			query = null;roots=null;records=null;
+		});
+	},
+	collectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) {return;}
+			var i, len,
+			child, ch, query, children;
+			ch = $(this).jqGrid("getNodeChildren",rec);
+			query = $.jgrid.from(ch);
+			query.orderBy(sortname, newDir, st, datefmt);
+			children = query.select();
+			for (i = 0, len = children.length; i < len; i++) {
+				child = children[i];
+				records.push(child);
+				$(this).jqGrid("collectChildrenSortTree",records, child, sortname, newDir, st, datefmt); 
+			}
+		});
+	},
+	// experimental 
+	setTreeRow : function(rowid, data) {
+		var success=false;
+		this.each(function(){
+			var t = this;
+			if(!t.grid || !t.p.treeGrid) {return;}
+			success = $(t).jqGrid("setRowData",rowid,data);
+		});
+		return success;
+	},
+	delTreeNode : function (rowid) {
+		return this.each(function () {
+			var $t = this, rid = $t.p.localReader.id,
+			left = $t.p.treeReader.left_field,
+			right = $t.p.treeReader.right_field, myright, width, res, key;
+			if(!$t.grid || !$t.p.treeGrid) {return;}
+			var rc = $t.p._index[rowid];
+			if (rc !== undefined) {
+				// nested
+				myright = parseInt($t.p.data[rc][right],10);
+				width = myright -  parseInt($t.p.data[rc][left],10) + 1;
+				var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]);
+				if(dr.length>0){
+					for (var i=0;i<dr.length;i++){
+						$($t).jqGrid("delRowData",dr[i][rid]);
+					}
+				}
+				if( $t.p.treeGridModel === "nested") {
+					// ToDo - update grid data
+					res = $.jgrid.from($t.p.data)
+						.greater(left,myright,{stype:'integer'})
+						.select();
+					if(res.length) {
+						for( key in res) {
+							res[key][left] = parseInt(res[key][left],10) - width ;
+			}
+					}
+					res = $.jgrid.from($t.p.data)
+						.greater(right,myright,{stype:'integer'})
+						.select();
+					if(res.length) {
+						for( key in res) {
+							res[key][right] = parseInt(res[key][right],10) - width ;
+						}
+					}
+				}
+			}
+		});
+	},
+	addChildNode : function( nodeid, parentid, data ) {
+		//return this.each(function(){
+		var $t = this[0];
+		if(data) {
+			// we suppose tha the id is autoincremet and
+			var expanded = $t.p.treeReader.expanded_field,
+			isLeaf = $t.p.treeReader.leaf_field,
+			level = $t.p.treeReader.level_field,
+			icon = $t.p.treeReader.icon_field,
+			parent = $t.p.treeReader.parent_id_field,
+			left = $t.p.treeReader.left_field,
+			right = $t.p.treeReader.right_field,
+			loaded = $t.p.treeReader.loaded,
+			method, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright;
+
+			if ( typeof nodeid === 'undefined' || nodeid === null ) {
+				i = $t.p.data.length-1;
+				if(	i>= 0 ) {
+					while(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;}
+				}
+				nodeid = max+1;
+			}
+			var prow = $($t).jqGrid('getInd', parentid);
+				leaf = false;
+				// if not a parent we assume root
+				if ( parentid === undefined  || parentid === null || parentid==="") {
+					parentid = null;
+					rowind = null;
+					method = 'last';
+					parentlevel = $t.p.tree_root_level;
+					i = $t.p.data.length+1;
+				} else {
+					method = 'after';
+					parentindex = $t.p._index[parentid];
+					parentdata = $t.p.data[parentindex];
+					parentid = parentdata[$t.p.localReader.id];
+					parentlevel = parseInt(parentdata[level],10)+1;
+					var childs = $($t).jqGrid('getFullTreeNode', parentdata);
+					// if there are child nodes get the last index of it
+					if(childs.length) {
+						i = childs[childs.length-1][$t.p.localReader.id];
+						rowind = i;
+						i = $($t).jqGrid('getInd',rowind)+1;
+					} else {
+						i = $($t).jqGrid('getInd', parentid)+1;
+					}
+					// if the node is leaf
+					if(parentdata[isLeaf]) {
+						leaf = true;
+						parentdata[expanded] = true;
+						//var prow = $($t).jqGrid('getInd', parentid);
+						$($t.rows[prow])
+							.find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper")
+							.end()
+							.find("div.tree-leaf").removeClass($t.p.treeIcons.leaf+" tree-leaf").addClass($t.p.treeIcons.minus+" tree-minus");
+						$t.p.data[parentindex][isLeaf] = false;
+						parentdata[loaded] = true;
+					}
+				}
+				len = i+1;
+
+			data[expanded] = false;
+			data[loaded] = true;
+			data[level] = parentlevel;
+			data[isLeaf] = true;
+			if( $t.p.treeGridModel === "adjacency") {
+				data[parent] = parentid;
+			}
+			if( $t.p.treeGridModel === "nested") {
+				// this method requiere more attention
+				var query, res, key;
+				//maxright = parseInt(maxright,10);
+				// ToDo - update grid data
+				if(parentid !== null) {
+					maxright = parseInt(parentdata[right],10);
+					query = $.jgrid.from($t.p.data);
+					query = query.greaterOrEquals(right,maxright,{stype:'integer'});
+					res = query.select();
+					if(res.length) {
+						for( key in res) {
+							res[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];
+							res[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];
+						}
+					}
+					data[left] = maxright;
+					data[right]= maxright+1;
+				} else {
+					maxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10);
+					res = $.jgrid.from($t.p.data)
+						.greater(left,maxright,{stype:'integer'})
+						.select();
+					if(res.length) {
+						for( key in res) {
+							res[key][left] = parseInt(res[key][left],10) +2 ;
+						}
+					}
+					res = $.jgrid.from($t.p.data)
+						.greater(right,maxright,{stype:'integer'})
+						.select();
+					if(res.length) {
+						for( key in res) {
+							res[key][right] = parseInt(res[key][right],10) +2 ;
+						}
+					}
+					data[left] = maxright+1;
+					data[right] = maxright + 2;
+				}
+			}
+			if( parentid === null || $($t).jqGrid("isNodeLoaded",parentdata) || leaf ) {
+					$($t).jqGrid('addRowData', nodeid, data, method, rowind);
+					$($t).jqGrid('setTreeNode', i, len);
+			}
+			if(parentdata && !parentdata[expanded]) {
+				$($t.rows[prow])
+					.find("div.treeclick")
+					.click();
+			}
+		}
+		//});
+	}
+});
+})(jQuery);

Modified: incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/i18n/grid.locale-ar.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/i18n/grid.locale-ar.js?rev=1356336&r1=1356335&r2=1356336&view=diff
==============================================================================
--- incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/i18n/grid.locale-ar.js (original)
+++ incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/i18n/grid.locale-ar.js Mon Jul  2 16:45:55 2012
@@ -1,126 +1,147 @@
-;(function($){
-/**
- * jqGrid Arabic Translation
- * 
- * 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
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "تسجيل {0} - {1} على {2}",
-		emptyrecords: "لا يوجد تسجيل",
-		loadtext: "تحميل...",
-		pgtext : "صفحة {0} على {1}"
-	},
-	search : {
-		caption: "بحث...",
-		Find: "بحث",
-		Reset: "إلغاء",
-		odata : ['يساوي', 'يختلف', 'أقل', 'أقل أو يساوي','أكبر','أكبر أو يساوي', 'يبدأ بـ','لا يبدأ بـ','est dans',"n'est pas dans",'ينته بـ','لا ينته بـ','يحتوي','لا يحتوي'],
-		groupOps: [	{ op: "مع", text: "الكل" },	{ op: "أو",  text: "لا أحد" }	],
-		matchText: " توافق",
-		rulesText: " قواعد"
-	},
-	edit : {
-		addCaption: "اضافة",
-		editCaption: "تحديث",
-		bSubmit: "تثبيث",
-		bCancel: "إلغاء",
-		bClose: "غلق",
-		saveData: "تغيرت المعطيات هل تريد التسجيل ?",
-		bYes: "نعم",
-		bNo: "لا",
-		bExit: "إلغاء",
-		msg: {
-			required: "خانة إجبارية",
-			number: "سجل رقم صحيح",
-			minValue: "يجب أن تكون القيمة أكبر أو تساوي 0",
-			maxValue: "يجب أن تكون القيمة أقل أو تساوي 0",
-			email: "بريد غير صحيح",
-			integer: "سجل عدد طبييعي صحيح",
-			url: "ليس عنوانا صحيحا. البداية الصحيحة ('http://' أو 'https://')",
-			nodefined : " ليس محدد!",
-			novalue : " قيمة الرجوع مطلوبة!",
-			customarray : "يجب على الدالة الشخصية أن تنتج جدولا",
-			customfcheck : "الدالة الشخصية مطلوبة في حالة التحقق الشخصي"
-		}
-	},
-	view : {
-		caption: "رأيت التسجيلات",
-		bClose: "غلق"
-	},
-	del : {
-		caption: "حذف",
-		msg: "حذف التسجيلات المختارة ?",
-		bSubmit: "حذف",
-		bCancel: "إلغاء"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "تغيير التسجيل المختار",
-		addtext:" ",
-		addtitle: "إضافة تسجيل",
-		deltext: " ",
-		deltitle: "حذف التسجيل المختار",
-		searchtext: " ",
-		searchtitle: "بحث عن تسجيل",
-		refreshtext: "",
-		refreshtitle: "تحديث الجدول",
-		alertcap: "تحذير",
-		alerttext: "يرجى إختيار السطر",
-		viewtext: "",
-		viewtitle: "إظهار السطر المختار"
-	},
-	col : {
-		caption: "إظهار/إخفاء الأعمدة",
-		bSubmit: "تثبيث",
-		bCancel: "إلغاء"
-	},
-	errors : {
-		errcap : "خطأ",
-		nourl : "لا يوجد عنوان محدد",
-		norecords: "لا يوجد تسجيل للمعالجة",
-		model : "عدد العناوين (colNames) <> عدد التسجيلات (colModel)!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت",
-				"الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"
-			],
-			monthNames: [
-				"جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر",
-				"جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"
-			],
-			AmPm : ["صباحا","مساءا","صباحا","مساءا"],
-			S: function (j) {return j == 1 ? 'er' : 'e';},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+;(function($){
+/**
+ * jqGrid Arabic Translation
+ * 
+ * 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
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "تسجيل {0} - {1} على {2}",
+		emptyrecords: "لا يوجد تسجيل",
+		loadtext: "تحميل...",
+		pgtext : "صفحة {0} على {1}"
+	},
+	search : {
+		caption: "بحث...",
+		Find: "بحث",
+		Reset: "إلغاء",
+		odata : ['يساوي', 'يختلف', 'أقل', 'أقل أو يساوي','أكبر','أكبر أو يساوي', 'يبدأ بـ','لا يبدأ بـ','est dans',"n'est pas dans",'ينته بـ','لا ينته بـ','يحتوي','لا يحتوي'],
+		groupOps: [	{ op: "مع", text: "الكل" },	{ op: "أو",  text: "لا أحد" }	],
+		matchText: " توافق",
+		rulesText: " قواعد"
+	},
+	edit : {
+		addCaption: "اضافة",
+		editCaption: "تحديث",
+		bSubmit: "تثبيث",
+		bCancel: "إلغاء",
+		bClose: "غلق",
+		saveData: "تغيرت المعطيات هل تريد التسجيل ?",
+		bYes: "نعم",
+		bNo: "لا",
+		bExit: "إلغاء",
+		msg: {
+			required: "خانة إجبارية",
+			number: "سجل رقم صحيح",
+			minValue: "يجب أن تكون القيمة أكبر أو تساوي 0",
+			maxValue: "يجب أن تكون القيمة أقل أو تساوي 0",
+			email: "بريد غير صحيح",
+			integer: "سجل عدد طبييعي صحيح",
+			url: "ليس عنوانا صحيحا. البداية الصحيحة ('http://' أو 'https://')",
+			nodefined : " ليس محدد!",
+			novalue : " قيمة الرجوع مطلوبة!",
+			customarray : "يجب على الدالة الشخصية أن تنتج جدولا",
+			customfcheck : "الدالة الشخصية مطلوبة في حالة التحقق الشخصي"
+		}
+	},
+	view : {
+		caption: "رأيت التسجيلات",
+		bClose: "غلق"
+	},
+	del : {
+		caption: "حذف",
+		msg: "حذف التسجيلات المختارة ?",
+		bSubmit: "حذف",
+		bCancel: "إلغاء"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "تغيير التسجيل المختار",
+		addtext:" ",
+		addtitle: "إضافة تسجيل",
+		deltext: " ",
+		deltitle: "حذف التسجيل المختار",
+		searchtext: " ",
+		searchtitle: "بحث عن تسجيل",
+		refreshtext: "",
+		refreshtitle: "تحديث الجدول",
+		alertcap: "تحذير",
+		alerttext: "يرجى إختيار السطر",
+		viewtext: "",
+		viewtitle: "إظهار السطر المختار"
+	},
+	col : {
+		caption: "إظهار/إخفاء الأعمدة",
+		bSubmit: "تثبيث",
+		bCancel: "إلغاء"
+	},
+	errors : {
+		errcap : "خطأ",
+		nourl : "لا يوجد عنوان محدد",
+		norecords: "لا يوجد تسجيل للمعالجة",
+		model : "عدد العناوين (colNames) <> عدد التسجيلات (colModel)!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت",
+				"الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"
+			],
+			monthNames: [
+				"جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر",
+				"جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"
+			],
+			AmPm : ["صباحا","مساءا","صباحا","مساءا"],
+			S: function (j) {return j == 1 ? 'er' : 'e';},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Modified: incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/i18n/grid.locale-bg.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/i18n/grid.locale-bg.js?rev=1356336&r1=1356335&r2=1356336&view=diff
==============================================================================
--- incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/i18n/grid.locale-bg.js (original)
+++ incubator/ambari/trunk/mon_dashboard/src/ui/libs/jqgrid/src/i18n/grid.locale-bg.js Mon Jul  2 16:45:55 2012
@@ -1,132 +1,153 @@
-;(function($){
-/**
- * jqGrid Bulgarian Translation 
- * 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
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{0} - {1} от {2}",
-		emptyrecords: "Няма запис(и)",
-		loadtext: "Зареждам...",
-		pgtext : "Стр. {0} от {1}"
-	},
-	search : {
-		caption: "Търсене...",
-		Find: "Намери",
-		Reset: "Изчисти",
-		odata : ['равно', 'различно', 'по-малко', 'по-малко или=','по-голямо','по-голямо или =', 'започва с','не започва с','се намира в','не се намира в','завършва с','не завършава с','съдържа', 'не съдържа' ],
-	    groupOps: [	{ op: "AND", text: "&nbsp;И " },	{ op: "OR",  text: "ИЛИ" }	],
-		matchText: " включи",
-		rulesText: " клауза"
-	},
-	edit : {
-		addCaption: "Нов Запис",
-		editCaption: "Редакция Запис",
-		bSubmit: "Запиши",
-		bCancel: "Изход",
-		bClose: "Затвори",
-		saveData: "Данните са променени! Да съхраня ли промените?",
-		bYes : "Да",
-		bNo : "Не",
-		bExit : "Отказ",
-		msg: {
-			required:"Полето е задължително",
-			number:"Въведете валидно число!",
-			minValue:"стойността трябва да е по-голяма или равна от",
-			maxValue:"стойността трябва да е по-малка или равна от",
-			email: "не е валиден ел. адрес",
-			integer: "Въведете валидно цяло число",
-			date: "Въведете валидна дата",
-			url: "e невалиден URL. Изискава се префикс('http://' или 'https://')",
-			nodefined : " е недефинирана!",
-			novalue : " изисква връщане на стойност!",
-			customarray : "Потреб. Функция трябва да върне масив!",
-			customfcheck : "Потребителска функция е задължителна при този тип елемент!"
-		}
-	},
-	view : {
-		caption: "Преглед запис",
-		bClose: "Затвори"
-	},
-	del : {
-		caption: "Изтриване",
-		msg: "Да изтрия ли избраният запис?",
-		bSubmit: "Изтрий",
-		bCancel: "Отказ"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Редакция избран запис",
-		addtext:" ",
-		addtitle: "Добавяне нов запис",
-		deltext: " ",
-		deltitle: "Изтриване избран запис",
-		searchtext: " ",
-		searchtitle: "Търсене запис(и)",
-		refreshtext: "",
-		refreshtitle: "Обнови таблица",
-		alertcap: "Предупреждение",
-		alerttext: "Моля, изберете запис",
-		viewtext: "",
-		viewtitle: "Преглед избран запис"
-	},
-	col : {
-		caption: "Избери колони",
-		bSubmit: "Ок",
-		bCancel: "Изход"	
-	},
-	errors : {
-		errcap : "Грешка",
-		nourl : "Няма посочен url адрес",
-		norecords: "Няма запис за обработка",
-		model : "Модела не съответства на имената!"	
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" лв.", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб",
-				"Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"
-			],
-			monthNames: [
-				"Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек",
-				"Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
-			],
-			AmPm : ["","","",""],
-			S: function (j) {
-				if(j==7 || j==8 || j== 27 || j== 28) {
-					return 'ми';
-				}
-				return ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)];
-			},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+;(function($){
+/**
+ * jqGrid Bulgarian Translation 
+ * 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
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{0} - {1} от {2}",
+		emptyrecords: "Няма запис(и)",
+		loadtext: "Зареждам...",
+		pgtext : "Стр. {0} от {1}"
+	},
+	search : {
+		caption: "Търсене...",
+		Find: "Намери",
+		Reset: "Изчисти",
+		odata : ['равно', 'различно', 'по-малко', 'по-малко или=','по-голямо','по-голямо или =', 'започва с','не започва с','се намира в','не се намира в','завършва с','не завършава с','съдържа', 'не съдържа' ],
+	    groupOps: [	{ op: "AND", text: "&nbsp;И " },	{ op: "OR",  text: "ИЛИ" }	],
+		matchText: " включи",
+		rulesText: " клауза"
+	},
+	edit : {
+		addCaption: "Нов Запис",
+		editCaption: "Редакция Запис",
+		bSubmit: "Запиши",
+		bCancel: "Изход",
+		bClose: "Затвори",
+		saveData: "Данните са променени! Да съхраня ли промените?",
+		bYes : "Да",
+		bNo : "Не",
+		bExit : "Отказ",
+		msg: {
+			required:"Полето е задължително",
+			number:"Въведете валидно число!",
+			minValue:"стойността трябва да е по-голяма или равна от",
+			maxValue:"стойността трябва да е по-малка или равна от",
+			email: "не е валиден ел. адрес",
+			integer: "Въведете валидно цяло число",
+			date: "Въведете валидна дата",
+			url: "e невалиден URL. Изискава се префикс('http://' или 'https://')",
+			nodefined : " е недефинирана!",
+			novalue : " изисква връщане на стойност!",
+			customarray : "Потреб. Функция трябва да върне масив!",
+			customfcheck : "Потребителска функция е задължителна при този тип елемент!"
+		}
+	},
+	view : {
+		caption: "Преглед запис",
+		bClose: "Затвори"
+	},
+	del : {
+		caption: "Изтриване",
+		msg: "Да изтрия ли избраният запис?",
+		bSubmit: "Изтрий",
+		bCancel: "Отказ"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Редакция избран запис",
+		addtext:" ",
+		addtitle: "Добавяне нов запис",
+		deltext: " ",
+		deltitle: "Изтриване избран запис",
+		searchtext: " ",
+		searchtitle: "Търсене запис(и)",
+		refreshtext: "",
+		refreshtitle: "Обнови таблица",
+		alertcap: "Предупреждение",
+		alerttext: "Моля, изберете запис",
+		viewtext: "",
+		viewtitle: "Преглед избран запис"
+	},
+	col : {
+		caption: "Избери колони",
+		bSubmit: "Ок",
+		bCancel: "Изход"	
+	},
+	errors : {
+		errcap : "Грешка",
+		nourl : "Няма посочен url адрес",
+		norecords: "Няма запис за обработка",
+		model : "Модела не съответства на имената!"	
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" лв.", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб",
+				"Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"
+			],
+			monthNames: [
+				"Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек",
+				"Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
+			],
+			AmPm : ["","","",""],
+			S: function (j) {
+				if(j==7 || j==8 || j== 27 || j== 28) {
+					return 'ми';
+				}
+				return ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)];
+			},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);



Mime
View raw message