Author: damoxc

Revision: 5784

Log:
        move the stateful stuff to Deluge.js before any other js has executed

Diff:
Modified: trunk/deluge/ui/web/js/Deluge.UI.js
===================================================================
--- trunk/deluge/ui/web/js/Deluge.UI.js 2009-09-28 15:18:51 UTC (rev 5783)
+++ trunk/deluge/ui/web/js/Deluge.UI.js 2009-09-28 16:48:02 UTC (rev 5784)
@@ -1,25 +1,25 @@
 /*
-Script: deluge-ui.js
+Script: Deluge.UI.js
     The core ui module that builds up the ui layout and controls the polling
-       of the server.
+    of the server.
 
 Copyright:
-       (C) Damien Churchill 2009 <[email protected]>
-       This program is free software; you can redistribute it and/or modify
-       it under the terms of the GNU General Public License as published by
-       the Free Software Foundation; either version 3, or (at your option)
-       any later version.
+    (C) Damien Churchill 2009 <[email protected]>
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
 
-       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.
+    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, write to:
-               The Free Software Foundation, Inc.,
-               51 Franklin Street, Fifth Floor
-               Boston, MA  02110-1301, USA.
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, write to:
+        The Free Software Foundation, Inc.,
+        51 Franklin Street, Fifth Floor
+        Boston, MA  02110-1301, USA.
 
     In addition, as a special exception, the copyright holders give
     permission to link the code of portions of this program with the OpenSSL
@@ -40,163 +40,160 @@
  */
 Deluge.UI = {
 
-       cookies: new Ext.state.CookieProvider(),
-       
-       errorCount: 0,
-       
-       /**
-        * @description Create all the interface components, the json-rpc client
-        * and set up various events that the UI will utilise.
-        */
-       initialize: function() {
-               Ext.state.Manager.setProvider(this.cookies);            
-               this.MainPanel = new Ext.Panel({
-                       id: 'mainPanel',
-                       iconCls: 'x-deluge-main-panel',
-                       title: 'Deluge',
-                       layout: 'border',
-                       tbar: Deluge.Toolbar,
-                       items: [
-                               Deluge.Sidebar,
-                               Deluge.Details,
-                               Deluge.Torrents
-                       ],
-                       bbar: Deluge.Statusbar
-               });
+    errorCount: 0,
 
-               this.Viewport = new Ext.Viewport({
-                       layout: 'fit',
-                       items: [this.MainPanel]
-               });
-               
-               Deluge.Events.on("connect", this.onConnect, this);
-               Deluge.Events.on("disconnect", this.onDisconnect, this);
-               Deluge.Client = new Ext.ux.util.RpcClient({
-                       url: '/json'
-               });
+    /**
+     * @description Create all the interface components, the json-rpc client
+     * and set up various events that the UI will utilise.
+     */
+    initialize: function() {
+        this.MainPanel = new Ext.Panel({
+            id: 'mainPanel',
+            iconCls: 'x-deluge-main-panel',
+            title: 'Deluge',
+            layout: 'border',
+            tbar: Deluge.Toolbar,
+            items: [
+                Deluge.Sidebar,
+                Deluge.Details,
+                Deluge.Torrents
+            ],
+            bbar: Deluge.Statusbar
+        });
 
-               for (var plugin in Deluge.Plugins) {
-                   plugin = Deluge.Plugins[plugin];
-                   plugin.enable();
-               }
-               
-               Deluge.Client.on('connected', function(e) {
-                       Deluge.Login.show();
-                       Deluge.Events.start();
-                       Deluge.Events.on('PluginEnabledEvent', 
this.onPluginEnabled, this);
-                       Deluge.Events.on('PluginDisabledEvent', 
this.onPluginDisabled, this);
-               }, this, {single: true});
-               
-               this.update = this.update.bind(this);
-       },
-       
-       update: function() {
-               var filters = Deluge.Sidebar.getFilters();
-               Deluge.Client.web.update_ui(Deluge.Keys.Grid, filters, {
-                       success: this.onUpdate,
-                       failure: this.onUpdateError,
-                       scope: this
-               });
-               Deluge.Details.update();
-               Deluge.Client.web.connected({
-                       success: this.onConnectedCheck,
-                       scope: this
-               });
-       },
-       
-       onConnectedCheck: function(connected) {
-               if (!connected) {
-                       Deluge.Events.fire('disconnect');
-               }
-       },
-       
-       onUpdateError: function(error) {
-               if (this.errorCount == 2) {
-                       Ext.MessageBox.show({
-                               title: 'Lost Connection',
-                               msg: 'The connection to the webserver has been 
lost!',
-                               buttons: Ext.MessageBox.OK,
-                               icon: Ext.MessageBox.ERROR
-                       });
-               }
-               this.errorCount++;
-       },
-       
-       /**
-        * @static
-        * @private
-        * Updates the various components in the interface.
-        */
-       onUpdate: function(data) {
-               Deluge.Torrents.update(data['torrents']);
-               Deluge.Statusbar.update(data['stats']);
-               Deluge.Sidebar.update(data['filters']);
-               this.errorCount = 0;
-       },
-       
-       /**
-        * @static
-        * @private
-        * Start the Deluge UI polling the server and update the interface.
-        */
-       onConnect: function() {
-               if (!this.running) {
-                       this.running = setInterval(this.update, 2000);
-                       this.update();
-               }
-       },
-       
-       /**
-        * @static
-        * @private
-        */
-       onDisconnect: function() {
-               this.stop();
-       },
-       
-       onPluginEnabled: function(pluginName) {
-           Deluge.Client.web.get_plugin_resources(pluginName, {
-               success: this.onGotPluginResources,
-               scope: this
-           })
-       },
-       
-       onGotPluginResources: function(resources) {
-           var scripts = (Deluge.debug) ? resources.debug_scripts : 
resources.scripts;
-           Ext.each(scripts, function(script) {
-               Ext.ux.JSLoader({
-                   url: script,
-                   onLoad: this.onPluginLoaded,
-                   pluginName: resources.name
-               });
-           }, this);
-       },
-       
-       onPluginDisabled: function(pluginName) {
-           Deluge.Plugins[pluginName].disable();
-       },
-       
-       onPluginLoaded: function(options) {
-           // This could happen if the plugin has multiple scripts
-           if (!Deluge.Plugins[options.pluginName]) return;
-           
-           // Enable the plugin
-           Deluge.Plugins[options.pluginName].enable();
-       },
-       
-       /**
-        * @static
-        * Stop the Deluge UI polling the server and clear the interface.
-        */
-       stop: function() {
-           if (this.running) {
-               clearInterval(this.running);
-               this.running = false;
-               Deluge.Torrents.getStore().loadData([]);
-           }
-       }
+        this.Viewport = new Ext.Viewport({
+            layout: 'fit',
+            items: [this.MainPanel]
+        });
+    
+        Deluge.Events.on("connect", this.onConnect, this);
+        Deluge.Events.on("disconnect", this.onDisconnect, this);
+        Deluge.Client = new Ext.ux.util.RpcClient({
+            url: '/json'
+        });
+    
+        for (var plugin in Deluge.Plugins) {
+            plugin = Deluge.Plugins[plugin];
+            plugin.enable();
+        }
+    
+        Deluge.Client.on('connected', function(e) {
+            Deluge.Login.show();
+            Deluge.Events.start();
+            Deluge.Events.on('PluginEnabledEvent', this.onPluginEnabled, this);
+            Deluge.Events.on('PluginDisabledEvent', this.onPluginDisabled, 
this);
+        }, this, {single: true});
+    
+        this.update = this.update.bind(this);
+    },
+
+    update: function() {
+        var filters = Deluge.Sidebar.getFilters();
+        Deluge.Client.web.update_ui(Deluge.Keys.Grid, filters, {
+            success: this.onUpdate,
+            failure: this.onUpdateError,
+            scope: this
+        });
+        Deluge.Details.update();
+        Deluge.Client.web.connected({
+            success: this.onConnectedCheck,
+            scope: this
+        });
+    },
+
+    onConnectedCheck: function(connected) {
+        if (!connected) {
+            Deluge.Events.fire('disconnect');
+        }
+    },
+
+    onUpdateError: function(error) {
+        if (this.errorCount == 2) {
+            Ext.MessageBox.show({
+                title: 'Lost Connection',
+                msg: 'The connection to the webserver has been lost!',
+                buttons: Ext.MessageBox.OK,
+                icon: Ext.MessageBox.ERROR
+            });
+        }
+        this.errorCount++;
+    },
+
+    /**
+     * @static
+     * @private
+     * Updates the various components in the interface.
+     */
+    onUpdate: function(data) {
+        Deluge.Torrents.update(data['torrents']);
+        Deluge.Statusbar.update(data['stats']);
+        Deluge.Sidebar.update(data['filters']);
+        this.errorCount = 0;
+    },
+
+    /**
+     * @static
+     * @private
+     * Start the Deluge UI polling the server and update the interface.
+     */
+    onConnect: function() {
+        if (!this.running) {
+            this.running = setInterval(this.update, 2000);
+            this.update();
+        }
+    },
+
+    /**
+     * @static
+     * @private
+     */
+    onDisconnect: function() {
+        this.stop();
+    },
+
+    onPluginEnabled: function(pluginName) {
+        Deluge.Client.web.get_plugin_resources(pluginName, {
+            success: this.onGotPluginResources,
+            scope: this
+        })
+    },
+
+    onGotPluginResources: function(resources) {
+        var scripts = (Deluge.debug) ? resources.debug_scripts : 
resources.scripts;
+        Ext.each(scripts, function(script) {
+            Ext.ux.JSLoader({
+                url: script,
+                onLoad: this.onPluginLoaded,
+                pluginName: resources.name
+            });
+        }, this);
+    },
+
+    onPluginDisabled: function(pluginName) {
+        Deluge.Plugins[pluginName].disable();
+    },
+
+    onPluginLoaded: function(options) {
+        // This could happen if the plugin has multiple scripts
+        if (!Deluge.Plugins[options.pluginName]) return;
+
+    // Enable the plugin
+    Deluge.Plugins[options.pluginName].enable();
+},
+
+    /**
+     * @static
+     * Stop the Deluge UI polling the server and clear the interface.
+     */
+    stop: function() {
+        if (this.running) {
+            clearInterval(this.running);
+            this.running = false;
+            Deluge.Torrents.getStore().loadData([]);
+        }
+    }
 }
 
 Ext.onReady(function(e) {
-       Deluge.UI.initialize();
+    Deluge.UI.initialize();
 });
\ No newline at end of file

Modified: trunk/deluge/ui/web/js/Deluge.js
===================================================================
--- trunk/deluge/ui/web/js/Deluge.js    2009-09-28 15:18:51 UTC (rev 5783)
+++ trunk/deluge/ui/web/js/Deluge.js    2009-09-28 16:48:02 UTC (rev 5784)
@@ -31,8 +31,12 @@
     statement from all source files in the program, then also delete it here.
 */
 
+// Create the namespace Ext.deluge
 Ext.namespace('Ext.deluge');
 
+// Setup the state manager
+Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
+
 (function() {
        /* Add some helper functions to Ext */
        Ext.apply(Function.prototype, {



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