Convert UIxComponentEditor to a SOGoDirectAction

Cleaning up unused templates.
pull/241/head
Francis Lachapelle 2018-05-18 12:10:10 -04:00
parent a0582c7e1e
commit 03b36e0bcd
8 changed files with 39 additions and 627 deletions

View File

@ -23,6 +23,7 @@
#import <Foundation/NSValue.h>
#import <NGObjWeb/SoSecurityManager.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGObjWeb/WORequest.h>
#import <NGObjWeb/WOResponse.h>
#import <NGObjWeb/NSException+HTTP.h>
@ -56,14 +57,14 @@
@implementation UIxAppointmentEditor
- (id) init
- (id) initWithContext: (WOContext *) _context
{
SOGoUser *user;
if ((self = [super init]))
if ((self = [super initWithContext: _context]))
{
user = [[self context] activeUser];
ASSIGN (dateFormatter, [user dateFormatterInContext: context]);
user = [_context activeUser];
ASSIGN (dateFormatter, [user dateFormatterInContext: _context]);
}
return self;

View File

@ -21,13 +21,13 @@
#ifndef UIXCOMPONENTEDITOR_H
#define UIXCOMPONENTEDITOR_H
#import <SOGoUI/UIxComponent.h>
#import <SOGoUI/SOGoDirectAction.h>
@class NSDictionary;
@class iCalRepeatableEntityObject;
@interface UIxComponentEditor : UIxComponent
@interface UIxComponentEditor : SOGoDirectAction
{
iCalRepeatableEntityObject *component;
SOGoAppointmentFolder *componentCalendar;

View File

@ -27,6 +27,7 @@
#import <NGCards/NSCalendarDate+NGCards.h>
#import <NGObjWeb/SoSecurityManager.h>
#import <NGObjWeb/NSException+HTTP.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGObjWeb/WORequest.h>
#import <NGObjWeb/WOResponse.h>
#import <NGExtensions/NSCalendarDate+misc.h>
@ -125,17 +126,20 @@ static NSArray *reminderValues = nil;
[super dealloc];
}
- (void) setClientObject: (id)_client
- (id) initWithContext: (WOContext *) _context
{
[super setClientObject: _client]; // WOComponent+SoObjects
if ((self = [super initWithContext: _context]))
{
component = [[self clientObject] occurence];
[[component parent] retain];
component = [[self clientObject] occurence];
[[component parent] retain];
componentCalendar = [[self clientObject] container];
if ([componentCalendar isKindOfClass: [SOGoCalendarComponent class]])
componentCalendar = [componentCalendar container];
[componentCalendar retain];
}
componentCalendar = [[self clientObject] container];
if ([componentCalendar isKindOfClass: [SOGoCalendarComponent class]])
componentCalendar = [componentCalendar container];
[componentCalendar retain];
return self;
}
- (BOOL) isChildOccurrence

View File

@ -22,6 +22,7 @@
#import <NGObjWeb/SoPermissions.h>
#import <NGObjWeb/SoSecurityManager.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <NGObjWeb/WORequest.h>
#import <NGObjWeb/WOResponse.h>
#import <NGObjWeb/NSException+HTTP.h>
@ -49,16 +50,14 @@
@implementation UIxTaskEditor
- (id) init
- (id) initWithContext: (WOContext *) _context
{
SOGoUser *user;
if ((self = [super init]))
if ((self = [super initWithContext: _context]))
{
// item = nil;
user = [[self context] activeUser];
ASSIGN (dateFormatter, [user dateFormatterInContext: context]);
user = [_context activeUser];
ASSIGN (dateFormatter, [user dateFormatterInContext: _context]);
}
return self;
@ -140,6 +139,8 @@
// }
/* actions */
/*
- (NSCalendarDate *) newStartDate
{
NSCalendarDate *newStartDate, *now;
@ -177,6 +178,7 @@
return newStartDate;
}
*/
// - (id <WOActionResults>) defaultAction
// {
@ -602,6 +604,7 @@
return [self responseWithStatus: 200 andJSONRepresentation: data];
}
/*
- (id) changeStatusAction
{
NSString *newStatus;
@ -624,5 +627,6 @@
return [self responseWith204];
}
*/
@end

View File

@ -246,30 +246,22 @@
methods = {
view = {
protectedBy = "ViewAllComponent";
pageName = "UIxAppointmentEditor";
actionClass = "UIxAppointmentEditor";
actionName = "view";
};
edit = {
protectedBy = "ViewAllComponent";
pageName = "UIxAppointmentEditor";
};
editAsAppointment = {
protectedBy = "ViewAllComponent";
pageName = "UIxAppointmentEditor";
};
save = {
protectedBy = "ModifyComponent";
pageName = "UIxAppointmentEditor";
actionClass = "UIxAppointmentEditor";
actionName = "save";
};
rsvpAppointment = {
protectedBy = "RespondToComponent";
pageName = "UIxAppointmentEditor";
actionClass = "UIxAppointmentEditor";
actionName = "rsvp";
};
saveAsAppointment = {
protectedBy = "ModifyComponent";
pageName = "UIxAppointmentEditor";
actionClass = "UIxAppointmentEditor";
actionName = "save";
};
copy = {
@ -305,35 +297,22 @@
methods = {
view = {
protectedBy = "ViewAllComponent";
pageName = "UIxTaskEditor";
actionClass = "UIxTaskEditor";
actionName = "view";
};
edit = {
protectedBy = "ViewAllComponent";
pageName = "UIxTaskEditor";
};
editAsTask = {
protectedBy = "ViewAllComponent";
pageName = "UIxTaskEditor";
};
save = {
protectedBy = "ModifyComponent";
pageName = "UIxTaskEditor";
actionClass = "UIxTaskEditor";
actionName = "save";
};
saveAsTask = {
protectedBy = "ModifyComponent";
pageName = "UIxTaskEditor";
actionClass = "UIxTaskEditor";
actionName = "save";
};
changeStatus = {
protectedBy = "ModifyComponent";
pageName = "UIxTaskEditor";
actionName = "changeStatus";
};
raw = {
protectedBy = "ViewAllComponent";
pageName = "UIxTaskEditor";
actionClass = "UIxTaskEditor";
actionName = "raw";
};
};
@ -366,13 +345,9 @@
};
};
methods = {
edit = {
protectedBy = "ViewAllComponent";
pageName = "UIxAppointmentEditor";
};
save = {
protectedBy = "ModifyComponent";
pageName = "UIxAppointmentEditor";
actionClass = "UIxAppointmentEditor";
actionName = "save";
};
delete = {
@ -396,13 +371,9 @@
};
};
methods = {
edit = {
protectedBy = "ViewAllComponent";
pageName = "UIxTaskEditor";
};
save = {
protectedBy = "ModifyComponent";
pageName = "UIxTaskEditor";
actionClass = "UIxTaskEditor";
actionName = "save";
};
delete = {

View File

@ -1,90 +0,0 @@
<?xml version='1.0' standalone='yes'?>
<!DOCTYPE var:component>
<var:component
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:uix="OGo:uix"
xmlns:rsrc="OGo:url"
xmlns:label="OGo:label"
className="UIxComponentEditor"
componentCalendar="componentCalendar"
eventIsReadOnly="eventIsReadOnly"
var:component="event"
var:rsvpURL="rsvpURL"
var:saveURL="saveURL">
<var:if condition="eventIsReadOnly" const:negate="YES">
<div class="menu" id="attendeesMenu">
<ul>
<li><var:string label:value="Invite Attendees"/>...</li>
<li class="separator"><!-- separator --></li>
<li><var:string label:value="Compose E-Mail to All Attendees" />...</li>
<li id="composeToUndecidedAttendees"><var:string label:value="Compose E-Mail to Undecided Attendees" />...</li>
<li class="separator"><!-- separator --></li>
</ul>
</div>
<label id="attendeesLabel"><var:string label:value="Attendees"
/><span class="content"
><a href="#" id="attendeesHref"><!-- space --></a></span></label>
<hr />
<label><span class="content">
<span id="allDay"><input id="isAllDay" name="isAllDay" class="checkBox"
type="checkbox" var:selection="isAllDay"
var:checked="isAllDay"
/> <var:string label:value="All day Event"
/></span></span></label>
<span class="checkBoxList"><var:string label:value="Start" />
<span class="content"><var:component className="UIxTimeDateControl"
const:controlID="startTime"
date="aptStartDate"
const:dayStartHour="0"
const:dayEndHour="23"
/></span></span>
<span class="checkBoxList"><var:string label:value="End" />
<span class="content"><var:component className="UIxTimeDateControl"
const:controlID="endTime"
date="aptEndDate"
const:dayStartHour="0"
const:dayEndHour="23"
/></span></span>
<label><span class="content">
<span id="isTransparent"><input class="checkBox"
type="checkbox" name="isTransparent" var:selection="isTransparent"
var:checked="isTransparent"
/> <var:string label:value="Show Time as Free"
/></span></span></label>
<label><span class="content">
<span id="sendAppointmentNotifications"><input class="checkBox"
type="checkbox" name="sendAppointmentNotifications" var:selection="sendAppointmentNotifications"
var:checked="sendAppointmentNotifications"
/> <var:string label:value="Send Appointment Notifications"
/></span></span></label>
</var:if>
<var:if condition="eventIsReadOnly">
<var:if condition="isAllDay">
<label><var:string label:value="Start" />
<span class="content"><var:string var:value="aptStartDateText"/> (<var:string label:value="All day Event"/>)</span>
</label>
<var:if condition="startDateIsEqualToEndDate" const:negate="YES">
<label><var:string label:value="End" />
<span class="content"><var:string var:value="aptEndDateText" /></span>
</label>
</var:if>
</var:if>
<var:if condition="isAllDay" const:negate="YES">
<label><var:string label:value="Start" />
<span class="content"><var:string var:value="aptStartDateTimeText" /></span>
</label>
<label><var:string label:value="End" />
<span class="content"><var:string var:value="aptEndDateTimeText" /></span>
</label>
</var:if>
<var:if condition="isTransparent">
<label><span class="content">
<span id="isTransparent"><var:string label:value="Show Time as Free"
/></span></span></label>
</var:if>
</var:if>
</var:component>

View File

@ -1,401 +0,0 @@
<?xml version='1.0' standalone='yes'?>
<!DOCTYPE var:component>
<var:component
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:uix="OGo:uix"
xmlns:rsrc="OGo:url"
xmlns:label="OGo:label"
className="UIxPageFrame"
const:popup="YES"
title="name"
var:toolbar="toolbar"
const:cssFiles="datepicker.css,SOGoTimePicker.css,UIxComponentEditor.css"
const:jsFiles="datepicker.js,UIxComponentEditor.js,SOGoAutoCompletion.js,SOGoTimePicker.js">
<script type="text/javascript">
var activeCalendar = '<var:string value="componentCalendar.nameInContainer"/>';
var activeComponent = '<var:if condition="isChildOccurence"><var:string value="clientObject.container.nameInContainer"/>/</var:if><var:string value="clientObject.nameInContainer"/>';
var readOnly = <var:if condition="eventIsReadOnly">true</var:if><var:if condition="eventIsReadOnly"
const:negate="YES">false</var:if>;
var attendees = <var:string value="jsonAttendees" const:escapeHTML="NO"/>;
var ownerLogin = '<var:string value="ownerLogin"/>';
var emailAlarmsEnabled = <var:string value="emailAlarmsEnabled"/>;
var firstDayOfWeek = <var:string value="firstDayOfWeek"/>;
<var:if condition="eventIsReadOnly" const:negate="YES"
><var:if condition="hasOrganizer">var organizer = <var:string value="jsonOrganizer" const:escapeHTML="NO"/>;</var:if
>var owners = <var:string value="calendarOwnerList.jsonRepresentation" const:escapeHTML="NO"/>;</var:if
></script>
<var:if condition="eventIsReadOnly" const:negate="YES">
<div class="menu" id="classification-menu">
<ul id="itemClassificationList" class="choiceMenu">
<var:foreach list="classificationClasses" item="item">
<li var:classification="item"><var:string
var:value="itemClassificationText" /></li>
</var:foreach>
</ul>
</div>
<form var:href="saveURL" name="editform">
<div id="eventView">
<label><var:string label:value="Title" /><span class="content"
><input type="text" name="summary" id="summary"
class="textField"
var:value="title"
/></span></label>
<label><var:string label:value="Location" /><span class="content"
><input type="text" name="location" id="location"
class="textField"
var:value="location"
/></span></label>
<span class="checkBoxList"><var:string label:value="Category" />
<span class="content"><var:popup const:id="categoryList"
list="categoryList" item="item"
label:noSelectionString="category_none"
string="item" selection="category"
/> <var:string label:value="Calendar" />
<var:popup const:id="calendarList"
var:disabled="isChildOccurence"
list="calendarList" item="item"
string="calendarDisplayName"
var:selection="componentCalendar"
/></span></span>
<span class="checkBoxList"><var:string label:value="Priority" />
<span class="content"><var:popup const:id="priorityList" list="priorities" item="item"
label:noSelectionString="prio_0"
string="itemPriorityText" selection="priority"/>
</span></span>
<var:if condition="hasOrganizer"
><label id="organizerLabel"><var:string label:value="Organizer"
/><span class="content"><a var:href="organizer.email" var:email="organizer.email.rfc822Email"
><var:string value="organizerName" /></a
></span></label>
</var:if>
<var:if condition="hasCreatedBy"
><label id="createdByLabel"><var:string label:value="Created by"
/><span class="content"><a var:href="createdByLink" var:email="createdBy"
><var:string value="createdByName" /></a
></span></label>
</var:if>
<!--<var:if condition="canBeOrganizer"
><label id="organizerListLabel"><var:string label:value="Organizer"
/><span class="content"><var:popup list="organizerList"
item="item" string="itemOrganizerText"
var:selection="organizerIdentity"/>
</span></label></var:if>-->
<var:component-content />
<hr />
<label><var:string label:value="Repeat" />
<span class="content"><var:popup list="repeatList" item="item"
label:noSelectionString="repeat_NEVER"
var:disabled="isChildOccurence"
const:disabledValue="-"
const:name="repeatList"
const:id="repeatList"
string="itemRepeatText" var:selection="repeat"
/> <a href="#" id="repeatHref" style="display: none;"
><var:string label:value="Edit"/></a></span></label>
<hr />
<label><var:string label:value="Reminder" />
<span class="content"><var:popup list="reminderList" item="item"
const:disabledValue="-"
label:noSelectionString="reminder_NONE"
const:name="reminderList"
const:id="reminderList"
string="itemReminderText" var:selection="reminder"
/> <a href="#" id="reminderHref" style="display: none;"
><var:string label:value="Edit"/></a></span></label>
<hr />
<label id="commentArea"><var:string label:value="Description"
/><span class="content"><textarea rows="20" name="comment" var:value="comment" /></span></label>
<label id="documentLabel" style="display: none;"><var:string label:value="Document"
/><span class="content"
><a href="#" id="documentHref"><!-- space --></a
><a id="changeAttachButton" class="button" var:href="#"
><span><var:string label:value="Change..."/></span></a
></span></label>
<!-- hidden -->
<input type="hidden" name="attach" id="attach" var:value="attach"/>
<input type="hidden" name="classification" id="classification"
var:value="classification"/>
<input type="hidden" name="attendees" id="attendees" />
<input type="hidden" name="calendarFoldersList"
id="calendarFoldersList"
var:value="calendarsFoldersList"/>
<input type="hidden" name="repeatType"
id="repeatType"
var:value="repeatType"/>
<input type="hidden" name="repeat1"
id="repeat1"
var:value="repeat1"/>
<input type="hidden" name="repeat2"
id="repeat2"
var:value="repeat2"/>
<input type="hidden" name="repeat3"
id="repeat3"
var:value="repeat3"/>
<input type="hidden" name="repeat4"
id="repeat4"
var:value="repeat4"/>
<input type="hidden" name="repeat5"
id="repeat5"
var:value="repeat5"/>
<input type="hidden" name="repeat6"
id="repeat6"
var:value="repeat6"/>
<input type="hidden" name="repeat7"
id="repeat7"
var:value="repeat7"/>
<input type="hidden" name="range1"
id="range1"
var:value="range1"/>
<input type="hidden" name="range2"
id="range2"
var:value="range2"/>
<input type="hidden" name="reminderQuantity"
id="reminderQuantity"
var:value="reminderQuantity"/>
<input type="hidden" name="reminderUnit"
id="reminderUnit"
var:value="reminderUnit"/>
<input type="hidden" name="reminderRelation"
id="reminderRelation"
var:value="reminderRelation"/>
<input type="hidden" name="reminderReference"
id="reminderReference"
var:value="reminderReference"/>
<input type="hidden" name="reminderAction"
id="reminderAction"
var:value="reminderAction"/>
<input type="hidden" name="reminderEmailOrganizer"
id="reminderEmailOrganizer"
var:value="reminderEmailOrganizer"/>
<input type="hidden" name="reminderEmailAttendees"
id="reminderEmailAttendees"
var:value="reminderEmailAttendees"/>
</div>
</form>
</var:if>
<var:if condition="eventIsReadOnly">
<div class="popupMenu" id="contactsMenu">
<ul></ul>
</div>
<div id="eventView">
<label class="calendarName"><var:string var:value="componentCalendarName" /></label>
<div id="generalDiv">
<label class="title titleNoSpace"><var:string label:value="General" />
<span class="content headerContent"><!-- line --></span>
</label>
<label><var:string label:value="Title" />
<span class="content"><var:string var:value="title"/></span>
</label>
<var:if condition="hasLocation">
<label><var:string label:value="Location" />
<span class="content"><var:string var:value="location" /></span>
</label>
</var:if>
<var:if condition="hasCategory">
<label><var:string label:value="Category" />
<span class="content"><var:string var:value="category" /></span>
</label>
</var:if>
<var:if condition="hasPriority">
<label><var:string label:value="Priority" />
<span class="content"><var:string var:value="priority"/></span>
</label>
</var:if>
<var:component-content />
<var:if condition="hasRepeat">
<label><var:string label:value="Repeat" />
<span class="content"><var:string var:value="repeatLabel" /></span>
</label>
</var:if>
<label id="documentLabel" style="display: none;"><var:string label:value="Document" />
<span class="content"><a href="#" id="documentHref"><!-- space --></a></span>
</label>
<var:if condition="hasAttendees">
<label id="organizerLabel"><var:string label:value="Organizer"/>
<span class="content"><a var:href="organizer.email" var:email="organizer.email.rfc822Email"
><var:string value="organizerName" /></a
></span>
</label>
</var:if>
<var:if condition="hasCreatedBy">
<label id="createdByLabel"><var:string label:value="Created by"/>
<span class="content"><a var:href="createdBy" var:email="createdBy"
><var:string value="createdByName" /></a
></span>
</label>
</var:if>
<var:if condition="userHasRSVP">
<form var:href="rsvpURL" name="rsvpform">
<label><var:string label:value="Reply" />
<span class="content"><var:popup list="replyList" item="item"
const:name="replyList"
const:id="replyList"
string="itemReplyText"
var:selection="reply" /></span>
</label>
<label id="delegateEditor" style="display: none;">
<span class="content">
<input name="delegatedTo" id="delegatedTo" type="text" const:value=""/>
<!--
<br />
<input type="checkbox" name="delegateReceiveUpdates" /> <var:string label:value="Keep sending me updates" /> -->
</span>
</label>
<input type="hidden" name="reminderQuantity"
id="reminderQuantity"
var:value="reminderQuantity"/>
<input type="hidden" name="reminderUnit"
id="reminderUnit"
var:value="reminderUnit"/>
<input type="hidden" name="reminderRelation"
id="reminderRelation"
var:value="reminderRelation"/>
<input type="hidden" name="reminderReference"
id="reminderReference"
var:value="reminderReference"/>
<input type="hidden" name="reminderAction"
id="reminderAction"
var:value="reminderAction"/>
<input type="hidden" name="reminderEmailOrganizer"
id="reminderEmailOrganizer"
var:value="reminderEmailOrganizer"/>
<input type="hidden" name="reminderEmailAttendees"
id="reminderEmailAttendees"
var:value="reminderEmailAttendees"/>
<label><var:string label:value="Reminder" />
<span class="content"><var:popup list="reminderList" item="item"
const:disabledValue="-"
label:noSelectionString="reminder_NONE"
const:name="reminderList"
const:id="reminderList"
string="itemReminderText" var:selection="reminder"
/> <a href="#" id="reminderHref" style="display: none;"
><var:string label:value="Edit"/></a></span></label>
</form>
</var:if>
</div>
<var:if condition="hasAttendees">
<div id="attendeesDiv">
<label class="title"><var:string label:value="Attendees" />
<span class="content headerContent"><!-- line --></span>
</label>
<label id="attendeesLabel">
<span class="content"><div id="attendeesMenu" class="fakeTextArea">
<var:foreach list="component.attendees" item="attendee"
><var:if condition="attendee.delegatedTo" const:negate="YES"
><div var:class="currentAttendeeClasses"
><div const:class="statusIcon"><!-- space --></div
><a var:href="attendee.email" var:email="attendee.email.rfc822Email"
><var:string value="attendeeForDisplay" /></a
></div
></var:if>
</var:foreach>
</div></span>
</label>
</div>
</var:if>
<var:if condition="hasComment">
<div id="descriptionDiv">
<label class="title"><var:string label:value="Description" />
<span class="content headerContent"><!-- line --></span>
</label>
<label><span class="content">
<div class="fakeTextArea"><var:string var:value="comment" /></div>
</span>
</label>
</div>
</var:if>
<input type="hidden" name="attach" id="attach" var:value="attach"/>
<input type="hidden" name="classification" id="classification"
var:value="classification"/>
<input type="hidden" name="attendeesNames" id="attendeesNames"
var:value="attendeesNames"/>
<input type="hidden" name="attendeesUIDs" id="attendeesUIDs"
var:value="attendeesUIDs"/>
<input type="hidden" name="attendeesEmails" id="attendeesEmails"
var:value="attendeesEmails"/>
<input type="hidden" name="attendeesStates" id="attendeesStates"
var:value="attendeesStates"/>
<input type="hidden" name="calendarFoldersList"
id="calendarFoldersList"
var:value="calendarsFoldersList"/>
<input type="hidden" name="repeatType"
id="repeatType"
var:value="repeatType"/>
<input type="hidden" name="repeat1"
id="repeat1"
var:value="repeat1"/>
<input type="hidden" name="repeat2"
id="repeat2"
var:value="repeat2"/>
<input type="hidden" name="repeat3"
id="repeat3"
var:value="repeat3"/>
<input type="hidden" name="repeat4"
id="repeat4"
var:value="repeat4"/>
<input type="hidden" name="repeat5"
id="repeat5"
var:value="repeat5"/>
<input type="hidden" name="repeat6"
id="repeat6"
var:value="repeat6"/>
<input type="hidden" name="repeat7"
id="repeat7"
var:value="repeat7"/>
<input type="hidden" name="range1"
id="range1"
var:value="range1"/>
<input type="hidden" name="range2"
id="range2"
var:value="range2"/>
<input type="hidden" name="reminderQuantity"
id="reminderQuantity"
var:value="reminderQuantity"/>
<input type="hidden" name="reminderUnit"
id="reminderUnit"
var:value="reminderUnit"/>
<input type="hidden" name="reminderRelation"
id="reminderRelation"
var:value="reminderRelation"/>
<input type="hidden" name="reminderReference"
id="reminderReference"
var:value="reminderReference"/>
<input type="hidden" name="reminderAction"
id="reminderAction"
var:value="reminderAction"/>
<input type="hidden" name="reminderEmailOrganizer"
id="reminderEmailOrganizer"
var:value="reminderEmailOrganizer"/>
<input type="hidden" name="reminderEmailAttendees"
id="reminderEmailAttendees"
var:value="reminderEmailAttendees"/>
<div id="windowButtons">
<var:if condition="userHasRSVP"><a id="okButton" href="#" class="button actionButton"
><span><var:string label:value="OK"/></span></a></var:if>
<a id="cancelButton" href="#" class="button"
><span><var:string label:value="Cancel"/></span></a>
</div>
</div>
</var:if>
</var:component>

View File

@ -1,77 +0,0 @@
<?xml version='1.0' standalone='yes'?>
<!DOCTYPE var:component>
<var:component
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:uix="OGo:uix"
xmlns:rsrc="OGo:url"
xmlns:label="OGo:label"
className="UIxComponentEditor"
componentCalendar="componentCalendar"
eventIsReadOnly="eventIsReadOnly"
var:component="todo"
var:saveURL="saveURL">
<var:if condition="eventIsReadOnly" const:negate="YES">
<span class="checkBoxList"><var:string label:value="Start" />
<span class="content"><input var:checked="hasStartDate"
id="startDateCB" type="checkbox" class="checkBox"
onchange="onTimeControlCheck(this);"
/><var:component className="UIxTimeDateControl"
var:disabled="startDateDisabled"
const:controlID="startTime"
date="taskStartDate"
const:dayStartHour="0"
const:dayEndHour="23"
/></span></span>
<span class="checkBoxList"><var:string label:value="Due Date" />
<span class="content"><input var:checked="hasDueDate"
id="dueDateCB" type="checkbox" class="checkBox"
onchange="onTimeControlCheck(this);"
/><var:component className="UIxTimeDateControl"
var:disabled="dueDateDisabled"
const:controlID="dueTime"
date="taskDueDate"
const:dayStartHour="0"
const:dayEndHour="23"
/></span></span>
<span class="checkBoxList"><var:string label:value="Status" />
<span class="content"><var:popup list="statusList" item="item"
const:id="statusList"
label:noSelectionString="status_NOT-SPECIFIED"
string="itemStatusText" selection="status"
/><var:component className="UIxTimeDateControl"
const:displayTimeControl="0"
var:disabled="statusDateDisabled"
const:controlID="statusTime"
date="statusDate"
const:dayStartHour="0"
const:dayEndHour="23"
/><input type="text" name="statusPercent"
id="statusPercent"
class="textField"
var:value="statusPercent"
var:disabled="statusPercentDisabled"
/><span><var:string label:value="% complete"
/></span></span></span>
</var:if>
<var:if condition="eventIsReadOnly">
<var:if condition="hasStartDate">
<label><var:string label:value="Start" />
<span class="content"><var:string var:value="taskStartDateTimeText" /></span>
</label>
</var:if>
<var:if condition="hasDueDate">
<label><var:string label:value="Due Date" />
<span class="content"><var:string var:value="taskDueDateTimeText" /></span>
</label>
</var:if>
<span class="checkBoxList"><var:string label:value="Status" />
<span class="content"><var:string var:value="itemStatusText"
/><var:if condition="statusDateDisabled" const:negate="YES"> <var:string var:value="statusDateText"/></var:if
><var:if condition="statusPercentDisabled" const:negate="YES"> (<var:string var:value="statusPercent"/> <var:string label:value="% complete"/>)</var:if>
</span></span>
</var:if>
</var:component>