Monotone-Parent: caf1d2f37537ebf54064ae629c40a78656a15b5b
Monotone-Revision: 01621f78171d7d62c9f2ae9d1fdfb5891f9447d7 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-06-07T23:23:07 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
parent
82f85c1ab9
commit
26b3dfa6b0
|
@ -28,7 +28,7 @@
|
||||||
></ul>
|
></ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="menu" id="appointmentsListMenu">
|
<div class="menu" id="eventsListMenu">
|
||||||
<ul>
|
<ul>
|
||||||
<li><var:string label:value="New Event..."/></li>
|
<li><var:string label:value="New Event..."/></li>
|
||||||
<li><!-- separator --></li>
|
<li><!-- separator --></li>
|
||||||
|
@ -74,19 +74,28 @@
|
||||||
var:calendarFolders="calendarFolders" /></div>
|
var:calendarFolders="calendarFolders" /></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="tasksListView"
|
<div id="tasksListView">
|
||||||
><var:component className="UIxCalTasksListView"
|
<label><input id="showHideCompletedTasks"
|
||||||
/></div>
|
type="checkbox" class="checkBox"
|
||||||
|
/><var:string label:value="Show completed tasks"/></label>
|
||||||
|
<ul id="tasksList"><!-- space --></ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="verticalDragHandle" class="dragHandle"><!-- space --></div>
|
<div id="verticalDragHandle" class="dragHandle"><!-- space --></div>
|
||||||
|
|
||||||
<div id="rightPanel">
|
<div id="rightPanel">
|
||||||
<var:component className="UIxCalFilterPanel" />
|
<var:component className="UIxCalFilterPanel" />
|
||||||
<div id="appointmentsListView"
|
<div id="eventsListView">
|
||||||
oncontextmenu="return onAppointmentContextMenu(event, this);"
|
<table id="eventsList">
|
||||||
><var:component className="UIxCalAptListView"
|
<tr>
|
||||||
/></div>
|
<td class="headerCell"><span class="sortableTableHeader"><var:string label:value="Title"/></span></td>
|
||||||
|
<td class="headerCell headerDateTime"><span class="sortableTableHeader"><var:string label:value="Start"/></span></td>
|
||||||
|
<td class="headerCell headerDateTime"><span class="sortableTableHeader"><var:string label:value="End"/></span></td>
|
||||||
|
<td class="headerCell"><span class="sortableTableHeader"><var:string label:value="Location"/></span></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
<div id="rightDragHandle" class="dragHandle"><!-- space --></div>
|
<div id="rightDragHandle" class="dragHandle"><!-- space --></div>
|
||||||
<div id="calendarView"><!-- space --></div>
|
<div id="calendarView"><!-- space --></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -74,10 +74,10 @@ function editEvent() {
|
||||||
|
|
||||||
for (var i = 0; i < nodes.length; i++)
|
for (var i = 0; i < nodes.length; i++)
|
||||||
_editEventId(nodes[i].getAttribute("id"),
|
_editEventId(nodes[i].getAttribute("id"),
|
||||||
nodes[i].getAttribute("owner"));
|
nodes[i].owner);
|
||||||
} else if (selectedCalendarCell) {
|
} else if (selectedCalendarCell) {
|
||||||
_editEventId(selectedCalendarCell.getAttribute("aptCName"),
|
_editEventId(selectedCalendarCell.getAttribute("aptCName"),
|
||||||
selectedCalendarCell.getAttribute("owner"));
|
selectedCalendarCell.owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false; /* stop following the link */
|
return false; /* stop following the link */
|
||||||
|
@ -102,7 +102,7 @@ function deleteEvent() {
|
||||||
if (listOfSelection == $("tasksList"))
|
if (listOfSelection == $("tasksList"))
|
||||||
label = labels["taskDeleteConfirmation"].decodeEntities();
|
label = labels["taskDeleteConfirmation"].decodeEntities();
|
||||||
else
|
else
|
||||||
label = labels["appointmentDeleteConfirmation"].decodeEntities();
|
label = labels["eventDeleteConfirmation"].decodeEntities();
|
||||||
|
|
||||||
if (confirm(label)) {
|
if (confirm(label)) {
|
||||||
if (document.deleteEventAjaxRequest) {
|
if (document.deleteEventAjaxRequest) {
|
||||||
|
@ -113,7 +113,7 @@ function deleteEvent() {
|
||||||
var owners = new Array();
|
var owners = new Array();
|
||||||
|
|
||||||
for (var i = 0; i < nodes.length; i++) {
|
for (var i = 0; i < nodes.length; i++) {
|
||||||
var owner = nodes[i].getAttribute("owner");
|
var owner = nodes[i].owner;
|
||||||
if (!sortedNodes[owner]) {
|
if (!sortedNodes[owner]) {
|
||||||
sortedNodes[owner] = new Array();
|
sortedNodes[owner] = new Array();
|
||||||
owners.push(owner);
|
owners.push(owner);
|
||||||
|
@ -129,14 +129,14 @@ function deleteEvent() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (selectedCalendarCell) {
|
else if (selectedCalendarCell) {
|
||||||
var label = labels["appointmentDeleteConfirmation"].decodeEntities();
|
var label = labels["eventDeleteConfirmation"].decodeEntities();
|
||||||
if (confirm(label)) {
|
if (confirm(label)) {
|
||||||
if (document.deleteEventAjaxRequest) {
|
if (document.deleteEventAjaxRequest) {
|
||||||
document.deleteEventAjaxRequest.aborted = true;
|
document.deleteEventAjaxRequest.aborted = true;
|
||||||
document.deleteEventAjaxRequest.abort();
|
document.deleteEventAjaxRequest.abort();
|
||||||
}
|
}
|
||||||
eventsToDelete.push([selectedCalendarCell.getAttribute("aptCName")]);
|
eventsToDelete.push([selectedCalendarCell.getAttribute("aptCName")]);
|
||||||
ownersOfEventsToDelete.push(selectedCalendarCell.getAttribute("owner"));
|
ownersOfEventsToDelete.push(selectedCalendarCell.owner);
|
||||||
_batchDeleteEvents();
|
_batchDeleteEvents();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -177,7 +177,7 @@ function modifyEventCallback(http) {
|
||||||
if (queryParameters["mail-invitation"].toLowerCase() == "yes")
|
if (queryParameters["mail-invitation"].toLowerCase() == "yes")
|
||||||
closeInvitationWindow();
|
closeInvitationWindow();
|
||||||
else {
|
else {
|
||||||
window.opener.setTimeout("refreshAppointmentsAndDisplay();", 100);
|
window.opener.setTimeout("refreshEventsAndDisplay();", 100);
|
||||||
window.setTimeout("window.close();", 100);
|
window.setTimeout("window.close();", 100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,7 +202,7 @@ function deleteEventCallback(http) {
|
||||||
_batchDeleteEvents();
|
_batchDeleteEvents();
|
||||||
else {
|
else {
|
||||||
document.deleteEventAjaxRequest = null;
|
document.deleteEventAjaxRequest = null;
|
||||||
refreshAppointments();
|
refreshEvents();
|
||||||
refreshTasks();
|
refreshTasks();
|
||||||
changeCalendarDisplay();
|
changeCalendarDisplay();
|
||||||
}
|
}
|
||||||
|
@ -213,21 +213,21 @@ function deleteEventCallback(http) {
|
||||||
|
|
||||||
function editDoubleClickedEvent() {
|
function editDoubleClickedEvent() {
|
||||||
_editEventId(this.getAttribute("id"),
|
_editEventId(this.getAttribute("id"),
|
||||||
this.getAttribute("owner"));
|
this.owner);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onSelectAll() {
|
function onSelectAll() {
|
||||||
var list = $("appointmentsList");
|
var list = $("eventsList");
|
||||||
list.selectRowsMatchingClass("appointmentRow");
|
list.selectRowsMatchingClass("eventRow");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayAppointment(event) {
|
function displayEvent(event) {
|
||||||
_editEventId(this.getAttribute("aptCName"),
|
_editEventId(this.getAttribute("aptCName"),
|
||||||
this.getAttribute("owner"));
|
this.owner);
|
||||||
|
|
||||||
preventDefault(event);
|
preventDefault(event);
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
@ -253,7 +253,7 @@ function onDaySelect(node) {
|
||||||
|
|
||||||
changeCalendarDisplay( { "day": day } );
|
changeCalendarDisplay( { "day": day } );
|
||||||
if (needRefresh)
|
if (needRefresh)
|
||||||
refreshAppointments();
|
refreshEvents();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -302,22 +302,62 @@ function dateSelectorCallback(http) {
|
||||||
log ("dateSelectorCallback Ajax error");
|
log ("dateSelectorCallback Ajax error");
|
||||||
}
|
}
|
||||||
|
|
||||||
function appointmentsListCallback(http) {
|
function eventsListCallback(http) {
|
||||||
var div = $("appointmentsListView");
|
var div = $("eventsListView");
|
||||||
|
|
||||||
if (http.readyState == 4
|
if (http.readyState == 4
|
||||||
&& http.status == 200) {
|
&& http.status == 200) {
|
||||||
document.appointmentsListAjaxRequest = null;
|
document.eventsListAjaxRequest = null;
|
||||||
div.innerHTML = http.responseText;
|
var table = $("eventsList").tBodies[0];
|
||||||
var params = parseQueryParameters(http.callbackData);
|
var params = parseQueryParameters(http.callbackData);
|
||||||
sortKey = params["sort"];
|
sortKey = params["sort"];
|
||||||
sortOrder = params["desc"];
|
sortOrder = params["desc"];
|
||||||
var list = $("appointmentsList");
|
|
||||||
Event.observe(list, "mousedown", onAppointmentsSelectionChange.bindAsEventListener(list), true);
|
|
||||||
configureSortableTableHeaders();
|
configureSortableTableHeaders();
|
||||||
|
|
||||||
|
var data = http.responseText.evalJSON(true);
|
||||||
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
var row = document.createElement("tr");
|
||||||
|
table.appendChild(row);
|
||||||
|
$(row).addClassName("eventRow");
|
||||||
|
row.setAttribute("id", data[i][0]);
|
||||||
|
row.owner = data[i][1];
|
||||||
|
|
||||||
|
var startDate = new Date();
|
||||||
|
startDate.setTime(data[i][4] * 1000);
|
||||||
|
row.day = startDate.getDayString();
|
||||||
|
row.hour = startDate.getHourString();
|
||||||
|
Event.observe(row, "click", onEventClick.bindAsEventListener(row));
|
||||||
|
Event.observe(row, "dblclick", editDoubleClickedEvent.bindAsEventListener(row));
|
||||||
|
Event.observe(row, "contextmenu",
|
||||||
|
onEventContextMenu.bindAsEventListener(row));
|
||||||
|
|
||||||
|
var td = document.createElement("td");
|
||||||
|
row.appendChild(td);
|
||||||
|
Event.observe(td, "mousedown",
|
||||||
|
listRowMouseDownHandler.bindAsEventListener(td), true);
|
||||||
|
td.appendChild(document.createTextNode(data[i][3]));
|
||||||
|
|
||||||
|
td = document.createElement("td");
|
||||||
|
row.appendChild(td);
|
||||||
|
Event.observe(td, "mousedown",
|
||||||
|
listRowMouseDownHandler.bindAsEventListener(td), true);
|
||||||
|
td.appendChild(document.createTextNode(data[i][4]));
|
||||||
|
|
||||||
|
td = document.createElement("td");
|
||||||
|
row.appendChild(td);
|
||||||
|
Event.observe(td, "mousedown",
|
||||||
|
listRowMouseDownHandler.bindAsEventListener(td), true);
|
||||||
|
td.appendChild(document.createTextNode(data[i][5]));
|
||||||
|
|
||||||
|
td = document.createElement("td");
|
||||||
|
row.appendChild(td);
|
||||||
|
Event.observe(td, "mousedown",
|
||||||
|
listRowMouseDownHandler.bindAsEventListener(td), true);
|
||||||
|
td.appendChild(document.createTextNode(data[i][6]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
log ("appointmentsListCallback Ajax error");
|
log ("eventsListCallback Ajax error");
|
||||||
}
|
}
|
||||||
|
|
||||||
function tasksListCallback(http) {
|
function tasksListCallback(http) {
|
||||||
|
@ -327,23 +367,20 @@ function tasksListCallback(http) {
|
||||||
&& http.status == 200) {
|
&& http.status == 200) {
|
||||||
document.tasksListAjaxRequest = null;
|
document.tasksListAjaxRequest = null;
|
||||||
var list = $("tasksList");
|
var list = $("tasksList");
|
||||||
var newList = document.createElement("ul");
|
|
||||||
newList.setAttribute("multiselect", "yes");
|
|
||||||
newList.setAttribute("id", "tasksList");
|
|
||||||
var scroll = list.scrollTop;
|
|
||||||
|
|
||||||
var data = http.responseText.evalJSON(true);
|
var data = http.responseText.evalJSON(true);
|
||||||
|
|
||||||
for (var i = 0; i < data.length; i++) {
|
for (var i = 0; i < data.length; i++) {
|
||||||
//log(i + " = " + data[i][3]);
|
//log(i + " = " + data[i][3]);
|
||||||
var listItem = document.createElement("li");
|
var listItem = document.createElement("li");
|
||||||
newList.appendChild(listItem);
|
list.appendChild(listItem);
|
||||||
Event.observe(listItem, "mousedown", listRowMouseDownHandler);
|
Event.observe(listItem, "mousedown", listRowMouseDownHandler);
|
||||||
Event.observe(listItem, "click", onRowClick);
|
Event.observe(listItem, "click", onRowClick);
|
||||||
Event.observe(listItem, "dblclick", editDoubleClickedEvent.bindAsEventListener(listItem));
|
Event.observe(listItem, "dblclick", editDoubleClickedEvent.bindAsEventListener(listItem));
|
||||||
listItem.setAttribute("id", data[i][0]);
|
listItem.setAttribute("id", data[i][0]);
|
||||||
listItem.setAttribute("owner", data[i][1]);
|
$(listItem).addClassName(data[i][5]);
|
||||||
$(listItem).addClassName(data[i][4]);
|
var owner = data[i][1];
|
||||||
|
listItem.owner = owner;
|
||||||
|
$(listItem).addClassName("ownerIs" + owner);
|
||||||
var input = document.createElement("input");
|
var input = document.createElement("input");
|
||||||
input.setAttribute("type", "checkbox");
|
input.setAttribute("type", "checkbox");
|
||||||
listItem.appendChild(input);
|
listItem.appendChild(input);
|
||||||
|
@ -355,10 +392,7 @@ function tasksListCallback(http) {
|
||||||
listItem.appendChild(document.createTextNode(data[i][3]));
|
listItem.appendChild(document.createTextNode(data[i][3]));
|
||||||
}
|
}
|
||||||
|
|
||||||
Event.observe(newList, "mousedown", onTasksSelectionChange.bindAsEventListener(newList), true);
|
list.scrollTop = list.previousScroll;
|
||||||
newList.scrollTop = scroll;
|
|
||||||
|
|
||||||
list.parentNode.replaceChild(newList, list);
|
|
||||||
|
|
||||||
if (http.callbackData) {
|
if (http.callbackData) {
|
||||||
var selectedNodesId = http.callbackData;
|
var selectedNodesId = http.callbackData;
|
||||||
|
@ -533,11 +567,11 @@ function calendarDisplayCallback(http) {
|
||||||
scrollDayView(hour);
|
scrollDayView(hour);
|
||||||
contentView = $("daysView");
|
contentView = $("daysView");
|
||||||
}
|
}
|
||||||
var appointments = document.getElementsByClassName("appointment", contentView);
|
var events = document.getElementsByClassName("event", contentView);
|
||||||
for (var i = 0; i < appointments.length; i++) {
|
for (var i = 0; i < events.length; i++) {
|
||||||
Event.observe(appointments[i], "mousedown", listRowMouseDownHandler);
|
Event.observe(events[i], "mousedown", listRowMouseDownHandler);
|
||||||
Event.observe(appointments[i], "click", onCalendarSelectAppointment.bindAsEventListener(appointments[i]));
|
Event.observe(events[i], "click", onCalendarSelectEvent.bindAsEventListener(events[i]));
|
||||||
Event.observe(appointments[i], "dblclick", displayAppointment.bindAsEventListener(appointments[i]));
|
Event.observe(events[i], "dblclick", displayEvent.bindAsEventListener(events[i]));
|
||||||
}
|
}
|
||||||
var days = document.getElementsByClassName("day", contentView);
|
var days = document.getElementsByClassName("day", contentView);
|
||||||
if (currentView == "monthview")
|
if (currentView == "monthview")
|
||||||
|
@ -578,27 +612,27 @@ function popupCalendar(node) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onAppointmentContextMenu(event, element) {
|
function onEventContextMenu(event) {
|
||||||
var topNode = $("appointmentsList");
|
var topNode = $("eventsList");
|
||||||
// log(topNode);
|
// log(topNode);
|
||||||
|
|
||||||
var menu = $("appointmentsListMenu");
|
var menu = $("eventsListMenu");
|
||||||
|
|
||||||
Event.observe(menu, "hideMenu", onAppointmentContextMenuHide);
|
Event.observe(menu, "hideMenu", onEventContextMenuHide);
|
||||||
popupMenu(event, "appointmentsListMenu", element);
|
popupMenu(event, "eventsListMenu", this);
|
||||||
|
|
||||||
var topNode = $("appointmentsList");
|
var topNode = $("eventsList");
|
||||||
var selectedNodes = topNode.getSelectedRows();
|
var selectedNodes = topNode.getSelectedRows();
|
||||||
topNode.menuSelectedRows = selectedNodes;
|
topNode.menuSelectedRows = selectedNodes;
|
||||||
for (var i = 0; i < selectedNodes.length; i++)
|
for (var i = 0; i < selectedNodes.length; i++)
|
||||||
selectedNodes[i].deselect();
|
selectedNodes[i].deselect();
|
||||||
|
|
||||||
topNode.menuSelectedEntry = element;
|
topNode.menuSelectedEntry = this;
|
||||||
element.select();
|
this.select();
|
||||||
}
|
}
|
||||||
|
|
||||||
function onAppointmentContextMenuHide(event) {
|
function onEventContextMenuHide(event) {
|
||||||
var topNode = $("appointmentsList");
|
var topNode = $("eventsList");
|
||||||
|
|
||||||
if (topNode.menuSelectedEntry) {
|
if (topNode.menuSelectedEntry) {
|
||||||
topNode.menuSelectedEntry.deselect();
|
topNode.menuSelectedEntry.deselect();
|
||||||
|
@ -614,7 +648,7 @@ function onAppointmentContextMenuHide(event) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onAppointmentsSelectionChange() {
|
function onEventsSelectionChange() {
|
||||||
listOfSelection = this;
|
listOfSelection = this;
|
||||||
this.removeClassName("_unfocused");
|
this.removeClassName("_unfocused");
|
||||||
$("tasksList").addClassName("_unfocused");
|
$("tasksList").addClassName("_unfocused");
|
||||||
|
@ -623,17 +657,21 @@ function onAppointmentsSelectionChange() {
|
||||||
function onTasksSelectionChange() {
|
function onTasksSelectionChange() {
|
||||||
listOfSelection = this;
|
listOfSelection = this;
|
||||||
this.removeClassName("_unfocused");
|
this.removeClassName("_unfocused");
|
||||||
$("appointmentsList").addClassName("_unfocused");
|
$("eventsList").addClassName("_unfocused");
|
||||||
}
|
}
|
||||||
|
|
||||||
function _loadAppointmentHref(href) {
|
function _loadEventHref(href) {
|
||||||
if (document.appointmentsListAjaxRequest) {
|
if (document.eventsListAjaxRequest) {
|
||||||
document.appointmentsListAjaxRequest.aborted = true;
|
document.eventsListAjaxRequest.aborted = true;
|
||||||
document.appointmentsListAjaxRequest.abort();
|
document.eventsListAjaxRequest.abort();
|
||||||
}
|
}
|
||||||
var url = ApplicationBaseURL + href;
|
var url = ApplicationBaseURL + href;
|
||||||
document.appointmentsListAjaxRequest
|
document.eventsListAjaxRequest
|
||||||
= triggerAjaxRequest(url, appointmentsListCallback, href);
|
= triggerAjaxRequest(url, eventsListCallback, href);
|
||||||
|
|
||||||
|
var table = $("eventsList").tBodies[0];
|
||||||
|
while (table.rows.length > 1)
|
||||||
|
table.removeChild(table.rows[1]);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -645,22 +683,31 @@ function _loadTasksHref(href) {
|
||||||
}
|
}
|
||||||
url = ApplicationBaseURL + href;
|
url = ApplicationBaseURL + href;
|
||||||
|
|
||||||
var selectedIds = $("tasksList").getSelectedNodesId();
|
var tasksList = $("tasksList");
|
||||||
|
var selectedIds;
|
||||||
|
if (tasksList)
|
||||||
|
selectedIds = tasksList.getSelectedNodesId();
|
||||||
|
else
|
||||||
|
selectedIds = null;
|
||||||
document.tasksListAjaxRequest
|
document.tasksListAjaxRequest
|
||||||
= triggerAjaxRequest(url, tasksListCallback, selectedIds);
|
= triggerAjaxRequest(url, tasksListCallback, selectedIds);
|
||||||
|
|
||||||
|
tasksList.previousScroll = tasksList.scrollTop;
|
||||||
|
while (tasksList.childNodes.length)
|
||||||
|
tasksList.removeChild(tasksList.childNodes[0]);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onHeaderClick(event) {
|
function onHeaderClick(event) {
|
||||||
// log("onHeaderClick: " + this.link);
|
// log("onHeaderClick: " + this.link);
|
||||||
_loadAppointmentHref(this.link);
|
_loadEventHref(this.link);
|
||||||
|
|
||||||
preventDefault(event);
|
preventDefault(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshAppointments() {
|
function refreshEvents() {
|
||||||
return _loadAppointmentHref("aptlist?desc=" + sortOrder
|
return _loadEventHref("eventslist?desc=" + sortOrder
|
||||||
+ "&sort=" + sortKey
|
+ "&sort=" + sortKey
|
||||||
+ "&day=" + currentDay
|
+ "&day=" + currentDay
|
||||||
+ "&filterpopup=" + listFilter);
|
+ "&filterpopup=" + listFilter);
|
||||||
|
@ -670,8 +717,8 @@ function refreshTasks() {
|
||||||
return _loadTasksHref("taskslist?show-completed=" + showCompletedTasks);
|
return _loadTasksHref("taskslist?show-completed=" + showCompletedTasks);
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshAppointmentsAndDisplay() {
|
function refreshEventsAndDisplay() {
|
||||||
refreshAppointments();
|
refreshEvents();
|
||||||
changeCalendarDisplay();
|
changeCalendarDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -681,10 +728,10 @@ function onListFilterChange() {
|
||||||
listFilter = node.value;
|
listFilter = node.value;
|
||||||
// log ("listFilter = " + listFilter);
|
// log ("listFilter = " + listFilter);
|
||||||
|
|
||||||
return refreshAppointments();
|
return refreshEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
function onAppointmentClick(event) {
|
function onEventClick(event) {
|
||||||
var target = getTarget(event);
|
var target = getTarget(event);
|
||||||
var node = target.getParentWithTagName("tr");
|
var node = target.getParentWithTagName("tr");
|
||||||
var day = node.getAttribute("day");
|
var day = node.getAttribute("day");
|
||||||
|
@ -771,8 +818,8 @@ function onSearchFormSubmit() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onCalendarSelectAppointment() {
|
function onCalendarSelectEvent() {
|
||||||
var list = $("appointmentsList");
|
var list = $("eventsList");
|
||||||
list.deselectAll();
|
list.deselectAll();
|
||||||
|
|
||||||
var aptCName = this.getAttribute("aptCName");
|
var aptCName = this.getAttribute("aptCName");
|
||||||
|
@ -809,7 +856,7 @@ function onCalendarSelectDay(event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (needRefresh)
|
if (needRefresh)
|
||||||
refreshAppointments();
|
refreshEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeWeekCalendarDisplayOfSelectedDay(node) {
|
function changeWeekCalendarDisplayOfSelectedDay(node) {
|
||||||
|
@ -849,15 +896,15 @@ function changeMonthCalendarDisplayOfSelectedDay(node) {
|
||||||
node.addClassName("selectedDay");
|
node.addClassName("selectedDay");
|
||||||
}
|
}
|
||||||
|
|
||||||
function onShowCompletedTasks(node) {
|
function onShowCompletedTasks(event) {
|
||||||
showCompletedTasks = (node.checked ? 1 : 0);
|
showCompletedTasks = (this.checked ? 1 : 0);
|
||||||
|
|
||||||
return refreshTasks();
|
return refreshTasks();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateTaskStatus(event) {
|
function updateTaskStatus(event) {
|
||||||
var taskId = this.parentNode.getAttribute("id");
|
var taskId = this.parentNode.getAttribute("id");
|
||||||
var taskOwner = this.parentNode.getAttribute("owner");
|
var taskOwner = this.parentNode.owner;
|
||||||
var newStatus = (this.checked ? 1 : 0);
|
var newStatus = (this.checked ? 1 : 0);
|
||||||
var http = createHTTPClient();
|
var http = createHTTPClient();
|
||||||
|
|
||||||
|
@ -917,7 +964,7 @@ function updateCalendarStatus(event) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
updateCalendarsList();
|
updateCalendarsList();
|
||||||
refreshAppointments();
|
refreshEvents();
|
||||||
refreshTasks();
|
refreshTasks();
|
||||||
changeCalendarDisplay();
|
changeCalendarDisplay();
|
||||||
}
|
}
|
||||||
|
@ -928,7 +975,7 @@ function updateCalendarStatus(event) {
|
||||||
function calendarStatusCallback(http) {
|
function calendarStatusCallback(http) {
|
||||||
if (http.readyState == 4) {
|
if (http.readyState == 4) {
|
||||||
if (http.status == 204) { // No content
|
if (http.status == 204) { // No content
|
||||||
refreshAppointments();
|
refreshEvents();
|
||||||
refreshTasks();
|
refreshTasks();
|
||||||
changeCalendarDisplay();
|
changeCalendarDisplay();
|
||||||
}
|
}
|
||||||
|
@ -1018,7 +1065,7 @@ function getMenus() {
|
||||||
dateMenu.push(onYearMenuItemClick);
|
dateMenu.push(onYearMenuItemClick);
|
||||||
menus["yearListMenu"] = dateMenu;
|
menus["yearListMenu"] = dateMenu;
|
||||||
|
|
||||||
menus["appointmentsListMenu"] = new Array(onMenuNewEventClick, "-",
|
menus["eventsListMenu"] = new Array(onMenuNewEventClick, "-",
|
||||||
onMenuNewTaskClick,
|
onMenuNewTaskClick,
|
||||||
editEvent, deleteEvent, "-",
|
editEvent, deleteEvent, "-",
|
||||||
onSelectAll, "-",
|
onSelectAll, "-",
|
||||||
|
@ -1054,7 +1101,7 @@ function configureDragHandles() {
|
||||||
handle = $("rightDragHandle");
|
handle = $("rightDragHandle");
|
||||||
if (handle) {
|
if (handle) {
|
||||||
handle.addInterface(SOGoDragHandlesInterface);
|
handle.addInterface(SOGoDragHandlesInterface);
|
||||||
handle.upperBlock=$("appointmentsListView");
|
handle.upperBlock=$("eventsListView");
|
||||||
handle.lowerBlock=$("calendarView");
|
handle.lowerBlock=$("calendarView");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1161,10 +1208,30 @@ function configureSearchField() {
|
||||||
Event.observe(searchValue, "keydown", onSearchKeyDown.bindAsEventListener(searchValue));
|
Event.observe(searchValue, "keydown", onSearchKeyDown.bindAsEventListener(searchValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function configureLists() {
|
||||||
|
var list = $("tasksList");
|
||||||
|
list.multiselect = true;
|
||||||
|
Event.observe(list, "mousedown",
|
||||||
|
onTasksSelectionChange.bindAsEventListener(list));
|
||||||
|
|
||||||
|
var input = $("showHideCompletedTasks");
|
||||||
|
Event.observe(input, "change",
|
||||||
|
onShowCompletedTasks.bindAsEventListener(input));
|
||||||
|
|
||||||
|
list = $("eventsList");
|
||||||
|
list.multiselect = true;
|
||||||
|
Event.observe(list, "mousedown",
|
||||||
|
onEventsSelectionChange.bindAsEventListener(list));
|
||||||
|
var div = list.parentNode;
|
||||||
|
Event.observe(div, "contextmenu",
|
||||||
|
onEventContextMenu.bindAsEventListener(div));
|
||||||
|
}
|
||||||
|
|
||||||
function initCalendars() {
|
function initCalendars() {
|
||||||
if (!document.body.hasClassName("popup")) {
|
if (!document.body.hasClassName("popup")) {
|
||||||
initCalendarSelector();
|
initCalendarSelector();
|
||||||
configureSearchField();
|
configureSearchField();
|
||||||
|
configureLists();
|
||||||
var selector = $("calendarSelector");
|
var selector = $("calendarSelector");
|
||||||
if (selector)
|
if (selector)
|
||||||
selector.attachMenu("calendarsMenu");
|
selector.attachMenu("calendarsMenu");
|
||||||
|
|
Loading…
Reference in a new issue