sogo/UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox

357 lines
16 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">
<md-dialog flex="40" flex-sm="80" flex-xs="100">
<md-toolbar ng-class="editor.component.getClassName('bg')">
<div class="md-toolbar-tools">
<md-icon class="material-icons sg-icon-toolbar-bg">event</md-icon>
<div class="sg-md-title md-flex">
<!-- classification -->
<md-icon ng-if="editor.component.classification == 'confidential'">visibility_off</md-icon>
<md-icon ng-if="editor.component.classification == 'private'">vpn_key</md-icon>
<!-- summary -->
{{::editor.component.summary}}
<!-- priority -->
<md-icon ng-repeat="i in ::editor.component.priority | range">star</md-icon>
</div>
<md-menu>
<md-button label:aria-label="More options" class="md-icon-button" ng-click="$mdOpenMenu($event)">
<md-icon>more_vert</md-icon>
</md-button>
<md-menu-content>
<md-menu-item>
<md-button label:aria-label="View Raw Source"
ng-click="editor.toggleRawSource($event)">
<var:string label:value="View Raw Source"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-menu>
<md-button label:aria-label="Copy To" ng-click="$mdOpenMenu($event)">
<var:string label:value="Copy To"/>
</md-button>
<md-menu-content width="4">
<div ng-repeat="calendar in editor.calendarService.$findAll(null, true) track by calendar.id">
<md-menu-item>
<md-button class="sg-no-wrap"
ng-click="editor.copySelectedComponent(calendar.id)">
<span>{{calendar.name}}</span>
</md-button>
</md-menu-item>
</div>
</md-menu-content>
</md-menu>
</md-menu-item>
<md-menu-item>
<md-menu>
<md-button label:aria-label="Move To" ng-click="$mdOpenMenu($event)">
<var:string label:value="Move To"/>
</md-button>
<md-menu-content width="4">
<div ng-repeat="calendar in editor.calendarService.$findAll(null, true) track by calendar.id">
<md-menu-item>
<md-button class="sg-no-wrap"
ng-disabled="editor.component.destinationCalendar == calendar.id"
ng-click="editor.moveSelectedComponent(calendar.id)">
<span>{{calendar.name}}</span>
</md-button>
</md-menu-item>
</div>
</md-menu-content>
</md-menu>
</md-menu-item>
</md-menu-content>
</md-menu>
<md-button class="md-icon-button"
ng-show="editor.component.attendees.length > 0"
ng-click="editor.newMessageWithAllRecipients($event)">
<md-icon label:aria-label="Email Attendees">mail</md-icon>
</md-button>
<md-button class="md-icon-button" ng-click="editor.close()">
<md-icon label:aria-label="Close">close</md-icon>
</md-button>
</div>
</md-toolbar>
<md-dialog-content>
<md-list>
<!-- categories -->
<md-list-item ng-show="editor.component.categories.length > 0">
<md-chips class="sg-readonly" ng-model="::editor.component.categories" readonly="true">
<md-chip-template>
<span class="sg-chip-color" style="z-index: 1">
<span ng-style="{ 'background-color': editor.service.$categories[$chip] }"><!-- color --></span>
</span>
<span>{{$chip}}</span>
</md-chip-template>
</md-chips>
</md-list-item>
<!-- location -->
<md-list-item ng-show="editor.component.location">
<md-icon>place</md-icon>
<p>{{::editor.component.location}}</p>
</md-list-item>
<!-- calendar -->
<md-list-item>
<md-icon>event</md-icon>
<p>{{editor.component.calendar}}</p>
</md-list-item>
<!-- start/end dates -->
<md-list-item ng-class="{ 'md-2-line': editor.component.isAllDay, 'md-3-line': !editor.component.isAllDay }">
<md-icon>access_time</md-icon>
<div class="md-list-item-text" ng-show="editor.component.startDate">
<p><var:string label:value="Start"/></p>
<h3>{{::editor.component.localizedStartDate}}</h3>
<h3 ng-hide="editor.component.isAllDay">{{::editor.component.localizedStartTime}}</h3>
</div>
<div class="md-list-item-text" ng-show="editor.component.endDate">
<p><var:string label:value="End"/></p>
<h3>{{::editor.component.localizedEndDate}}</h3>
<h3 ng-hide="editor.component.isAllDay">{{::editor.component.localizedEndTime}}</h3>
</div>
</md-list-item>
<!-- is transparent -->
<md-list-item ng-show="editor.component.isTransparent">
<md-icon>event_available</md-icon>
<p><var:string label:value="Show Time as Free"/></p>
</md-list-item>
<!-- send appointment notifications -->
<md-list-item ng-show="editor.component.sendAppointmentNotifications">
<md-icon>send</md-icon>
<p><var:string label:value="Send Appointment Notifications"/></p>
</md-list-item>
<!-- attach urls -->
<md-list-item ng-show="editor.component.attachUrls.length > 0">
<md-icon>link</md-icon>
<p ng-repeat="url in ::editor.component.attachUrls"><a target="_new" ng-href="{{url.value}}">{{url.value}}</a></p>
</md-list-item>
<!-- comment -->
<md-list-item ng-show="editor.component.comment">
<md-icon>mode_comment</md-icon>
<p>{{::editor.component.comment}}</p>
</md-list-item>
<!-- repeat -->
<md-list-item ng-show="editor.component.$isRecurrent">
<md-icon>repeat</md-icon>
<p>{{editor.component.repeatDescription()}}</p>
</md-list-item>
<!-- reminder -->
<md-list-item ng-hide="!editor.component.$hasAlarm || editor.component.userHasRSVP">
<md-icon>alarm_on</md-icon>
<p>{{editor.component.alarmDescription()}}</p>
</md-list-item>
<md-list-item layout-align="start start" ng-show="editor.component.organizer">
<md-icon>people</md-icon>
<div layout="column" layout-fill="layout-fill">
<!-- organizer -->
<div class="pseudo-input-container" ng-show="editor.component.organizer">
<label class="pseudo-input-label"><var:string label:value="Organizer"/></label>
<md-chips class="md-contact-chips sg-readonly"
ng-model="::editor.organizer"
readonly="true">
<md-chip-template>
<div class="md-contact-avatar">
<sg-avatar-image sg-email="$chip.email" size="32"><!-- avatar --></sg-avatar-image>
</div>
<div class="md-contact-name">
<a href="#"
label:aria-label="Email Organizer"
ng-click="editor.newMessageWithRecipient($event, $chip.name, $chip.email)">{{$chip.name}}</a>
</div>
</md-chip-template>
</md-chips>
</div>
<!-- attendees -->
<div class="pseudo-input-container" ng-show="editor.component.attendees.length > 0">
<label class="pseudo-input-label"><var:string label:value="Attendees"/></label>
<!-- md-contact-chips don't support "readonly", so we build them using md-chips
in readonly mode and a template similar to the one of md-contact-chips -->
<md-chips class="md-contact-chips sg-readonly"
ng-model="::editor.component.attendees"
readonly="true">
<md-chip-template>
<div class="md-contact-avatar">
<sg-avatar-image sg-email="$chip.email" size="32"><!-- avatar --></sg-avatar-image>
</div>
<div class="md-contact-name">
<a href="#"
ng-click="editor.newMessageWithRecipient($event, $chip.name, $chip.email)">{{$chip.name}}</a>
</div>
<md-icon ng-class="'icon-' + $chip.status"><!-- partstat --></md-icon>
</md-chip-template>
</md-chips>
</div>
</div>
</md-list-item>
</md-list>
<!-- invitation -->
<md-list ng-show="editor.component.userHasRSVP">
<md-divider><!-- divider --></md-divider>
<md-subheader class="md-no-sticky sg-padded--top"><var:string label:value="You are invited to participate"/></md-subheader>
<!-- participation status -->
<md-list-item>
<md-icon>insert_invitation</md-icon>
<md-input-container>
<md-select ng-model="editor.component.reply">
<var:foreach list="replyList" item="item">
<md-option var:value="item">
<var:string value="itemReplyText"/>
</md-option>
</var:foreach>
</md-select>
</md-input-container>
</md-list-item>
<md-list-item ng-show="editor.component.reply == 4">
<md-icon><!-- space --></md-icon>
<md-autocomplete
class="md-flex"
md-input-name="delegatedTo"
md-search-text="editor.component.delegatedTo"
md-selected-item="cardToAdd"
md-items="card in editor.cardFilter(editor.component.delegatedTo)"
md-item-text="card.$$email"
md-min-length="3"
md-no-cache="true"
label:md-floating-label="Delegated to">
<span class="md-contact-suggestion" layout="row" layout-align="space-between center">
<span class="md-contact-name"
md-highlight-text="editor.component.delegatedTo"
md-highlight-flags="^i">{{card.$$fullname}}</span> <span class="md-contact-email"
md-highlight-text="editor.component.delegatedTo"
md-highlight-flags="^i">{{card.$$email}}</span>
</span>
</md-autocomplete>
</md-list-item>
<!-- reminder -->
<md-list-item ng-show="editor.component.userHasRSVP">
<md-checkbox ng-model="editor.component.$hasAlarm"
label:aria-label="Reminder"><!-- reminder --></md-checkbox>
<p><var:string label:value="Reminder"/></p>
</md-list-item>
</md-list>
<div class="sg-inset" ng-show="editor.component.userHasRSVP">
<span ng-show="editor.component.$hasAlarm"><var:component className="UIxReminderEditor" /></span>
</div>
</md-dialog-content>
<!-- actions -->
<!-- editable but not recurrent -->
<md-dialog-actions ng-show="editor.component.isEditable()">
<md-button class="md-warn"
label:aria-label="Delete Event"
ng-click="editor.deleteAllOccurrences()">
<var:string label:value="Delete"/>
</md-button>
<div class="md-flex"><!-- spacer --></div>
<md-button type="button" ng-click="editor.edit()">
<var:string label:value="Edit"/>
</md-button>
</md-dialog-actions>
<!-- editable and recurrent -->
<md-dialog-actions ng-show="editor.component.isEditableOccurrence()">
<md-menu>
<md-button class="md-warn"
label:aria-label="Delete Event"
ng-click="$mdOpenMenu()"
md-menu-origin="md-menu-origin">
<var:string label:value="Delete"/> <md-icon>arrow_drop_down</md-icon>
</md-button>
<md-menu-content>
<md-menu-item>
<md-button class="md-warn"
ng-click="editor.deleteOccurrence()">
<md-icon>repeat_one</md-icon> <var:string label:value="Delete This Occurrence"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button class="md-warn"
ng-click="editor.deleteAllOccurrences()">
<md-icon>repeat</md-icon> <var:string label:value="Delete All Occurrences"/>
</md-button>
</md-menu-item>
</md-menu-content>
</md-menu>
<div class="md-flex"><!-- spacer --></div>
<md-menu>
<md-button label:aria-label="Edit"
ng-click="$mdOpenMenu()"
md-menu-origin="md-menu-origin">
<var:string label:value="Edit"/> <md-icon>arrow_drop_down</md-icon>
</md-button>
<md-menu-content>
<md-menu-item>
<md-button type="button" ng-click="editor.edit()">
<md-icon>repeat_one</md-icon> <var:string label:value="Edit This Occurrence"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button type="button" ng-click="editor.editAllOccurrences()">
<md-icon>repeat</md-icon> <var:string label:value="Edit All Occurrences"/>
</md-button>
</md-menu-item>
</md-menu-content>
</md-menu>
</md-dialog-actions>
<!-- invitation but not recurrent -->
<md-dialog-actions ng-show="editor.component.isInvitation()">
<md-button class="md-warn"
label:aria-label="Delete Event"
ng-click="editor.deleteAllOccurrences()">
<var:string label:value="Delete"/>
</md-button>
<div class="md-flex"><!-- spacer --></div>
<md-button type="button" ng-click="editor.reply()">
<var:string label:value="Update"/>
</md-button>
</md-dialog-actions>
<!-- invitation and recurrent -->
<md-dialog-actions ng-show="editor.component.isInvitationOccurrence()">
<md-menu>
<md-button class="md-warn"
label:aria-label="Delete Event"
ng-click="$mdOpenMenu()"
md-menu-origin="md-menu-origin">
<var:string label:value="Delete"/> <md-icon>arrow_drop_down</md-icon>
</md-button>
<md-menu-content>
<md-menu-item>
<md-button class="md-warn"
ng-click="editor.deleteOccurrence()">
<md-icon>repeat_one</md-icon> <var:string label:value="Delete This Occurrence"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button class="md-warn"
ng-click="editor.deleteAllOccurrences()">
<md-icon>repeat</md-icon> <var:string label:value="Delete All Occurrences"/>
</md-button>
</md-menu-item>
</md-menu-content>
</md-menu>
<div class="md-flex"><!-- spacer --></div>
<md-menu>
<md-button label:aria-label="Update"
ng-click="$mdOpenMenu()"
md-menu-origin="md-menu-origin">
<var:string label:value="Update"/> <md-icon>arrow_drop_down</md-icon>
</md-button>
<md-menu-content>
<md-menu-item>
<md-button type="button" ng-click="editor.reply()">
<md-icon>repeat_one</md-icon> <var:string label:value="Update This Occurrence"/>
</md-button>
</md-menu-item>
<md-menu-item>
<md-button type="button" ng-click="editor.replyAllOccurrences()">
<md-icon>repeat</md-icon> <var:string label:value="Update All Occurrences"/>
</md-button>
</md-menu-item>
</md-menu-content>
</md-menu>
</md-dialog-actions>
</md-dialog>
</container>