From 19f89c970b214d2b131cbc4124b1630b0f330efa Mon Sep 17 00:00:00 2001 From: Bruno Wagner Date: Thu, 16 Oct 2014 17:47:03 +0200 Subject: Fixed the pagination on the front-end and added real total mail count ot the search result --- web-ui/app/js/services/mail_service.js | 29 ++++++++++++++------------ web-ui/test/spec/services/mail_service.spec.js | 4 ++-- 2 files changed, 18 insertions(+), 15 deletions(-) (limited to 'web-ui') diff --git a/web-ui/app/js/services/mail_service.js b/web-ui/app/js/services/mail_service.js index af957a7b..4337da0e 100644 --- a/web-ui/app/js/services/mail_service.js +++ b/web-ui/app/js/services/mail_service.js @@ -230,7 +230,7 @@ define( }; this.nextPage = function () { - if (this.attr.currentPage < (this.attr.numPages - 1)) { + if (this.attr.currentPage < (this.attr.numPages)) { this.updateCurrentPageNumber(this.attr.currentPage + 1); this.refreshResults(); } @@ -263,18 +263,21 @@ define( this.after('initialize', function () { that = this; - this.on(events.mail.tags.update, this.updateTags); - this.on(events.mail.draftReply.want, this.wantDraftReplyForMail); - this.on(events.mail.want, this.fetchSingle); - this.on(events.mail.read, this.readMail); - this.on(events.mail.unread, this.unreadMail); - this.on(events.mail.delete, this.deleteMail); - this.on(events.mail.deleteMany, this.deleteManyMails); - this.on(events.search.perform, this.newSearch); - this.on(events.ui.mails.fetchByTag, this.fetchByTag); - this.on(events.ui.mails.refresh, this.refreshResults); - this.on(events.ui.page.previous, this.previousPage); - this.on(events.ui.page.next, this.nextPage); + if (features.isEnabled('tags')) { + this.on(events.mail.tags.update, this.updateTags); + } + + this.on(document, events.mail.draftReply.want, this.wantDraftReplyForMail); + this.on(document, events.mail.want, this.fetchSingle); + this.on(document, events.mail.read, this.readMail); + this.on(document, events.mail.unread, this.unreadMail); + this.on(document, events.mail.delete, this.deleteMail); + this.on(document, events.mail.deleteMany, this.deleteManyMails); + this.on(document, events.search.perform, this.newSearch); + this.on(document, events.ui.mails.fetchByTag, this.fetchByTag); + this.on(document, events.ui.mails.refresh, this.refreshResults); + this.on(document, events.ui.page.previous, this.previousPage); + this.on(document, events.ui.page.next, this.nextPage); }); } } diff --git a/web-ui/test/spec/services/mail_service.spec.js b/web-ui/test/spec/services/mail_service.spec.js index 3ce223cc..897d3d5f 100644 --- a/web-ui/test/spec/services/mail_service.spec.js +++ b/web-ui/test/spec/services/mail_service.spec.js @@ -238,8 +238,8 @@ describeComponent('services/mail_service', function () { expect(this.component.attr.currentPage).toEqual(2); }); - it('won\'t change the page if it was already at the first page and trying to go to previous', function() { - this.component.attr.numPages = 10; + it('won\'t change the page if it is at the last mail when ui:page:next is fired', function() { + this.component.attr.numPages = 9; this.component.attr.currentPage = 9; this.component.trigger(Pixelated.events.ui.page.next); -- cgit v1.2.3