From 54ab318960e12e13bd10c7e4edc07b8f0b960197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= Date: Fri, 1 Feb 2019 13:00:26 +0100 Subject: [PATCH 01/15] remove user/group after submitting permission --- .../src/repos/permissions/containers/CreatePermissionForm.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js index 362b4aa48a..d02217098e 100644 --- a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js @@ -253,7 +253,8 @@ class CreatePermissionForm extends React.Component { name: "", verbs: this.props.availablePermissions.availableRoles[0].verbs, groupPermission: false, - valid: true + valid: true, + value: undefined }); }; From 81652aab0d12924b77792a39f6716c5511223b92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= Date: Fri, 1 Feb 2019 13:02:33 +0100 Subject: [PATCH 02/15] do not change grouppermission back to default after submitting --- scm-ui/src/repos/permissions/containers/CreatePermissionForm.js | 1 - 1 file changed, 1 deletion(-) diff --git a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js index d02217098e..023842d414 100644 --- a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js @@ -252,7 +252,6 @@ class CreatePermissionForm extends React.Component { this.setState({ name: "", verbs: this.props.availablePermissions.availableRoles[0].verbs, - groupPermission: false, valid: true, value: undefined }); From 05efbe5ad8b2a3236a4ba99d37ad4fa896b805b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maren=20S=C3=BCwer?= Date: Fri, 1 Feb 2019 14:17:43 +0100 Subject: [PATCH 03/15] use radio component again and show type of permission instead of checkbox --- .../containers/CreatePermissionForm.js | 39 ++++++++----------- .../containers/SinglePermission.js | 24 ++++++++---- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js index 023842d414..0260dacd46 100644 --- a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js @@ -5,7 +5,8 @@ import { Autocomplete, SubmitButton, Button, - LabelWithHelpIcon + LabelWithHelpIcon, + Radio } from "@scm-manager/ui-components"; import RoleSelector from "../components/RoleSelector"; import type { @@ -158,28 +159,20 @@ class CreatePermissionForm extends React.Component { {advancedDialog}
-
- - -
+ +
diff --git a/scm-ui/src/repos/permissions/containers/SinglePermission.js b/scm-ui/src/repos/permissions/containers/SinglePermission.js index b16d26e903..c5be48836d 100644 --- a/scm-ui/src/repos/permissions/containers/SinglePermission.js +++ b/scm-ui/src/repos/permissions/containers/SinglePermission.js @@ -22,7 +22,11 @@ import AdvancedPermissionsDialog from "./AdvancedPermissionsDialog"; type Props = { availablePermissions: AvailableRepositoryPermissions, submitForm: Permission => void, - modifyPermission: (permission: Permission, namespace: string, name: string) => void, + modifyPermission: ( + permission: Permission, + namespace: string, + name: string + ) => void, permission: Permission, t: string => string, namespace: string, @@ -30,7 +34,11 @@ type Props = { match: any, history: History, loading: boolean, - deletePermission: (permission: Permission, namespace: string, name: string) => void, + deletePermission: ( + permission: Permission, + namespace: string, + name: string + ) => void, deleteLoading: boolean }; @@ -125,15 +133,15 @@ class SinglePermission extends React.Component { /> ) : null; + const type = + permission && permission.groupPermission + ? t("permission.group") + : t("permission.user"); + return ( {permission.name} - - - + {type} {roleSelector}
+ +
diff --git a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js index aa69f7b3e1..2c026626ed 100644 --- a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js @@ -96,7 +96,6 @@ class CreatePermissionForm extends React.Component { const { t } = this.props; if (this.state.groupPermission) { return ( - { /> ) : null; - const type = - permission && permission.groupPermission - ? t("permission.group") - : t("permission.user"); - const iconType = permission && permission.groupPermission ? ( - + ) : ( - + ); return ( From cbc097acfd25b568d1b6dd53b2061c833f86e16e Mon Sep 17 00:00:00 2001 From: Philipp Czora Date: Thu, 14 Feb 2019 13:09:42 +0100 Subject: [PATCH 09/15] Clear autocomplete field after submit or permission scope switch --- .../permissions/containers/CreatePermissionForm.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js index 2c026626ed..989079c717 100644 --- a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js @@ -62,7 +62,7 @@ class CreatePermissionForm extends React.Component { this.props.currentPermissions ) }); - this.setState({ ...this.state, groupPermission }); + this.setState({ ...this.state, groupPermission, value: undefined}); }; loadUserAutocompletion = (inputValue: string) => { @@ -99,7 +99,7 @@ class CreatePermissionForm extends React.Component { { { }; removeState = () => { - this.setState({ + this.setState({...this.state, name: "", verbs: this.props.availablePermissions.availableRoles[0].verbs, valid: true, @@ -255,6 +255,9 @@ class CreatePermissionForm extends React.Component { handleRoleChange = (role: string) => { const selectedRole = this.findAvailableRole(role); + if (!selectedRole) { + return + } this.setState({ verbs: selectedRole.verbs }); From 0273bc5516e0897ff45f3ea87ff6cc2f33f7b695 Mon Sep 17 00:00:00 2001 From: Philipp Czora Date: Thu, 14 Feb 2019 14:13:50 +0100 Subject: [PATCH 10/15] Fixed unit tests --- .../components/buttons/DeletePermissionButton.test.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scm-ui/src/repos/permissions/components/buttons/DeletePermissionButton.test.js b/scm-ui/src/repos/permissions/components/buttons/DeletePermissionButton.test.js index 811c9dc335..03eebe3c50 100644 --- a/scm-ui/src/repos/permissions/components/buttons/DeletePermissionButton.test.js +++ b/scm-ui/src/repos/permissions/components/buttons/DeletePermissionButton.test.js @@ -29,7 +29,7 @@ describe("DeletePermissionButton", () => { expect(navLink.text()).toBe(""); }); - it("should render the navLink", () => { + it("should render the delete icon", () => { const permission = { _links: { delete: { @@ -38,14 +38,14 @@ describe("DeletePermissionButton", () => { } }; - const navLink = mount( + const deleteIcon = mount( {}} />, options.get() ); - expect(navLink.text()).not.toBe(""); + expect(deleteIcon.html()).not.toBe(""); }); it("should open the confirm dialog on button click", () => { @@ -64,7 +64,7 @@ describe("DeletePermissionButton", () => { />, options.get() ); - button.find("button").simulate("click"); + button.find(".fa-trash").simulate("click"); expect(confirmAlert.mock.calls.length).toBe(1); }); @@ -91,7 +91,7 @@ describe("DeletePermissionButton", () => { />, options.get() ); - button.find("button").simulate("click"); + button.find(".fa-trash").simulate("click"); expect(calledUrl).toBe("/permission"); }); From 0c9a77664de3c9308f520228cf2bc497792f389e Mon Sep 17 00:00:00 2001 From: Philipp Czora Date: Thu, 14 Feb 2019 17:39:30 +0100 Subject: [PATCH 11/15] Added position:absolute for tooltips --- scm-ui-components/packages/ui-components/src/Help.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scm-ui-components/packages/ui-components/src/Help.js b/scm-ui-components/packages/ui-components/src/Help.js index 047f79244f..9cb37e722d 100644 --- a/scm-ui-components/packages/ui-components/src/Help.js +++ b/scm-ui-components/packages/ui-components/src/Help.js @@ -7,7 +7,8 @@ import HelpIcon from './HelpIcon'; const styles = { tooltip: { display: "inline-block", - paddingLeft: "3px" + paddingLeft: "3px", + position: "absolute" } }; From b850ab9fa81b29e7a131f4a0ded981c8c006d251 Mon Sep 17 00:00:00 2001 From: Philipp Czora Date: Fri, 15 Feb 2019 17:44:35 +0100 Subject: [PATCH 12/15] Invalidate form when scope (group/user) is switched --- .../permissions/containers/CreatePermissionForm.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js index 989079c717..2f67b3df92 100644 --- a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js @@ -55,14 +55,11 @@ class CreatePermissionForm extends React.Component { permissionScopeChanged = event => { const groupPermission = event.target.value === "GROUP_PERMISSION"; this.setState({ + value: undefined, + name: "", groupPermission: groupPermission, - valid: validator.isPermissionValid( - this.state.name, - groupPermission, - this.props.currentPermissions - ) + valid: false }); - this.setState({ ...this.state, groupPermission, value: undefined}); }; loadUserAutocompletion = (inputValue: string) => { @@ -245,7 +242,7 @@ class CreatePermissionForm extends React.Component { }; removeState = () => { - this.setState({...this.state, + this.setState({ name: "", verbs: this.props.availablePermissions.availableRoles[0].verbs, valid: true, From 90b4a7a2f57a306dc7eeedfaa3db3e894c716740 Mon Sep 17 00:00:00 2001 From: Florian Scholdei Date: Tue, 19 Feb 2019 13:26:24 +0100 Subject: [PATCH 13/15] fixed dropdown overflow --- .../containers/CreatePermissionForm.js | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js index 2f67b3df92..1432b95382 100644 --- a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js @@ -157,30 +157,30 @@ class CreatePermissionForm extends React.Component { {advancedDialog}
- -
- - -
+
+ + +
+
-
+
{this.renderAutocompletionField()}
-
+
-
+
{ role={matchingRole} />
-
+
{ handleRoleChange = (role: string) => { const selectedRole = this.findAvailableRole(role); if (!selectedRole) { - return + return; } this.setState({ verbs: selectedRole.verbs From 47850a475aaeec81454588b16f2376713a8f69e8 Mon Sep 17 00:00:00 2001 From: Florian Scholdei Date: Wed, 20 Feb 2019 16:22:07 +0100 Subject: [PATCH 14/15] added css class for input fields without help icon to vertical align them easier --- scm-ui/styles/scm.scss | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scm-ui/styles/scm.scss b/scm-ui/styles/scm.scss index 90b868b907..097a31df55 100644 --- a/scm-ui/styles/scm.scss +++ b/scm-ui/styles/scm.scss @@ -231,6 +231,15 @@ form .field:not(.is-grouped) { box-shadow: none; } +// label with help-icon compensation +.label-icon-spacing { + margin-top: 30px; + + @media screen and (max-width: 768px) { + margin-top: 0; + } +} + // pagination .pagination-next, .pagination-link, From a50b5f9185c349da965f0545235db894cd80c3bc Mon Sep 17 00:00:00 2001 From: Florian Scholdei Date: Thu, 21 Feb 2019 12:59:41 +0000 Subject: [PATCH 15/15] Close branch feature/permissions_styling