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 %}
{% 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 = $("