sogo/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox

247 lines
11 KiB
Plaintext
Raw Normal View History

<?xml version='1.0' standalone='yes'?>
<container
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:label="OGo:label">
<md-dialog flex="60">
<form name="eventForm" ng-submit="editor.save(eventForm)">
<md-toolbar class="md-padding" ng-class="editor.component.getClassName('bg')">
<div class="md-toolbar-tools">
<!-- summary -->
<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-input-container md-no-float="true">
<input type="text"
class="md-title"
label:placeholder="Title"
ng-model="editor.component.summary"/>
</md-input-container>
<md-button class="md-icon-button" ng-click="editor.cancel()">
<md-icon aria-label="Close dialog">close</md-icon>
</md-button>
</div>
</md-toolbar>
<!--<md-chips>
2015-06-25 17:30:44 +02:00
<md-chip ng-repeat="category in editor.component.categories">{{category}}</md-chip>
</md-chips>-->
<md-dialog-content>
<!-- location -->
<md-input-container>
<label><var:string label:value="Location"/></label>
2015-06-25 17:30:44 +02:00
<input type="text" ng-model="editor.component.location"/>
</md-input-container>
<!-- categories -->
<md-chips ng-model="editor.component.categories">
<md-autocomplete
md-selected-item="editor.categories.selected"
md-search-text="editor.categories.searchText"
md-items="category in editor.component.constructor.filterCategories(editor.categories.searchText)"
label:placeholder="Add a category">
<span md-highlight-text="editor.categories.searchText">{{category}}</span>
</md-autocomplete>
</md-chips>
<!-- calendar -->
2015-07-02 16:45:13 +02:00
<md-input-container>
<label><var:string label:value="Calendar"/></label>
<md-select ng-model="editor.component.destinationCalendar">
<md-option ng-repeat="calendar in ::editor.calendars"
ng-value="calendar.id">{{calendar.name}}</md-option>
</md-select>
2015-07-02 16:45:13 +02:00
</md-input-container>
<!-- classification -->
<md-radio-group layout="row" layout-align="space-around center"
2015-06-25 17:30:44 +02:00
ng-model="editor.component.classification">
<md-radio-button value="public">
<var:string label:value="label_Public"/>
</md-radio-button>
<md-radio-button value="confidential">
<var:string label:value="label_Confidential"/>
</md-radio-button>
<md-radio-button value="private">
<var:string label:value="label_Private"/>
</md-radio-button>
</md-radio-group>
<!-- priority -->
<div layout="row" layout-align="center center">
<div flex="20"><var:string label:value="Priority"/></div>
<md-slider class="md-flex"
md-discrete="true"
2015-06-25 17:30:44 +02:00
ng-model="editor.component.priority"
step="1"
min="0"
max="9"
label:aria-label="Priority"><!-- slider --></md-slider>
</div>
<!-- is all day -->
<md-checkbox
2015-06-25 17:30:44 +02:00
ng-model="editor.component.isAllDay"
ng-true-value="1"
ng-false-value="0"
label:aria-label="All day Event">
<var:string label:value="All day Event"/>
</md-checkbox>
<!-- is transparent -->
<md-checkbox
2015-06-25 17:30:44 +02:00
ng-model="editor.component.isTransparent"
ng-true-value="1"
ng-false-value="0"
label:aria-label="Show Time as Free">
<var:string label:value="Show Time as Free"/>
</md-checkbox>
<!-- send appointment notifications -->
<md-checkbox
2015-06-25 17:30:44 +02:00
ng-model="editor.component.sendAppointmentNotifications"
ng-true-value="1"
ng-false-value="0"
label:aria-label="Send Appointment Notifications">
<var:string label:value="Send Appointment Notifications"/>
</md-checkbox>
<!-- start + end -->
<div layout="row">
<md-input-container>
<label><var:string label:value="From"/></label>
2015-06-25 17:30:44 +02:00
<input type="text" ng-model="editor.component.startDate"/>
</md-input-container>
<md-input-container>
<label><var:string label:value="To"/></label>
2015-06-25 17:30:44 +02:00
<input type="text" ng-model="editor.component.endDate"/>
</md-input-container>
</div>
<!-- attach urls -->
<div class="attr" ng-repeat="attach in editor.component.attachUrls">
<div layout="row" layout-align="center end">
<md-input-container>
<label>
<var:string label:value="URL"/>
</label>
<input type="text" ng-model="attach.value"
sg-focus-on="attachUrl_{{$index}}"/>
</md-input-container>
<md-button class="sg-icon-button" type="button" ng-click="editor.component.deleteAttachUrl($index)">
<md-icon>remove_circle</md-icon>
</md-button>
</div>
</div>
<div class="md-layout-margin" layout="row" layout-align="start center">
<md-button class="sg-icon-button" type="button" ng-click="editor.addAttachUrl($event)">
<md-icon>add_circle</md-icon>
</md-button>
<label class="button-label">
<var:string label:value="Attach"/>
</label>
</div>
<!-- comment -->
<md-input-container>
<label><var:string label:value="Description"/></label>
2015-06-25 17:30:44 +02:00
<textarea ng-model="editor.component.comment"><!-- comment --></textarea>
</md-input-container>
<!-- repeat -->
2015-06-04 20:48:52 +02:00
<div layout="row" layout-align="start end">
2015-07-02 16:45:13 +02:00
<div class="md-flex">
<md-input-container>
<label><var:string label:value="Repeat"/></label>
<md-select ng-model="editor.component.repeat.frequency">
2015-07-02 16:45:13 +02:00
<var:foreach list="repeatList" item="item">
<md-option var:value="item"><var:string var:value="itemRepeatText"/></md-option>
</var:foreach>
</md-select>
</md-input-container>
</div>
<md-button type="button" class="sg-icon-button"
2015-06-04 20:48:52 +02:00
label:aria-label="repeat_CUSTOM"
2015-06-25 17:30:44 +02:00
ng-show="editor.component.repeat.frequency != 'never'"
2015-06-04 20:48:52 +02:00
ng-click="editor.toggleRecurrenceEditor()">
2015-07-09 03:16:33 +02:00
<md-icon ng-class="{'md-rotate-45': editor.showRecurrenceEditor}">add</md-icon>
2015-06-04 20:48:52 +02:00
</md-button>
</div>
<div ng-show="editor.showRecurrenceEditor" class="sg-subcontent">
<var:component className="UIxRecurrenceEditor" />
</div>
<!-- end repeat -->
<div layout="row" layout-align="start end">
<div ng-show="editor.component.repeat.frequency != 'never'">
2015-07-02 16:45:13 +02:00
<md-input-container>
<label><var:string label:value="End Repeat"/></label>
<md-select ng-model="editor.component.repeat.end">
2015-07-02 16:45:13 +02:00
<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="until"><var:string label:value="On Date"/></md-option>
</md-select>
</md-input-container>
</div>
2015-06-25 17:30:44 +02:00
<div layout="row" layout-align="start center" ng-show="editor.component.repeat.end == 'count'">
<md-input-container class="md-input-number">
2015-06-25 17:30:44 +02:00
<input type="number" label:aria-label="times" ng-model="editor.component.repeat.count"/>
</md-input-container>
<var:string label:value="times"/>
</div>
2015-06-25 17:30:44 +02:00
<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>
</div>
<!-- attendees -->
2015-07-09 03:16:33 +02:00
<div layout="row" layout-align="start start">
<md-autocomplete class="md-flex"
label:md-floating-label="Invite Attendees"
md-selected-item="attendeeToAdd"
md-search-text="editor.searchText"
md-selected-item-change="editor.addAttendee(card)"
md-items="card in editor.cardFilter(editor.searchText)"
md-min-length="2"
md-no-cache="true"
md-delay="300"
sg-enter="editor.addAttendee(editor.searchText)">
<md-item-template>
<div class="md-contact-suggestion" layout="row" layout-align="space-between center">
<span class="md-contact-name"
md-highlight-text="editor.searchText"
md-highlight-flags="^i">{{card.$$fullname}}</span>
<span class="md-contact-email"
md-highlight-text="editor.searchText"
md-highlight-flags="^i">{{card.$$email}}</span>
</div>
</md-item-template>
</md-autocomplete>
<md-button type="button" class="sg-icon-button"
label:aria-label="repeat_CUSTOM"
ng-click="editor.toggleAttendeesEditor()">
<md-icon ng-class="{'md-rotate-180': editor.showAttendeesEditor}">expand_more</md-icon>
</md-button>
</div>
<div layout="row" layout-align="space-between end">
<div class="sg-avatars" ng-hide="editor.showAttendeesEditor">
<sg-avatar-image ng-repeat="currentAttendee in editor.component.attendees track by currentAttendee.email"
sg-email="currentAttendee.email"
size="32"><!-- avatar --></sg-avatar-image>
</div>
</div>
<div ng-show="editor.showAttendeesEditor" class="sg-subcontent attendees">
<var:component className="UIxAttendeesEditor" />
</div>
<!-- reminder -->
2015-06-25 17:30:44 +02:00
<md-checkbox ng-model="editor.component.$hasAlarm"
label:aria-label="Reminder:">
<var:string label:value="Reminder:"/>
</md-checkbox>
<div class="sg-subcontent"
2015-06-25 17:30:44 +02:00
ng-show="editor.component.$hasAlarm">
<var:component className="UIxReminderEditor" />
</div>
</md-dialog-content>
<!-- cancel/reset/save -->
<div class="md-actions">
<md-button type="button" ng-click="editor.cancel()">
<var:string label:value="Cancel"/>
</md-button>
2015-06-25 17:30:44 +02:00
<md-button type="button" ng-click="editor.component.$reset()">
<var:string label:value="Reset"/>
</md-button>
<md-button class="md-primary md-hue-3" type="submit">
<var:string label:value="Save"/>
</md-button>
</div>
</form>
</md-dialog>
</container>