fix(plugin-workflow): fix todo list form read-pretty for non-assigneed user (#1615)
Fix #1572.
This commit is contained in:
		
							parent
							
								
									5752edd5d5
								
							
						
					
					
						commit
						c572b696cc
					
				| @ -198,7 +198,7 @@ export function WorkflowCanvas() { | ||||
|         <div className={branchBlockClass}> | ||||
|           <Branch entry={entry} /> | ||||
|         </div> | ||||
|         <div className={cx(nodeCardClass)}> | ||||
|         <div className={cx('end', nodeCardClass)}> | ||||
|           <div className={cx(nodeMetaClass)}> | ||||
|             <Tag color="#333">{lang('End')}</Tag> | ||||
|           </div> | ||||
|  | ||||
| @ -6,7 +6,7 @@ import parse from 'json-templates'; | ||||
| import { css } from "@emotion/css"; | ||||
| import moment from 'moment'; | ||||
| 
 | ||||
| import { CollectionManagerProvider, CollectionProvider, SchemaComponent, SchemaComponentContext, SchemaComponentOptions, TableBlockProvider, useActionContext, useAPIClient, useCollectionManager, useRecord, useRequest, useTableBlockContext } from "@nocobase/client"; | ||||
| import { CollectionManagerProvider, CollectionProvider, SchemaComponent, SchemaComponentContext, SchemaComponentOptions, TableBlockProvider, useActionContext, useAPIClient, useCollectionManager, useCurrentUserContext, useRecord, useRequest, useTableBlockContext } from "@nocobase/client"; | ||||
| import { uid } from "@nocobase/utils/client"; | ||||
| 
 | ||||
| import { JobStatusOptions, JobStatusOptionsMap, JOB_STATUS } from "../../constants"; | ||||
| @ -386,9 +386,9 @@ function FlowContextProvider(props) { | ||||
|     if (!executionId) { | ||||
|       return; | ||||
|     } | ||||
|     api.resource('executions').get?.({ | ||||
|     api.resource('users_jobs').get?.({ | ||||
|       filterByTk: executionId, | ||||
|       appends: ['workflow', 'workflow.nodes', 'jobs'], | ||||
|       appends: ['workflow', 'workflow.nodes', 'execution', 'execution.jobs'], | ||||
|     }) | ||||
|       .then(({ data }) => { | ||||
|         const { | ||||
| @ -422,14 +422,21 @@ function FlowContextProvider(props) { | ||||
| 
 | ||||
| WorkflowTodo.Drawer = function () { | ||||
|   const ctx = useContext(SchemaComponentContext); | ||||
|   const { id, node, workflow, status, result, updatedAt } = useRecord(); | ||||
|   const { id, node, workflow, status, result, updatedAt, userId } = useRecord(); | ||||
|   const { data: user } = useCurrentUserContext(); | ||||
| 
 | ||||
|   const disabled = Boolean(status) || user?.data?.id !== userId; | ||||
|   const form = useMemo(() => createForm({ | ||||
|     readPretty: Boolean(status), | ||||
|     readPretty: disabled, | ||||
|     disabled, | ||||
|     initialValues: result | ||||
|   }), [result]); | ||||
| 
 | ||||
|   const { blocks, collection, actions } = node.config.schema ?? {}; | ||||
|   const availableActions = Object.keys(actions).reduce((buttons, key) => ({ ...buttons, [key]: { | ||||
|     ...actions[key], | ||||
|     'x-disabled': disabled | ||||
|   } }), {}); | ||||
| 
 | ||||
|   const statusOption = JobStatusOptionsMap[status]; | ||||
|   const actionSchema = status | ||||
| @ -454,7 +461,7 @@ WorkflowTodo.Drawer = function () { | ||||
|         'x-content': statusOption.label | ||||
|       } | ||||
|     } | ||||
|     : actions; | ||||
|     : availableActions; | ||||
| 
 | ||||
|   return ( | ||||
|     <SchemaComponentContext.Provider value={{ ...ctx, designable: false }}> | ||||
|  | ||||
| @ -34,6 +34,14 @@ export const workflowPageClass = css` | ||||
|     flex-direction: column; | ||||
|     align-items: center; | ||||
|     padding: 2em; | ||||
| 
 | ||||
|     .end{ | ||||
|       cursor: default; | ||||
| 
 | ||||
|       &:hover{ | ||||
|         box-shadow: 0 .25em .5em rgba(0, 0, 0, .1); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| `;
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user