Fix issues with contextual menu in calendars
Creating an event or a task using the contextual menu will now consider the day and hour of the menu position (fixes #2557). The next/previous day/month menu options have been fixed. The menu will now disappear when clicking outside the contextual menu on the calendar area.pull/17/head
parent
9580a8f8ee
commit
342ad84a24
1
NEWS
1
NEWS
|
@ -24,6 +24,7 @@ Bug fixes
|
||||||
- don't load 'background' attribute (#2437)
|
- don't load 'background' attribute (#2437)
|
||||||
- fixed validation of subscribed folders (#2583)
|
- fixed validation of subscribed folders (#2583)
|
||||||
- fixed display of folder names in messages filter editor (#2569)
|
- fixed display of folder names in messages filter editor (#2569)
|
||||||
|
- fixed contextual menu of the current calendar view (#2557)
|
||||||
|
|
||||||
2.1.1b (2013-12-04)
|
2.1.1b (2013-12-04)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
|
@ -22,12 +22,14 @@
|
||||||
<span class="daysHeader">
|
<span class="daysHeader">
|
||||||
<span class="day1">
|
<span class="day1">
|
||||||
<a href="#"
|
<a href="#"
|
||||||
|
id="leftNavigationArrow"
|
||||||
var:date="prevDayQueryParameters.day"
|
var:date="prevDayQueryParameters.day"
|
||||||
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-left.png"/></a>
|
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-left.png"/></a>
|
||||||
</span>
|
</span>
|
||||||
<span class="day0"><var:string value="currentDayName"/></span>
|
<span class="day0"><var:string value="currentDayName"/></span>
|
||||||
<span class="day1">
|
<span class="day1">
|
||||||
<a href="#"
|
<a href="#"
|
||||||
|
id="rightNavigationArrow"
|
||||||
var:date="nextDayQueryParameters.day"
|
var:date="nextDayQueryParameters.day"
|
||||||
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-right.png"/></a>
|
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-right.png"/></a>
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
<span class="monthsHeader">
|
<span class="monthsHeader">
|
||||||
<span class="month1">
|
<span class="month1">
|
||||||
<a href="#"
|
<a href="#"
|
||||||
|
id="leftNavigationArrow"
|
||||||
var:date="prevMonthQueryParameters.month"
|
var:date="prevMonthQueryParameters.month"
|
||||||
onclick="return onCalendarGotoDay(this);"
|
onclick="return onCalendarGotoDay(this);"
|
||||||
><img rsrc:src="arrow-left.png"/></a>
|
><img rsrc:src="arrow-left.png"/></a>
|
||||||
|
@ -30,6 +31,7 @@
|
||||||
<span class="month0"><var:string value="monthNameOfThisMonth" /></span>
|
<span class="month0"><var:string value="monthNameOfThisMonth" /></span>
|
||||||
<span class="month1">
|
<span class="month1">
|
||||||
<a href="#"
|
<a href="#"
|
||||||
|
id="rightNavigationArrow"
|
||||||
var:date="nextMonthQueryParameters.month"
|
var:date="nextMonthQueryParameters.month"
|
||||||
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-right.png"/></a>
|
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-right.png"/></a>
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
xmlns:rsrc="OGo:url"
|
xmlns:rsrc="OGo:url"
|
||||||
xmlns:label="OGo:label">
|
xmlns:label="OGo:label">
|
||||||
<a href="#"
|
<a href="#"
|
||||||
class="leftNavigationArrow"
|
id="leftNavigationArrow"
|
||||||
var:date="prevDayQueryParameters.day"
|
var:date="prevDayQueryParameters.day"
|
||||||
onclick="return onCalendarGotoDay(this);"
|
onclick="return onCalendarGotoDay(this);"
|
||||||
><img rsrc:src="arrow-left.png"/></a>
|
><img rsrc:src="arrow-left.png"/></a>
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
/></a></span
|
/></a></span
|
||||||
></span>
|
></span>
|
||||||
<a href="#"
|
<a href="#"
|
||||||
class="rightNavigationArrow"
|
id="rightNavigationArrow"
|
||||||
var:date="nextDayQueryParameters.day"
|
var:date="nextDayQueryParameters.day"
|
||||||
onclick="return onCalendarGotoDay(this);"
|
onclick="return onCalendarGotoDay(this);"
|
||||||
><img rsrc:src="arrow-right.png"/></a>
|
><img rsrc:src="arrow-right.png"/></a>
|
||||||
|
|
|
@ -22,12 +22,14 @@
|
||||||
<span class="weeksHeader">
|
<span class="weeksHeader">
|
||||||
<span class="week1">
|
<span class="week1">
|
||||||
<a href="#"
|
<a href="#"
|
||||||
|
id="leftNavigationArrow"
|
||||||
var:date="prevWeekQueryParameters.day"
|
var:date="prevWeekQueryParameters.day"
|
||||||
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-left.png"/></a>
|
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-left.png"/></a>
|
||||||
</span>
|
</span>
|
||||||
<span class="week0"><var:string value="currentWeekName" /></span>
|
<span class="week0"><var:string value="currentWeekName" /></span>
|
||||||
<span class="week1">
|
<span class="week1">
|
||||||
<a href="#"
|
<a href="#"
|
||||||
|
id="rightNavigationArrow"
|
||||||
var:date="nextWeekQueryParameters.day"
|
var:date="nextWeekQueryParameters.day"
|
||||||
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-right.png"/></a>
|
onclick="return onCalendarGotoDay(this);"><img rsrc:src="arrow-right.png"/></a>
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -151,11 +151,17 @@ function getSelectedFolder() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function onMenuNewEventClick(event) {
|
function onMenuNewEventClick(event) {
|
||||||
newEventFromWidget(this, "event");
|
var target = document.menuTarget;
|
||||||
|
if (/(minutes\d{2}|dayHeader)/.test(target.className))
|
||||||
|
target = target.parentNode;
|
||||||
|
newEventFromWidget(target, "event");
|
||||||
}
|
}
|
||||||
|
|
||||||
function onMenuNewTaskClick(event) {
|
function onMenuNewTaskClick(event) {
|
||||||
newEventFromWidget(this, "task");
|
var target = document.menuTarget;
|
||||||
|
if (/(minutes\d{2}|dayHeader)/.test(target.className))
|
||||||
|
target = target.parentNode;
|
||||||
|
newEventFromWidget(target, "task");
|
||||||
}
|
}
|
||||||
|
|
||||||
function _editEventId(id, calendar, recurrence) {
|
function _editEventId(id, calendar, recurrence) {
|
||||||
|
@ -718,7 +724,6 @@ function onViewEventCallback(http) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
view = $("calendarView");
|
|
||||||
top -= cell.up("DIV.day").scrollTop;
|
top -= cell.up("DIV.day").scrollTop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1173,13 +1178,11 @@ function restoreCurrentDaySelection(div) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadPreviousView(event) {
|
function loadPreviousView(event) {
|
||||||
var previousArrow = $$("A.leftNavigationArrow").first();
|
onCalendarGotoDay($("leftNavigationArrow"));
|
||||||
onCalendarGotoDay(previousArrow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadNextView(event) {
|
function loadNextView(event) {
|
||||||
var nextArrow = $$("A.rightNavigationArrow").first();
|
onCalendarGotoDay($("rightNavigationArrow"));
|
||||||
onCalendarGotoDay(nextArrow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeDateSelectorDisplay(day, keepCurrentDay) {
|
function changeDateSelectorDisplay(day, keepCurrentDay) {
|
||||||
|
@ -1701,6 +1704,11 @@ function newBaseEventDIV(eventRep, event, eventText) {
|
||||||
var eventCell = createElement("div");
|
var eventCell = createElement("div");
|
||||||
eventCell.cname = event[0];
|
eventCell.cname = event[0];
|
||||||
eventCell.calendar = event[1];
|
eventCell.calendar = event[1];
|
||||||
|
var startDate = new Date(event[5]*1000);
|
||||||
|
if (startDate) {
|
||||||
|
eventCell.writeAttribute('day', startDate.getDayString());
|
||||||
|
eventCell.writeAttribute('hour', startDate.getHourString());
|
||||||
|
}
|
||||||
// if (event[8] == 1)
|
// if (event[8] == 1)
|
||||||
// eventCell.addClassName("private");
|
// eventCell.addClassName("private");
|
||||||
// else if (event[8] == 2)
|
// else if (event[8] == 2)
|
||||||
|
@ -2439,8 +2447,7 @@ function onCalendarSelectDay(event) {
|
||||||
// Target is not an event -- unselect all events.
|
// Target is not an event -- unselect all events.
|
||||||
listOfSelection = $("eventsList");
|
listOfSelection = $("eventsList");
|
||||||
deselectAll();
|
deselectAll();
|
||||||
preventDefault(event);
|
return true;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (listOfSelection) {
|
if (listOfSelection) {
|
||||||
|
@ -2778,17 +2785,20 @@ function onMenuSharing(event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function onMenuCurrentView(event) {
|
function onMenuCurrentView(event) {
|
||||||
|
var target = getTarget(event);
|
||||||
$("eventDialog").hide();
|
$("eventDialog").hide();
|
||||||
if (this.hasClassName('event')) {
|
if (this.hasClassName('event')) {
|
||||||
|
// Select event cell
|
||||||
var onClick = onCalendarSelectEvent.bind(this);
|
var onClick = onCalendarSelectEvent.bind(this);
|
||||||
onClick(event, true);
|
onClick(event, true);
|
||||||
|
target = this;
|
||||||
}
|
}
|
||||||
popupMenu(event, 'currentViewMenu', this);
|
popupMenu(event, 'currentViewMenu', target);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onMenuAllDayView(event) {
|
function onMenuAllDayView(event) {
|
||||||
$("eventDialog").hide();
|
$("eventDialog").hide();
|
||||||
popupMenu(event, 'allDayViewMenu', this);
|
popupMenu(event, 'allDayViewMenu', getTarget(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
function configureDragHandles() {
|
function configureDragHandles() {
|
||||||
|
|
|
@ -1007,9 +1007,7 @@ SOGoEventDragController.prototype = {
|
||||||
onDragStart: function SEDC_onDragStart(event) {
|
onDragStart: function SEDC_onDragStart(event) {
|
||||||
var target = getTarget(event);
|
var target = getTarget(event);
|
||||||
if (eventIsLeftClick(event) && (target.nodeType == 1)) {
|
if (eventIsLeftClick(event) && (target.nodeType == 1)) {
|
||||||
if (target.hasClassName("minutes15") ||
|
if (/minutes\d{2}/.test(target.className))
|
||||||
target.hasClassName("minutes30") ||
|
|
||||||
target.hasClassName("minutes45"))
|
|
||||||
target = target.parentNode;
|
target = target.parentNode;
|
||||||
if ((!this.eventCells
|
if ((!this.eventCells
|
||||||
&& (target.hasClassName("clickableHourCell")
|
&& (target.hasClassName("clickableHourCell")
|
||||||
|
@ -1059,11 +1057,8 @@ SOGoEventDragController.prototype = {
|
||||||
Event.observe(window, "mouseup", this.onDragStopBound);
|
Event.observe(window, "mouseup", this.onDragStopBound);
|
||||||
this.onDragModeBound = this.onDragMode.bindAsEventListener(this);
|
this.onDragModeBound = this.onDragMode.bindAsEventListener(this);
|
||||||
Event.observe(document.body, "mousemove", this.onDragModeBound);
|
Event.observe(document.body, "mousemove", this.onDragModeBound);
|
||||||
Event.stop(event);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_determineEventInvitation: function SEDC__determineEventType(node) {
|
_determineEventInvitation: function SEDC__determineEventType(node) {
|
||||||
|
|
Loading…
Reference in New Issue