From c07d58378b667f549b116fb8f8a7bb64a622c83e Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 20 Nov 2013 20:10:36 +0100 Subject: [PATCH] Few fixes. see #89 --- .../extensions/amavis/general_callbacks.py | 27 +++++++++++++++---- .../amavis/static/amavis/js/quarantine.js | 4 ++- .../amavis/templatetags/amavis_tags.py | 2 +- modoboa/extensions/amavis/views.py | 2 +- modoboa/static/js/global.js | 13 +++++++++ 5 files changed, 40 insertions(+), 8 deletions(-) diff --git a/modoboa/extensions/amavis/general_callbacks.py b/modoboa/extensions/amavis/general_callbacks.py index 8d9ad4ec6..1246c7202 100644 --- a/modoboa/extensions/amavis/general_callbacks.py +++ b/modoboa/extensions/amavis/general_callbacks.py @@ -60,11 +60,14 @@ $(document).ready(function() { interval: {{ interval }}, success_cb: function(data) { var $link = $("#nbrequests"); + var $maincounter = $("#alerts-counter"); + if (data.requests > 0) { - $link.html(data.requests + " " + "{{ text }}"); - $link.parent().removeClass('hidden'); + $maincounter.html(data.requests); + $link.children("span").html(data.requests); + $maincounter.closest('div').removeClass('hidden'); } else { - $link.parent().addClass('hidden'); + $maincounter.closest('div').addClass('hidden'); } } }); @@ -102,10 +105,24 @@ def display_requests(user): url = reverse("modoboa.extensions.amavis.views.index") url += "#listing/?viewrequests=1" - tpl = Template('
{{ label }}
') + tpl = Template("""""") css = "hidden" if nbrequests == 0 else "" return [tpl.render(Context(dict( - label=_("%d pending requests" % nbrequests), url=url, css=css + label=_("Pending requests"), url=url, css=css, + nbrequests=nbrequests )))] diff --git a/modoboa/extensions/amavis/static/amavis/js/quarantine.js b/modoboa/extensions/amavis/static/amavis/js/quarantine.js index fb6163972..61bf66522 100644 --- a/modoboa/extensions/amavis/static/amavis/js/quarantine.js +++ b/modoboa/extensions/amavis/static/amavis/js/quarantine.js @@ -167,7 +167,9 @@ Quarantine.prototype = { } $.ajax({ url: $link.attr("href"), - dataType: 'json' + dataType: 'json', + type: 'POST', + data: {rcpt: get_parameter_by_name($link.attr("href"), 'rcpt')} }).done($.proxy(this.action_cb, this)); }, diff --git a/modoboa/extensions/amavis/templatetags/amavis_tags.py b/modoboa/extensions/amavis/templatetags/amavis_tags.py index 7143cd8bd..8c64cd677 100644 --- a/modoboa/extensions/amavis/templatetags/amavis_tags.py +++ b/modoboa/extensions/amavis/templatetags/amavis_tags.py @@ -9,7 +9,7 @@ register = template.Library() @register.simple_tag -def viewm_menu(user, mail_id, rcpt): +def viewm_menu(mail_id, rcpt): entries = [ {"name": "release", "img": "icon-white icon-ok", diff --git a/modoboa/extensions/amavis/views.py b/modoboa/extensions/amavis/views.py index 3a7ab3457..fc39c5d15 100644 --- a/modoboa/extensions/amavis/views.py +++ b/modoboa/extensions/amavis/views.py @@ -147,7 +147,7 @@ def viewmail(request, mail_id): content = Template(""" """).render(Context({"url": reverse(getmailcontent, args=[mail_id])})) - menu = viewm_menu(request.user, mail_id, rcpt) + menu = viewm_menu(mail_id, rcpt) ctx = getctx("ok", menu=menu, listing=content) request.session['location'] = 'viewmail' return HttpResponse(simplejson.dumps(ctx), mimetype="application/json") diff --git a/modoboa/static/js/global.js b/modoboa/static/js/global.js index 7be4d4c63..42c45a340 100644 --- a/modoboa/static/js/global.js +++ b/modoboa/static/js/global.js @@ -233,6 +233,19 @@ function parse_qs(raw) { return res; } +/* + * Extract a specific URL parameter using its name. + * + * Ref: http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript + */ +function get_parameter_by_name(url, name) { + var name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); + var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), + results = regex.exec(url); + + return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); +} + /* * Return the target associated to an event object. */