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 @@ -->