зеркало из https://github.com/mozilla/gecko-dev.git
adding support for editing all occurrences vs editing a single occurence
This commit is contained in:
Родитель
64eefc8c3a
Коммит
8ded529181
|
@ -56,6 +56,9 @@ function onLoad()
|
||||||
|
|
||||||
loadDialog();
|
loadDialog();
|
||||||
|
|
||||||
|
// update edit type (all occurrences vs single occurence)
|
||||||
|
updateEditing();
|
||||||
|
|
||||||
// update datetime pickers
|
// update datetime pickers
|
||||||
updateAllDay();
|
updateAllDay();
|
||||||
|
|
||||||
|
@ -78,11 +81,10 @@ function onAccept()
|
||||||
var originalEvent = window.calendarEvent;
|
var originalEvent = window.calendarEvent;
|
||||||
var event = originalEvent;
|
var event = originalEvent;
|
||||||
|
|
||||||
if (!event.isMutable) {
|
if (document.getElementById("event-edit-type").selectedItem.getAttribute("value") == "all")
|
||||||
event = event.clone();
|
event = event.parentItem;
|
||||||
} else {
|
|
||||||
dump ("#### modifyEvent is mutable already?\n");
|
event = (event.isMutable) ? event : event.clone();
|
||||||
}
|
|
||||||
|
|
||||||
saveDialog(event);
|
saveDialog(event);
|
||||||
|
|
||||||
|
@ -100,7 +102,7 @@ function onCancel()
|
||||||
|
|
||||||
function loadDialog()
|
function loadDialog()
|
||||||
{
|
{
|
||||||
const kDefaultTimezone = calendarDefaultTimezone();
|
var kDefaultTimezone = calendarDefaultTimezone();
|
||||||
|
|
||||||
var event = window.calendarEvent;
|
var event = window.calendarEvent;
|
||||||
|
|
||||||
|
@ -145,12 +147,12 @@ function loadDialog()
|
||||||
* - Setting recurrence on the item
|
* - Setting recurrence on the item
|
||||||
* - changing the calendar
|
* - changing the calendar
|
||||||
*/
|
*/
|
||||||
if (event.parentItem != event) {
|
if (event.parentItem != event)
|
||||||
setElementValue("event-recurrence", "true", "disabled");
|
setElementValue("event-edit-type", "single");
|
||||||
setElementValue("set-recurrence", "true", "disabled");
|
else {
|
||||||
setElementValue("event-calendar", "true", "disabled");
|
setElementValue("event-edit-type", "true", "disabled");
|
||||||
} else if (event.recurrenceInfo) {
|
if (event.recurrenceInfo)
|
||||||
setElementValue("event-recurrence", "true", "checked");
|
setElementValue("event-recurrence", "true", "checked");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* alarms */
|
/* alarms */
|
||||||
|
@ -189,9 +191,11 @@ function saveDialog(event)
|
||||||
var attendees = getElementValue("event-attendees");
|
var attendees = getElementValue("event-attendees");
|
||||||
if (attendees != "") {
|
if (attendees != "") {
|
||||||
for each (var addr in attendees.split(",")) {
|
for each (var addr in attendees.split(",")) {
|
||||||
var attendee = createAttendee();
|
if (addr != "") {
|
||||||
attendee.id = "mailto:" + addr;
|
var attendee = createAttendee();
|
||||||
event.addAttendee(attendee);
|
attendee.id = "mailto:" + addr;
|
||||||
|
event.addAttendee(attendee);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,6 +248,36 @@ function saveDialog(event)
|
||||||
|
|
||||||
event.alarmTime = alarmTime;
|
event.alarmTime = alarmTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//dump(event.icalString + "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function updateEditing()
|
||||||
|
{
|
||||||
|
var event = window.calendarEvent;
|
||||||
|
var handleRecurrence = (event.parentItem != event);
|
||||||
|
|
||||||
|
if (handleRecurrence) {
|
||||||
|
var editType = document.getElementById("event-edit-type").selectedItem.getAttribute("value");
|
||||||
|
|
||||||
|
switch (editType) {
|
||||||
|
case "single":
|
||||||
|
setElementValue("event-recurrence", "true", "disabled");
|
||||||
|
setElementValue("set-recurrence", "true", "disabled");
|
||||||
|
setElementValue("event-calendar", "true", "disabled");
|
||||||
|
setElementValue("event-recurrence", false, "checked");
|
||||||
|
break;
|
||||||
|
case "all":
|
||||||
|
if (event.parentItem.recurrenceInfo || window.recurrenceInfo) {
|
||||||
|
setElementValue("event-recurrence", "true", "checked");
|
||||||
|
setElementValue("event-recurrence", false, "disabled");
|
||||||
|
setElementValue("set-recurrence", false, "disabled");
|
||||||
|
setElementValue("event-calendar", false, "disabled");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -310,8 +344,8 @@ function updateAlarm()
|
||||||
function editRecurrence()
|
function editRecurrence()
|
||||||
{
|
{
|
||||||
var args = new Object();
|
var args = new Object();
|
||||||
args.calendarEvent = window.calendarEvent;
|
args.calendarEvent = window.calendarEvent.parentItem;
|
||||||
args.recurrenceInfo = (window.recurrenceInfo) ? window.recurrenceInfo : window.calendarEvent.recurrenceInfo;
|
args.recurrenceInfo = (window.recurrenceInfo) ? window.recurrenceInfo : args.calendarEvent.recurrenceInfo;
|
||||||
|
|
||||||
var savedWindow = window;
|
var savedWindow = window;
|
||||||
args.onOk = function(recurrenceInfo) {
|
args.onOk = function(recurrenceInfo) {
|
||||||
|
|
|
@ -70,6 +70,15 @@
|
||||||
|
|
||||||
<rows>
|
<rows>
|
||||||
<rows equalsize="always">
|
<rows equalsize="always">
|
||||||
|
<row id="row-edit-occurrence" align="center">
|
||||||
|
<label value="Edit" class="label"/>
|
||||||
|
<menulist id="event-edit-type" oncommand="updateEditing()">
|
||||||
|
<menupopup>
|
||||||
|
<menuitem label="This occurrence" value="single"/>
|
||||||
|
<menuitem label="All occurrences" value="all" selected="true"/>
|
||||||
|
</menupopup>
|
||||||
|
</menulist>
|
||||||
|
</row>
|
||||||
<row align="center">
|
<row align="center">
|
||||||
<label value="Title" class="label"/>
|
<label value="Title" class="label"/>
|
||||||
<textbox id="event-title"/>
|
<textbox id="event-title"/>
|
||||||
|
|
Загрузка…
Ссылка в новой задаче