⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treeutil.js

📁 SugarCRM5.1 开源PHP客户关系管理系统
💻 JS
字号:
/** * Javascript for Tree * * SugarCRM is a customer relationship management program developed by * SugarCRM, Inc. Copyright (C) 2004 - 2007 SugarCRM Inc. *  * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation with the addition of the following permission added * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. *  * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more * details. *  * You should have received a copy of the GNU General Public License along with * this program; if not, see http://www.gnu.org/licenses or write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. *  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road, * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com. *  * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. *  * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * SugarCRM" logo. If the display of the logo is not reasonably feasible for * technical reasons, the Appropriate Legal Notices must display the words * "Powered by SugarCRM". */function treeinit(tree,treedata,treediv,params) {	tree = new YAHOO.widget.TreeView(treediv);   	   	//create a name space for the tree.   	//and store the module name;   	YAHOO.namespace(treediv).param=params;   	   	var root= tree.getRoot();   	var tmpNode;  	var data=treedata; 	   	//loop thru all root level nodes.	   	for (nodedata in data) {		for (node in data[nodedata]) {   			addNode(root, data[nodedata][node]);		}   	}   	tree.draw();}//set clicked node's id in tree's name space.function set_selected_node(treeid,nodeid) {		node=YAHOO.widget.TreeView.getNode(treeid,nodeid);	if (typeof(node) != 'undefined') {		YAHOO.namespace(treeid).selectednode=node;	} else {		//clear selection.		YAHOO.namespace(treeid).selectednode=null;	}}//add a node to the tree, function adds nodes recursively.//change this functionfunction addNode(parentnode,nodedef) {	var dynamicload=false;	var dynamicloadfunction;	var childnodes;	var expanded=false;		if (nodedef['data'] != 'undefined') {		//get custom property values;		if (typeof(nodedef['custom']) != 'undefined') {			dynamicload=nodedef['custom']['dynamicload'];			dynamicloadfunction=nodedef['custom']['dynamicloadfunction'];			expanded=nodedef['custom']['expanded'];		}				var tmpNode=new YAHOO.widget.TextNode(nodedef['data'], parentnode, expanded);					if (dynamicload) {			tmpNode.setDynamicLoad(eval(dynamicloadfunction));		}		//add child nodes.				if (typeof(nodedef['nodes']) != 'undefined') {		   	for (childnodes in nodedef['nodes']) {		   			addNode(tmpNode, nodedef['nodes'][childnodes]);	   		}		}	}}//use this function to respond to node click.//the clicked node is set by set_selected_node, in the tree's name space.//function will make an ajax call and populate the results in the target.//target type should be of type div, the function does not support other//target types.function node_click(treeid,target,targettype,functioname) {	node=YAHOO.namespace(treeid).selectednode;	//request url.	var url=site_url.site_url + "/index.php?entryPoint=TreeData&function="+functioname+ construct_url_from_tree_param(node);	var callback =	{		  success: function(o) {    			    	var targetdiv=document.getElementById(o.argument[0]);			    	targetdiv.innerHTML=o.responseText;			    	SUGAR.util.evalScript(o.responseText);		  },		  failure: function(o) {/*failure handler code*/},		  argument: [target, targettype]	}		var trobj = YAHOO.util.Connect.asyncRequest('GET',url, callback, null);	}//construs url parameters from node and tree parameters.function construct_url_from_tree_param(node) {	var treespace=YAHOO.namespace(node.tree.id);	url="&PARAMT_depth="+node.depth;	//add request parameters from the trees name space.	if (treespace != 'undefined') {		for (tparam in treespace.param) {			url=url+"&PARAMT_"+tparam+'='+treespace.param[tparam];		}	}		//add parent nodes id to the url.	for (i=node.depth;i>=0;i--) {		var currentnode;		if (i==node.depth) {				currentnode=node;		} else {			currentnode=node.getAncestor(i);		}		//add id to url.		url=url+"&PARAMN_id"+'_'+currentnode.depth+'='+currentnode.data.id;					//add other requested parameters.		if (currentnode.data.param != 'undefined') {			for (nparam in currentnode.data.param) {				url=url+"&PARAMN_"+nparam+'_'+currentnode.depth+'='+currentnode.data.param[nparam];						}		}	}	return url;}//following function uses an AJAX call to load the children nodes dynamically.//this methods assumes that you have TreeData.php in the root of you application.//the file must have get_node_data function.//return value must be an array of nodes.function loadDataForNode(node, onCompleteCallback) {    var id= node.data.id;	var url=site_url.site_url + "/index.php?entryPoint=TreeData&function=get_node_data" + construct_url_from_tree_param(node);	var callback =	{		  success: function(o) {    	   			node=o.argument[0];    			var nodes=JSON.parse(o.responseText);				var tmpNode;			   	for (nodedata in nodes) {					for (node1 in nodes[nodedata]) {   						addNode(node, nodes[nodedata][node1]);					}   				}			     	o.argument[1]();		  },		  failure: function(o) {/*failure handler code*/},		  argument: [node, onCompleteCallback]	}		var trobj = YAHOO.util.Connect.asyncRequest('POST',url, callback, null);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -