webui label config rework
This commit is contained in:
parent
944be0876b
commit
05a982fd4b
|
@ -53,14 +53,10 @@ LABEL = "label"
|
|||
CONFIG_DEFAULTS = {
|
||||
"torrent_labels":{}, #torrent_id:label_id
|
||||
"labels":{}, #label_id:{name:value}
|
||||
"hide_zero_hits":False,
|
||||
"gtk_alfa":False,
|
||||
"show_states":True,
|
||||
"show_trackers":True,
|
||||
"show_labels":True
|
||||
"auto_add_trackers":[]
|
||||
}
|
||||
|
||||
CORE_OPTIONS = ["hide_zero_hits", "gtk_alfa", "show_states", "show_trackers", "show_labels","auto_add","auto_add_trackers"]
|
||||
CORE_OPTIONS = ["auto_add_trackers"]
|
||||
|
||||
OPTIONS_DEFAULTS = {
|
||||
"apply_max":False,
|
||||
|
@ -77,8 +73,7 @@ OPTIONS_DEFAULTS = {
|
|||
"apply_move_completed":False,
|
||||
"move_completed":False,
|
||||
"move_completed_path":"",
|
||||
"auto_add":False,
|
||||
"auto_add_trackers":[],
|
||||
"auto_add":False
|
||||
}
|
||||
|
||||
NO_LABEL = "No Label"
|
||||
|
@ -296,11 +291,11 @@ class Core(CorePluginBase):
|
|||
|
||||
self.config.save()
|
||||
|
||||
def export_get_global_options(self):
|
||||
"see : label_set_global_options"
|
||||
def export_get_config(self):
|
||||
"see : label_set_config"
|
||||
return dict ( (k,self.config[k] ) for k in CORE_OPTIONS)
|
||||
|
||||
def export_set_global_options(self, options):
|
||||
def export_set_config(self, options):
|
||||
"""global_options:"""
|
||||
for key in CORE_OPTIONS:
|
||||
if options.has_key(key):
|
||||
|
|
|
@ -68,7 +68,7 @@ class LabelConfig(object):
|
|||
return pkg_resources.resource_filename("label", os.path.join("data", filename))
|
||||
|
||||
def load_settings(self ,widget = None , data = None):
|
||||
aclient.label_get_global_options(self.cb_global_options)
|
||||
aclient.label_get_config(self.cb_global_options)
|
||||
|
||||
def cb_global_options(self, options):
|
||||
log.debug("options=%s" % options)
|
||||
|
@ -80,5 +80,5 @@ class LabelConfig(object):
|
|||
def on_apply_prefs(self):
|
||||
options = {}
|
||||
#update options dict here.
|
||||
aclient.label_set_global_options(None, options)
|
||||
aclient.label_set_config(None, options)
|
||||
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
$def with (labels)
|
||||
<table style="padding-left:20px;">
|
||||
$for label in labels:
|
||||
<tr>
|
||||
<td><a href="$base/label/options/$label"
|
||||
title="$_('Options')"
|
||||
>$label</a></td>
|
||||
</td>
|
||||
<td><a href="$base/label/remove/$label"><img
|
||||
src="$base/static/images/tango/list-remove.png"
|
||||
title="$_('Remove')"
|
||||
></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Options</h2>
|
||||
<ul>
|
||||
<li><a href="$base/label/add">$_("Add label")</a></li>
|
||||
</ul>
|
|
@ -0,0 +1,10 @@
|
|||
$def with (label_id)
|
||||
$:render.basic_header(_("Label Options"))
|
||||
<h2>$label_id Options.</h2>
|
||||
<div class="panel">
|
||||
<form method="POST" action='$base/label/options/$label_id'>
|
||||
label= $label_id
|
||||
</form>
|
||||
</div>
|
||||
|
||||
$:render.footer()
|
|
@ -1,53 +0,0 @@
|
|||
$def with (filter_items)
|
||||
|
||||
<form method="GET" id="category_form">
|
||||
<input type="hidden" name="sort" value="$get('sort')">
|
||||
<input type="hidden" name="order" value="$get('order')">
|
||||
<input type="hidden" name="filter_cat" value="keyword">
|
||||
<div id="organize_block">
|
||||
<div id="organize_state">
|
||||
<div class="title">$_('Keyword')</div>
|
||||
<input type="text" name="filter_value" id="filter_value"
|
||||
$if get('filter_cat') == "keyword":
|
||||
value="$get('filter_value')"
|
||||
style="width:100px;padding:0px" title="$_('Filter on a keyword')"/>
|
||||
|
||||
$if get('filter_cat') == "keyword":
|
||||
$if get('filter_value'):
|
||||
<img src="$base/static/images/tango/edit-clear.png" alt="$_('Clear')"
|
||||
onclick="el('keyword').value='';el('category_form').submit();"
|
||||
>
|
||||
</form>
|
||||
<br /><br />
|
||||
|
||||
<!--
|
||||
$filter_items
|
||||
-->
|
||||
$for cat in ["state", "tracker", "label"]:
|
||||
<div class="title">$cat</div>
|
||||
<ul>
|
||||
$for value, count in filter_items[cat]:
|
||||
<li
|
||||
$if cat == get('filter_cat'):
|
||||
$if value == get('filter_value'):
|
||||
class="selected"
|
||||
$# I hate this, special case for All
|
||||
$# templetor sucks with multiple conditions in 1 if-statement, i need to find a better way,
|
||||
$if cat == "state":
|
||||
$if value == "All":
|
||||
$if not get('filter_value'):
|
||||
$if not get('filter_cat'):
|
||||
class="selected"
|
||||
>
|
||||
<a href="$self_url(filter_cat=cat, filter_value=value)">
|
||||
$if cat == "state":
|
||||
<img src="/pixmaps/$(value.lower())"></img>
|
||||
$value ($count)</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
#
|
||||
# webui.py
|
||||
#
|
||||
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||
#
|
||||
# Basic plugin template created by:
|
||||
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||
# Copyright (C) 2007, 2008 Andrew Resch ('andar') <andrewresch@gmail.com>
|
||||
#
|
||||
# Deluge is free software.
|
||||
#
|
||||
# You may 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 of the License, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# deluge 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 deluge. 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
|
||||
# library.
|
||||
# You must obey the GNU General Public License in all respects for all of
|
||||
# the code used other than OpenSSL. If you modify file(s) with this
|
||||
# exception, you may extend this exception to your version of the file(s),
|
||||
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||
# this exception statement from your version. If you delete this exception
|
||||
|
||||
import os
|
||||
from deluge.common import fspeed
|
||||
from deluge.log import LOG as log
|
||||
from deluge.ui.client import sclient, aclient
|
||||
from deluge.plugins.webuipluginbase import WebUIPluginBase
|
||||
from deluge import component
|
||||
|
||||
api = component.get("WebPluginApi")
|
||||
forms = api.forms
|
||||
|
||||
#pages:
|
||||
class options:
|
||||
@api.deco.deluge_page
|
||||
def GET(self, label_id):
|
||||
return api.render.label.options(label_id)
|
||||
|
||||
class add:
|
||||
@api.deco.deluge_page
|
||||
def GET(self, label_id):
|
||||
return api.render.label.options(label_id)
|
||||
|
||||
class remove:
|
||||
@api.deco.deluge_page
|
||||
def GET(self, label_id):
|
||||
return api.render.label.options(label_id)
|
||||
|
||||
|
||||
class WebUI(WebUIPluginBase):
|
||||
include_javascript = ["/label/data/label.js"]
|
||||
urls = [
|
||||
('/label/options/(.*)', options),
|
||||
('/label/add', add),
|
||||
('/label/remove/(.*)', remove)
|
||||
]
|
||||
|
||||
def enable(self):
|
||||
api.config_page_manager.register('plugins', 'label' ,ConfigForm)
|
||||
|
||||
def disable(self):
|
||||
api.config_page_manager.deregister('label')
|
||||
|
||||
#options:
|
||||
"""
|
||||
todo (see gtkui)
|
||||
sensitive_groups = [
|
||||
("apply_max", ["max_download_speed", "max_upload_speed", "max_upload_slots", "max_connections"]),
|
||||
("apply_queue", ["is_auto_managed", "stop_at_ratio"]),
|
||||
("stop_at_ratio", ["remove_at_ratio", "stop_ratio"]), #nested
|
||||
("apply_move_completed", ["move_completed"]),
|
||||
("move_completed", ["move_completed_path"]), #nested
|
||||
("auto_add", ["auto_add_trackers"])
|
||||
]
|
||||
"""
|
||||
class OptionsForm(forms.Form):
|
||||
#maximum:
|
||||
apply_max = forms.CheckBox(_("apply_max"))
|
||||
max_download_speed = forms.DelugeInt(_("max_download_speed"))
|
||||
max_upload_speed = forms.DelugeInt(_("max_upload_speed"))
|
||||
max_upload_slots = forms.DelugeInt(_("max_upload_slots"))
|
||||
max_connections = forms.DelugeInt(_("max_connections"))
|
||||
|
||||
#queue:
|
||||
apply_queue = forms.CheckBox(_("apply_queue"))
|
||||
is_auto_managed = forms.CheckBox(_("is_auto_managed"))
|
||||
stop_at_ratio = forms.CheckBox(_("stop_at_ratio"))
|
||||
stop_ratio = forms.DelugeInt(_("stop_ratio"))
|
||||
remove_at_ratio = forms.CheckBox(_("remove_at_ratio"))
|
||||
|
||||
#location:
|
||||
apply_move_completed = forms.CheckBox(_("apply_move_completed"))
|
||||
move_completed = forms.CheckBox(_("move_completed"))
|
||||
move_completed_path = forms.CharField(label=_("move_completed_path"))
|
||||
|
||||
#tracker:
|
||||
auto_add_trackers = forms.CharField(label=_("auto_add_trackers"), widget=forms.Textarea)
|
||||
auto_add = forms.CheckBox(_("auto_add"))
|
||||
|
||||
|
||||
|
||||
#config:
|
||||
class ConfigForm(forms.Form):
|
||||
"""
|
||||
custom config page
|
||||
too complex for the default config framework
|
||||
"""
|
||||
#meta:
|
||||
title = _("Label")
|
||||
info = _("Work in progress..")
|
||||
|
||||
#load/save:
|
||||
def initial_data(self):
|
||||
return sclient.label_get_config()
|
||||
|
||||
def save(self, data):
|
||||
cfg = dict(data)
|
||||
sclient.label_set_config(cfg)
|
||||
|
||||
def pre_html(self):
|
||||
""" custom config html/template"""
|
||||
labels = sclient.label_get_labels()
|
||||
return api.render.label.config(labels)
|
||||
|
||||
|
||||
|
||||
#django newforms magic: define config fields:
|
||||
#test = forms.CharField(label=_("Test config value"))
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# blocklist/webui.py
|
||||
#
|
||||
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||
|
||||
#
|
||||
# Deluge is free software.
|
||||
#
|
||||
# You may 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 of the License, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# deluge 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 deluge. 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
|
||||
# library.
|
||||
# You must obey the GNU General Public License in all respects for all of
|
||||
# the code used other than OpenSSL. If you modify file(s) with this
|
||||
# exception, you may extend this exception to your version of the file(s),
|
||||
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||
# this exception statement from your version. If you delete this exception
|
||||
# statement from all source files in the program, then also delete it here.
|
||||
|
||||
import os
|
||||
from deluge.log import LOG as log
|
||||
from deluge.ui.client import sclient
|
||||
from deluge import component
|
||||
import ui
|
||||
|
||||
import config
|
||||
import pages
|
||||
from deluge.plugins.webuipluginbase import WebUIPluginBase
|
||||
|
||||
|
||||
#TODO: use more additions to WebUIPluginBase, thish whould be and example -lougin.
|
||||
class WebUI(WebUIPluginBase):
|
||||
include_javascript = ["/label/data/test1.js"]
|
||||
|
||||
def enable(self):
|
||||
log.debug("**HERE**")
|
||||
pages.register()
|
||||
config.register()
|
||||
|
||||
def disable(self):
|
||||
log.debug("**HERE**")
|
||||
pages.deregister()
|
||||
config.deregister()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||
#
|
||||
# Deluge is free software.
|
||||
#
|
||||
# You may 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 of the License, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# deluge 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 deluge. 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
|
||||
# library.
|
||||
# You must obey the GNU General Public License in all respects for all of
|
||||
# the code used other than OpenSSL. If you modify file(s) with this
|
||||
# exception, you may extend this exception to your version of the file(s),
|
||||
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||
# this exception statement from your version. If you delete this exception
|
||||
# statement from all source files in the program, then also delete it here.
|
||||
|
||||
import os
|
||||
from deluge.log import LOG as log
|
||||
from deluge.ui.client import sclient
|
||||
from deluge import component
|
||||
|
||||
api = component.get("WebPluginApi")
|
||||
forms = api.forms
|
||||
|
||||
class LabelUpdateCfgForm(forms.Form):
|
||||
"""
|
||||
a config form based on django forms.
|
||||
see webui.lib.newforms_plus, config_forms, etc.
|
||||
"""
|
||||
#meta:
|
||||
title = _("Labels")
|
||||
|
||||
def get_selected(self):
|
||||
selected = api.web.input(label = None).label
|
||||
labels = sclient.label_get_labels()
|
||||
if not selected:
|
||||
if labels:
|
||||
selected = labels[0]
|
||||
return selected
|
||||
|
||||
def pre_html(self):
|
||||
selected = self.get_selected()
|
||||
html = _("Select Label") + ":"
|
||||
for label in sclient.label_get_labels():
|
||||
html += """
|
||||
<a href="/config/label_update?label=%(label)s">%(label)s</a> """ % {"label":label}
|
||||
html += "<h2>%s</h2>" % selected
|
||||
return html
|
||||
#load/save:
|
||||
def initial_data(self):
|
||||
label_id = self.get_selected()
|
||||
return sclient.label_get_options(label_id)
|
||||
|
||||
def save(self, data):
|
||||
label_id = self.get_selected()
|
||||
apply = data.apply
|
||||
delete = data.delete
|
||||
|
||||
if delete:
|
||||
sclient.label_remove(label_id)
|
||||
raise Exception("DELETED")
|
||||
else:
|
||||
del data["apply"]
|
||||
del data["delete"]
|
||||
sclient.label_set_options(label_id, dict(data), apply)
|
||||
|
||||
#input fields :
|
||||
apply_max = forms.CheckBox(_("Apply Maximum settings on add"))
|
||||
max_connections = forms.DelugeInt(_("Maximum Connections"))
|
||||
max_download_speed = forms.DelugeFloat(_("Maximum Download Speed (Kib/s)"))
|
||||
max_upload_speed = forms.DelugeFloat(_("Maximum Upload Speed (Kib/s)"))
|
||||
max_upload_slots = forms.DelugeInt(_("Maximum Upload Slots"))
|
||||
move_completed_to = forms.ServerFolder(_("Move completed to"), required=False)
|
||||
|
||||
apply = forms.CheckBox(_("Apply"))
|
||||
delete = forms.CheckBox(_("Delete"))
|
||||
|
||||
|
||||
|
||||
class LabelAddCfgForm(forms.Form):
|
||||
"""
|
||||
a config form based on django forms.
|
||||
see webui.lib.newforms_plus, config_forms, etc.
|
||||
"""
|
||||
#meta:
|
||||
title = _("Add Label")
|
||||
|
||||
#load/save:
|
||||
def initial_data(self):
|
||||
return { }
|
||||
|
||||
def save(self, data):
|
||||
sclient.label_add(data.label)
|
||||
|
||||
label = forms.CharField(_("Label"))
|
||||
|
||||
class LabelCfgForm(forms.Form):
|
||||
"""
|
||||
global settings.
|
||||
"""
|
||||
#meta:
|
||||
title = _("General")
|
||||
|
||||
#load/save:
|
||||
def initial_data(self):
|
||||
return sclient.label_get_global_options()
|
||||
|
||||
def save(self, data):
|
||||
return sclient.label_set_global_options(dict(data))
|
||||
|
||||
hide_zero_hits = forms.CheckBox(_("Hide filter items with 0 hits"))
|
||||
#gtk_alfa = forms.CheckBox(_("gtk_alfa"))
|
||||
|
||||
|
||||
|
||||
|
||||
def register():
|
||||
api.config_page_manager.register('label','label_general',LabelCfgForm)
|
||||
api.config_page_manager.register('label','label_update',LabelUpdateCfgForm)
|
||||
api.config_page_manager.register('label','label_add',LabelAddCfgForm)
|
||||
|
||||
def deregister():
|
||||
api.config_page_manager.deregister('label_general')
|
||||
api.config_page_manager.deregister('label_update')
|
||||
api.config_page_manager.deregister('label_add')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
#
|
||||
#
|
||||
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||
#
|
||||
# Deluge is free software.
|
||||
#
|
||||
# You may 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 of the License, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# deluge 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 deluge. 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
|
||||
# library.
|
||||
# You must obey the GNU General Public License in all respects for all of
|
||||
# the code used other than OpenSSL. If you modify file(s) with this
|
||||
# exception, you may extend this exception to your version of the file(s),
|
||||
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||
# this exception statement from your version. If you delete this exception
|
||||
# statement from all source files in the program, then also delete it here.
|
||||
|
||||
import os
|
||||
from deluge.log import LOG as log
|
||||
from deluge.ui.client import sclient
|
||||
from deluge import component
|
||||
|
||||
api = component.get("WebPluginApi")
|
||||
|
||||
template_dir = os.path.join(os.path.dirname(__file__),"template")
|
||||
|
||||
class torrent_label:
|
||||
@api.deco.deluge_page
|
||||
@api.deco.torrent_list
|
||||
def GET(self, torrent_list):
|
||||
torrent_str = ",".join([t.id for t in torrent_list])
|
||||
labels = sclient.label_get_labels()
|
||||
return api.render.torrent_label(torrent_str , torrent_list , labels)
|
||||
|
||||
@api.deco.check_session
|
||||
@api.deco.torrent_ids
|
||||
def POST(self, torrent_ids):
|
||||
label =api.web.input(label = None).label
|
||||
for id in torrent_ids:
|
||||
sclient.label_set_torrent(id , label)
|
||||
api.utils.do_redirect()
|
||||
|
||||
|
||||
def register():
|
||||
api.render.register_template_path(template_dir)
|
||||
api.page_manager.register_page('/torrent/label/(.*)', torrent_label)
|
||||
api.menu_manager.register_toolbar_item("label",_("Label"), "label.png" ,2,
|
||||
"GET","/torrent/label/", True)
|
||||
|
||||
def deregister():
|
||||
api.render.deregister_template_path(template_dir)
|
||||
api.page_manager.deregister_page('/torrent/label/(.*)')
|
||||
api.menu_manager.deregister_toolbar_item("label")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
#
|
||||
# blocklist/ui.py
|
||||
#
|
||||
# Copyright (C) 2007 Andrew Resch ('andar') <andrewresch@gmail.com>
|
||||
# Copyright (C) 2008 Mark Stahler ('kramed') <markstahler@gmail.com>
|
||||
|
||||
#
|
||||
# Deluge is free software.
|
||||
#
|
||||
# You may 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 of the License, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# deluge 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 deluge. 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
|
||||
# library.
|
||||
# You must obey the GNU General Public License in all respects for all of
|
||||
# the code used other than OpenSSL. If you modify file(s) with this
|
||||
# exception, you may extend this exception to your version of the file(s),
|
||||
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||
# this exception statement from your version. If you delete this exception
|
||||
# statement from all source files in the program, then also delete it here.
|
||||
|
||||
import gettext
|
||||
import locale
|
||||
import pkg_resources
|
||||
import deluge.component
|
||||
from deluge.ui.client import aclient as client
|
||||
from deluge.log import LOG as log
|
||||
|
||||
class UI:
|
||||
def __init__(self, plugin_api, plugin_name):
|
||||
self.plugin = plugin_api
|
||||
|
||||
def enable(self):
|
||||
pass
|
||||
|
||||
def disable(self):
|
||||
pass
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ setup(
|
|||
license=__license__,
|
||||
long_description=__long_description__,
|
||||
|
||||
packages=[__plugin_name__.lower(), "label.gtkui", "label.webui"],
|
||||
packages=[__plugin_name__.lower(), "label.gtkui"],
|
||||
package_data = __pkg_data__,
|
||||
|
||||
entry_points="""
|
||||
|
|
|
@ -16,3 +16,8 @@ print_totals(sclient.stats_get_totals())
|
|||
|
||||
print "==session totals=="
|
||||
print_totals(sclient.stats_get_session_totals())
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
$def with (title)
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Deluge:$title</title>
|
||||
<link rel="icon" href="$base/static/images/deluge-icon.png" type="image/png" />
|
||||
<link rel="shortcut icon" href="$base/static/images/deluge-icon.png" type="image/png" />
|
||||
<link rel="stylesheet" type="text/css" href="$base/template_style.css" />
|
||||
<script language="javascript" src="$base/static/deluge.js"></script>
|
||||
<script language="javascript" src="$base/static/mootools-1.2-core.js"></script>
|
||||
<script language="javascript" src="$base/static/mootools-1.2-more.js"></script>
|
||||
<script language="javascript" src="$base/static/mooui.js"></script>
|
||||
<script language="javascript" src="$base/gettext.js"></script>
|
||||
$for js in include_javascript:
|
||||
<script language="javascript" src="$base$js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="page">
|
|
@ -1,24 +1,5 @@
|
|||
$def with (title, active_tab="NONE")
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Deluge:$title</title>
|
||||
<link rel="icon" href="$base/static/images/deluge-icon.png" type="image/png" />
|
||||
<link rel="shortcut icon" href="$base/static/images/deluge-icon.png" type="image/png" />
|
||||
<link rel="stylesheet" type="text/css" href="$base/template_style.css" />
|
||||
<script language="javascript" src="$base/static/deluge.js"></script>
|
||||
<script language="javascript" src="$base/static/mootools-1.2-core.js"></script>
|
||||
<script language="javascript" src="$base/static/mootools-1.2-more.js"></script>
|
||||
<script language="javascript" src="$base/static/mooui.js"></script>
|
||||
<script language="javascript" src="$base/gettext.js"></script>
|
||||
$for js in include_javascript:
|
||||
<script language="javascript" src="$base$js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="page">
|
||||
|
||||
$:render.basic_header(title)
|
||||
|
||||
<table width="100%"><tr>
|
||||
<td>
|
||||
|
|
Loading…
Reference in New Issue