mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-28 08:03:36 +00:00
roundcube: Use new setup mechanism
This commit is contained in:
parent
c2cb1f32b9
commit
bdfd20d661
@ -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 <a href="/roundcube">'
|
||||
'/roundcube</a>. 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 <code>imap.example.com'
|
||||
'</code>. For IMAP over SSL (recommended), fill the server field '
|
||||
'like <code>imaps://imap.example.com</code>.'),
|
||||
|
||||
_('For Gmail, username will be your Gmail address, password will be '
|
||||
'your Google account password and server will be '
|
||||
'<code>imaps://imap.gmail.com</code>. Note that you will also need '
|
||||
'to enable "Less secure apps" in your Google account settings '
|
||||
'(<a href="https://www.google.com/settings/security/lesssecureapps"'
|
||||
'>https://www.google.com/settings/security/lesssecureapps</a>).'),
|
||||
]
|
||||
|
||||
|
||||
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."""
|
||||
|
||||
@ -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 %}
|
||||
|
||||
<h2>{% trans "Email Client (Roundcube)" %}</h2>
|
||||
|
||||
<p>
|
||||
{% 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 %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
You can access Roundcube from <a href="/roundcube">/roundcube</a>.
|
||||
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 <code>imap.example.com</code>. For
|
||||
IMAP over SSL (recommended), fill the server field like
|
||||
<code>imaps://imap.example.com</code>.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
For Gmail, username will be your Gmail address, password will be
|
||||
your Google account password and server will be
|
||||
<code>imaps://imap.gmail.com</code>. Note that you will also need
|
||||
to enable "Less secure apps" in your Google account settings
|
||||
(<a href="https://www.google.com/settings/security/lesssecureapps"
|
||||
>https://www.google.com/settings/security/lesssecureapps</a>).
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
{% block configuration %}
|
||||
|
||||
{% include "diagnostics_button.html" with module="roundcube" %}
|
||||
|
||||
|
||||
@ -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})
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user