/* test */
var contactSelectorAction = 'acls-contacts';
-
-function addContact(tag, fullContactName, contactId, contactName,
- contactEmail) {
- if (tag == "assistant")
- addUser(contactName, contactId, false);
- else if (tag == "delegate")
- addUser(contactName, contactId, true);
+var defaultUserID = '';
+
+function addUser(userName, userID) {
+ if (!$(userID)) {
+ var ul = $("userList");
+ ul.appendChild(nodeForUser(userName, userID));
+ var url = window.location.href;
+ var elements = url.split("/");
+ elements[elements.length-1] = ("addUserInAcls?uid="
+ + userID);
+ triggerAjaxRequest(elements.join("/"), addUserCallback);
+ }
}
-function addUser(userName, userId, delegate) {
- var uidList = $("uixselector-userRoles-uidList");
- var uids;
-
- if (uidList.value.length > 0) {
- uids = uidList.value.split(",");
- } else {
- uids = new Array();
- }
+function addUserCallback(http) {
+}
- if (uids.indexOf(userId) < 0) {
- uids.push(userId);
- var ul = $("uixselector-userRoles-display");
- ul.appendChild(nodeForUser(userName, userId));
- uidList.value = uids.join(",");
- var roleList;
- if (delegate)
- roleList = $("delegates");
- else
- roleList = $("assistants");
- if (roleList.value.length > 0) {
- uids = roleList.value.split(",");
- uids.push(userId);
- roleList.value = uids.join(",");
- }
- else
- roleList.value = userId;
- }
+function setEventsOnUserNode(node) {
+ Event.observe(node, "mousedown", listRowMouseDownHandler);
+ Event.observe(node, "dblclick", onOpenUserRights);
+ Event.observe(node, "click", onRowClick);
}
function nodeForUser(userName, userId) {
var node = document.createElement("li");
- node.setAttribute("uid", userId);
+ node.setAttribute("id", userId);
node.setAttribute("class", "");
- node.addEventListener("mousedown", listRowMouseDownHandler, true);
- node.addEventListener("click", onRowClick, true);
+ setEventsOnUserNode(node);
var image = document.createElement("img");
image.setAttribute("src", ResourcesURL + "/abcard.gif");
}
function saveAcls() {
- $("aclForm").submit();
+ var uidList = new Array();
+ var users = $("userList").childNodesWithTag("li");
+ for (var i = 0; i < users.length; i++)
+ uidList.push(users[i].getAttribute("id"));
+ $("userUIDS").value = uidList.join(",");
+ $("aclForm").submit();
+
+ return false;
+}
- return false;
+function onUserAdd(event) {
+ openUserFolderSelector(null, "user");
+
+ preventDefault(event);
}
-function updateSelectedRole(list) {
- var select = $("userRoleDropDown");
- var selection = list.getSelectedRows();
- if (selection.length > 0) {
- select.style.visibility = "visible;";
- var selected = selection[0];
- var assistantsValue = $("assistants");
- var uid = selected.getAttribute("uid");
- var regexp = new RegExp("(^|,)" + uid + "(,|$)","i");
- if (regexp.test(assistantsValue.value))
- select.selectedIndex = 0;
- else
- select.selectedIndex = 1;
- }
+function removeUserCallback(http) {
+ var node = http.callbackData;
+
+ if (http.readyState == 4
+ && http.status == 204)
+ node.parentNode.removeChild(node);
else
- select.style.visibility = "hidden;";
+ log("error deleting user: " + node.getAttribute("id"));
+}
+
+function onUserRemove(event) {
+ var userList = $("userList");
+ var nodes = userList.getSelectedRows();
+
+ var url = window.location.href;
+ var elements = url.split("/");
+ elements[elements.length-1] = "removeUserFromAcls?uid=";
+ var baseURL = elements.join("/");
+
+ for (var i = 0; i < nodes.length; i++) {
+ var userId = nodes[i].getAttribute("id");
+ triggerAjaxRequest(baseURL + userId, removeUserCallback, nodes[i]);
+ }
+ preventDefault(event);
}
-function onAclSelectionChange() {
- log("selectionchange");
- updateSelectedRole(this);
+function subscribeToFolder(refreshCallback, refreshCallbackData) {
+ if (UserLogin != refreshCallbackData["folder"]) {
+ addUser(refreshCallbackData["folderName"],
+ refreshCallbackData["folder"]);
+ }
+ else
+ refreshCallbackData["window"].alert(clabels["You cannot subscribe to a folder that you own!"]);
}
-function onUsersChange(type) {
- var select = $("userRoleDropDown");
- if (type == "removal") {
- var list;
- if (select.selectedIndex == 0)
- list = $("assistants");
- else
- list = $("delegates");
-
- var uids = $("uixselector-userRoles-uidList");
- var listArray = list.value.split(",");
- var newListArray = new Array();
- for (var i = 0; i < listArray.length; i++) {
- var regexp = new RegExp("(^|,)" + listArray[i] + "($|,)");
- if (regexp.test(uids.value))
- newListArray.push(listArray[i]);
- }
- if (newListArray.length > 0)
- list.value = newListArray.join(",");
- else
- list.value = "";
- }
-
- updateSelectedRole($("uixselector-userRoles-display"));
+function openRightsForUserID(userID) {
+ var url = window.location.href;
+ var elements = url.split("/");
+ elements[elements.length-1] = "userRights?uid=" + userID;
+
+ window.open(elements.join("/"), "",
+ "width=" + this.userRightsWidth
+ + ",height=" + this.userRightsHeight
+ + ",resizable=0,scrollbars=0,toolbar=0,"
+ + "location=0,directories=0,status=0,menubar=0,copyhistory=0");
}
-function onUserRoleDropDownChange() {
- var oldList;
- var newList;
-
- if (this.selectedIndex == 0) {
- oldList = $("delegates");
- newList = $("assistants");
- } else {
- oldList = $("assistants");
- newList = $("delegates");
- }
-
- var uid = $("uixselector-userRoles-display").getSelectedRows()[0].getAttribute("uid");
- var newListArray;
- if (newList.value.length > 0) {
- newListArray = newList.value.split(",");
- newListArray.push(uid);
- }
- else
- newListArray = new Array(uid);
- newList.value = newListArray.join(",");
+function openRightsForUser(button) {
+ var nodes = $("userList").getSelectedRows();
+ if (nodes.length > 0)
+ openRightsForUserID(nodes[0].getAttribute("id"));
- var oldListArray = oldList.value.split(",").without(uid);
- if (oldListArray.length > 0)
- oldList.value = oldListArray.join(",");
- else
- oldList.value = "";
+ return false;
+}
- log("assistants: " + $("assistants").value);
- log("delegates: " + $("delegates").value);
+function openRightsForDefaultUser(event) {
+ openRightsForUserID(defaultUserID);
+ preventDefault(event);
+}
+
+function onOpenUserRights(event) {
+ openRightsForUser();
+ preventDefault(event);
}
function onAclLoadHandler() {
- $("userRoles").changeNotification = onUsersChange;
+ defaultUserID = $("defaultUserID").value;
+ var defaultRolesBtn = $("defaultRolesBtn");
+ if (defaultRolesBtn)
+ Event.observe(defaultRolesBtn, "click", openRightsForDefaultUser);
+ var ul = $("userList");
+ var lis = ul.childNodesWithTag("li");
+ for (var i = 0; i < lis.length; i++)
+ setEventsOnUserNode(lis[i]);
+
+ var buttonArea = $("userSelectorButtons");
+ if (buttonArea) {
+ var buttons = buttonArea.childNodesWithTag("a");
+ Event.observe(buttons[0], "click", onUserAdd);
+ Event.observe(buttons[1], "click", onUserRemove);
+ }
- var ul = $("uixselector-userRoles-display");
- ul.addEventListener("selectionchange",
- onAclSelectionChange, false);
- var select = $("userRoleDropDown");
- select.addEventListener("change", onUserRoleDropDownChange, false);
+ this.userRightsHeight = window.opener.getUsersRightsWindowHeight();
+ this.userRightsWidth = window.opener.getUsersRightsWindowWidth();
}
-window.addEventListener("load", onAclLoadHandler, false);
+Event.observe(window, "load", onAclLoadHandler);