]> err.no Git - scalable-opengroupware.org/blob - UI/WebServerResources/UIxAclEditor.js
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1267 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / WebServerResources / UIxAclEditor.js
1 /* test */
2
3 var contactSelectorAction = 'acls-contacts';
4 var defaultUserID = '';
5 var userRightsHeight;
6 var userRightsWidth;
7
8 function addUser(userName, userID) {
9    if (!$(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="
15                                      + userID);
16       triggerAjaxRequest(elements.join("/"), addUserCallback);
17    }
18 }
19
20 function addUserCallback(http) {
21 }
22
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);
28 }
29
30 function nodeForUser(userName, userId) {
31    var node = document.createElement("li");
32    node.setAttribute("id", userId);
33    node.setAttribute("class", "");
34    setEventsOnUserNode(node);
35
36    var image = document.createElement("img");
37    image.setAttribute("src", ResourcesURL + "/abcard.gif");
38
39    node.appendChild(image);
40    node.appendChild(document.createTextNode(" " + userName));
41
42    return node;
43 }
44
45 function saveAcls() {
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();
52
53    return false;
54 }
55
56 function onUserAdd(event) {
57    openUserFolderSelector(null, "user");
58
59    preventDefault(event);
60 }
61
62 function removeUserCallback(http) {
63    var node = http.callbackData;
64
65   if (http.readyState == 4
66       && http.status == 204)
67      node.parentNode.removeChild(node);
68   else
69      log("error deleting user: " + node.getAttribute("id"));
70 }
71
72 function onUserRemove(event) {
73    var userList = $("userList");
74    var nodes = userList.getSelectedRows();
75
76    var url = window.location.href;
77    var elements = url.split("/");
78    elements[elements.length-1] = "removeUserFromAcls?uid=";
79    var baseURL = elements.join("/");
80
81    for (var i = 0; i < nodes.length; i++) {
82       var userId = nodes[i].getAttribute("id");
83       triggerAjaxRequest(baseURL + userId, removeUserCallback, nodes[i]);
84    }
85    preventDefault(event);
86 }
87
88 function subscribeToFolder(refreshCallback, refreshCallbackData) {
89    if (UserLogin != refreshCallbackData["folder"]) {
90       addUser(refreshCallbackData["folderName"],
91               refreshCallbackData["folder"]);
92    }
93    else
94       refreshCallbackData["window"].alert(clabels["You cannot subscribe to a folder that you own!"]);
95 }
96
97 function openRightsForUserID(userID) {
98    var url = window.location.href;
99    var elements = url.split("/");
100    elements[elements.length-1] = "userRights?uid=" + userID;
101
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");
107 }
108
109 function openRightsForUser(button) {
110   var nodes = $("userList").getSelectedRows();
111   if (nodes.length > 0)
112      openRightsForUserID(nodes[0].getAttribute("id"));
113
114   return false;
115 }
116
117 function openRightsForDefaultUser(event) {
118    openRightsForUserID(defaultUserID);
119    preventDefault(event);
120 }
121
122 function onOpenUserRights(event) {
123    openRightsForUser();
124    preventDefault(event);
125 }
126
127 function onAclLoadHandler() {
128    defaultUserID = $("defaultUserID").value;
129    var defaultRolesBtn = $("defaultRolesBtn");
130    if (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]);
136
137    var buttonArea = $("userSelectorButtons");
138    if (buttonArea) {
139       var buttons = buttonArea.childNodesWithTag("a");
140       Event.observe(buttons[0], "click", onUserAdd);
141       Event.observe(buttons[1], "click", onUserRemove);
142    }
143
144    userRightsHeight = window.opener.getUsersRightsWindowHeight();
145    userRightsWidth = window.opener.getUsersRightsWindowWidth();
146 }
147
148 FastInit.addOnLoad(onAclLoadHandler);