]> err.no Git - scalable-opengroupware.org/blobdiff - 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
index d7a3c6d09cfacc02fbe5c8f99e9725127d756ddb..5350931e4b16f98fc179dee60e8b41548dc05c44 100644 (file)
@@ -1,6 +1,9 @@
 /* test */
 
 var contactSelectorAction = 'acls-contacts';
+var defaultUserID = '';
+var userRightsHeight;
+var userRightsWidth;
 
 function addUser(userName, userID) {
    if (!$(userID)) {
@@ -17,12 +20,18 @@ function addUser(userName, userID) {
 function addUserCallback(http) {
 }
 
+function setEventsOnUserNode(node) {
+   Event.observe(node, "mousedown", listRowMouseDownHandler);
+   Event.observe(node, "selectstart", listRowMouseDownHandler);
+   Event.observe(node, "dblclick", onOpenUserRights);
+   Event.observe(node, "click", onRowClick);
+}
+
 function nodeForUser(userName, userId) {
    var node = document.createElement("li");
    node.setAttribute("id", userId);
    node.setAttribute("class", "");
-   node.addEventListener("mousedown", listRowMouseDownHandler, true);
-   node.addEventListener("click", onRowClick, true);
+   setEventsOnUserNode(node);
 
    var image = document.createElement("img");
    image.setAttribute("src", ResourcesURL + "/abcard.gif");
@@ -47,7 +56,7 @@ function saveAcls() {
 function onUserAdd(event) {
    openUserFolderSelector(null, "user");
 
-   event.preventDefault();
+   preventDefault(event);
 }
 
 function removeUserCallback(http) {
@@ -73,52 +82,67 @@ function onUserRemove(event) {
       var userId = nodes[i].getAttribute("id");
       triggerAjaxRequest(baseURL + userId, removeUserCallback, nodes[i]);
    }
-   event.preventDefault();
+   preventDefault(event);
 }
 
 function subscribeToFolder(refreshCallback, refreshCallbackData) {
-   addUser(refreshCallbackData["folderName"],
-          refreshCallbackData["folder"]);
+   if (UserLogin != refreshCallbackData["folder"]) {
+      addUser(refreshCallbackData["folderName"],
+             refreshCallbackData["folder"]);
+   }
+   else
+      refreshCallbackData["window"].alert(clabels["You cannot subscribe to a folder that you own!"]);
+}
+
+function openRightsForUserID(userID) {
+   var url = window.location.href;
+   var elements = url.split("/");
+   elements[elements.length-1] = "userRights?uid=" + userID;
+
+   window.open(elements.join("/"), "",
+              "width=" + userRightsWidth
+              + ",height=" + userRightsHeight
+              + ",resizable=0,scrollbars=0,toolbar=0,"
+              + "location=0,directories=0,status=0,menubar=0,copyhistory=0");
 }
 
 function openRightsForUser(button) {
   var nodes = $("userList").getSelectedRows();
-  if (nodes.length > 0) {
-    var url = window.location.href;
-    var elements = url.split("/");
-    elements[elements.length-1] = ("userRights?uid="
-                                   + nodes[0].getAttribute("id"));
-
-    window.open(elements.join("/"), "",
-               "width=" + this.userRightsWidth
-               + ",height=" + this.userRightsHeight
-               + ",resizable=0,scrollbars=0,toolbar=0,"
-               + "location=0,directories=0,status=0,menubar=0,copyhistory=0");
-  }
+  if (nodes.length > 0)
+     openRightsForUserID(nodes[0].getAttribute("id"));
 
   return false;
 }
 
+function openRightsForDefaultUser(event) {
+   openRightsForUserID(defaultUserID);
+   preventDefault(event);
+}
+
 function onOpenUserRights(event) {
    openRightsForUser();
-   event.preventDefault();
+   preventDefault(event);
 }
 
 function onAclLoadHandler() {
-  var ul = $("userList");
-  var lis = ul.childNodesWithTag("li");
-  for (var i = 0; i < lis.length; i++) {
-     lis[i].addEventListener("mousedown", listRowMouseDownHandler, false);
-     lis[i].addEventListener("dblclick", onOpenUserRights, false);
-     lis[i].addEventListener("click", onRowClick, false);
-  }
-
-  var buttons = $("userSelectorButtons").childNodesWithTag("a");
-  buttons[0].addEventListener("click", onUserAdd, false);
-  buttons[1].addEventListener("click", onUserRemove, false);
-
-  this.userRightsHeight = window.opener.getUsersRightsWindowHeight();
-  this.userRightsWidth = window.opener.getUsersRightsWindowWidth();
+   defaultUserID = $("defaultUserID").value;
+   var defaultRolesBtn = $("defaultRolesBtn");
+   if (defaultRolesBtn)
+      Event.observe(defaultRolesBtn, "click", openRightsForDefaultUser);
+   var ul = $("userList");
+   var lis = ul.childNodesWithTag("li");
+   for (var i = 0; i < lis.length; i++)
+      setEventsOnUserNode(lis[i]);
+
+   var buttonArea = $("userSelectorButtons");
+   if (buttonArea) {
+      var buttons = buttonArea.childNodesWithTag("a");
+      Event.observe(buttons[0], "click", onUserAdd);
+      Event.observe(buttons[1], "click", onUserRemove);
+   }
+
+   userRightsHeight = window.opener.getUsersRightsWindowHeight();
+   userRightsWidth = window.opener.getUsersRightsWindowWidth();
 }
 
-window.addEventListener("load", onAclLoadHandler, false);
+FastInit.addOnLoad(onAclLoadHandler);