Improve output: distinguish between failed assertions (failures) and unexpected exceptions (errors), and print a filtered stack trace for any exception.
This commit is contained in:
commit
4f2e303079
1839 changed files with 235630 additions and 0 deletions
171
webapp/web/src/widget/TreeRPCController.js
Normal file
171
webapp/web/src/widget/TreeRPCController.js
Normal file
|
@ -0,0 +1,171 @@
|
|||
/*
|
||||
Copyright (c) 2004-2006, The Dojo Foundation
|
||||
All Rights Reserved.
|
||||
|
||||
Licensed under the Academic Free License version 2.1 or above OR the
|
||||
modified BSD license. For more information on Dojo licensing, see:
|
||||
|
||||
http://dojotoolkit.org/community/licensing.shtml
|
||||
*/
|
||||
|
||||
|
||||
dojo.provide("dojo.widget.TreeRPCController");
|
||||
|
||||
dojo.require("dojo.event.*");
|
||||
dojo.require("dojo.json")
|
||||
dojo.require("dojo.io.*");
|
||||
dojo.require("dojo.widget.TreeLoadingController");
|
||||
|
||||
dojo.widget.tags.addParseTreeHandler("dojo:TreeRPCController");
|
||||
|
||||
dojo.widget.TreeRPCController = function(){
|
||||
dojo.widget.TreeLoadingController.call(this);
|
||||
}
|
||||
|
||||
dojo.inherits(dojo.widget.TreeRPCController, dojo.widget.TreeLoadingController);
|
||||
|
||||
dojo.lang.extend(dojo.widget.TreeRPCController, {
|
||||
widgetType: "TreeRPCController",
|
||||
|
||||
/**
|
||||
* Make request to server about moving children.
|
||||
*
|
||||
* Request returns "true" if move succeeded,
|
||||
* object with error field if failed
|
||||
*
|
||||
* I can't leave DragObject floating until async request returns, need to return false/true
|
||||
* so making it sync way...
|
||||
*
|
||||
* Also, "loading" icon is not shown until function finishes execution, so no indication for remote request.
|
||||
*/
|
||||
doMove: function(child, newParent, index){
|
||||
|
||||
//if (newParent.isTreeNode) newParent.markLoading();
|
||||
|
||||
var params = {
|
||||
// where from
|
||||
child: this.getInfo(child),
|
||||
childTree: this.getInfo(child.tree),
|
||||
// where to
|
||||
newParent: this.getInfo(newParent),
|
||||
newParentTree: this.getInfo(newParent.tree),
|
||||
newIndex: index
|
||||
};
|
||||
|
||||
var success;
|
||||
|
||||
this.runRPC({
|
||||
url: this.getRPCUrl('move'),
|
||||
/* I hitch to get this.loadOkHandler */
|
||||
load: function(response){
|
||||
success = this.doMoveProcessResponse(response, child, newParent, index) ;
|
||||
},
|
||||
sync: true,
|
||||
lock: [child, newParent],
|
||||
params: params
|
||||
});
|
||||
|
||||
|
||||
return success;
|
||||
},
|
||||
|
||||
doMoveProcessResponse: function(response, child, newParent, index){
|
||||
|
||||
if(!dojo.lang.isUndefined(response.error)){
|
||||
this.RPCErrorHandler("server", response.error);
|
||||
return false;
|
||||
}
|
||||
|
||||
var args = [child, newParent, index];
|
||||
return dojo.widget.TreeLoadingController.prototype.doMove.apply(this, args);
|
||||
|
||||
},
|
||||
|
||||
|
||||
doRemoveNode: function(node, callObj, callFunc){
|
||||
|
||||
var params = {
|
||||
node: this.getInfo(node),
|
||||
tree: this.getInfo(node.tree)
|
||||
}
|
||||
|
||||
this.runRPC({
|
||||
url: this.getRPCUrl('removeNode'),
|
||||
/* I hitch to get this.loadOkHandler */
|
||||
load: function(response){
|
||||
this.doRemoveNodeProcessResponse(response, node, callObj, callFunc)
|
||||
},
|
||||
params: params,
|
||||
lock: [node]
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
|
||||
doRemoveNodeProcessResponse: function(response, node, callObj, callFunc){
|
||||
if(!dojo.lang.isUndefined(response.error)){
|
||||
this.RPCErrorHandler("server", response.error);
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!response){ return false; }
|
||||
|
||||
if(response == true){
|
||||
/* change parent succeeded */
|
||||
var args = [ node, callObj, callFunc ];
|
||||
dojo.widget.TreeLoadingController.prototype.doRemoveNode.apply(this, args);
|
||||
|
||||
return;
|
||||
}else if(dojo.lang.isObject(response)){
|
||||
dojo.raise(response.error);
|
||||
}else{
|
||||
dojo.raise("Invalid response "+response)
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Create node stuff
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
doCreateChild: function(parent, index, output, callObj, callFunc){
|
||||
|
||||
var params = {
|
||||
tree: this.getInfo(parent.tree),
|
||||
parent: this.getInfo(parent),
|
||||
index: index,
|
||||
data: output
|
||||
}
|
||||
|
||||
this.runRPC({
|
||||
url: this.getRPCUrl('createChild'),
|
||||
load: function(response) {
|
||||
// suggested data is dead, fresh data from server is used
|
||||
this.doCreateChildProcessResponse( response, parent, index, callObj, callFunc)
|
||||
},
|
||||
params: params,
|
||||
lock: [parent]
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
doCreateChildProcessResponse: function(response, parent, index, callObj, callFunc){
|
||||
|
||||
if(!dojo.lang.isUndefined(response.error)){
|
||||
this.RPCErrorHandler("server",response.error);
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!dojo.lang.isObject(response)){
|
||||
dojo.raise("Invalid result "+response)
|
||||
}
|
||||
|
||||
var args = [parent, index, response, callObj, callFunc];
|
||||
|
||||
dojo.widget.TreeLoadingController.prototype.doCreateChild.apply(this, args);
|
||||
}
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue