mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
Ticket #51 + some minor improvments.
This commit is contained in:
@@ -269,7 +269,7 @@ class IMAPconnector(object):
|
||||
imapid = response_part[0].split()[0]
|
||||
flags = imaplib.ParseFlags(response_part[0])
|
||||
msg = email.message_from_string(response_part[1])
|
||||
msg["imapid"] = "%s/%s" % (folder, imapid)
|
||||
msg["imapid"] = imapid
|
||||
if not "\\Seen" in flags:
|
||||
msg["class"] = "unseen"
|
||||
if "\\Answered" in flags:
|
||||
|
||||
@@ -132,16 +132,17 @@ def viewmail(request, folder, mail_id=None):
|
||||
def getmailcontent(request, folder, mail_id):
|
||||
msg = fetchmail(request, folder, mail_id, True)
|
||||
if "class" in msg.keys() and msg["class"] == "unseen":
|
||||
IMAPconnector(request).msg_read(*msg["imapid"].split("/"))
|
||||
#IMAPconnector(request).msg_read(*msg["imapid"].split("/"))
|
||||
IMAPconnector(request).msg_read(folder, mail_id)
|
||||
email = ImapEmail(msg, mode="html", links="1")
|
||||
try:
|
||||
pageid = request.session["page"]
|
||||
except KeyError:
|
||||
pageid = "1"
|
||||
folder, imapid = msg["imapid"].split("/")
|
||||
#folder, imapid = msg["imapid"].split("/")
|
||||
return _render(request, "common/viewmail.html", {
|
||||
"headers" : email.render_headers(folder, mail_id),
|
||||
"folder" : folder, "imapid" : imapid, "mailbody" : email.body,
|
||||
"folder" : folder, "imapid" : mail_id, "mailbody" : email.body,
|
||||
"pre" : email.pre
|
||||
})
|
||||
|
||||
@@ -170,14 +171,9 @@ def move(request):
|
||||
for arg in ["msgset", "to"]:
|
||||
if not request.GET.has_key(arg):
|
||||
return
|
||||
msgset = []
|
||||
fdname = ""
|
||||
for item in request.GET["msgset"].split(","):
|
||||
fdname, id = item.split("/")
|
||||
msgset += [id]
|
||||
mbc = IMAPconnector(request)
|
||||
mbc.move(",".join(msgset), fdname, request.GET["to"])
|
||||
return folder(request, fdname, False)
|
||||
mbc.move(request.GET["msgset"], request.session["folder"], request.GET["to"])
|
||||
return folder(request, request.session["folder"], False)
|
||||
|
||||
@login_required
|
||||
def delete(request, fdname, mail_id):
|
||||
@@ -190,12 +186,8 @@ def mark(request, name):
|
||||
if not request.GET.has_key("status") or not request.GET.has_key("ids"):
|
||||
return
|
||||
mbc = IMAPconnector(request)
|
||||
ids = request.GET["ids"].split(',')
|
||||
msgset = []
|
||||
for id in ids:
|
||||
msgset.append(id.split("/")[1])
|
||||
try:
|
||||
getattr(mbc, "msg_%s" % request.GET["status"])(name, ",".join(msgset))
|
||||
getattr(mbc, "msg_%s" % request.GET["status"])(name, request.GET["ids"])
|
||||
except AttributeError:
|
||||
pass
|
||||
return folder(request, name, False)
|
||||
|
||||
@@ -250,7 +250,7 @@ ul.visible {
|
||||
th.addClass("selected");
|
||||
}
|
||||
var selectedRows = new Array();
|
||||
$$("tr").addEvent("click", function(event) {
|
||||
$$("tbody>tr").addEvent("click", function(event) {
|
||||
var tr = event.target.getParent();
|
||||
if (!tr.hasClass("selected")) {
|
||||
tr.addClass("selected");
|
||||
@@ -270,9 +270,8 @@ ul.visible {
|
||||
selectedRows.each(function(item, index) {
|
||||
ids.include(item.get("id"));
|
||||
});
|
||||
current_anchor.parse_string(evt.target.get("href"), true);
|
||||
current_anchor.updateparams("ids=" + ids.join());
|
||||
current_anchor.update();
|
||||
new Request.JSON({url : evt.target.get("href"),
|
||||
onSuccess : get_callback("folder")}).get({ids : ids.join()});
|
||||
}
|
||||
$$("a[name=mark-read]").addEvent("click", buildmarkrequest);
|
||||
$$("a[name=mark-unread]").addEvent("click", buildmarkrequest);
|
||||
@@ -282,7 +281,7 @@ ul.visible {
|
||||
current_anchor.parse_string(evt.target.get("href"), true).update();
|
||||
});
|
||||
|
||||
$$("tr").each(function(item) {
|
||||
$$("tbody>tr").each(function(item) {
|
||||
new Drag.Move(item, {
|
||||
droppables: ".droppable",
|
||||
}).addEvents({
|
||||
@@ -310,13 +309,6 @@ ul.visible {
|
||||
this.oldelement = this.element;
|
||||
this.element = block;
|
||||
},
|
||||
"cancel" : function(item) {
|
||||
if ($defined(this.oldelement)) {
|
||||
item.dispose();
|
||||
delete(item);
|
||||
this.element = this.oldelement;
|
||||
}
|
||||
},
|
||||
"enter" : function(item, droppable) {
|
||||
droppable.addClass("dragging");
|
||||
},
|
||||
@@ -352,13 +344,13 @@ ul.visible {
|
||||
selectedRows.include(item);
|
||||
});
|
||||
} else {
|
||||
$$("tr").each(function(item) { item.removeClass("selected"); });
|
||||
$$("tbody>tr").each(function(item) { item.removeClass("selected"); });
|
||||
selectedRows.empty();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$$("tr").addEvent("dblclick", viewmail);
|
||||
$$("tbody>tr").addEvent("dblclick", viewmail);
|
||||
$$("th[class*=sortable]").addEvent("click", function(evt) {
|
||||
var tmp = "?";
|
||||
var order = (navparams.has("order")) ? navparams.get("order") : "";
|
||||
|
||||
+7
-1
@@ -31,7 +31,8 @@ check_anchor = function() {
|
||||
delete(current_anchor.force);
|
||||
current_anchor.from_string(location.hash);
|
||||
if (!current_anchor.serialized) {
|
||||
query = current_anchor.deflocation;
|
||||
location.hash = current_anchor.deflocation;
|
||||
return;
|
||||
} else {
|
||||
query = current_anchor.serialized.substring(1);
|
||||
}
|
||||
@@ -155,6 +156,11 @@ function HashWrapper(deflocation) {
|
||||
return this;
|
||||
};
|
||||
|
||||
this.addbaseurl = function(value) {
|
||||
newbase = this.base + value;
|
||||
return this.baseurl(newbase);
|
||||
};
|
||||
|
||||
this.getbaseurl = function() {
|
||||
return this.base.substr(0, this.base.length - 1);
|
||||
};
|
||||
|
||||
@@ -43,7 +43,7 @@ window.addEvent("domready", function() {
|
||||
if (event.target.parentNode.id) {
|
||||
var url = event.target.parentNode.id + "/";
|
||||
event.target.parentNode.setStyle("background", "#ffffcc");
|
||||
current_anchor.baseurl(url).update();
|
||||
current_anchor.addbaseurl(url).update();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user