1 <?xml version="1.0" standalone="yes"?>
3 <div xmlns="http://www.w3.org/1999/xhtml"
4 xmlns:var="http://www.skyrix.com/od/binding"
5 xmlns:label="OGo:label"
6 xmlns:const="http://www.skyrix.com/od/constant"
8 class="linked_attachment_frame"
10 <!-- TODO: add iMIP actions -->
12 <input id="iCalendarAttachment" type="hidden"
13 var:value="pathToAttachment"/>
15 <var:if condition="couldParseCalendar" const:negate="1">
17 <legend>Parsing Error</legend>
19 The SOGo/SOPE iCalendar parser could not parse the body of this MIME part.
21 <pre><var:string value="flatContentAsString" /></pre>
25 <var:if condition="couldParseCalendar">
28 <var:string label:value="Appointment"/>:
29 <var:string value="inEvent.summary" /> <!-- TODO: shorted title -->
31 <var:if condition="isLoggedInUserTheOrganizer">
32 (<var:string label:value="organized_by_you"/>)
34 <var:if condition="isLoggedInUserAnAttendee">
35 (<var:string label:value="you_are_an_attendee"/>)
39 <var:if condition="inCalendar.method.uppercaseString" const:value="REQUEST">
40 <!-- sent to attendees to propose or update a meeting -->
41 <var:if condition="isLoggedInUserAnAttendee">
42 <var:if condition="$storedReplyAttendee.partStatWithDefault"
43 const:value="NEEDS-ACTION" const:negate="YES">
44 <p class="uix_ical_toolbar" id="iCalendarToolbar">
45 <input id="iCalendarAccept" class="button"
46 type="button" label:value="Accept"/>
47 <input id="iCalendarDecline" class="button"
48 type="button" label:value="Decline"/>
49 <!-- <input id="iCalendarTentative" class="button"
50 type="button" label:value="Tentative"/> -->
51 <var:if condition="isEventStoredInCalendar" const:negate="YES">
52 | <input id="iCalendarAddToCalendar" class="button"
53 type="button" label:value="Add to calendar"/>
59 <var:string label:value="Organizer" />
60 <a var:href="inEvent.organizer.email"
61 ><var:string value="organizerDisplayName" /></a>
62 <var:string label:value="request_info" />
66 <var:if condition="isLoggedInUserAnAttendee" const:negate="YES">
68 <var:string label:value="Organizer" />
69 <a var:href="inEvent.organizer.email"
70 ><var:string value="organizerDisplayName" /></a>
71 <var:string label:value="request_info_no_attendee" />
77 <var:if condition="inCalendar.method.uppercaseString" const:value="REPLY">
78 <!-- sent to organizer to update the status of the participant -->
79 <var:if condition="isReplySenderAnAttendee" const:negate="1">
80 <p><var:string label:value="reply_info_no_attendee" /></p>
83 <var:if condition="isReplySenderAnAttendee">
84 <var:if condition="hasSenderStatusChanged"
85 ><p class="uix_ical_toolbar">
86 <input id="iCalendarUpdateUserStatus" class="button"
87 type="button" label:value="Update status"/>
90 <!-- TODO: replies to events not in the calendar? -->
94 <var:string label:value="$inReplyAttendee.partStatWithDefault" />,
97 label:value="$storedReplyAttendee.partStatWithDefault" />.
102 <var:if condition="inCalendar.method.uppercaseString" const:value="CANCEL">
103 <!-- sent to attendees to notify of the attendee being removed or the
104 event being deleted -->
105 <var:if condition="isEventStoredInCalendar">
106 <p class="uix_ical_toolbar">
107 <input id="iCalendarDeleteFromCalendar" class="button"
108 type="button" label:value="Delete from calendar"/>
113 <!-- todo: if there are no attendees, the whole meeting was stopped -->
114 <var:string label:value="cancel_info_text" />
119 <var:if condition="inCalendar.method.uppercaseString" const:value="ADD">
121 <p><var:string label:value="add_info_text" /></p>
125 <var:if condition="inCalendar.method.uppercaseString" const:value="PUBLISH">
126 <!-- none-scheduling event sent to someone for adding to the calendar -->
127 <p><var:string label:value="publish_info_text" /></p>
131 <var:if condition="isLoggedInUserTheOrganizer">
134 REPLY => check whether it matches, if not suggest change, show
136 REFRESH => add button to resent iCal
137 COUNTER => show panel to decide on counter
140 <var:if condition="isLoggedInUserTheOrganizer" const:negate="1">
143 REQUEST => ACCEPT, TENTATIVELY, DECLINE buttons with comment field
144 - only show buttons for attendees
145 PUBLISH => just the 'add to calendar' button, rewrite organizer?
151 <!-- the user comment is used in replies -->
152 <var:if condition="inEvent.userComment.isNotEmpty">
153 <div class="linked_attachment_meta" style="background-color: white;">
154 <var:string value="inEvent.userComment" const:insertBR="1" />
159 <div class="linked_attachment_meta" style="background-color: white;">
160 <table border="0" class="linked_attachment_meta">
162 <td><var:string label:value="Time"/>:</td>
164 <!-- TODO: we need a better viewer for that -->
165 <var:string value="startTime" formatter="dateFormatter" />
166 <var:string label:value="to" />
167 <var:string value="endTime" formatter="dateFormatter" />
172 <td><var:string label:value="Organizer"/>:</td>
174 <a var:href="authorativeEvent.organizer.email"
175 ><var:string value="organizerDisplayName" /></a>
180 <td valign="top"><var:string label:value="Attendees"/>:</td>
182 <var:foreach list="authorativeEvent.participants" item="attendee">
183 <a var:href="attendee.email"><var:string value="attendeeForDisplay"/></a>
184 (<var:string label:value="$attendee.partStatWithDefault" />)
190 <var:if condition="inEvent.comment.isNotEmpty">
191 <tr> <!-- description in iCal -->
192 <td valign="top"><var:string label:value="Comment"/>:</td>
194 <var:string value="authorativeEvent.comment" const:insertBR="1" />
201 </var:if><!-- could parse -->
204 <var:string value="appointment" />
209 <pre style="display: none;"><var:string value="flatContentAsString" /></pre>