From b4ea9342fe4444befcae8d7ab06da7477b0ac2b7 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Mon, 9 Apr 2012 12:05:59 +0200 Subject: [PATCH] Raw headers are now displayed into a
 tag, we no longer
 use a modal box.

fixes #229
---
 .../amavis_quarantine/static/js/quarantine.js | 35 ++++++++++++++++++-
 .../amavis_quarantine/viewheader.html         | 13 ++-----
 .../templatetags/amextras.py                  |  4 +--
 extensions/amavis_quarantine/views.py         |  1 -
 templates/common/viewmail.html                |  5 +--
 5 files changed, 41 insertions(+), 17 deletions(-)

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; }