From 21153d9310aeb7962c4e03be83464633f38ca166 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Fri, 9 Jan 2015 12:14:44 +0100 Subject: Fixed call order dependency for tag creation. - Successful rendering of tag list in left pane depended on specific call order of async events --- web-ui/app/js/mixins/with_mail_tagging.js | 1 - web-ui/app/js/services/mail_service.js | 1 + web-ui/test/spec/mail_view/ui/mail_view.spec.js | 1 - web-ui/test/spec/services/mail_service.spec.js | 2 ++ 4 files changed, 3 insertions(+), 2 deletions(-) diff --git a/web-ui/app/js/mixins/with_mail_tagging.js b/web-ui/app/js/mixins/with_mail_tagging.js index c3647443..62ca7627 100644 --- a/web-ui/app/js/mixins/with_mail_tagging.js +++ b/web-ui/app/js/mixins/with_mail_tagging.js @@ -59,7 +59,6 @@ define( this.tagCompleter.clearPrefetchCache(); this.tagCompleter.clearRemoteCache(); this.updateTags(this.attr.mail, _.uniq(tagsCopy)); - this.trigger(document, events.dispatchers.tags.refreshTagList, { skipMailListRefresh: true }); }; this.after('displayMail', function () { diff --git a/web-ui/app/js/services/mail_service.js b/web-ui/app/js/services/mail_service.js index 1d5db40e..99f812f8 100644 --- a/web-ui/app/js/services/mail_service.js +++ b/web-ui/app/js/services/mail_service.js @@ -58,6 +58,7 @@ define( var success = function (data) { this.refreshMails(); $(document).trigger(events.mail.tags.updated, { ident: ident, tags: data.tags }); + $(document).trigger(events.dispatchers.tags.refreshTagList, { skipMailListRefresh: true }); }; var failure = function (resp) { diff --git a/web-ui/test/spec/mail_view/ui/mail_view.spec.js b/web-ui/test/spec/mail_view/ui/mail_view.spec.js index bb0c7851..b84ecfe6 100644 --- a/web-ui/test/spec/mail_view/ui/mail_view.spec.js +++ b/web-ui/test/spec/mail_view/ui/mail_view.spec.js @@ -181,7 +181,6 @@ describeComponent('mail_view/ui/mail_view', function () { var tags = testData.mail.tags.slice(); tags.push('Test'); - expect(tagListRefreshEvent).toHaveBeenTriggeredOn(document); expect(tagsUpdateEvent).toHaveBeenTriggeredOnAndWith(document, { ident: testData.mail.ident, tags: tags}); }); diff --git a/web-ui/test/spec/services/mail_service.spec.js b/web-ui/test/spec/services/mail_service.spec.js index 2de4e76b..9077969a 100644 --- a/web-ui/test/spec/services/mail_service.spec.js +++ b/web-ui/test/spec/services/mail_service.spec.js @@ -91,6 +91,7 @@ describeComponent('services/mail_service', function () { it('updates the tags of the desired message', function () { spyOn(this.component, 'refreshMails'); + var tagListRefreshEvent = spyOnEvent(document, Pixelated.events.dispatchers.tags.refreshTagList); var updateTagsReturnValue = { tags: ['website'], mailbox: 'inbox'}; var deferred = $.Deferred(); var spyAjax = spyOn($, 'ajax').and.returnValue(deferred); @@ -106,6 +107,7 @@ describeComponent('services/mail_service', function () { expect(spyAjax.calls.all()[0].args[0]).toEqual('/mail/1/tags'); expect(spyAjax.calls.all()[0].args[1].data).toEqual(JSON.stringify({ newtags: email1.tags } )); expect(this.component.refreshMails).toHaveBeenCalled(); + expect(tagListRefreshEvent).toHaveBeenTriggeredOn(document); }); it('triggers an error message when it can\'t update the tags', function () { -- cgit v1.2.3