3 aria-label="New Message"
5 'max-width': {true: '620px', false: '90%'}[ vm.secret ],
6 'width': {true: '620px', false: '100%'}[ vm.secret ],
7 'max-height': {true: undefined, false: '97%'}[ vm.secret ]
10 <form class="md-inline-form" name="composeForm" novalidate>
11 <md-toolbar ng-class="md-background-bg">
13 class="md-toolbar-tools"
15 layout-align="space-between center"
20 class="md-button md-raised blue-bg no-padding"
23 class="white-fg margin-horizontal-10"
24 aria-label="Send message"
25 ng-disabled="!vm.verifySmtp"
26 ng-click="vm.send($event, false, null)"
28 <span>{{ 'MAIL.SEND' | translate | uppercase }}</span>
30 <span class="white-fg secondary-text vertical-divider"></span>
33 ng-disabled="!vm.verifySmtp"
34 class="white-fg margin-left-0"
37 translate-attr-aria-label="STAFF.MORE"
38 ng-click="$mdMenu.open($event)"
41 md-font-icon="icon-menu-down"
46 <md-menu-content width="2">
47 <md-menu-item ng-if="vm.subStatuses.rows.length">
50 ng-click="$mdMenu.open()"
51 class="text-capitalize"
52 translate="MAIL.SEND_AS"
58 ng-repeat="subStatus in vm.subStatuses.rows"
61 ng-click="vm.send($event, false, subStatus.name)"
71 ng-click="vm.send($event, true, null)"
72 translate="MAIL.SEND_AND_CLOSE"
82 class="md-button md-raised blue-bg white-fg margin-horizontal-10"
83 aria-label="Save draft"
84 ng-click="vm.saveDraft()"
87 >{{ (vm.isDraft ? 'DASHBOARDS.UPDATE_DRAFT' :
88 'DASHBOARDS.SAVE_AS_DRAFT') | translate | uppercase }}</span
93 ng-click="vm.addNote()"
94 class="md-raised md-blue-bg white-fg"
95 aria-label="Send message"
97 <span translate="MAIL.ADD_NOTE">Add note</span>
100 ng-disabled="!vm.verifySmtp"
101 class="md-fab md-mini md-white-bg"
102 aria-label="attachment"
103 translate-attr-aria-label="DASHBOARDS.ATTACHMENT"
105 flow-name="vm.ngFlow.flow"
106 flow-files-submitted="vm.upload($files)"
107 flow-init="vm.ngFlowOptions"
108 flow-file-success="vm.fileSuccess($file, $message)"
109 flow-file-added="vm.fileAdded($file)"
111 <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>
114 <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>
116 class="md-icon-button"
117 ng-click="vm.closeDialog()"
118 aria-label="Close dialog"
120 translate-aria-label="MAIL.CLOSE_DIALOG"
122 <md-icon md-font-icon="icon-close"></md-icon>
127 <md-dialog-content ms-scroll>
128 <div class="error-list">
130 ng-repeat="error in vm.errors"
133 layout-align="space-between center"
136 <span class="message">{{error.message}}</span>
137 <span class="type">({{error.type}})</span>
139 <md-button class="md-icon-button">
141 md-font-icon="icon-alert-box"
142 aria-label="alert error"
151 ng-class="{'hidden-cc': vm.hiddenCC, 'hidden-bcc': vm.hiddenBCC}"
153 <label translate="MAIL.TO">To</label>
156 ng-model="vm.message.to"
157 md-transform-chip="vm.transformContact($chip, vm.message.to)"
158 md-separator-keys="vm.separatorKeys"
159 md-require-match="false"
163 md-search-text="vm.searchTo"
164 md-items="contact in vm.contactSearch(vm.searchTo)"
165 md-item-text="contact.email"
169 <span>{{ vm.getContact(contact) }}</span>
173 <div ng-messages="composeForm.to.$error" role="alert">
174 <div ng-message="required">
175 <span translate="MAIL.ERRORS.TO_REQUIRED"
176 >To field is required</span
181 <div class="cc-bcc" layout="row" layout-align="start center">
184 ng-show="vm.hiddenCC"
185 ng-click="vm.hiddenCC = false"
191 ng-show="vm.hiddenBCC"
192 ng-click="vm.hiddenBCC = false"
197 </md-input-container>
202 ng-hide="vm.hiddenCC"
204 <label translate="MAIL.CC">Cc</label>
207 ng-model="vm.message.cc"
208 md-transform-chip="vm.transformContact($chip, vm.message.cc)"
209 md-separator-keys="vm.separatorKeys"
210 md-require-match="false"
214 md-search-text="vm.searchCc"
215 md-items="contact in vm.contactSearch(vm.searchCc)"
216 md-item-text="contact.email"
220 <span>{{ vm.getContact(contact) }}</span>
224 </md-input-container>
229 ng-hide="vm.hiddenBCC"
231 <label translate="MAIL.BCC">Bcc</label>
234 ng-model="vm.message.bcc"
235 md-transform-chip="vm.transformContact($chip, vm.message.bcc)"
236 md-separator-keys="vm.separatorKeys"
237 md-require-match="false"
241 md-search-text="vm.searchBcc"
242 md-items="contact in vm.contactSearch(vm.searchBcc)"
243 md-item-text="contact.email"
247 <span>{{ vm.getContact(contact) }}</span>
251 </md-input-container>
253 <md-input-container ng-if="!vm.secret" class="md-block no-margin">
254 <label translate="MAIL.SUBJECT">Subject</label>
255 <input ng-model="vm.message.subject" type="text" />
256 </md-input-container>
259 class="attachment-list"
260 ng-if="vm.message.attachments.length"
267 layout-align="space-between center"
268 ng-repeat="attachment in vm.message.attachments"
271 <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>
272 <span class="filename">{{attachment.name}}</span>
273 <span class="size" ng-if="attachment.size"
274 >({{attachment.size | byteFmt: 0}})</span
279 ng-click="vm.removeAttachment(attachment)"
280 class="md-icon-button"
281 aria-label="Delete attachment"
283 translate-attr-aria-label="MAIL.DELETE_ATTACHMENT"
285 <md-icon md-font-icon="icon-close" class="s16"></md-icon>
290 <div class="padding-top-5">
292 ckeditor="vm.ckeditor"
294 ng-model="vm.message.body"
295 md-select-on-focus=""
296 ready="vm.onReadyEditor()"
301 ng-if="!vm.message.showLastMessage && !vm.secret"
302 ng-model="vm.message.showLastMessage"
303 ng-change="vm.loadLastMessage()"
304 aria-label="load last message"
305 ><span translate="MAIL.SHOW_ORIGINAL_MESSAGE"
306 >Show original message</span
312 md-selected-item="vm.selectedItem"
313 md-search-text="vm.searchText"
314 md-selected-item-change="vm.selectedItemChange(item)"
315 md-items="item in vm.searchTextChange(vm.searchText)"
316 md-item-text="item.value"
318 md-floating-label="{{ 'MAIL.CANNED_ANSWER_SEARCH' | translate}}"
319 class="input-show-hide no-container-margin"
323 ng-if="!item.MailAccountId"
324 md-font-icon="icon-earth"
325 aria-label="alert email"
330 ng-if="item.MailAccountId"
331 md-font-icon="icon-email"
332 aria-label="alert email"
335 <span md-highlight-text="vm.searchText" md-highlight-flags="^i"
336 >{{ item.key }} - {{ item.value | htmlToPlaintext }}</span
341 <span translate="MAIL.CANNED_ANSWER_NOT_FOUND"
342 >No canned answers were found</span