244 lines
11 KiB
XML
244 lines
11 KiB
XML
<?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"
|
|
>
|
|
<form name="eventForm" ng-submit="editor.save(eventForm)">
|
|
<md-toolbar class="md-padding" ng-class="editor.component.getClassName('bg')">
|
|
<!-- summary -->
|
|
<md-input-container md-no-float="true">
|
|
<input type="text"
|
|
class="md-display-1"
|
|
label:placeholder="Title"
|
|
ng-model="editor.component.summary"
|
|
md-sidenav-focus="md-sidenav-focus" />
|
|
</md-input-container>
|
|
<!--<md-chips>
|
|
<md-chip ng-repeat="category in editor.component.categories">{{category}}</md-chip>
|
|
</md-chips>-->
|
|
</md-toolbar>
|
|
<md-content md-scroll-y="md-scroll-y" class="md-padding bg-sogoPaper-50 md-whiteframe-z1">
|
|
<!-- location -->
|
|
<md-input-container>
|
|
<label><var:string label:value="Location"/></label>
|
|
<input type="text" ng-model="editor.component.location"/>
|
|
</md-input-container>
|
|
<!-- categories -->
|
|
<div class="pseudo-input-container">
|
|
<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>
|
|
</div>
|
|
<!-- calendar -->
|
|
<md-input-container>
|
|
<label><var:string label:value="Calendar"/></label>
|
|
<md-select ng-model="editor.component.destinationCalendar" class="pseudo-input-field">
|
|
<md-option ng-repeat="calendar in ::editor.calendars"
|
|
ng-value="calendar.id">{{calendar.name}}</md-option>
|
|
</md-select>
|
|
</md-input-container>
|
|
<!-- classification -->
|
|
<md-radio-group layout="row" layout-align="space-around center"
|
|
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"
|
|
ng-model="editor.component.priority"
|
|
step="1"
|
|
min="0"
|
|
max="9"
|
|
label:aria-label="Priority"><!-- slider --></md-slider>
|
|
</div>
|
|
<!-- is all day -->
|
|
<md-checkbox
|
|
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
|
|
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
|
|
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>
|
|
<input type="text" ng-model="editor.component.startDate"/>
|
|
</md-input-container>
|
|
<md-input-container>
|
|
<label><var:string label:value="To"/></label>
|
|
<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>
|
|
<textarea ng-model="editor.component.comment"><!-- comment --></textarea>
|
|
</md-input-container>
|
|
<!-- repeat -->
|
|
<div layout="row" layout-align="start end">
|
|
<div class="md-flex">
|
|
<md-input-container>
|
|
<label><var:string label:value="Repeat"/></label>
|
|
<md-select class="pseudo-input-field" ng-model="editor.component.repeat.frequency">
|
|
<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"
|
|
label:aria-label="repeat_CUSTOM"
|
|
ng-show="editor.component.repeat.frequency != 'never'"
|
|
ng-click="editor.toggleRecurrenceEditor()">
|
|
<md-icon ng-class="{'icon-more-horiz': !editor.showRecurrenceEditor,
|
|
'icon-clear': editor.showRecurrenceEditor}"><!-- toggle custom rule --></md-icon>
|
|
</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>
|
|
<md-input-container>
|
|
<label><var:string label:value="End Repeat"/></label>
|
|
<md-select class="pseudo-input-field" ng-model="editor.component.repeat.end">
|
|
<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>
|
|
<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>
|
|
</div>
|
|
<!-- attendees -->
|
|
<div layout="row" layout-align="space-between end">
|
|
<div class="pseudo-input-container">
|
|
<label class="pseudo-input-label"><var:string label:value="Attendees:"/></label>
|
|
<div class="sg-avatars" ng-hide="editor.showAttendeesEditor">
|
|
<sg-gravatar-image ng-repeat="currentAttendee in editor.component.attendees track by currentAttendee.email"
|
|
email="{{currentAttendee.email}}"
|
|
size="32">
|
|
<!-- gravatar -->
|
|
</sg-gravatar-image>
|
|
</div>
|
|
</div>
|
|
<md-button type="button" class="sg-icon-button"
|
|
label:aria-label="repeat_CUSTOM"
|
|
ng-click="editor.toggleAttendeesEditor()">
|
|
<md-icon ng-class="{'icon-expand-more': !editor.showAttendeesEditor,
|
|
'icon-expand-less': editor.showAttendeesEditor}"><!-- toggle attendees details --></md-icon>
|
|
</md-button>
|
|
</div>
|
|
<div ng-show="editor.showAttendeesEditor" class="sg-subcontent attendees">
|
|
<var:component className="UIxAttendeesEditor" />
|
|
</div>
|
|
<md-autocomplete class="md-flex"
|
|
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"
|
|
label:placeholder="Invite Attendees"
|
|
sg-enter="editor.addAttendee(editor.searchText)">
|
|
<span 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>
|
|
</span>
|
|
</md-autocomplete>
|
|
<!-- reminder -->
|
|
<md-checkbox ng-model="editor.component.$hasAlarm"
|
|
label:aria-label="Reminder:">
|
|
<var:string label:value="Reminder:"/>
|
|
</md-checkbox>
|
|
<div class="sg-subcontent"
|
|
ng-show="editor.component.$hasAlarm">
|
|
<var:component className="UIxReminderEditor" />
|
|
</div>
|
|
<!-- cancel/reset/save -->
|
|
<div class="fieldset md-layout-margin" layout="row" layout-align="end center">
|
|
<md-button type="button" ng-click="editor.cancel()">
|
|
<var:string label:value="Cancel"/>
|
|
</md-button>
|
|
<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>
|
|
</md-content>
|
|
</form>
|
|
</container>
|