}
function contactsListCallback(http) {
- if (http.readyState == 4
- && http.status == 200) {
- document.contactsListAjaxRequest = null;
-
- var table = $("contactsList");
- if (table) {
- // Update table
- var data = http.responseText;
- var html = data.replace(/^(.*\n)*.*(<table(.*\n)*)$/, "$2");
- var tbody = table.tBodies[0];
- var tmp = document.createElement('div');
- $(tmp).update(html);
- table.replaceChild(tmp.firstChild.tBodies[0], tbody);
- }
- else {
- // Add table (doesn't happen .. yet)
- var div = $("contactsListContent");
- div.update(http.responseText);
- table = $("contactsList");
- configureSortableTableHeaders(table);
- TableKit.Resizable.init(table, {'trueResize' : true, 'keepWidth' : true});
- }
+ if (http.readyState == 4) {
+ if (http.status == 200) {
+ document.contactsListAjaxRequest = null;
+
+ var table = $("contactsList");
+ if (table) {
+ // Update table
+ var data = http.responseText;
+ var html = data.replace(/^(.*\n)*.*(<table(.*\n)*)$/, "$2");
+ var tbody = table.tBodies[0];
+ var tmp = document.createElement('div');
+ $(tmp).update(html);
+ table.replaceChild(tmp.firstChild.tBodies[0], tbody);
+ }
+ else {
+ // Add table (doesn't happen .. yet)
+ var div = $("contactsListContent");
+ div.update(http.responseText);
+ table = $("contactsList");
+ configureSortableTableHeaders(table);
+ TableKit.Resizable.init(table, {'trueResize' : true, 'keepWidth' : true});
+ }
- if (sorting["attribute"] && sorting["attribute"].length > 0) {
- var sortHeader;
- if (sorting["attribute"] == "displayName")
+ if (sorting["attribute"] && sorting["attribute"].length > 0) {
+ var sortHeader;
+ if (sorting["attribute"] == "displayName")
sortHeader = $("nameHeader");
- else if (sorting["attribute"] == "mail")
+ else if (sorting["attribute"] == "mail")
sortHeader = $("mailHeader");
- else if (sorting["attribute"] == "screenName")
+ else if (sorting["attribute"] == "screenName")
sortHeader = $("screenNameHeader");
- else if (sorting["attribute"] == "org")
+ else if (sorting["attribute"] == "org")
sortHeader = $("orgHeader");
- else if (sorting["attribute"] == "phone")
+ else if (sorting["attribute"] == "phone")
sortHeader = $("phoneHeader");
- else
+ else
sortHeader = null;
- if (sortHeader) {
+ if (sortHeader) {
var sortImages = $(table.tHead).getElementsByClassName("sortImage");
$(sortImages).each(function(item) {
item.remove();
var sortImage = createElement("img", "messageSortImage", "sortImage");
sortHeader.insertBefore(sortImage, sortHeader.firstChild);
if (sorting["ascending"])
- sortImage.src = ResourcesURL + "/title_sortdown_12x12.png";
+ sortImage.src = ResourcesURL + "/title_sortdown_12x12.png";
else
- sortImage.src = ResourcesURL + "/title_sortup_12x12.png";
- }
- }
+ sortImage.src = ResourcesURL + "/title_sortup_12x12.png";
+ }
+ }
- var selected = http.callbackData;
- if (selected) {
- for (var i = 0; i < selected.length; i++) {
+ var selected = http.callbackData;
+ if (selected) {
+ for (var i = 0; i < selected.length; i++) {
var row = $(selected[i]);
if (row)
- row.select();
- }
+ row.select();
+ }
+ }
+ }
+ else {
+ var table = $("contactsList");
+ if (table) {
+ var sortImages = $(table.tHead).getElementsByClassName("sortImage");
+ $(sortImages).each(function(item) {
+ item.remove();
+ });
+ var tBody = $(table.tBodies[0]);
+ var length = tBody.rows.length;
+ for (var i = length - 1; i > -1; i--)
+ tBody.removeChild(tBody.rows[i]);
+ }
}
}
else
}
function onMenuWriteToContact(event) {
- var contactId = document.menuTarget.getAttribute('id');
- var contactRow = $(contactId);
- var emailCell = contactRow.down('td', 1);
+ var contactId = document.menuTarget.getAttribute('id');
+ var contactRow = $(contactId);
+ var emailCell = contactRow.down('td', 1);
- if (!emailCell.firstChild) { // .nodeValue is the contact email address
- window.alert(labels["The selected contact has no email address."]);
- return false;
- }
+ if (!emailCell.firstChild) { // .nodeValue is the contact email address
+ window.alert(labels["The selected contact has no email address."]);
+ return false;
+ }
- openMailComposeWindow(ApplicationBaseURL + currentContactFolder
- + "/" + contactId + "/write");
+ openMailComposeWindow(ApplicationBaseURL + currentContactFolder
+ + "/" + contactId + "/write");
- if (document.body.hasClassName("popup"))
- window.close();
+ if (document.body.hasClassName("popup"))
+ window.close();
}
function onMenuDeleteContact(event) {
var contactsList = $('contactsList');
var rows = contactsList.getSelectedRowsId();
+ if (rows.length == 0) {
+ window.alert(labels["Please select a contact."]);
+ return false;
+ }
+
for (var i = 0; i < rows.length; i++) {
openContactWindow(URLForFolderID(currentContactFolder)
+ "/" + rows[i] + "/edit", rows[i]);
var rows = contactsList.getSelectedRowsId();
var rowsWithEmail = 0;
- if (rows.length == 0)
+ if (rows.length == 0) {
+ openMailComposeWindow(ApplicationBaseURL + "Mail/compose");
return false;
+ }
for (var i = 0; i < rows.length; i++) {
var emailCell = $(rows[i]).down('td', 1);
var contactsList = $('contactsList');
var rows = contactsList.getSelectedRowsId();
+ if (rows.length == 0) {
+ window.alert(labels["Please select a contact."]);
+ return false;
+ }
+
var contactView = $('contactView');
contactView.innerHTML = '';
}
function refreshCurrentFolder() {
- openContactsFolder(currentContactFolder, true);
+ openContactsFolder(currentContactFolder, true);
}
function onConfirmContactSelection(event) {
var cid = rows[i].getAttribute("contactid");
var cname = '' + rows[i].getAttribute("contactname");
var email = '' + rows[i].cells[1].innerHTML;
- opener.window.addContact(tag, currentContactFolderName + '/' + cname,
+ window.opener.addContact(tag, currentContactFolderName + '/' + cname,
cid, cname, email);
}
}
function appendAddressBook(name, folder) {
- if (folder)
+ var owner;
+ var result = true;
+
+ if (folder) {
+ owner = getSubscribedFolderOwner(folder);
folder = accessToSubscribedFolder(folder);
+ }
else
folder = "/" + name;
+
+ if (!owner)
+ owner = UserLogin;
+
if ($(folder))
- window.alert(clabels["You have already subscribed to that folder!"]);
+ result = false;
else {
+ var contactFolders = $("contactFolders");
+ var items = contactFolders.childNodesWithTag("li");
var li = document.createElement("li");
- $("contactFolders").appendChild(li);
+
+ // Add the calendar to the proper place
+ var i = getListIndexForFolder(items, owner, name);
+ if (i != items.length) // User is subscribed to other calendars of the same owner
+ contactFolders.insertBefore(li, items[i]);
+ else
+ contactFolders.appendChild(li);
+
li.setAttribute("id", folder);
+ li.setAttribute("owner", owner);
li.appendChild(document.createTextNode(name));
setEventsOnContactFolder(li);
}
+
+ return result;
}
function newFolderCallback(http) {
if (selected.length > 0) {
var folderOwner = selected[0].getAttribute("owner");
+ var modifyOption = $(this).down("ul").childElements().first();
var sharingOption = $(this).down("ul").childElements().last();
- // Disable the "Sharing" option when address book is not owned by user
- if (folderOwner == UserLogin || IsSuperUser)
+ // Disable the "Sharing" and "Modify" options when address book
+ // is not owned by user
+ if (folderOwner == UserLogin || IsSuperUser) {
+ modifyOption.removeClassName("disabled");
sharingOption.removeClassName("disabled");
- else
+ }
+ else {
+ modifyOption.addClassName("disabled");
sharingOption.addClassName("disabled");
+ }
}
}
configureSortableTableHeaders(table);
TableKit.Resizable.init(table, {'trueResize' : true, 'keepWidth' : true});
}
+
+ // Default sort options
+ sorting["attribute"] = "displayName";
+ sorting["ascending"] = true;
}
FastInit.addOnLoad(initContacts);