diff --git a/extensions/amavis_quarantine/static/js/quarantine.js b/extensions/amavis_quarantine/static/js/quarantine.js index c7b2a4eee..d07b7f274 100644 --- a/extensions/amavis_quarantine/static/js/quarantine.js +++ b/extensions/amavis_quarantine/static/js/quarantine.js @@ -49,7 +49,7 @@ Quarantine.prototype = { $(document).on("click", "a[name=release]", $.proxy(this.release, this)); $(document).on("click", "a[name=delete]", $.proxy(this.delete, this)); - $(document).on("click", "a[name=viewmode]", $.proxy(this.update_params, this)); + $(document).on("click", "a[name=headers]", $.proxy(this.headers, this)); }, load_page: function(e) { @@ -152,6 +152,39 @@ Quarantine.prototype = { this._send_action(e, gettext("Delete this message?")); }, + show_rawheaders: function($mailcontent) { + $mailcontent.find("#rawheaders").removeClass("hidden"); + $mailcontent.find("#emailheaders").addClass("hidden"); + }, + + headers: function(e) { + e.preventDefault(); + + var $link = $(e.target); + var $mailcontent = $("#mailcontent").contents(); + var $headers = $mailcontent.find("#emailheaders"); + var $rawheaders = $mailcontent.find("#rawheaders"); + + if ($headers.hasClass("hidden")) { + $link.html(gettext("View full headers")); + $headers.removeClass("hidden"); + $rawheaders.addClass("hidden"); + return; + } + $link.html(gettext("Hide full headers")); + if (!$rawheaders.length) { + $.ajax({ + url: $link.attr("href"), + success: $.proxy(function(data) { + $mailcontent.find("#table-container").append($(data)); + this.show_rawheaders($mailcontent); + }, this) + }); + return; + } + this.show_rawheaders($mailcontent); + }, + update_params: function(e) { var $link = $(e.target); e.preventDefault(); diff --git a/extensions/amavis_quarantine/templates/amavis_quarantine/viewheader.html b/extensions/amavis_quarantine/templates/amavis_quarantine/viewheader.html index 50c749ef8..3cd8ab7c5 100644 --- a/extensions/amavis_quarantine/templates/amavis_quarantine/viewheader.html +++ b/extensions/amavis_quarantine/templates/amavis_quarantine/viewheader.html @@ -1,11 +1,4 @@ -{% extends "common/generic_modal.html" %} -{% load i18n %} -{% block modalbody %} - -{% for k, v in headers %} - - - +
+{% for k, v in headers %}{{ k }}: {{ v }}
 {% endfor %}
-
{{ k }}{{ v }}
-{% endblock %} + diff --git a/extensions/amavis_quarantine/templatetags/amextras.py b/extensions/amavis_quarantine/templatetags/amextras.py index ef1dcc3a7..8ed14c2a3 100644 --- a/extensions/amavis_quarantine/templatetags/amextras.py +++ b/extensions/amavis_quarantine/templatetags/amextras.py @@ -26,9 +26,7 @@ def viewm_menu(user, mail_id, rcpt): "label" : _("Delete")}, {"name" : "headers", "url" : reverse(amavis_quarantine.views.viewheaders, args=[mail_id]), - "label" : _("View full headers"), - "modal" : True, - "autowidth" : True}, + "label" : _("View full headers")}, ] menu = render_to_string('common/buttons_list.html', diff --git a/extensions/amavis_quarantine/views.py b/extensions/amavis_quarantine/views.py index afbb71d56..b2c23e500 100644 --- a/extensions/amavis_quarantine/views.py +++ b/extensions/amavis_quarantine/views.py @@ -179,7 +179,6 @@ def viewheaders(request, mail_id): content += qm.mail_text msg = email.message_from_string(content) return _render(request, 'amavis_quarantine/viewheader.html', { - "title" : _("Message headers"), "headers" : msg.items() }) diff --git a/templates/common/viewmail.html b/templates/common/viewmail.html index 19c00dd9e..357cb1ea3 100644 --- a/templates/common/viewmail.html +++ b/templates/common/viewmail.html @@ -15,6 +15,7 @@ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ word-wrap: break-word; /* Internet Explorer 5.5+ */ + font-size: medium; } #mailcontent { width: 100%; @@ -29,8 +30,8 @@ #emailheaders a:hover { text-decoration: underline; } - pre { - font-size: medium; + .hidden { + display: none; }