mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
Merge
This commit is contained in:
File diff suppressed because one or more lines are too long
+3
-1
@@ -39,9 +39,11 @@ def dologin(request):
|
||||
error = _("Your username and password didn't match. Please try again.")
|
||||
else:
|
||||
form = LoginForm()
|
||||
|
||||
next = request.GET.has_key("next") and request.GET["next"] or None
|
||||
return render_to_response("registration/login.html", {
|
||||
"form" : form, "error" : error, "next" : next
|
||||
"form" : form, "error" : error, "next" : next,
|
||||
"annoucements" : events.raiseQueryEvent("GetAnnouncement", target="loginpage")
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
def dologout(request):
|
||||
|
||||
+9
-1
@@ -2,6 +2,7 @@
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext_noop as _
|
||||
from django.template.loader import render_to_string
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib.webutils import static_url
|
||||
|
||||
@@ -28,5 +29,12 @@ def menu(**kwargs):
|
||||
}
|
||||
]
|
||||
|
||||
if 'demo' in settings.INSTALLED_APPS:
|
||||
def announcement(**kwargs):
|
||||
if kwargs["target"] == "loginpage":
|
||||
txt = render_to_string("demo/login_announcement.html")
|
||||
return [txt]
|
||||
return ""
|
||||
|
||||
if 'modoboa.demo' in settings.INSTALLED_APPS:
|
||||
events.register("UserMenuDisplay", menu)
|
||||
events.register("GetAnnouncement", announcement)
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{% load i18n %}
|
||||
{% blocktrans %}
|
||||
<h1>Welcome to the online demo!</h1>
|
||||
<p><b>Warning:</b> the demo's concent is resetted every two hours.</p>
|
||||
<p>To try the demo, the following users are available (<i>username/password</i>): </p>
|
||||
<ul>
|
||||
<li>A super administrator : <b>admin/password</b></li>
|
||||
<li>A domain administrator : <b>admin@demo.local/admin</b></li>
|
||||
<li>A simple user : <b>user@demo.local/user</b></li>
|
||||
</ul>
|
||||
<p>Please report any issue of give any suggestion to
|
||||
<a href="https://groups.google.com/forum/#!forum/modoboa-users">the mailing list</a>.</p>
|
||||
{% endblocktrans %}
|
||||
+12
-1
@@ -126,7 +126,7 @@ that corresponds to the ``Request`` object used inside the associated
|
||||
view function.
|
||||
|
||||
UserLogout
|
||||
__________
|
||||
----------
|
||||
|
||||
Raised when a user logs out. This event provides a ``request`` argument
|
||||
that corresponds to the ``Request`` object used inside the associated
|
||||
@@ -245,6 +245,17 @@ ExtDisabled
|
||||
Raised just after an extension has been disabled. The Extension
|
||||
object is available inside the ``ext`` keyword argument.
|
||||
|
||||
GetAnnouncement
|
||||
---------------
|
||||
|
||||
Some places in the interface let plugins add their own announcement
|
||||
(ie. message). A keyword argument ``target`` is provided to registered
|
||||
callbacks and indicates the place where the announcement will appear:
|
||||
|
||||
* ``loginpage`` : corresponds to the login page
|
||||
|
||||
Callbacks listening to this event must return a list of string.
|
||||
|
||||
Parameters
|
||||
==========
|
||||
|
||||
|
||||
+3
-1
@@ -22,7 +22,9 @@ events = ["CreateDomain",
|
||||
"ExtDisabled",
|
||||
|
||||
"UserLogin",
|
||||
"UserLogout"]
|
||||
"UserLogout",
|
||||
|
||||
"GetAnnouncement"]
|
||||
|
||||
callbacks = {}
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
[{"pk": 1, "model": "lib.parameter", "fields": {"name": "stats.IMG_ROOTDIR", "value": "/srv/www/modoboa/static/stats"}}, {"pk": 2, "model": "lib.parameter", "fields": {"name": "webmail.IMAP_SECURED", "value": "no"}}, {"pk": 3, "model": "lib.parameter", "fields": {"name": "amavis_quarantine.AM_PDP_PORT", "value": "9998"}}, {"pk": 4, "model": "lib.parameter", "fields": {"name": "postfix_autoreply.AUTOREPLIES_TIMEOUT", "value": "86400"}}, {"pk": 5, "model": "lib.parameter", "fields": {"name": "sievefilters.AUTHENTICATION_MECH", "value": "AUTO"}}, {"pk": 6, "model": "lib.parameter", "fields": {"name": "general.DEFAULT_TOP_REDIRECTION", "value": "userprefs"}}, {"pk": 7, "model": "lib.parameter", "fields": {"name": "amavis_quarantine.AM_PDP_SOCKET", "value": "/var/amavis/amavisd.sock"}}, {"pk": 8, "model": "lib.parameter", "fields": {"name": "auth.SECRET_KEY", "value": "abcdefghijklmnop"}}, {"pk": 9, "model": "lib.parameter", "fields": {"name": "amavis_quarantine.AM_PDP_MODE", "value": "inet"}}, {"pk": 10, "model": "lib.parameter", "fields": {"name": "webmail.IMAP_PORT", "value": "143"}}, {"pk": 11, "model": "lib.parameter", "fields": {"name": "webmail.SMTP_SECURED_MODE", "value": "none"}}, {"pk": 12, "model": "lib.parameter", "fields": {"name": "admin.STORAGE_PATH", "value": "/srv/vmail"}}, {"pk": 13, "model": "lib.parameter", "fields": {"name": "admin.ITEMS_PER_PAGE", "value": "30"}}, {"pk": 14, "model": "lib.parameter", "fields": {"name": "sievefilters.SERVER", "value": "127.0.0.1"}}, {"pk": 15, "model": "lib.parameter", "fields": {"name": "webmail.SMTP_SERVER", "value": "127.0.0.1"}}, {"pk": 16, "model": "lib.parameter", "fields": {"name": "webmail.MAX_ATTACHMENT_SIZE", "value": "2048"}}, {"pk": 17, "model": "lib.parameter", "fields": {"name": "stats.RRD_ROOTDIR", "value": "/srv/www/modoboa/tmp"}}, {"pk": 18, "model": "lib.parameter", "fields": {"name": "amavis_quarantine.RELEASED_MSGS_CLEANUP", "value": "no"}}, {"pk": 19, "model": "lib.parameter", "fields": {"name": "admin.VIRTUAL_UID", "value": "vmail"}}, {"pk": 20, "model": "lib.parameter", "fields": {"name": "admin.MAILDIR_ROOT", "value": ".maildir"}}, {"pk": 21, "model": "lib.parameter", "fields": {"name": "amavis_quarantine.MAX_MESSAGES_AGE", "value": "14"}}, {"pk": 22, "model": "lib.parameter", "fields": {"name": "webmail.SMTP_PORT", "value": "25"}}, {"pk": 23, "model": "lib.parameter", "fields": {"name": "webmail.SMTP_AUTHENTICATION", "value": "no"}}, {"pk": 24, "model": "lib.parameter", "fields": {"name": "admin.PASSWORD_SCHEME", "value": "crypt"}}, {"pk": 25, "model": "lib.parameter", "fields": {"name": "webmail.IMAP_SERVER", "value": "127.0.0.1"}}, {"pk": 26, "model": "lib.parameter", "fields": {"name": "admin.CREATE_DIRECTORIES", "value": "yes"}}, {"pk": 27, "model": "lib.parameter", "fields": {"name": "amavis_quarantine.AM_PDP_HOST", "value": "localhost"}}, {"pk": 28, "model": "lib.parameter", "fields": {"name": "admin.MAILBOX_TYPE", "value": "maildir"}}, {"pk": 29, "model": "lib.parameter", "fields": {"name": "sievefilters.PORT", "value": "2000"}}, {"pk": 30, "model": "lib.parameter", "fields": {"name": "admin.VIRTUAL_GID", "value": "vmail"}}, {"pk": 31, "model": "lib.parameter", "fields": {"name": "sievefilters.STARTTLS", "value": "no"}}, {"pk": 32, "model": "lib.parameter", "fields": {"name": "stats.LOGFILE", "value": "/var/log/mail.log"}}]
|
||||
+38
-20
@@ -7,26 +7,10 @@ html, body {
|
||||
}
|
||||
|
||||
#loginbox {
|
||||
margin: 100px auto;
|
||||
width: 610px;
|
||||
padding-bottom: 15px;
|
||||
background: white;
|
||||
|
||||
border: 5px solid #333;
|
||||
/*-moz-box-shadow: 0 10px 30px #222;*/
|
||||
-webkit-box-shadow: 0 10px 30px #222;
|
||||
-moz-border-radius: 10px;
|
||||
-webkit-border-radius: 5px;
|
||||
}
|
||||
|
||||
#loginbox h2 {
|
||||
margin: 30px 10px 0 10px;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
#loginbox h3 {
|
||||
font-size: small;
|
||||
text-align: center;
|
||||
margin: 100px auto 10px auto;
|
||||
padding: 0 0 15px 0;
|
||||
font-size: 1em;
|
||||
width: 630px;
|
||||
}
|
||||
|
||||
#logo {
|
||||
@@ -46,6 +30,40 @@ html, body {
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.roundedbox {
|
||||
margin: 10px auto;
|
||||
padding: 10px;
|
||||
width: 610px;
|
||||
background: white;
|
||||
font-size: 1.1em;
|
||||
|
||||
border: 5px solid #333;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.roundedbox h1 {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 1.2em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.roundedbox h2 {
|
||||
margin: 30px 10px 0 10px;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.roundedbox h3 {
|
||||
font-size: small;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.roundedbox a, a:visited {
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.spacer {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="loginbox">
|
||||
<div id="loginbox" class="roundedbox">
|
||||
<div id="logo">
|
||||
<img src="{{ MEDIA_URL }}css/modoboa.png" />
|
||||
{% if error %}
|
||||
@@ -27,8 +27,7 @@
|
||||
<div id="test">
|
||||
<h3>{% trans "Welcome" %}</h3>
|
||||
<form method="post" action="">
|
||||
{% include "common/genericform.html" %}
|
||||
|
||||
{% include "common/genericform.html" %}
|
||||
<div class="lastrow" align="center">
|
||||
<input type="submit" value="login" />
|
||||
</div>
|
||||
@@ -37,5 +36,8 @@
|
||||
</div>
|
||||
<div class="spacer"></div>
|
||||
</div>
|
||||
{% for annoucement in annoucements %}
|
||||
<div class="roundedbox">{{ annoucement|safe }}</div>
|
||||
{% endfor %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user