Added user option + menu entries to enable/disable HTML links display.
This commit is contained in:
tonio
2011-01-03 14:46:41 +01:00
parent 5b7ebd9141
commit b5693bcef0
4 changed files with 48 additions and 16 deletions
+3
View File
@@ -57,6 +57,9 @@ def init():
parameters.register_user("MESSAGES_PER_PAGE", type="int", deflt=40,
label=_("Number of displayed emails per page"),
help=_("Sets the maximum number of messages displayed in a page"))
parameters.register_user("ENABLE_LINKS", type="list_yesno", deflt="no",
label=_("Enable HTML links display"),
help=_("Enable/Disable HTML links display"))
def destroy():
events.unregister("UserMenuDisplay", menu)
+25 -14
View File
@@ -1,3 +1,4 @@
{% extends "common/email_listing.html" %}
{% load i18n %}
{% block css %}
@@ -19,6 +20,22 @@
if ($defined(resp.folders)) {
$("folders").set("html", resp.folders);
}
select($$("a[href=" + current_anchor.getbaseurl() + "]"));
$$("li[class*=clickable]").removeEvents();
$$("li[class*=clickable]").addEvent("click", function(evt) {
$$("ul[name=" + evt.target.get("name") + "]").each(function(item) {
if (item.hasClass("hidden")) {
evt.target.setStyle("background",
"url('{{ MEDIA_URL }}pics/folder-open.png') no-repeat");
item.removeClass("hidden").addClass("visible");
} else {
evt.target.setStyle("background",
"url('{{ MEDIA_URL }}pics/subfolders.png') no-repeat");
item.removeClass("visible").addClass("hidden");
}
});
evt.stop();
});
if ($defined(resp.quota) && resp.quota != "-1") {
quota_pb.set(resp.quota);
$("quotabox").setStyle("display", "block");
@@ -60,6 +77,14 @@
select($$("a[href=" + current_anchor.getbaseurl() + "]"));
}}).get();
});
$$("a[name=activate_links]").addEvent("click", function(evt) {
evt.stop();
current_anchor.setparam("links", "1").update();
});
$$("a[name=disable_links]").addEvent("click", function(evt) {
evt.stop();
current_anchor.setparam("links", "0").update();
});
setDivHeight("mailcontent", 5, 0);
});
@@ -187,20 +212,6 @@
register_callback("folder", function(resp) {
wm_updatelisting(resp);
rtimer = refreshFolder.periodical({{ refreshrate }});
select($$("a[href=" + current_anchor.getbaseurl() + "]"));
$$("li[class*=clickable]").removeEvents();
$$("li[class*=clickable]").addEvent("click", function(evt) {
$$("ul[name=" + evt.target.get("name") + "]").each(function(item) {
if (item.hasClass("hidden")) {
evt.target.setStyle("background", "url('{{ MEDIA_URL }}pics/folder-open.png') no-repeat");
item.removeClass("hidden").addClass("visible");
} else {
evt.target.setStyle("background", "url('{{ MEDIA_URL }}pics/subfolders.png') no-repeat");
item.removeClass("visible").addClass("hidden");
}
});
evt.stop();
});
searchbox_init();
if (navparams.has("order")) {
src = navparams.get("order").charAt(0) == "-" ? "down_arrow.png" : "up_arrow.png";
@@ -32,6 +32,19 @@ def viewm_menu(selection, backurl, folder, mail_id, user):
"img" : static_url("pics/remove.png"),
"url" : reverse(webmail.views.delete, args=[folder, mail_id]),
"label" : _("Delete")},
{"name" : "display_options",
"label" : _("Display options"),
"img" : static_url("pics/settings.png"),
"class" : "menubardropdown",
"menu" : [
{"name" : "activate_links",
"label" : _("Activate links"),
"url" : reverse(webmail.views.viewmail, args=[folder, mail_id]) + "?links=1"},
{"name" : "disable_links",
"label" : _("Disable links"),
"url" : reverse(webmail.views.viewmail, args=[folder, mail_id]) + "?links=0"},
]
}
]
return render_to_string('common/menu.html',
+7 -2
View File
@@ -101,9 +101,14 @@ def fetchmail(request, folder, mail_id, all=False):
def viewmail(request, folder, mail_id=None):
from templatetags.webextras import viewm_menu
if request.GET.has_key("links"):
links = int(request.GET["links"])
else:
links = parameters.get_user(request.user, "ENABLE_LINKS") == "yes" and 1 or 0
url = reverse(getmailcontent, args=[folder, mail_id]) + ("?links=%d" % links)
content = Template("""
<iframe width="100%" frameBorder="0" src="{{ url }}" id="mailcontent"></iframe>
""").render(Context({"url" : reverse(getmailcontent, args=[folder, mail_id])}))
""").render(Context({"url" : url}))
menu = viewm_menu("", __get_current_url(request), folder, mail_id,
request.user.get_all_permissions())
mbc = IMAPconnector(user=request.user.username,
@@ -119,7 +124,7 @@ def getmailcontent(request, folder, mail_id):
if "class" in msg.keys() and msg["class"] == "unseen":
IMAPconnector(user=request.user.username,
password=request.session["password"]).msg_read(folder, mail_id)
email = ImapEmail(msg, request.user, links="1")
email = ImapEmail(msg, request.user, links=request.GET["links"])
try:
pageid = request.session["page"]
except KeyError: