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