diff --git a/bin/run_pyl b/bin/run_pyl index 64446662a..bceba187b 100755 --- a/bin/run_pyl +++ b/bin/run_pyl @@ -38,12 +38,19 @@ function run_fix_docstrings() { } function run_autoflake() { - if ! command -v autoflake8 >/dev/null ; then + # checking command -v autoflake8 is not good enough, since the asdf shim may be installed, which will make command -v succeed, + # but autoflake8 may not have been pip installed inside the correct version of python. + if ! autoflake8 --help >/dev/null ; then pip install autoflake8 asdf reshim python fi - if ! command -v autopep8 >/dev/null ; then + if ! autoflake --help >/dev/null ; then + pip install autoflake + asdf reshim python + fi + + if ! autopep8 --help >/dev/null ; then pip install autopep8 asdf reshim python fi diff --git a/spiffworkflow-frontend/src/components/ProcessInstanceListTabs.tsx b/spiffworkflow-frontend/src/components/ProcessInstanceListTabs.tsx new file mode 100644 index 000000000..8da9d8c1a --- /dev/null +++ b/spiffworkflow-frontend/src/components/ProcessInstanceListTabs.tsx @@ -0,0 +1,63 @@ +// @ts-ignore +import { Tabs, TabList, Tab } from '@carbon/react'; +import { Can } from '@casl/react'; +import { useNavigate } from 'react-router-dom'; +import { usePermissionFetcher } from '../hooks/PermissionService'; +import { useUriListForPermissions } from '../hooks/UriListForPermissions'; +import { PermissionsToCheck } from '../interfaces'; + +type OwnProps = { + variant: string; +}; + +export default function ProcessInstanceListTabs({ variant }: OwnProps) { + const navigate = useNavigate(); + const { targetUris } = useUriListForPermissions(); + const permissionRequestData: PermissionsToCheck = { + [targetUris.processInstanceListPath]: ['GET'], + }; + const { ability } = usePermissionFetcher(permissionRequestData); + + let selectedTabIndex = 0; + if (variant === 'all') { + selectedTabIndex = 1; + } else if (variant === 'find-by-id') { + selectedTabIndex = 2; + } + + return ( + + + { + navigate('/admin/process-instances/for-me'); + }} + > + For Me + + + { + navigate('/admin/process-instances/all'); + }} + > + All + + + { + navigate('/admin/process-instances/find-by-id'); + }} + > + Find By Id + + + + ); +} diff --git a/spiffworkflow-frontend/src/routes/ProcessInstanceFindById.tsx b/spiffworkflow-frontend/src/routes/ProcessInstanceFindById.tsx index e55520ef6..0c0c1974e 100644 --- a/spiffworkflow-frontend/src/routes/ProcessInstanceFindById.tsx +++ b/spiffworkflow-frontend/src/routes/ProcessInstanceFindById.tsx @@ -4,6 +4,7 @@ import { useNavigate } from 'react-router-dom'; import { Button, ButtonSet, Form, Stack, TextInput } from '@carbon/react'; import { isInteger, modifyProcessIdentifierForPathParam } from '../helpers'; import HttpService from '../services/HttpService'; +import ProcessInstanceListTabs from '../components/ProcessInstanceListTabs'; import { ProcessInstance } from '../interfaces'; export default function ProcessInstanceFindById() { @@ -69,11 +70,15 @@ export default function ProcessInstanceFindById() { }; return ( -
- - {formElements()} - {formButtons()} - -
+ <> + +
+
+ + {formElements()} + {formButtons()} + +
+ ); } diff --git a/spiffworkflow-frontend/src/routes/ProcessInstanceList.tsx b/spiffworkflow-frontend/src/routes/ProcessInstanceList.tsx index 33af0c1fb..ca69eb7d3 100644 --- a/spiffworkflow-frontend/src/routes/ProcessInstanceList.tsx +++ b/spiffworkflow-frontend/src/routes/ProcessInstanceList.tsx @@ -1,18 +1,13 @@ -import { useNavigate, useSearchParams } from 'react-router-dom'; +import { useSearchParams } from 'react-router-dom'; import 'react-datepicker/dist/react-datepicker.css'; import 'react-bootstrap-typeahead/css/Typeahead.css'; import 'react-bootstrap-typeahead/css/Typeahead.bs5.css'; -// @ts-ignore -import { Tabs, TabList, Tab } from '@carbon/react'; -import { Can } from '@casl/react'; import ProcessBreadcrumb from '../components/ProcessBreadcrumb'; import ProcessInstanceListTable from '../components/ProcessInstanceListTable'; import { getProcessModelFullIdentifierFromSearchParams } from '../helpers'; -import { useUriListForPermissions } from '../hooks/UriListForPermissions'; -import { PermissionsToCheck } from '../interfaces'; -import { usePermissionFetcher } from '../hooks/PermissionService'; +import ProcessInstanceListTabs from '../components/ProcessInstanceListTabs'; type OwnProps = { variant: string; @@ -20,13 +15,6 @@ type OwnProps = { export default function ProcessInstanceList({ variant }: OwnProps) { const [searchParams] = useSearchParams(); - const navigate = useNavigate(); - - const { targetUris } = useUriListForPermissions(); - const permissionRequestData: PermissionsToCheck = { - [targetUris.processInstanceListPath]: ['GET'], - }; - const { ability } = usePermissionFetcher(permissionRequestData); const processInstanceBreadcrumbElement = () => { const processModelFullIdentifier = @@ -57,45 +45,9 @@ export default function ProcessInstanceList({ variant }: OwnProps) { return

My Process Instances

; }; - let selectedTabIndex = 0; - if (variant === 'all') { - selectedTabIndex = 1; - } return ( <> - - - { - navigate('/admin/process-instances/for-me'); - }} - > - For Me - - - { - navigate('/admin/process-instances/all'); - }} - > - All - - - { - navigate('/admin/process-instances/find-by-id'); - }} - > - Find By Id - - - +
{processInstanceBreadcrumbElement()} {processInstanceTitleElement()}