change the scheduler plugin to use the new plugin architecture
This commit is contained in:
parent
63b02f28d1
commit
da5697490d
|
@ -1,92 +1,109 @@
|
||||||
(function() {
|
ScheduleSelectPanel = Ext.extend(Ext.form.FieldSet, {
|
||||||
function createEl(parent, type) {
|
constructor: function(config) {
|
||||||
var el = document.createElement(type);
|
config = Ext.apply({
|
||||||
parent.appendChild(el);
|
title: _('Schedule'),
|
||||||
return el;
|
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');
|
||||||
|
|
||||||
|
function createEl(parent, type) {
|
||||||
|
var el = document.createElement(type);
|
||||||
|
parent.appendChild(el);
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ext.each(['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], 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;');
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
});
|
||||||
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({
|
SchedulerPreferences = Ext.extend(Ext.Panel, {
|
||||||
xtype: 'form',
|
constructor: function(config) {
|
||||||
layout: 'form',
|
config = Ext.apply({
|
||||||
border: false,
|
border: false,
|
||||||
autoHeight: true
|
title: _('Scheduler')
|
||||||
});
|
}, config);
|
||||||
|
SchedulerPreferences.superclass.constructor.call(this, config);
|
||||||
this.schedule = this.form.add(new ScheduleSelectPanel());
|
},
|
||||||
|
|
||||||
this.slowSettings = this.form.add({
|
initComponent: function() {
|
||||||
xtype: 'fieldset',
|
SchedulerPreferences.superclass.initComponent.call(this);
|
||||||
title: _('Slow Settings'),
|
|
||||||
autoHeight: true,
|
this.form = this.add({
|
||||||
defaultType: 'uxspinner'
|
xtype: 'form',
|
||||||
});
|
layout: 'form',
|
||||||
|
border: false,
|
||||||
this.downloadLimit = this.slowSettings.add({
|
autoHeight: true
|
||||||
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) {
|
this.schedule = this.form.add(new ScheduleSelectPanel());
|
||||||
SchedulerPreferences.superclass.onRender.call(this, ct, position);
|
|
||||||
this.form.layout = new Ext.layout.FormLayout();
|
|
||||||
this.form.layout.setContainer(this);
|
|
||||||
this.form.doLayout();
|
|
||||||
},
|
|
||||||
|
|
||||||
onShow: function() {
|
this.slowSettings = this.form.add({
|
||||||
SchedulerPreferences.superclass.onShow.call(this);
|
xtype: 'fieldset',
|
||||||
}
|
title: _('Slow Settings'),
|
||||||
});
|
autoHeight: true,
|
||||||
Deluge.Preferences.addPage(new SchedulerPreferences());
|
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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
SchedulerPlugin = Ext.extend(Deluge.Plugin, {
|
||||||
|
constructor: function(config) {
|
||||||
|
config = Ext.apply({
|
||||||
|
name: "Scheduler"
|
||||||
|
}, config);
|
||||||
|
SchedulerPlugin.superclass.constructor.call(this, config);
|
||||||
|
},
|
||||||
|
|
||||||
|
onDisable: function() {
|
||||||
|
Deluge.Preferences.removePage(this.prefsPage);
|
||||||
|
},
|
||||||
|
|
||||||
|
onEnable: function() {
|
||||||
|
this.prefsPage = new SchedulerPreferences();
|
||||||
|
Deluge.Preferences.addPage(this.prefsPage);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var plugin = new SchedulerPlugin();
|
||||||
})();
|
})();
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# webui.py
|
# webui.py
|
||||||
#
|
#
|
||||||
# Copyright (C) 2009 Andrew Resch <andrewresch@gmail.com>
|
# Copyright (C) 2009 Damien Churchill <damoxc@gmail.com>
|
||||||
#
|
#
|
||||||
# Basic plugin template created by:
|
# Basic plugin template created by:
|
||||||
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||||
|
@ -36,8 +36,6 @@
|
||||||
# statement from all source files in the program, then also delete it here.
|
# 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.log import LOG as log
|
||||||
from deluge.ui.client import client
|
from deluge.ui.client import client
|
||||||
from deluge import component
|
from deluge import component
|
||||||
|
@ -46,16 +44,5 @@ from deluge.plugins.pluginbase import WebPluginBase
|
||||||
from common import get_resource
|
from common import get_resource
|
||||||
|
|
||||||
class WebUI(WebPluginBase):
|
class WebUI(WebPluginBase):
|
||||||
def enable(self):
|
|
||||||
deluge_web = component.get("DelugeWeb").top_level
|
scripts = [get_resource("scheduler.js")]
|
||||||
deluge_web.add_script("/js/scheduler.js")
|
|
||||||
|
|
||||||
javascript = component.get("Javascript").directories
|
|
||||||
javascript.append(get_resource(""))
|
|
||||||
|
|
||||||
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(""))
|
|
Loading…
Reference in New Issue