summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Pretto Nunes <anunes@thoughtworks.com>2015-01-12 16:49:07 -0200
committerAlexandre Pretto Nunes <anunes@thoughtworks.com>2015-01-12 20:08:15 -0200
commitcd741c3cb6a9c64ad30257240565be884e9084ae (patch)
tree7c8a2ef6b4696af192ac0d4f4a3472de68170c92
parenteedb11f19463b10699fef0061bba12a8300f9187 (diff)
#153 Move duplicated funcion render to just mail_item.js
-rw-r--r--web-ui/app/js/mail_list/ui/mail_item_factory.js8
-rw-r--r--web-ui/app/js/mail_list/ui/mail_items/draft_item.js11
-rw-r--r--web-ui/app/js/mail_list/ui/mail_items/generic_mail_item.js13
-rw-r--r--web-ui/app/js/mail_list/ui/mail_items/mail_item.js18
-rw-r--r--web-ui/app/js/mail_list/ui/mail_items/sent_item.js13
-rw-r--r--web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js3
-rw-r--r--web-ui/test/spec/mail_list/ui/mail_list.spec.js1
7 files changed, 31 insertions, 36 deletions
diff --git a/web-ui/app/js/mail_list/ui/mail_item_factory.js b/web-ui/app/js/mail_list/ui/mail_item_factory.js
index e922a642..8eedcde3 100644
--- a/web-ui/app/js/mail_list/ui/mail_item_factory.js
+++ b/web-ui/app/js/mail_list/ui/mail_item_factory.js
@@ -30,6 +30,11 @@ define(
'sent': SentItem
};
+ var TEMPLATE_TYPE = {
+ 'drafts': 'sent',
+ 'sent': 'sent'
+ };
+
var createAndAttach = function (nodeToAttachTo, mail, currentMailIdent, currentTag, isChecked) {
var mailItemContainer = $('<li>', { id: 'mail-' + mail.ident});
nodeToAttachTo.append(mailItemContainer);
@@ -44,7 +49,8 @@ define(
mail: mail,
selected: mail.ident === currentMailIdent,
tag: currentTag,
- isChecked: isChecked
+ isChecked: isChecked,
+ templateType: TEMPLATE_TYPE[currentTag] || 'single'
});
};
diff --git a/web-ui/app/js/mail_list/ui/mail_items/draft_item.js b/web-ui/app/js/mail_list/ui/mail_items/draft_item.js
index 0037df02..f09add73 100644
--- a/web-ui/app/js/mail_list/ui/mail_items/draft_item.js
+++ b/web-ui/app/js/mail_list/ui/mail_items/draft_item.js
@@ -19,13 +19,12 @@
define(
[
'flight/lib/component',
- 'views/templates',
'helpers/view_helper',
'mail_list/ui/mail_items/mail_item',
'page/events'
],
- function (defineComponent, templates, viewHelpers, mailItem, events) {
+ function (defineComponent, viewHelpers, mailItem, events) {
'use strict';
return defineComponent(draftItem, mailItem);
@@ -45,14 +44,6 @@ define(
ev.preventDefault(); // don't let the hashchange trigger a popstate
};
- this.render = function () {
- var mailItemHtml = templates.mails.sent(this.attr);
- this.$node.html(mailItemHtml);
- this.$node.addClass(this.attr.statuses);
- if(this.attr.selected) { this.doSelect(); }
- this.on(this.$node.find('a'), 'click', this.triggerOpenMail);
- };
-
this.after('initialize', function () {
this.initializeAttributes();
this.render();
diff --git a/web-ui/app/js/mail_list/ui/mail_items/generic_mail_item.js b/web-ui/app/js/mail_list/ui/mail_items/generic_mail_item.js
index eb4d2ca5..1117d44d 100644
--- a/web-ui/app/js/mail_list/ui/mail_items/generic_mail_item.js
+++ b/web-ui/app/js/mail_list/ui/mail_items/generic_mail_item.js
@@ -19,13 +19,12 @@
define(
[
'flight/lib/component',
- 'views/templates',
'helpers/view_helper',
'mail_list/ui/mail_items/mail_item',
'page/events'
],
- function (defineComponent, templates, viewHelpers, mailItem, events) {
+ function (defineComponent, viewHelpers, mailItem, events) {
'use strict';
return defineComponent(genericMailItem, mailItem);
@@ -84,17 +83,9 @@ define(
}
};
- this.render = function () {
- this.attr.tagsForListView = _.without(this.attr.tags, this.attr.tag);
- var mailItemHtml = templates.mails.single(this.attr);
- this.$node.html(mailItemHtml);
- this.$node.addClass(this.attr.statuses);
- if(this.attr.selected) { this.doSelect(); }
- this.on(this.$node.find('a'), 'click', this.triggerOpenMail);
- };
-
this.after('initialize', function () {
this.initializeAttributes();
+ this.attr.tagsForListView = _.without(this.attr.tags, this.attr.tag);
this.render();
this.attachListeners();
diff --git a/web-ui/app/js/mail_list/ui/mail_items/mail_item.js b/web-ui/app/js/mail_list/ui/mail_items/mail_item.js
index ed1fd07f..6d37a227 100644
--- a/web-ui/app/js/mail_list/ui/mail_items/mail_item.js
+++ b/web-ui/app/js/mail_list/ui/mail_items/mail_item.js
@@ -17,8 +17,12 @@
'use strict';
define(
- ['helpers/view_helper',
- 'page/events'], function (viewHelper, events) {
+ [
+ 'helpers/view_helper',
+ 'views/templates',
+ 'page/events'
+ ],
+ function (viewHelper, templates, events) {
function mailItem() {
this.updateSelected = function (ev, data) {
@@ -58,6 +62,16 @@ define(
this.triggerMailChecked({'target': {'checked': false}});
};
+ this.render = function () {
+ this.attr.tagsForListView = _.without(this.attr.tags, this.attr.tag);
+ debugger;
+ var mailItemHtml = templates.mails[this.attr.templateType](this.attr);
+ this.$node.html(mailItemHtml);
+ this.$node.addClass(this.attr.statuses);
+ if(this.attr.selected) { this.doSelect(); }
+ this.on(this.$node.find('a'), 'click', this.triggerOpenMail);
+ };
+
this.initializeAttributes = function () {
var mail = this.attr.mail;
this.attr.ident = mail.ident;
diff --git a/web-ui/app/js/mail_list/ui/mail_items/sent_item.js b/web-ui/app/js/mail_list/ui/mail_items/sent_item.js
index 3682188b..7406b3f3 100644
--- a/web-ui/app/js/mail_list/ui/mail_items/sent_item.js
+++ b/web-ui/app/js/mail_list/ui/mail_items/sent_item.js
@@ -19,12 +19,11 @@
define(
[
'flight/lib/component',
- 'views/templates',
'mail_list/ui/mail_items/mail_item',
'page/events'
],
- function (defineComponent, templates, mailItem, events) {
+ function (defineComponent, mailItem, events) {
'use strict';
return defineComponent(sentItem, mailItem);
@@ -50,17 +49,9 @@ define(
this.trigger(document, events.ui.mail.updateSelected, { ident: this.attr.ident });
};
- this.render = function () {
- this.attr.tagsForListView = _.without(this.attr.tags, this.attr.tag);
- var mailItemHtml = templates.mails.sent(this.attr);
- this.$node.html(mailItemHtml);
- this.$node.addClass(this.attr.statuses);
- if(this.attr.selected) { this.doSelect(); }
- this.on(this.$node.find('a'), 'click', this.triggerOpenMail);
- };
-
this.after('initialize', function () {
this.initializeAttributes();
+ this.attr.tagsForListView = _.without(this.attr.tags, this.attr.tag);
this.render();
this.attachListeners();
diff --git a/web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js b/web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js
index 3541506c..88735302 100644
--- a/web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js
+++ b/web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js
@@ -11,7 +11,8 @@ describeComponent('mail_list/ui/mail_items/generic_mail_item', function () {
this.setupComponent('<li></li>', {
mail: mail,
selected: false,
- tag: 'inbox'
+ tag: 'inbox',
+ templateType: 'single'
});
});
diff --git a/web-ui/test/spec/mail_list/ui/mail_list.spec.js b/web-ui/test/spec/mail_list/ui/mail_list.spec.js
index 095a2a61..1551643d 100644
--- a/web-ui/test/spec/mail_list/ui/mail_list.spec.js
+++ b/web-ui/test/spec/mail_list/ui/mail_list.spec.js
@@ -136,6 +136,7 @@ describeComponent('mail_list/ui/mail_list', function () {
it('should open draft in popstate event if tag is Drafts', function () {
var openDraftEvent = spyOnEvent(document, Pixelated.events.dispatchers.rightPane.openDraft);
+ debugger;
this.component.$node.trigger(Pixelated.events.mails.available, { mails: mailList, mailIdent: '30', tag: 'drafts' });
expect(openDraftEvent).toHaveBeenTriggeredOnAndWith(document, { ident: '30'});