diff --git a/UI/Common/product.plist b/UI/Common/product.plist index 157e7ace7..ea75a393f 100644 --- a/UI/Common/product.plist +++ b/UI/Common/product.plist @@ -56,7 +56,7 @@ pageName = "UIxUserRightsEditor"; }; saveUserRights = { - protectedBy = "ReadAcls"; + protectedBy = "SaveAcls"; pageName = "UIxUserRightsEditor"; actionName = "saveUserRights"; }; diff --git a/UI/MainUI/product.plist b/UI/MainUI/product.plist index 664e4cf52..3eb0a70d5 100644 --- a/UI/MainUI/product.plist +++ b/UI/MainUI/product.plist @@ -24,7 +24,7 @@ "Access Contents Information" = ( "Owner", "ObjectReader" ); "Add Documents, Images, and Files" = ( "Owner", "ObjectCreator" ); "Add Folders" = ( "Owner", "FolderCreator" ); - "ReadAcls" = ( "Owner", "AuthorizedSubscriber" ); + "ReadAcls" = ( "Owner" ); "SaveAcls" = ( "Owner" ); "Delete Objects" = ( "Owner", "ObjectEraser" ); }; diff --git a/UI/WebServerResources/HTMLElement.js b/UI/WebServerResources/HTMLElement.js index 378670cab..404144572 100644 --- a/UI/WebServerResources/HTMLElement.js +++ b/UI/WebServerResources/HTMLElement.js @@ -137,6 +137,9 @@ Element.addMethods({ if (leftDiff < 0) menuLeft -= popup.offsetWidth; + if (popup.prepareVisibility) + popup.prepareVisibility(); + popup.setStyle( { top: menuTop + "px", left: menuLeft + "px", visibility: "visible" } ); diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index 8740b5d97..dee5de337 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -1363,6 +1363,21 @@ function browseURL(anchor, event) { return false; } +function onCalendarsMenuPrepareVisibility() { + var folders = $("calendarList"); + var selected = folders.getSelectedNodes(); + + if (selected.length > 0) { + var folderOwner = selected[0].getAttribute("owner"); + var sharingOption = $(this).down("ul").childElements().last(); + // Disable the "Sharing" option when calendar is not owned by user + if (folderOwner == UserLogin) + sharingOption.removeClassName("disabled"); + else + sharingOption.addClassName("disabled"); + } +} + function getMenus() { var menus = {}; @@ -1388,13 +1403,20 @@ function getMenus() { null, "-", onMenuSharing); menus["searchMenu"] = new Array(setSearchCriteria); + var calendarsMenu = $("calendarsMenu"); + if (calendarsMenu) + calendarsMenu.prepareVisibility = onCalendarsMenuPrepareVisibility; + return menus; } function onMenuSharing(event) { + if ($(this).hasClassName("disabled")) + return; + var folders = $("calendarList"); var selected = folders.getSelectedNodes()[0]; - /* FIXME: activation of the context menu should preferable select the entry + /* FIXME: activation of the context menu should preferably select the entry above which the event has occured */ if (selected) { var folderID = selected.getAttribute("id"); diff --git a/UI/WebServerResources/UIxAclEditor.js b/UI/WebServerResources/UIxAclEditor.js index 2aee3cfc7..5350931e4 100644 --- a/UI/WebServerResources/UIxAclEditor.js +++ b/UI/WebServerResources/UIxAclEditor.js @@ -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); } @@ -97,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"); } @@ -138,8 +141,8 @@ function onAclLoadHandler() { Event.observe(buttons[1], "click", onUserRemove); } - this.userRightsHeight = window.opener.getUsersRightsWindowHeight(); - this.userRightsWidth = window.opener.getUsersRightsWindowWidth(); + userRightsHeight = window.opener.getUsersRightsWindowHeight(); + userRightsWidth = window.opener.getUsersRightsWindowWidth(); } FastInit.addOnLoad(onAclLoadHandler); diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index c546c7922..ce7a12ed4 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -571,6 +571,7 @@ function popupMenu(event, menuId, target) { if (popup.prepareVisibility) popup.prepareVisibility(); + popup.setStyle({ top: menuTop + "px", left: menuLeft + "px", visibility: "visible" });