additional checks to see if the values have changed before setting them on the event itself.

This commit is contained in:
pavlov%pavlov.net 2005-06-14 02:04:52 +00:00
Родитель d930c554f5
Коммит 50a23fe088
1 изменённых файлов: 39 добавлений и 17 удалений

Просмотреть файл

@ -158,23 +158,16 @@ function loadDialog(event)
function saveDialog(event) function saveDialog(event)
{ {
event.title = getElementValue("event-title"); // setEventProperty will only change if the value is different and
event.isAllDay = getElementValue("event-all-day", "checked"); // does magic for startDate and endDate based on isAllDay, so set that first.
event.startDate = jsDateToDateTime(getElementValue("event-starttime")); setEventProperty(event, "isAllDay", getElementValue("event-all-day", "checked"));
event.endDate = jsDateToDateTime(getElementValue("event-endtime")); setEventProperty(event, "startDate", jsDateToDateTime(getElementValue("event-starttime")));
setEventProperty(event, "endDate", jsDateToDateTime(getElementValue("event-endtime")));
setEventProperty(event, "title", getElementValue("event-title"));
setEventProperty(event, "LOCATION", getElementValue("event-location")); setEventProperty(event, "LOCATION", getElementValue("event-location"));
setEventProperty(event, "URL", getElementValue("event-url")); setEventProperty(event, "URL", getElementValue("event-url"));
setEventProperty(event, "DESCRIPTION", getElementValue("event-description")); setEventProperty(event, "DESCRIPTION", getElementValue("event-description"));
/* all day */
if (event.isAllDay) {
event.startDate.isDate = true;
event.endDate.isDate = true;
event.endDate.day += 1;
event.endDate.normalize();
}
/* attendence */ /* attendence */
event.removeAllAttendees(); event.removeAllAttendees();
var attendees = getElementValue("event-attendees"); var attendees = getElementValue("event-attendees");
@ -325,8 +318,37 @@ function editRecurrence()
/* utility functions */ /* utility functions */
function setEventProperty(event, propertyName, value) function setEventProperty(event, propertyName, value)
{ {
if (!value || value == "") switch(propertyName) {
event.deleteProperty(propertyName); case 'title':
else if (event.getProperty(propertyName) != value) if (value != event.title)
event.setProperty(propertyName, value); event.title = value;
break;
case 'isAllDay':
if (value != event.isAllDay)
event.isAllDay = value;
break;
case 'startDate':
if (value.compare(event.startDate) != 0) {
if (event.isAllDay)
value.isDate = true;
event.startDate = value;
}
break;
case 'endDate':
if (value.compare(event.endDate) != 0) {
if (event.isAllDay) {
value.isDate = true;
value.day += 1;
value.normalize();
}
event.endDate = value;
}
break;
default:
if (!value || value == "")
event.deleteProperty(propertyName);
else if (event.getProperty(propertyName) != value)
event.setProperty(propertyName, value);
break;
}
} }