3 var contactSelectorAction = 'acls-contacts';
4 var defaultUserID = '';
8 function addUser(userName, userID) {
10 var ul = $("userList");
11 ul.appendChild(nodeForUser(userName, userID));
12 var url = window.location.href;
13 var elements = url.split("/");
14 elements[elements.length-1] = ("addUserInAcls?uid="
16 triggerAjaxRequest(elements.join("/"), addUserCallback);
20 function addUserCallback(http) {
23 function setEventsOnUserNode(node) {
24 Event.observe(node, "mousedown", listRowMouseDownHandler);
25 Event.observe(node, "selectstart", listRowMouseDownHandler);
26 Event.observe(node, "dblclick", onOpenUserRights);
27 Event.observe(node, "click", onRowClick);
30 function nodeForUser(userName, userId) {
31 var node = document.createElement("li");
32 node.setAttribute("id", userId);
33 node.setAttribute("class", "");
34 setEventsOnUserNode(node);
36 var image = document.createElement("img");
37 image.setAttribute("src", ResourcesURL + "/abcard.gif");
39 node.appendChild(image);
40 node.appendChild(document.createTextNode(" " + userName));
46 var uidList = new Array();
47 var users = $("userList").childNodesWithTag("li");
48 for (var i = 0; i < users.length; i++)
49 uidList.push(users[i].getAttribute("id"));
50 $("userUIDS").value = uidList.join(",");
51 $("aclForm").submit();
56 function onUserAdd(event) {
57 openUserFolderSelector(null, "user");
59 preventDefault(event);
62 function removeUserCallback(http) {
63 var node = http.callbackData;
65 if (http.readyState == 4
66 && http.status == 204)
67 node.parentNode.removeChild(node);
69 log("error deleting user: " + node.getAttribute("id"));
72 function onUserRemove(event) {
73 var userList = $("userList");
74 var nodes = userList.getSelectedRows();
76 var url = window.location.href;
77 var elements = url.split("/");
78 elements[elements.length-1] = "removeUserFromAcls?uid=";
79 var baseURL = elements.join("/");
81 for (var i = 0; i < nodes.length; i++) {
82 var userId = nodes[i].getAttribute("id");
83 triggerAjaxRequest(baseURL + userId, removeUserCallback, nodes[i]);
85 preventDefault(event);
88 function subscribeToFolder(refreshCallback, refreshCallbackData) {
89 if (UserLogin != refreshCallbackData["folder"]) {
90 addUser(refreshCallbackData["folderName"],
91 refreshCallbackData["folder"]);
94 refreshCallbackData["window"].alert(clabels["You cannot subscribe to a folder that you own!"]);
97 function openRightsForUserID(userID) {
98 var url = window.location.href;
99 var elements = url.split("/");
100 elements[elements.length-1] = "userRights?uid=" + userID;
102 window.open(elements.join("/"), "",
103 "width=" + userRightsWidth
104 + ",height=" + userRightsHeight
105 + ",resizable=0,scrollbars=0,toolbar=0,"
106 + "location=0,directories=0,status=0,menubar=0,copyhistory=0");
109 function openRightsForUser(button) {
110 var nodes = $("userList").getSelectedRows();
111 if (nodes.length > 0)
112 openRightsForUserID(nodes[0].getAttribute("id"));
117 function openRightsForDefaultUser(event) {
118 openRightsForUserID(defaultUserID);
119 preventDefault(event);
122 function onOpenUserRights(event) {
124 preventDefault(event);
127 function onAclLoadHandler() {
128 defaultUserID = $("defaultUserID").value;
129 var defaultRolesBtn = $("defaultRolesBtn");
131 Event.observe(defaultRolesBtn, "click", openRightsForDefaultUser);
132 var ul = $("userList");
133 var lis = ul.childNodesWithTag("li");
134 for (var i = 0; i < lis.length; i++)
135 setEventsOnUserNode(lis[i]);
137 var buttonArea = $("userSelectorButtons");
139 var buttons = buttonArea.childNodesWithTag("a");
140 Event.observe(buttons[0], "click", onUserAdd);
141 Event.observe(buttons[1], "click", onUserRemove);
144 userRightsHeight = window.opener.getUsersRightsWindowHeight();
145 userRightsWidth = window.opener.getUsersRightsWindowWidth();
148 FastInit.addOnLoad(onAclLoadHandler);