2014-12-17 20:58:20 +01:00
<?xml version='1.0' standalone='yes'?>
<container
2015-09-03 22:10:05 +02:00
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:rsrc="OGo:url"
xmlns:label="OGo:label"
xmlns:uix="OGo:uix">
2015-02-06 15:37:00 +01:00
2015-12-04 21:00:58 +01:00
<div class="sg-reversible" ng-class="{ 'sg-flip': viewer.showRawSource }">
2016-03-11 20:18:09 +01:00
<div class="sg-face" layout="column" layout-fill="layout-fill">
2015-12-04 21:00:58 +01:00
<md-card>
2016-03-08 19:20:34 +01:00
<md-card-actions flex-none="flex-none" layout="row" layout-align="end center">
2016-11-10 22:03:00 +01:00
<md-button ng-click="toggleCenter()"
class="md-icon-button md-primary md-hue-1 hide show-gt-xs"
aria-hidden="true"
2017-05-18 21:31:38 +02:00
ng-if="::!isPopup">
2016-11-10 22:03:00 +01:00
<md-icon class="icon-fullscreen"
ng-class="{ 'icon-fullscreen-exit': centerIsClose }"><!-- fullscreen --></md-icon>
</md-button>
2015-12-04 21:00:58 +01:00
<md-button class="md-icon-button"
2017-05-18 21:31:38 +02:00
ng-if="::isPopup"
2015-12-04 21:00:58 +01:00
label:aria-label="Close"
ng-click="viewer.closePopup()">
<md-icon>close</md-icon>
2015-08-04 22:51:33 +02:00
</md-button>
2016-05-27 22:09:43 +02:00
<md-button class="md-icon-button hide-gt-xs"
2015-12-04 21:00:58 +01:00
ng-hide="isPopup"
label:aria-label="Close"
ng-click="viewer.close()">
2016-02-02 18:07:44 +01:00
<md-icon>close</md-icon>
2015-12-04 21:00:58 +01:00
</md-button>
2016-01-07 21:43:26 +01:00
<div class="md-flex"><!-- spacer --></div>
2016-10-17 21:10:40 +02:00
<md-button class="sg-icon-button" label:aria-label="Flagged" ng-click="viewer.message.toggleFlag()">
2016-09-30 18:15:37 +02:00
<md-icon ng-class="{'icon-star md-accent md-hue-2': viewer.message.isflagged,
2015-12-04 21:00:58 +01:00
'icon-star-border': !viewer.message.isflagged}"><!-- flag --></md-icon>
</md-button>
<md-button class="sg-icon-button"
2017-05-18 21:31:38 +02:00
ng-hide="::viewer.message.isDraft"
2015-12-04 21:00:58 +01:00
ng-click="viewer.reply($event)"
label:aria-label="Reply">
<md-tooltip md-direction="bottom"><var:string label:value="Reply to Sender Only"/></md-tooltip>
<md-icon>reply</md-icon>
</md-button>
<md-button class="sg-icon-button"
ng-show="viewer.message.allowReplyAll()"
ng-click="viewer.replyAll($event)"
label:aria-label="Reply All">
<md-tooltip md-direction="bottom"><var:string label:value="Reply to sender and all recipients"/></md-tooltip>
<md-icon>reply_all</md-icon>
</md-button>
<md-button class="sg-icon-button" label:aria-label="Forward"
2017-05-18 21:31:38 +02:00
ng-hide="::viewer.message.isDraft"
2015-12-04 21:00:58 +01:00
ng-click="viewer.forward($event)">
<md-tooltip md-direction="bottom"><var:string label:value="Forward selected message"/></md-tooltip>
<md-icon>forward</md-icon>
</md-button>
<md-button class="sg-icon-button" label:aria-label="Edit"
2017-05-18 21:31:38 +02:00
ng-show="::viewer.message.isDraft"
2015-12-04 21:00:58 +01:00
ng-click="viewer.edit($event)">
<md-icon>create</md-icon>
</md-button>
<md-button class="sg-icon-button" label:aria-label="Delete"
2016-05-17 22:39:12 +02:00
ng-click="viewer.deleteMessage()">
2015-12-04 21:00:58 +01:00
<md-tooltip md-direction="bottom"><var:string label:value="Delete selected message or folder"/></md-tooltip>
<md-icon>delete</md-icon>
</md-button>
2016-05-18 20:35:24 +02:00
<md-button class="sg-icon-button hide show-gt-md" label:aria-label="Open in New Mail Window"
2017-05-18 21:31:38 +02:00
ng-hide="::isPopup"
2015-12-04 21:00:58 +01:00
ng-click="viewer.openPopup()">
<md-tooltip md-direction="bottom"><var:string label:value="Open in New Mail Window"/></md-tooltip>
<md-icon>open_in_new</md-icon>
</md-button>
<md-menu>
2016-11-01 20:54:56 +01:00
<md-button label:aria-label="More mail options" class="sg-icon-button" ng-click="$mdMenu.open($event)">
2015-12-04 21:00:58 +01:00
<md-icon>more_vert</md-icon>
</md-button>
<md-menu-content width="4">
<md-menu-item ng-hide="viewer.showFlags">
<md-button label:aria-label="Add a tag"
2017-06-15 22:04:47 +02:00
ng-click="viewer.addFlags()">
2015-12-04 21:00:58 +01:00
<var:string label:value="Add a tag"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button label:aria-label="Save As..."
2016-12-07 20:37:59 +01:00
ng-click="viewer.message.download()">
2015-12-04 21:00:58 +01:00
<var:string label:value="Save As..."/>
</md-button>
</md-menu-item>
2016-12-07 20:37:59 +01:00
<md-menu-item ng-show="::viewer.message.attachmentAttrs.length">
<md-button label:aria-label="Download all attachments"
ng-click="viewer.message.downloadAttachments()">
<var:string label:value="Download all attachments"/>
</md-button>
</md-menu-item>
2015-12-04 21:00:58 +01:00
<md-menu-item>
<md-button label:aria-label="View Message Source"
ng-click="viewer.toggleRawSource($event)">
<var:string label:value="View Message Source"/>
</md-button>
</md-menu-item>
2016-02-26 21:41:53 +01:00
<md-menu-item>
<md-button label:aria-label="Print..."
ng-click="viewer.print()">
<var:string label:value="Print..."/>
</md-button>
</md-menu-item>
2016-02-10 22:15:00 +01:00
<md-menu-divider><!-- divider --></md-menu-divider>
<md-menu-item>
<md-button label:aria-label="Convert To Event"
ng-click="viewer.convertToEvent($event)">
<var:string label:value="Convert To Event"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button label:aria-label="Convert To Task"
ng-click="viewer.convertToTask($event)">
<var:string label:value="Convert To Task"/>
</md-button>
</md-menu-item>
2015-12-04 21:00:58 +01:00
</md-menu-content>
</md-menu>
</md-card-actions>
<md-card-content>
<div class="sg-padded">
2017-05-18 21:31:38 +02:00
<h5 ng-bind="::viewer.message.subject"><!-- subject --></h5>
<time class="msg-date" datetime="viewer.message.date" ng-bind="::viewer.message.date"><!-- date --></time>
2015-12-04 21:00:58 +01:00
</div>
2016-01-18 19:58:23 +01:00
<div>
2015-12-04 21:00:58 +01:00
<div layout="row" layout-wrap="layout-wrap">
<div class="pseudo-input-container--compact" flex="50" flex-xs="100">
<div layout="row" layout-align="start center">
<sg-avatar-image class="md-tile-left"
2017-05-18 21:31:38 +02:00
sg-email="::viewer.message.from[0].email"
2016-11-11 22:46:55 +01:00
size="40">person</sg-avatar-image>
2015-12-04 21:00:58 +01:00
<div class="md-list-item-text">
2017-05-18 21:31:38 +02:00
<span ng-bind="::viewer.message.from[0].name"><!-- from --></span><br/>
2015-12-07 20:07:48 +01:00
<a href="#" class="md-caption"
2017-05-18 21:31:38 +02:00
ng-bind="::viewer.message.from[0].email"
2016-05-11 03:29:18 +02:00
ng-click="viewer.newMessage($event, { to: [viewer.message.from[0].full] })"><!-- from --></a>
2015-12-04 21:00:58 +01:00
</div>
</div>
</div>
2016-02-26 21:19:33 +01:00
<div class="msg-recipients" layout="column" flex="50" flex-xs="100">
2015-12-04 21:00:58 +01:00
<div class="pseudo-input-container--compact">
<label class="pseudo-input-label">
<var:string label:value="To"/>
</label>
2016-02-26 21:19:33 +01:00
<div class="pseudo-input-field"
ng-hide="viewer.$showDetailedRecipients">
2017-05-18 21:31:38 +02:00
<a href="#" ng-click="viewer.toggleDetailedRecipients($event)"
ng-bind="::viewer.message.$shortRecipients(5)"><!-- to --></a>
2015-12-04 21:00:58 +01:00
</div>
2015-12-07 20:07:48 +01:00
<div class="pseudo-input-field" ng-show="viewer.$showDetailedRecipients">
2015-12-04 21:00:58 +01:00
<span ng-repeat="recipient in viewer.message.to">
2017-05-18 21:31:38 +02:00
<a href="#" ng-bind="::recipient.full"
2016-05-11 03:29:18 +02:00
ng-click="viewer.newMessage($event, { to: [recipient.full] })"><!-- recipient --></a>
2015-12-04 21:00:58 +01:00
</span>
</div>
</div>
2015-12-07 20:07:48 +01:00
<div class="pseudo-input-container--compact" ng-show="viewer.$showDetailedRecipients">
2017-05-18 21:31:38 +02:00
<label class="pseudo-input-label" ng-show="::viewer.message.cc.length > 0">
2015-12-04 21:00:58 +01:00
<var:string label:value="Cc"/>
</label>
<div class="pseudo-input-field">
2017-05-18 21:31:38 +02:00
<span ng-repeat="recipient in ::viewer.message.cc">
<a href="#" ng-bind="::recipient.full"
2016-05-11 03:29:18 +02:00
ng-click="viewer.newMessage($event, { to: [recipient.full] })"><!-- recipient --></a>
2015-12-04 21:00:58 +01:00
</span>
2016-03-11 20:18:09 +01:00
<md-button style="float: right"
label:aria-label="Hide"
ng-click="viewer.toggleDetailedRecipients($event)">
<var:string label:value="Hide"/>
</md-button>
2015-12-04 21:00:58 +01:00
</div>
</div>
2015-09-03 22:10:05 +02:00
</div>
</div>
2016-01-18 19:58:23 +01:00
</div>
<div class="sg-padded hide-xs" ng-show="viewer.showFlags">
<md-chips class="sg-readonly"
2017-06-15 22:04:47 +02:00
sg-focus-on="flags"
2016-03-28 16:42:40 +02:00
ng-model="viewer.message.flags">
2016-01-09 04:06:35 +01:00
<md-chip-template>
2016-03-28 16:42:40 +02:00
<span class="sg-chip-color">
2016-01-09 04:06:35 +01:00
<span ng-style="{ 'background-color': viewer.service.$tags[$chip][1] }"><!-- color --></span>
</span>
2017-05-18 21:31:38 +02:00
<span ng-bind="viewer.service.$tags[$chip][0] || $chip"><!-- tag --></span>
2016-01-09 04:06:35 +01:00
</md-chip-template>
2015-12-04 21:00:58 +01:00
<md-autocomplete
md-search-text="viewer.tags.searchText"
2016-03-28 16:42:40 +02:00
md-items="tag in viewer.service.filterTags(viewer.tags.searchText, viewer.message.flags)"
md-no-cache="true"
2015-12-04 21:00:58 +01:00
label:placeholder="Add a tag">
<md-item-template>
2016-01-09 04:06:35 +01:00
<div layout="row" layout-align="start center">
2016-02-02 18:07:44 +01:00
<div class="sg-color-chip"
2017-06-15 22:04:47 +02:00
ng-style="{ 'background-color': tag.color }"><!-- color --></div>
2016-02-02 18:07:44 +01:00
<div md-highlight-text="viewer.tags.searchText"
2017-06-15 22:04:47 +02:00
md-highlight-flags="^i">{{ tag.description }}</div>
2016-01-09 04:06:35 +01:00
</div>
2015-12-04 21:00:58 +01:00
</md-item-template>
</md-autocomplete>
</md-chips>
</div>
2015-12-08 17:56:01 +01:00
2015-12-22 04:20:32 +01:00
<!-- S/MIME Signature -->
2016-02-26 21:41:53 +01:00
<md-whiteframe class="md-whiteframe-z2 sg-no-print" layout="row" layout-align="space-between center"
2015-12-22 04:20:32 +01:00
ng-show="::viewer.message.$smime.message">
<div layout="row" layout-align="start center">
<div class="md-tile-left">
<md-icon ng-hide="::viewer.message.$smime.validSignature" class="md-warn">error</md-icon>
<md-icon ng-show="::viewer.message.$smime.validSignature" class="md-accent">check</md-icon>
2015-12-08 17:56:01 +01:00
</div>
2015-12-22 04:20:32 +01:00
<p ng-bind-html="::viewer.message.$smime.message"><!-- message --></p>
</div>
</md-whiteframe>
2015-07-08 19:19:16 +02:00
2015-12-22 04:20:32 +01:00
<!-- Load external images -->
2016-02-26 21:41:53 +01:00
<md-whiteframe class="md-whiteframe-z2 sg-no-print" layout="row" layout-align="space-between center"
2015-12-22 04:20:32 +01:00
ng-show="viewer.message.$hasUnsafeContent">
2016-03-11 20:18:09 +01:00
<div layout="row" layout-align="start center" layout-fill="layout-fill">
2015-12-22 04:20:32 +01:00
<div class="md-tile-left">
<md-icon>collections</md-icon>
2015-09-04 22:43:01 +02:00
</div>
2015-12-22 04:20:32 +01:00
<p class="hide show-gt-md"><var:string label:value="This message contains external images."/></p>
<div class="md-flex"><!-- spacer --></div>
<md-button label:aria-label="Load Images"
ng-click="viewer.message.loadUnsafeContent()">
<var:string label:value="Load Images"/>
</md-button>
</div>
</md-whiteframe>
2015-09-03 22:10:05 +02:00
2015-12-22 04:20:32 +01:00
<!-- Return Receipt / Send MDN -->
2016-02-26 21:41:53 +01:00
<md-whiteframe class="md-whiteframe-z2 sg-no-print" layout="column" layout-align="center start"
2015-12-22 04:20:32 +01:00
ng-show="viewer.message.shouldAskReceipt == 1">
<div layout="row" layout-align="start center">
<div class="md-tile-left">
<md-icon>message</md-icon>
2015-12-04 21:00:58 +01:00
</div>
2015-12-22 04:20:32 +01:00
<p class="sg-padded--right"><var:string label:value="The sender of this message has asked to be notified when you read this message. Do you with to notify the sender?"/></p>
</div>
2016-03-11 20:18:09 +01:00
<div layout-fill="layout-fill" layout="row" layout-align="end center">
2015-12-22 04:20:32 +01:00
<md-button label:aria-label="No"
type="button"
ng-click="viewer.message.shouldAskReceipt = 0"><var:string label:value="No"/></md-button>
<md-button label:aria-label="Yes"
type="submit"
ng-click="viewer.message.$sendMDN()"><var:string label:value="Yes"/></md-button>
</div>
</md-whiteframe>
2015-09-03 22:10:05 +02:00
2015-12-08 17:56:01 +01:00
<md-divider><!-- end of headers --></md-divider>
<div>
2015-12-04 21:00:58 +01:00
<div class="msg-body">
<div layout="row" layout-wrap="layout-wrap">
<div class="mailer_mailcontent" layout="row" layout-wrap="layout-wrap"
ng-repeat="part in viewer.message.$content()"
2017-05-18 21:31:38 +02:00
ng-class="::part.msgclass">
<div class="md-flex sg-mail-part"
2016-05-26 22:01:19 +02:00
tabindex="-1"
2017-05-18 21:31:38 +02:00
ng-if="::part.html"
2016-05-11 03:29:18 +02:00
ng-click="viewer.filterMailtoLinks($event)"
ng-bind-html="part.content | ensureTarget"><!-- html msg --></div>
2017-05-18 21:31:38 +02:00
<div class="md-flex sg-mail-part"
ng-if="::part.compile"
2016-05-11 03:29:18 +02:00
sg-compile="part.content"
2017-05-29 20:03:59 +02:00
sg-zoomable-image="$index"><!-- angular-friendly msg --></div>
2015-12-04 21:00:58 +01:00
</div>
2015-09-03 22:10:05 +02:00
</div>
</div>
</div>
2015-12-04 21:00:58 +01:00
</md-card-content>
</md-card>
</div>
2016-03-11 20:18:09 +01:00
<div class="sg-back" layout="column" layout-fill="layout-fill">
2015-12-04 21:00:58 +01:00
<md-card>
2016-03-08 19:20:34 +01:00
<md-card-actions flex-none="flex-none" layout="row" layout-align="end center">
2016-02-02 18:07:44 +01:00
<div class="md-flex"><!-- spacer --></div>
2015-12-04 21:00:58 +01:00
<md-button class="md-icon-button"
label:aria-label="Close"
ng-click="viewer.toggleRawSource()">
<md-icon>arrow_forward</md-icon>
</md-button>
</md-card-actions>
<md-card-content>
2016-05-11 03:23:15 +02:00
<pre ng-bind-html="viewer.message.$rawSource"><!-- raw source --></pre>
2015-12-04 21:00:58 +01:00
</md-card-content>
</md-card>
</div>
2015-09-03 22:10:05 +02:00
</div>
2014-12-17 20:58:20 +01:00
</container>