]> err.no Git - scalable-opengroupware.org/blob - UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox
improved reliability on iCal viewer
[scalable-opengroupware.org] / UI / Templates / MailPartViewers / UIxMailPartICalViewer.wox
1 <?xml version="1.0" standalone="yes"?>
2 <div xmlns="http://www.w3.org/1999/xhtml"
3      xmlns:var="http://www.skyrix.com/od/binding"
4      xmlns:label="OGo:label"
5      xmlns:const="http://www.skyrix.com/od/constant"
6      xmlns:rsrc="OGo:url"
7      class="linked_attachment_frame"
8 >
9   <!-- TODO: add iMIP actions -->
10
11  <var:if condition="couldParseCalendar" const:negate="1">
12   <fieldset>
13     <legend>Parsing Error</legend>
14     
15     The SOGo/SOPE iCalendar parser could not parse the body of this MIME part.
16
17     <pre><var:string value="flatContentAsString" /></pre>
18   </fieldset>
19  </var:if>
20
21  <var:if condition="couldParseCalendar">
22   <fieldset>
23     <legend>
24       <var:string label:value="Appointment"/>:
25       <var:string value="inEvent.summary" /> <!-- TODO: shorted title -->
26
27       <var:if condition="isLoggedInUserTheOrganizer">
28         (<var:string label:value="organized_by_you"/>)
29       </var:if>
30       <var:if condition="isLoggedInUserAnAttendee">
31         (<var:string label:value="you_are_an_attendee"/>)
32       </var:if>
33     </legend>
34     
35     
36     <var:if condition="inCalendar.method" const:value="REQUEST">
37       <!-- sent to attendees to propose or update a meeting -->
38       <var:if condition="isLoggedInUserAnAttendee">
39         <p class="uix_ical_toolbar">
40           <a var:href="acceptLink"    label:string="do_accept"/>  |
41           <a var:href="declineLink"   label:string="do_decline"/> |
42           <a var:href="tentativeLink" label:string="do_tentative"/>
43           <var:if condition="isEventStoredInCalendar" const:negate="1">
44             | <a var:href="addToCalendarLink" label:string="do_add_to_cal" />
45           </var:if>
46         </p>
47       
48         <p>
49           <var:string label:value="Organizer" />
50           <a var:href="inEvent.organizer.email"
51             ><var:string value="organizerDisplayName" /></a>
52           <var:string label:value="request_info" />
53         </p>
54       </var:if>
55       
56       <var:if condition="isLoggedInUserAnAttendee" const:negate="1">
57         <p>
58           <var:string label:value="Organizer" />
59           <a var:href="inEvent.organizer.email"
60             ><var:string value="organizerDisplayName" /></a>
61           <var:string label:value="request_info_no_attendee" />
62         </p>
63       </var:if>
64     </var:if>
65
66     
67     <var:if condition="inCalendar.method" const:value="REPLY">
68       <!-- sent to organizer to update the status of the participant -->
69       <var:if condition="isReplySenderAnAttendee" const:negate="1">
70         <p><var:string label:value="reply_info_no_attendee" /></p>
71       </var:if>
72
73       <var:if condition="isReplySenderAnAttendee">
74         <p class="uix_ical_toolbar">
75           <a var:href="addStatusReplyLink"
76              var:_newstat="$inReplyAttendee.partStatWithDefault"
77              var:_sender="replySenderBaseEMail"
78              label:string="do_update_status"/>
79         </p>
80         
81         <!-- TODO: replies to events not in the calendar? -->
82         
83         <p>
84           Status Update:
85           <var:string label:value="$inReplyAttendee.partStatWithDefault" />,
86           was:
87           <var:string
88               label:value="$storedReplyAttendee.partStatWithDefault" />.
89         </p>
90       </var:if>
91     </var:if>
92
93     
94     <var:if condition="inCalendar.method" const:value="CANCEL">
95       <!-- sent to attendees to notify of the attendee being removed or the
96            event being deleted -->
97       <var:if condition="isEventStoredInCalendar">
98         <p class="uix_ical_toolbar">
99           <a var:href="delFromCalendarLink" label:string="do_del_from_cal"/>
100         </p>
101       </var:if>
102       
103       <p>
104         <!-- todo: if there are no attendees, the whole meeting was stopped -->
105         <var:string label:value="cancel_info_text" />
106       </p>
107     </var:if>
108
109
110     <var:if condition="inCalendar.method" const:value="ADD">
111       <!-- TODO -->
112       <p><var:string label:value="add_info_text" /></p>
113     </var:if>
114
115
116     <var:if condition="inCalendar.method" const:value="PUBLISH">
117       <!-- none-scheduling event sent to someone for adding to the calendar -->
118       <p><var:string label:value="publish_info_text" /></p>
119     </var:if>
120     
121     
122     <var:if condition="isLoggedInUserTheOrganizer">
123       <!--
124          Possible Status:
125            REPLY    => check whether it matches, if not suggest change, show
126                        comment
127            REFRESH  => add button to resent iCal
128            COUNTER  => show panel to decide on counter
129         -->
130     </var:if>
131     <var:if condition="isLoggedInUserTheOrganizer" const:negate="1">
132       <!--
133          Possible Status:
134            REQUEST => ACCEPT, TENTATIVELY, DECLINE buttons with comment field
135              - only show buttons for attendees
136            PUBLISH => just the 'add to calendar' button, rewrite organizer?
137            ADD / CANCEL
138            DECLINE-COUNTER
139         -->
140     </var:if>
141
142
143     <!-- the user comment is used in replies -->
144     <var:if condition="inEvent.userComment.isNotEmpty">
145       <div class="linked_attachment_meta" style="background-color: white;">
146         <var:string value="inEvent.userComment" const:insertBR="1" />
147       </div>
148       <br />
149     </var:if>
150
151     
152     <div class="linked_attachment_meta" style="background-color: white;">
153       <table border="0" class="linked_attachment_meta">
154         <tr>
155           <td><var:string label:value="Time"/>:</td>
156           <td>
157             <!-- TODO: we need a better viewer for that -->
158             <var:string value="startTime" formatter="dateFormatter" />
159             <var:string label:value="to" />
160             <var:string value="endTime" formatter="dateFormatter" />
161           </td>
162         </tr>
163
164         <tr>
165           <td><var:string label:value="Organizer"/>:</td>
166           <td>
167             <a var:href="authorativeEvent.organizer.email"
168                 ><var:string value="organizerDisplayName" /></a>
169           </td>
170         </tr>
171         
172         <tr>
173           <td valign="top"><var:string label:value="Attendees"/>:</td>
174           <td>
175             <var:foreach list="authorativeEvent.participants" item="attendee">
176               <a var:href="attendee.email"
177                  ><var:string value="attendee.cnForDisplay" /></a>
178               (<var:string label:value="$attendee.partStatWithDefault" />)
179               <br />
180             </var:foreach>
181           </td>
182         </tr>
183         
184         <var:if condition="inEvent.comment.isNotEmpty">
185           <tr> <!-- description in iCal -->
186             <td valign="top"><var:string label:value="Comment"/>:</td>
187             <td>
188              <var:string value="authorativeEvent.comment" const:insertBR="1" />
189             </td>
190           </tr>
191         </var:if>
192       </table>
193     </div>
194   </fieldset>
195  </var:if><!-- could parse -->
196
197 <!--
198   <var:string value="appointment" />
199   <br />
200   <br />
201   <br />
202 -->
203   <pre style="display: none;"><var:string value="flatContentAsString" /></pre>
204 </div>