fix: ticket #53 : automatic folder refresh

This commit is contained in:
tonio
2010-07-15 14:02:28 +02:00
parent 0398a614b0
commit 0bba9f68b6
4 changed files with 34 additions and 10 deletions
+2
View File
@@ -352,6 +352,8 @@ class ImapListing(EmailListing):
if kwargs.has_key("reset"):
self.mbc.criterions = []
EmailListing.__init__(self, **kwargs)
self.extravars["refreshrate"] = \
int(parameters.get_user(user, "webmail", "REFRESH_INTERVAL")) * 1000
def __parse_folders(self, folders):
result = []
+2
View File
@@ -32,6 +32,8 @@ def init():
deflt="no",
help=_("Use a secured connection to access SMTP server"))
parameters.register_user("webmail", "REFRESH_INTERVAL", type="int", deflt=300,
help=_("Automatic folder refresh rate (in seconds)"))
parameters.register_user("webmail", "TRASH_FOLDER", type="string", deflt="Trash",
help=_("Folder where deleted messages go"))
parameters.register_user("webmail", "SENT_FOLDER", type="string", deflt="Sent",
+16
View File
@@ -105,18 +105,34 @@
location.hash += event.target.get("href");
}
register_callback("forward", compose_callback);
var rtimer = null;
refreshFolder = function() {
var query = current_anchor.serialized.substring(1);
$clear(rtimer);
infobox.show('{% trans "Refreshing..." %}', "gray");
new Request.JSON({url: query, noCache : true, onSuccess: function(resp) {
callback = ($defined(resp.callback)) ? resp.callback : "default";
callbacks[callback](resp);
infobox.notice('{% trans "Done" %}');
infobox.hide(1);
}}).get();
}
loadFolder = function(event, obj) {
event.stop();
if (!$defined(obj)) {
obj = $(event.target);
}
console.log($defined(rtimer));
$clear(rtimer);
current_anchor.parse_string(gethref(obj), true).setparams(navparams);
current_anchor.update();
}
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) {