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