From 148964b55ddc3eccb9f5526e352936ccfda2e46a Mon Sep 17 00:00:00 2001 From: jasquat Date: Tue, 22 Nov 2022 14:12:08 -0500 Subject: [PATCH] moved delete and edit model and group buttons to icons on show pages w/ burnettk cullerton --- .../src/components/ProcessGroupForm.tsx | 26 ------- .../components/ProcessInstanceListTable.tsx | 17 +++-- .../src/routes/ProcessGroupShow.tsx | 69 ++++++++++++++++--- .../src/routes/ProcessModelShow.tsx | 22 +++--- 4 files changed, 83 insertions(+), 51 deletions(-) diff --git a/spiffworkflow-frontend/src/components/ProcessGroupForm.tsx b/spiffworkflow-frontend/src/components/ProcessGroupForm.tsx index a3899a2b0..a518e47bb 100644 --- a/spiffworkflow-frontend/src/components/ProcessGroupForm.tsx +++ b/spiffworkflow-frontend/src/components/ProcessGroupForm.tsx @@ -5,7 +5,6 @@ import { Button, ButtonSet, Form, Stack, TextInput } from '@carbon/react'; import { modifyProcessIdentifierForPathParam, slugifyString } from '../helpers'; import HttpService from '../services/HttpService'; import { ProcessGroup } from '../interfaces'; -import ButtonWithConfirmation from './ButtonWithConfirmation'; type OwnProps = { mode: string; @@ -35,24 +34,10 @@ export default function ProcessGroupForm({ } }; - const navigateToProcessGroups = (_result: any) => { - navigate(`/admin/process-groups`); - }; - const hasValidIdentifier = (identifierToCheck: string) => { return identifierToCheck.match(/^[a-z0-9][0-9a-z-]+[a-z0-9]$/); }; - const deleteProcessGroup = () => { - HttpService.makeCallToBackend({ - path: `/process-groups/${modifyProcessIdentifierForPathParam( - processGroup.id - )}`, - successCallback: navigateToProcessGroups, - httpMethod: 'DELETE', - }); - }; - const handleFormSubmission = (event: any) => { const searchParams = new URLSearchParams(document.location.search); const parentGroupId = searchParams.get('parentGroupId'); @@ -172,17 +157,6 @@ export default function ProcessGroupForm({ const formButtons = () => { const buttons = []; - if (mode === 'edit') { - buttons.push( - - ); - } return {buttons}; }; diff --git a/spiffworkflow-frontend/src/components/ProcessInstanceListTable.tsx b/spiffworkflow-frontend/src/components/ProcessInstanceListTable.tsx index 7c50d596b..5b60f2178 100644 --- a/spiffworkflow-frontend/src/components/ProcessInstanceListTable.tsx +++ b/spiffworkflow-frontend/src/components/ProcessInstanceListTable.tsx @@ -56,6 +56,7 @@ type OwnProps = { processModelFullIdentifier?: string; paginationQueryParamPrefix?: string; perPageOptions?: number[]; + showReports?: boolean; }; interface dateParameters { @@ -67,6 +68,7 @@ export default function ProcessInstanceListTable({ processModelFullIdentifier, paginationQueryParamPrefix, perPageOptions, + showReports = true, }: OwnProps) { const params = useParams(); const [searchParams] = useSearchParams(); @@ -704,12 +706,15 @@ export default function ProcessInstanceListTable({ }; const reportSearchComponent = () => { - return ( - - ); + if (showReports) { + return ( + + ); + } + return null; }; const filterComponent = () => { diff --git a/spiffworkflow-frontend/src/routes/ProcessGroupShow.tsx b/spiffworkflow-frontend/src/routes/ProcessGroupShow.tsx index 496a8826e..1656d25c5 100644 --- a/spiffworkflow-frontend/src/routes/ProcessGroupShow.tsx +++ b/spiffworkflow-frontend/src/routes/ProcessGroupShow.tsx @@ -1,5 +1,15 @@ import { useEffect, useState } from 'react'; -import { Link, useSearchParams, useParams } from 'react-router-dom'; +import { + Link, + useSearchParams, + useParams, + useNavigate, +} from 'react-router-dom'; +import { + TrashCan, + Edit, + // @ts-ignore +} from '@carbon/icons-react'; // @ts-ignore import { Button, Table, Stack } from '@carbon/react'; import { Can } from '@casl/react'; @@ -20,11 +30,13 @@ import { import { useUriListForPermissions } from '../hooks/UriListForPermissions'; import { usePermissionFetcher } from '../hooks/PermissionService'; import ProcessGroupListTiles from '../components/ProcessGroupListTiles'; +import ButtonWithConfirmation from '../components/ButtonWithConfirmation'; // import ProcessModelListTiles from '../components/ProcessModelListTiles'; export default function ProcessGroupShow() { const params = useParams(); const [searchParams] = useSearchParams(); + const navigate = useNavigate(); const [processGroup, setProcessGroup] = useState(null); const [processModels, setProcessModels] = useState([]); @@ -34,7 +46,7 @@ export default function ProcessGroupShow() { const { targetUris } = useUriListForPermissions(); const permissionRequestData: PermissionsToCheck = { [targetUris.processGroupListPath]: ['POST'], - [targetUris.processGroupShowPath]: ['PUT'], + [targetUris.processGroupShowPath]: ['PUT', 'DELETE'], [targetUris.processModelCreatePath]: ['POST'], }; const { ability } = usePermissionFetcher(permissionRequestData); @@ -99,6 +111,22 @@ export default function ProcessGroupShow() { ); }; + const navigateToProcessGroups = (_result: any) => { + navigate(`/admin/process-groups`); + }; + + const deleteProcessGroup = () => { + if (processGroup) { + HttpService.makeCallToBackend({ + path: `/process-groups/${modifyProcessIdentifierForPathParam( + processGroup.id + )}`, + successCallback: navigateToProcessGroups, + httpMethod: 'DELETE', + }); + } + }; + if (processGroup && modelPagination) { const { page, perPage } = getPageInfoFromSearchParams(searchParams); const modifiedProcessGroupId = modifyProcessIdentifierForPathParam( @@ -112,7 +140,35 @@ export default function ProcessGroupShow() { ['', `process_group:${processGroup.id}`], ]} /> -

Process Group: {processGroup.display_name}

+ +

+ Process Group: {processGroup.display_name} +

+ + + + + + +

{processGroup.description}

    @@ -134,13 +190,6 @@ export default function ProcessGroupShow() { Add a process model - - -

    diff --git a/spiffworkflow-frontend/src/routes/ProcessModelShow.tsx b/spiffworkflow-frontend/src/routes/ProcessModelShow.tsx index c209e5535..1424a40aa 100644 --- a/spiffworkflow-frontend/src/routes/ProcessModelShow.tsx +++ b/spiffworkflow-frontend/src/routes/ProcessModelShow.tsx @@ -563,7 +563,18 @@ export default function ProcessModelShow() {

    Process Model: {processModel.display_name}

    - + + + - - -

    @@ -608,6 +611,7 @@ export default function ProcessModelShow() { filtersEnabled={false} processModelFullIdentifier={processModel.id} perPageOptions={[2, 5, 25]} + showReports={false} />