2006-06-15 21:34:10 +02:00
|
|
|
<?xml version="1.0" standalone="yes"?>
|
2007-08-15 23:13:20 +02:00
|
|
|
<!DOCTYPE var:component>
|
2014-11-25 22:09:55 +01:00
|
|
|
<var:component
|
2015-02-26 17:27:36 +01:00
|
|
|
xmlns="http://www.w3.org/1999/xhtml"
|
|
|
|
xmlns:var="http://www.skyrix.com/od/binding"
|
|
|
|
xmlns:const="http://www.skyrix.com/od/constant"
|
2015-08-03 17:53:54 +02:00
|
|
|
xmlns:rsrc="OGo:url"
|
2015-03-18 19:59:06 +01:00
|
|
|
xmlns:label="OGo:label"
|
2015-02-26 17:27:36 +01:00
|
|
|
className="UIxPageFrame"
|
|
|
|
title="title"
|
2016-02-10 22:15:00 +01:00
|
|
|
const:jsFiles="Common.js, Preferences.services.js, Contacts.services.js, Scheduler.services.js, Mailer.js, Mailer.services.js, vendor/ckeditor/ckeditor.js, vendor/ckeditor/ck.js, vendor/angular-file-upload.min.js">
|
2015-02-26 17:27:36 +01:00
|
|
|
<script type="text/javascript">
|
2015-09-03 22:10:05 +02:00
|
|
|
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" />;
|
2007-08-15 23:13:20 +02:00
|
|
|
</script>
|
2014-11-25 22:09:55 +01:00
|
|
|
|
2015-01-09 21:58:11 +01:00
|
|
|
<!--
|
2016-01-08 22:34:13 +01:00
|
|
|
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
|
|
|
|
Templates script tag wrappers go next
|
2015-01-09 21:58:11 +01:00
|
|
|
-->
|
2015-08-24 17:20:35 +02:00
|
|
|
<main class="view layout-fill" ui-view="mailboxes" layout="row" ng-controller="navController"><!-- mailboxes list --></main>
|
2006-12-22 17:58:30 +01:00
|
|
|
|
2015-02-26 17:27:36 +01:00
|
|
|
<script type="text/ng-template" id="UIxMailMainFrame">
|
2010-05-27 16:41:59 +02:00
|
|
|
|
2015-06-26 19:13:25 +02:00
|
|
|
<!-- Sidenav -->
|
2015-11-27 22:40:23 +01:00
|
|
|
<md-sidenav class="md-sidenav-left md-whiteframe-z1 layout-fill" layout="column"
|
|
|
|
md-component-id="left" md-is-locked-open="isGtMedium"
|
|
|
|
ng-class="{ 'sg-closed': leftIsClose }">
|
2015-04-03 17:34:05 +02:00
|
|
|
<var:component className="UIxSidenavToolbarTemplate" />
|
2015-12-18 22:33:01 +01:00
|
|
|
<md-content class="md-flex md-hue-2" layout="column" md-scroll-y="md-scroll-y">
|
|
|
|
<section class="md-flex" layout="column"
|
|
|
|
ng-repeat="account in app.accounts track by account.id">
|
2015-09-09 22:35:09 +02:00
|
|
|
<md-subheader class="md-hue-2">
|
2015-09-24 22:48:20 +02:00
|
|
|
<div layout="row" layout-align="start center">
|
2015-12-08 18:10:15 +01:00
|
|
|
<md-button class="md-icon-button"
|
|
|
|
ng-show="account.id == 0"
|
|
|
|
label:aria-label="Delegation..."
|
|
|
|
ng-click="app.delegate(account)">
|
2016-01-08 22:34:13 +01:00
|
|
|
<md-tooltip md-delay="300"><var:string label:value="Delegation..."/></md-tooltip>
|
2015-12-08 18:10:15 +01:00
|
|
|
<md-icon>people</md-icon>
|
|
|
|
</md-button>
|
2015-09-24 22:48:20 +02:00
|
|
|
<div class="sg-no-wrap">{{account.name}}</div>
|
|
|
|
<div class="md-flex"><!-- spacer --></div>
|
|
|
|
<md-button class="sg-icon-button"
|
|
|
|
label:aria-label="New Folder..."
|
|
|
|
ng-click="app.newFolder(account)">
|
2016-01-08 22:34:13 +01:00
|
|
|
<md-tooltip md-delay="300"><var:string label:value="New Folder..."/></md-tooltip>
|
2015-09-24 22:48:20 +02:00
|
|
|
<md-icon>add_circle_outline</md-icon>
|
|
|
|
</md-button>
|
2015-04-29 20:37:04 +02:00
|
|
|
</div>
|
|
|
|
</md-subheader>
|
2015-12-22 03:14:39 +01:00
|
|
|
<div class="sg-quota" ng-if="account.$quota">
|
|
|
|
<md-progress-linear md-mode="determinate"
|
|
|
|
ng-class="{ 'md-warn': account.$quota.percent > 70 }"
|
|
|
|
value="{{account.$quota.percent}}"><!-- quota --></md-progress-linear>
|
2016-01-04 17:50:25 +01:00
|
|
|
<div class="sg-md-caption md-default-theme md-fg md-primary"
|
2016-01-07 22:33:41 +01:00
|
|
|
ng-class="{ 'md-warn': account.$quota.percent > 70 }">{{account.$quota.description}}</div>
|
2015-12-22 03:14:39 +01:00
|
|
|
</div>
|
2015-12-18 22:33:01 +01:00
|
|
|
<md-virtual-repeat-container class="md-flex">
|
|
|
|
<md-list>
|
|
|
|
<md-list-item md-virtual-repeat="folder in account.$flattenMailboxes()" md-item-size="48"
|
2016-01-07 22:33:41 +01:00
|
|
|
class="md-default-theme md-background md-hue-1"
|
2016-01-08 22:34:13 +01:00
|
|
|
ng-class="{'md-bg': folder.id == app.service.selectedFolder.id}"
|
2016-01-07 22:33:41 +01:00
|
|
|
ng-dblclick="app.editFolder(folder)">
|
2015-12-18 22:33:01 +01:00
|
|
|
<div ng-class="'sg-child-level-' + folder.level">
|
|
|
|
<md-icon ng-hide="folder.children.length">{{app.metadataForFolder(folder).icon}}</md-icon>
|
|
|
|
<md-checkbox class="sg-folder"
|
|
|
|
label:aria-label="Expanded"
|
|
|
|
ng-show="folder.children.length"
|
|
|
|
ng-model="folder.$expanded"
|
|
|
|
ng-change="account.$flattenMailboxes({ reload: true, saveState: true })"><!-- expanded --></md-checkbox>
|
|
|
|
</div>
|
|
|
|
<p class="sg-item-name"
|
2016-01-07 22:33:41 +01:00
|
|
|
ng-click="app.selectFolder($event, account, folder)"
|
2015-12-18 22:33:01 +01:00
|
|
|
ng-show="app.editMode != folder.path">
|
|
|
|
{{app.metadataForFolder(folder).name}}
|
|
|
|
<span class="sg-counter-badge" ng-show="folder.unseenCount">{{folder.unseenCount}}</span>
|
|
|
|
</p>
|
|
|
|
<md-input-container class="md-flex"
|
|
|
|
ng-show="app.editMode == folder.path">
|
|
|
|
<input class="sg-item-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 ng-show="app.service.selectedFolder.path == folder.path">
|
|
|
|
<md-icon label:aria-label="Options"
|
|
|
|
ng-click="$mdOpenMenu($event)"
|
|
|
|
md-menu-origin="md-menu-origin">more_vert</md-icon>
|
|
|
|
<md-menu-content width="3">
|
|
|
|
<md-menu-item>
|
2016-02-10 22:15:00 +01:00
|
|
|
<md-button type="button" md-menu-align-target="md-menu-align-target"
|
|
|
|
ng-click="app.markFolderRead(folder)">
|
2015-12-18 22:33:01 +01:00
|
|
|
<var:string label:value="Mark Folder Read"/>
|
|
|
|
</md-button>
|
|
|
|
</md-menu-item>
|
2016-02-10 16:00:59 +01:00
|
|
|
<md-menu-item ng-hide="folder.$isNoInferiors">
|
2015-12-18 22:33:01 +01:00
|
|
|
<md-button type="button" ng-click="app.newFolder(folder)">
|
|
|
|
<var:string label:value="New Subfolder..."/>
|
|
|
|
</md-button>
|
|
|
|
</md-menu-item>
|
|
|
|
<md-menu-item ng-show="folder.$isEditable">
|
|
|
|
<md-button type="button" ng-click="app.editFolder(folder)">
|
|
|
|
<var:string label:value="Rename"/>
|
|
|
|
</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-item>
|
|
|
|
<md-button type="button"
|
|
|
|
ng-click="app.showAdvancedSearch(folder.path)">
|
|
|
|
<var:string label:value="Search"/>
|
|
|
|
</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>
|
2016-02-08 21:36:01 +01:00
|
|
|
<md-menu-item ng-show="folder.type == 'folder'">
|
|
|
|
<md-button type="button" ng-click="app.setFolderAs(folder, 'Junk')">
|
|
|
|
<var:string label:value="Set as Junk"/>
|
|
|
|
</md-button>
|
|
|
|
</md-menu-item>
|
2015-12-18 22:33:01 +01:00
|
|
|
<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>
|
|
|
|
</md-virtual-repeat-container>
|
2016-01-08 22:34:13 +01:00
|
|
|
<md-divider><!-- divider --></md-divider>
|
2015-04-29 17:23:21 +02:00
|
|
|
</section>
|
2015-01-09 21:58:11 +01:00
|
|
|
</md-content>
|
|
|
|
</md-sidenav>
|
|
|
|
|
2016-02-02 21:05:25 +01:00
|
|
|
<section layout="column" class="layout-fill" ui-view="mailbox">
|
|
|
|
<md-toolbar layout="row" layout-align="space-between center" class="toolbar-main">
|
|
|
|
<var:component className="UIxTopnavToolbarTemplate"/>
|
|
|
|
</md-toolbar>
|
|
|
|
<md-content class="md-flex layout-fill md-hue-1"
|
|
|
|
layout="column" layout-align="center center">
|
|
|
|
<div class="md-default-theme md-background md-fg md-hue-3 sg-md-title">
|
|
|
|
<var:string label:value="No mailbox selected"/>
|
|
|
|
</div>
|
|
|
|
</md-content>
|
|
|
|
</section>
|
2015-07-13 21:22:58 +02:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<script type="text/ng-template" id="UIxMailFolderTemplate">
|
2015-09-15 03:35:34 +02:00
|
|
|
<md-toolbar layout="row" layout-align="space-between center" class="toolbar-main"
|
|
|
|
ng-hide="app.showingAdvancedSearch">
|
2015-09-10 22:38:30 +02:00
|
|
|
<var:component className="UIxTopnavToolbarTemplate"/>
|
|
|
|
</md-toolbar>
|
2015-09-15 03:35:34 +02:00
|
|
|
|
|
|
|
<!-- Advanced search toolbar -->
|
|
|
|
<md-toolbar layout="column" class="md-tall toolbar-main"
|
|
|
|
ng-show="app.showingAdvancedSearch">
|
|
|
|
<div class="md-toolbar-tools">
|
2015-12-04 21:00:58 +01:00
|
|
|
<div layout="column" class="md-flex">
|
2015-09-15 03:35:34 +02:00
|
|
|
<div class="pseudo-input-container--compact">
|
|
|
|
<label class="pseudo-input-label"><var:string label:value="Add a Criteria"/></label>
|
|
|
|
</div>
|
|
|
|
<div layout="row">
|
2015-09-17 21:06:48 +02:00
|
|
|
<span class="md-button sg-outline-button" ng-click="app.addSearchParam('subject')">
|
2015-09-15 03:35:34 +02:00
|
|
|
<var:string label:value="Subject"/>
|
2015-09-17 21:06:48 +02:00
|
|
|
</span>
|
|
|
|
<span class="md-button sg-outline-button" ng-click="app.addSearchParam('from')">
|
2015-09-15 03:35:34 +02:00
|
|
|
<var:string label:value="From"/>
|
2015-09-17 21:06:48 +02:00
|
|
|
</span>
|
|
|
|
<span class="md-button sg-outline-button" ng-click="app.addSearchParam('to')">
|
2015-09-15 03:35:34 +02:00
|
|
|
<var:string label:value="To"/>
|
2015-09-17 21:06:48 +02:00
|
|
|
</span>
|
|
|
|
<span class="md-button sg-outline-button" ng-click="app.addSearchParam('cc')">
|
2015-09-15 03:35:34 +02:00
|
|
|
<var:string label:value="Cc"/>
|
2015-09-17 21:06:48 +02:00
|
|
|
</span>
|
|
|
|
<span class="md-button sg-outline-button" ng-click="app.addSearchParam('body')">
|
2015-09-15 03:35:34 +02:00
|
|
|
<var:string label:value="Body"/>
|
2015-09-17 21:06:48 +02:00
|
|
|
</span>
|
2015-09-15 03:35:34 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
2015-12-04 21:00:58 +01:00
|
|
|
<md-button type="button" class="sg-icon-button" ng-click="app.hideAdvancedSearch()">
|
|
|
|
<md-icon>close</md-icon>
|
|
|
|
</md-button>
|
|
|
|
</div>
|
|
|
|
<div class="md-toolbar-tools">
|
|
|
|
<md-chips class="md-flex"
|
|
|
|
ng-model="app.search.params"
|
|
|
|
md-transform-chip="app.newSearchParam($chip)">
|
|
|
|
<input sg-focus-on="advancedSearch" type="text"
|
|
|
|
ng-disabled="app.currentSearchParam.length == 0"
|
|
|
|
sg-placeholder="app.search.options[app.currentSearchParam]"/>
|
|
|
|
<md-chip-template>
|
2016-01-07 21:19:53 +01:00
|
|
|
<span class="md-caption" ng-show="$chip.negative == 0">(<var:string label:value="match"/></span>
|
|
|
|
<span class="md-caption" ng-show="$chip.negative == 1">(<var:string label:value="does not match"/></span>
|
2015-12-04 21:00:58 +01:00
|
|
|
<span class="md-caption">{{$chip.searchBy}})</span>
|
|
|
|
<span>{{$chip.searchInput}}</span>
|
|
|
|
</md-chip-template>
|
|
|
|
</md-chips>
|
2015-09-15 03:35:34 +02:00
|
|
|
</div>
|
2015-07-13 21:22:58 +02:00
|
|
|
</md-toolbar>
|
2015-09-03 22:10:05 +02:00
|
|
|
|
2015-07-13 21:22:58 +02:00
|
|
|
<div layout="row" class="md-flex">
|
|
|
|
<var:component className="UIxMailFolderTemplate" />
|
|
|
|
</div>
|
2014-11-25 22:09:55 +01:00
|
|
|
</script>
|
2010-05-27 16:41:59 +02:00
|
|
|
|
2015-06-26 19:13:25 +02:00
|
|
|
<!-- modal for mailbox sharing options -->
|
|
|
|
<script type="text/ng-template" id="UIxUserRightsEditor">
|
|
|
|
<var:component className="UIxMailUserRightsEditor" />
|
|
|
|
</script>
|
|
|
|
|
2015-02-26 17:27:36 +01:00
|
|
|
<script type="text/ng-template" id="UIxMailViewTemplate">
|
|
|
|
<var:component className="UIxMailViewTemplate" />
|
2014-11-25 22:09:55 +01:00
|
|
|
</script>
|
2014-12-11 17:24:22 +01:00
|
|
|
|
2007-08-15 23:13:20 +02:00
|
|
|
</var:component>
|