\d+)/$', 'editmailbox'),
diff --git a/admin/views.py b/admin/views.py
index 1bf7def11..abaab4705 100644
--- a/admin/views.py
+++ b/admin/views.py
@@ -54,28 +54,36 @@ def domains(request):
})
@login_required
-def domaliases(request, dom_id=None):
- domaliases = DomainAlias.objects.all()
+def domaliases(request):
+ if request.GET.has_key("domid"):
+ domain = Domain.objects.get(pk=request.GET["domid"])
+ domaliases = DomainAlias.objects.filter(target=request.GET["domid"])
+ else:
+ domain = None
+ domaliases = DomainAlias.objects.all()
return _render(request, 'admin/domaliases.html', {
- "domaliases" : domaliases
+ "domaliases" : domaliases, "domain" : domain
})
@login_required
-def newdomalias(request, dom_id):
- domain = Domain.objects.get(pk=dom_id)
+def newdomalias(request):
if request.method == "POST":
form = DomainAliasForm(request.POST)
error = None
if form.is_valid():
- if DomainAlias.objects.filter(name=request.POST["name"]):
- error = _("Alias with this name already exists")
+ domalias = form.save(commit=False)
+ if Domain.objects.filter(name=domalias.name):
+ error = _("A domain with this name already exists")
else:
- domalias = form.save(commit=False)
- domalias.save()
- ctx = _ctx_ok(reverse(admin.views.domaliases))
- messages.info(request, _("Domain alias created"), fail_silently=True)
- return HttpResponse(simplejson.dumps(ctx),
- mimetype="application/json")
+ try:
+ domalias.save()
+ except IntegrityError:
+ error = _("Alias with this name already exists")
+ else:
+ ctx = _ctx_ok(reverse(admin.views.domaliases))
+ messages.info(request, _("Domain alias created"), fail_silently=True)
+ return HttpResponse(simplejson.dumps(ctx),
+ mimetype="application/json")
content = _render_to_string(request, "admin/newdomalias.html", {
"form" : form, "error" : error
})
@@ -86,6 +94,37 @@ def newdomalias(request, dom_id):
"form" : form
})
+@login_required
+def editdomalias(request, alias_id):
+ domalias = DomainAlias.objects.get(pk=alias_id)
+ if request.method == "POST":
+ form = DomainAliasForm(request.POST, instance=domalias)
+ error = None
+ if form.is_valid():
+ ndomalias = form.save(commit=False)
+ if Domain.objects.filter(name=ndomalias.name):
+ error = _("A domain with this name already exists")
+ else:
+ try:
+ ndomalias.save()
+ except IntegrityError:
+ error = _("Alias with this name already exists")
+ else:
+ ctx = _ctx_ok(reverse(admin.views.domaliases))
+ messages.info(request, _("Domain alias updated"), fail_silently=True)
+ return HttpResponse(simplejson.dumps(ctx),
+ mimetype="application/json")
+ content = _render_to_string(request, "admin/editdomalias.html", {
+ "form" : form, "error" : error
+ })
+ ctx = getctx("ko", content=content)
+ return HttpResponse(simplejson.dumps(ctx), mimetype="application/json")
+
+ form = DomainAliasForm(instance=domalias)
+ return _render(request, 'admin/editdomalias.html', {
+ "form" : form, "domalias" : domalias
+ })
+
@login_required
@permission_required("admin.add_domain")
def newdomain(request):
diff --git a/templates/admin/domains.html b/templates/admin/domains.html
index edd9e56cc..6b298cf35 100644
--- a/templates/admin/domains.html
+++ b/templates/admin/domains.html
@@ -28,23 +28,7 @@
{% for dom in domains %}
-
- {% url admin.views.editdomain dom.id as edit_url %}
-
-
-
- {% url admin.views.deldomain dom.id as del_url %}
-
-
-
- {% url admin.views.newdomalias dom.id as new_url %}
-
-
-
- |
- {% url admin.views.mailboxes dom.id as domurl %}
+ {% domain_actions user dom.id %} |
{{ dom.name }} |
{{ dom.mboxcounter }} |
{{ dom.quota }} {% trans "MB" %} |
diff --git a/templates/admin/domaliases.html b/templates/admin/domaliases.html
index 53b47326a..a50611fc3 100644
--- a/templates/admin/domaliases.html
+++ b/templates/admin/domaliases.html
@@ -5,7 +5,9 @@
{% endblock %}
-{% block middletitle %}{% trans "Available aliases" %}{% endblock %}
+{% block middletitle %}
+{% trans "Domain aliases" %}{% if domain %} ({% trans "for" %} {{ domain.name }}){% endif %}
+{% endblock %}
{% block menu %}{% domains_menu "domaliases" user %}{% endblock %}
{% block content %}
{% if messages %}{% display_messages messages %}{% endif %}
@@ -21,8 +23,8 @@
{% trans "Enabled" %} |
{% for domalias in domaliases %}
-
- |
+
+ | {% domalias_actions user domalias.id %} |
{{ domalias.name }} |
{{ domalias.target.name }} |
{{ domalias.enabled|yesno }} |
diff --git a/templates/admin/editdomalias.html b/templates/admin/editdomalias.html
new file mode 100644
index 000000000..1827d0fa2
--- /dev/null
+++ b/templates/admin/editdomalias.html
@@ -0,0 +1,17 @@
+{% extends "layout_simple.html" %}
+{% load i18n %}
+{% block html_head %}
+
+{% endblock %}
+{% block content %}
+{% trans "Edit domain alias" %}
+{% if error %}{{ error }}
{% endif %}
+{% url admin.views.editdomalias domalias.id as box_url %}
+
+{% endblock %}
diff --git a/templates/admin/mailboxes.html b/templates/admin/mailboxes.html
index d704b3d34..d3bfcc412 100644
--- a/templates/admin/mailboxes.html
+++ b/templates/admin/mailboxes.html
@@ -19,27 +19,7 @@
{% for mb in mailboxes %}
-
- {% url admin.views.editmailbox domain.id mb.id as edit_url %}
-
-
-
- {% url admin.views.delmailbox domain.id mb.id as del_url %}
-
-
-
- {% url admin.views.newalias domain.id as alias_url %}
-
-
-
- {% url mbox-aliases domain.id mb.id as aliases_url %}
-
-
-
- |
+ {% mailbox_actions user domain.id mb.id %} |
{{ mb.name }} |
{{ mb.address }}@{{ mb.domain.name }} |
{{ mb.quota }} {% trans "MB" %} |