Author: damoxc

Revision: 5374

Log:
        tweak the setup script so the web plugin has the correct entry point
implement the webui server side plugin
add a page to the preferences window in the javascript

Diff:
Added: trunk/deluge/plugins/scheduler/scheduler/data/scheduler.js
===================================================================
--- trunk/deluge/plugins/scheduler/scheduler/data/scheduler.js                  
        (rev 0)
+++ trunk/deluge/plugins/scheduler/scheduler/data/scheduler.js  2009-06-10 
16:37:21 UTC (rev 5374)
@@ -0,0 +1,92 @@
+(function() {
+       function createEl(parent, type) {
+               var el = document.createElement(type);
+               parent.appendChild(el);
+               return el;
+       }
+       
+       var DAYS = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
+       
+       ScheduleSelectPanel = Ext.extend(Ext.form.FieldSet, {
+               constructor: function(config) {
+                       config = Ext.apply({
+                               title: _('Schedule'),
+                               autoHeight: true
+                       }, config);
+                       ScheduleSelectPanel.superclass.constructor.call(this, 
config);
+               },
+               
+               onRender: function(ct, position) {
+                       ScheduleSelectPanel.superclass.onRender.call(this, ct, 
position);
+                       
+                       var dom = this.body.dom;
+                       var table = createEl(dom, 'table');
+                       
+                       Ext.each(DAYS, function(day) {
+                               var row = createEl(table, 'tr');
+                               var label = createEl(row, 'th');
+                               label.setAttribute('style', 'font-weight: bold; 
padding-right: 5px;');
+                               label.innerHTML = day;
+                               for (var hour = 0; hour < 24; hour++) {
+                                       var cell = createEl(row, 'td');
+                                       cell.setAttribute('style', 'border: 1px 
solid Green; width: 16px; height: 20px; background: LightGreen;');
+                               }
+                       });
+               }
+       });
+       
+       SchedulerPreferences = Ext.extend(Ext.Panel, {
+               constructor: function(config) {
+                       config = Ext.apply({
+                               border: false,
+                               title: _('Scheduler')
+                       }, config);
+                       SchedulerPreferences.superclass.constructor.call(this, 
config);
+               },
+               
+               initComponent: function() {
+                       
SchedulerPreferences.superclass.initComponent.call(this);
+
+                       this.form = this.add({
+                               xtype: 'form',
+                               layout: 'form',
+                               border: false,
+                               autoHeight: true
+                       });
+                       
+                       this.schedule = this.form.add(new 
ScheduleSelectPanel());
+                       
+                       this.slowSettings = this.form.add({
+                               xtype: 'fieldset',
+                               title: _('Slow Settings'),
+                               autoHeight: true,
+                               defaultType: 'uxspinner'
+                       });
+                       
+                       this.downloadLimit = this.slowSettings.add({
+                               fieldLabel: _('Download Limit'),
+                               name: 'download_limit'
+                       });
+                       this.uploadLimit = this.slowSettings.add({
+                               fieldLabel: _('Upload Limit'),
+                               name: 'upload_limit'
+                       });
+                       this.activeTorrents = this.slowSettings.add({
+                               fieldLabel: _('Active Torrents'),
+                               name: 'active_torrents'
+                       });
+               },
+               
+               onRender: function(ct, position) {
+                       SchedulerPreferences.superclass.onRender.call(this, ct, 
position);
+                       this.form.layout = new Ext.layout.FormLayout();
+                       this.form.layout.setContainer(this);
+                       this.form.doLayout();
+               },
+               
+               onShow: function() {
+                       SchedulerPreferences.superclass.onShow.call(this);
+               }
+       });
+       Deluge.Preferences.addPage(new SchedulerPreferences());
+})();
\ No newline at end of file

Modified: trunk/deluge/plugins/scheduler/scheduler/webui.py
===================================================================
--- trunk/deluge/plugins/scheduler/scheduler/webui.py   2009-06-10 14:28:37 UTC 
(rev 5373)
+++ trunk/deluge/plugins/scheduler/scheduler/webui.py   2009-06-10 16:37:21 UTC 
(rev 5374)
@@ -36,14 +36,26 @@
 #    statement from all source files in the program, then also delete it here.
 #
 
+import pkg_resources
+
 from deluge.log import LOG as log
 from deluge.ui.client import client
 from deluge import component
 from deluge.plugins.pluginbase import WebPluginBase
 
+from common import get_resource
+
 class WebUI(WebPluginBase):
     def enable(self):
-        pass
+        deluge_web = component.get("DelugeWeb").top_level
+        deluge_web.add_script("/js/scheduler.js")
+        
+        javascript = component.get("Javascript").directories
+        javascript.append(get_resource(""))
 
-    def disable(self):
-        pass
+    def disable(self):        
+        deluge_web = component.get("DelugeWeb").top_level
+        deluge_web.remove_script("/js/scheduler.js")
+        
+        javascript = component.get("Javascript").directories
+        javascript.remove(get_resource(""))

Modified: trunk/deluge/plugins/scheduler/setup.py
===================================================================
--- trunk/deluge/plugins/scheduler/setup.py     2009-06-10 14:28:37 UTC (rev 
5373)
+++ trunk/deluge/plugins/scheduler/setup.py     2009-06-10 16:37:21 UTC (rev 
5374)
@@ -66,7 +66,7 @@
     %s = %s:CorePlugin
     [deluge.plugin.gtkui]
     %s = %s:GtkUIPlugin
-    [deluge.plugin.webui]
+    [deluge.plugin.web]
     %s = %s:WebUIPlugin
     """ % ((__plugin_name__, __plugin_name__.lower())*3)
 )



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