frontpage: Show Configure button in service details

Only show when user is logged in.
This commit is contained in:
mridulnagpal 2016-11-21 20:10:23 +05:30 committed by James Valleroy
parent 9ca42fd271
commit 8f147e4c7f
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808
10 changed files with 48 additions and 14 deletions

View File

@ -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,
}

View File

@ -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():

View File

@ -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():

View File

@ -54,9 +54,12 @@ description = [
'While using Privoxy, you can see its configuration details and '
'documentation at '
'<a href="http://config.privoxy.org">http://config.privoxy.org/</a> '
'or <a href="http://p.p">http://p.p</a>.'), box_name=_(cfg.box_name))
'or <a href="http://p.p">http://p.p</a>.'),
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():

View File

@ -55,9 +55,11 @@ description = [
'4242. Clients to connect to Quassel from your '
'<a href="http://quassel-irc.org/downloads">desktop</a> and '
'<a href="http://quasseldroid.iskrembilen.com/">mobile</a> 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():

View File

@ -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():

View File

@ -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():

View File

@ -49,9 +49,11 @@ description = [
_('To actually communicate, you can use the web client or any other '
'<a href=\'http://xmpp.org/xmpp-software/clients/\' target=\'_blank\''
'>XMPP client</a>.')
'>XMPP client</a>.'),
]
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():

View File

@ -70,6 +70,13 @@
{{ paragraph|safe }}
</div>
{% endfor %}
{% if user.is_authenticated %}
<div class="panel-body">
<a href="{{ configure_url }}">Configure</a>
</div>
{% endif %}
</div>
{% endif %}

View File

@ -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):