a330ff7320
Also removed explicit settings and defaults that were imported in various app modules. We now always use the Preferences ng service.
490 lines
22 KiB
XML
490 lines
22 KiB
XML
<?xml version="1.0" standalone="yes"?>
|
|
<!DOCTYPE var:component>
|
|
<var:component
|
|
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"
|
|
className="UIxPageFrame"
|
|
title="title"
|
|
const:jsFiles="Common.js, Contacts.services.js, Mailer.services.js, Preferences.services.js, Mailer.js, Mailer.services.js, vendor/ckeditor/ckeditor.js, vendor/ckeditor/ck.js, vendor/angular-file-upload.js">
|
|
<script type="text/javascript">
|
|
var mailAccounts =<var:string value="mailAccounts" const:escapeHTML="NO" />;
|
|
var userNames =<var:string value="userNames" const:escapeHTML="NO" />;
|
|
var unseenCountFolders =<var:string value="unseenCountFolders" const:escapeHTML="NO" />;
|
|
</script>
|
|
<style type="text/css">
|
|
<var:foreach list="availableLabels" item="currentLabel">
|
|
#label-menu LI.<var:string value="currentLabel.name.asCSSIdentifier" />,
|
|
TABLE.messageList TR[labels~=
|
|
<var:string const:value = '"' const:escapeHTML="NO"
|
|
/>
|
|
<var:string value="currentLabel.name" />
|
|
<var:string const:value = '"' const:escapeHTML="NO" />] TD
|
|
{ color:<var:string value="currentLabel.color" />; }
|
|
TABLE.messageList TR[labels~=
|
|
<var:string const:value = '"' const:escapeHTML="NO"
|
|
/>
|
|
<var:string value="currentLabel.name" />
|
|
<var:string const:value = '"' const:escapeHTML="NO" />]._selected TD
|
|
{ color: #fff;
|
|
background-color:
|
|
<var:string value="currentLabel.color" />
|
|
!important; }
|
|
</var:foreach>
|
|
</style>
|
|
|
|
<!--
|
|
<div id="signatureFlagMessage" style="display: none" class="dialog right">
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="accountIconMenu">
|
|
<ul>
|
|
<li><var:string label:value="Subscribe..." /></li>
|
|
<li><var:string label:value="Get Messages for Account" /></li>
|
|
<li><var:string label:value="New Folder..." /></li>
|
|
<li><var:string label:value="Search Messages..." /></li>
|
|
<li><var:string label:value="Properties..." /></li>
|
|
<li><var:string label:value="Delegation..." /></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="inboxIconMenu">
|
|
<ul>
|
|
<li><var:string label:value="Open in New Mail Window" /></li>
|
|
<li><var:string label:value="Copy Folder Location" /></li>
|
|
<li><var:string label:value="Subscribe..." /></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Mark Folder Read" /></li>
|
|
<li><var:string label:value="New Folder..." /></li>
|
|
<li><var:string label:value="Compact This Folder" /></li>
|
|
<li><var:string label:value="Export This Folder" /></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Search Messages..." /></li>
|
|
<li><var:string label:value="Sharing..." /></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="trashIconMenu">
|
|
<ul>
|
|
<li><var:string label:value="Open in New Mail Window" /></li>
|
|
<li><var:string label:value="Copy Folder Location" /></li>
|
|
<li><var:string label:value="Subscribe..." /></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Mark Folder Read" /></li>
|
|
<li><var:string label:value="New Subfolder..." /></li>
|
|
<li><var:string label:value="Compact This Folder" /></li>
|
|
<li><var:string label:value="Export This Folder" /></li>
|
|
<li><var:string label:value="Empty Trash" /></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Search Messages..." /></li>
|
|
<li><var:string label:value="Sharing..." /></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="mailboxIconMenu">
|
|
<ul>
|
|
<li><var:string label:value="Open in New Mail Window" /></li>
|
|
<li><var:string label:value="Copy Folder Location" /></li>
|
|
<li><var:string label:value="Subscribe..." /></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Mark Folder Read" /></li>
|
|
<li><var:string label:value="New Subfolder..." /></li>
|
|
<li><var:string label:value="Rename Folder..." /></li>
|
|
<li><var:string label:value="Compact This Folder" /></li>
|
|
<li><var:string label:value="Export This Folder" /></li>
|
|
<li><var:string label:value="Delete Folder" /></li>
|
|
<li><var:string label:value="Use This Folder For" /></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Search Messages..." /></li>
|
|
<li><var:string label:value="Sharing..." /></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="folderTypeMenu">
|
|
<ul>
|
|
<li><var:string label:value="Sent Messages" /></li>
|
|
<li><var:string label:value="Drafts" /></li>
|
|
<li><var:string label:value="Deleted Messages" /></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="moveMailboxMenu">
|
|
<ul>
|
|
<var:foreach list="clientObject.mailAccounts" item="currentLabel">
|
|
<li><img rsrc:src="tbtv_account_17x17.png"/> <var:string value="currentLabel.name"/></li>
|
|
</var:foreach>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="copyMailboxMenu">
|
|
<ul>
|
|
<var:foreach list="clientObject.mailAccounts" item="currentLabel">
|
|
<li><img rsrc:src="tbtv_account_17x17.png"/> <var:string value="currentLabel.name"/></li>
|
|
</var:foreach>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="messageListMenu">
|
|
<ul>
|
|
<li><var:string label:value="Open Message In New Window"/></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Reply to Sender Only"/></li>
|
|
<li><var:string label:value="Reply to All"/></li>
|
|
<li><var:string label:value="Forward"/></li>
|
|
<li><var:string label:value="Edit As New..."/></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Move To"/></li>
|
|
<li><var:string label:value="Copy To"/></li>
|
|
<li><var:string label:value="Label"/></li>
|
|
<li><var:string label:value="Mark"/></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Save As..."/></li>
|
|
<li><var:string label:value="View Message Source"/></li>
|
|
<li><var:string label:value="Print Preview"/></li>
|
|
<li><var:string label:value="Print..."/></li>
|
|
<li><var:string label:value="Delete Message"/></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="messagesListMenu">
|
|
<ul>
|
|
<li><var:string label:value="Forward"/></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Move To"/></li>
|
|
<li><var:string label:value="Copy To"/></li>
|
|
<li><var:string label:value="Label"/></li>
|
|
<li><var:string label:value="Mark"/></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Save As..."/></li>
|
|
<li><var:string label:value="Print Preview"/></li>
|
|
<li><var:string label:value="Print..."/></li>
|
|
<li><var:string label:value="Delete Selected Messages"/></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="messageContentMenu">
|
|
<ul>
|
|
<li><var:string label:value="Reply to Sender Only"/></li>
|
|
<li><var:string label:value="Reply to All"/></li>
|
|
<li><var:string label:value="Forward"/></li>
|
|
<li><var:string label:value="Edit As New..."/></li>
|
|
<li><var:string label:value="Move To"/></li>
|
|
<li><var:string label:value="Copy To"/></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Label"/></li>
|
|
<li><var:string label:value="Mark"/></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Save As..."/></li>
|
|
<li><var:string label:value="View Message Source"/></li>
|
|
<li><var:string label:value="Print Preview"/></li>
|
|
<li><var:string label:value="Print..."/></li>
|
|
<li><var:string label:value="Delete Message"/></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="label-menu">
|
|
<ul id="" class="choiceMenu">
|
|
<li><var:string label:value="None" /></li>
|
|
<li> separator </li>
|
|
<var:foreach list="availableLabels" item="currentLabel">
|
|
<li var:class="currentLabel.name.asCSSIdentifier" var:name="currentLabel.name"> <var:string value="currentLabel.label"/></li>
|
|
</var:foreach>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="mark-menu">
|
|
<ul id="" class="choiceMenu">
|
|
<li><var:string label:value="As Read" /></li>
|
|
<li><var:string label:value="Thread As Read" /></li>
|
|
<li><var:string label:value="As Read By Date..." /></li>
|
|
<li><var:string label:value="All Read" /></li>
|
|
<li> separator </li>
|
|
<li><var:string label:value="Flag" /></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="f-dropdown" id="addressMenu">
|
|
<ul>
|
|
<li id="add_to_addressbook"><var:string label:value="Add to Address Book..."/></li>
|
|
<li id="compose_mailto"><var:string label:value="Compose Mail To"/></li>
|
|
</ul>
|
|
</div>
|
|
|
|
-->
|
|
<!--
|
|
MAIN CONTENT ROW
|
|
Content of the application view injected injected in the element below
|
|
MUST be the first html element after body
|
|
SHOULD be a main tag (with role="main")
|
|
|
|
Templates script tag wrappers go next
|
|
-->
|
|
<main class="view md-layout-fill" ui-view="mailboxes" layout="row" ng-controller="navController"><!-- mailboxes list --></main>
|
|
|
|
<!-- TEMPLATE SCRIPT WRAPPER -->
|
|
<script type="text/ng-template" id="UIxMailMainFrame">
|
|
|
|
<!-- Sidenav -->
|
|
<md-sidenav id="left-sidenav" class="md-sidenav-left md-whiteframe-z1 md-layout-fill" md-component-id="left" md-is-locked-open="isGtMedium" layout="column">
|
|
<var:component className="UIxSidenavToolbarTemplate" />
|
|
<md-content md-scroll-y="md-scroll-y" class="md-flex">
|
|
<section ng-repeat="account in app.accounts track by account.id">
|
|
<md-subheader class="sg-md-subheader">
|
|
<div layout="row" layout-align="space-between center">
|
|
<span>{{account.name}}</span>
|
|
<div>
|
|
<md-button class="sg-icon-button"
|
|
label:aria-label="New Folder..."
|
|
ng-click="app.newFolder(account)">
|
|
<md-icon>add_circle_outline</md-icon>
|
|
</md-button>
|
|
<md-button class="sg-icon-button"
|
|
ng-show="account.id == 0"
|
|
label:aria-label="Delegation..."
|
|
ng-click="app.delegate(account)">
|
|
<md-icon>people</md-icon>
|
|
</md-button>
|
|
</div>
|
|
</div>
|
|
</md-subheader>
|
|
<md-list>
|
|
<md-list-item ng-repeat="folder in account.$flattenMailboxes() track by folder.path"
|
|
ng-click="app.selectFolder(account, folder)"
|
|
ng-dblclick="app.editFolder(folder)"
|
|
ui-sref="mail.account.mailbox({accountId: account.id, mailboxId: (folder.path | encodeUri)})"
|
|
ui-sref-active="sg-active">
|
|
<md-icon ng-class="'sg-child-level-' + folder.level">{{app.metadataForFolder(folder).icon}}</md-icon>
|
|
<p class="sg-item-name"
|
|
ng-show="app.editMode != folder.path">
|
|
{{app.metadataForFolder(folder).name}}
|
|
<span ng-show="folder.unseenCount"> ({{folder.unseenCount}})</span>
|
|
</p>
|
|
<md-input-container class="md-flex md-tile-content"
|
|
ng-show="app.editMode == folder.path">
|
|
<input class="folder-name" type="text"
|
|
label:aria-label="Enter the new name of your folder"
|
|
ng-model="folder.name"
|
|
ng-blur="app.saveFolder(folder)"
|
|
sg-focus-on="mailboxName_{{folder.path}}"
|
|
sg-enter="app.saveFolder(folder)"
|
|
sg-escape="app.revertEditing(folder)"/>
|
|
</md-input-container>
|
|
<md-menu class="md-secondary"
|
|
ng-show="app.service.selectedFolder.path == folder.path">
|
|
<md-icon label:aria-label="Options"
|
|
ng-click="$mdOpenMenu()"
|
|
md-menu-origin="md-menu-origin">more_vert</md-icon>
|
|
<md-menu-content width="3">
|
|
<md-menu-item>
|
|
<md-button type="button" ng-click="app.markFolderRead(folder)">
|
|
<var:string label:value="Mark Folder Read"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item>
|
|
<md-button type="button" ng-click="app.newFolder(folder)">
|
|
<var:string label:value="New Subfolder..."/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item>
|
|
<md-button type="button" ng-click="app.compactFolder(folder)">
|
|
<var:string label:value="Compact"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item ng-show="folder.$isEditable">
|
|
<md-button type="button" ng-click="app.confirmDelete(folder)">
|
|
<var:string label:value="Delete"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item ng-show="folder.type == 'trash'">
|
|
<md-button type="button" ng-click="app.emptyTrashFolder(folder)">
|
|
<var:string label:value="Empty Trash"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item>
|
|
<md-button type="button" ng-click="app.exportMails(folder)">
|
|
<var:string label:value="Export"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-divider ng-show="folder.type == 'folder'"><!-- divider --></md-menu-divider>
|
|
<md-menu-item ng-show="folder.type == 'folder'">
|
|
<md-button type="button" ng-click="app.setFolderAs(folder, 'Drafts')">
|
|
<var:string label:value="Set as Drafts"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item ng-show="folder.type == 'folder'">
|
|
<md-button type="button" ng-click="app.setFolderAs(folder, 'Sent')">
|
|
<var:string label:value="Set as Sent"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item ng-show="folder.type == 'folder'">
|
|
<md-button type="button" ng-click="app.setFolderAs(folder, 'Trash')">
|
|
<var:string label:value="Set as Trash"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-divider ng-show="folder.type != 'additional'"><!-- divider --></md-menu-divider>
|
|
<md-menu-item ng-show="folder.type != 'additional'">
|
|
<md-button type="button" ng-click="app.share(folder)">
|
|
<var:string label:value="Sharing..."/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
</md-menu-content>
|
|
</md-menu>
|
|
</md-list-item>
|
|
</md-list>
|
|
</section>
|
|
</md-content>
|
|
</md-sidenav>
|
|
|
|
<section layout="column" class="sg-app-content md-layout-fill" ui-view="mailbox"><!-- messages list --></section>
|
|
</script>
|
|
|
|
<script type="text/ng-template" id="UIxMailFolderTemplate">
|
|
<md-toolbar layout="column" layout-align="space-between start" class="md-tall toolbar-main">
|
|
<div class="md-toolbar-tools md-toolbar-tools-top sg-padded" layout="row" layout-align="space-between start">
|
|
<var:component className="UIxTopnavToolbarTemplate" />
|
|
<div class="sg-toolbar-group-last">
|
|
<md-button class="sg-icon-button" label:aria-label="More">
|
|
<md-icon>more_vert</md-icon>
|
|
</md-button>
|
|
</div>
|
|
</div>
|
|
<div class="md-toolbar-tools" layout="row" layout-align="space-between center"
|
|
ng-show="mailbox.selectedFolder.$selectedCount() == 0">
|
|
<!-- sort mode -->
|
|
<div class="view-list" layout="row" layout-align="space-between center"
|
|
ng-hide="mailbox.mode.search">
|
|
<div class="sg-toolbar-group">
|
|
<md-button class="sg-icon-button" label:aria-label="Search"
|
|
ng-click="mailbox.mode.search = true">
|
|
<md-icon>search</md-icon>
|
|
</md-button>
|
|
</div>
|
|
<div class="sg-toolbar-group-last">
|
|
<md-menu>
|
|
<md-button class="sg-icon-button" label:aria-label="Sort"
|
|
ng-click="$mdOpenMenu()">
|
|
<md-icon>sort</md-icon>
|
|
</md-button>
|
|
<md-menu-content>
|
|
<md-menu-item>
|
|
<md-button ng-click="mailbox.sort('subject')">
|
|
<md-icon ng-class="{ 'icon-check': mailbox.sortedBy('subject') }">
|
|
<!-- subject --></md-icon> <var:string label:value="Subject"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item>
|
|
<md-button ng-click="mailbox.sort('from')">
|
|
<md-icon ng-class="{ 'icon-check': mailbox.sortedBy('from') }">
|
|
<!-- from --></md-icon> <var:string label:value="From"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item>
|
|
<md-button ng-click="mailbox.sort('date')">
|
|
<md-icon ng-class="{ 'icon-check': mailbox.sortedBy('date') }">
|
|
<!-- date --></md-icon> <var:string label:value="Date"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-item>
|
|
<md-button ng-click="mailbox.sort('size')">
|
|
<md-icon ng-class="{ 'icon-check': mailbox.sortedBy('size') }">
|
|
<!-- size --></md-icon> <var:string label:value="Size"/>
|
|
</md-button>
|
|
</md-menu-item>
|
|
<md-menu-divider> <!-- divider --></md-menu-divider>
|
|
<md-menu-item >
|
|
<md-button ng-click="mailbox.selectedFolder.$filter()">
|
|
<md-checkbox
|
|
ng-model="mailbox.service.$query.asc"
|
|
ng-true-value="0"
|
|
ng-false-value="1"><var:string label:value="Descending Order"/></md-checkbox>
|
|
</md-button>
|
|
</md-menu-item>
|
|
</md-menu-content>
|
|
</md-menu>
|
|
<md-button class="sg-icon-button" aria-label="Refresh" ng-click="mailbox.selectedFolder.$filter()" >
|
|
<md-icon>refresh</md-icon>
|
|
</md-button>
|
|
</div>
|
|
</div>
|
|
<!-- search mode -->
|
|
<div class="view-list sg-padded--right sg-toolbar-search" layout="row" layout-align="space-between center"
|
|
ng-show="mailbox.mode.search"
|
|
sg-search="mailbox.selectedFolder.$filter({ sort: 'date', asc: false }, [{ searchBy: searchField, searchInput: searchText }])">
|
|
<md-button class="sg-icon-button"
|
|
sg-search-cancel="mailbox.cancelSearch()"
|
|
label:aria-label="Back">
|
|
<md-icon>arrow_back</md-icon>
|
|
</md-button>
|
|
<md-input-container>
|
|
<input name="folderSearch" type="search" />
|
|
</md-input-container>
|
|
<md-input-container>
|
|
<md-select>
|
|
<md-option value="subject" selected="selected"><var:string label:value="Subject"/></md-option>
|
|
<md-option value="from"><var:string label:value="Sender"/></md-option>
|
|
<md-option value="subject_or_from"><var:string label:value="Subject or Sender"/></md-option>
|
|
<md-option value="to_or_cc"><var:string label:value="To or Cc"/></md-option>
|
|
<md-option value="body"><var:string label:value="Entire Message"/></md-option>
|
|
</md-select>
|
|
</md-input-container>
|
|
</div>
|
|
</div>
|
|
|
|
<div layout="row" layout-align="start center" ng-show="mailbox.selectedFolder.$selectedCount() > 0">
|
|
<md-button class="sg-icon-button" ng-click="mailbox.unselectMessages()">
|
|
<md-icon>arrow_back</md-icon>
|
|
</md-button>
|
|
<label>{{mailbox.selectedFolder.$selectedCount()}} selected</label>
|
|
<md-button class="sg-icon-button" ng-click="mailbox.selectAll()">
|
|
<md-icon>select_all</md-icon>
|
|
</md-button>
|
|
<md-button class="sg-icon-button" ng-click="mailbox.confirmDeleteSelectedMessages()">
|
|
<md-icon>delete</md-icon>
|
|
</md-button>
|
|
<md-button class="sg-icon-button">
|
|
<md-icon>star</md-icon>
|
|
</md-button>
|
|
<md-button class="sg-icon-button">
|
|
<md-icon>markunread</md-icon>
|
|
</md-button>
|
|
<md-menu>
|
|
<md-button class="sg-icon-button" label:aria-label="Copy messages" ng-click="$mdOpenMenu()">
|
|
<md-icon>content_copy</md-icon>
|
|
</md-button>
|
|
<md-menu-content width="4">
|
|
<div ng-repeat="account in mailbox.accounts track by account.id">
|
|
<md-menu-item>
|
|
<md-button class="md-primary" ng-disabled="true">{{account.name}}</md-button>
|
|
</md-menu-item>
|
|
<md-menu-divider><!-- divider --></md-menu-divider>
|
|
<md-menu-item ng-repeat="folder in
|
|
account.$flattenMailboxes()
|
|
track by folder.path"
|
|
ng-hide="mailbox.id == folder.id">
|
|
<md-button ng-click="mailbox.copySelectedMessages(folder.id)">
|
|
<span ng-class="'sg-child-level-' + folder.level">{{folder.name}}</span>
|
|
</md-button>
|
|
</md-menu-item>
|
|
</div>
|
|
</md-menu-content>
|
|
</md-menu>
|
|
</div>
|
|
</md-toolbar>
|
|
<div layout="row" class="md-flex">
|
|
<var:component className="UIxMailFolderTemplate" />
|
|
</div>
|
|
</script>
|
|
|
|
<!-- modal for mailbox sharing options -->
|
|
<script type="text/ng-template" id="UIxUserRightsEditor">
|
|
<var:component className="UIxMailUserRightsEditor" />
|
|
</script>
|
|
|
|
<script type="text/ng-template" id="UIxMailViewTemplate">
|
|
<var:component className="UIxMailViewTemplate" />
|
|
</script>
|
|
|
|
</var:component>
|