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
-~----------~----~----~----~------~----~------~--~---

Reply via email to