Author: damoxc
Revision: 5749
Log:
add a js loader class, taken from
http://www.extjs.com/forum/showthread.php?p=272104
Diff:
Modified: trunk/deluge/ui/web/js/ext-extensions-debug.js
===================================================================
--- trunk/deluge/ui/web/js/ext-extensions-debug.js 2009-09-14 16:31:59 UTC
(rev 5748)
+++ trunk/deluge/ui/web/js/ext-extensions-debug.js 2009-09-14 16:32:23 UTC
(rev 5749)
@@ -993,4 +993,50 @@
actionMode: 'wrap',
onShow: Ext.form.TriggerField.superclass.onShow,
onHide: Ext.form.TriggerField.superclass.onHide
-});
\ No newline at end of file
+});
+
+Ext.ux.JSLoader = function(options) {
+
+ Ext.ux.JSLoader.scripts[++Ext.ux.JSLoader.index] = {
+ url: options.url,
+ success: true,
+ jsLoadObj: null,
+ options: options,
+ onLoad: options.onLoad || Ext.emptyFn,
+ onError: options.onError || Ext.ux.JSLoader.stdError
+ };
+
+ Ext.Ajax.request({
+ url: options.url,
+ params: options.params,
+ scriptIndex: Ext.ux.JSLoader.index,
+ success: function(response, options) {
+ var script = Ext.ux.JSLoader.scripts[options.scriptIndex];
+ try {
+ script.jsLoadObj = Ext.decode(response.responseText);
+ Ext.applyIf(script.jsLoadObj,{jsLoad: function(){return
Ext.ComponentMgr.create(script.jsLoadObj);}});
+ var comp = script.jsLoadObj.jsLoad();
+ if (comp.remoteInit){
+ comp.remoteInit();
+ }
+ } catch(e) {
+ script.success = false;
+ script.onError(script.options, e);
+ }
+ if (script.success) script.onLoad(comp,script.options);
+ },
+ failure: function(response, options) {
+ var script = Ext.ux.JSLoader.scripts[options.scriptIndex];
+ script.success = false;
+ script.onError(script.options, response.status);
+ }
+ });
+}
+
+Ext.ux.JSLoader.index = 0;
+Ext.ux.JSLoader.scripts = [];
+
+Ext.ux.JSLoader.stdError = function(options, e) {
+ // throw(e);
+ window.alert('Error loading script:\n\n' + options.url + '\n\nstatus: ' +
e);
+}
\ No newline at end of file
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"deluge-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/deluge-commit?hl=en
-~----------~----~----~----~------~----~------~--~---