diff --git a/ChangeLog b/ChangeLog index ee5d08e9a..8008c355b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2010-10-08 Francis Lachapelle + + * UI/WebServerResources/SchedulerUI.js + (deleteEventFromViewCancel): new function loaded if the user + cancel the deletion of an event. It clears the array of events to + delete. + (onCalendarSelectEvent): don't clear the selection if the + contextual menu is going to appear. + 2010-10-08 Wolfgang Sourdeau * UI/WebServerResources/ContactsUI.js: (setEventsOnAddressBook) diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index da6262c95..01f620852 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -270,7 +270,8 @@ function deleteEvent() { eventsToDelete.push(sortedNodes[calendars[i]]); } if (i > 0) - showConfirmDialog(_("Warning"), _("eventDeleteConfirmation"), deleteEventFromViewConfirm); + showConfirmDialog(_("Warning"), _("eventDeleteConfirmation"), + deleteEventFromViewConfirm, deleteEventFromViewCancel); else showAlertDialog(_("You don't have the required privileges to perform the operation.")); } @@ -302,6 +303,12 @@ function deleteEventFromViewConfirm() { disposeDialog(); } +function deleteEventFromViewCancel(event) { + calendarsOfEventsToDelete = []; + eventsToDelete = []; + disposeDialog(); +} + function copyEventToClipboard() { if (listOfSelection) { clipboard = new Array(); @@ -1862,7 +1869,7 @@ function onListFilterChange() { var node = $("filterpopup"); listFilter = node.value; - // log ("listFilter = " + listFilter); +// log ("listFilter = " + listFilter); return refreshEvents(); } @@ -2000,7 +2007,7 @@ function deselectAll(cellsOnly) { } } -function onCalendarSelectEvent(event) { +function onCalendarSelectEvent(event, willShowContextualMenu) { var alreadySelected = false; // Look for event in events list @@ -2026,13 +2033,16 @@ function onCalendarSelectEvent(event) { selectedCalendarCell.splice(i, 1); if (row) row.deselect(); - + return true; } } - else if (event.shiftKey == 0) { - // Unselect entries in events list and calendar view - listOfSelection = $("eventsList"); + else if (!(alreadySelected && willShowContextualMenu) + && event.shiftKey == 0) { + // Unselect entries in events list and calendar view, unless : + // - Shift key is pressed; + // - Or right button is clicked and event is already selected. + listOfSelection = null; deselectAll(); this.selectElement(); if (alreadySelected) @@ -2053,9 +2063,14 @@ function onCalendarSelectEvent(event) { function onCalendarSelectDay(event) { var day = this.getAttribute("day"); + var needRefresh = (listFilter == 'view_selectedday' && day != currentDay); + setSelectedDayDate(day); changeDateSelectorDisplay(day); + if (needRefresh) + refreshEvents(); + var target = Event.findElement(event); var div = target.up('div'); if (div && !div.hasClassName('event') && !div.hasClassName('eventInside') && !div.hasClassName('text') && !div.hasClassName('gradient')) { @@ -2067,16 +2082,11 @@ function onCalendarSelectDay(event) { return false; } - var needRefresh = (listFilter == 'view_selectedday' && day != currentDay); - if (listOfSelection) { listOfSelection.addClassName("_unfocused"); listOfSelection = null; } - if (needRefresh) - refreshEvents(); - changeCalendarDisplay( { "day": currentDay } ); } @@ -2381,7 +2391,7 @@ function onMenuCurrentView(event) { $("eventDialog").hide(); if (this.hasClassName('event')) { var onClick = onCalendarSelectEvent.bind(this); - onClick(event); + onClick(event, true); } popupMenu(event, 'currentViewMenu', this); }