diff --git a/UI/WebServerResources/ContactsUI.js b/UI/WebServerResources/ContactsUI.js index b139ee3a4..6931ebaac 100644 --- a/UI/WebServerResources/ContactsUI.js +++ b/UI/WebServerResources/ContactsUI.js @@ -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"); diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index e2f1f341b..fa06604a8 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -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);