Monotone-Parent: 9ee35442ae529d1c136cdfc26e4e560b8b4e3a98

Monotone-Revision: 4b2181d43537a29e80a258caea24faf48661e9f8

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-07-05T19:13:59
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2007-07-05 19:13:59 +00:00
parent 9260cc90a5
commit 9205e3c0f6
6 changed files with 84 additions and 89 deletions

1
NEWS
View File

@ -4,3 +4,4 @@
- added the ability to view the message source; - added the ability to view the message source;
- no longer autocreate folders if we are not their owners; - no longer autocreate folders if we are not their owners;
- made compatible with PostgreSQL 8.2; - made compatible with PostgreSQL 8.2;
- the months and years menus of the date selector would no longer appear;

View File

@ -6,27 +6,14 @@
xmlns:label="OGo:label" xmlns:label="OGo:label"
id="dateSelector"> id="dateSelector">
<div class="header"> <div class="header">
<a href="#" <a href="#" id="rightArrow" var:date="nextMonthAsString"
id="rightArrow"
var:date="nextMonthAsString"
onclick="return onDateSelectorGotoMonth(this);"
><img id="next" rsrc:src="arrow-rit-sharp.gif" ><img id="next" rsrc:src="arrow-rit-sharp.gif"
/></a> /></a>
<a href="#" <a href="#" id="leftArrow" var:date="prevMonthAsString"
id="leftArrow"
var:date="prevMonthAsString"
onclick="return onDateSelectorGotoMonth(this);"
><img id="previous" rsrc:src="arrow-lft-sharp.gif" /> ><img id="previous" rsrc:src="arrow-lft-sharp.gif" />
</a><span id="monthLabel" </a><span id="monthLabel" var:month="headerMonthValue"
onmousedown="return false;" ><var:string value="headerMonthString" /></span
var:month="headerMonthValue" ><span id="yearLabel"><var:string value="headerYearString" /></span>
onclick="popupMonthMenu(event, 'monthListMenu');"
><var:string value="headerMonthString"
/></span><span id="yearLabel"
onmousedown="return false;"
onclick="popupMonthMenu(event, 'yearListMenu');"
><var:string value="headerYearString"
/></span>
</div> </div>
<var:month-overview <var:month-overview

View File

@ -123,7 +123,7 @@ Element.addMethods({
var popup = element.sogoContextMenu; var popup = element.sogoContextMenu;
if (document.currentPopupMenu) if (document.currentPopupMenu)
hideMenu(event, document.currentPopupMenu); hideMenu(document.currentPopupMenu);
var menuTop = event.pageY; var menuTop = event.pageY;
var menuLeft = event.pageX; var menuLeft = event.pageX;

View File

@ -285,10 +285,11 @@ function setDateSelectorContent(content) {
function dateSelectorCallback(http) { function dateSelectorCallback(http) {
if (http.readyState == 4 if (http.readyState == 4
&& http.status == 200) { && http.status == 200) {
document.dateSelectorAjaxRequest = null; document.dateSelectorAjaxRequest = null;
var content = http.responseText; var content = http.responseText;
setDateSelectorContent(content); setDateSelectorContent(content);
cachedDateSelectors[http.callbackData] = content; cachedDateSelectors[http.callbackData] = content;
initDateSelectorEvents();
} }
else else
log ("dateSelectorCallback Ajax error"); log ("dateSelectorCallback Ajax error");
@ -955,15 +956,15 @@ function onEventClick(event) {
} }
function selectMonthInMenu(menu, month) { function selectMonthInMenu(menu, month) {
var entries = menu.childNodes[1].childNodesWithTag("LI"); var entries = menu.childNodes[1].childNodesWithTag("LI");
for (i = 0; i < entries.length; i++) { for (i = 0; i < entries.length; i++) {
var entry = entries[i]; var entry = entries[i];
var entryMonth = entry.getAttribute("month"); var entryMonth = entry.getAttribute("month");
if (entryMonth == month) if (entryMonth == month)
entry.addClassName("currentMonth"); entry.addClassName("currentMonth");
else else
entry.removeClassName("currentMonth"); entry.removeClassName("currentMonth");
} }
} }
function selectYearInMenu(menu, month) { function selectYearInMenu(menu, month) {
@ -980,32 +981,22 @@ function selectYearInMenu(menu, month) {
} }
} }
function popupMonthMenu(event, menuId) { function popupMonthMenu(event) {
var node = event.target;
if (event.button == 0) { if (event.button == 0) {
event.cancelBubble = true; var id = this.getAttribute("id");
event.returnValue = false; if (id == "monthLabel")
menuId = "monthListMenu";
if (document.currentPopupMenu) else
hideMenu(event, document.currentPopupMenu); menuId = "yearListMenu";
var popup = $(menuId); var popup = $(menuId);
var id = node.getAttribute("id");
if (id == "monthLabel") if (id == "monthLabel")
selectMonthInMenu(popup, node.getAttribute("month")); selectMonthInMenu(popup, this.getAttribute("month"));
else else
selectYearInMenu(popup, node.innerHTML); selectYearInMenu(popup, this.innerHTML);
var diff = (popup.offsetWidth - node.offsetWidth) /2; popupToolbarMenu(this, menuId);
Event.stop(event);
popup.style.top = (node.offsetTop + 95) + "px";
popup.style.left = (node.offsetLeft - diff) + "px";
popup.style.visibility = "visible";
bodyOnClick = "" + document.body.getAttribute("onclick");
document.body.setAttribute("onclick", "onBodyClick('" + menuId + "');");
document.currentPopupMenu = popup;
} }
} }
@ -1290,10 +1281,10 @@ function getMenus() {
menus["yearListMenu"] = dateMenu; menus["yearListMenu"] = dateMenu;
menus["eventsListMenu"] = new Array(onMenuNewEventClick, "-", menus["eventsListMenu"] = new Array(onMenuNewEventClick, "-",
onMenuNewTaskClick, onMenuNewTaskClick,
editEvent, deleteEvent, "-", editEvent, deleteEvent, "-",
onSelectAll, "-", onSelectAll, "-",
null, null); null, null);
menus["calendarsMenu"] = new Array(null, null, "-", null, null, "-", menus["calendarsMenu"] = new Array(null, null, "-", null, null, "-",
null, "-", onMenuSharing); null, "-", onMenuSharing);
menus["searchMenu"] = new Array(setSearchCriteria); menus["searchMenu"] = new Array(setSearchCriteria);
@ -1457,8 +1448,25 @@ function configureLists() {
onEventContextMenu.bindAsEventListener(div)); onEventContextMenu.bindAsEventListener(div));
} }
function initDateSelectorEvents() {
var arrow = $("rightArrow");
Event.observe(arrow, "click",
onDateSelectorGotoMonth.bindAsEventListener(arrow));
arrow = $("leftArrow");
Event.observe(arrow, "click",
onDateSelectorGotoMonth.bindAsEventListener(arrow));
var menuButton = $("monthLabel");
Event.observe(menuButton, "click",
popupMonthMenu.bindAsEventListener(menuButton));
menuButton = $("yearLabel");
Event.observe(menuButton, "click",
popupMonthMenu.bindAsEventListener(menuButton));
}
function initCalendars() { function initCalendars() {
if (!document.body.hasClassName("popup")) { if (!document.body.hasClassName("popup")) {
initDateSelectorEvents();
initCalendarSelector(); initCalendarSelector();
configureSearchField(); configureSearchField();
configureLists(); configureLists();

View File

@ -8,9 +8,16 @@ function onPopupAttendeesWindow(event) {
} }
function onSelectPrivacy(event) { function onSelectPrivacy(event) {
popupToolbarMenu(event, "privacy-menu"); if (event.button == 0) {
var node = event.target;
if (node.tagName != 'A')
node = node.getParentWithTagName("a");
node = node.childNodesWithTag("span")[0];
return false; popupToolbarMenu(node, "privacy-menu");
Event.stop(event);
// preventDefault(event);
}
} }
function onPopupUrlWindow(event) { function onPopupUrlWindow(event) {
@ -146,7 +153,9 @@ function onComponentEditorLoad(event) {
initializeDocumentHref(); initializeDocumentHref();
initializePrivacyMenu(); initializePrivacyMenu();
var list = $("calendarList"); var list = $("calendarList");
Event.observe(list, "change", onChangeCalendar.bindAsEventListener(list), false); Event.observe(list, "change",
onChangeCalendar.bindAsEventListener(list),
false);
if (document.createEvent) { if (document.createEvent) {
var onSelectionChangeEvent = document.createEvent("Event"); var onSelectionChangeEvent = document.createEvent("Event");
onSelectionChangeEvent.initEvent("change", false, false); onSelectionChangeEvent.initEvent("change", false, false);
@ -158,7 +167,9 @@ function onComponentEditorLoad(event) {
var menuItems = $("itemPrivacyList").childNodesWithTag("li"); var menuItems = $("itemPrivacyList").childNodesWithTag("li");
for (var i = 0; i < menuItems.length; i++) for (var i = 0; i < menuItems.length; i++)
Event.observe(menuItems[i], "mouseup", onMenuSetClassification.bindAsEventListener(menuItems[i]), false); Event.observe(menuItems[i], "mouseup",
onMenuSetClassification.bindAsEventListener(menuItems[i]),
false);
} }
addEvent(window, 'load', onComponentEditorLoad); addEvent(window, 'load', onComponentEditorLoad);

View File

@ -521,7 +521,7 @@ function popupMenu(event, menuId, target) {
document.menuTarget = target; document.menuTarget = target;
if (document.currentPopupMenu) if (document.currentPopupMenu)
hideMenu(event, document.currentPopupMenu); hideMenu(document.currentPopupMenu);
var popup = $(menuId); var popup = $(menuId);
var menuTop = event.pageY; var menuTop = event.pageY;
@ -565,18 +565,17 @@ function getParentMenu(node) {
function onBodyClickMenuHandler(event) { function onBodyClickMenuHandler(event) {
document.body.menuTarget = null; document.body.menuTarget = null;
hideMenu(event, document.currentPopupMenu); hideMenu(document.currentPopupMenu);
Event.stopObserving(document.body, "click", onBodyClickMenuHandler); Event.stopObserving(document.body, "click", onBodyClickMenuHandler);
preventDefault(event); preventDefault(event);
} }
function hideMenu(event, menuNode) { function hideMenu(menuNode) {
var onHide; var onHide;
// log('hiding menu "' + menuNode.getAttribute('id') + '"');
if (menuNode.submenu) { if (menuNode.submenu) {
hideMenu(event, menuNode.submenu); hideMenu(menuNode.submenu);
menuNode.submenu = null; menuNode.submenu = null;
} }
@ -709,7 +708,7 @@ function dropDownSubmenu(event) {
var submenuNode = $(this.submenu); var submenuNode = $(this.submenu);
var parentNode = getParentMenu(node); var parentNode = getParentMenu(node);
if (parentNode.submenu) if (parentNode.submenu)
hideMenu(event, parentNode.submenu); hideMenu(parentNode.submenu);
submenuNode.parentMenuItem = node; submenuNode.parentMenuItem = node;
submenuNode.parentMenu = parentNode; submenuNode.parentMenu = parentNode;
parentNode.submenuItem = node; parentNode.submenuItem = node;
@ -749,7 +748,7 @@ function checkDropDown(event) {
&& menuX < itemX + submenuItem.offsetWidth && menuX < itemX + submenuItem.offsetWidth
&& (menuY < itemY && (menuY < itemY
|| menuY > (itemY + submenuItem.offsetHeight))) { || menuY > (itemY + submenuItem.offsetHeight))) {
hideMenu(event, parentMenu.submenu); hideMenu(parentMenu.submenu);
parentMenu.submenu = null; parentMenu.submenu = null;
parentMenu.submenuItem = null; parentMenu.submenuItem = null;
parentMenu.setAttribute('onmousemove', null); parentMenu.setAttribute('onmousemove', null);
@ -769,7 +768,7 @@ function popupSearchMenu(event) {
event.returnValue = false; event.returnValue = false;
if (document.currentPopupMenu) if (document.currentPopupMenu)
hideMenu(event, document.currentPopupMenu); hideMenu(document.currentPopupMenu);
var popup = $(menuId); var popup = $(menuId);
popup.setStyle({ top: this.offsetHeight + "px", popup.setStyle({ top: this.offsetHeight + "px",
@ -891,29 +890,18 @@ function initCriteria() {
} }
/* toolbar buttons */ /* toolbar buttons */
function popupToolbarMenu(event, menuId) { function popupToolbarMenu(node, menuId) {
var toolbar = $("toolbar"); if (document.currentPopupMenu)
var node = getTarget(event); hideMenu(document.currentPopupMenu);
if (node.tagName != 'A')
node = node.getParentWithTagName("a");
node = node.childNodesWithTag("span")[0];
if (event.button == 0) { var popup = $(menuId);
event.cancelBubble = true; var top = node.top + node.offsetHeight - 2;
event.returnValue = false; popup.setStyle({ top: top + "px",
left: node.cascadeLeftOffset() + "px",
if (document.currentPopupMenu) visibility: "visible" });
hideMenu(event, document.currentPopupMenu);
var popup = document.getElementById(menuId);
var top = node.offsetTop + node.offsetHeight - 2;
popup.setStyle({ top: top + "px",
left: node.cascadeLeftOffset() + "px",
visibility: "visible" });
document.currentPopupMenu = popup; document.currentPopupMenu = popup;
Event.observe(document.body, "click", onBodyClickMenuHandler); Event.observe(document.body, "click", onBodyClickMenuHandler);
}
} }
/* contact selector */ /* contact selector */