Monotone-Parent: 392d6631a429629bec7220b159f559a24caa910c
Monotone-Revision: ac86bf6af212996c20d42a2d5075ed984200b34c Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2008-04-15T19:48:48 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
parent
04e2682234
commit
20e2fea98b
|
@ -1,7 +1,7 @@
|
|||
/* JavaScript for SOGoContacts */
|
||||
|
||||
var cachedContacts = new Array();
|
||||
var currentContactFolder = null;
|
||||
var currentAddressBook = null;
|
||||
|
||||
var usersRightsWindowHeight = 200;
|
||||
var usersRightsWindowWidth = 450;
|
||||
|
@ -26,10 +26,10 @@ function validateEditorInput(sender) {
|
|||
}
|
||||
|
||||
function openContactsFolder(contactsFolder, reload, idx) {
|
||||
if ((contactsFolder && contactsFolder != currentContactFolder)
|
||||
if ((contactsFolder && contactsFolder != currentAddressBook)
|
||||
|| reload) {
|
||||
currentContactFolder = contactsFolder;
|
||||
var url = URLForFolderID(currentContactFolder) +
|
||||
currentAddressBook = contactsFolder;
|
||||
var url = URLForFolderID(currentAddressBook) +
|
||||
"/view?noframe=1";
|
||||
|
||||
var searchValue = search["value"];
|
||||
|
@ -42,7 +42,7 @@ function openContactsFolder(contactsFolder, reload, idx) {
|
|||
+ "&asc=" + sorting["ascending"]);
|
||||
|
||||
var selection;
|
||||
if (contactsFolder == currentContactFolder) {
|
||||
if (contactsFolder == currentAddressBook) {
|
||||
var contactsList = $("contactsList");
|
||||
if (contactsList)
|
||||
selection = contactsList.getSelectedRowsId();
|
||||
|
@ -63,7 +63,7 @@ function openContactsFolder(contactsFolder, reload, idx) {
|
|||
|
||||
function openContactsFolderAtIndex(element) {
|
||||
var idx = element.getAttribute("idx");
|
||||
var url = URLForFolderID(currentContactFolder) + "/view?noframe=1&idx=" + idx;
|
||||
var url = URLForFolderID(currentAddressBook) + "/view?noframe=1&idx=" + idx;
|
||||
|
||||
if (document.contactsListAjaxRequest) {
|
||||
document.contactsListAjaxRequest.aborted = true;
|
||||
|
@ -162,9 +162,9 @@ function contactsListCallback(http) {
|
|||
log ("ajax problem 1: status = " + http.status);
|
||||
}
|
||||
|
||||
function onContactFoldersContextMenu(event) {
|
||||
function onAddressBooksContextMenu(event) {
|
||||
var menu = $("contactFoldersMenu");
|
||||
Event.observe(menu, "mousedown", onContactFoldersContextMenuHide, false);
|
||||
Event.observe(menu, "mousedown", onAddressBooksContextMenuHide, false);
|
||||
popupMenu(event, "contactFoldersMenu", this);
|
||||
|
||||
var topNode = $("contactFolders");
|
||||
|
@ -205,7 +205,7 @@ function onContactContextMenuHide(event) {
|
|||
}
|
||||
}
|
||||
|
||||
function onContactFoldersContextMenuHide(event) {
|
||||
function onAddressBooksContextMenuHide(event) {
|
||||
var topNode = $("contactFolders");
|
||||
|
||||
if (topNode.menuSelectedEntry) {
|
||||
|
@ -237,12 +237,12 @@ function loadContact(idx) {
|
|||
document.contactAjaxRequest.abort();
|
||||
}
|
||||
|
||||
if (cachedContacts[currentContactFolder + "/" + idx]) {
|
||||
if (cachedContacts[currentAddressBook + "/" + idx]) {
|
||||
var div = $('contactView');
|
||||
div.innerHTML = cachedContacts[currentContactFolder + "/" + idx];
|
||||
div.innerHTML = cachedContacts[currentAddressBook + "/" + idx];
|
||||
}
|
||||
else {
|
||||
var url = (URLForFolderID(currentContactFolder)
|
||||
var url = (URLForFolderID(currentAddressBook)
|
||||
+ "/" + idx + "/view?noframe=1");
|
||||
document.contactAjaxRequest
|
||||
= triggerAjaxRequest(url, contactLoadCallback, idx);
|
||||
|
@ -256,7 +256,7 @@ function contactLoadCallback(http) {
|
|||
&& http.status == 200) {
|
||||
document.contactAjaxRequest = null;
|
||||
var content = http.responseText;
|
||||
cachedContacts[currentContactFolder + "/" + http.callbackData] = content;
|
||||
cachedContacts[currentAddressBook + "/" + http.callbackData] = content;
|
||||
div.innerHTML = content;
|
||||
}
|
||||
else
|
||||
|
@ -296,7 +296,7 @@ function moveTo(uri) {
|
|||
function onContactRowDblClick(event) {
|
||||
var contactId = this.getAttribute('id');
|
||||
|
||||
openContactWindow(URLForFolderID(currentContactFolder)
|
||||
openContactWindow(URLForFolderID(currentAddressBook)
|
||||
+ "/" + contactId + "/edit", contactId);
|
||||
|
||||
return false;
|
||||
|
@ -317,14 +317,14 @@ function onContactSelectionChange(event) {
|
|||
function onMenuEditContact(event) {
|
||||
var contactId = document.menuTarget.getAttribute('id');
|
||||
|
||||
openContactWindow(URLForFolderID(currentContactFolder)
|
||||
openContactWindow(URLForFolderID(currentAddressBook)
|
||||
+ "/" + contactId + "/edit", contactId);
|
||||
}
|
||||
|
||||
function onMenuWriteToContact(event) {
|
||||
var contactId = document.menuTarget.getAttribute('id');
|
||||
|
||||
openMailComposeWindow(ApplicationBaseURL + currentContactFolder
|
||||
openMailComposeWindow(ApplicationBaseURL + currentAddressBook
|
||||
+ "/" + contactId + "/write");
|
||||
|
||||
if (document.body.hasClassName("popup"))
|
||||
|
@ -352,7 +352,7 @@ function onToolbarEditSelectedContacts(event) {
|
|||
}
|
||||
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
openContactWindow(URLForFolderID(currentContactFolder)
|
||||
openContactWindow(URLForFolderID(currentAddressBook)
|
||||
+ "/" + rows[i] + "/edit", rows[i]);
|
||||
}
|
||||
|
||||
|
@ -373,7 +373,7 @@ function onToolbarWriteToSelectedContacts(event) {
|
|||
var emailCell = $(rows[i]).down('td', 1);
|
||||
if (emailCell.firstChild) { // .nodeValue is the contact email address
|
||||
rowsWithEmail++;
|
||||
openMailComposeWindow(ApplicationBaseURL + currentContactFolder
|
||||
openMailComposeWindow(ApplicationBaseURL + currentAddressBook
|
||||
+ "/" + rows[i] + "/write");
|
||||
}
|
||||
}
|
||||
|
@ -404,7 +404,7 @@ function uixDeleteSelectedContacts(sender) {
|
|||
|
||||
/* send AJAX request (synchronously) */
|
||||
|
||||
url = (URLForFolderID(currentContactFolder) + "/"
|
||||
url = (URLForFolderID(currentAddressBook) + "/"
|
||||
+ rows[i] + "/delete");
|
||||
http = createHTTPClient();
|
||||
http.open("POST", url, false /* not async */);
|
||||
|
@ -468,7 +468,7 @@ function onHeaderClick(event) {
|
|||
}
|
||||
|
||||
function newContact(sender) {
|
||||
openContactWindow(URLForFolderID(currentContactFolder) + "/newcontact");
|
||||
openContactWindow(URLForFolderID(currentAddressBook) + "/newcontact");
|
||||
|
||||
return false; /* stop following the link */
|
||||
}
|
||||
|
@ -499,13 +499,13 @@ function onFolderSelectionChange(event) {
|
|||
}
|
||||
|
||||
function refreshCurrentFolder() {
|
||||
openContactsFolder(currentContactFolder, true);
|
||||
openContactsFolder(currentAddressBook, true);
|
||||
}
|
||||
|
||||
function onConfirmContactSelection(event) {
|
||||
var tag = this.getAttribute("name");
|
||||
var folderLi = $(currentContactFolder);
|
||||
var currentContactFolderName = folderLi.innerHTML;
|
||||
var folderLi = $(currentAddressBook);
|
||||
var currentAddressBookName = folderLi.innerHTML;
|
||||
var selectorList = null;
|
||||
var initialValues = null;
|
||||
|
||||
|
@ -523,7 +523,8 @@ function onConfirmContactSelection(event) {
|
|||
var cid = rows[i].getAttribute("contactid");
|
||||
var cname = '' + rows[i].getAttribute("contactname");
|
||||
var email = '' + rows[i].cells[1].innerHTML;
|
||||
window.opener.addContact(tag, currentContactFolderName + '/' + cname,
|
||||
|
||||
window.opener.addContact(tag, currentAddressBookName + '/' + cname,
|
||||
cid, cname, email);
|
||||
}
|
||||
|
||||
|
@ -540,7 +541,7 @@ function onContactMailTo(node) {
|
|||
|
||||
function refreshContacts(contactId) {
|
||||
refreshCurrentFolder();
|
||||
cachedContacts[currentContactFolder + "/" + contactId] = null;
|
||||
cachedContacts[currentAddressBook + "/" + contactId] = null;
|
||||
loadContact(contactId);
|
||||
|
||||
return false;
|
||||
|
@ -583,7 +584,7 @@ function appendAddressBook(name, folder) {
|
|||
li.setAttribute("id", folder);
|
||||
li.setAttribute("owner", owner);
|
||||
li.appendChild(document.createTextNode(name));
|
||||
setEventsOnContactFolder(li);
|
||||
setEventsOnAddressBook(li);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -726,14 +727,14 @@ function configureAbToolbar() {
|
|||
}
|
||||
}
|
||||
|
||||
function configureContactFolders() {
|
||||
function configureAddressBooks() {
|
||||
var contactFolders = $("contactFolders");
|
||||
if (contactFolders) {
|
||||
contactFolders.observe("mousedown", listRowMouseDownHandler);
|
||||
contactFolders.observe("click", onFolderSelectionChange);
|
||||
var lis = contactFolders.childNodesWithTag("li");
|
||||
for (var i = 0; i < lis.length; i++)
|
||||
setEventsOnContactFolder(lis[i]);
|
||||
setEventsOnAddressBook(lis[i]);
|
||||
|
||||
lookupDeniedFolders();
|
||||
|
||||
|
@ -743,16 +744,17 @@ function configureContactFolders() {
|
|||
}
|
||||
}
|
||||
|
||||
function setEventsOnContactFolder(folder) {
|
||||
function setEventsOnAddressBook(folder) {
|
||||
var node = $(folder);
|
||||
|
||||
node.observe("mousedown", listRowMouseDownHandler);
|
||||
node.observe("click", onRowClick);
|
||||
node.observe("dblclick", onAddressBookModify);
|
||||
Event.observe(node, "contextmenu",
|
||||
onContactFoldersContextMenu.bindAsEventListener(node));
|
||||
onAddressBooksContextMenu.bindAsEventListener(node));
|
||||
}
|
||||
|
||||
function onMenuModify(event) {
|
||||
function onAddressBookModify(event) {
|
||||
var folders = $("contactFolders");
|
||||
var selected = folders.getSelectedNodes()[0];
|
||||
|
||||
|
@ -798,7 +800,7 @@ function onMenuSharing(event) {
|
|||
}
|
||||
}
|
||||
|
||||
function onContactFoldersMenuPrepareVisibility() {
|
||||
function onAddressBooksMenuPrepareVisibility() {
|
||||
var folders = $("contactFolders");
|
||||
var selected = folders.getSelectedNodes();
|
||||
|
||||
|
@ -841,7 +843,7 @@ function onContactMenuPrepareVisibility() {
|
|||
|
||||
function getMenus() {
|
||||
var menus = {};
|
||||
menus["contactFoldersMenu"] = new Array(onMenuModify, "-", null,
|
||||
menus["contactFoldersMenu"] = new Array(onAddressBookModify, "-", null,
|
||||
null, "-", null, "-",
|
||||
onMenuSharing);
|
||||
menus["contactMenu"] = new Array(onMenuEditContact, "-",
|
||||
|
@ -851,7 +853,7 @@ function getMenus() {
|
|||
|
||||
var contactFoldersMenu = $("contactFoldersMenu");
|
||||
if (contactFoldersMenu)
|
||||
contactFoldersMenu.prepareVisibility = onContactFoldersMenuPrepareVisibility;
|
||||
contactFoldersMenu.prepareVisibility = onAddressBooksMenuPrepareVisibility;
|
||||
var contactMenu = $("contactMenu");
|
||||
if (contactMenu)
|
||||
contactMenu.prepareVisibility = onContactMenuPrepareVisibility;
|
||||
|
@ -873,7 +875,7 @@ function initContacts(event) {
|
|||
if (document.body.hasClassName("popup"))
|
||||
configureSelectionButtons();
|
||||
configureAbToolbar();
|
||||
configureContactFolders();
|
||||
configureAddressBooks();
|
||||
// initDnd();
|
||||
|
||||
var table = $("contactsList");
|
||||
|
|
|
@ -418,10 +418,10 @@ function tasksListCallback(http) {
|
|||
for (var i = 0; i < data.length; i++) {
|
||||
var listItem = document.createElement("li");
|
||||
list.appendChild(listItem);
|
||||
Event.observe(listItem, "mousedown", listRowMouseDownHandler);
|
||||
Event.observe(listItem, "click", onRowClick);
|
||||
Event.observe(listItem, "dblclick",
|
||||
editDoubleClickedEvent.bindAsEventListener(listItem));
|
||||
// Event.observe(listItem, "mousedown", listRowMouseDownHandler);
|
||||
// Event.observe(listItem, "click", onRowClick);
|
||||
// Event.observe(listItem, "dblclick",
|
||||
// editDoubleClickedEvent.bindAsEventListener(listItem));
|
||||
listItem.setAttribute("id", data[i][0]);
|
||||
$(listItem).addClassName(data[i][5]);
|
||||
$(listItem).addClassName(data[i][6]);
|
||||
|
@ -431,11 +431,14 @@ function tasksListCallback(http) {
|
|||
var input = document.createElement("input");
|
||||
input.setAttribute("type", "checkbox");
|
||||
listItem.appendChild(input);
|
||||
Event.observe(input, "click", updateTaskStatus.bindAsEventListener(input), true);
|
||||
// Event.observe(input, "click", updateTaskStatus.bindAsEventListener(input), true);
|
||||
input.setAttribute("value", "1");
|
||||
if (data[i][2] == 1)
|
||||
input.setAttribute("checked", "checked");
|
||||
$(input).addClassName("checkBox");
|
||||
|
||||
setEventsOnCalendar(input, listItem);
|
||||
|
||||
listItem.appendChild(document.createTextNode(data[i][3]));
|
||||
}
|
||||
|
||||
|
@ -1496,30 +1499,6 @@ function updateCalendarsList(method) {
|
|||
}
|
||||
}
|
||||
|
||||
function addContact(tag, fullContactName, contactId, contactName, contactEmail) {
|
||||
var uids = $("uixselector-calendarsList-uidList");
|
||||
// log("addContact");
|
||||
if (contactId)
|
||||
{
|
||||
var re = new RegExp("(^|,)" + contactId + "($|,)");
|
||||
|
||||
if (!re.test(uids.value))
|
||||
{
|
||||
if (uids.value.length > 0)
|
||||
uids.value += ',' + contactId;
|
||||
else
|
||||
uids.value = contactId;
|
||||
var names = $("calendarList");
|
||||
var listElems = names.childNodesWithTag("li");
|
||||
var colorDef = indexColor(listElems.length);
|
||||
names.appendChild(userCalendarEntry(contactId, colorDef));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function validateBrowseURL(input) {
|
||||
var button = $("browseURLBtn");
|
||||
|
||||
|
@ -1574,7 +1553,7 @@ function getMenus() {
|
|||
editEvent, deleteEvent, "-",
|
||||
onSelectAll, "-",
|
||||
null, null);
|
||||
menus["calendarsMenu"] = new Array(onMenuModify,
|
||||
menus["calendarsMenu"] = new Array(onCalendarModify,
|
||||
"-",
|
||||
onCalendarNew, onCalendarRemove,
|
||||
"-", null, null, "-",
|
||||
|
@ -1634,6 +1613,7 @@ function initCalendarSelector() {
|
|||
Event.observe(items[i], "mousedown", listRowMouseDownHandler);
|
||||
Event.observe(items[i], "selectstart", listRowMouseDownHandler);
|
||||
Event.observe(items[i], "click", onRowClick);
|
||||
items[i].observe("dblclick", onCalendarModify);
|
||||
}
|
||||
|
||||
var links = $("calendarSelectorButtons").childNodesWithTag("a");
|
||||
|
@ -1642,7 +1622,7 @@ function initCalendarSelector() {
|
|||
Event.observe(links[2], "click", onCalendarRemove);
|
||||
}
|
||||
|
||||
function onMenuModify(event) {
|
||||
function onCalendarModify(event) {
|
||||
var folders = $("calendarList");
|
||||
var selected = folders.getSelectedNodes()[0];
|
||||
|
||||
|
@ -1682,6 +1662,14 @@ function onCalendarAdd(event) {
|
|||
preventDefault(event);
|
||||
}
|
||||
|
||||
function setEventsOnCalendar(checkBox, li) {
|
||||
li.observe("mousedown", listRowMouseDownHandler);
|
||||
li.observe("selectstart", listRowMouseDownHandler);
|
||||
li.observe("click", onRowClick);
|
||||
li.observe("dblclick", onCalendarModify);
|
||||
checkBox.observe("click", updateCalendarStatus);
|
||||
}
|
||||
|
||||
function appendCalendar(folderName, folderPath) {
|
||||
var owner;
|
||||
|
||||
|
@ -1757,11 +1745,7 @@ function appendCalendar(folderName, folderPath) {
|
|||
$(colorBox).addClassName('calendarFolder' + folderPath.substr(1));
|
||||
|
||||
// Register events (doesn't work with Safari)
|
||||
Event.observe(li, "mousedown", listRowMouseDownHandler);
|
||||
Event.observe(li, "selectstart", listRowMouseDownHandler);
|
||||
Event.observe(li, "click", onRowClick);
|
||||
Event.observe(checkBox, "click",
|
||||
updateCalendarStatus.bindAsEventListener(checkBox));
|
||||
setEventsOnCalendar(checkBox, li);
|
||||
|
||||
var url = URLForFolderID(folderPath) + "/canAccessContent";
|
||||
triggerAjaxRequest(url, calendarEntryCallback, folderPath);
|
||||
|
|
Loading…
Reference in a new issue