add modal to display references
This commit is contained in:
parent
9922b99f64
commit
5e3c292f85
|
@ -19,7 +19,7 @@ import {
|
||||||
|
|
||||||
import React, { useRef, useEffect, useState } from 'react';
|
import React, { useRef, useEffect, useState } from 'react';
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import { Button } from '@carbon/react';
|
import { Button, Modal, UnorderedList, Link } from '@carbon/react';
|
||||||
|
|
||||||
import 'bpmn-js/dist/assets/diagram-js.css';
|
import 'bpmn-js/dist/assets/diagram-js.css';
|
||||||
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css';
|
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css';
|
||||||
|
@ -58,7 +58,11 @@ import { Can } from '@casl/react';
|
||||||
import HttpService from '../services/HttpService';
|
import HttpService from '../services/HttpService';
|
||||||
|
|
||||||
import ButtonWithConfirmation from './ButtonWithConfirmation';
|
import ButtonWithConfirmation from './ButtonWithConfirmation';
|
||||||
import { getBpmnProcessIdentifiers, makeid } from '../helpers';
|
import {
|
||||||
|
getBpmnProcessIdentifiers,
|
||||||
|
makeid,
|
||||||
|
modifyProcessIdentifierForPathParam,
|
||||||
|
} from '../helpers';
|
||||||
import { useUriListForPermissions } from '../hooks/UriListForPermissions';
|
import { useUriListForPermissions } from '../hooks/UriListForPermissions';
|
||||||
import { PermissionsToCheck, Task } from '../interfaces';
|
import { PermissionsToCheck, Task } from '../interfaces';
|
||||||
import { usePermissionFetcher } from '../hooks/PermissionService';
|
import { usePermissionFetcher } from '../hooks/PermissionService';
|
||||||
|
@ -127,7 +131,7 @@ export default function ReactDiagramEditor({
|
||||||
const { ability } = usePermissionFetcher(permissionRequestData);
|
const { ability } = usePermissionFetcher(permissionRequestData);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
console.log(callers);
|
const [showingReferences, setShowingReferences] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (diagramModelerState) {
|
if (diagramModelerState) {
|
||||||
|
@ -570,6 +574,42 @@ export default function ReactDiagramEditor({
|
||||||
|
|
||||||
const canViewXml = fileName !== undefined;
|
const canViewXml = fileName !== undefined;
|
||||||
|
|
||||||
|
const showReferences = () => {
|
||||||
|
return (
|
||||||
|
<Modal
|
||||||
|
open={showingReferences}
|
||||||
|
onRequestClose={() => setShowingReferences(false)}
|
||||||
|
passiveModal
|
||||||
|
>
|
||||||
|
<UnorderedList>
|
||||||
|
{callers.map((ref: any) => (
|
||||||
|
<li>
|
||||||
|
<Link
|
||||||
|
size="lg"
|
||||||
|
href={`/admin/process-models/${modifyProcessIdentifierForPathParam(
|
||||||
|
ref.process_model_id
|
||||||
|
)}`}
|
||||||
|
>
|
||||||
|
{`${ref.display_name}`}
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</UnorderedList>
|
||||||
|
</Modal>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const getReferencesButton = () => {
|
||||||
|
if (callers.length > 0) {
|
||||||
|
let buttonText = `View ${callers.length} Reference`;
|
||||||
|
if (callers.length > 1) buttonText += 's';
|
||||||
|
return (
|
||||||
|
<Button onClick={() => setShowingReferences(true)}>{buttonText}</Button>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
const userActionOptions = () => {
|
const userActionOptions = () => {
|
||||||
if (diagramType !== 'readonly') {
|
if (diagramType !== 'readonly') {
|
||||||
return (
|
return (
|
||||||
|
@ -631,5 +671,11 @@ export default function ReactDiagramEditor({
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
return <div>{userActionOptions()}</div>;
|
return (
|
||||||
|
<div>
|
||||||
|
{userActionOptions()}
|
||||||
|
{getReferencesButton()}
|
||||||
|
{showReferences()}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,13 +165,10 @@ export default function ProcessModelEditDiagram() {
|
||||||
}, [processModelPath, params]);
|
}, [processModelPath, params]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const getCallerIds = (result: any) => {
|
|
||||||
setCallers(result.map((r: any) => r.process_model_id));
|
|
||||||
}
|
|
||||||
if (processModel !== null) {
|
if (processModel !== null) {
|
||||||
HttpService.makeCallToBackend({
|
HttpService.makeCallToBackend({
|
||||||
path: `/processes/${processModel.primary_process_id}/callers`,
|
path: `/processes/${processModel.primary_process_id}/callers`,
|
||||||
successCallback: getCallerIds,
|
successCallback: setCallers,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, [processModel]);
|
}, [processModel]);
|
||||||
|
|
Loading…
Reference in New Issue