diff --git a/extensions/amavis_quarantine/main.py b/extensions/amavis_quarantine/main.py index 19163b9f9..d57ea5f6a 100644 --- a/extensions/amavis_quarantine/main.py +++ b/extensions/amavis_quarantine/main.py @@ -294,7 +294,17 @@ def process(request): def search(request): if not request.GET.has_key("pattern"): return - filter = "&msgs.from_addr LIKE '%%%s%%'" % request.GET["pattern"] + if request.GET.has_key("criteria"): + criteria = request.GET["criteria"].split(',') + else: + criteria = ["from_addr"] + filter = "" + pattern = re.escape(request.GET["pattern"]) + for c in criteria: + if filter != "": + filter += " OR " + filter += "msgs.%s LIKE '%%%s%%'" % (c, pattern) + filter = "&(%s)" % filter cursor = lookup(filter) ctx = {"status" : "ok", "content" : render_listing(request, cursor)} return HttpResponse(simplejson.dumps(ctx), diff --git a/extensions/amavis_quarantine/templates/index.html b/extensions/amavis_quarantine/templates/index.html index 75b4253a0..d96164357 100644 --- a/extensions/amavis_quarantine/templates/index.html +++ b/extensions/amavis_quarantine/templates/index.html @@ -2,6 +2,7 @@ {% load i18n %} {% load amextras %} {% block html_head %} + {% endblock %} @@ -132,15 +158,23 @@ window.addEvent("domready", function() { {% endfor %} {% endif %} -