Adapt to latest md changes

See https://github.com/angular/material/commit/17797f0
pull/186/head
Francis Lachapelle 2015-12-11 15:11:53 -05:00
parent 0b10e20d37
commit 4b5abdb5ce
24 changed files with 496 additions and 622 deletions

View File

@ -8,18 +8,18 @@
<div layout="column" class="layout-fill sg-reversible"> <div layout="column" class="layout-fill sg-reversible">
<md-card style="overflow: hidden"> <md-card style="overflow: hidden">
<md-card-actions layout="row" layout-align="end center"> <md-card-actions layout="row" layout-align="end center">
<md-button class="sg-icon-button" <md-button class="md-icon-button"
label:aria-label="Cancel" label:aria-label="Cancel"
ng-click="editor.cancel()"> ng-click="editor.cancel()">
<md-icon>close</md-icon> <md-icon>close</md-icon>
</md-button> </md-button>
<div class="md-flex"><!-- spacer --></div> <div class="md-flex"><!-- spacer --></div>
<md-button class="sg-icon-button" <md-button class="md-icon-button"
label:aria-label="Reset" label:aria-label="Reset"
ng-click="editor.reset()"> ng-click="editor.reset()">
<md-icon>undo</md-icon> <md-icon>undo</md-icon>
</md-button> </md-button>
<md-button class="sg-icon-button" <md-button class="md-icon-button"
label:aria-label="Save" label:aria-label="Save"
ng-click="editor.save(editor.card.$isCard()?cardForm:listForm)"> ng-click="editor.save(editor.card.$isCard()?cardForm:listForm)">
<md-icon>save</md-icon> <md-icon>save</md-icon>
@ -33,7 +33,7 @@
<!-- contact editor --> <!-- contact editor -->
<form name="cardForm" ng-show="editor.card.$isCard()" ng-submit="editor.save(cardForm)"> <form name="cardForm" ng-show="editor.card.$isCard()" ng-submit="editor.save(cardForm)">
<md-input-container> <md-input-container class="md-block md-flex">
<var:entity const:name="nbsp"/> <var:entity const:name="nbsp"/>
<label> <label>
<var:string label:value="Display"/> <var:string label:value="Display"/>
@ -85,20 +85,20 @@
<!-- org units --> <!-- org units -->
<div class="attr" ng-repeat="unit in editor.card.orgUnits"> <div class="attr" ng-repeat="unit in editor.card.orgUnits">
<div layout="row" layout-align="center end"> <div layout="row" layout-align="center end">
<md-input-container> <md-input-container class="md-flex">
<label> <label>
<var:string label:value="Organization Unit"/> <var:string label:value="Organization Unit"/>
</label> </label>
<input type="text" ng-model="unit.value" <input type="text" ng-model="unit.value"
sg-focus-on="orgUnit_{{$index}}"/> sg-focus-on="orgUnit_{{$index}}"/>
</md-input-container> </md-input-container>
<md-button class="sg-icon-button" type="button" ng-click="editor.card.$delete('orgUnits', $index)"> <md-button class="md-icon-button" type="button" ng-click="editor.card.$delete('orgUnits', $index)">
<md-icon>remove_circle</md-icon> <md-icon>remove_circle</md-icon>
</md-button> </md-button>
</div> </div>
</div> </div>
<div class="md-layout-margin" layout="row" layout-align="start center"> <div class="md-layout-margin" layout="row" layout-align="start center">
<md-button class="sg-icon-button" type="button" ng-click="editor.addOrgUnit($event)"> <md-button class="md-icon-button" type="button" ng-click="editor.addOrgUnit($event)">
<md-icon>add_circle</md-icon> <md-icon>add_circle</md-icon>
</md-button> </md-button>
<label class="button-label"> <label class="button-label">
@ -108,14 +108,13 @@
<!-- categories --> <!-- categories -->
<md-chips ng-model="editor.card.categories"> <md-chips ng-model="editor.card.categories">
<md-chip-template> <md-chip-template>{{$chip.value}}</md-chip-template>
{{$chip.value}}
</md-chip-template>
<md-autocomplete <md-autocomplete
md-selected-item="editor.categories.selected" md-selected-item="editor.categories.selected"
md-selected-item-change="editor.card.$addCategory(category)" md-selected-item-change="editor.card.$addCategory(category)"
md-search-text="editor.categories.searchText" md-search-text="editor.categories.searchText"
md-items="category in editor.card.constructor.filterCategories(editor.categories.searchText)" md-items="category in editor.card.constructor.filterCategories(editor.categories.searchText)"
md-min-length="0"
label:placeholder="Add a category"> label:placeholder="Add a category">
<span md-highlight-text="editor.categories.searchText">{{category}}</span> <span md-highlight-text="editor.categories.searchText">{{category}}</span>
</md-autocomplete> </md-autocomplete>
@ -124,26 +123,26 @@
<!-- emails --> <!-- emails -->
<div class="section"> <div class="section">
<div class="attr" ng-repeat="email in editor.card.emails"> <div class="attr" ng-repeat="email in editor.card.emails">
<div class="md-layout-margin" layout="row" layout-align="space-between end"> <div layout="row">
<md-input-container flex="20"> <md-input-container flex="20">
<md-select ng-model="email.type" label:placeholder="Type"> <md-select ng-model="email.type" label:placeholder="Type">
<md-option ng-repeat="type in ::editor.allEmailTypes" ng-value="type">{{ type }}</md-option> <md-option ng-repeat="type in ::editor.allEmailTypes" ng-value="type">{{ type }}</md-option>
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-flex">
<label> <label>
<var:string label:value="Email Address"/> <var:string label:value="Email Address"/>
</label> </label>
<input type="email" ng-model="email.value" <input type="email" ng-model="email.value"
sg-focus-on="email_{{$index}}"/> sg-focus-on="email_{{$index}}"/>
</md-input-container> </md-input-container>
<md-button class="sg-icon-button" type="button" ng-click="editor.card.$delete('emails', $index)"> <md-button class="md-icon-button" type="button" ng-click="editor.card.$delete('emails', $index)">
<md-icon>remove_circle</md-icon> <md-icon>remove_circle</md-icon>
</md-button> </md-button>
</div> </div>
</div> </div>
<div class="md-layout-margin" layout="row" layout-align="start center"> <div class="md-layout-margin" layout="row" layout-align="start center">
<md-button class="sg-icon-button" type="button" ng-click="editor.addEmail()"> <md-button class="md-icon-button" type="button" ng-click="editor.addEmail()">
<md-icon>add_circle</md-icon> <md-icon>add_circle</md-icon>
</md-button> </md-button>
<label class="button-label"> <label class="button-label">
@ -152,20 +151,21 @@
</div> </div>
</div> </div>
<!-- screenname -->
<div class="section"> <div class="section">
<div layout="row" layout-align="space-between end" ng-show="editor.card.c_screenname != null"> <div layout="row" ng-show="editor.card.c_screenname != null">
<md-input-container> <md-input-container class="md-flex">
<label class="pseudo-input-label"> <label class="pseudo-input-label">
<var:string label:value="Screen Name"/> <var:string label:value="Screen Name"/>
</label> </label>
<input type="text" ng-model="editor.card.c_screenname"/> <input type="text" ng-model="editor.card.c_screenname"/>
</md-input-container> </md-input-container>
<md-button class="sg-icon-button" type="button" ng-click="editor.card.$delete('c_screenname', -1)"> <md-button class="md-icon-button" type="button" ng-click="editor.card.$delete('c_screenname', -1)">
<md-icon>remove_circle</md-icon> <md-icon>remove_circle</md-icon>
</md-button> </md-button>
</div> </div>
<div class="md-layout-margin" layout="row" layout-align="start center" ng-show="editor.card.c_screenname == null"> <div class="md-layout-margin" layout="row" layout-align="start center" ng-show="editor.card.c_screenname == null">
<md-button class="sg-icon-button" type="button" ng-click="editor.addScreenName($event)"> <md-button class="md-icon-button" type="button" ng-click="editor.addScreenName($event)">
<md-icon>add_circle</md-icon> <md-icon>add_circle</md-icon>
</md-button> </md-button>
<label class="button-label"> <label class="button-label">
@ -184,12 +184,12 @@
<md-datepicker class="pseudo-input-field" <md-datepicker class="pseudo-input-field"
ng-model="editor.card.birthday"><!-- birthday --></md-datepicker> ng-model="editor.card.birthday"><!-- birthday --></md-datepicker>
</div> </div>
<md-button class="sg-icon-button" type="button" ng-click="editor.card.$delete('birthday', -1)"> <md-button class="md-icon-button" type="button" ng-click="editor.card.$delete('birthday', -1)">
<md-icon>remove_circle</md-icon> <md-icon>remove_circle</md-icon>
</md-button> </md-button>
</div> </div>
<div class="md-layout-margin" layout="row" layout-align="start center" ng-hide="editor.card.birthday"> <div class="md-layout-margin" layout="row" layout-align="start center" ng-hide="editor.card.birthday">
<md-button class="sg-icon-button" type="button" ng-click="editor.addBirthday()"> <md-button class="md-icon-button" type="button" ng-click="editor.addBirthday()">
<md-icon>add_circle</md-icon> <md-icon>add_circle</md-icon>
</md-button> </md-button>
<label class="button-label"> <label class="button-label">
@ -201,27 +201,26 @@
<!-- phones --> <!-- phones -->
<div class="section"> <div class="section">
<div class="attr" ng-repeat="phone in editor.card.phones"> <div class="attr" ng-repeat="phone in editor.card.phones">
<div class="md-layout-margin" layout="row" layout-align="space-between end"> <div layout="row">
<md-input-container flex="20"> <md-input-container flex="20">
<md-select ng-model="phone.type" label:placeholder="Type"> <md-select ng-model="phone.type" label:placeholder="Type">
<md-option ng-repeat="type in ::editor.allTelTypes" ng-value="type">{{ type }}</md-option> <md-option ng-repeat="type in ::editor.allTelTypes" ng-value="type">{{ type }}</md-option>
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-flex">
<label> <label>
<var:string label:value="Phone Number"/> <var:string label:value="Phone Number"/>
</label> </label>
<input type="text" ng-model="phone.value" <input type="text" ng-model="phone.value"
sg-focus-on="phone_{{$index}}"/> sg-focus-on="phone_{{$index}}"/>
</md-input-container> </md-input-container>
<md-button class="sg-icon-button" type="button" ng-click="editor.card.$delete('phones', $index)"> <md-button class="md-icon-button" type="button" ng-click="editor.card.$delete('phones', $index)">
<md-icon>remove_circle</md-icon> <md-icon>remove_circle</md-icon>
</md-button> </md-button>
</div> </div>
</div> </div>
<div layout="row" layout-align="start center">
<div class="md-layout-margin" layout="row" layout-align="start center"> <md-button class="md-icon-button" type="button" ng-click="editor.addPhone()">
<md-button class="sg-icon-button" type="button" ng-click="editor.addPhone()">
<md-icon>add_circle</md-icon> <md-icon>add_circle</md-icon>
</md-button> </md-button>
<label class="button-label"> <label class="button-label">
@ -233,25 +232,25 @@
<!-- urls --> <!-- urls -->
<div class="section"> <div class="section">
<div class="attr" ng-repeat="url in editor.card.urls"> <div class="attr" ng-repeat="url in editor.card.urls">
<div class="md-layout-margin" layout="row" layout-align="space-between end"> <div layout="row">
<md-input-container flex="20"> <md-input-container flex="20">
<md-select ng-model="url.type" label:placeholder="Type"> <md-select ng-model="url.type" label:placeholder="Type">
<md-option ng-repeat="type in ::editor.allUrlTypes" ng-value="type">{{ type }}</md-option> <md-option ng-repeat="type in ::editor.allUrlTypes" ng-value="type">{{ type }}</md-option>
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-flex">
<label> <label>
<var:string label:value="URL"/> <var:string label:value="URL"/>
</label> </label>
<input type="url" ng-model="url.value" sg-focus-on="url_{{$index}}"/> <input type="url" ng-model="url.value" sg-focus-on="url_{{$index}}"/>
</md-input-container> </md-input-container>
<md-button class="sg-icon-button" type="button" ng-click="editor.card.$delete('urls', $index)"> <md-button class="md-icon-button" type="button" ng-click="editor.card.$delete('urls', $index)">
<md-icon>remove_circle</md-icon> <md-icon>remove_circle</md-icon>
</md-button> </md-button>
</div> </div>
</div> </div>
<div class="md-layout-margin" layout="row" layout-align="start center"> <div class="md-layout-margin" layout="row" layout-align="start center">
<md-button class="sg-icon-button" type="button" ng-click="editor.addUrl()"> <md-button class="md-icon-button" type="button" ng-click="editor.addUrl()">
<md-icon>add_circle</md-icon> <md-icon>add_circle</md-icon>
</md-button> </md-button>
<label class="button-label"> <label class="button-label">
@ -263,72 +262,68 @@
<!-- addresses --> <!-- addresses -->
<div class="section"> <div class="section">
<div class="attr" ng-repeat="address in editor.card.addresses"> <div class="attr" ng-repeat="address in editor.card.addresses">
<div layout="row" layout-align="center end"> <div layout="row">
<md-input-container flex="20"> <md-input-container flex="20">
<md-select ng-model="address.type" label:placeholder="Type"> <md-select ng-model="address.type" label:placeholder="Type">
<md-option ng-repeat="type in ::editor.allAddressTypes" ng-value="type">{{ type }}</md-option> <md-option ng-repeat="type in ::editor.allAddressTypes" ng-value="type">{{ type }}</md-option>
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-flex">
<label> <label>
<var:string label:value="street"/> <var:string label:value="street"/>
</label> </label>
<input type="text" ng-model="address.street" <input type="text" ng-model="address.street"
sg-focus-on="address_{{$index}}"/> sg-focus-on="address_{{$index}}"/>
</md-input-container> </md-input-container>
<md-input-container>
<label>
<var:string label:value=""/>
</label>
<input type="text" ng-model="address.street2"/>
</md-input-container>
</div> </div>
<div layout="row" layout-align="center end"> <div layout="row">
<md-input-container> <md-input-container flex="20">
<label> <label>
<var:string label:value="Postoffice"/> <var:string label:value="Postoffice"/>
</label> </label>
<input type="text" ng-model="address.postoffice"/> <input type="text" ng-model="address.postoffice"/>
</md-input-container> </md-input-container>
<md-input-container class="md-flex">
<label>
<var:string label:value="street (continued)"/>
</label>
<input type="text" ng-model="address.street2"/>
</md-input-container>
</div> </div>
<div layout="row" layout-align="center end"> <div layout="row">
<md-input-container> <md-input-container flex="50" flex-xs="100">
<label> <label>
<var:string label:value="City"/> <var:string label:value="City"/>
</label> </label>
<input type="text" ng-model="address.locality"/> <input type="text" ng-model="address.locality"/>
</md-input-container> </md-input-container>
</div> <md-input-container flex="50" flex-xs="100">
<div layout="row" layout-align="center end">
<md-input-container>
<label> <label>
<var:string label:value="Region"/> <var:string label:value="Region"/>
</label> </label>
<input type="text" ng-model="address.region"/> <input type="text" ng-model="address.region"/>
</md-input-container> </md-input-container>
</div> </div>
<div layout="row" layout-align="center end"> <div layout="row">
<md-input-container> <md-input-container flex="50" flex-xs="100">
<label> <label>
<var:string label:value="Country"/> <var:string label:value="Country"/>
</label> </label>
<input type="text" ng-model="address.country"/> <input type="text" ng-model="address.country"/>
</md-input-container> </md-input-container>
</div> <md-input-container class="md-flex">
<div layout="row" layout-align="center end">
<md-input-container>
<label> <label>
<var:string label:value="Postal Code"/> <var:string label:value="Postal Code"/>
</label> </label>
<input type="text" ng-model="address.postalcode"/> <input type="text" ng-model="address.postalcode"/>
</md-input-container> </md-input-container>
<md-button class="sg-icon-button" type="button" ng-click="editor.card.$delete('addresses', $index)"> <md-button class="md-icon-button" type="button" ng-click="editor.card.$delete('addresses', $index)">
<md-icon>remove_circle</md-icon> <md-icon>remove_circle</md-icon>
</md-button> </md-button>
</div> </div>
</div> </div>
<div class="md-layout-margin" layout="row" layout-align="start center"> <div class="md-layout-margin" layout="row" layout-align="start center">
<md-button class="sg-icon-button" type="button" ng-click="editor.addAddress()"> <md-button class="md-icon-button" type="button" ng-click="editor.addAddress()">
<md-icon>add_circle</md-icon> <md-icon>add_circle</md-icon>
</md-button> </md-button>
<label class="button-label"> <label class="button-label">
@ -338,7 +333,7 @@
</div> </div>
<!-- note --> <!-- note -->
<md-input-container> <md-input-container class="md-block md-flex">
<label class="right inline"> <label class="right inline">
<var:string label:value="Note"/> <var:string label:value="Note"/>
</label> </label>

View File

@ -23,15 +23,15 @@
<md-dialog-content class="md-padding"> <md-dialog-content class="md-padding">
<div layout="column"> <div layout="column">
<div class="sg-md-title"><var:string label:value="Authenticated User Access"/></div> <div class="sg-md-title"><var:string label:value="Authenticated User Access"/></div>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="CardDAV URL"/></label> <label><var:string label:value="CardDAV URL"/></label>
<input type="text" ng-model="links.addressbook.urls.cardDavURL" ng-readonly="true"/> <input type="text" ng-model="links.addressbook.urls.cardDavURL" ng-readonly="true"/>
</md-input-container> </md-input-container>
</div> </div>
<var:if condition="isPublicAccessEnabled"> <var:if condition="isPublicAccessEnabled">
<div layout="column" layout-padding="layout-padding"> <div layout="column">
<div class="sg-md-title"><var:string label:value="Public Access"/></div> <div class="sg-md-title"><var:string label:value="Public Access"/></div>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="CardDAV URL"/></label> <label><var:string label:value="CardDAV URL"/></label>
<input type="text" ng-model="links.addressbook.urls.publicCardDavURL" ng-readonly="true"/> <input type="text" ng-model="links.addressbook.urls.publicCardDavURL" ng-readonly="true"/>
</md-input-container> </md-input-container>

View File

@ -11,7 +11,7 @@
<md-toolbar> <md-toolbar>
<div class="md-toolbar-tools"> <div class="md-toolbar-tools">
<!-- name --> <!-- name -->
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Name"/></label> <label><var:string label:value="Name"/></label>
<input type="text" <input type="text"
class="md-title" class="md-title"

View File

@ -275,14 +275,15 @@
</div> </div>
<!-- search mode --> <!-- search mode -->
<div class="md-toolbar-tools sg-toolbar-secondary" <div class="md-toolbar-tools sg-toolbar-secondary"
layout="row"
ng-show="addressbook.mode.search" ng-show="addressbook.mode.search"
sg-search="addressbook.selectedFolder.$filter(searchText, { search: searchField })"> sg-search="addressbook.selectedFolder.$filter(searchText, { search: searchField })">
<md-button class="sg-icon-button" <md-button class="md-icon-button"
sg-search-cancel="addressbook.cancelSearch()" sg-search-cancel="addressbook.cancelSearch()"
label:aria-label="Back"> label:aria-label="Back">
<md-icon>arrow_back</md-icon> <md-icon>arrow_back</md-icon>
</md-button> </md-button>
<md-input-container md-no-float="md-no-float"> <md-input-container class="md-flex" md-no-float="md-no-float">
<input name="folderSearch" type="search" label:placeholder="Search"/> <input name="folderSearch" type="search" label:placeholder="Search"/>
</md-input-container> </md-input-container>
<md-input-container flex="25"> <md-input-container flex="25">

View File

@ -16,8 +16,9 @@
</div> </div>
</md-toolbar> </md-toolbar>
<md-dialog-content class="md-dialog-content"> <md-dialog-content class="md-dialog-content">
<md-input-container> <md-input-container class="md-block md-flex">
<label><md-icon>search</md-icon><var:string label:value="Search User"/></label> <md-icon>search</md-icon>
<label><var:string label:value="Search User"/></label>
<input type="input" <input type="input"
autocomplete="off" autocomplete="off"
ng-model="subscribe.searchText" ng-model="subscribe.searchText"

View File

@ -117,6 +117,7 @@
</div> </div>
<!-- search mode --> <!-- search mode -->
<div class="md-toolbar-tools sg-toolbar-secondary" <div class="md-toolbar-tools sg-toolbar-secondary"
layout="row"
ng-show="mailbox.mode.search" ng-show="mailbox.mode.search"
sg-search="mailbox.selectedFolder.$filter({ sort: 'date', asc: false }, [{ searchBy: searchField, searchInput: searchText }])"> sg-search="mailbox.selectedFolder.$filter({ sort: 'date', asc: false }, [{ searchBy: searchField, searchInput: searchText }])">
<md-button class="sg-icon-button" <md-button class="sg-icon-button"
@ -124,7 +125,7 @@
label:aria-label="Back"> label:aria-label="Back">
<md-icon>arrow_back</md-icon> <md-icon>arrow_back</md-icon>
</md-button> </md-button>
<md-input-container md-no-float="md-no-float"> <md-input-container class="md-flex" md-no-float="md-no-float">
<input name="folderSearch" type="search" ng-minlength="3" label:placeholder="Search"/> <input name="folderSearch" type="search" ng-minlength="3" label:placeholder="Search"/>
</md-input-container> </md-input-container>
<md-input-container flex="25"> <md-input-container flex="25">

View File

@ -11,7 +11,7 @@
<md-toolbar> <md-toolbar>
<div class="md-toolbar-tools"> <div class="md-toolbar-tools">
<md-icon class="material-icons sg-icon-toolbar-bg">account_box</md-icon> <md-icon class="material-icons sg-icon-toolbar-bg">account_box</md-icon>
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Account Name"/></label> <label><var:string label:value="Account Name"/></label>
<input type="text" required="required" <input type="text" required="required"
ng-readonly="$AccountDialogController.accountId == 0" ng-readonly="$AccountDialogController.accountId == 0"
@ -26,69 +26,79 @@
<form id="mainForm" name="accountForm" var:href="ownPath"> <form id="mainForm" name="accountForm" var:href="ownPath">
<md-input-container> <div layout="row">
<label><var:string label:value="Server Name"/></label> <md-input-container class="md-block md-flex">
<input type="text" required="required" <label><var:string label:value="Server Name"/></label>
ng-readonly="$AccountDialogController.accountId == 0" <input type="text" required="required"
ng-model="$AccountDialogController.account.serverName"/> ng-disabled="$AccountDialogController.accountId == 0"
ng-model="$AccountDialogController.account.serverName"/>
</md-input-container>
<md-input-container class="md-block" flex="30">
<label><var:string label:value="Port"/></label>
<input type="number" required="required" min="1" max="65535"
ng-disabled="$AccountDialogController.accountId == 0"
ng-model="$AccountDialogController.account.port"/>
</md-input-container>
</div>
<md-input-container class="md-block md-input-has-value">
<label><var:string label:value="Encryption"/></label>
<md-radio-group ng-model="$AccountDialogController.account.encryption">
<md-radio-button ng-disabled="$AccountDialogController.accountId == 0" value="none" class="md-primary"><var:string label:value="None"/></md-radio-button>
<md-radio-button ng-disabled="$AccountDialogController.accountId == 0" value="ssl"><var:string label:value="SSL"/></md-radio-button>
<md-radio-button ng-disabled="$AccountDialogController.accountId == 0" value="tls"><var:string label:value="TLS"/></md-radio-button>
</md-radio-group>
</md-input-container> </md-input-container>
<md-input-container> <div layout="row">
<label><var:string label:value="Port"/></label> <md-input-container class="md-block" flex="50">
<input type="number" required="required" min="1" max="65535" <label><var:string label:value="User Name"/></label>
ng-readonly="$AccountDialogController.accountId == 0" <input type="text" required="required"
ng-model="$AccountDialogController.account.port"/> ng-disabled="$AccountDialogController.accountId == 0"
</md-input-container> ng-model="$AccountDialogController.account.userName"/>
</md-input-container>
<label><var:string label:value="Encryption"/></label> <md-input-container class="md-block" flex="50"
<md-radio-group ng-model="$AccountDialogController.account.encryption"> ng-hide="$AccountDialogController.accountId == 0">
<md-radio-button ng-disabled="$AccountDialogController.accountId == 0" value="none" class="md-primary"><var:string label:value="None"/></md-radio-button> <label><var:string label:value="Password"/></label>
<md-radio-button ng-disabled="$AccountDialogController.accountId == 0" value="ssl"><var:string label:value="SSL"/></md-radio-button> <input type="password"
<md-radio-button ng-disabled="$AccountDialogController.accountId == 0" value="tls"><var:string label:value="TLS"/></md-radio-button> ng-model="$AccountDialogController.account.password"/>
</md-radio-group> </md-input-container>
</div>
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="User Name"/></label>
<input type="text" required="required"
ng-readonly="$AccountDialogController.accountId == 0"
ng-model="$AccountDialogController.account.userName"/>
</md-input-container>
<md-input-container>
<label><var:string label:value="Password"/></label>
<input type="password"
ng-readonly="$AccountDialogController.accountId == 0"
ng-model="$AccountDialogController.account.password"/>
</md-input-container>
<md-input-container>
<label><var:string label:value="Full Name"/></label> <label><var:string label:value="Full Name"/></label>
<input type="text" required="required" <input type="text" required="required"
ng-readonly="$AccountDialogController.customFromIsReadonly()" ng-disabled="$AccountDialogController.customFromIsReadonly()"
ng-model="$AccountDialogController.account.identities[0].fullName"/> ng-model="$AccountDialogController.account.identities[0].fullName"/>
</md-input-container> </md-input-container>
<md-input-container> <div layout="row">
<label><var:string label:value="Email"/></label> <md-input-container class="md-block" flex="50">
<input type="email" required="required" <label><var:string label:value="Email"/></label>
ng-readonly="$AccountDialogController.customFromIsReadonly()" <input type="email" required="required"
ng-model="$AccountDialogController.account.identities[0].email"/> ng-disabled="$AccountDialogController.customFromIsReadonly()"
</md-input-container> ng-model="$AccountDialogController.account.identities[0].email"/>
</md-input-container>
<md-input-container> <md-input-container class="md-block" flex="50"
<label><var:string label:value="Reply To Email"/></label> ng-hide="$AccountDialogController.customFromIsReadonly()">
<input type="email" ng-model="$AccountDialogController.account.identities[0].replyTo"/> <label><var:string label:value="Reply To Email"/></label>
</md-input-container> <input type="email"
ng-model="$AccountDialogController.account.identities[0].replyTo"/>
</md-input-container>
</div>
<!-- To switch between a simple text editor and the CK/HTML editor, we use a ng-if and not <!-- To switch between a simple text editor and the CK/HTML editor, we use a ng-if and not
a ng-class as it doesn't get initialized by the ckEditor class directive --> a ng-class as it doesn't get initialized by the ckEditor class directive -->
<md-input-container ng-if="$AccountDialogController.defaults.SOGoMailComposeMessageType == 'text'"> <md-input-container class="md-block md-flex"
<label><var:string label:value="Signature"/> {{$AccountDialogController.defaults.SOGoMailComposeMessageType}}</label> ng-if="$AccountDialogController.defaults.SOGoMailComposeMessageType == 'text'">
<label><var:string label:value="Signature"/></label>
<textarea ng-model="$AccountDialogController.account.identities[0].signature"><!-- signature --></textarea> <textarea ng-model="$AccountDialogController.account.identities[0].signature"><!-- signature --></textarea>
</md-input-container> </md-input-container>
<div class="pseudo-input-container" <div class="pseudo-input-container"
ng-if="$AccountDialogController.defaults.SOGoMailComposeMessageType == 'html'"> ng-if="$AccountDialogController.defaults.SOGoMailComposeMessageType == 'html'">
<label class="pseudo-input-label"><var:string label:value="Signature"/> {{$AccountDialogController.defaults.LocaleCode}}</label> <label class="pseudo-input-label"><var:string label:value="Signature"/></label>
<textarea class="ck-editor" <textarea class="ck-editor"
ck-locale="$AccountDialogController.defaults.LocaleCode" ck-locale="$AccountDialogController.defaults.LocaleCode"
ck-options="{ 'height': '70px', ck-options="{ 'height': '70px',
@ -98,39 +108,43 @@
ng-model="$AccountDialogController.account.identities[0].signature"><!-- signature --></textarea> ng-model="$AccountDialogController.account.identities[0].signature"><!-- signature --></textarea>
</div> </div>
<md-radio-group ng-model="$AccountDialogController.account.receipts.receiptAction"> <md-input-container class="md-block md-input-has-value">
<label><var:string label:value="When I receive a request for a return receipt"/></label> <label><var:string label:value="When I receive a request for a return receipt"/></label>
<md-radio-button value="ignore"><var:string label:value="Never send a return receipt"/></md-radio-button> <md-radio-group ng-model="$AccountDialogController.account.receipts.receiptAction">
<md-radio-button value="allow"><var:string label:value="Allow return receipts for some messages"/></md-radio-button> <md-radio-button value="ignore"><var:string label:value="Never send a return receipt"/></md-radio-button>
</md-radio-group> <md-radio-button value="allow"><var:string label:value="Allow return receipts for some messages"/></md-radio-button>
</md-radio-group>
</md-input-container>
<label> <div layout="column" flex-offset="5"
<var:string label:value="If I'm not in the To or Cc of the message"/> ng-show="$AccountDialogController.account.receipts.receiptAction == 'allow'">
<md-select ng-model="$AccountDialogController.account.receipts.receiptNonRecipientAction"> <md-input-container class="md-block md-flex">
<md-option const:value="ignore"><var:string label:value="Never send"/></md-option> <label><var:string label:value="If I'm not in the To or Cc of the message"/></label>
<md-option const:value="send"><var:string label:value="Always send"/></md-option> <md-select ng-model="$AccountDialogController.account.receipts.receiptNonRecipientAction">
<md-option const:value="ask"><var:string label:value="Ask me"/></md-option> <md-option const:value="ignore"><var:string label:value="Never send"/></md-option>
</md-select> <md-option const:value="send"><var:string label:value="Always send"/></md-option>
</label> <md-option const:value="ask"><var:string label:value="Ask me"/></md-option>
</md-select>
</md-input-container>
<label> <md-input-container class="md-block md-flex">
<var:string label:value="If the sender is outside my domain"/> <label><var:string label:value="If the sender is outside my domain"/></label>
<md-select ng-model="$AccountDialogController.account.receipts.receiptOutsideDomainAction"> <md-select ng-model="$AccountDialogController.account.receipts.receiptOutsideDomainAction">
<md-option const:value="ignore"><var:string label:value="Never send"/></md-option> <md-option const:value="ignore"><var:string label:value="Never send"/></md-option>
<md-option const:value="send"><var:string label:value="Always send"/></md-option> <md-option const:value="send"><var:string label:value="Always send"/></md-option>
<md-option const:value="ask"><var:string label:value="Ask me"/></md-option> <md-option const:value="ask"><var:string label:value="Ask me"/></md-option>
</md-select> </md-select>
</label> </md-input-container>
<label>
<var:string label:value="In all other cases"/>
<md-select ng-model="$AccountDialogController.account.receipts.receiptAnyAction">
<md-option const:value="ignore"><var:string label:value="Never send"/></md-option>
<md-option const:value="send"><var:string label:value="Always send"/></md-option>
<md-option const:value="ask"><var:string label:value="Ask me"/></md-option>
</md-select>
</label>
<md-input-container class="md-block md-flex">
<label><var:string label:value="In all other cases"/></label>
<md-select ng-model="$AccountDialogController.account.receipts.receiptAnyAction">
<md-option const:value="ignore"><var:string label:value="Never send"/></md-option>
<md-option const:value="send"><var:string label:value="Always send"/></md-option>
<md-option const:value="ask"><var:string label:value="Ask me"/></md-option>
</md-select>
</md-input-container>
</div>
</form> </form>
</md-dialog-content> </md-dialog-content>

View File

@ -12,7 +12,7 @@
<md-toolbar> <md-toolbar>
<div class="md-toolbar-tools"> <div class="md-toolbar-tools">
<md-icon class="material-icons sg-icon-toolbar-bg">filter_list</md-icon> <md-icon class="material-icons sg-icon-toolbar-bg">filter_list</md-icon>
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Filter name"/></label> <label><var:string label:value="Filter name"/></label>
<input class="md-title" type="text" ng-model="filterEditor.filter.name" required="required"/> <input class="md-title" type="text" ng-model="filterEditor.filter.name" required="required"/>
</md-input-container> </md-input-container>
@ -29,7 +29,7 @@
</script> </script>
<div layout="row" layout-align="start center"> <div layout="row" layout-align="start center">
<var:string label:value="For incoming messages that"/> <p><var:string label:value="For incoming messages that"/></p>
<md-input-container class="md-flex"> <md-input-container class="md-flex">
<md-select ng-model="filterEditor.filter.match" required="required"> <md-select ng-model="filterEditor.filter.match" required="required">
<md-option const:value="all"> <md-option const:value="all">
@ -47,51 +47,50 @@
<!-- CONDITIONS --> <!-- CONDITIONS -->
<div layout="column"> <div layout="column">
<div id="filterRules"><!-- empty --> <div id="filterRules"><!-- empty --></div>
<md-list> <div layout="row"
<md-list-item ng-repeat="rule in filterEditor.filter.rules"> ng-repeat="rule in filterEditor.filter.rules">
<md-input-container flex="25">
<md-select ng-model="rule.field">
<md-option ng-value="key" ng-repeat="(key, value) in filterEditor.fieldLabels">{{ value }}</md-option>
</md-select>
</md-input-container>
<md-input-container flex="25" ng-show="rule.field == 'header'"> <md-input-container class="md-block" flex="25">
<input type="text" ng-model="rule.custom_header"/> <md-select ng-model="rule.field">
</md-input-container> <md-option ng-value="key" ng-repeat="(key, value) in filterEditor.fieldLabels">{{ value }}</md-option>
</md-select>
</md-input-container>
<md-input-container flex="25" ng-show="rule.field == 'size'"> <md-input-container class="md-block" flex="25" ng-show="rule.field == 'header'">
<md-select ng-model="rule.operator"> <input type="text" ng-model="rule.custom_header"/>
<md-option ng-value="key" ng-repeat="(key, value) in filterEditor.numberOperatorLabels"> </md-input-container>
{{ value }}
</md-option>
</md-select>
</md-input-container>
<md-input-container flex="25" ng-show="rule.field != 'size'"> <md-input-container class="md-block" flex="25" ng-show="rule.field == 'size'">
<md-select ng-model="rule.operator"> <md-select ng-model="rule.operator">
<md-option ng-value="key" ng-repeat="(key, value) in filterEditor.textOperatorLabels"> <md-option ng-value="key" ng-repeat="(key, value) in filterEditor.numberOperatorLabels">
{{ value }} {{ value }}
</md-option> </md-option>
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container class="md-flex" md-no-float="md-no-float"> <md-input-container class="md-block" flex="25" ng-show="rule.field != 'size'">
<input type="text" label:placeholder="Value" ng-model="rule.value"/> <md-select ng-model="rule.operator">
</md-input-container> <md-option ng-value="key" ng-repeat="(key, value) in filterEditor.textOperatorLabels">
{{ value }}
</md-option>
</md-select>
</md-input-container>
<md-button class="sg-icon-button" type="button" <md-input-container class="md-block md-flex" md-no-float="md-no-float">
ng-click="filterEditor.removeMailFilterRule($index)"> <label><var:string label:value="Value"/></label>
<md-icon>remove_circle</md-icon> <input type="text" ng-model="rule.value"/>
</md-button> </md-input-container>
</md-list-item> <md-button class="md-icon-button" type="button"
</md-list> ng-click="filterEditor.removeMailFilterRule($index)">
</div> <md-icon>remove_circle</md-icon>
</md-button>
</div>
<div layout="row" layout-align="end center"> <div layout="row" layout-align="end center">
<label class="button-label"><var:string label:value="Add a condition"/></label> <label class="button-label"><var:string label:value="Add a condition"/></label>
<md-button class="sg-icon-button" type="button" <md-button class="md-icon-button" type="button"
ng-click="filterEditor.addMailFilterRule($event)"> ng-click="filterEditor.addMailFilterRule($event)">
<md-icon>add_circle</md-icon> <md-icon>add_circle</md-icon>
</md-button> </md-button>
@ -100,72 +99,74 @@
<!-- ACTIONS --> <!-- ACTIONS -->
<div layout="column"> <div layout="column">
<var:string label:value="Perform these actions"/> <p><var:string label:value="Perform these actions"/></p>
<div id="filterActions"><!-- empty --></div> <div id="filterActions"><!-- empty --></div>
<div layout="row"
ng-repeat="action in filterEditor.filter.actions">
<md-list> <md-input-container class="md-block md-flex">
<md-list-item layout="row" layout-align="space-between center" <md-select ng-model="action.method">
ng-repeat="action in filterEditor.filter.actions"> <md-option ng-value="key" ng-repeat="(key, value) in filterEditor.methodLabels">{{ value }}</md-option>
<md-input-container> </md-select>
<md-select ng-model="action.method"> </md-input-container>
<md-option ng-value="key" ng-repeat="(key, value) in filterEditor.methodLabels">{{ value }}</md-option>
</md-select>
</md-input-container>
<!-- FORWARD MESSAGE TO --> <!-- FORWARD MESSAGE TO -->
<md-input-container ng-show="action.method == 'redirect'" > <md-input-container class="md-block" flex="50" ng-show="action.method == 'redirect'" >
<input type="text" ng-model="action.argument"/> <label><var:string label:value="Email"/></label>
</md-input-container> <input type="text" ng-model="action.argument"/>
</md-input-container>
<!-- DISCARD --> <!-- DISCARD -->
<!-- nada --> <!-- nada -->
<!-- KEEP --> <!-- KEEP -->
<!-- nada --> <!-- nada -->
<!-- SEND REJECT MESSAGE --> <!-- SEND REJECT MESSAGE -->
<md-input-container ng-show="action.method == 'reject'"> <md-input-container class="md-block" flex="50" ng-show="action.method == 'reject'">
<input type="text" ng-model="action.argument"/> <label><var:string label:value="Message"/></label>
</md-input-container> <input type="text" ng-model="action.argument"/>
</md-input-container>
<!-- FILE INTO --> <!-- FILE INTO -->
<md-input-container ng-show="action.method == 'fileinto'" > <md-input-container class="md-block" flex="50" ng-show="action.method == 'fileinto'" >
<md-select ng-model="action.argument"> <label><var:string label:value="Mailbox"/></label>
<md-option ng-value="item.path" ng-repeat="item in filterEditor.mailboxes"> <md-select ng-model="action.argument">
<div ng-class="'sg-child-level-' + item.level"> <md-option ng-value="item.path" ng-repeat="item in filterEditor.mailboxes">
{{ item.name }} <div ng-class="'sg-child-level-' + item.level">
</div> {{ item.name }}
</md-option> </div>
</md-select> </md-option>
</md-input-container> </md-select>
</md-input-container>
<!-- FLAG WITH --> <!-- FLAG WITH -->
<md-input-container ng-show="action.method == 'addflag'" > <md-input-container class="md-block" flex="50" ng-show="action.method == 'addflag'" >
<md-select ng-model="action.argument" > <label><var:string label:value="Flag"/></label>
<md-option value="seen"><var:string label:value="Seen"/></md-option> <md-select ng-model="action.argument" >
<md-option value="deleted"><var:string label:value="Deleted"/></md-option> <md-option value="seen"><var:string label:value="Seen"/></md-option>
<md-option value="answered"><var:string label:value="Answered"/></md-option> <md-option value="deleted"><var:string label:value="Deleted"/></md-option>
<md-option value="flagged"><var:string label:value="Flagged"/></md-option> <md-option value="answered"><var:string label:value="Answered"/></md-option>
<md-option value="junk"><var:string label:value="Junk"/></md-option> <md-option value="flagged"><var:string label:value="Flagged"/></md-option>
<md-option value="not_junk"><var:string label:value="Not Junk"/></md-option> <md-option value="junk"><var:string label:value="Junk"/></md-option>
<md-option ng-value="key" ng-repeat="(key, value) in labels">{{ value[0] }}</md-option> <md-option value="not_junk"><var:string label:value="Not Junk"/></md-option>
</md-select> <md-option ng-value="key" ng-repeat="(key, value) in labels">{{ value[0] }}</md-option>
</md-input-container> </md-select>
</md-input-container>
<!-- STOP --> <!-- STOP -->
<!-- nada --> <!-- nada -->
<md-button class="sg-icon-button" type="button" <md-button class="md-icon-button" type="button"
ng-click="filterEditor.removeMailFilterAction($index)"> ng-click="filterEditor.removeMailFilterAction($index)">
<md-icon>remove_circle</md-icon> <md-icon>remove_circle</md-icon>
</md-button> </md-button>
</md-list-item> </div>
</md-list>
<div layout="row" layout-align="end center"> <div layout="row" layout-align="end center">
<label class="button-label"><var:string label:value="Add an action"/></label> <label class="button-label"><var:string label:value="Add an action"/></label>
<md-button class="sg-icon-button" type="button" <md-button class="md-icon-button" type="button"
ng-click="filterEditor.addMailFilterAction($event)"> ng-click="filterEditor.addMailFilterAction($event)">
<md-icon>add_circle</md-icon> <md-icon>add_circle</md-icon>
</md-button> </md-button>

View File

@ -97,71 +97,62 @@
</md-input-container> </md-input-container>
<div layout="row"> <div layout="row">
<div flex="50"> <md-input-container class="md-block" flex="50">
<md-input-container> <label><var:string label:value="Language"/></label>
<label><var:string label:value="Language"/></label> <md-select ng-model="app.preferences.defaults.SOGoLanguage"
<md-select ng-model="app.preferences.defaults.SOGoLanguage" ng-change="app.onLanguageChange()">
ng-change="app.onLanguageChange()"> <var:foreach list="languages" item="item">
<var:foreach list="languages" item="item"> <md-option var:value="item">
<md-option var:value="item"> <var:string value="languageText"/>
<var:string value="languageText"/> </md-option>
</md-option> </var:foreach>
</var:foreach> </md-select>
</md-select> </md-input-container>
</md-input-container> <md-autocomplete
</div> class="md-block" flex="50"
<div flex="50"> style="padding-bottom: 0"
<md-autocomplete md-search-text="app.timeZonesSearchText"
style="padding-bottom: 0" md-selected-item="app.preferences.defaults.SOGoTimeZone"
md-search-text="app.timeZonesSearchText" md-items="timezone in app.timeZonesListFilter(app.timeZonesSearchText)"
md-selected-item="app.preferences.defaults.SOGoTimeZone" md-item-text="timezone"
md-items="timezone in app.timeZonesListFilter(app.timeZonesSearchText)" md-min-length="3"
md-item-text="timezone" md-select-on-match="true"
md-min-length="3" label:md-floating-label="Current Time Zone">
md-select-on-match="true" <span md-highlight-text="app.timeZonesSearchText">{{timezone}}</span>
label:md-floating-label="Current Time Zone"> </md-autocomplete>
<span md-highlight-text="app.timeZonesSearchText">{{timezone}}</span>
</md-autocomplete>
</div>
</div> </div>
<div layout="row"> <div layout="row">
<div flex="30"> <md-input-container class="md-block" flex="30">
<md-input-container> <label><var:string label:value="Short Date Format"/></label>
<label><var:string label:value="Short Date Format"/></label> <md-select ng-model="app.preferences.defaults.SOGoShortDateFormat">
<md-select ng-model="app.preferences.defaults.SOGoShortDateFormat"> <var:foreach list="shortDateFormatsList" item="item">
<var:foreach list="shortDateFormatsList" item="item"> <md-option var:value="item">
<md-option var:value="item"> <var:string value="itemShortDateFormatText"/>
<var:string value="itemShortDateFormatText"/> </md-option>
</md-option> </var:foreach>
</var:foreach> </md-select>
</md-select> </md-input-container>
</md-input-container> <md-input-container class="md-block" flex="40">
</div> <label><var:string label:value="Long Date Format"/></label>
<div flex="40"> <md-select ng-model="app.preferences.defaults.SOGoLongDateFormat">
<md-input-container> <var:foreach list="longDateFormatsList" item="item">
<label><var:string label:value="Long Date Format"/></label> <md-option var:value="item">
<md-select ng-model="app.preferences.defaults.SOGoLongDateFormat"> <var:string value="itemLongDateFormatText"/>
<var:foreach list="longDateFormatsList" item="item"> </md-option>
<md-option var:value="item"> </var:foreach>
<var:string value="itemLongDateFormatText"/> </md-select>
</md-option> </md-input-container>
</var:foreach> <md-input-container class="md-block" flex="30">
</md-select> <label><var:string label:value="Time Format"/></label>
</md-input-container> <md-select ng-model="app.preferences.defaults.SOGoTimeFormat">
</div> <var:foreach list="timeFormatsList" item="item">
<div flex="30"> <md-option var:value="item">
<md-input-container> <var:string value="itemTimeFormatText"/>
<label><var:string label:value="Time Format"/></label> </md-option>
<md-select ng-model="app.preferences.defaults.SOGoTimeFormat"> </var:foreach>
<var:foreach list="timeFormatsList" item="item"> </md-select>
<md-option var:value="item"> </md-input-container>
<var:string value="itemTimeFormatText"/>
</md-option>
</var:foreach>
</md-select>
</md-input-container>
</div>
</div> </div>
<md-input-container> <md-input-container>
@ -207,13 +198,13 @@
label:label="Password"> label:label="Password">
<md-content id="passwordView" class="md-padding"> <md-content id="passwordView" class="md-padding">
<div layout="row"> <div layout="row">
<md-input-container> <md-input-container class="md-block" flex="50">
<label><var:string label:value="New password"/> <label><var:string label:value="New password"/>
</label> </label>
<input type="password" ng-model="app.passwords.newPassword"/> <input type="password" ng-model="app.passwords.newPassword"/>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block" flex="50">
<label><var:string label:value="Confirmation"/> <label><var:string label:value="Confirmation"/>
</label> </label>
<input type="password" ng-model="app.passwords.newPasswordConfirmation"/> <input type="password" ng-model="app.passwords.newPasswordConfirmation"/>
@ -248,7 +239,7 @@
id="calendarOptionsView-content"> id="calendarOptionsView-content">
<div layout="column" flex="100"> <div layout="column" flex="100">
<div layout="row"> <div layout="row">
<md-input-container> <md-input-container class="md-block" flex="33">
<label><var:string label:value="Week begins on" /></label> <label><var:string label:value="Week begins on" /></label>
<md-select ng-model="app.preferences.defaults.SOGoFirstDayOfWeek"> <md-select ng-model="app.preferences.defaults.SOGoFirstDayOfWeek">
<var:foreach list="daysList" item="item"> <var:foreach list="daysList" item="item">
@ -259,7 +250,7 @@
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block" flex="33">
<label><var:string label:value="Day start time" /></label> <label><var:string label:value="Day start time" /></label>
<md-select ng-model="app.preferences.defaults.SOGoDayStartTime"> <md-select ng-model="app.preferences.defaults.SOGoDayStartTime">
<var:foreach list="hoursList" item="item"> <var:foreach list="hoursList" item="item">
@ -270,7 +261,7 @@
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block" flex="33">
<label><var:string label:value="Day end time" /></label> <label><var:string label:value="Day end time" /></label>
<md-select ng-model="app.preferences.defaults.SOGoDayEndTime"> <md-select ng-model="app.preferences.defaults.SOGoDayEndTime">
<var:foreach list="hoursList" item="item"> <var:foreach list="hoursList" item="item">
@ -313,7 +304,7 @@
</md-input-container> </md-input-container>
<div layout="row"> <div layout="row">
<md-input-container> <md-input-container class="md-block" flex="50">
<label><var:string label:value="Default events classification" /></label> <label><var:string label:value="Default events classification" /></label>
<md-select ng-model="app.preferences.defaults.SOGoCalendarEventsDefaultClassification"> <md-select ng-model="app.preferences.defaults.SOGoCalendarEventsDefaultClassification">
<var:foreach list="calendarClassificationsList" item="item"> <var:foreach list="calendarClassificationsList" item="item">
@ -324,7 +315,7 @@
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block" flex="50">
<label><var:string label:value="Default tasks classification"/></label> <label><var:string label:value="Default tasks classification"/></label>
<md-select ng-model="app.preferences.defaults.SOGoCalendarTasksDefaultClassification"> <md-select ng-model="app.preferences.defaults.SOGoCalendarTasksDefaultClassification">
<var:foreach list="calendarClassificationsList" item="item"> <var:foreach list="calendarClassificationsList" item="item">
@ -362,7 +353,7 @@
app.preferences.defaults.SOGoCalendarCategories app.preferences.defaults.SOGoCalendarCategories
track by $index"> track by $index">
<sg-color-picker ng-model="app.preferences.defaults.SOGoCalendarCategoriesColors[item]"><!-- color picker--></sg-color-picker> <sg-color-picker ng-model="app.preferences.defaults.SOGoCalendarCategoriesColors[item]"><!-- color picker--></sg-color-picker>
<md-input-container> <md-input-container class="md-block md-flex">
<input type="text" label:aria-label="Calendar Category" <input type="text" label:aria-label="Calendar Category"
ng-model="app.preferences.defaults.SOGoCalendarCategories[$index]" ng-model="app.preferences.defaults.SOGoCalendarCategories[$index]"
sg-focus-on="calendarCategory_{{$index}}"/> sg-focus-on="calendarCategory_{{$index}}"/>
@ -445,7 +436,7 @@
ng-repeat="item in ng-repeat="item in
app.preferences.defaults.SOGoContactsCategories app.preferences.defaults.SOGoContactsCategories
track by $index"> track by $index">
<md-input-container> <md-input-container class="md-block md-flex">
<input type="text" <input type="text"
label:aria-label="Contact Category" label:aria-label="Contact Category"
ng-model="app.preferences.defaults.SOGoContactsCategories[$index]" ng-model="app.preferences.defaults.SOGoContactsCategories[$index]"
@ -508,7 +499,7 @@
</md-checkbox> </md-checkbox>
</div> </div>
<div layout="row" layout-align="space-around end"> <div>
<md-checkbox <md-checkbox
class="md-align-top-left" ng-model="app.preferences.defaults.SOGoMailAddOutgoingAddresses" class="md-align-top-left" ng-model="app.preferences.defaults.SOGoMailAddOutgoingAddresses"
ng-true-value="1" ng-true-value="1"
@ -531,7 +522,7 @@
</md-input-container> </md-input-container>
</div> </div>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="Forward messages"/></label> <label><var:string label:value="Forward messages"/></label>
<md-select ng-model="app.preferences.defaults.SOGoMailMessageForwarding"> <md-select ng-model="app.preferences.defaults.SOGoMailMessageForwarding">
<var:foreach list="messageForwardingList" item="item"> <var:foreach list="messageForwardingList" item="item">
@ -542,8 +533,8 @@
</md-select> </md-select>
</md-input-container> </md-input-container>
<div layout="row"> <div layout="row" layout-wrap="layout-wrap">
<md-input-container> <md-input-container class="md-block" flex="50" flex-xs="100">
<label><var:string label:value="When replying to a message"/></label> <label><var:string label:value="When replying to a message"/></label>
<md-select ng-model="app.preferences.defaults.SOGoMailReplyPlacement"> <md-select ng-model="app.preferences.defaults.SOGoMailReplyPlacement">
<var:foreach list="replyPlacementList" item="item"> <var:foreach list="replyPlacementList" item="item">
@ -554,7 +545,7 @@
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block" flex="50" flex-xs="100">
<label><var:string label:value="And place my signature"/></label> <label><var:string label:value="And place my signature"/></label>
<md-select ng-model="app.preferences.defaults.SOGoMailSignaturePlacement"> <md-select ng-model="app.preferences.defaults.SOGoMailSignaturePlacement">
<var:foreach list="signaturePlacementList" item="item"> <var:foreach list="signaturePlacementList" item="item">
@ -566,7 +557,7 @@
</md-input-container> </md-input-container>
</div> </div>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="Compose messages in"/></label> <label><var:string label:value="Compose messages in"/></label>
<md-select ng-model="app.preferences.defaults.SOGoMailComposeMessageType"> <md-select ng-model="app.preferences.defaults.SOGoMailComposeMessageType">
<var:foreach list="composeMessagesType" item="item"> <var:foreach list="composeMessagesType" item="item">
@ -577,7 +568,7 @@
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="Display remote inline images"/></label> <label><var:string label:value="Display remote inline images"/></label>
<md-select ng-model="app.preferences.defaults.SOGoMailDisplayRemoteInlineImages"> <md-select ng-model="app.preferences.defaults.SOGoMailDisplayRemoteInlineImages">
<var:foreach list="displayRemoteInlineImages" item="item"> <var:foreach list="displayRemoteInlineImages" item="item">
@ -589,8 +580,8 @@
</md-input-container> </md-input-container>
<div layout="row" layout-align="start center"> <div layout="row" layout-align="start center">
<var:string label:value="Auto save every"/> <p><var:string label:value="Auto save every"/></p>
<md-input-container class="md-input-number"> <md-input-container class="md-input-number" md-no-float="md-no-float">
<input type="number" min="0" label:aria-label="minutes" ng-model="preferences.defaults.SOGoMailAutoSave"/> <input type="number" min="0" label:aria-label="minutes" ng-model="preferences.defaults.SOGoMailAutoSave"/>
</md-input-container> </md-input-container>
<var:string label:value="minutes"/> <var:string label:value="minutes"/>
@ -619,7 +610,7 @@
ng-false-value="0"> ng-false-value="0">
<!-- active or not--> <!-- active or not-->
</md-checkbox> </md-checkbox>
<md-input-container> <md-input-container class="md-flex">
<input type="text" ng-model="app.preferences.defaults.SOGoSieveFilters[$index].name"/> <input type="text" ng-model="app.preferences.defaults.SOGoSieveFilters[$index].name"/>
</md-input-container> </md-input-container>
<md-button class="sg-icon-button" type="button" <md-button class="sg-icon-button" type="button"
@ -656,17 +647,17 @@
<md-content role="tabpanel" aria-labelledby="mailLabelsView" <md-content role="tabpanel" aria-labelledby="mailLabelsView"
id="mailLabelsView-content" class="md-padding"> id="mailLabelsView-content" class="md-padding">
<md-list layout="row" layout-wrap="layout-wrap"> <md-list layout="row" layout-xs="column" layout-wrap="layout-wrap">
<md-list-item flex="50" <md-list-item flex="50" flex-xs="100"
ng-repeat="(key, value) in ng-repeat="(key, value) in
app.preferences.defaults.SOGoMailLabelsColors"> app.preferences.defaults.SOGoMailLabelsColors">
<sg-color-picker ng-model="value[1]"><!-- color picker--></sg-color-picker> <sg-color-picker ng-model="value[1]"><!-- color picker--></sg-color-picker>
<md-input-container> <md-input-container class="md-block md-flex">
<input type="text" <input type="text"
label:aria-label="Label" label:aria-label="Label"
ng-model="value[0]"/> ng-model="value[0]"/>
</md-input-container> </md-input-container>
<md-button class="sg-icon-button" type="button" <md-button class="md-icon-button" type="button"
layout="row" layout-align="end center" layout="row" layout-align="end center"
label:aria-label="Delete Label" label:aria-label="Delete Label"
ng-click="app.removeMailLabel(key)"> ng-click="app.removeMailLabel(key)">
@ -695,7 +686,7 @@
<md-list-item ng-repeat="item in <md-list-item ng-repeat="item in
app.preferences.defaults.AuxiliaryMailAccounts app.preferences.defaults.AuxiliaryMailAccounts
track by $index"> track by $index">
<md-input-container> <md-input-container class="md-block md-flex">
<input type="text" <input type="text"
label:aria-label="Mail Account" label:aria-label="Mail Account"
ng-model="app.preferences.defaults.AuxiliaryMailAccounts[$index].name" ng-model="app.preferences.defaults.AuxiliaryMailAccounts[$index].name"
@ -747,28 +738,28 @@
<var:string label:value="Enable vacation auto reply"/> <var:string label:value="Enable vacation auto reply"/>
</md-checkbox> </md-checkbox>
<div flex-offset="5" ng-show="app.preferences.defaults.Vacation.enabled == 1"> <div layout="column" flex-offset="5" ng-show="app.preferences.defaults.Vacation.enabled == 1">
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Auto reply message"/></label> <label><var:string label:value="Auto reply message"/></label>
<textarea const:name="autoReplyText" <textarea const:name="autoReplyText"
const:id="autoReplyText" const:id="autoReplyText"
ng-model="app.preferences.defaults.Vacation.autoReplyText"/> ng-model="app.preferences.defaults.Vacation.autoReplyText"/>
</md-input-container> </md-input-container>
<md-input-container> <div layout="row" layout-align="start center">
<label><var:string label:value="Email addresses (separated by commas)"/></label> <md-input-container class="md-block md-flex">
<textarea const:name="autoReplyEmailAddresses" <label><var:string label:value="Email addresses (separated by commas)"/></label>
required="required" <textarea const:name="autoReplyEmailAddresses"
const:id="autoReplyEmailAddresses" required="required"
ng-model="app.preferences.defaults.Vacation.autoReplyEmailAddresses"/> const:id="autoReplyEmailAddresses"
</md-input-container> ng-model="app.preferences.defaults.Vacation.autoReplyEmailAddresses"/>
<div layout="row" layout-align="end center"> </md-input-container>
<md-button ng-click="app.addDefaultEmailAddresses()"> <md-button ng-click="app.addDefaultEmailAddresses()">
<var:string label:value="Add default email addresses" type="button"/> <var:string label:value="Add default email addresses" type="button"/>
</md-button> </md-button>
</div> </div>
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Days between responses"/></label> <label><var:string label:value="Days between responses"/></label>
<md-select label:aria-label="Days between responses" <md-select label:aria-label="Days between responses"
ng-model="app.preferences.defaults.Vacation.daysBetweenResponse"> ng-model="app.preferences.defaults.Vacation.daysBetweenResponse">
@ -789,7 +780,7 @@
</md-checkbox> </md-checkbox>
</div> </div>
<div layout="row" layout-align="start center"> <div layout="row">
<md-checkbox <md-checkbox
ng-model="app.preferences.defaults.Vacation.endDateEnabled" ng-model="app.preferences.defaults.Vacation.endDateEnabled"
ng-true-value="1" ng-true-value="1"
@ -830,7 +821,7 @@
</md-checkbox> </md-checkbox>
<div flex-offset="5" ng-show="app.preferences.defaults.Forward.enabled == 1"> <div flex-offset="5" ng-show="app.preferences.defaults.Forward.enabled == 1">
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Email addresses (separated by commas)"/></label> <label><var:string label:value="Email addresses (separated by commas)"/></label>
<textarea const:name="forwardAddress" <textarea const:name="forwardAddress"
const:id="forwardAddress" const:id="forwardAddress"

View File

@ -24,19 +24,21 @@
</div> </div>
</md-toolbar> </md-toolbar>
<md-dialog-content class="md-dialog-content"> <md-dialog-content class="md-dialog-content">
<!-- location --> <div layout="row" layout-wrap="layout-wrap">
<md-input-container> <!-- location -->
<label><var:string label:value="Location"/></label> <md-input-container flex="50" flex-xs="100">
<input type="text" ng-model="editor.component.location"/> <label><var:string label:value="Location"/></label>
</md-input-container> <input type="text" ng-model="editor.component.location"/>
<!-- calendar --> </md-input-container>
<md-input-container> <!-- calendar -->
<label><var:string label:value="Calendar"/></label> <md-input-container flex="50" flex-xs="100">
<md-select ng-model="editor.component.destinationCalendar"> <label><var:string label:value="Calendar"/></label>
<md-option ng-repeat="calendar in editor.service.$findAll(null, true)" <md-select ng-model="editor.component.destinationCalendar">
ng-value="calendar.id">{{calendar.name}}</md-option> <md-option ng-repeat="calendar in editor.service.$findAll(null, true)"
</md-select> ng-value="calendar.id">{{calendar.name}}</md-option>
</md-input-container> </md-select>
</md-input-container>
</div>
<!-- categories --> <!-- categories -->
<md-chips ng-model="editor.component.categories"> <md-chips ng-model="editor.component.categories">
<md-autocomplete <md-autocomplete
@ -73,6 +75,7 @@
label:aria-label="Priority"><!-- slider --></md-slider> label:aria-label="Priority"><!-- slider --></md-slider>
</div> </div>
<!-- is all day --> <!-- is all day -->
<div layout="row">
<md-checkbox <md-checkbox
ng-model="editor.component.isAllDay" ng-model="editor.component.isAllDay"
ng-true-value="1" ng-true-value="1"
@ -80,7 +83,9 @@
label:aria-label="All day Event"> label:aria-label="All day Event">
<var:string label:value="All day Event"/> <var:string label:value="All day Event"/>
</md-checkbox> </md-checkbox>
</div>
<!-- is transparent --> <!-- is transparent -->
<div layout="row">
<md-checkbox <md-checkbox
ng-model="editor.component.isTransparent" ng-model="editor.component.isTransparent"
ng-true-value="1" ng-true-value="1"
@ -88,7 +93,9 @@
label:aria-label="Show Time as Free"> label:aria-label="Show Time as Free">
<var:string label:value="Show Time as Free"/> <var:string label:value="Show Time as Free"/>
</md-checkbox> </md-checkbox>
</div>
<!-- send appointment notifications --> <!-- send appointment notifications -->
<div layout="row">
<md-checkbox <md-checkbox
ng-model="editor.component.sendAppointmentNotifications" ng-model="editor.component.sendAppointmentNotifications"
ng-true-value="1" ng-true-value="1"
@ -96,6 +103,7 @@
label:aria-label="Send Appointment Notifications"> label:aria-label="Send Appointment Notifications">
<var:string label:value="Send Appointment Notifications"/> <var:string label:value="Send Appointment Notifications"/>
</md-checkbox> </md-checkbox>
</div>
<!-- start + end --> <!-- start + end -->
<div layout="row"> <div layout="row">
<div flex="50"> <div flex="50">
@ -127,8 +135,8 @@
</div> </div>
<!-- attach urls --> <!-- attach urls -->
<div class="attr" ng-repeat="attach in editor.component.attachUrls"> <div class="attr" ng-repeat="attach in editor.component.attachUrls">
<div layout="row" layout-align="center end"> <div layout="row">
<md-input-container> <md-input-container class="md-block md-flex">
<label> <label>
<var:string label:value="URL"/> <var:string label:value="URL"/>
</label> </label>
@ -149,14 +157,14 @@
</label> </label>
</div> </div>
<!-- comment --> <!-- comment -->
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Description"/></label> <label><var:string label:value="Description"/></label>
<textarea ng-model="editor.component.comment"><!-- comment --></textarea> <textarea ng-model="editor.component.comment"><!-- comment --></textarea>
</md-input-container> </md-input-container>
<!-- repeat --> <!-- repeat -->
<div layout="row" layout-align="start end"> <div layout="row" layout-align="start end">
<div class="md-flex"> <div class="md-flex">
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Repeat"/></label> <label><var:string label:value="Repeat"/></label>
<md-select ng-model="editor.component.repeat.frequency" ng-disabled="editor.component.occurrenceId"> <md-select ng-model="editor.component.repeat.frequency" ng-disabled="editor.component.occurrenceId">
<var:foreach list="repeatList" item="item"> <var:foreach list="repeatList" item="item">
@ -177,28 +185,25 @@
<var:component className="UIxRecurrenceEditor" /> <var:component className="UIxRecurrenceEditor" />
</div> </div>
<!-- end repeat --> <!-- end repeat -->
<div layout="row" layout-align="start end"> <div layout="row">
<div flex="50" flex-xs="100" <md-input-container class="md-block" flex="50" flex-xs="100"
ng-show="editor.component.repeat.frequency != 'never'"> ng-show="editor.component.repeat.frequency != 'never'">
<md-input-container> <label><var:string label:value="End Repeat"/></label>
<label><var:string label:value="End Repeat"/></label> <md-select ng-model="editor.component.repeat.end"
<md-select ng-model="editor.component.repeat.end" ng-disabled="editor.component.occurrenceId">
ng-disabled="editor.component.occurrenceId"> <md-option value="never"><var:string label:value="Never"/></md-option>
<md-option value="never"><var:string label:value="Never"/></md-option> <md-option value="count"><var:string label:value="After"/></md-option>
<md-option value="count"><var:string label:value="After"/></md-option> <md-option value="until"><var:string label:value="On Date"/></md-option>
<md-option value="until"><var:string label:value="On Date"/></md-option> </md-select>
</md-select>
</md-input-container>
</div>
<div layout="row" layout-align="start center" ng-show="editor.component.repeat.end == 'count'">
<md-input-container class="md-input-number">
<input type="number" label:aria-label="times" ng-model="editor.component.repeat.count"/>
</md-input-container>
<var:string label:value="times"/>
</div>
<md-input-container ng-show="editor.component.repeat.end == 'until'">
<input type="date" label:aria-label="Repeat until" ng-model="editor.component.repeat.until"/>
</md-input-container> </md-input-container>
<md-input-container class="md-block md-input-number"
ng-show="editor.component.repeat.end == 'count'">
<label><var:string label:value="times"/></label>
<input type="number" label:aria-label="times" ng-model="editor.component.repeat.count"/>
</md-input-container>
<md-datepicker ng-show="editor.component.repeat.end == 'until'"
ng-model="editor.component.repeat.until"
label:md-placeholder="On Date"><!-- date picker --></md-datepicker>
</div> </div>
<!-- attendees --> <!-- attendees -->
<div layout="row" layout-align="start start"> <div layout="row" layout-align="start start">
@ -255,7 +260,7 @@
label:aria-label="Reminder"> label:aria-label="Reminder">
<var:string label:value="Reminder"/> <var:string label:value="Reminder"/>
</md-checkbox> </md-checkbox>
<div class="sg-subcontent" <div flex-offset="5"
ng-show="editor.component.$hasAlarm"> ng-show="editor.component.$hasAlarm">
<var:component className="UIxReminderEditor" /> <var:component className="UIxReminderEditor" />
</div> </div>

View File

@ -539,15 +539,16 @@
</div> </div>
<!-- search mode --> <!-- search mode -->
<div class="md-toolbar-tools sg-toolbar-secondary" <div class="md-toolbar-tools sg-toolbar-secondary"
layout="row"
ng-show="list.mode.search" ng-show="list.mode.search"
sg-search="list.component.$filter(list.componentType, { value: searchText, search: searchField })"> sg-search="list.component.$filter(list.componentType, { value: searchText, search: searchField })">
<md-button class="sg-icon-button" <md-button class="md-icon-button"
sg-search-cancel="list.cancelSearch()" sg-search-cancel="list.cancelSearch()"
label:aria-label="Back"> label:aria-label="Back">
<md-icon>arrow_back</md-icon> <md-icon>arrow_back</md-icon>
</md-button> </md-button>
<md-input-container> <md-input-container class="md-flex" md-no-float="md-no-float">
<input name="folderSearch" type="search" /> <input name="folderSearch" type="search" label:placeholder="Search"/>
</md-input-container> </md-input-container>
<md-input-container flex="25"> <md-input-container flex="25">
<md-select> <md-select>

View File

@ -9,9 +9,9 @@
xmlns:uix="OGo:uix"> xmlns:uix="OGo:uix">
<div layout="column"> <div layout="column">
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="label_Public"/></label> <label><var:string label:value="label_Public"/></label>
<md-select flex="50" label:aria-label="Public" <md-select label:aria-label="Public"
ng-model="acl.selectedUser.rights.Public" ng-model="acl.selectedUser.rights.Public"
ng-change="acl.confirmChange(acl.selectedUser)"> ng-change="acl.confirmChange(acl.selectedUser)">
<var:foreach list="objectRights" item="currentRight"> <var:foreach list="objectRights" item="currentRight">
@ -22,9 +22,9 @@
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="label_Confidential"/></label> <label><var:string label:value="label_Confidential"/></label>
<md-select flex="50" label:aria-label="Confidential" <md-select label:aria-label="Confidential"
ng-model="acl.selectedUser.rights.Confidential" ng-model="acl.selectedUser.rights.Confidential"
ng-change="acl.confirmChange(acl.selectedUser)"> ng-change="acl.confirmChange(acl.selectedUser)">
<var:foreach list="objectRights" item="currentRight"> <var:foreach list="objectRights" item="currentRight">
@ -35,9 +35,9 @@
</md-select> </md-select>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="label_Private"/></label> <label><var:string label:value="label_Private"/></label>
<md-select flex="50" label:aria-label="Private" <md-select label:aria-label="Private"
ng-model="acl.selectedUser.rights.Private" ng-model="acl.selectedUser.rights.Private"
ng-change="acl.confirmChange(acl.selectedUser)"> ng-change="acl.confirmChange(acl.selectedUser)">
<var:foreach list="objectRights" item="currentRight"> <var:foreach list="objectRights" item="currentRight">

View File

@ -24,46 +24,44 @@
<md-dialog-content class="md-padding"> <md-dialog-content class="md-padding">
<div layout="column"> <div layout="column">
<div layout="column" layout-padding="layout-padding"> <md-input-container class="md-block" ng-show="links.calendar.isWebCalendar">
<md-input-container ng-show="links.calendar.isWebCalendar"> <label><var:string label:value="URL"/></label>
<label><var:string label:value="URL"/></label> <input type="text" ng-model="links.calendar.urls.webCalendarURL" ng-readonly="true"/>
<input type="text" ng-model="links.calendar.urls.webCalendarURL" ng-readonly="true"/> </md-input-container>
</md-input-container>
<div ng-hide="links.calendar.isWebCalendar"> <div layout="column" ng-hide="links.calendar.isWebCalendar">
<div class="sg-md-title"><var:string label:value="Authenticated User Access"/></div> <div class="sg-md-title"><var:string label:value="Authenticated User Access"/></div>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="CalDAV URL"/></label> <label><var:string label:value="CalDAV URL"/></label>
<input type="text" ng-model="links.calendar.urls.calDavURL" ng-readonly="true"/> <input type="text" ng-model="links.calendar.urls.calDavURL" ng-readonly="true"/>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="WebDAV ICS URL"/></label> <label><var:string label:value="WebDAV ICS URL"/></label>
<input type="text" ng-model="links.calendar.urls.webDavICSURL" ng-readonly="true"/> <input type="text" ng-model="links.calendar.urls.webDavICSURL" ng-readonly="true"/>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="WebDAV XML URL"/></label> <label><var:string label:value="WebDAV XML URL"/></label>
<input type="text" ng-model="links.calendar.urls.webDavXMLURL" ng-readonly="true"/> <input type="text" ng-model="links.calendar.urls.webDavXMLURL" ng-readonly="true"/>
</md-input-container> </md-input-container>
</div>
</div> </div>
<var:if condition="isPublicAccessEnabled"> <var:if condition="isPublicAccessEnabled">
<div layout="column" layout-padding="layout-padding" ng-hide="links.calendar.isWebCalendar"> <div layout="column" ng-hide="links.calendar.isWebCalendar">
<div class="sg-md-title"><var:string label:value="Public Access"/></div> <div class="sg-md-title"><var:string label:value="Public Access"/></div>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="CalDAV URL"/></label> <label><var:string label:value="CalDAV URL"/></label>
<input type="text" ng-model="links.calendar.urls.publicCalDavURL" ng-readonly="true"/> <input type="text" ng-model="links.calendar.urls.publicCalDavURL" ng-readonly="true"/>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="WebDAV ICS URL"/></label> <label><var:string label:value="WebDAV ICS URL"/></label>
<input type="text" ng-model="links.calendar.urls.publicWebDavICSURL" ng-readonly="true"/> <input type="text" ng-model="links.calendar.urls.publicWebDavICSURL" ng-readonly="true"/>
</md-input-container> </md-input-container>
<md-input-container> <md-input-container class="md-block">
<label><var:string label:value="WebDAV XML URL"/></label> <label><var:string label:value="WebDAV XML URL"/></label>
<input type="text" ng-model="links.calendar.urls.publicWebDavXMLURL" ng-readonly="true"/> <input type="text" ng-model="links.calendar.urls.publicWebDavXMLURL" ng-readonly="true"/>
</md-input-container> </md-input-container>
</div> </div>
</var:if> </var:if>
</div> </div>
</md-dialog-content> </md-dialog-content>

View File

@ -13,7 +13,7 @@
<!-- color --> <!-- color -->
<sg-color-picker ng-model="properties.calendar.color"><!-- color picker --></sg-color-picker> <sg-color-picker ng-model="properties.calendar.color"><!-- color picker --></sg-color-picker>
<!-- name --> <!-- name -->
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Name"/></label> <label><var:string label:value="Name"/></label>
<input type="text" <input type="text"
class="md-title" class="md-title"
@ -60,7 +60,7 @@
<var:string label:value="Reload on login"/> <var:string label:value="Reload on login"/>
</md-checkbox> </md-checkbox>
<div ng-hide="properties.calendar.isWebCalendar || !properties.calendar.isOwned" layout="column"> <div ng-hide="properties.calendar.isWebCalendar || !properties.calendar.isOwned" layout="column">
<md-divider><!-- divider --></md-divider> <md-divider class="md-padding"><!-- divider --></md-divider>
<md-checkbox <md-checkbox
ng-model="properties.calendar.notifications.notifyOnPersonalModifications" ng-model="properties.calendar.notifications.notifyOnPersonalModifications"
ng-true-value="1" ng-true-value="1"
@ -79,7 +79,7 @@
ng-false-value="0"> ng-false-value="0">
<var:string label:value="When I modify my calendar, send a mail to"/> <var:string label:value="When I modify my calendar, send a mail to"/>
</md-checkbox> </md-checkbox>
<md-input-container md-no-float="md-no-float"> <md-input-container flex-offset="5" md-no-float="md-no-float">
<input type="text" <input type="text"
label:placeholder="Email Address" label:placeholder="Email Address"
ng-value="properties.calendar.notifications.notifiedUserOnPersonalModifications" ng-value="properties.calendar.notifications.notifiedUserOnPersonalModifications"

View File

@ -4,7 +4,7 @@
xmlns:var="http://www.skyrix.com/od/binding" xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant" xmlns:const="http://www.skyrix.com/od/constant"
xmlns:label="OGo:label"> xmlns:label="OGo:label">
<div layout="row" layout-align="start center" layout-wrap="layout-wrap"> <div layout="row" layout-wrap="layout-wrap">
<md-input-container class="md-input-number"> <md-input-container class="md-input-number">
<input type="number" label:aria-label="quantity" ng-model="editor.component.alarm.quantity"/> <input type="number" label:aria-label="quantity" ng-model="editor.component.alarm.quantity"/>
</md-input-container> </md-input-container>
@ -32,18 +32,16 @@
</div> </div>
<var:if condition="emailAlarmsEnabled"> <var:if condition="emailAlarmsEnabled">
<div layout="row" layout-align="space-around center"> <md-radio-group layout="column"
<md-radio-group layout="row" layout-align="space-around center" ng-model="editor.component.alarm.action">
ng-model="editor.component.alarm.action"> <md-radio-button value="display">
<md-radio-button value="display"> <var:string label:value="Show an Alert"/>
<var:string label:value="Show an Alert"/> </md-radio-button>
</md-radio-button> <md-radio-button value="email">
<md-radio-button value="email"> <var:string label:value="Send an E-mail"/>
<var:string label:value="Send an E-mail"/> </md-radio-button>
</md-radio-button> </md-radio-group>
</md-radio-group> <div layout="row" flex-offset="5"
</div>
<div layout="row" layout-align="space-around center"
ng-show="editor.component.canRemindAttendeesByEmail()"> ng-show="editor.component.canRemindAttendeesByEmail()">
<md-checkbox ng-model="editor.component.alarm.organizer" <md-checkbox ng-model="editor.component.alarm.organizer"
ng-true-value="1" ng-true-value="1"

View File

@ -11,7 +11,7 @@
<!-- summary --> <!-- summary -->
<md-icon ng-if="editor.component.classification == 'confidential'">visibility_off</md-icon> <md-icon ng-if="editor.component.classification == 'confidential'">visibility_off</md-icon>
<md-icon ng-if="editor.component.classification == 'private'">vpn_key</md-icon> <md-icon ng-if="editor.component.classification == 'private'">vpn_key</md-icon>
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Title"/></label> <label><var:string label:value="Title"/></label>
<input type="text" <input type="text"
class="md-title" class="md-title"
@ -24,11 +24,21 @@
</div> </div>
</md-toolbar> </md-toolbar>
<md-dialog-content class="md-dialog-content"> <md-dialog-content class="md-dialog-content">
<!-- location --> <div layout="row" layout-wrap="layout-wrap">
<md-input-container> <!-- location -->
<label><var:string label:value="Location"/></label> <md-input-container flex="50" flex-xs="100">
<input type="text" ng-model="editor.component.location"/> <label><var:string label:value="Location"/></label>
</md-input-container> <input type="text" ng-model="editor.component.location"/>
</md-input-container>
<!-- calendar -->
<md-input-container flex="50" flex-xs="100">
<label><var:string label:value="Calendar"/></label>
<md-select ng-model="editor.component.destinationCalendar">
<md-option ng-repeat="calendar in editor.service.$findAll(null, true)"
ng-value="calendar.id">{{calendar.name}}</md-option>
</md-select>
</md-input-container>
</div>
<!-- categories --> <!-- categories -->
<md-chips ng-model="editor.component.categories"> <md-chips ng-model="editor.component.categories">
<md-autocomplete <md-autocomplete
@ -40,16 +50,8 @@
<span md-highlight-text="editor.categories.searchText">{{category}}</span> <span md-highlight-text="editor.categories.searchText">{{category}}</span>
</md-autocomplete> </md-autocomplete>
</md-chips> </md-chips>
<!-- calendar -->
<md-input-container>
<label><var:string label:value="Calendar"/></label>
<md-select ng-model="editor.component.destinationCalendar">
<md-option ng-repeat="calendar in editor.service.$findAll(null, true)"
ng-value="calendar.id">{{calendar.name}}</md-option>
</md-select>
</md-input-container>
<!-- classification --> <!-- classification -->
<md-radio-group layout="row" layout-align="space-around center" <md-radio-group class="md-padding" layout="row" layout-align="space-around center"
ng-model="editor.component.classification"> ng-model="editor.component.classification">
<md-radio-button value="public"> <md-radio-button value="public">
<var:string label:value="label_Public"/> <var:string label:value="label_Public"/>
@ -145,7 +147,7 @@
<!-- attach urls --> <!-- attach urls -->
<div class="attr" ng-repeat="attach in editor.component.attachUrls"> <div class="attr" ng-repeat="attach in editor.component.attachUrls">
<div layout="row" layout-align="center end"> <div layout="row" layout-align="center end">
<md-input-container> <md-input-container class="md-block md-flex">
<label> <label>
<var:string label:value="URL"/> <var:string label:value="URL"/>
</label> </label>
@ -166,13 +168,13 @@
</label> </label>
</div> </div>
<!-- comment --> <!-- comment -->
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Description"/></label> <label><var:string label:value="Description"/></label>
<textarea ng-model="editor.component.comment"><!-- comment --></textarea> <textarea ng-model="editor.component.comment"><!-- comment --></textarea>
</md-input-container> </md-input-container>
<!-- repeat --> <!-- repeat -->
<div layout="row" layout-align="start end"> <div layout="row" layout-align="start end">
<md-input-container> <md-input-container class="md-block md-flex">
<label><var:string label:value="Repeat"/></label> <label><var:string label:value="Repeat"/></label>
<md-select class="pseudo-input-field" ng-model="editor.component.repeat.frequency"> <md-select class="pseudo-input-field" ng-model="editor.component.repeat.frequency">
<var:foreach list="repeatList" item="item"> <var:foreach list="repeatList" item="item">
@ -192,33 +194,32 @@
<var:component className="UIxRecurrenceEditor" /> <var:component className="UIxRecurrenceEditor" />
</div> </div>
<!-- end repeat --> <!-- end repeat -->
<div layout="row" layout-align="start end"> <div layout="row">
<div ng-show="editor.component.repeat.frequency != 'never'"> <md-input-container class="md-block" flex="50" flex-xs="100"
<md-input-container> ng-show="editor.component.repeat.frequency != 'never'">
<label><var:string label:value="End Repeat"/></label> <label><var:string label:value="End Repeat"/></label>
<md-select class="pseudo-input-field" ng-model="editor.component.repeat.end"> <md-select ng-model="editor.component.repeat.end"
<md-option value="never"><var:string label:value="Never"/></md-option> ng-disabled="editor.component.occurrenceId">
<md-option value="count"><var:string label:value="After"/></md-option> <md-option value="never"><var:string label:value="Never"/></md-option>
<md-option value="until"><var:string label:value="On Date"/></md-option> <md-option value="count"><var:string label:value="After"/></md-option>
</md-select> <md-option value="until"><var:string label:value="On Date"/></md-option>
</md-input-container> </md-select>
</div>
<div layout="row" layout-align="start center" ng-show="editor.component.repeat.end == 'count'">
<md-input-container class="md-input-number">
<input type="number" label:aria-label="times" ng-model="editor.component.repeat.count"/>
</md-input-container>
<var:string label:value="times"/>
</div>
<md-input-container ng-show="editor.component.repeat.end == 'until'">
<input type="date" label:aria-label="Repeat until" ng-model="editor.component.repeat.until"/>
</md-input-container> </md-input-container>
<md-input-container class="md-block md-input-number"
ng-show="editor.component.repeat.end == 'count'">
<label><var:string label:value="times"/></label>
<input type="number" label:aria-label="times" ng-model="editor.component.repeat.count"/>
</md-input-container>
<md-datepicker ng-show="editor.component.repeat.end == 'until'"
ng-model="editor.component.repeat.until"
label:md-placeholder="On Date"><!-- date picker --></md-datepicker>
</div> </div>
<!-- reminder --> <!-- reminder -->
<md-checkbox ng-model="editor.component.$hasAlarm" <md-checkbox ng-model="editor.component.$hasAlarm"
label:aria-label="Reminder"> label:aria-label="Reminder">
<var:string label:value="Reminder"/> <var:string label:value="Reminder"/>
</md-checkbox> </md-checkbox>
<div class="sg-subcontent" <div flex-offset="5"
ng-show="editor.component.$hasAlarm"> ng-show="editor.component.$hasAlarm">
<var:component className="UIxReminderEditor" /> <var:component className="UIxReminderEditor" />
</div> </div>

View File

@ -37,19 +37,19 @@
vm.methodLabels = { vm.methodLabels = {
"discard": l("Discard the message"), "discard": l("Discard the message"),
"keep": l("Keep the message"), "keep": l("Keep the message"),
"redirect": l("Forward the message to:"), "redirect": l("Forward the message to"),
"vacation": l("Send a vacation message"), "vacation": l("Send a vacation message"),
"stop": l("Stop processing filter rules") "stop": l("Stop processing filter rules")
}; };
if (sieveCapabilities.indexOf("reject") > -1) if (sieveCapabilities.indexOf("reject") > -1)
vm.methodLabels.reject = l("Send a reject message:"); vm.methodLabels.reject = l("Send a reject message");
if (sieveCapabilities.indexOf("fileinto") > -1) if (sieveCapabilities.indexOf("fileinto") > -1)
vm.methodLabels.fileinto = l("File the message in:"); vm.methodLabels.fileinto = l("File the message in");
if (sieveCapabilities.indexOf("imapflags") > -1 || sieveCapabilities.indexOf("imap4flags") > -1) if (sieveCapabilities.indexOf("imapflags") > -1 || sieveCapabilities.indexOf("imap4flags") > -1)
vm.methodLabels.addflag = l("Flag the message with:"); vm.methodLabels.addflag = l("Flag the message with");
vm.numberOperatorLabels = { vm.numberOperatorLabels = {
"under": l("is under"), "under": l("is under"),

View File

@ -1,6 +1,6 @@
@import "extends"; @import "extends";
@media (max-width: $layout-breakpoint-sm) { @media (max-width: $layout-breakpoint-xs) {
// Enlarge the autocompletion menu on small devices to fit the entire screen // Enlarge the autocompletion menu on small devices to fit the entire screen
.md-autocomplete-suggestions-container { .md-autocomplete-suggestions-container {
right: $baseline-grid*2; right: $baseline-grid*2;

View File

@ -15,20 +15,6 @@
/// ///
/// ---------------------------------------------------------------------------- /// ----------------------------------------------------------------------------
// md-input variables we might use
// ----------------------------------------------------------------------------
$input-container-padding: 2px !default;
$input-label-default-offset: 24px !default;
$input-label-default-scale: 1.0 !default;
$input-label-float-offset: 4px !default;
$input-label-float-scale: 0.75 !default;
$input-border-width-default: 1px !default;
$input-border-width-focused: 2px !default;
$input-line-height: 26px !default;
$input-padding-top: 2px !default;
.pseudo-input-container { .pseudo-input-container {
display: block; // Should be (reset to ?) a plain block element display: block; // Should be (reset to ?) a plain block element
padding: 0 2px; padding: 0 2px;
@ -94,108 +80,6 @@ input #inner-editor {
line-height: inherit; line-height: inherit;
} }
:root #placeholder,
:root [pseudo="-webkit-input-placeholder"] {
padding: 0;
height: $mg;
color: $colorGrayLight;
font: inherit;
line-height: inherit;
}
input::-webkit-datetime-edit,
:root div#date-time-edit {
opacity: 0;
}
.md-input-focused input::-webkit-datetime-edit,
.md-input-focused div#date-time-edit,
.md-input-has-value input::-webkit-datetime-edit {
opacity: 1;
}
md-input-container {
display: flex;
position: relative;
flex-direction: column;
flex: 1 1 auto;
padding: $input-container-padding;
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"] {
/* remove default appearance from all input/textarea */
-moz-appearance: none;
-webkit-appearance: none;
}
textarea {
resize: none;
overflow: hidden;
}
label {
order: 1;
pointer-events: none;
-webkit-font-smoothing: antialiased;
z-index: 1;
transform: translate3d(0, $input-label-default-offset, 0) scale($input-label-default-scale);
transform-origin: left top;
transition: all $swift-ease-out-timing-function 0.2s;
}
/*
* The .md-input class is added to the input/textarea
*/
.md-input {
flex: 1;
order: 2;
display: block;
background: none;
padding-top: $input-padding-top;
padding-bottom: $input-border-width-focused - $input-border-width-default;
border-width: 0 0 $input-border-width-default 0;
line-height: $input-line-height;
-ms-flex-preferred-size: $input-line-height; //IE fix
&:focus {
outline: none;
}
}
&.md-input-focused,
&.md-input-has-value {
label {
transform: translate3d(0,$input-label-float-offset,0) scale($input-label-float-scale);
}
}
&.md-input-focused {
.md-input {
padding-bottom: 0px; // Increase border width by 1px, decrease padding by 1
border-width: 0 0 $input-border-width-focused 0;
}
}
.md-input[disabled] {
background-position: 0 bottom;
// This background-size is coordinated with a linear-gradient set in input-theme.scss
// to create a dotted line under the input.
background-size: 3px 1px;
background-repeat: repeat-x;
}
}
md-input-container .bgroup { md-input-container .bgroup {
display: block; display: block;
} }

View File

@ -1 +1,9 @@
@import "extends"; @import "extends";
md-input-container {
md-radio-group {
md-radio-button:first-child {
margin-top: $radio-top-left;
}
}
}

View File

@ -1,32 +1 @@
@import "extends"; @import "extends";
// Try to align select labels with other input components
[layout="row"] {
.md-select-label {
padding-top: 4px;
}
}
// angular material overqualifies, so we are
md-select.md-default-theme.sg-toolbar-sort {
margin: 0 $bl 4px 0;
color: $colorWhite;
md-select-label.md-select-label {
border: none;
color: inherit;
}
}
md-select.md-default-theme.sg-logout {
margin-top: $bl;
color: $colorWhite;
// angular material overqualifies, so we are
md-select-label.md-select-label,
md-select-label.md-select-label.md-placeholder,
md-select-label.md-select-label * {
border: none;
color: $colorWhite;
}
}

View File

@ -41,12 +41,16 @@ md-toolbar,
// Animate the first icon button of a "secondary" toolbar // Animate the first icon button of a "secondary" toolbar
&.sg-toolbar-secondary { &.sg-toolbar-secondary {
> .md-toolbar-tools > .sg-icon-button:first-child, > .md-toolbar-tools > .sg-icon-button:first-child,
> .sg-icon-button:first-child { > .md-toolbar-tools > .md-icon-button:first-child,
> .sg-icon-button:first-child,
> .md-icon-button:first-child {
transition: $swift-ease-in; transition: $swift-ease-in;
transform: translateX(0px); transform: translateX(0px);
} }
&.ng-hide > .md-toolbar-tools > .sg-icon-button:first-child, &.ng-hide > .md-toolbar-tools > .sg-icon-button:first-child,
&.ng-hide > .sg-icon-button:first-child { &.ng-hide > .md-toolbar-tools > .md-icon-button:first-child,
&.ng-hide > .sg-icon-button:first-child,
&.ng-hide > .md-icon-button:first-child {
transform: translateX(-$touch-zone-width); transform: translateX(-$touch-zone-width);
} }
} }

View File

@ -271,7 +271,8 @@ html p {
font-size: $sg-font-size-2; font-size: $sg-font-size-2;
line-height: $sg-line-height-1; line-height: $sg-line-height-1;
font-weight: $sg-font-medium; font-weight: $sg-font-medium;
white-space: nowrap;} white-space: nowrap;
}
.#{$md}-button { .#{$md}-button {
font-size: $sg-font-size-2; font-size: $sg-font-size-2;
line-height: $sg-line-height-1; line-height: $sg-line-height-1;

View File

@ -188,6 +188,7 @@ md-sidenav {
max-height: 400px; max-height: 400px;
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
padding-bottom: 2px; // leave some space for the border
transition: $swift-ease-in; transition: $swift-ease-in;
&.ng-hide { &.ng-hide {
max-height: 0; max-height: 0;