468073b131
Monotone-Parent: 508bbe52515b0ad7119c755b4cc91d17e313c06b Monotone-Revision: d09001490c2d88332ef3ec446bfd0aa488d0de8c Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2009-11-04T22:13:20 Monotone-Branch: ca.inverse.sogo
255 lines
9.2 KiB
XML
255 lines
9.2 KiB
XML
<?xml version="1.0" standalone="yes"?>
|
|
<!DOCTYPE div>
|
|
<div xmlns="http://www.w3.org/1999/xhtml"
|
|
xmlns:var="http://www.skyrix.com/od/binding"
|
|
xmlns:label="OGo:label"
|
|
xmlns:const="http://www.skyrix.com/od/constant"
|
|
xmlns:rsrc="OGo:url"
|
|
class="linked_attachment_frame"
|
|
>
|
|
<!-- TODO: add iMIP actions -->
|
|
|
|
<input id="iCalendarAttachment" type="hidden"
|
|
var:value="pathToAttachment"/>
|
|
|
|
<var:if condition="couldParseCalendar" const:negate="1">
|
|
<fieldset>
|
|
<legend>Parsing Error</legend>
|
|
|
|
The SOGo/SOPE iCalendar parser could not parse the body of this MIME part.
|
|
|
|
<pre><var:string value="flatContentAsString" /></pre>
|
|
</fieldset>
|
|
</var:if>
|
|
|
|
<var:if condition="couldParseCalendar">
|
|
<div class="popupMenu" id="contactsMenu">
|
|
<ul></ul>
|
|
</div>
|
|
<fieldset>
|
|
<legend>
|
|
<var:string label:value="Appointment"/>:
|
|
<strong><var:string value="inEvent.summary" /></strong> <!-- TODO: shorted title -->
|
|
|
|
<var:if condition="isLoggedInUserTheOrganizer">
|
|
(<var:string label:value="organized_by_you"/>)
|
|
</var:if>
|
|
<var:if condition="isLoggedInUserAnAttendee">
|
|
(<var:string label:value="you_are_an_attendee"/>)
|
|
</var:if>
|
|
</legend>
|
|
|
|
<var:if condition="inCalendar.method.uppercaseString" const:value="REQUEST">
|
|
<!-- sent to attendees to propose or update a meeting -->
|
|
<var:if condition="isLoggedInUserAnAttendee">
|
|
<var:if condition="hasCalendarAccess">
|
|
<div class="uix_ical_toolbar" id="iCalendarToolbar">
|
|
<p>
|
|
<var:if condition="currentUserAttendee.partStatWithDefault"
|
|
const:value="ACCEPTED" const:negate="YES">
|
|
<a href="#" class="button actionButton" id="iCalendarAccept">
|
|
<span><var:string label:value="Accept" /></span></a>
|
|
</var:if>
|
|
<var:if condition="currentUserAttendee.partStatWithDefault"
|
|
const:value="DECLINED" const:negate="YES">
|
|
<a href="#" class="button actionButton" id="iCalendarDecline">
|
|
<span><var:string label:value="Decline" /></span></a>
|
|
</var:if>
|
|
<var:if condition="currentUserAttendee.partStatWithDefault"
|
|
const:value="DELEGATED" const:negate="YES">
|
|
<a href="#" class="button actionButton" id="editDelegate">
|
|
<span><var:string label:value="Delegate ..." /></span></a>
|
|
<span id="delegateEditor" style="display: none;">
|
|
<span class="floatLeft"><var:string label:value="Delegated to" /></span>
|
|
<input name="delegatedTo" id="delegatedTo" type="text" />
|
|
<a href="#" class="button actionButton" id="iCalendarDelegate" name="delegateOK">
|
|
<span><var:string label:value="OK" /></span></a>
|
|
</span>
|
|
</var:if>
|
|
<var:if condition="currentUserAttendee.partStatWithDefault"
|
|
const:value="DELEGATED">
|
|
<span id="delegateEditor">
|
|
<span class="floatLeft"><var:string label:value="Delegated to" />
|
|
<a var:href="currentUserAttendee.delegatedTo" name="delegatedToLink" id="delegatedToLink"><var:string value="currentUserAttendee.delegatedTo.rfc822Email" /></a></span>
|
|
<input name="delegatedTo" id="delegatedTo" type="text" var:value="currentUserAttendee.delegatedTo.rfc822Email" var:uid="currentUserAttendee.delegatedTo.rfc822Email" style="display: none;" />
|
|
<a href="#" class="button actionButton" id="iCalendarDelegate" style="display: none;">
|
|
<span><var:string label:value="OK" /></span></a>
|
|
</span>
|
|
</var:if>
|
|
<var:if condition="isEventStoredInCalendar" const:negate="YES">
|
|
<a href="#" class="button actionButton" id="iCalendarAddToCalendar">
|
|
<span><var:string label:value="Add to calendar" /></span></a>
|
|
</var:if>
|
|
</p>
|
|
</div>
|
|
</var:if>
|
|
|
|
<p class="clear">
|
|
<var:string label:value="Organizer" />
|
|
<a var:href="inEvent.organizer.email"
|
|
><var:string value="organizerDisplayName" /></a>
|
|
<var:string label:value="request_info" />
|
|
</p>
|
|
</var:if>
|
|
|
|
<var:if condition="isLoggedInUserAnAttendee" const:negate="YES">
|
|
<p>
|
|
<var:string label:value="Organizer" />
|
|
<a var:href="inEvent.organizer.email"
|
|
><var:string value="organizerDisplayName" /></a>
|
|
<var:string label:value="request_info_no_attendee" />
|
|
</p>
|
|
</var:if>
|
|
</var:if>
|
|
|
|
|
|
<var:if condition="inCalendar.method.uppercaseString" const:value="REPLY">
|
|
<!-- sent to organizer to update the status of the participant -->
|
|
<var:if condition="isReplySenderAnAttendee" const:negate="1">
|
|
<p><var:string label:value="reply_info_no_attendee" /></p>
|
|
</var:if>
|
|
|
|
<var:if condition="isReplySenderAnAttendee">
|
|
<var:if condition="canOriginalEventBeUpdated"
|
|
><p class="uix_ical_toolbar">
|
|
<input id="iCalendarUpdateUserStatus" class="button"
|
|
type="button" label:value="Update status"/>
|
|
</p>
|
|
|
|
<!-- TODO: replies to events not in the calendar? -->
|
|
|
|
<p>
|
|
Status Update:
|
|
<var:string label:value="$inReplyAttendee.partStatWithDefault" />,
|
|
was:
|
|
<var:string
|
|
label:value="$storedReplyAttendee.partStatWithDefault" />.
|
|
</p></var:if>
|
|
</var:if>
|
|
</var:if>
|
|
|
|
<var:if condition="inCalendar.method.uppercaseString" const:value="CANCEL">
|
|
<!-- sent to attendees to notify of the attendee being removed or the
|
|
event being deleted -->
|
|
<var:if condition="isEventStoredInCalendar">
|
|
<div class="uix_ical_toolbar">
|
|
<a href="#" id="iCalendarDeleteFromCalendar" class="button">
|
|
<span><var:string label:value="Delete from calendar" /></span></a>
|
|
</div>
|
|
</var:if>
|
|
|
|
<p class="clear">
|
|
<!-- todo: if there are no attendees, the whole meeting was stopped -->
|
|
<var:string label:value="cancel_info_text" />
|
|
</p>
|
|
</var:if>
|
|
|
|
|
|
<var:if condition="inCalendar.method.uppercaseString" const:value="ADD">
|
|
<!-- TODO -->
|
|
<p><var:string label:value="add_info_text" /></p>
|
|
</var:if>
|
|
|
|
|
|
<var:if condition="inCalendar.method.uppercaseString" const:value="PUBLISH">
|
|
<!-- none-scheduling event sent to someone for adding to the calendar -->
|
|
<p><var:string label:value="publish_info_text" /></p>
|
|
</var:if>
|
|
|
|
|
|
<var:if condition="isLoggedInUserTheOrganizer">
|
|
<!--
|
|
Possible Status:
|
|
REPLY => check whether it matches, if not suggest change, show
|
|
comment
|
|
REFRESH => add button to resent iCal
|
|
COUNTER => show panel to decide on counter
|
|
-->
|
|
</var:if>
|
|
<var:if condition="isLoggedInUserTheOrganizer" const:negate="1">
|
|
<!--
|
|
Possible Status:
|
|
REQUEST => ACCEPT, TENTATIVELY, DECLINE buttons with comment field
|
|
- only show buttons for attendees
|
|
PUBLISH => just the 'add to calendar' button, rewrite organizer?
|
|
ADD / CANCEL
|
|
DECLINE-COUNTER
|
|
-->
|
|
</var:if>
|
|
|
|
<!-- the user comment is used in replies -->
|
|
<var:if condition="inEvent.userComment.isNotEmpty">
|
|
<div class="linked_attachment_meta" style="background-color: white;">
|
|
<var:string value="inEvent.userComment" const:insertBR="1" />
|
|
</div>
|
|
<br />
|
|
</var:if>
|
|
|
|
<div class="linked_attachment_meta" style="background-color: white;">
|
|
<table border="0" class="linked_attachment_meta">
|
|
<tr>
|
|
<td><var:string label:value="Time"/>:</td>
|
|
<td>
|
|
<!-- TODO: we need a better viewer for that -->
|
|
<var:string value="startDate" />
|
|
<var:if condition="inEvent.isAllDay" const:negate="YES">
|
|
<var:string value="startTime" />
|
|
</var:if>
|
|
<var:if condition="isEndDateOnSameDay">
|
|
<var:if condition="inEvent.isAllDay" const:negate="YES">
|
|
<var:string label:value="to" />
|
|
<var:string value="endTime" />
|
|
</var:if>
|
|
</var:if>
|
|
<var:if condition="isEndDateOnSameDay" const:negate="YES">
|
|
<var:string label:value="to" />
|
|
<var:string value="endDate" />
|
|
<var:if condition="inEvent.isAllDay" const:negate="YES">
|
|
<var:string value="endTime" />
|
|
</var:if>
|
|
</var:if>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><var:string label:value="Organizer"/>:</td>
|
|
<td>
|
|
<a var:href="authorativeEvent.organizer.email"
|
|
><var:string value="organizerDisplayName" /></a>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td valign="top"><var:string label:value="Attendees"/>:</td>
|
|
<td id="iCalAttendees">
|
|
<var:foreach list="authorativeEvent.participants" item="attendee">
|
|
<var:if condition="attendee.delegatedTo" const:negate="YES"><!-- don't show attendees that delegated the invitation --><span var:class="currentAttendeeClass"><a var:href="attendee.email">
|
|
<var:string value="attendeeForDisplay"/></a>
|
|
(<var:string label:value="$attendee.partStatWithDefault" /><var:if condition="attendee.delegatedTo"> <var:string label:value="to" /> <var:string value="attendee.delegatedTo.rfc822Email" /></var:if><var:if condition="attendee.delegatedFrom">, <var:string label:value="delegated from" /> <var:string value="attendee.delegatedFrom.rfc822Email" /></var:if>)</span>
|
|
<br /></var:if>
|
|
</var:foreach>
|
|
</td>
|
|
</tr>
|
|
|
|
<var:if condition="authorativeEvent.comment.isNotEmpty">
|
|
<tr> <!-- description in iCal -->
|
|
<td valign="top"><var:string label:value="Comment"/>:</td>
|
|
<td>
|
|
<var:string value="authorativeEvent.comment" const:insertBR="1" />
|
|
</td>
|
|
</tr>
|
|
</var:if>
|
|
</table>
|
|
</div>
|
|
</fieldset>
|
|
</var:if><!-- could parse -->
|
|
|
|
<!--
|
|
<var:string value="appointment" />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
-->
|
|
<!-- <pre style="display: none;"><var:string value="flatContentAsString" /></pre> -->
|
|
</div>
|