Monotone-Parent: cb727eb3a474d7cb014bfdc9a65fb7dd9a232c11

Monotone-Revision: 92c2289ec614006e622f8b53dec56357c7d1b889

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-10-23T21:34:56
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2006-10-23 21:34:56 +00:00
parent 8400691f11
commit d0f1b3ae01
11 changed files with 432 additions and 311 deletions
+16
View File
@@ -1,3 +1,19 @@
2006-10-23 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor -init]):
added new "url" ivar with its classic accessors.
([UIxComponentEditor -urlButtonClasses]): new method that returns
the class strings for the url button on the appointment/task
editor (depending on the validity of the url).
* UI/Templates/SchedulerUI/UIxTaskEditor.wox,
UI/Templates/SchedulerUI/UIxAppointmentEditor.wox: start rewriting
the template to match the Lightning's new task/appointment editor.
* UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor -saveValuesIntoAppointment:_appointment]): initialize url from the components'url.
* UI/Scheduler/UIxTaskEditor.m ([UIxTaskEditor -saveValuesIntoTask:_task]): initialize url from the components'url.
2006-10-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/Contacts/SOGoContactLDAPFolder.m
+5 -3
View File
@@ -215,7 +215,8 @@
[endDate retain];
}
- (void)saveValuesIntoAppointment:(iCalEvent *)_appointment {
- (void) saveValuesIntoAppointment: (iCalEvent *) _appointment
{
/* merge in form values */
NSArray *attendees, *lResources;
iCalRecurrenceRule *rrule;
@@ -224,13 +225,14 @@
[_appointment setEndDate:[self aptEndDate]];
[_appointment setSummary: [self title]];
[_appointment setUrl: [self url]];
[_appointment setLocation: [self location]];
[_appointment setComment: [self comment]];
[_appointment setPriority:[self priority]];
[_appointment setCategories: [[self categories] componentsJoinedByString: @","]];
[_appointment setAccessClass:[self accessClass]];
[_appointment setTransparency:[self transparency]];
[_appointment setAccessClass: [self accessClass]];
[_appointment setTransparency: [self transparency]];
#if 0
/*
+4
View File
@@ -47,6 +47,7 @@
NSString *title;
NSString *location;
NSString *comment;
NSString *url;
iCalPerson *organizer;
NSArray *participants; /* array of iCalPerson's */
NSArray *resources; /* array of iCalPerson's */
@@ -98,6 +99,9 @@
- (void) setComment: (NSString *) _value;
- (NSString *) comment;
- (void) setUrl: (NSString *) _url;
- (NSString *) url;
- (void) setParticipants: (NSArray *) _parts;
- (NSArray *) participants;
+25
View File
@@ -26,6 +26,7 @@
#import <Foundation/NSCalendarDate.h>
#import <Foundation/NSString.h>
#import <Foundation/NSUserDefaults.h>
#import <Foundation/NSURL.h>
#import <NGCards/iCalPerson.h>
#import <NGCards/iCalRepeatableEntityObject.h>
@@ -79,6 +80,7 @@
[accessClass release];
[cycle release];
[cycleEnd release];
[url release];
[super dealloc];
}
@@ -160,6 +162,16 @@
return title;
}
- (void) setUrl: (NSString *) _url
{
ASSIGNCOPY(url, _url);
}
- (NSString *) url
{
return url;
}
- (void) setLocation: (NSString *) _value
{
ASSIGNCOPY(location, _value);
@@ -577,6 +589,7 @@
title = [[component summary] copy];
location = [[component location] copy];
comment = [[component comment] copy];
url = [[[component url] absoluteString] copy];
priority = [[component priority] copy];
categories = [[[component categories] commaSeparatedValues] retain];
organizer = [[component organizer] retain];
@@ -734,4 +747,16 @@
return componentOwner;
}
- (NSString *) urlButtonClasses
{
NSString *classes;
if ([url length])
classes = @"button";
else
classes = @"button _disabled";
return classes;
}
@end
+1
View File
@@ -203,6 +203,7 @@
[_task setDue: dateTime];
[_task setSummary: [self title]];
[_task setUrl: [self url]];
[_task setLocation: [self location]];
[_task setComment: [self comment]];
[_task setPriority:[self priority]];
+131 -109
View File
@@ -15,122 +15,144 @@
<form var:href="saveUrl" name="editform" onsubmit="return validateAptEditor();">
<var:if condition="hasErrorText">
<p style="background-color: #AA0000;">
<var:string value="errorText" />
</p>
<p style="background-color: #AA0000;"><var:string value="errorText"
/></p>
<hr />
</var:if>
<div>
<label><var:string label:value="Title" />
<input type="text" name="summary" id="summary"
class="textField"
var:value="title"
/></label>
<label><var:string label:value="Location" />
<input type="text" name="location" id="location"
class="textField"
var:value="location"
/></label>
<label id="isPrivate"><input class="checkBox"
type="checkbox" var:selection="isPrivate"
var:checked="isPrivate"
/><var:string label:value="is private" /></label>
<span class="checkBoxList"><var:string label:value="Start Time" />
<span class="content"><var:component className="UIxTimeDateControl"
const:controlID="startTime"
date="aptStartDate"
const:dayStartHour="0"
const:dayEndHour="23"
/></span></span>
<a class="button" href="#" onclick="return toggleDetails();" id="detailsButton"
><var:string label:value="Show Details" /></a>
<span class="checkBoxList"><var:string label:value="End Time" />
<span class="content"><var:component className="UIxTimeDateControl"
const:controlID="endTime"
date="aptEndDate"
const:dayStartHour="0"
const:dayEndHour="23"
/></span></span>
</div>
<div id="details">
<label id="conflictsLabel"><input type="checkbox"
class="checkBox"
var:selection="checkForConflicts"
var:checked="checkForConflicts"
/><var:string label:value="check for conflicts"
/></label>
<label><var:string label:value="Cycle"
/>
<span class="content"
><var:popup list="cycles" item="item"
label:string="$cycleLabel"
selection="cycle"
const:onChange="toggleCycleVisibility(this, 'cycleSelectionFirstLevel', 0);"
/><span id="cycleSelectionFirstLevel"
><var:popup list="cycleEnds" item="item"
label:string="$item" value="item"
selection="cycleEnd"
const:onChange="toggleCycleVisibility(this, 'cycleSelectionSecondLevel', 'cycle_end_never');"
const:id="cycle_end_mode_selection"
/><span id="cycleSelectionSecondLevel"
><var:component className="UIxTimeDateControl"
date="cycleUntilDate"
label="foo"
const:controlID="cycleUntilDate"
const:displayTimeControl="NO"
/></span
<div id="editorTabs" class="tabsContainer">
<ul>
<li target="eventView"><var:string label:value="Event" /></li>
<li target="recurrenceView"><var:string label:value="Recurrence" /></li>
<li target="attendeesView"><var:string label:value="Attendees" /></li>
</ul>
<div id="eventView" class="tab">
<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>
<hr />
<span class="checkBoxList"><var:string label:value="From" />
<span class="content"><var:component className="UIxTimeDateControl"
const:controlID="startTime"
date="aptStartDate"
const:dayStartHour="0"
const:dayEndHour="23"
/><label><input class="checkBox"
type="checkbox" var:selection="isAllDay"
var:checked="isAllDay"
/><var:string label:value="All Day"
/></label></span></span>
<span class="checkBoxList"><var:string label:value="To" />
<span class="content"><var:component className="UIxTimeDateControl"
const:controlID="endTime"
date="aptEndDate"
const:dayStartHour="0"
const:dayEndHour="23"
/><label><input type="checkbox"
class="checkBox"
var:selection="checkForConflicts"
var:checked="checkForConflicts"
/><var:string label:value="check for conflicts"
/></label></span></span>
<hr />
<!-- label id="isPrivate"><input class="checkBox"
type="checkbox" var:selection="isPrivate"
var:checked="isPrivate"
/><var:string label:value="is private" /></label -->
<label><var:string label:value="Calendar" />
<span class="content"><var:popup list="availableCalendars" item="item"
const:onChange="onChangeCalendar(this);"
string="item" selection="componentOwner" /></span></label>
<label><var:string label:value="Priority" />
<span class="content"><var:popup list="priorities" item="item"
string="itemPriorityText" selection="priority"
/></span></label>
<span id="categoriesCB" class="checkBoxList"
><var:string label:value="Categories"
/><span class="content categoriesContent"><var:checkbox-list
list="categoryItems"
item="item"
suffix="itemCategoryText"
selections="categories"
/></span></span>
<label><var:string label:value="Priority" />
<span class="content"><var:popup list="priorities" item="item"
string="itemPriorityText" selection="priority" /></span></label>
<hr />
<label id="commentArea"><var:string label:value="Description"
/><textarea name="comment" var:value="comment" /></label>
<label id="urlArea"><var:string label:value="URL" />
<span class="content"><input type="text" name="url" id="url"
size="40"
onkeyup="validateBrowseURL(this);"
class="textField"
var:value="url"
/><a id="browseUrlBtn" var:class="urlButtonClasses" var:href="#" onclick="return browseUrl(this, event);"><var:string value="Browse URL" /><var:string label:value="Browse URL" /></a
></span></label>
</div>
<div id="recurrenceView" class="tab">
<label><var:string label:value="Cycle"
/>
<span class="content"
><var:popup list="cycles" item="item"
label:string="$cycleLabel"
selection="cycle"
const:onChange="toggleCycleVisibility(this, 'cycleSelectionFirstLevel', 0);"
/><span id="cycleSelectionFirstLevel"
><var:popup list="cycleEnds" item="item"
label:string="$item" value="item"
selection="cycleEnd"
const:onChange="toggleCycleVisibility(this, 'cycleSelectionSecondLevel', 'cycle_end_never');"
const:id="cycle_end_mode_selection"
/><span id="cycleSelectionSecondLevel"
><var:component className="UIxTimeDateControl"
date="cycleUntilDate"
label="foo"
const:controlID="cycleUntilDate"
const:displayTimeControl="NO"
/></span
></span
></span
></span
></label>
<span class="checkBoxList" id="participantsCB"><var:string label:value="Attendees" />
<span class="content"><var:component className="UIxContactSelector"
const:selectorId="participants"
contacts="participants"
/></span></span>
<span class="checkBoxList"
><var:string label:value="Categories"
/><span class="content"><var:checkbox-list list="categoryItems"
item="item"
suffix="itemCategoryText"
selections="categories"
/></span></span>
></label>
</div>
<label><var:string label:value="Priority" />
<var:popup list="priorities" item="item"
string="itemPriorityText" selection="priority" /></label>
<label style="clear: both;"><var:string label:value="Calendar" />
<var:popup list="availableCalendars" item="item"
const:onChange="onChangeCalendar(this);"
string="item" selection="componentOwner" /></label>
<label><var:string label:value="Comment"
/><textarea name="comment" var:value="comment" /></label>
</div>
<div id="buttons">
<input
type="submit"
class="button"
label:value="Save"
name="submitmeeting" />
<input
type="submit"
class="button"
label:value="Cancel"
name="cancel"
onclick="window.close(); return false;" />
<var:if condition="isUIxDebugEnabled">
<input type="submit"
class="button"
value="Test" name="test:method" />
</var:if>
<div id="attendeesView" class="tab">
<span class="checkBoxList" id="participantsCB"><var:string label:value="Attendees" />
<span class="content"><var:component className="UIxContactSelector"
const:selectorId="participants"
contacts="participants"
/></span></span>
</div>
</div>
<!-- div id="buttons">
<input
type="submit"
class="button"
label:value="Save"
name="submitmeeting" />
<input
type="submit"
class="button"
label:value="Cancel"
name="cancel"
onclick="window.close(); return false;" />
<var:if condition="isUIxDebugEnabled">
<input type="submit"
class="button"
value="Test" name="test:method" />
</var:if>
</div -->
<input type="hidden" name="ical" var:value="iCalString" />
<!-- input type="hidden" id="jsaction" -->
</form>
+142 -123
View File
@@ -1,146 +1,165 @@
<?xml version='1.0' standalone='yes'?>
<var:component className="UIxPageFrame"
<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">
title="name"
>
<script type="text/javascript" rsrc:src="skycalendar.js">
</script>
<form var:href="saveUrl" name="editform" onsubmit="return validateAptEditor();">
<form var:href="saveUrl" name="editform" onsubmit="return validateTaskEditor();">
<var:if condition="hasErrorText">
<p style="background-color: #AA0000;">
<var:string value="errorText" />
</p>
<p style="background-color: #AA0000;"><var:string value="errorText"
/></p>
<hr />
</var:if>
<div>
<label><var:string label:value="Title" />
<input type="text" name="summary" id="summary"
class="textField"
var:value="title"
/></label>
<label><var:string label:value="Location" />
<input type="text" name="location" id="location"
class="textField"
var:value="location"
/></label>
<label id="isPrivate"><input class="checkBox"
type="checkbox" var:selection="isPrivate"
var:checked="isPrivate"
/><var:string label:value="is private" /></label>
<span class="checkBoxList"><var:string label:value="Date" />
<span class="content"
><input var:checked="hasStartDate" 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>
<a class="button" href="#" onclick="return toggleDetails();"
id="detailsButton"
><var:string label:value="Show Details" /></a>
<span class="checkBoxList"><var:string label:value="Due Time" />
<span class="content"
><input var:checked="hasDueDate" 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>
</div>
<div id="details">
<label id="conflictsLabel"><input type="checkbox"
class="checkBox"
var:selection="checkForConflicts"
var:checked="checkForConflicts"
/><var:string label:value="check for conflicts"
/></label>
<label><var:string label:value="Cycle"
/>
<span class="content"
><var:popup list="cycles" item="item"
label:string="$cycleLabel"
selection="cycle"
const:onChange="toggleCycleVisibility(this, 'cycleSelectionFirstLevel', 0);"
/><span id="cycleSelectionFirstLevel"
><var:popup list="cycleEnds" item="item"
label:string="$item" value="item"
selection="cycleEnd"
const:onChange="toggleCycleVisibility(this, 'cycleSelectionSecondLevel', 'cycle_end_never');"
const:id="cycle_end_mode_selection"
/><span id="cycleSelectionSecondLevel"
><var:component className="UIxTimeDateControl"
date="cycleUntilDate"
label="foo"
const:controlID="cycleUntilDate"
const:displayTimeControl="NO"
/></span
<div id="editorTabs" class="tabsContainer">
<ul>
<li target="taskView"><var:string label:value="Task" /></li>
<li target="recurrenceView"><var:string label:value="Recurrence" /></li>
<li target="attendeesView"><var:string label:value="Attendees" /></li>
</ul>
<div id="taskView" class="tab">
<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>
<hr />
<span class="checkBoxList"><var:string label:value="Date" />
<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 Time" />
<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"
/><label><input type="checkbox"
class="checkBox"
var:selection="checkForConflicts"
var:checked="checkForConflicts"
/><var:string label:value="check for conflicts"
/></label></span></span>
<hr />
<!-- label id="isPrivate"><input class="checkBox"
type="checkbox" var:selection="isPrivate"
var:checked="isPrivate"
/><var:string label:value="is private" /></label -->
<label><var:string label:value="Calendar" />
<span class="content"><var:popup list="availableCalendars" item="item"
const:onChange="onChangeCalendar(this);"
string="item" selection="componentOwner" /></span></label>
<label><var:string label:value="Priority" />
<span class="content"><var:popup list="priorities" item="item"
string="itemPriorityText" selection="priority"
/></span></label>
<span id="categoriesCB" class="checkBoxList"
><var:string label:value="Categories"
/><span class="content categoriesContent"><var:checkbox-list
list="categoryItems"
item="item"
suffix="itemCategoryText"
selections="categories"
/></span></span>
<label><var:string label:value="Priority" />
<span class="content"><var:popup list="priorities" item="item"
string="itemPriorityText" selection="priority" /></span></label>
<hr />
<label id="commentArea"><var:string label:value="Description"
/><textarea name="comment" var:value="comment" /></label>
<label id="urlArea"><var:string label:value="URL" />
<span class="content"><input type="text" name="url" id="url"
size="40"
onkeyup="validateBrowseURL(this);"
class="textField"
var:value="url"
/><a id="browseUrlBtn" var:class="urlButtonClasses" var:href="#" onclick="return browseUrl(this, event);"><var:string value="Browse URL" /><var:string label:value="Browse URL" /></a
></span></label>
</div>
<div id="recurrenceView" class="tab">
<label><var:string label:value="Cycle"
/>
<span class="content"
><var:popup list="cycles" item="item"
label:string="$cycleLabel"
selection="cycle"
const:onChange="toggleCycleVisibility(this, 'cycleSelectionFirstLevel', 0);"
/><span id="cycleSelectionFirstLevel"
><var:popup list="cycleEnds" item="item"
label:string="$item" value="item"
selection="cycleEnd"
const:onChange="toggleCycleVisibility(this, 'cycleSelectionSecondLevel', 'cycle_end_never');"
const:id="cycle_end_mode_selection"
/><span id="cycleSelectionSecondLevel"
><var:component className="UIxTimeDateControl"
date="cycleUntilDate"
label="foo"
const:controlID="cycleUntilDate"
const:displayTimeControl="NO"
/></span
></span
></span
></span
></label>
<span class="checkBoxList" id="participantsCB"
><var:string label:value="Participants" />
<span class="content"><var:component className="UIxContactSelector"
const:selectorId="participants"
contacts="participants"
/></span></span>
<span class="checkBoxList"
><var:string label:value="Categories"
/><span class="content"><var:checkbox-list list="categoryItems"
item="item"
suffix="itemCategoryText"
selections="categories"
/></span></span>
></label>
</div>
<label><var:string label:value="Priority" />
<var:popup list="priorities" item="item"
string="itemPriorityText" selection="priority" /></label>
<label style="clear: both;"><var:string label:value="Calendar" />
<var:popup list="availableCalendars" item="item"
const:onChange="onChangeCalendar(this);"
string="item" selection="componentOwner" /></label>
<label><var:string label:value="Comment"
/><textarea name="comment" var:value="comment" /></label>
<div id="attendeesView" class="tab">
<span class="checkBoxList" id="participantsCB"><var:string label:value="Attendees" />
<span class="content"><var:component className="UIxContactSelector"
const:selectorId="participants"
contacts="participants"
/></span></span>
</div>
</div>
<!-- div id="buttons">
<input
type="submit"
class="button"
label:value="Save"
name="submitmeeting" />
<input
type="submit"
class="button"
label:value="Cancel"
name="cancel"
onclick="window.close(); return false;" />
<var:if condition="isUIxDebugEnabled">
<input type="submit"
class="button"
value="Test" name="test:method" />
</var:if>
</div -->
<input type="hidden" name="ical" var:value="iCalString" />
<noscript><input type="hidden" name="nojs" const:value="1" /></noscript>
<div id="buttons">
<input
type="submit"
class="button"
label:value="Save"
name="submittask" />
<input
type="submit"
class="button"
label:value="Cancel"
name="cancel"
onclick="window.close(); return false;" />
<var:if condition="isUIxDebugEnabled">
<input type="submit"
class="button"
value="Test" name="test:method" />
</var:if>
</div>
<!-- input type="hidden" id="jsaction" -->
</form>
<!--
+44 -36
View File
@@ -1,6 +1,3 @@
BODY
{ padding: 1em; }
DIV.appointmentLabel
{ display: block;
position: relative;
@@ -8,23 +5,20 @@ DIV.appointmentLabel
text-align: right;
width: 3em; }
DIV#editorTabs
{
width: 100%;
height: 38em;
}
DIV#editorTabs > DIV.tab
{ overflow: hidden;
padding: .5em; }
DIV.appointmentRightLabel
{ display: inline;
vertical-align: middle; }
DIV#details
{ visibility: hidden;
padding-top: 1em;
width: 100%;
margin: 0px;
margin-bottom: 1em; }
DIV#buttons
{ visibility: visible;
position: absolute;
right: 1em;
bottom: 1em; }
UL.contactList
{
display: block;
@@ -58,46 +52,40 @@ DIV.contactSelector
LABEL, SPAN.checkBoxList
{ display: block;
position: relative;
height: 2em;
height: 1.5em;
margin-left: .5em;
margin-top: .5em;
margin-bottom: .5em;
width: 100%; }
LABEL#commentArea
{ height: 11.5em; }
SPAN.checkBoxList#participantsCB
{ height: 7em; }
SPAN.checkBoxList#categoriesCB
{ height: 3em; }
DIV#participants UL.contactList
{ height: 4.5em; }
SPAN.checkBoxList SPAN.content LABEL
{ display: inline; }
INPUT#summary, INPUT#location,
SPAN.content
{ position: absolute;
top: 0px;
top: -.25em;
left: 8em;
right: 0px; }
right: 1em; }
DIV#details TEXTAREA
TEXTAREA
{ position: absolute;
top: 0px;
left: 8em;
vertical-align: bottom;
height: 5em;
right: 0px;
padding-bottom: 1em; }
DIV#details SELECT
{ position: absolute;
top: 0px;
left: 8em; }
LABEL#isPrivate, LABEL#conflictsLabel
{ position: absolute;
z-index: 1;
height: 10em;
right: 1em;
width: auto; }
padding-bottom: 1em; }
A#detailsButton
{ position: absolute;
@@ -113,7 +101,27 @@ SPAN#cycleSelectionSecondLevel
{ visibility: hidden;
margin-left: 1em; }
DIV#details SPAN.content SELECT,
SPAN#cycleSelectionSecondLevel SPAN.timeDateControl
{ position: static;
margin: 0px; }
SPAN#categoriesCB INPUT
{ border: 2px solid #000;
vertical-align: middle;
-moz-border-top-colors: #000 #fff;
-moz-border-left-colors: #000 #fff;
-moz-border-bottom-colors: #000 #fff;
-moz-border-right-colors: #000 #fff; }
SPAN#categoriesCB LABEL
{ margin-left: 0px;
margin-right: 1em; }
SPAN.content > INPUT
{ position: absolute;
top: 0px;
left: 0px;
right: 0px; }
LABEL#urlArea INPUT
{ position: static; }
@@ -167,3 +167,10 @@ function addContact(tag, fullContactName, contactId, contactName, contactEmail)
return false;
}
function saveEvent(sender) {
if (validateAptEditor())
document.forms['editform'].submit();
return false;
}
+49 -39
View File
@@ -1,30 +1,24 @@
BODY
{ padding: 1em; }
DIV.appointmentLabel
{ display: block;
position: relative;
line-height: 1.8em;
text-align: right;
width: 7.5em; }
width: 3em; }
DIV#editorTabs
{
width: 100%;
height: 38em;
}
DIV#editorTabs > DIV.tab
{ overflow: hidden;
padding: .5em; }
DIV.appointmentRightLabel
{ display: inline;
vertical-align: middle; }
DIV#details
{ visibility: hidden;
padding-top: 1em;
width: 100%;
margin: 0px;
margin-bottom: 1em; }
DIV#buttons
{ visibility: visible;
position: absolute;
right: 1em;
bottom: 1em; }
UL.contactList
{
display: block;
@@ -58,46 +52,40 @@ DIV.contactSelector
LABEL, SPAN.checkBoxList
{ display: block;
position: relative;
height: 2em;
height: 1.5em;
margin-left: .5em;
margin-top: .5em;
margin-bottom: .5em;
width: 100%; }
LABEL#commentArea
{ height: 11.5em; }
SPAN.checkBoxList#participantsCB
{ height: 7em; }
SPAN.checkBoxList#categoriesCB
{ height: 3em; }
DIV#participants UL.contactList
{ height: 4.5em; }
SPAN.checkBoxList SPAN.content LABEL
{ display: inline; }
INPUT#summary, INPUT#location,
SPAN.content
{ position: absolute;
top: 0px;
left: 7.5em;
right: 0px; }
top: -.25em;
left: 8em;
right: 1em; }
DIV#details TEXTAREA
TEXTAREA
{ position: absolute;
top: 0px;
left: 7.5em;
left: 8em;
vertical-align: bottom;
height: 5em;
right: 0px;
padding-bottom: 1em; }
DIV#details SELECT
{ position: absolute;
top: 0px;
left: 7.5em; }
LABEL#isPrivate, LABEL#conflictsLabel
{ position: absolute;
z-index: 1;
height: 10em;
right: 1em;
width: auto; }
padding-bottom: 1em; }
A#detailsButton
{ position: absolute;
@@ -113,7 +101,29 @@ SPAN#cycleSelectionSecondLevel
{ visibility: hidden;
margin-left: 1em; }
DIV#details SPAN.content SELECT,
SPAN#cycleSelectionSecondLevel SPAN.timeDateControl
{ position: static;
margin: 0px; }
SPAN#categoriesCB INPUT
{ border: 2px solid #000;
vertical-align: middle;
-moz-border-top-colors: #000 #fff;
-moz-border-left-colors: #000 #fff;
-moz-border-bottom-colors: #000 #fff;
-moz-border-right-colors: #000 #fff; }
SPAN#categoriesCB LABEL
{ margin-left: 0px;
margin-right: 1em; }
SPAN.content > INPUT
{ position: absolute;
top: 0px;
left: 0px;
right: 0px; }
INPUT#startDateCB,
INPUT#dueDateCB,
LABEL#urlArea INPUT
{ position: static; }
+8 -1
View File
@@ -53,7 +53,7 @@ function validateDate(date, label) {
return result;
}
function validateAptEditor() {
function validateTaskEditor() {
var e, startdate, enddate, tmpdate;
e = document.getElementById('summary');
@@ -186,3 +186,10 @@ function onTimeControlCheck(checkBox) {
if (selects[i] != checkBox)
selects[i].disabled = !checkBox.checked;
}
function saveEvent(sender) {
if (validateTaskEditor())
document.forms['editform'].submit();
return false;
}