From e27e71ee59184e94b6f67703e5bb95b5c9044b0f Mon Sep 17 00:00:00 2001 From: Ashley Harrison Date: Wed, 17 May 2023 16:15:36 +0100 Subject: [PATCH] Nested folders: move permissions to a drawer (#68476) * move permissions to a drawer when nested folders is enabled * only show count when resource is folder * Extract descendant count out into its own component * remove label --- .../AccessControl/AddPermission.tsx | 22 ++- .../AccessControl/PermissionListItem.tsx | 19 +-- .../components/AccessControl/Permissions.tsx | 139 +++++++++++------- .../BrowseDashboardsPage.tsx | 18 ++- .../components/BrowseActions/DeleteModal.tsx | 19 +-- .../BrowseActions/DescendantCount.tsx | 37 +++++ .../components/BrowseActions/MoveModal.tsx | 25 +--- .../components/FolderActionsButton.tsx | 42 ++++++ public/app/features/folders/state/navModel.ts | 18 ++- public/app/routes/routes.tsx | 2 +- 10 files changed, 208 insertions(+), 133 deletions(-) create mode 100644 public/app/features/browse-dashboards/components/BrowseActions/DescendantCount.tsx create mode 100644 public/app/features/browse-dashboards/components/FolderActionsButton.tsx diff --git a/public/app/core/components/AccessControl/AddPermission.tsx b/public/app/core/components/AccessControl/AddPermission.tsx index 8c17862ec7a..27629fe4dce 100644 --- a/public/app/core/components/AccessControl/AddPermission.tsx +++ b/public/app/core/components/AccessControl/AddPermission.tsx @@ -1,6 +1,7 @@ import React, { useEffect, useMemo, useState } from 'react'; -import { Button, Form, HorizontalGroup, Select } from '@grafana/ui'; +import { Stack } from '@grafana/experimental'; +import { Button, Form, Select } from '@grafana/ui'; import { CloseButton } from 'app/core/components/CloseButton/CloseButton'; import { TeamPicker } from 'app/core/components/Select/TeamPicker'; import { UserPicker } from 'app/core/components/Select/UserPicker'; @@ -16,7 +17,7 @@ export interface Props { onAdd: (state: SetPermission) => void; } -export const AddPermission = ({ title = 'Add Permission For', permissions, assignments, onAdd, onCancel }: Props) => { +export const AddPermission = ({ title = 'Add permission for', permissions, assignments, onAdd, onCancel }: Props) => { const [target, setPermissionTarget] = useState(PermissionTarget.None); const [teamId, setTeamId] = useState(0); const [userId, setUserId] = useState(0); @@ -59,35 +60,32 @@ export const AddPermission = ({ title = 'Add Permission For', permissions, assig onSubmit={() => onAdd({ userId, teamId, builtInRole, permission, target })} > {() => ( - + ({ value: r, label: r }))} onChange={(r) => setBuiltinRole(r.value || '')} - width={40} + width="auto" /> )} onChange(item, p.value!)} - value={permissionLevels.find((p) => p === item.permission)} - options={permissionLevels.map((p) => ({ value: p, label: p }))} - /> - +