diff --git a/CHANGELOG b/CHANGELOG index 7104282e37885b8422f0ca88c8fb67aed61e5635..fe39b622484a2e2de39feedaa9f50d5e607dad94 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,8 @@ minerva (14.0.0~beta.2) unstable; urgency=low * Small improvement: info window contains information about overlay No (#919) * Small improvement: curator without write access to project has info about it when editing project (#940) + * Small improvement: when revoking view access to project, revoke + automatically write access to it (#920) * Bug fix: exported SBML passes online validation (#831) * Bug fix: changing owner of data overlay should change order index (#945) * Bug fix: allow user to remove own comments (#931) diff --git a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js index 7e5e1fdce35d117f5ee5f02651dc90798bf97a23..3097f39e91a271833cc3ec5850b0d2ca3375f7b9 100644 --- a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js +++ b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js @@ -621,6 +621,12 @@ EditProjectDialog.prototype.createUsersTabContent = function () { } return self.grantPrivilege(self._userByLogin[login], type, self.getProject().getProjectId()); } else { + if (type === PrivilegeType.READ_PROJECT) { + var writeCheckbox = $("[data='" + PrivilegeType.WRITE_PROJECT + "," + login + "']", usersTable); + if (writeCheckbox.is(":checked")) { + writeCheckbox.click(); + } + } return self.revokePrivilege(self._userByLogin[login], type, self.getProject().getProjectId()); } }); diff --git a/frontend-js/src/main/js/gui/admin/EditUserDialog.js b/frontend-js/src/main/js/gui/admin/EditUserDialog.js index 50399f0b9b2a1e74c46dd94b668975a86f6e69ca..0c5d2f3c74ab41e3609e2e0d0e1dc3f968129dd8 100644 --- a/frontend-js/src/main/js/gui/admin/EditUserDialog.js +++ b/frontend-js/src/main/js/gui/admin/EditUserDialog.js @@ -385,36 +385,25 @@ EditUserDialog.prototype.initProjectsTab = function () { $(projectsTable).DataTable({ columns: columns }); - $(projectsTable).on("click", "[name='project-privilege-checkbox']", function () { + $(self.getElement()).on("click", "[name='project-privilege-checkbox']", function () { var data = $(this).attr("data").split(":"); var type = data[0]; var projectId = data[1]; if ($(this).is(":checked")) { if (type === PrivilegeType.WRITE_PROJECT) { - var readCheckbox = $("[data='" + PrivilegeType.READ_PROJECT + ":" + data[1] + "']", projectsTable); + var readCheckbox = $("[data='" + PrivilegeType.READ_PROJECT + ":" + data[1] + "']", self.getElement()); if (!readCheckbox.is(":checked")) { readCheckbox.click(); } } return self.grantPrivilege({privilegeType: type, objectId: projectId}); } else { - return self.revokePrivilege({privilegeType: type, objectId: projectId}); - } - }); - - $("[name='defaultProjectsRow']", self.getElement()).on("click", "[name='project-privilege-checkbox']", function () { - var data = $(this).attr("data").split(":"); - var type = data[0]; - var projectId = data[1]; - if ($(this).is(":checked")) { - if (type === PrivilegeType.WRITE_PROJECT) { - var readCheckbox = $("[data='" + PrivilegeType.READ_PROJECT + ":" + data[1] + "']", self.getElement()); - if (!readCheckbox.is(":checked")) { - readCheckbox.click(); + if (type === PrivilegeType.READ_PROJECT) { + var writeCheckbox = $("[data='" + PrivilegeType.WRITE_PROJECT + ":" + data[1] + "']", self.getElement()); + if (writeCheckbox.is(":checked")) { + writeCheckbox.click(); } } - return self.grantPrivilege({privilegeType: type, objectId: projectId}); - } else { return self.revokePrivilege({privilegeType: type, objectId: projectId}); } });