diff --git a/core/src/configuration/built-in-configuration.ts b/core/src/configuration/built-in-configuration.ts index bab4cdbc07..53577ca8b3 100644 --- a/core/src/configuration/built-in-configuration.ts +++ b/core/src/configuration/built-in-configuration.ts @@ -1336,6 +1336,14 @@ export class BuiltInConfiguration { editable: true, visible: true, inputType: 'relation' + }, + { + name: 'hasWorkflowStep', + domain: ['Find', 'Sample'], + range: ['WorkflowStep'], + editable: false, + visible: false, + inputType: 'relation' } ]; diff --git a/core/src/model/configuration/relation.ts b/core/src/model/configuration/relation.ts index 83904e3c4d..decb7df501 100644 --- a/core/src/model/configuration/relation.ts +++ b/core/src/model/configuration/relation.ts @@ -110,6 +110,7 @@ export namespace Relation { */ export const SAME_AS = 'isSameAs'; + export const HAS_WORKFLOW_STEP = 'hasWorkflowStep'; export const UNIDIRECTIONAL = Hierarchy.ALL.concat([IS_PRESENT_IN]); diff --git a/desktop/src/app/components/resources/widgets/resources-context-menu.component.ts b/desktop/src/app/components/resources/widgets/resources-context-menu.component.ts index 13aed408f3..181d50a136 100644 --- a/desktop/src/app/components/resources/widgets/resources-context-menu.component.ts +++ b/desktop/src/app/components/resources/widgets/resources-context-menu.component.ts @@ -8,7 +8,7 @@ import { UtilTranslations } from '../../../util/util-translations'; export type ResourcesContextMenuAction = 'edit'|'move'|'delete'|'warnings'|'edit-qr-code'|'edit-images' - |'scan-storage-place'|'create-polygon'|'create-line-string'|'create-point'|'edit-geometry'; + |'scan-storage-place'|'edit-workflow'|'create-polygon'|'create-line-string'|'create-point'|'edit-geometry'; @Component({ @@ -57,7 +57,8 @@ export class ResourcesContextMenuComponent implements OnChanges { || this.isWarningsOptionAvailable() || this.isAddQRCodeOptionAvailable() || this.isEditQRCodeOptionAvailable() - || this.isScanStoragePlaceOptionIsAvailable(); + || this.isScanStoragePlaceOptionIsAvailable() + || this.isEditWorkflowOptionAvailable(); } @@ -139,6 +140,17 @@ export class ResourcesContextMenuComponent implements OnChanges { } + public isEditWorkflowOptionAvailable(): boolean { + + return this.contextMenu.documents.length === 1 + && this.projectConfiguration.getWorkflowCategories().length > 0 + && this.projectConfiguration.isAllowedRelationDomainCategory( + this.contextMenu.documents[0].resource.category, + 'WorkflowStep', Relation.HAS_WORKFLOW_STEP + ); + } + + private isQrCodeOptionAvailable(): boolean { if (!this.isEditOptionAvailable()) return false;