From cd3396cf9dcae886700bc8ea822d5b5ead11dc86 Mon Sep 17 00:00:00 2001 From: Denis Bykhov Date: Fri, 11 Jul 2025 07:11:58 +0500 Subject: [PATCH] Create card process (#9522) --- models/process/src/index.ts | 28 +++ models/server-card/src/index.ts | 5 +- models/server-process/src/index.ts | 16 +- .../ui/src/components/NestedDropdown.svelte | 7 +- .../src/components/CardPresenter.svelte | 25 +-- .../src/components/CardSearchItem.svelte | 6 +- .../src/components/ChangeType.svelte | 57 +----- .../src/components/TypeSelector.svelte | 84 +++++++++ plugins/card-resources/src/index.ts | 2 + plugins/process-assets/lang/cs.json | 6 +- plugins/process-assets/lang/de.json | 6 +- plugins/process-assets/lang/en.json | 6 +- plugins/process-assets/lang/es.json | 6 +- plugins/process-assets/lang/fr.json | 6 +- plugins/process-assets/lang/it.json | 6 +- plugins/process-assets/lang/ja.json | 6 +- plugins/process-assets/lang/pt.json | 6 +- plugins/process-assets/lang/ru.json | 6 +- plugins/process-assets/lang/zh.json | 6 +- .../src/components/ExecutionLogs.svelte | 11 +- .../src/components/ProcessAttribute.svelte | 122 ++++++------- .../attributeEditors/ConfigurePopup.svelte | 77 ++++---- .../ContextSelectorPopup.svelte | 41 ++--- .../attributeEditors/ContextValue.svelte | 13 +- .../src/components/icons/ArrowEnd.svelte | 12 -- .../src/components/icons/ArrowStart.svelte | 11 -- .../src/components/icons/IconBacklog.svelte | 33 ---- .../src/components/icons/IconCompleted.svelte | 34 ---- .../src/components/icons/IconProgress.svelte | 53 ------ .../presenters/AddRelationPresenter.svelte | 62 +++++++ .../presenters/CreateCardPresenter.svelte | 71 ++++++++ .../settings/AddRelationEditor.svelte | 120 +++++++++++++ .../settings/AssociationSelector.svelte | 84 +++++++++ .../components/settings/ContextEditor.svelte | 4 +- .../settings/CreateCardEditor.svelte | 170 ++++++++++++++++++ .../components/settings/ParamsEditor.svelte | 2 +- .../components/settings/ResultEditor.svelte | 2 +- .../settings/TransitionPresenter.svelte | 6 +- .../settings/TransitionsInlineEditor.svelte | 3 - .../settings/UpdateCardEditor.svelte | 4 +- plugins/process-resources/src/index.ts | 16 +- plugins/process-resources/src/plugin.ts | 9 +- plugins/process-resources/src/utils.ts | 34 +++- plugins/process/src/index.ts | 19 +- plugins/process/src/types.ts | 3 +- server-plugins/process-resources/src/index.ts | 162 +++++++++++------ server-plugins/process/src/index.ts | 3 +- server-plugins/process/src/types.ts | 1 + 48 files changed, 1005 insertions(+), 467 deletions(-) create mode 100644 plugins/card-resources/src/components/TypeSelector.svelte delete mode 100644 plugins/process-resources/src/components/icons/ArrowEnd.svelte delete mode 100644 plugins/process-resources/src/components/icons/ArrowStart.svelte delete mode 100644 plugins/process-resources/src/components/icons/IconBacklog.svelte delete mode 100644 plugins/process-resources/src/components/icons/IconCompleted.svelte delete mode 100644 plugins/process-resources/src/components/icons/IconProgress.svelte create mode 100644 plugins/process-resources/src/components/presenters/AddRelationPresenter.svelte create mode 100644 plugins/process-resources/src/components/presenters/CreateCardPresenter.svelte create mode 100644 plugins/process-resources/src/components/settings/AddRelationEditor.svelte create mode 100644 plugins/process-resources/src/components/settings/AssociationSelector.svelte create mode 100644 plugins/process-resources/src/components/settings/CreateCardEditor.svelte diff --git a/models/process/src/index.ts b/models/process/src/index.ts index a6fc3b8ae5..4c006bf9b8 100644 --- a/models/process/src/index.ts +++ b/models/process/src/index.ts @@ -898,6 +898,34 @@ export function createModel (builder: Builder): void { process.method.UpdateCard ) + builder.createDoc( + process.class.Method, + core.space.Model, + { + label: process.string.CreateCard, + objectClass: card.class.Card, + editor: process.component.CreateCardEditor, + presenter: process.component.CreateCardPresenter, + contextClass: card.class.Card, + requiredParams: ['title', '_class'] + }, + process.method.CreateCard + ) + + builder.createDoc( + process.class.Method, + core.space.Model, + { + label: core.string.AddRelation, + objectClass: core.class.Relation, + editor: process.component.AddRelationEditor, + presenter: process.component.AddRelationPresenter, + contextClass: core.class.Relation, + requiredParams: ['association', 'direction', '_id'] + }, + process.method.AddRelation + ) + builder.createDoc( process.class.Trigger, core.space.Model, diff --git a/models/server-card/src/index.ts b/models/server-card/src/index.ts index b3604cc81f..0d4d909e3e 100644 --- a/models/server-card/src/index.ts +++ b/models/server-card/src/index.ts @@ -104,7 +104,10 @@ export function createModel (builder: Builder): void { }) builder.mixin(card.class.Card, core.class.Class, serverCore.mixin.SearchPresenter, { - searchIcon: card.icon.Card, + iconConfig: { + component: card.component.CardIcon, + fields: [['_id']] + }, title: [['title']] }) } diff --git a/models/server-process/src/index.ts b/models/server-process/src/index.ts index 4e8e14eca2..51842428cb 100644 --- a/models/server-process/src/index.ts +++ b/models/server-process/src/index.ts @@ -65,6 +65,14 @@ export function createModel (builder: Builder): void { func: serverProcess.func.UpdateCard }) + builder.mixin(process.method.CreateCard, process.class.Method, serverProcess.mixin.MethodImpl, { + func: serverProcess.func.CreateCard + }) + + builder.mixin(process.method.AddRelation, process.class.Method, serverProcess.mixin.MethodImpl, { + func: serverProcess.func.AddRelation + }) + builder.mixin(process.function.FirstValue, process.class.ProcessFunction, serverProcess.mixin.FuncImpl, { func: serverProcess.transform.FirstValue }) @@ -222,14 +230,6 @@ export function createModel (builder: Builder): void { } }) - builder.createDoc(serverCore.class.Trigger, core.space.Model, { - trigger: serverProcess.trigger.OnStateActionsUpdate, - txMatch: { - _class: core.class.TxUpdateDoc, - objectClass: process.class.State - } - }) - builder.createDoc(serverCore.class.Trigger, core.space.Model, { trigger: serverProcess.trigger.OnTransition, txMatch: { diff --git a/packages/ui/src/components/NestedDropdown.svelte b/packages/ui/src/components/NestedDropdown.svelte index 08bc91ecd9..1bcadc5764 100644 --- a/packages/ui/src/components/NestedDropdown.svelte +++ b/packages/ui/src/components/NestedDropdown.svelte @@ -17,7 +17,7 @@ import { createEventDispatcher } from 'svelte' import ui from '../plugin' import { showPopup } from '../popups' - import type { DropdownIntlItem } from '../types' + import type { ButtonKind, DropdownIntlItem } from '../types' import Button from './Button.svelte' import DropdownIcon from './icons/Dropdown.svelte' import NestedMenu from './NestedMenu.svelte' @@ -28,6 +28,9 @@ export let disabled: boolean = false export let selected: DropdownIntlItem | undefined = undefined + export let width: string | undefined = undefined + export let kind: ButtonKind = 'regular' + let container: HTMLElement let opened: boolean = false @@ -48,7 +51,7 @@
-
-{/if} + diff --git a/plugins/process-resources/src/components/presenters/CreateCardPresenter.svelte b/plugins/process-resources/src/components/presenters/CreateCardPresenter.svelte new file mode 100644 index 0000000000..02ac3ef508 --- /dev/null +++ b/plugins/process-resources/src/components/presenters/CreateCardPresenter.svelte @@ -0,0 +1,71 @@ + + + +
+
+ + diff --git a/plugins/process-resources/src/components/settings/AddRelationEditor.svelte b/plugins/process-resources/src/components/settings/AddRelationEditor.svelte new file mode 100644 index 0000000000..9614c2f874 --- /dev/null +++ b/plugins/process-resources/src/components/settings/AddRelationEditor.svelte @@ -0,0 +1,120 @@ + + + +
+ + + + {#if targetClass && context && attribute} + + {/if} +
+ + diff --git a/plugins/process-resources/src/components/settings/AssociationSelector.svelte b/plugins/process-resources/src/components/settings/AssociationSelector.svelte new file mode 100644 index 0000000000..59b722259d --- /dev/null +++ b/plugins/process-resources/src/components/settings/AssociationSelector.svelte @@ -0,0 +1,84 @@ + + + + diff --git a/plugins/process-resources/src/components/settings/ContextEditor.svelte b/plugins/process-resources/src/components/settings/ContextEditor.svelte index e5995f3917..458a6c32cf 100644 --- a/plugins/process-resources/src/components/settings/ContextEditor.svelte +++ b/plugins/process-resources/src/components/settings/ContextEditor.svelte @@ -27,12 +27,12 @@ const client = getClient() - async function save () { + async function save (): Promise { await client.update(process, { context: process.context }) clearSettingsStore() } - function onNameChange (ev: Event, _id: string, ctx: ProcessContext) { + function onNameChange (ev: Event, _id: string, ctx: ProcessContext): void { const value = (ev.target as HTMLInputElement).value?.trim() ctx.name = value process.context[_id as ContextId] = ctx diff --git a/plugins/process-resources/src/components/settings/CreateCardEditor.svelte b/plugins/process-resources/src/components/settings/CreateCardEditor.svelte new file mode 100644 index 0000000000..b507ba715e --- /dev/null +++ b/plugins/process-resources/src/components/settings/CreateCardEditor.svelte @@ -0,0 +1,170 @@ + + + +
+ + + +
+
+{#key _class} + +{/key} +{#if possibleAttrs.length > 0} +
+
+{/if} + + diff --git a/plugins/process-resources/src/components/settings/ParamsEditor.svelte b/plugins/process-resources/src/components/settings/ParamsEditor.svelte index 749f390f86..6a6b259030 100644 --- a/plugins/process-resources/src/components/settings/ParamsEditor.svelte +++ b/plugins/process-resources/src/components/settings/ParamsEditor.svelte @@ -14,7 +14,7 @@ --> diff --git a/plugins/process-resources/src/components/settings/TransitionsInlineEditor.svelte b/plugins/process-resources/src/components/settings/TransitionsInlineEditor.svelte index ede3a98178..08134adfe7 100644 --- a/plugins/process-resources/src/components/settings/TransitionsInlineEditor.svelte +++ b/plugins/process-resources/src/components/settings/TransitionsInlineEditor.svelte @@ -14,7 +14,6 @@ -->