3 var contactSelectorAction = 'acls-contacts';
4 var defaultUserID = '';
6 function addUser(userName, userID) {
8 var ul = $("userList");
9 ul.appendChild(nodeForUser(userName, userID));
10 var url = window.location.href;
11 var elements = url.split("/");
12 elements[elements.length-1] = ("addUserInAcls?uid="
14 triggerAjaxRequest(elements.join("/"), addUserCallback);
18 function addUserCallback(http) {
21 function setEventsOnUserNode(node) {
22 Event.observe(node, "mousedown", listRowMouseDownHandler);
23 Event.observe(node, "dblclick", onOpenUserRights);
24 Event.observe(node, "click", onRowClick);
27 function nodeForUser(userName, userId) {
28 var node = document.createElement("li");
29 node.setAttribute("id", userId);
30 node.setAttribute("class", "");
31 setEventsOnUserNode(node);
33 var image = document.createElement("img");
34 image.setAttribute("src", ResourcesURL + "/abcard.gif");
36 node.appendChild(image);
37 node.appendChild(document.createTextNode(" " + userName));
43 var uidList = new Array();
44 var users = $("userList").childNodesWithTag("li");
45 for (var i = 0; i < users.length; i++)
46 uidList.push(users[i].getAttribute("id"));
47 $("userUIDS").value = uidList.join(",");
48 $("aclForm").submit();
53 function onUserAdd(event) {
54 openUserFolderSelector(null, "user");
56 preventDefault(event);
59 function removeUserCallback(http) {
60 var node = http.callbackData;
62 if (http.readyState == 4
63 && http.status == 204)
64 node.parentNode.removeChild(node);
66 log("error deleting user: " + node.getAttribute("id"));
69 function onUserRemove(event) {
70 var userList = $("userList");
71 var nodes = userList.getSelectedRows();
73 var url = window.location.href;
74 var elements = url.split("/");
75 elements[elements.length-1] = "removeUserFromAcls?uid=";
76 var baseURL = elements.join("/");
78 for (var i = 0; i < nodes.length; i++) {
79 var userId = nodes[i].getAttribute("id");
80 triggerAjaxRequest(baseURL + userId, removeUserCallback, nodes[i]);
82 preventDefault(event);
85 function subscribeToFolder(refreshCallback, refreshCallbackData) {
86 if (UserLogin != refreshCallbackData["folder"]) {
87 addUser(refreshCallbackData["folderName"],
88 refreshCallbackData["folder"]);
91 refreshCallbackData["window"].alert(clabels["You cannot subscribe to a folder that you own!"]);
94 function openRightsForUserID(userID) {
95 var url = window.location.href;
96 var elements = url.split("/");
97 elements[elements.length-1] = "userRights?uid=" + userID;
99 window.open(elements.join("/"), "",
100 "width=" + this.userRightsWidth
101 + ",height=" + this.userRightsHeight
102 + ",resizable=0,scrollbars=0,toolbar=0,"
103 + "location=0,directories=0,status=0,menubar=0,copyhistory=0");
106 function openRightsForUser(button) {
107 var nodes = $("userList").getSelectedRows();
108 if (nodes.length > 0)
109 openRightsForUserID(nodes[0].getAttribute("id"));
114 function openRightsForDefaultUser(event) {
115 openRightsForUserID(defaultUserID);
116 preventDefault(event);
119 function onOpenUserRights(event) {
121 preventDefault(event);
124 function onAclLoadHandler() {
125 defaultUserID = $("defaultUserID").value;
126 var defaultRolesBtn = $("defaultRolesBtn");
128 Event.observe(defaultRolesBtn, "click", openRightsForDefaultUser);
129 var ul = $("userList");
130 var lis = ul.childNodesWithTag("li");
131 for (var i = 0; i < lis.length; i++)
132 setEventsOnUserNode(lis[i]);
134 var buttonArea = $("userSelectorButtons");
136 var buttons = buttonArea.childNodesWithTag("a");
137 Event.observe(buttons[0], "click", onUserAdd);
138 Event.observe(buttons[1], "click", onUserRemove);
141 this.userRightsHeight = window.opener.getUsersRightsWindowHeight();
142 this.userRightsWidth = window.opener.getUsersRightsWindowWidth();
145 Event.observe(window, "load", onAclLoadHandler);