]> err.no Git - scalable-opengroupware.org/blob - UI/WebServerResources/UIxAclEditor.js
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1064 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / WebServerResources / UIxAclEditor.js
1 /* test */
2
3 var contactSelectorAction = 'acls-contacts';
4
5 function addUser(userName, userID) {
6    if (!$(userID)) {
7       var ul = $("userList");
8       ul.appendChild(nodeForUser(userName, userID));
9       var url = window.location.href;
10       var elements = url.split("/");
11       elements[elements.length-1] = ("addUserInAcls?uid="
12                                      + userID);
13       triggerAjaxRequest(elements.join("/"), addUserCallback);
14    }
15 }
16
17 function addUserCallback(http) {
18 }
19
20 function nodeForUser(userName, userId) {
21    var node = document.createElement("li");
22    node.setAttribute("id", userId);
23    node.setAttribute("class", "");
24    node.addEventListener("mousedown", listRowMouseDownHandler, true);
25    node.addEventListener("click", onRowClick, true);
26
27    var image = document.createElement("img");
28    image.setAttribute("src", ResourcesURL + "/abcard.gif");
29
30    node.appendChild(image);
31    node.appendChild(document.createTextNode(" " + userName));
32
33    return node;
34 }
35
36 function saveAcls() {
37    var uidList = new Array();
38    var users = $("userList").childNodesWithTag("li");
39    for (var i = 0; i < users.length; i++)
40       uidList.push(users[i].getAttribute("id"));
41    $("userUIDS").value = uidList.join(",");
42    $("aclForm").submit();
43
44    return false;
45 }
46
47 function onUserAdd(event) {
48    openUserFolderSelector(null, "user");
49
50    event.preventDefault();
51 }
52
53 function removeUserCallback(http) {
54    var node = http.callbackData;
55
56   if (http.readyState == 4
57       && http.status == 204)
58      node.parentNode.removeChild(node);
59   else
60      log("error deleting user: " + node.getAttribute("id"));
61 }
62
63 function onUserRemove(event) {
64    var userList = $("userList");
65    var nodes = userList.getSelectedRows();
66
67    var url = window.location.href;
68    var elements = url.split("/");
69    elements[elements.length-1] = "removeUserFromAcls?uid=";
70    var baseURL = elements.join("/");
71
72    for (var i = 0; i < nodes.length; i++) {
73       var userId = nodes[i].getAttribute("id");
74       triggerAjaxRequest(baseURL + userId, removeUserCallback, nodes[i]);
75    }
76    event.preventDefault();
77 }
78
79 function subscribeToFolder(refreshCallback, refreshCallbackData) {
80    addUser(refreshCallbackData["folderName"],
81            refreshCallbackData["folder"]);
82 }
83
84 function openRightsForUser(button) {
85   var nodes = $("userList").getSelectedRows();
86   if (nodes.length > 0) {
87     var url = window.location.href;
88     var elements = url.split("/");
89     elements[elements.length-1] = ("userRights?uid="
90                                    + nodes[0].getAttribute("id"));
91
92     window.open(elements.join("/"), "",
93                 "width=" + this.userRightsWidth
94                 + ",height=" + this.userRightsHeight
95                 + ",resizable=0,scrollbars=0,toolbar=0,"
96                 + "location=0,directories=0,status=0,menubar=0,copyhistory=0");
97   }
98
99   return false;
100 }
101
102 function onOpenUserRights(event) {
103    openRightsForUser();
104    event.preventDefault();
105 }
106
107 function onAclLoadHandler() {
108   var ul = $("userList");
109   var lis = ul.childNodesWithTag("li");
110   for (var i = 0; i < lis.length; i++) {
111      lis[i].addEventListener("mousedown", listRowMouseDownHandler, false);
112      lis[i].addEventListener("dblclick", onOpenUserRights, false);
113      lis[i].addEventListener("click", onRowClick, false);
114   }
115
116   var buttons = $("userSelectorButtons").childNodesWithTag("a");
117   buttons[0].addEventListener("click", onUserAdd, false);
118   buttons[1].addEventListener("click", onUserRemove, false);
119
120   this.userRightsHeight = window.opener.getUsersRightsWindowHeight();
121   this.userRightsWidth = window.opener.getUsersRightsWindowWidth();
122 }
123
124 window.addEventListener("load", onAclLoadHandler, false);