summaryrefslogtreecommitdiff
path: root/web-ui/app/js/mail_view/data
diff options
context:
space:
mode:
authorNavaL <mnandri@thoughtworks.com>2015-12-22 18:58:57 +0100
committerNavaL <mnandri@thoughtworks.com>2015-12-22 19:05:10 +0100
commitec3a7f46f16c32bbaf22a14a92a890e1ab900e94 (patch)
tree4e900828ccbc1d7be63b73d5e6253acc40e901aa /web-ui/app/js/mail_view/data
parent4cb47c1848bb5d20b5ae167a7ab2879d00825f84 (diff)
front-end for sending attachments
Issue #548
Diffstat (limited to 'web-ui/app/js/mail_view/data')
-rw-r--r--web-ui/app/js/mail_view/data/attachment_list.js40
-rw-r--r--web-ui/app/js/mail_view/data/mail_builder.js130
2 files changed, 109 insertions, 61 deletions
diff --git a/web-ui/app/js/mail_view/data/attachment_list.js b/web-ui/app/js/mail_view/data/attachment_list.js
new file mode 100644
index 00000000..af48b059
--- /dev/null
+++ b/web-ui/app/js/mail_view/data/attachment_list.js
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2015 ThoughtWorks, Inc.
+ *
+ * Pixelated is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Pixelated is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+define(
+ [
+ 'page/events'
+ ],
+
+ function (events) {
+ 'use strict';
+
+ function attachmentList() {
+ this.defaultAttrs({
+ attachments: []
+ });
+
+ this.addAttachment = function (event, data) {
+ this.attr.attachments.push(data);
+ };
+
+ this.after('initialize', function () {
+ this.on(document, events.mail.uploadedAttachment, this.addAttachment);
+ });
+ }
+ return attachmentList;
+ }); \ No newline at end of file
diff --git a/web-ui/app/js/mail_view/data/mail_builder.js b/web-ui/app/js/mail_view/data/mail_builder.js
index 74e38057..7a478dd8 100644
--- a/web-ui/app/js/mail_view/data/mail_builder.js
+++ b/web-ui/app/js/mail_view/data/mail_builder.js
@@ -16,79 +16,87 @@
*/
define(['services/model/mail'], function (mailModel) {
- 'use strict';
+ 'use strict';
- var mail;
+ var mail;
- function recipients(mail, place, v) {
- if (v !== '' && !_.isUndefined(v)) {
- if(_.isArray(v)) {
- mail[place] = v;
- } else {
- mail[place] = v.split(' ');
- }
- } else {
- mail[place] = [];
+ function recipients(mail, place, v) {
+ if (v !== '' && !_.isUndefined(v)) {
+ if (_.isArray(v)) {
+ mail[place] = v;
+ } else {
+ mail[place] = v.split(' ');
+ }
+ } else {
+ mail[place] = [];
+ }
}
- }
- return {
- newMail: function(ident) {
- ident = _.isUndefined(ident) ? '' : ident;
+ return {
+ newMail: function (ident) {
+ ident = _.isUndefined(ident) ? '' : ident;
- mail = {
- header: {
- to: [],
- cc: [],
- bcc: [],
- from: undefined,
- subject: ''
+ mail = {
+ header: {
+ to: [],
+ cc: [],
+ bcc: [],
+ from: undefined,
+ subject: ''
+ },
+ tags: [],
+ body: '',
+ attachments: [],
+ ident: ident
+ };
+ return this;
},
- tags: [],
- body: '',
- ident: ident
- };
- return this;
- },
- subject: function (subject) {
- mail.header.subject = subject;
- return this;
- },
+ subject: function (subject) {
+ mail.header.subject = subject;
+ return this;
+ },
- body: function(body) {
- mail.body = body;
- return this;
- },
+ body: function (body) {
+ mail.body = body;
+ return this;
+ },
- to: function (to) {
- recipients(mail.header, 'to', to);
- return this;
- },
+ to: function (to) {
+ recipients(mail.header, 'to', to);
+ return this;
+ },
+
+ cc: function (cc) {
+ recipients(mail.header, 'cc', cc);
+ return this;
+ },
- cc: function (cc) {
- recipients(mail.header, 'cc', cc);
- return this;
- },
+ bcc: function (bcc) {
+ recipients(mail.header, 'bcc', bcc);
+ return this;
+ },
- bcc: function (bcc) {
- recipients(mail.header, 'bcc', bcc);
- return this;
- },
+ header: function (name, value) {
+ mail.header[name] = value;
+ return this;
+ },
- header: function(name, value) {
- mail.header[name] = value;
- return this;
- },
+ tag: function (tag) {
+ if (_.isUndefined(tag)) {
+ tag = 'drafts';
+ }
+ mail.tags.push(tag);
+ return this;
+ },
- tag: function(tag) {
- if(_.isUndefined(tag)) { tag = 'drafts'; }
- mail.tags.push(tag);
- return this;
- },
+ attachment: function (attachmentList) {
+ mail.attachments = attachmentList;
+ return this;
+ },
- build: function() {
- return mailModel.create(mail);
- }
- };
+ build: function () {
+ return mailModel.create(mail);
+ }
+ };
});