mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-11 22:45:26 +00:00
Monotone-Parent: c494ba259363880f5d46e8931a1708d1ba1aed45
Monotone-Revision: 5f57280bc0c8371b942a310b60e1dfa1a790fb84 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-09-30T18:05:14 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
var contactSelectorAction = 'delegation-contacts';
|
||||
|
||||
function addDelegate(delegateName, delegateID) {
|
||||
var result = false;
|
||||
if (!$(delegateID)) {
|
||||
var ul = $("delegateList");
|
||||
var newNode = nodeForDelegate(delegateName, delegateID);
|
||||
ul.appendChild(newNode);
|
||||
|
||||
var url = window.location.href;
|
||||
var elements = url.split("/");
|
||||
elements[elements.length-1] = ("addDelegate?uid="
|
||||
+ delegateID);
|
||||
triggerAjaxRequest(elements.join("/"), addDelegateCallback, newNode);
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function addDelegateCallback(http) {
|
||||
if (http.readyState == 4) {
|
||||
if (!isHttpStatus204(http.status)) {
|
||||
var node = http.callbackData;
|
||||
node.parentNode.removeChild(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setEventsOnDelegateNode(node) {
|
||||
node.observe("mousedown", listRowMouseDownHandler);
|
||||
node.observe("selectstart", listRowMouseDownHandler);
|
||||
node.observe("click", onRowClick);
|
||||
}
|
||||
|
||||
function nodeForDelegate(delegateName, delegateId) {
|
||||
var node = createElement("li");
|
||||
node.id = delegateId;
|
||||
|
||||
var span = createElement("span");
|
||||
span.addClassName("userFullName");
|
||||
span.appendChild(document.createTextNode(" " + delegateName));
|
||||
node.appendChild(span);
|
||||
|
||||
setEventsOnDelegateNode(node);
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
function onDelegateAdd(event) {
|
||||
openUserFolderSelector(null, "user");
|
||||
|
||||
preventDefault(event);
|
||||
}
|
||||
|
||||
function removeDelegateCallback(http) {
|
||||
var node = http.callbackData;
|
||||
|
||||
if (http.readyState == 4
|
||||
&& isHttpStatus204(http.status))
|
||||
node.parentNode.removeChild(node);
|
||||
else
|
||||
log("error deleting delegate: " + node.getAttribute("id"));
|
||||
}
|
||||
|
||||
function onDelegateRemove(event) {
|
||||
var delegateList = $("delegateList");
|
||||
var nodes = delegateList.getSelectedRows();
|
||||
|
||||
var url = window.location.href;
|
||||
var elements = url.split("/");
|
||||
elements[elements.length-1] = "removeDelegate?uid=";
|
||||
var baseURL = elements.join("/");
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
var delegateId = nodes[i].id;
|
||||
triggerAjaxRequest(baseURL + delegateId, removeDelegateCallback,
|
||||
nodes[i]);
|
||||
}
|
||||
preventDefault(event);
|
||||
}
|
||||
|
||||
function subscribeToFolder(refreshCallback, refreshCallbackData) {
|
||||
var result = true;
|
||||
if (UserLogin != refreshCallbackData["folder"]) {
|
||||
result = addDelegate(refreshCallbackData["folderName"],
|
||||
refreshCallbackData["folder"]);
|
||||
}
|
||||
else
|
||||
refreshCallbackData["window"].alert(_("You cannot subscribe to a folder that you own!"));
|
||||
return result;
|
||||
}
|
||||
|
||||
function onDelegationLoadHandler() {
|
||||
var ul = $("delegateList");
|
||||
var lis = ul.childNodesWithTag("li");
|
||||
for (var i = 0; i < lis.length; i++)
|
||||
setEventsOnDelegateNode(lis[i]);
|
||||
|
||||
var buttonArea = $("delegateSelectorButtons");
|
||||
if (buttonArea) {
|
||||
var buttons = buttonArea.childNodesWithTag("a");
|
||||
$("addDelegate").stopObserving ("click");
|
||||
$("deleteDelegate").stopObserving ("click");
|
||||
$("addDelegate").observe("mousedown", onDelegateAdd);
|
||||
$("deleteDelegate").observe("mousedown", onDelegateRemove);
|
||||
}
|
||||
|
||||
Event.observe(window, "unload", onDelegationCloseHandler);
|
||||
}
|
||||
|
||||
document.observe("dom:loaded", onDelegationLoadHandler);
|
||||
Reference in New Issue
Block a user