diff --git a/extensions/amavis_quarantine/templates/index.html b/extensions/amavis_quarantine/templates/index.html index ed01a00c6..a3b394776 100644 --- a/extensions/amavis_quarantine/templates/index.html +++ b/extensions/amavis_quarantine/templates/index.html @@ -2,28 +2,6 @@ {% load i18n %} {% load amextras %} {% block css %} -#searchbox { - /*float: left;*/ /* Marche pas ici?! obligé de le faire en JS sous FF */ - margin-right: 10px; - z-index: 2; - position: relative; -} - -#searchbox img { - float: left; - margin-top: 4px; - margin-right: 5px; -} - -#searchparams { - background: white; - padding: 5px; - width: 90%; - border-bottom: 5px solid #CCCCCC; - border-left: 5px solid #CCCCCC; - border-right: 5px solid #CCCCCC; -} - thead tr { position: relative; z-index: 1; @@ -103,38 +81,7 @@ tr.table-tr-selected { } mysubmit(event, "delete"); }); - - var myFx = new Fx.Slide($("searchparams")); - myFx.hide(); - $("searchopts").addEvent("click", function(event) { - myFx.cancel(); - myFx.toggle(); - }); - $$("input[name=scriteria]").addEvent("click", function(event) { - myFx.cancel(); - myFx.toggle(); - }); - $("searchfield").addEvent("change", function(event) { - var criteria = ""; - $$("input[name=scriteria]:checked").each(function(obj) { - criteria = obj.value; - }); - var url = "listing" - + "?pattern=" + $("searchfield").value - + "&criteria=" + criteria; - current_anchor.parse_string(url, true).setparams(navparams); - current_anchor.update(); - }); - $("searchfield").addEvent("click", function(event) { - $("searchfield").select(); - }); - - $("searchfield").addEvent("blur", function(event) { - if ($("searchfield").value == "") { - $("searchfield").set("value", "{% trans "Search..." %}"); - } - }); - $("searchbox").setStyle("float", "left"); + searchbox_init(); $$("tr").addEvent("dblclick", viewmail); }); diff --git a/extensions/webmail/imap_listing.py b/extensions/webmail/imap_listing.py index 311c8b47a..9deba6b0e 100644 --- a/extensions/webmail/imap_listing.py +++ b/extensions/webmail/imap_listing.py @@ -100,9 +100,13 @@ class IMAPheader(object): return value ndate = datetime(*(tmp)[:7]) now = datetime.now() - if now - ndate > timedelta(7): - return ndate.strftime("%d.%m.%Y %H:%M") - return ndate.strftime("%a %H:%M") + try: + if now - ndate > timedelta(7): + return ndate.strftime("%d.%m.%Y %H:%M") + return ndate.strftime("%a %H:%M") + except ValueError: + return value + @staticmethod def parse_subject(value, **kwargs): diff --git a/extensions/webmail/templates/index.html b/extensions/webmail/templates/index.html index 3818c77c7..967d8bced 100644 --- a/extensions/webmail/templates/index.html +++ b/extensions/webmail/templates/index.html @@ -221,6 +221,7 @@ tr.selected { } register_callback("folder", function(resp) { wm_updatelisting(resp); + searchbox_init(); if (navparams.has("order")) { src = navparams.get("order").charAt(0) == "-" ? "down_arrow.png" : "up_arrow.png"; th = $$("th[id=" + navparams.get("order").substring(1) + "]"); diff --git a/extensions/webmail/templatetags/webextras.py b/extensions/webmail/templatetags/webextras.py index f15d3488b..395109983 100644 --- a/extensions/webmail/templatetags/webextras.py +++ b/extensions/webmail/templatetags/webextras.py @@ -94,7 +94,8 @@ def listing_menu(selection, folder, perms): "img" : "/static/pics/clear.png", "label" : _("Empty trash")} ] - - return render_to_string("main/menu.html", + menu = render_to_string("main/menu.html", {"selection" : selection, "entries" : entries, "perms" : perms}) + searchbar = render_to_string("common/email_searchbar.html", {}) + return menu + searchbar diff --git a/lib/email_listing.py b/lib/email_listing.py index 0d8b337a0..37948cf24 100644 --- a/lib/email_listing.py +++ b/lib/email_listing.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import time import re +import os from email.header import decode_header import lxml import lxml.html @@ -159,7 +160,7 @@ class Email(object): if re.match("^http:", fname): path = fname else: - path = "/%s" % os.path.join("static/tmp", fname) + path = os.path.abspath("static/tmp" + fname) fp = open(path, "wb") fp.write(part.get_payload(decode=True)) fp.close() diff --git a/static/js/common.js b/static/js/common.js index bbfde31a8..e117c264b 100644 --- a/static/js/common.js +++ b/static/js/common.js @@ -273,4 +273,37 @@ checkTableSelection = function(text) { return false; } return confirm(text); +} + +searchbox_init = function() { + var myFx = new Fx.Slide($("searchparams")); + myFx.hide(); + $("searchopts").addEvent("click", function(event) { + myFx.cancel(); + myFx.toggle(); + }); + $$("input[name=scriteria]").addEvent("click", function(event) { + myFx.cancel(); + myFx.toggle(); + }); + $("searchfield").addEvent("change", function(event) { + var criteria = ""; + $$("input[name=scriteria]:checked").each(function(obj) { + criteria = obj.value; + }); + var params = "pattern=" + $("searchfield").value + + "&criteria=" + criteria; + current_anchor.updateparams(params); + current_anchor.update(); + }); + $("searchfield").addEvent("click", function(event) { + $("searchfield").select(); + }); + + $("searchfield").addEvent("blur", function(event) { + if ($("searchfield").value == "") { + $("searchfield").set("value", "Search..."); + } + }); + $("searchbox").setStyle("float", "right"); } \ No newline at end of file diff --git a/static/stylesheets/searchbar.css b/static/stylesheets/searchbar.css new file mode 100644 index 000000000..c3e3dc2cb --- /dev/null +++ b/static/stylesheets/searchbar.css @@ -0,0 +1,22 @@ +#searchbox { + /*float: left;*/ /* Marche pas ici?! obligé de le faire en JS sous FF */ + margin-right: 10px; + z-index: 2; + position: relative; + margin-left: 10px; +} + +#searchbox img { + float: left; + margin-top: 4px; + margin-right: 5px; +} + +#searchparams { + background: white; + padding: 5px; + width: 90%; + border-bottom: 5px solid #CCCCCC; + border-left: 5px solid #CCCCCC; + border-right: 5px solid #CCCCCC; +} \ No newline at end of file diff --git a/templates/common/email_listing.html b/templates/common/email_listing.html index 10f1abd1e..bda4df9e8 100644 --- a/templates/common/email_listing.html +++ b/templates/common/email_listing.html @@ -1,6 +1,7 @@ {% extends "nlayout.html" %} {% load i18n %} {% block html_head %} + +