mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-28 08:03:36 +00:00
Separate out the short description and app name
Signed-off-by: Prachi <prachi@swecha.net> Reviewed-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
This commit is contained in:
parent
f75f9dbab9
commit
c8eb714562
@ -27,7 +27,7 @@ def get_shortcuts():
|
||||
return sorted(shortcuts.values(), key=lambda item: item['label'])
|
||||
|
||||
|
||||
def add_shortcut(shortcut_id, label, login_required=False,
|
||||
def add_shortcut(shortcut_id, name, short_description="", login_required=False,
|
||||
icon=None, url=None,
|
||||
details=None, configure_url=None):
|
||||
"""Add shortcut to front page."""
|
||||
@ -38,6 +38,8 @@ def add_shortcut(shortcut_id, label, login_required=False,
|
||||
if not icon:
|
||||
icon = shortcut_id
|
||||
|
||||
label = '{0}\n({1})'.format(short_description, name)
|
||||
|
||||
shortcuts[shortcut_id] = {
|
||||
'id': shortcut_id,
|
||||
'label': label,
|
||||
|
||||
@ -60,13 +60,17 @@ class Menu(object):
|
||||
"""Return menu items in sorted order according to current locale."""
|
||||
return sorted(self.items, key=lambda x: (x.order, x.label))
|
||||
|
||||
def add_urlname(self, label, icon, urlname, order=50, url_args=None,
|
||||
def add_urlname(self, name, icon, urlname, short_description="", order=50, url_args=None,
|
||||
url_kwargs=None):
|
||||
"""Add a named URL to the menu (via add_item).
|
||||
|
||||
url_args and url_kwargs will be passed on to Django reverse().
|
||||
|
||||
"""
|
||||
if short_description:
|
||||
label = '{0} ({1})'.format(short_description, name)
|
||||
else:
|
||||
label = name
|
||||
url = reverse_lazy(urlname, args=url_args, kwargs=url_kwargs)
|
||||
return self.add_item(label, icon, url, order)
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@ managed_services = ['avahi-daemon']
|
||||
|
||||
managed_packages = ['avahi-daemon']
|
||||
|
||||
title = _('Service Discovery')
|
||||
name = _('Service Discovery')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -56,11 +56,11 @@ service = None
|
||||
def init():
|
||||
"""Intialize the service discovery module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-lamp', 'avahi:index')
|
||||
menu.add_urlname(name, 'glyphicon-lamp', 'avahi:index')
|
||||
|
||||
global service # pylint: disable=W0603
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['mdns'], is_external=False)
|
||||
managed_services[0], name, ports=['mdns'], is_external=False)
|
||||
|
||||
|
||||
def setup(helper, old_version=False):
|
||||
|
||||
@ -31,7 +31,9 @@ from plinth.menu import main_menu
|
||||
|
||||
version = 1
|
||||
|
||||
title = _('Domain Name Server \n (BIND)')
|
||||
name = _('BIND')
|
||||
|
||||
short_description = _('Domain Name Server')
|
||||
|
||||
service = None
|
||||
|
||||
@ -56,13 +58,13 @@ CONFIG_FILE = '/etc/bind/named.conf.options'
|
||||
def init():
|
||||
"""Intialize the BIND module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-globe', 'bind:index')
|
||||
menu.add_urlname(name, 'glyphicon-globe', 'bind:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['dns'],
|
||||
managed_services[0], name, ports=['dns'],
|
||||
is_external=False,
|
||||
)
|
||||
|
||||
@ -73,7 +75,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['dns'],
|
||||
managed_services[0], name, ports=['dns'],
|
||||
is_external=True,
|
||||
enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
|
||||
@ -34,7 +34,7 @@ managed_services = ['ntp']
|
||||
|
||||
managed_packages = ['ntp']
|
||||
|
||||
title = _('Date & Time')
|
||||
name = _('Date & Time')
|
||||
|
||||
description = [
|
||||
_('Network time server is a program that maintains the system time '
|
||||
@ -47,13 +47,13 @@ service = None
|
||||
def init():
|
||||
"""Intialize the date/time module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-time', 'datetime:index')
|
||||
menu.add_urlname(name, 'glyphicon-time', 'datetime:index')
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['ntp'], is_external=False)
|
||||
managed_services[0], name, ports=['ntp'], is_external=False)
|
||||
|
||||
|
||||
def setup(helper, old_version=None):
|
||||
@ -62,7 +62,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['ntp'], is_external=False)
|
||||
managed_services[0], name, ports=['ntp'], is_external=False)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
|
||||
|
||||
|
||||
@ -36,7 +36,9 @@ managed_services = ['deluge-web']
|
||||
|
||||
managed_packages = ['deluged', 'deluge-web']
|
||||
|
||||
title = _('BitTorrent Web Client \n (Deluge)')
|
||||
name = _('Deluge')
|
||||
|
||||
short_description = _('BitTorrent Web Client')
|
||||
|
||||
description = [
|
||||
_('Deluge is a BitTorrent client that features a Web UI.'),
|
||||
@ -52,13 +54,13 @@ reserved_usernames = ['debian-deluged']
|
||||
def init():
|
||||
"""Initialize the Deluge module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-magnet', 'deluge:index')
|
||||
menu.add_urlname(name, 'glyphicon-magnet', 'deluge:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=True, is_enabled=is_enabled, enable=enable,
|
||||
disable=disable)
|
||||
|
||||
@ -73,7 +75,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=True, is_enabled=is_enabled, enable=enable,
|
||||
disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
@ -81,7 +83,7 @@ def setup(helper, old_version=None):
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('deluge', title, url='/deluge',
|
||||
frontpage.add_shortcut('deluge', name, short_description, url='/deluge',
|
||||
login_required=True)
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ version = 1
|
||||
|
||||
is_essential = True
|
||||
|
||||
title = _('Diagnostics')
|
||||
name = _('Diagnostics')
|
||||
|
||||
description = [
|
||||
_('The system diagnostic test will run a number of checks on your '
|
||||
@ -41,7 +41,7 @@ description = [
|
||||
def init():
|
||||
"""Initialize the module"""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-screenshot', 'diagnostics:index')
|
||||
menu.add_urlname(name, 'glyphicon-screenshot', 'diagnostics:index')
|
||||
|
||||
|
||||
def diagnose():
|
||||
|
||||
@ -44,7 +44,7 @@ def index(request):
|
||||
_start_task()
|
||||
|
||||
return TemplateResponse(request, 'diagnostics.html',
|
||||
{'title': diagnostics.title,
|
||||
{'title': diagnostics.name,
|
||||
'description': diagnostics.description,
|
||||
'is_running': _running_task is not None,
|
||||
'results': current_results})
|
||||
|
||||
@ -48,9 +48,9 @@ def get_configured_domain_name():
|
||||
|
||||
version = 1
|
||||
|
||||
title_en = 'Federated Social Network \n (diaspora*)'
|
||||
name = _('diaspora*')
|
||||
|
||||
title = _(title_en)
|
||||
short_description = _('Federated Social Network')
|
||||
|
||||
service = None
|
||||
|
||||
@ -73,14 +73,14 @@ description = [
|
||||
def init():
|
||||
"""Initialize the Diaspora module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-thumbs-up', 'diaspora:index')
|
||||
menu.add_urlname(name, 'glyphicon-thumbs-up', 'diaspora:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0],
|
||||
title,
|
||||
name,
|
||||
ports=['http', 'https'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled,
|
||||
@ -106,7 +106,7 @@ def setup_domain_name(domain_name):
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0],
|
||||
title,
|
||||
name,
|
||||
ports=['http', 'https'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled,
|
||||
@ -121,7 +121,8 @@ def add_shortcut():
|
||||
if is_setup():
|
||||
frontpage.add_shortcut(
|
||||
'diaspora',
|
||||
title,
|
||||
name,
|
||||
short_description,
|
||||
url='https://diaspora.{}'.format(get_configured_domain_name()),
|
||||
login_required=True)
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@ class DiasporaSetupView(FormView):
|
||||
template_name = 'diaspora-pre-setup.html'
|
||||
form_class = DomainSelectionForm
|
||||
description = diaspora.description
|
||||
title = diaspora.title
|
||||
title = diaspora.name
|
||||
success_url = reverse_lazy('diaspora:index')
|
||||
|
||||
def form_valid(self, form):
|
||||
|
||||
@ -30,7 +30,7 @@ from plinth.menu import main_menu
|
||||
|
||||
version = 1
|
||||
|
||||
title = _('Disks')
|
||||
name = _('Disks')
|
||||
|
||||
description = []
|
||||
|
||||
@ -42,7 +42,7 @@ logger = logging.getLogger(__name__)
|
||||
def init():
|
||||
"""Intialize the module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-hdd', 'disks:index')
|
||||
menu.add_urlname(name, 'glyphicon-hdd', 'disks:index')
|
||||
|
||||
|
||||
def get_disks():
|
||||
|
||||
@ -32,7 +32,7 @@ version = 1
|
||||
|
||||
managed_packages = ['ez-ipupdate']
|
||||
|
||||
title = _('Dynamic DNS Client')
|
||||
name = _('Dynamic DNS Client')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -57,7 +57,7 @@ reserved_usernames = ['ez-ipupd']
|
||||
def init():
|
||||
"""Initialize the module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-refresh', 'dynamicdns:index')
|
||||
menu.add_urlname(name, 'glyphicon-refresh', 'dynamicdns:index')
|
||||
current_status = dynamicdns.get_status()
|
||||
if current_status['enabled']:
|
||||
services = dynamicdns.get_enabled_services(current_status['dynamicdns_domain'])
|
||||
|
||||
@ -50,7 +50,7 @@ subsubmenu = [{'url': reverse_lazy('dynamicdns:index'),
|
||||
def index(request):
|
||||
"""Serve Dynamic DNS page."""
|
||||
return TemplateResponse(request, 'dynamicdns.html',
|
||||
{'title': dynamicdns.title,
|
||||
{'title': dynamicdns.name,
|
||||
'description': dynamicdns.description,
|
||||
'subsubmenu': subsubmenu})
|
||||
|
||||
|
||||
@ -42,7 +42,9 @@ managed_services = ['ejabberd']
|
||||
|
||||
managed_packages = ['ejabberd']
|
||||
|
||||
title = _('Chat Server \n (ejabberd)')
|
||||
name = _('ejabberd')
|
||||
|
||||
short_description = _('Chat Server')
|
||||
|
||||
description = [
|
||||
_('XMPP is an open and standardized communication protocol. Here '
|
||||
@ -67,13 +69,13 @@ logger = logging.getLogger(__name__)
|
||||
def init():
|
||||
"""Initialize the ejabberd module"""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-comment', 'ejabberd:index')
|
||||
menu.add_urlname(name, 'glyphicon-comment', 'ejabberd:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
'ejabberd', title,
|
||||
'ejabberd', name,
|
||||
ports=['xmpp-client', 'xmpp-server', 'xmpp-bosh'],
|
||||
is_external=True, is_enabled=is_enabled, enable=enable,
|
||||
disable=disable)
|
||||
@ -96,7 +98,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
'ejabberd', title,
|
||||
'ejabberd', name,
|
||||
ports=['xmpp-client', 'xmpp-server', 'xmpp-bosh'],
|
||||
is_external=True, is_enabled=is_enabled, enable=enable,
|
||||
disable=disable)
|
||||
@ -105,7 +107,8 @@ def setup(helper, old_version=None):
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('ejabberd', title,
|
||||
frontpage.add_shortcut('ejabberd', name=name,
|
||||
short_description=short_description,
|
||||
details=description,
|
||||
configure_url=reverse_lazy('ejabberd:index'),
|
||||
login_required=True)
|
||||
|
||||
@ -36,7 +36,7 @@ is_essential = True
|
||||
|
||||
managed_packages = ['firewalld']
|
||||
|
||||
title = _('Firewall')
|
||||
name = _('Firewall')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -52,7 +52,7 @@ LOGGER = logging.getLogger(__name__)
|
||||
def init():
|
||||
"""Initailze firewall module"""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-fire', 'firewall:index')
|
||||
menu.add_urlname(name, 'glyphicon-fire', 'firewall:index')
|
||||
|
||||
service_enabled.connect(on_service_enabled)
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ def index(request):
|
||||
"""Serve introduction page"""
|
||||
if not firewall.get_enabled_status():
|
||||
return TemplateResponse(request, 'firewall.html',
|
||||
{'title': firewall.title,
|
||||
{'title': firewall.name,
|
||||
'description': firewall.description,
|
||||
'firewall_status': 'not_running'})
|
||||
|
||||
@ -38,7 +38,7 @@ def index(request):
|
||||
|
||||
return TemplateResponse(
|
||||
request, 'firewall.html',
|
||||
{'title': firewall.title,
|
||||
{'title': firewall.name,
|
||||
'description': firewall.description,
|
||||
'services': list(service_module.services.values()),
|
||||
'internal_enabled_services': internal_enabled_services,
|
||||
|
||||
@ -34,11 +34,11 @@ def init():
|
||||
menu = main_menu.add_urlname(ugettext_lazy('Documentation'),
|
||||
'glyphicon-book', 'help:index')
|
||||
menu.add_urlname(ugettext_lazy('Where to Get Help'), 'glyphicon-search',
|
||||
'help:index_explicit', 5)
|
||||
'help:index_explicit', order=5)
|
||||
menu.add_urlname(ugettext_lazy('Manual'), 'glyphicon-info-sign',
|
||||
'help:manual', 10)
|
||||
'help:manual', order=10)
|
||||
menu.add_urlname(ugettext_lazy('About'), 'glyphicon-star', 'help:about',
|
||||
100)
|
||||
order=100)
|
||||
|
||||
|
||||
def index(request):
|
||||
|
||||
@ -38,7 +38,9 @@ managed_packages = ['ikiwiki', 'libdigest-sha-perl', 'libxml-writer-perl',
|
||||
|
||||
service = None
|
||||
|
||||
title = _('Wiki and Blog (ikiwiki)')
|
||||
name = _('ikiwiki')
|
||||
|
||||
short_description = _('Wiki and Blog')
|
||||
|
||||
description = [
|
||||
_('ikiwiki is a simple wiki and blog application. It supports '
|
||||
@ -59,13 +61,13 @@ description = [
|
||||
def init():
|
||||
"""Initialize the ikiwiki module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-edit', 'ikiwiki:index')
|
||||
menu.add_urlname(name, 'glyphicon-edit', 'ikiwiki:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
'ikiwiki', title, ports=['http', 'https'], is_external=True,
|
||||
'ikiwiki', name, ports=['http', 'https'], is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
|
||||
if is_enabled():
|
||||
@ -79,7 +81,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
'ikiwiki', title, ports=['http', 'https'], is_external=True,
|
||||
'ikiwiki', name, ports=['http', 'https'], is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
helper.call('post', add_shortcuts)
|
||||
|
||||
@ -40,7 +40,9 @@ managed_services = ['infinoted']
|
||||
|
||||
managed_packages = ['infinoted']
|
||||
|
||||
title = _('Gobby Server \n (infinoted)')
|
||||
name = _('infinoted')
|
||||
|
||||
short_description = _('Gobby Server')
|
||||
|
||||
description = [
|
||||
_('infinoted is a server for Gobby, a collaborative text editor.'),
|
||||
@ -56,13 +58,13 @@ description = [
|
||||
def init():
|
||||
"""Initialize the infinoted module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-pencil', 'infinoted:index')
|
||||
menu.add_urlname(name, 'glyphicon-pencil', 'infinoted:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['infinoted-plinth'],
|
||||
managed_services[0], name, ports=['infinoted-plinth'],
|
||||
is_external=True, enable=enable, disable=disable)
|
||||
|
||||
if service.is_enabled():
|
||||
@ -82,7 +84,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['infinoted-plinth'],
|
||||
managed_services[0], name, ports=['infinoted-plinth'],
|
||||
is_external=True, enable=enable, disable=disable)
|
||||
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
@ -90,7 +92,7 @@ def setup(helper, old_version=None):
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('infinoted', title, url=None,
|
||||
frontpage.add_shortcut('infinoted', name, url=None,
|
||||
details=description,
|
||||
configure_url=reverse_lazy('infinoted:index'),
|
||||
login_required=False)
|
||||
|
||||
@ -33,7 +33,9 @@ version = 1
|
||||
|
||||
managed_packages = ['libjs-jsxc']
|
||||
|
||||
title = _('Chat Client \n (JSXC)')
|
||||
name = _('JSXC')
|
||||
|
||||
short_description = _('Chat Client')
|
||||
|
||||
description = [
|
||||
|
||||
@ -49,13 +51,13 @@ logger = logging.getLogger(__name__)
|
||||
def init():
|
||||
"""Initialize the JSXC module"""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-comment', 'jsxc:index')
|
||||
menu.add_urlname(name, 'glyphicon-comment', 'jsxc:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
'jsxc', title, ports=['http', 'https'], is_external=True,
|
||||
'jsxc', name, ports=['http', 'https'], is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
if is_enabled():
|
||||
add_shortcut()
|
||||
@ -68,7 +70,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if not service:
|
||||
service = service_module.Service(
|
||||
'jsxc', title, ports=['http', 'https'], is_external=True,
|
||||
'jsxc', name, ports=['http', 'https'], is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
|
||||
helper.call('post', add_shortcut)
|
||||
|
||||
@ -37,7 +37,9 @@ depends = ['names']
|
||||
|
||||
managed_packages = ['certbot']
|
||||
|
||||
title = _('Certificates (Let\'s Encrypt)')
|
||||
name = _('Let\'s Encrypt')
|
||||
|
||||
short_description = _('Certificates')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -62,8 +64,8 @@ service = None
|
||||
def init():
|
||||
"""Intialize the module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(_('Certificates (Let\'s Encrypt)'),
|
||||
'glyphicon-lock', 'letsencrypt:index')
|
||||
menu.add_urlname(name,
|
||||
'glyphicon-lock', 'letsencrypt:index', short_description)
|
||||
domainname_change.connect(on_domainname_change)
|
||||
|
||||
|
||||
|
||||
@ -43,7 +43,7 @@ def index(request):
|
||||
status = get_status()
|
||||
|
||||
return TemplateResponse(request, 'letsencrypt.html',
|
||||
{'title': letsencrypt.title,
|
||||
{'title': letsencrypt.name,
|
||||
'description': letsencrypt.description,
|
||||
'status': status})
|
||||
|
||||
|
||||
@ -38,7 +38,9 @@ managed_services = ['matrix-synapse']
|
||||
|
||||
managed_packages = ['matrix-synapse']
|
||||
|
||||
title = _('Chat Server \n (Matrix Synapse)')
|
||||
name = _('Matrix Synapse')
|
||||
|
||||
short_description = _('Chat Server')
|
||||
|
||||
description = [
|
||||
_('<a href="https://matrix.org/docs/guides/faq.html">Matrix</a> is an new '
|
||||
@ -65,13 +67,13 @@ SERVER_NAME_PATH = "/etc/matrix-synapse/conf.d/server_name.yaml"
|
||||
def init():
|
||||
"""Initialize the matrix-synapse module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-comment', 'matrixsynapse:index')
|
||||
menu.add_urlname(name, 'glyphicon-comment', 'matrixsynapse:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
'matrix-synapse', title,
|
||||
'matrix-synapse', name,
|
||||
ports=['matrix-synapse-plinth'],
|
||||
is_external=True, is_enabled=is_enabled, enable=enable,
|
||||
disable=disable)
|
||||
@ -85,7 +87,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
'matrix-synapse', title,
|
||||
'matrix-synapse', name,
|
||||
ports=['matrix-synapse-plinth'],
|
||||
is_external=True, is_enabled=is_enabled, enable=enable,
|
||||
disable=disable)
|
||||
@ -98,7 +100,8 @@ def setup(helper, old_version=None):
|
||||
|
||||
def add_shortcut():
|
||||
"""Add a shortcut to the frontpage."""
|
||||
frontpage.add_shortcut('matrixsynapse', title, details=description,
|
||||
frontpage.add_shortcut('matrixsynapse', name, details=description,
|
||||
short_description=short_description,
|
||||
configure_url=reverse_lazy('matrixsynapse:index'),
|
||||
login_required=True)
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ class SetupView(FormView):
|
||||
"""Provide context data to the template."""
|
||||
context = super().get_context_data(**kwargs)
|
||||
|
||||
context['title'] = matrixsynapse.title
|
||||
context['title'] = matrixsynapse.name
|
||||
context['description'] = matrixsynapse.description
|
||||
context['domain_names'] = get_domain_names()
|
||||
|
||||
|
||||
@ -45,7 +45,9 @@ managed_packages = ['minetest-server', 'minetest-mod-advspawning',
|
||||
'minetest-mod-mobf-trap', 'minetest-mod-moreblocks',
|
||||
'minetest-mod-nether', 'minetest-mod-torches']
|
||||
|
||||
title = _('Block Sandbox \n (Minetest)')
|
||||
name = _('Minetest')
|
||||
|
||||
short_description = _('Block Sandbox')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -65,13 +67,13 @@ AUG_PATH = '/files' + CONFIG_FILE + '/.anon'
|
||||
def init():
|
||||
"""Initialize the module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-th-large', 'minetest:index')
|
||||
menu.add_urlname(name, 'glyphicon-th-large', 'minetest:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title,
|
||||
managed_services[0], name,
|
||||
ports=['minetest-plinth'], is_external=True, enable=enable,
|
||||
disable=disable)
|
||||
|
||||
@ -85,7 +87,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title,
|
||||
managed_services[0], name,
|
||||
ports=['minetest-plinth'], is_external=True, enable=enable,
|
||||
disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
@ -93,7 +95,8 @@ def setup(helper, old_version=None):
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('minetest', title, url=None,
|
||||
frontpage.add_shortcut('minetest', name, url=None,
|
||||
short_description=short_description,
|
||||
details=description,
|
||||
configure_url=reverse_lazy('minetest:index'),
|
||||
login_required=False)
|
||||
|
||||
@ -28,7 +28,7 @@ version = 1
|
||||
|
||||
managed_packages = ['monkeysphere']
|
||||
|
||||
title = _('Monkeysphere')
|
||||
name = _('Monkeysphere')
|
||||
|
||||
description = [
|
||||
_('With Monkeysphere, an OpenPGP key can be generated for each configured '
|
||||
|
||||
@ -40,7 +40,7 @@ def index(request):
|
||||
status = get_status()
|
||||
return TemplateResponse(
|
||||
request, 'monkeysphere.html',
|
||||
{'title': monkeysphere.title,
|
||||
{'title': monkeysphere.name,
|
||||
'description': monkeysphere.description,
|
||||
'status': status,
|
||||
'running': bool(publish_process)})
|
||||
@ -66,7 +66,7 @@ def import_key(request, ssh_fingerprint):
|
||||
def details(request, fingerprint):
|
||||
"""Get details for an OpenPGP key."""
|
||||
return TemplateResponse(request, 'monkeysphere_details.html',
|
||||
{'title': monkeysphere.title,
|
||||
{'title': monkeysphere.name,
|
||||
'key': get_key(fingerprint)})
|
||||
|
||||
|
||||
|
||||
@ -32,7 +32,9 @@ from plinth.views import ServiceView
|
||||
|
||||
version = 1
|
||||
|
||||
title = _('Voice Chat \n (Mumble)')
|
||||
name = _('Mumble')
|
||||
|
||||
short_description = _('Voice Chat')
|
||||
|
||||
service = None
|
||||
|
||||
@ -55,13 +57,13 @@ reserved_usernames = ['mumble-server']
|
||||
def init():
|
||||
"""Intialize the Mumble module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-headphones', 'mumble:index')
|
||||
menu.add_urlname(name, 'glyphicon-headphones', 'mumble:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['mumble-plinth'],
|
||||
managed_services[0], name, ports=['mumble-plinth'],
|
||||
is_external=True,
|
||||
enable=enable, disable=disable)
|
||||
|
||||
@ -81,7 +83,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['mumble-plinth'],
|
||||
managed_services[0], name, ports=['mumble-plinth'],
|
||||
is_external=True,
|
||||
enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
@ -89,7 +91,8 @@ def setup(helper, old_version=None):
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('mumble', title,
|
||||
frontpage.add_shortcut('mumble', name,
|
||||
short_description=short_description,
|
||||
details=description,
|
||||
configure_url=reverse_lazy('mumble:index'),
|
||||
login_required=False)
|
||||
|
||||
@ -36,7 +36,7 @@ version = 1
|
||||
|
||||
is_essential = True
|
||||
|
||||
title = _('Name Services')
|
||||
name = _('Name Services')
|
||||
|
||||
domain_types = {}
|
||||
domains = {}
|
||||
@ -47,7 +47,7 @@ logger = logging.getLogger(__name__)
|
||||
def init():
|
||||
"""Initialize the names module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-tag', 'names:index')
|
||||
menu.add_urlname(name, 'glyphicon-tag', 'names:index')
|
||||
|
||||
domain_added.connect(on_domain_added)
|
||||
domain_removed.connect(on_domain_removed)
|
||||
|
||||
@ -32,7 +32,7 @@ def index(request):
|
||||
status = get_status()
|
||||
|
||||
return TemplateResponse(request, 'names.html',
|
||||
{'title': names.title,
|
||||
{'title': names.name,
|
||||
'status': status})
|
||||
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@ is_essential = True
|
||||
|
||||
managed_packages = ['network-manager', 'batctl']
|
||||
|
||||
title = _('Networks')
|
||||
name = _('Networks')
|
||||
|
||||
logger = Logger(__name__)
|
||||
|
||||
@ -42,7 +42,7 @@ logger = Logger(__name__)
|
||||
def init():
|
||||
"""Initialize the Networks module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-signal', 'networks:index')
|
||||
menu.add_urlname(name, 'glyphicon-signal', 'networks:index')
|
||||
|
||||
|
||||
def setup(helper, old_version=None):
|
||||
|
||||
@ -39,7 +39,9 @@ managed_services = ['openvpn@freedombox']
|
||||
|
||||
managed_packages = ['openvpn', 'easy-rsa']
|
||||
|
||||
title = _('Virtual Private Network \n (OpenVPN)')
|
||||
name = _('OpenVPN')
|
||||
|
||||
short_description = _('Virtual Private Network')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -56,13 +58,13 @@ description = [
|
||||
def init():
|
||||
"""Initialize the OpenVPN module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-lock', 'openvpn:index')
|
||||
menu.add_urlname(name, 'glyphicon-lock', 'openvpn:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['openvpn'], is_external=True)
|
||||
managed_services[0], name, ports=['openvpn'], is_external=True)
|
||||
|
||||
if service.is_enabled() and is_setup():
|
||||
add_shortcut()
|
||||
@ -74,7 +76,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['openvpn'], is_external=True,
|
||||
managed_services[0], name, ports=['openvpn'], is_external=True,
|
||||
enable=enable, disable=disable)
|
||||
|
||||
|
||||
@ -84,7 +86,8 @@ def add_shortcut():
|
||||
format_lazy(_('<a class="btn btn-primary btn-sm" href="{link}">'
|
||||
'Download Profile</a>'),
|
||||
link=reverse_lazy('openvpn:profile'))
|
||||
frontpage.add_shortcut('openvpn', title,
|
||||
frontpage.add_shortcut('openvpn', name,
|
||||
short_description=short_description,
|
||||
details=description + [download_profile],
|
||||
configure_url=reverse_lazy('openvpn:index'),
|
||||
login_required=True)
|
||||
|
||||
@ -57,7 +57,7 @@ def index(request):
|
||||
form = OpenVpnForm(initial=status, prefix='openvpn')
|
||||
|
||||
return TemplateResponse(request, 'openvpn.html',
|
||||
{'title': openvpn.title,
|
||||
{'title': openvpn.name,
|
||||
'description': openvpn.description,
|
||||
'status': status,
|
||||
'form': form})
|
||||
|
||||
@ -41,7 +41,9 @@ first_boot_steps = [
|
||||
},
|
||||
]
|
||||
|
||||
title = _('Public Visibility (PageKite)')
|
||||
name = _('PageKite')
|
||||
|
||||
short_description = _('Public Visibility')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -80,7 +82,7 @@ description = [
|
||||
def init():
|
||||
"""Intialize the PageKite module"""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-flag', 'pagekite:index')
|
||||
menu.add_urlname(name, 'glyphicon-flag', 'pagekite:index', short_description)
|
||||
|
||||
# Register kite name with Name Services module.
|
||||
utils.update_names_module(initial_registration=True)
|
||||
|
||||
@ -44,7 +44,7 @@ subsubmenu = [{'url': reverse_lazy('pagekite:index'),
|
||||
def index(request):
|
||||
"""Serve introduction page"""
|
||||
return TemplateResponse(request, 'pagekite_introduction.html',
|
||||
{'title': pagekite.title,
|
||||
{'title': pagekite.name,
|
||||
'description': pagekite.description,
|
||||
'subsubmenu': subsubmenu})
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ version = 1
|
||||
|
||||
is_essential = True
|
||||
|
||||
title = _('Power')
|
||||
name = _('Power')
|
||||
|
||||
description = [
|
||||
_('Restart or shut down the system.')
|
||||
|
||||
@ -32,7 +32,7 @@ from plinth.modules import power
|
||||
def index(request):
|
||||
"""Serve power controls page."""
|
||||
return TemplateResponse(request, 'power.html',
|
||||
{'title': power.title,
|
||||
{'title': power.name,
|
||||
'description': power.description,
|
||||
'pkg_manager_is_busy': _is_pkg_manager_busy()})
|
||||
|
||||
|
||||
@ -40,7 +40,9 @@ managed_services = ['privoxy']
|
||||
|
||||
managed_packages = ['privoxy']
|
||||
|
||||
title = _('Web Proxy \n (Privoxy)')
|
||||
name = _('Privoxy')
|
||||
|
||||
short_description = _('Web Proxy')
|
||||
|
||||
description = [
|
||||
_('Privoxy is a non-caching web proxy with advanced filtering '
|
||||
@ -66,13 +68,13 @@ service = None
|
||||
def init():
|
||||
"""Intialize the module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-cloud-upload', 'privoxy:index')
|
||||
menu.add_urlname(name, 'glyphicon-cloud-upload', 'privoxy:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['privoxy'],
|
||||
managed_services[0], name, ports=['privoxy'],
|
||||
is_external=False,
|
||||
enable=enable, disable=disable)
|
||||
|
||||
@ -87,7 +89,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['privoxy'],
|
||||
managed_services[0], name, ports=['privoxy'],
|
||||
is_external=False,
|
||||
enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
@ -95,7 +97,8 @@ def setup(helper, old_version=None):
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('privoxy', title,
|
||||
frontpage.add_shortcut('privoxy', name,
|
||||
short_description=short_description,
|
||||
details=description,
|
||||
configure_url=reverse_lazy('privoxy:index'),
|
||||
login_required=True)
|
||||
|
||||
@ -39,7 +39,9 @@ managed_services = ['quasselcore']
|
||||
|
||||
managed_packages = ['quassel-core']
|
||||
|
||||
title = _('IRC Client \n (Quassel)')
|
||||
name = _('Quassel')
|
||||
|
||||
short_description = _('IRC Client')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -64,13 +66,13 @@ reserved_usernames = ['quasselcore']
|
||||
def init():
|
||||
"""Initialize the quassel module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-retweet', 'quassel:index')
|
||||
menu.add_urlname(name, 'glyphicon-retweet', 'quassel:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['quassel-plinth'],
|
||||
managed_services[0], name, ports=['quassel-plinth'],
|
||||
is_external=True, enable=enable, disable=disable)
|
||||
|
||||
if service.is_enabled():
|
||||
@ -89,14 +91,15 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['quassel-plinth'],
|
||||
managed_services[0], name, ports=['quassel-plinth'],
|
||||
is_external=True, enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
helper.call('post', add_shortcut)
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('quassel', title,
|
||||
frontpage.add_shortcut('quassel', name,
|
||||
short_description=short_description,
|
||||
details=description,
|
||||
configure_url=reverse_lazy('quassel:index'),
|
||||
login_required=True)
|
||||
|
||||
@ -40,7 +40,9 @@ managed_services = ['radicale']
|
||||
|
||||
managed_packages = ['radicale']
|
||||
|
||||
title = _('Calendar and Addressbook \n (Radicale)')
|
||||
name = _('Radicale')
|
||||
|
||||
short_description = _('Calendar and Addressbook')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -59,13 +61,13 @@ CONFIG_FILE = '/etc/radicale/config'
|
||||
def init():
|
||||
"""Initialize the radicale module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-calendar', 'radicale:index')
|
||||
menu.add_urlname(name, 'glyphicon-calendar', 'radicale:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=True,
|
||||
enable=enable, disable=disable)
|
||||
|
||||
@ -80,7 +82,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=True,
|
||||
enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
@ -88,7 +90,8 @@ def setup(helper, old_version=None):
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('radicale', title,
|
||||
frontpage.add_shortcut('radicale', name,
|
||||
short_description=short_description,
|
||||
details=description,
|
||||
configure_url=reverse_lazy('radicale:index'),
|
||||
login_required=True)
|
||||
|
||||
@ -35,7 +35,9 @@ managed_services = ['repro']
|
||||
|
||||
managed_packages = ['repro']
|
||||
|
||||
title = _('SIP Server \n (repro)')
|
||||
name = _('repro')
|
||||
|
||||
short_description = _('SIP Server')
|
||||
|
||||
description = [
|
||||
_('repro provides various SIP services that a SIP softphone can utilize '
|
||||
@ -66,13 +68,13 @@ service = None
|
||||
def init():
|
||||
"""Initialize the repro module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-phone-alt', 'repro:index')
|
||||
menu.add_urlname(name, 'glyphicon-phone-alt', 'repro:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title,
|
||||
managed_services[0], name,
|
||||
ports=['sip', 'sips', 'rtp-plinth'],
|
||||
is_external=True, enable=enable, disable=disable)
|
||||
|
||||
@ -93,7 +95,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title,
|
||||
managed_services[0], name,
|
||||
ports=['sip', 'sips', 'rtp-plinth'],
|
||||
is_external=True, enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
@ -101,7 +103,8 @@ def setup(helper, old_version=None):
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('repro', title,
|
||||
frontpage.add_shortcut('repro', name,
|
||||
short_description=short_description,
|
||||
details=description,
|
||||
configure_url=reverse_lazy('repro:index'),
|
||||
login_required=True)
|
||||
|
||||
@ -33,7 +33,9 @@ managed_services = ['node-restore']
|
||||
|
||||
managed_packages = ['node-restore']
|
||||
|
||||
title = _('Unhosted Storage \n (reStore)')
|
||||
name = _('reStore')
|
||||
|
||||
short_description = _('Unhosted Storage')
|
||||
|
||||
description = [
|
||||
format_lazy(
|
||||
@ -56,13 +58,13 @@ service = None
|
||||
def init():
|
||||
"""Initialize the reStore module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-hdd', 'restore:index')
|
||||
menu.add_urlname(name, 'glyphicon-hdd', 'restore:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=False)
|
||||
|
||||
|
||||
@ -72,5 +74,5 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=False)
|
||||
|
||||
@ -32,7 +32,9 @@ version = 1
|
||||
|
||||
managed_packages = ['sqlite3', 'roundcube', 'roundcube-sqlite3']
|
||||
|
||||
title = _('Email Client \n (Roundcube)')
|
||||
name = _('Roundcube')
|
||||
|
||||
short_description = _('Email Client')
|
||||
|
||||
description = [
|
||||
_('Roundcube webmail is a browser-based multilingual IMAP '
|
||||
@ -62,13 +64,13 @@ service = None
|
||||
def init():
|
||||
"""Intialize the module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-envelope', 'roundcube:index')
|
||||
menu.add_urlname(name, 'glyphicon-envelope', 'roundcube:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
'roundcube', title, ports=['http', 'https'], is_external=True,
|
||||
'roundcube', name, ports=['http', 'https'], is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
|
||||
if is_enabled():
|
||||
@ -84,13 +86,13 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
'roundcube', title, ports=['http', 'https'], is_external=True,
|
||||
'roundcube', name, ports=['http', 'https'], is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut(
|
||||
'roundcube', title, url='/roundcube',
|
||||
'roundcube', name, short_description=short_description, url='/roundcube',
|
||||
login_required=True)
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ version = 2
|
||||
|
||||
is_essential = True
|
||||
|
||||
title = _('Security')
|
||||
name = _('Security')
|
||||
|
||||
managed_packages = ['fail2ban']
|
||||
|
||||
@ -42,7 +42,7 @@ ACCESS_CONF_SNIPPET = '-:ALL EXCEPT root fbx (admin) (sudo):ALL'
|
||||
def init():
|
||||
"""Initialize the module"""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-lock', 'security:index')
|
||||
menu.add_urlname(name, 'glyphicon-lock', 'security:index')
|
||||
|
||||
|
||||
def setup(helper, old_version=None):
|
||||
|
||||
@ -32,7 +32,9 @@ version = 1
|
||||
|
||||
managed_packages = ['shaarli']
|
||||
|
||||
title = _('Bookmarks \n (Shaarli)')
|
||||
name = _('Shaarli')
|
||||
|
||||
short_description = _('Bookmarks')
|
||||
|
||||
description = [
|
||||
_('Shaarli allows you to save and share bookmarks.'),
|
||||
@ -49,13 +51,13 @@ service = None
|
||||
def init():
|
||||
"""Initialize the module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-bookmark', 'shaarli:index')
|
||||
menu.add_urlname(name, 'glyphicon-bookmark', 'shaarli:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
'shaarli', title, ports=['http', 'https'], is_external=True,
|
||||
'shaarli', name, ports=['http', 'https'], is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
|
||||
if is_enabled():
|
||||
@ -68,14 +70,14 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
'shaarli', title, ports=['http', 'https'], is_external=True,
|
||||
'shaarli', name, ports=['http', 'https'], is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
helper.call('post', add_shortcut)
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('shaarli', title, url='/shaarli',
|
||||
frontpage.add_shortcut('shaarli', name, short_description=short_description, url='/shaarli',
|
||||
login_required=True)
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ version = 1
|
||||
|
||||
managed_packages = ['snapper']
|
||||
|
||||
title = _('Snapshots')
|
||||
name = _('Snapshots')
|
||||
|
||||
description = [
|
||||
_('Snapshots allows creating and managing filesystem snapshots. These can '
|
||||
@ -51,7 +51,7 @@ service = None
|
||||
def init():
|
||||
"""Initialize the module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-film', 'snapshot:index')
|
||||
menu.add_urlname(name, 'glyphicon-film', 'snapshot:index')
|
||||
|
||||
|
||||
def setup(helper, old_version=None):
|
||||
|
||||
@ -40,7 +40,7 @@ def index(request):
|
||||
snapshots = json.loads(output)
|
||||
|
||||
return TemplateResponse(request, 'snapshot.html',
|
||||
{'title': snapshot_module.title,
|
||||
{'title': snapshot_module.name,
|
||||
'description': snapshot_module.description,
|
||||
'snapshots': snapshots})
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ is_essential = True
|
||||
|
||||
depends = ['security']
|
||||
|
||||
title = _('Single Sign On')
|
||||
name = _('Single Sign On')
|
||||
|
||||
managed_packages = ['libapache2-mod-auth-pubtkt', 'openssl', 'python3-openssl']
|
||||
|
||||
|
||||
@ -36,7 +36,9 @@ managed_services = ['syncthing']
|
||||
|
||||
managed_packages = ['syncthing']
|
||||
|
||||
title = _('File Synchronization \n (Syncthing)')
|
||||
name = _('Syncthing')
|
||||
|
||||
short_description = _('File Synchronization')
|
||||
|
||||
description = [
|
||||
_('Syncthing is an application to synchronize files across multiple '
|
||||
@ -62,14 +64,14 @@ service = None
|
||||
def init():
|
||||
"""Intialize the module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-refresh', 'syncthing:index')
|
||||
menu.add_urlname(name, 'glyphicon-refresh', 'syncthing:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0],
|
||||
title,
|
||||
name,
|
||||
ports=['http', 'https'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled,
|
||||
@ -89,7 +91,7 @@ def setup(helper, old_version=None):
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0],
|
||||
title,
|
||||
name,
|
||||
ports=['http', 'https'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled,
|
||||
@ -103,7 +105,7 @@ def setup(helper, old_version=None):
|
||||
def add_shortcut():
|
||||
"""Helper method to add a shortcut to the frontpage."""
|
||||
frontpage.add_shortcut(
|
||||
'syncthing', title, url='/syncthing/', login_required=True)
|
||||
'syncthing', name, short_description=short_description, url='/syncthing/', login_required=True)
|
||||
|
||||
|
||||
def is_running():
|
||||
|
||||
@ -39,7 +39,9 @@ managed_services = ['tahoe-lafs']
|
||||
|
||||
managed_packages = ['tahoe-lafs']
|
||||
|
||||
title = _('Distributed File Storage (Tahoe-LAFS)')
|
||||
name = _('LAFS')
|
||||
|
||||
short_description = _('Distributed File Storage')
|
||||
|
||||
service = None
|
||||
|
||||
@ -85,14 +87,14 @@ description = [
|
||||
def init():
|
||||
"""Intialize the module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-hdd', 'tahoe:index')
|
||||
menu.add_urlname(name, 'glyphicon-hdd', 'tahoe:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup' and is_setup():
|
||||
service = service_module.Service(
|
||||
managed_services[0],
|
||||
title,
|
||||
name,
|
||||
ports=['tahoe-plinth'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled,
|
||||
@ -124,7 +126,7 @@ def post_setup(configured_domain_name):
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0],
|
||||
title,
|
||||
name,
|
||||
ports=['tahoe-plinth'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled,
|
||||
@ -139,7 +141,7 @@ def add_shortcut():
|
||||
"""Helper method to add a shortcut to the front page."""
|
||||
# BUG: Current logo appears squashed on front page.
|
||||
frontpage.add_shortcut(
|
||||
'tahoe-lafs', title,
|
||||
'tahoe-lafs', name, short_description=short_description,
|
||||
url='https://{}:5678'.format(get_configured_domain_name()),
|
||||
login_required=True)
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ class TahoeSetupView(FormView):
|
||||
template_name = 'tahoe-pre-setup.html'
|
||||
form_class = DomainSelectionForm
|
||||
description = tahoe.description
|
||||
title = tahoe.title
|
||||
title = tahoe.name
|
||||
success_url = reverse_lazy('tahoe:index')
|
||||
|
||||
def form_valid(self, form):
|
||||
|
||||
@ -39,7 +39,9 @@ depends = ['names']
|
||||
managed_packages = ['tor', 'tor-geoipdb', 'torsocks', 'obfs4proxy',
|
||||
'apt-transport-tor']
|
||||
|
||||
title = ('Anonymity Network \n (Tor)')
|
||||
name = _('Tor')
|
||||
|
||||
short_description = _('Anonymity Network')
|
||||
|
||||
description = [
|
||||
_('Tor is an anonymous communication system. You can learn more '
|
||||
@ -59,7 +61,7 @@ bridge_service = None
|
||||
def init():
|
||||
"""Initialize the module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-eye-close', 'tor:index')
|
||||
menu.add_urlname(name, 'glyphicon-eye-close', 'tor:index', short_description)
|
||||
|
||||
setup_helper = globals()['setup_helper']
|
||||
needs_setup = setup_helper.get_state() == 'needs-setup'
|
||||
|
||||
@ -51,7 +51,7 @@ def index(request):
|
||||
form = TorForm(initial=status, prefix='tor')
|
||||
|
||||
return TemplateResponse(request, 'tor.html',
|
||||
{'title': tor.title,
|
||||
{'title': tor.name,
|
||||
'description': tor.description,
|
||||
'status': status,
|
||||
'config_running': bool(config_process),
|
||||
|
||||
@ -35,7 +35,9 @@ managed_services = ['transmission-daemon']
|
||||
|
||||
managed_packages = ['transmission-daemon']
|
||||
|
||||
title = _('BitTorrent \n (Transmission)')
|
||||
name = _('Transmission')
|
||||
|
||||
short_description = _('BitTorrent')
|
||||
|
||||
description = [
|
||||
_('BitTorrent is a peer-to-peer file sharing protocol. '
|
||||
@ -52,13 +54,13 @@ service = None
|
||||
def init():
|
||||
"""Intialize the Transmission module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-save', 'transmission:index')
|
||||
menu.add_urlname(name, 'glyphicon-save', 'transmission:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=True, is_enabled=is_enabled,
|
||||
enable=enable, disable=disable)
|
||||
|
||||
@ -79,7 +81,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=True, is_enabled=is_enabled,
|
||||
enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
@ -88,7 +90,7 @@ def setup(helper, old_version=None):
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut(
|
||||
'transmission', title, url='/transmission',
|
||||
'transmission', name, short_description=short_description, url='/transmission',
|
||||
login_required=True)
|
||||
|
||||
|
||||
|
||||
@ -36,7 +36,9 @@ managed_services = ['tt-rss']
|
||||
|
||||
managed_packages = ['tt-rss', 'postgresql', 'dbconfig-pgsql', 'php-pgsql']
|
||||
|
||||
title = _('News Feed Reader \n (Tiny Tiny RSS)')
|
||||
name = _('Tiny Tiny RSS')
|
||||
|
||||
short_description = _('News Feed Reader')
|
||||
|
||||
description = [
|
||||
_('Tiny Tiny RSS is a news feed (RSS/Atom) reader and aggregator, '
|
||||
@ -56,13 +58,13 @@ service = None
|
||||
def init():
|
||||
"""Intialize the module."""
|
||||
menu = main_menu.get('apps')
|
||||
menu.add_urlname(title, 'glyphicon-envelope', 'ttrss:index')
|
||||
menu.add_urlname(name, 'glyphicon-envelope', 'ttrss:index', short_description)
|
||||
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
|
||||
@ -78,7 +80,7 @@ def setup(helper, old_version=None):
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0], title, ports=['http', 'https'],
|
||||
managed_services[0], name, ports=['http', 'https'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled, enable=enable, disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
@ -86,7 +88,7 @@ def setup(helper, old_version=None):
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut('ttrss', title, url='/tt-rss',
|
||||
frontpage.add_shortcut('ttrss', name, short_description=short_description, url='/tt-rss',
|
||||
login_required=True)
|
||||
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ is_essential = True
|
||||
|
||||
managed_packages = ['unattended-upgrades']
|
||||
|
||||
title = _('Software Upgrades')
|
||||
name = _('Software Upgrades')
|
||||
|
||||
description = [
|
||||
_('Upgrades install the latest software and security updates. When '
|
||||
@ -46,10 +46,10 @@ service = None
|
||||
def init():
|
||||
"""Initialize the module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-refresh', 'upgrades:index')
|
||||
menu.add_urlname(name, 'glyphicon-refresh', 'upgrades:index')
|
||||
global service
|
||||
service = service_module.Service(
|
||||
'auto-upgrades', title, is_external=False, is_enabled=is_enabled,
|
||||
'auto-upgrades', name, is_external=False, is_enabled=is_enabled,
|
||||
enable=enable, disable=disable)
|
||||
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ class UpgradesConfigurationView(FormView):
|
||||
"""Return the context data for rendering the template view."""
|
||||
context = super().get_context_data(*args, **kwargs)
|
||||
context['subsubmenu'] = subsubmenu
|
||||
context['title'] = upgrades.title
|
||||
context['title'] = upgrades.name
|
||||
context['description'] = upgrades.description
|
||||
return context
|
||||
|
||||
@ -111,7 +111,7 @@ def upgrade(request):
|
||||
messages.error(request, _('Starting upgrade failed.'))
|
||||
|
||||
return TemplateResponse(request, 'upgrades.html',
|
||||
{'title': upgrades.title,
|
||||
{'title': upgrades.name,
|
||||
'description': upgrades.description,
|
||||
'subsubmenu': subsubmenu,
|
||||
'is_busy': is_busy,
|
||||
|
||||
@ -42,13 +42,13 @@ first_boot_steps = [
|
||||
},
|
||||
]
|
||||
|
||||
title = _('Users and Groups')
|
||||
name = _('Users and Groups')
|
||||
|
||||
|
||||
def init():
|
||||
"""Intialize the user module."""
|
||||
menu = main_menu.get('system')
|
||||
menu.add_urlname(title, 'glyphicon-user', 'users:index')
|
||||
menu.add_urlname(name, 'glyphicon-user', 'users:index')
|
||||
|
||||
|
||||
def setup(helper, old_version=None):
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>{% trans "Installation" %}: {{ setup_helper.module.title }}</h2>
|
||||
<h2>{% trans "Installation" %}: {{ setup_helper.module.short_description }} ({{ setup_helper.module.name }})</h2>
|
||||
|
||||
{% for paragraph in setup_helper.module.description %}
|
||||
<p>{{ paragraph|safe }}</p>
|
||||
|
||||
@ -154,19 +154,20 @@ class MenuTestCase(TestCase):
|
||||
|
||||
def test_add_urlname(self):
|
||||
"""Verify that a named URL can be added to a menu correctly."""
|
||||
expected_label = 'Label4'
|
||||
expected_title = 'Label4'
|
||||
expected_short_description = 'Description4'
|
||||
expected_icon = 'Icon4'
|
||||
expected_url = 'index'
|
||||
reversed_url = reverse(expected_url)
|
||||
expected_order = 4
|
||||
menu = Menu()
|
||||
actual_item = menu.add_urlname(expected_label, expected_icon,
|
||||
expected_url, expected_order)
|
||||
actual_item = menu.add_urlname(expected_title, expected_icon,
|
||||
expected_url, expected_short_description, expected_order)
|
||||
|
||||
self.assertEqual(1, len(menu.items))
|
||||
self.assertIsNotNone(actual_item)
|
||||
self.assertEqual(actual_item, menu.items[0])
|
||||
self.assertEqual(expected_label, actual_item.label)
|
||||
self.assertEqual('Description4 (Label4)', actual_item.label)
|
||||
self.assertEqual(expected_icon, actual_item.icon)
|
||||
self.assertEqual(reversed_url, actual_item.url)
|
||||
self.assertEqual(expected_order, actual_item.order)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user