diff --git a/modoboa/extensions/webmail/static/webmail/js/webmail.js b/modoboa/extensions/webmail/static/webmail/js/webmail.js
index 991bbd736..d996f3251 100644
--- a/modoboa/extensions/webmail/static/webmail/js/webmail.js
+++ b/modoboa/extensions/webmail/static/webmail/js/webmail.js
@@ -94,7 +94,6 @@ Webmail.prototype = {
this.resize();
- this.setup_infinite_scroll();
this.init_droppables();
this.register_navcallbacks();
this.listen();
@@ -174,6 +173,13 @@ Webmail.prototype = {
var content = $("#emails").html() + data.listing;
$("#emails").html(content);
+ },
+ end_of_list_reached: function($element) {
+ $element.append(
+ $("
").html(
+ gettext("No more message in this mailbox.")
+ )
+ );
}
});
},
@@ -911,6 +917,7 @@ Webmail.prototype = {
this.htmltable = $("#emails").data("htmltable");
this.init_draggables();
$("#listing").css("overflow", "auto");
+ this.setup_infinite_scroll();
},
add_field: function(e, name) {
diff --git a/modoboa/extensions/webmail/templates/webmail/email_list.html b/modoboa/extensions/webmail/templates/webmail/email_list.html
index e71abf2b3..cf32f3042 100644
--- a/modoboa/extensions/webmail/templates/webmail/email_list.html
+++ b/modoboa/extensions/webmail/templates/webmail/email_list.html
@@ -1,8 +1,8 @@
{% load i18n %}
{% load webmail_tags %}
-
- {% for email in emails %}
+{% if with_top_div %}
{% endif %}
+ {% for email in email_list %}

@@ -21,4 +21,4 @@
{% endfor %}
-
+{% if with_top_div %}
{% endif %}
diff --git a/modoboa/extensions/webmail/views.py b/modoboa/extensions/webmail/views.py
index c75360031..c7e366432 100644
--- a/modoboa/extensions/webmail/views.py
+++ b/modoboa/extensions/webmail/views.py
@@ -345,13 +345,18 @@ def listmailbox(request, defmailbox="INBOX", update_session=True):
elems_per_page=int(parameters.get_user(request.user, "MESSAGES_PER_PAGE")),
**request.session["webmail_navparams"]
)
- page = lst.paginator.getpage(navparams.get('page'))
+ page_id = int(navparams.get('page'))
+ page = lst.paginator.getpage(page_id)
if page is not None:
+ email_list = lst.mbc.fetch(
+ page.id_start, page.id_stop, mbox,
+ nbelems=int(parameters.get_user(request.user, "MESSAGES_PER_PAGE"))
+ )
content = _render_to_string(request, "webmail/email_list.html", {
- "emails": lst.mbc.fetch(page.id_start, page.id_stop, mbox, nbelems=40)
+ "email_list": email_list, "with_top_div": page_id == 1
})
else:
- content = "%s
" % _("Empty mailbox")
+ content = ""
return {"listing": content, "length": len(content)}
#return lst.render(request, navparams.get('page'))
diff --git a/modoboa/static/js/jquery.infinitescroll.js b/modoboa/static/js/jquery.infinitescroll.js
index 47164d5e8..841e9ae48 100644
--- a/modoboa/static/js/jquery.infinitescroll.js
+++ b/modoboa/static/js/jquery.infinitescroll.js
@@ -44,7 +44,7 @@
$this.$options.process_results(data);
if (data.length === 0) {
$this.end_of_results = true;
- /*$this.$element.find('#end-of-results').removeClass('hide');*/
+ $this.$options.end_of_list_reached($this.$element);
}
//$this.$element.find('.spinner').addClass('hide');
$this.executing = false;
diff --git a/modoboa/static/js/notify.js b/modoboa/static/js/notify.js
index 2b60070c9..8694671ab 100644
--- a/modoboa/static/js/notify.js
+++ b/modoboa/static/js/notify.js
@@ -11,7 +11,7 @@
if (bid === undefined) {
bid = "notifybox";
}
- var div = $("", {
+ var div = $("", {
id: bid,
click: $.proxy(this.destroy_box, this)
}).css({