]> 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 74845b325c2fdfddbb2c63669ab9fc27151e05de..5350931e4b16f98fc179dee60e8b41548dc05c44 100644 (file)
@@ -2,6 +2,8 @@
 
 var contactSelectorAction = 'acls-contacts';
 var defaultUserID = '';
+var userRightsHeight;
+var userRightsWidth;
 
 function addUser(userName, userID) {
    if (!$(userID)) {
@@ -20,6 +22,7 @@ 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);
 }
@@ -53,7 +56,7 @@ function saveAcls() {
 function onUserAdd(event) {
    openUserFolderSelector(null, "user");
 
-   event.preventDefault();
+   preventDefault(event);
 }
 
 function removeUserCallback(http) {
@@ -79,12 +82,16 @@ 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) {
@@ -93,8 +100,8 @@ function openRightsForUserID(userID) {
    elements[elements.length-1] = "userRights?uid=" + userID;
 
    window.open(elements.join("/"), "",
-              "width=" + this.userRightsWidth
-              + ",height=" + this.userRightsHeight
+              "width=" + userRightsWidth
+              + ",height=" + userRightsHeight
               + ",resizable=0,scrollbars=0,toolbar=0,"
               + "location=0,directories=0,status=0,menubar=0,copyhistory=0");
 }
@@ -109,28 +116,33 @@ function openRightsForUser(button) {
 
 function openRightsForDefaultUser(event) {
    openRightsForUserID(defaultUserID);
-   event.preventDefault();
+   preventDefault(event);
 }
 
 function onOpenUserRights(event) {
    openRightsForUser();
-   event.preventDefault();
+   preventDefault(event);
 }
 
 function onAclLoadHandler() {
    defaultUserID = $("defaultUserID").value;
-   Event.observe($("defaultRolesBtn"), "click", openRightsForDefaultUser);
+   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 buttons = $("userSelectorButtons").childNodesWithTag("a");
-   Event.observe(buttons[0], "click", onUserAdd);
-   Event.observe(buttons[1], "click", onUserRemove);
+   var buttonArea = $("userSelectorButtons");
+   if (buttonArea) {
+      var buttons = buttonArea.childNodesWithTag("a");
+      Event.observe(buttons[0], "click", onUserAdd);
+      Event.observe(buttons[1], "click", onUserRemove);
+   }
 
-   this.userRightsHeight = window.opener.getUsersRightsWindowHeight();
-   this.userRightsWidth = window.opener.getUsersRightsWindowWidth();
+   userRightsHeight = window.opener.getUsersRightsWindowHeight();
+   userRightsWidth = window.opener.getUsersRightsWindowWidth();
 }
 
-Event.observe(window, "load", onAclLoadHandler);
+FastInit.addOnLoad(onAclLoadHandler);