- Replaced color picker form control with a more robust version.
This commit is contained in:
parent
6fe068e42d
commit
6e0470771e
1193 changed files with 342 additions and 223 deletions
134
www/extras/extjs/source/widgets/tree/TreeLoader.js
vendored
Normal file
134
www/extras/extjs/source/widgets/tree/TreeLoader.js
vendored
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
/*
|
||||
* Ext JS Library 1.0.1
|
||||
* Copyright(c) 2006-2007, Ext JS, LLC.
|
||||
* licensing@extjs.com
|
||||
*
|
||||
* http://www.extjs.com/license
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class Ext.tree.TreeLoader
|
||||
*/
|
||||
Ext.tree.TreeLoader = function(config){
|
||||
this.baseParams = {};
|
||||
this.requestMethod = "POST";
|
||||
Ext.apply(this, config);
|
||||
|
||||
this.addEvents({
|
||||
"beforeload" : true,
|
||||
"load" : true,
|
||||
"loadexception" : true
|
||||
});
|
||||
};
|
||||
|
||||
Ext.extend(Ext.tree.TreeLoader, Ext.util.Observable, {
|
||||
uiProviders : {},
|
||||
clearOnLoad : true,
|
||||
load : function(node, callback){
|
||||
if(this.clearOnLoad){
|
||||
while(node.firstChild){
|
||||
node.removeChild(node.firstChild);
|
||||
}
|
||||
}
|
||||
if(node.attributes.children){ // preloaded json children
|
||||
var cs = node.attributes.children;
|
||||
for(var i = 0, len = cs.length; i < len; i++){
|
||||
node.appendChild(this.createNode(cs[i]));
|
||||
}
|
||||
if(typeof callback == "function"){
|
||||
callback();
|
||||
}
|
||||
}else if(this.dataUrl){
|
||||
this.requestData(node, callback);
|
||||
}
|
||||
},
|
||||
|
||||
getParams: function(node){
|
||||
var buf = [], bp = this.baseParams;
|
||||
for(var key in bp){
|
||||
if(typeof bp[key] != "function"){
|
||||
buf.push(encodeURIComponent(key), "=", encodeURIComponent(bp[key]), "&");
|
||||
}
|
||||
}
|
||||
buf.push("node=", encodeURIComponent(node.id));
|
||||
return buf.join("");
|
||||
},
|
||||
|
||||
requestData : function(node, callback){
|
||||
if(this.fireEvent("beforeload", this, node, callback) !== false){
|
||||
var params = this.getParams(node);
|
||||
var cb = {
|
||||
success: this.handleResponse,
|
||||
failure: this.handleFailure,
|
||||
scope: this,
|
||||
argument: {callback: callback, node: node}
|
||||
};
|
||||
this.transId = Ext.lib.Ajax.request(this.requestMethod, this.dataUrl, cb, params);
|
||||
}else{
|
||||
// if the load is cancelled, make sure we notify
|
||||
// the node that we are done
|
||||
if(typeof callback == "function"){
|
||||
callback();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
isLoading : function(){
|
||||
return this.transId ? true : false;
|
||||
},
|
||||
|
||||
abort : function(){
|
||||
if(this.isLoading()){
|
||||
Ext.lib.Ajax.abort(this.transId);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Override this function for custom TreeNode node implementation
|
||||
*/
|
||||
createNode : function(attr){
|
||||
if(this.applyLoader !== false){
|
||||
attr.loader = this;
|
||||
}
|
||||
if(typeof attr.uiProvider == 'string'){
|
||||
attr.uiProvider = this.uiProviders[attr.uiProvider] || eval(attr.uiProvider);
|
||||
}
|
||||
return(attr.leaf ?
|
||||
new Ext.tree.TreeNode(attr) :
|
||||
new Ext.tree.AsyncTreeNode(attr));
|
||||
},
|
||||
|
||||
processResponse : function(response, node, callback){
|
||||
var json = response.responseText;
|
||||
try {
|
||||
var o = eval("("+json+")");
|
||||
for(var i = 0, len = o.length; i < len; i++){
|
||||
var n = this.createNode(o[i]);
|
||||
if(n){
|
||||
node.appendChild(n);
|
||||
}
|
||||
}
|
||||
if(typeof callback == "function"){
|
||||
callback(this, node);
|
||||
}
|
||||
}catch(e){
|
||||
this.handleFailure(response);
|
||||
}
|
||||
},
|
||||
|
||||
handleResponse : function(response){
|
||||
this.transId = false;
|
||||
var a = response.argument;
|
||||
this.processResponse(response, a.node, a.callback);
|
||||
this.fireEvent("load", this, a.node, response);
|
||||
},
|
||||
|
||||
handleFailure : function(response){
|
||||
this.transId = false;
|
||||
var a = response.argument;
|
||||
this.fireEvent("loadexception", this, a.node, response);
|
||||
if(typeof a.callback == "function"){
|
||||
a.callback(this, a.node);
|
||||
}
|
||||
}
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue