mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-13 01:08:50 +00:00
merge of '36df3bcfd6c56f483f2676ceb6b6757a6506dbb7'
and 'f12c75a72aac13edc9728fe5a656c622487836dd' Monotone-Parent: 36df3bcfd6c56f483f2676ceb6b6757a6506dbb7 Monotone-Parent: f12c75a72aac13edc9728fe5a656c622487836dd Monotone-Revision: 0c622c14bea584c75539ec4bf9d8ca29899745ef Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-09-14T22:05:54 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -19,8 +19,8 @@ function validateEditorInput(sender) {
|
||||
errortext = errortext + labels.error_missingrecipients + "\n";
|
||||
|
||||
if (errortext.length > 0) {
|
||||
alert(labels.error_validationfailed.decodeEntities() + ":\n"
|
||||
+ errortext.decodeEntities());
|
||||
alert(labels.error_validationfailed + ":\n"
|
||||
+ errortext);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -497,28 +497,24 @@ function refreshContacts(contactId) {
|
||||
}
|
||||
|
||||
function onAddressBookNew(event) {
|
||||
var name = window.prompt(labels["Name of the Address Book"].decodeEntities());
|
||||
if (name) {
|
||||
if (document.newAbAjaxRequest) {
|
||||
document.newAbAjaxRequest.aborted = true;
|
||||
document.newAbAjaxRequest.abort();
|
||||
}
|
||||
var url = ApplicationBaseURL + "/newAb?name=" + name;
|
||||
document.newAbAjaxRequest
|
||||
= triggerAjaxRequest(url, newAbCallback, name);
|
||||
}
|
||||
createFolder(window.prompt(labels["Name of the Address Book"]),
|
||||
appendAddressBook);
|
||||
preventDefault(event);
|
||||
}
|
||||
|
||||
function appendAddressBook(name, folder) {
|
||||
var li = document.createElement("li");
|
||||
$("contactFolders").appendChild(li);
|
||||
li.setAttribute("id", folder);
|
||||
li.appendChild(document.createTextNode(name));
|
||||
setEventsOnContactFolder(li);
|
||||
if (folder)
|
||||
folder = accessToSubscribedFolder(folder);
|
||||
else
|
||||
folder = "/" + name;
|
||||
var li = document.createElement("li");
|
||||
$("contactFolders").appendChild(li);
|
||||
li.setAttribute("id", folder);
|
||||
li.appendChild(document.createTextNode(name));
|
||||
setEventsOnContactFolder(li);
|
||||
}
|
||||
|
||||
function newAbCallback(http) {
|
||||
function newFolderCallback(http) {
|
||||
if (http.readyState == 4
|
||||
&& http.status == 201) {
|
||||
var name = http.callbackData;
|
||||
@@ -552,60 +548,60 @@ function onAddressBookRemove(event) {
|
||||
var selector = $("contactFolders");
|
||||
var nodes = selector.getSelectedNodes();
|
||||
if (nodes.length > 0) {
|
||||
nodes[0].deselect();
|
||||
var folderId = nodes[0].getAttribute("id");
|
||||
var folderIdElements = folderId.split(":");
|
||||
if (folderIdElements.length > 1)
|
||||
unsubscribeFromFolder(folderId, onFolderUnsubscribeCB, folderId);
|
||||
else {
|
||||
var abId = folderIdElements[0].substr(1);
|
||||
deletePersonalAddressBook(abId);
|
||||
var personal = $("/personal");
|
||||
personal.select();
|
||||
onFolderSelectionChange();
|
||||
}
|
||||
nodes[0].deselect();
|
||||
var folderId = nodes[0].getAttribute("id");
|
||||
var folderIdElements = folderId.split("_");
|
||||
if (folderIdElements.length > 1)
|
||||
unsubscribeFromFolder(folderId, onFolderUnsubscribeCB, folderId);
|
||||
else {
|
||||
var abId = folderIdElements[0].substr(1);
|
||||
deletePersonalAddressBook(abId);
|
||||
var personal = $("/personal");
|
||||
personal.select();
|
||||
onFolderSelectionChange();
|
||||
}
|
||||
}
|
||||
|
||||
preventDefault(event);
|
||||
}
|
||||
|
||||
function deletePersonalAddressBook(folderId) {
|
||||
var label
|
||||
= labels["Are you sure you want to delete the selected address book?"];
|
||||
if (window.confirm(label.decodeEntities())) {
|
||||
if (document.deletePersonalABAjaxRequest) {
|
||||
document.deletePersonalABAjaxRequest.aborted = true;
|
||||
document.deletePersonalABAjaxRequest.abort();
|
||||
}
|
||||
var url = ApplicationBaseURL + "/" + folderId + "/delete";
|
||||
document.deletePersonalABAjaxRequest
|
||||
= triggerAjaxRequest(url, deletePersonalAddressBookCallback,
|
||||
folderId);
|
||||
}
|
||||
var label
|
||||
= labels["Are you sure you want to delete the selected address book?"];
|
||||
if (window.confirm(label)) {
|
||||
if (document.deletePersonalABAjaxRequest) {
|
||||
document.deletePersonalABAjaxRequest.aborted = true;
|
||||
document.deletePersonalABAjaxRequest.abort();
|
||||
}
|
||||
var url = ApplicationBaseURL + "/" + folderId + "/deleteFolder";
|
||||
document.deletePersonalABAjaxRequest
|
||||
= triggerAjaxRequest(url, deletePersonalAddressBookCallback,
|
||||
folderId);
|
||||
}
|
||||
}
|
||||
|
||||
function deletePersonalAddressBookCallback(http) {
|
||||
if (http.readyState == 4) {
|
||||
if (http.status == 200) {
|
||||
var ul = $("contactFolders");
|
||||
if (isHttpStatus204(http.status)) {
|
||||
var ul = $("contactFolders");
|
||||
|
||||
var children = ul.childNodesWithTag("li");
|
||||
var i = 0;
|
||||
var done = false;
|
||||
while (!done && i < children.length) {
|
||||
var currentFolderId = children[i].getAttribute("id").substr(1);
|
||||
if (currentFolderId == http.callbackData) {
|
||||
ul.removeChild(children[i]);
|
||||
done = true;
|
||||
}
|
||||
else
|
||||
i++;
|
||||
var children = ul.childNodesWithTag("li");
|
||||
var i = 0;
|
||||
var done = false;
|
||||
while (!done && i < children.length) {
|
||||
var currentFolderId = children[i].getAttribute("id").substr(1);
|
||||
if (currentFolderId == http.callbackData) {
|
||||
ul.removeChild(children[i]);
|
||||
done = true;
|
||||
}
|
||||
}
|
||||
document.deletePersonalABAjaxRequest = null;
|
||||
else
|
||||
i++;
|
||||
}
|
||||
}
|
||||
document.deletePersonalABAjaxRequest = null;
|
||||
}
|
||||
else
|
||||
log ("ajax problem 5: " + http.status);
|
||||
log ("ajax problem 5: " + http.status);
|
||||
}
|
||||
|
||||
function configureDragHandles() {
|
||||
@@ -677,6 +673,34 @@ function setEventsOnContactFolder(node) {
|
||||
onContactFoldersContextMenu.bindAsEventListener(node), false);
|
||||
}
|
||||
|
||||
function onMenuModify(event) {
|
||||
var folders = $("contactFolders");
|
||||
var selected = folders.getSelectedNodes()[0];
|
||||
|
||||
if (UserLogin == selected.getAttribute("owner")) {
|
||||
var currentName = selected.innerHTML;
|
||||
var newName = window.prompt(labels["Address Book Name"],
|
||||
currentName);
|
||||
if (newName && newName.length > 0
|
||||
&& newName != currentName) {
|
||||
var url = (URLForFolderID(selected.getAttribute("id"))
|
||||
+ "/renameFolder?name=" + escape(newName.utf8encode()));
|
||||
triggerAjaxRequest(url, folderRenameCallback,
|
||||
{node: selected, name: newName});
|
||||
}
|
||||
} else
|
||||
window.alert(clabels["Unable to rename that folder!"]);
|
||||
}
|
||||
|
||||
function folderRenameCallback(http) {
|
||||
if (http.readyState == 4) {
|
||||
if (isHttpStatus204(http.status)) {
|
||||
var dict = http.callbackData;
|
||||
dict["node"].innerHTML = dict["name"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onMenuSharing(event) {
|
||||
var folders = $("contactFolders");
|
||||
var selected = folders.getSelectedNodes()[0];
|
||||
@@ -688,7 +712,7 @@ function onMenuSharing(event) {
|
||||
|
||||
function getMenus() {
|
||||
var menus = {};
|
||||
menus["contactFoldersMenu"] = new Array(null, "-", null,
|
||||
menus["contactFoldersMenu"] = new Array(onMenuModify, "-", null,
|
||||
null, "-", null, "-",
|
||||
onMenuSharing);
|
||||
menus["contactMenu"] = new Array(onMenuEditContact, "-",
|
||||
|
||||
Reference in New Issue
Block a user