diff --git a/plinth/modules/roundcube/__init__.py b/plinth/modules/roundcube/__init__.py index c170c6f2b..1c11596af 100644 --- a/plinth/modules/roundcube/__init__.py +++ b/plinth/modules/roundcube/__init__.py @@ -21,18 +21,52 @@ Plinth module to configure Roundcube. from django.utils.translation import ugettext_lazy as _ +from plinth import actions from plinth import action_utils from plinth import cfg +version = 1 + depends = ['apps'] +title = _('Email Client (Roundcube)') + +description = [ + _('Roundcube webmail is a browser-based multilingual IMAP ' + 'client with an application-like user interface. It provides ' + 'full functionality you expect from an email client, including ' + 'MIME support, address book, folder manipulation, message ' + 'searching and spell checking.'), + + _('You can access Roundcube from ' + '/roundcube. Provide the username and password of the email ' + 'account you wish to access followed by the domain name of the ' + 'IMAP server for your email provider, like imap.example.com' + '. For IMAP over SSL (recommended), fill the server field ' + 'like imaps://imap.example.com.'), + + _('For Gmail, username will be your Gmail address, password will be ' + 'your Google account password and server will be ' + 'imaps://imap.gmail.com. Note that you will also need ' + 'to enable "Less secure apps" in your Google account settings ' + '(https://www.google.com/settings/security/lesssecureapps).'), +] + def init(): """Intialize the module.""" menu = cfg.main_menu.get('apps:index') - menu.add_urlname(_('Email Client (Roundcube)'), 'glyphicon-envelope', - 'roundcube:index', 600) + menu.add_urlname(title, 'glyphicon-envelope', 'roundcube:index', 600) + + +def setup(helper, old_version=None): + """Install and configure the module.""" + helper.call('pre', actions.superuser_run, 'roundcube', ['pre-install']) + helper.install(['sqlite3', 'roundcube', 'roundcube-sqlite3']) + helper.call('pre', actions.superuser_run, 'roundcube', ['setup']) + def is_enabled(): """Return whether the module is enabled.""" diff --git a/plinth/modules/roundcube/templates/roundcube.html b/plinth/modules/roundcube/templates/roundcube.html index fea5d2c92..6028f7aba 100644 --- a/plinth/modules/roundcube/templates/roundcube.html +++ b/plinth/modules/roundcube/templates/roundcube.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "app.html" %} {% comment %} # # This file is part of Plinth. @@ -21,41 +21,7 @@ {% load bootstrap %} {% load i18n %} -{% block content %} - -

{% trans "Email Client (Roundcube)" %}

- -

- {% blocktrans trimmed %} - Roundcube webmail is a browser-based multilingual IMAP client - with an application-like user interface. It provides full - functionality you expect from an email client, including MIME - support, address book, folder manipulation, message searching - and spell checking. - {% endblocktrans %} -

- -

- {% blocktrans trimmed %} - You can access Roundcube from /roundcube. - Provide the username and password of the email account you wish - to access followed by the domain name of the IMAP server for - your email provider, like imap.example.com. For - IMAP over SSL (recommended), fill the server field like - imaps://imap.example.com. - {% endblocktrans %} -

- -

- {% blocktrans trimmed %} - For Gmail, username will be your Gmail address, password will be - your Google account password and server will be - imaps://imap.gmail.com. Note that you will also need - to enable "Less secure apps" in your Google account settings - (https://www.google.com/settings/security/lesssecureapps). - {% endblocktrans %} -

+{% block configuration %} {% include "diagnostics_button.html" with module="roundcube" %} diff --git a/plinth/modules/roundcube/views.py b/plinth/modules/roundcube/views.py index 1790d8868..610fdb8c0 100644 --- a/plinth/modules/roundcube/views.py +++ b/plinth/modules/roundcube/views.py @@ -26,24 +26,11 @@ import logging from .forms import RoundcubeForm from plinth import actions -from plinth import package from plinth.modules import roundcube logger = logging.getLogger(__name__) -def before_install(): - """Preseed debconf values before the packages are installed.""" - actions.superuser_run('roundcube', ['pre-install']) - - -def on_install(): - """Setup Roundcube Apache configuration.""" - actions.superuser_run('roundcube', ['setup']) - - -@package.required(['sqlite3', 'roundcube', 'roundcube-sqlite3'], - before_install=before_install, on_install=on_install) def index(request): """Serve configuration page.""" status = get_status() @@ -61,7 +48,8 @@ def index(request): form = RoundcubeForm(initial=status, prefix='roundcube') return TemplateResponse(request, 'roundcube.html', - {'title': _('Email Client (Roundcube)'), + {'title': roundcube.title, + 'description': roundcube.description, 'status': status, 'form': form})