From dba6fe4420c17235c8a74d83f6a2b6d140143729 Mon Sep 17 00:00:00 2001 From: Pavel Zavora Date: Wed, 25 May 2022 14:40:27 +0200 Subject: [PATCH] feat(ui): allow to hide roles on Users page --- ui/src/admin/components/FilterBar.js | 18 +-- ui/src/admin/components/UserRow.tsx | 9 +- .../admin/containers/influxdb/UsersPage.tsx | 120 ++++++++++-------- ui/src/style/pages/admin.scss | 31 ++--- 4 files changed, 102 insertions(+), 76 deletions(-) diff --git a/ui/src/admin/components/FilterBar.js b/ui/src/admin/components/FilterBar.js index 60bc84a42..21034eedd 100644 --- a/ui/src/admin/components/FilterBar.js +++ b/ui/src/admin/components/FilterBar.js @@ -41,14 +41,16 @@ class FilterBar extends Component { - +
+ +
) } diff --git a/ui/src/admin/components/UserRow.tsx b/ui/src/admin/components/UserRow.tsx index e1d2ca06d..470926887 100644 --- a/ui/src/admin/components/UserRow.tsx +++ b/ui/src/admin/components/UserRow.tsx @@ -27,6 +27,7 @@ interface Props { isEditing: boolean page: string userDBPermissions: Array> + hideRoles: boolean onCancel: (user: User) => void onEdit: (User: User, updates: Partial) => void onSave: (user: User) => Promise @@ -41,6 +42,7 @@ const UserRow = ({ isEditing, page, userDBPermissions, + hideRoles, onEdit, onSave, onCancel, @@ -54,7 +56,7 @@ const UserRow = ({ onEdit={onEdit} onSave={onSave} onCancel={onCancel} - colSpan={2 + userDBPermissions.length} + colSpan={1 + +!hideRoles + userDBPermissions.length} /> ) } @@ -71,7 +73,7 @@ const UserRow = ({ {user.name} - {hasRoles ? ( + {hasRoles && !hideRoles && ( {allRoles.length ? ( N/A )} - ) : ( + )} + {!hasRoles && ( {adminStyle.text} diff --git a/ui/src/admin/containers/influxdb/UsersPage.tsx b/ui/src/admin/containers/influxdb/UsersPage.tsx index b457839ea..ee0aa281e 100644 --- a/ui/src/admin/containers/influxdb/UsersPage.tsx +++ b/ui/src/admin/containers/influxdb/UsersPage.tsx @@ -26,6 +26,7 @@ import UserRow from 'src/admin/components/UserRow' import useDebounce from 'src/utils/useDebounce' import useChangeEffect from 'src/utils/useChangeEffect' import MultiSelectDropdown from 'src/reusable_ui/components/dropdowns/MultiSelectDropdown' +import {ComponentSize, SlideToggle} from 'src/reusable_ui' const isValidUser = (user: User) => { const minLen = 3 @@ -171,57 +172,73 @@ const UsersPage = ({ filterUsers(debouncedFilterText) }, [debouncedFilterText]) + // hide role + const [hideRoles, setHideRoles] = useState(false) + const changeHideRoles = useCallback(() => setHideRoles(!hideRoles), [ + hideRoles, + setHideRoles, + ]) return (
-
-
- - -
-
- - {databases.reduce( - (acc, db) => { - acc.push( - - {db.name} - - ) - return acc - }, - [ - - All Databases - , - , - ] - )} - -
+
+ + +
+
+ + {databases.reduce( + (acc, db) => { + acc.push( + + {db.name} + + ) + return acc + }, + [ + + All Databases + , + , + ] + )} + +
+ {isEnterprise && ( +
+ + Hide Roles +
+ )} +
+
-
@@ -229,9 +246,11 @@ const UsersPage = ({ User - - {isEnterprise ? 'Roles' : 'Admin'} - + {!hideRoles && ( + + {isEnterprise ? 'Roles' : 'Admin'} + + )} {visibleUsers.length && visibleDBNames.length ? visibleDBNames.map(name => ( )} diff --git a/ui/src/style/pages/admin.scss b/ui/src/style/pages/admin.scss index 49417a8d7..ccf97dc10 100644 --- a/ui/src/style/pages/admin.scss +++ b/ui/src/style/pages/admin.scss @@ -202,29 +202,30 @@ pre.admin-table--query { min-height: 60px; padding: 0 30px; flex-wrap: wrap; - justify-content: end; - *:first-child { - flex: 1 0 auto; - } - .heading-filters { - display: flex; - justify-content: flex-start; - column-gap: 5px; - } + justify-content: flex-start; + column-gap: 5px; .search-widget { - flex-grow: 0; width: 250px; } .db-selector { - flex-grow: 0; width: 150px; } - .btn { - margin-left: 5px; - &:first-child { - margin-left: 0px; + .hide-roles-toggle { + display: flex; + align-items: center; + font-size: 13px; + color: $g13-mist; + font-weight: 600; + @include no-user-select(); + .slide-toggle { + margin-right: 3px; } } + .panel-heading--right { + flex-grow: 1; + display: flex; + justify-content: flex-end; + } } .panel-body { border-radius: 0px;