From 8f147e4c7fd8a27cfadcbbcfaa0249200abeddcc Mon Sep 17 00:00:00 2001 From: mridulnagpal Date: Mon, 21 Nov 2016 20:10:23 +0530 Subject: [PATCH] frontpage: Show Configure button in service details Only show when user is logged in. --- plinth/frontpage.py | 4 +++- plinth/modules/minetest/__init__.py | 5 ++++- plinth/modules/mumble/__init__.py | 6 +++++- plinth/modules/privoxy/__init__.py | 8 ++++++-- plinth/modules/quassel/__init__.py | 7 +++++-- plinth/modules/radicale/__init__.py | 5 ++++- plinth/modules/repro/__init__.py | 5 ++++- plinth/modules/xmpp/__init__.py | 9 ++++++--- plinth/templates/index.html | 7 +++++++ plinth/views.py | 6 ++++-- 10 files changed, 48 insertions(+), 14 deletions(-) diff --git a/plinth/frontpage.py b/plinth/frontpage.py index 2cbd2cf1a..8b3411514 100644 --- a/plinth/frontpage.py +++ b/plinth/frontpage.py @@ -27,7 +27,8 @@ def get_shortcuts(): return sorted(shortcuts.values(), key=lambda item: item['label']) -def add_shortcut(id, label, url, icon, details=None, login_required=False): +def add_shortcut(id, label, url, icon, details=None, configure_url=None, + login_required=False): """Add shortcut to front page.""" if not url: @@ -40,6 +41,7 @@ def add_shortcut(id, label, url, icon, details=None, login_required=False): 'icon': icon, 'login_required': login_required, 'details': details, + 'configure_url': configure_url, } diff --git a/plinth/modules/minetest/__init__.py b/plinth/modules/minetest/__init__.py index 95bc520cd..d25b405ac 100644 --- a/plinth/modules/minetest/__init__.py +++ b/plinth/modules/minetest/__init__.py @@ -51,6 +51,8 @@ description = [ 'is needed.'), box_name=_(cfg.box_name)), ] +configure_url = _('apps/minetest') + def init(): """Initialize the module.""" @@ -75,7 +77,8 @@ def setup(helper, old_version=None): def add_shortcut(): frontpage.add_shortcut('minetest', title, None, 'glyphicon-th-large', - description, login_required=False) + description, configure_url, + login_required=False) def enable(): diff --git a/plinth/modules/mumble/__init__.py b/plinth/modules/mumble/__init__.py index ef2c9f87f..f6df148fd 100644 --- a/plinth/modules/mumble/__init__.py +++ b/plinth/modules/mumble/__init__.py @@ -51,6 +51,9 @@ description = [ ] +configure_url = _('apps/mumble') + + def init(): """Intialize the Mumble module.""" menu = cfg.main_menu.get('apps:index') @@ -80,7 +83,8 @@ def setup(helper, old_version=None): def add_shortcut(): frontpage.add_shortcut('mumble', title, None, 'glyphicon-headphones', - description, login_required=False) + description, configure_url, + login_required=False) def enable(): diff --git a/plinth/modules/privoxy/__init__.py b/plinth/modules/privoxy/__init__.py index 07effd6f8..002fbf744 100644 --- a/plinth/modules/privoxy/__init__.py +++ b/plinth/modules/privoxy/__init__.py @@ -54,9 +54,12 @@ description = [ 'While using Privoxy, you can see its configuration details and ' 'documentation at ' 'http://config.privoxy.org/ ' - 'or http://p.p.'), box_name=_(cfg.box_name)) + 'or http://p.p.'), + box_name=_(cfg.box_name)), ] +configure_url = _('apps/privoxy') + service = None @@ -84,7 +87,8 @@ def setup(helper, old_version=None): def add_shortcut(): frontpage.add_shortcut('privoxy', title, None, 'glyphicon-cloud-upload', - description, login_required=True) + description, configure_url, + login_required=True) def enable(): diff --git a/plinth/modules/quassel/__init__.py b/plinth/modules/quassel/__init__.py index b3bd85fd6..459187c41 100644 --- a/plinth/modules/quassel/__init__.py +++ b/plinth/modules/quassel/__init__.py @@ -55,9 +55,11 @@ description = [ '4242. Clients to connect to Quassel from your ' 'desktop and ' 'mobile devices ' - 'are available.') + 'are available.'), ] +configure_url = _('apps/quassel') + def init(): """Initialize the quassel module.""" @@ -88,7 +90,8 @@ def setup(helper, old_version=None): def add_shortcut(): frontpage.add_shortcut('quassel', title, None, 'glyphicon-retweet', - description, login_required=True) + description, configure_url, + login_required=True) def enable(): diff --git a/plinth/modules/radicale/__init__.py b/plinth/modules/radicale/__init__.py index 3a61b801d..9fdbdaa0b 100644 --- a/plinth/modules/radicale/__init__.py +++ b/plinth/modules/radicale/__init__.py @@ -51,6 +51,8 @@ description = [ 'login.'), box_name=_(cfg.box_name)), ] +configure_url = _('apps/radicale') + CONFIG_FILE = '/etc/radicale/config' @@ -78,7 +80,8 @@ def setup(helper, old_version=None): def add_shortcut(): frontpage.add_shortcut('radicale', title, None, 'glyphicon-calendar', - description, login_required=True) + description, configure_url, + login_required=True) def enable(): diff --git a/plinth/modules/repro/__init__.py b/plinth/modules/repro/__init__.py index ec8ab818f..6ee95da2c 100644 --- a/plinth/modules/repro/__init__.py +++ b/plinth/modules/repro/__init__.py @@ -59,6 +59,8 @@ description = [ 'service and re-enable it.'), ] +configure_url = _('apps/repro') + service = None @@ -92,7 +94,8 @@ def setup(helper, old_version=None): def add_shortcut(): frontpage.add_shortcut('repro', title, None, 'glyphicon-phone-alt', - description, login_required=True) + description, configure_url, + login_required=True) def enable(): diff --git a/plinth/modules/xmpp/__init__.py b/plinth/modules/xmpp/__init__.py index 9463009c6..314bacc76 100644 --- a/plinth/modules/xmpp/__init__.py +++ b/plinth/modules/xmpp/__init__.py @@ -49,9 +49,11 @@ description = [ _('To actually communicate, you can use the web client or any other ' 'XMPP client.') + '>XMPP client.'), ] +configure_url = _('apps/xmpp') + service = None logger = logging.getLogger(__name__) @@ -92,9 +94,10 @@ def setup(helper, old_version=None): def add_shortcut(): frontpage.add_shortcut('jsxc', _('Chat Client (jsxc)'), reverse_lazy('xmpp:jsxc'), 'glyphicon-comment', - login_required=True) + None, login_required=True) frontpage.add_shortcut('xmpp', title, None, 'glyphicon-comment', - description, login_required=True) + description, configure_url, + login_required=True) def is_enabled(): diff --git a/plinth/templates/index.html b/plinth/templates/index.html index 2e2d1bfba..7bd150421 100644 --- a/plinth/templates/index.html +++ b/plinth/templates/index.html @@ -70,6 +70,13 @@ {{ paragraph|safe }} {% endfor %} + + {% if user.is_authenticated %} +
+ Configure +
+ {% endif %} + {% endif %} diff --git a/plinth/views.py b/plinth/views.py index 2ad68c8ba..489550d81 100644 --- a/plinth/views.py +++ b/plinth/views.py @@ -38,17 +38,19 @@ def index(request): shortcuts = frontpage.get_shortcuts() selection = request.GET.get('selected') - details, details_label = None, None + details, details_label, configure_url = None, None, None if selection in frontpage.shortcuts: details = frontpage.shortcuts[selection]['details'] details_label = frontpage.shortcuts[selection]['label'] + configure_url = frontpage.shortcuts[selection]['configure_url'] return TemplateResponse(request, 'index.html', {'title': _('FreedomBox'), 'shortcuts': shortcuts, 'selected_id': selection, 'details': details, - 'details_label': details_label}) + 'details_label': details_label, + 'configure_url': configure_url}) class ServiceView(FormView):