From d9a11e57d2009ff713b01f9413b02764e198a44a Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Wed, 27 Nov 2024 12:54:04 +0700 Subject: [PATCH] fix: add document inline editor (#7233) Signed-off-by: Alexander Onnikov --- models/document/src/index.ts | 4 ++ models/document/src/plugin.ts | 1 + .../components/DocumentInlineEditor.svelte | 46 +++++++++++++++++++ plugins/document-resources/src/index.ts | 2 + .../src/components/ObjectBox.svelte | 4 +- 5 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 plugins/document-resources/src/components/DocumentInlineEditor.svelte diff --git a/models/document/src/index.ts b/models/document/src/index.ts index cacdf4c235..23d8f4d997 100644 --- a/models/document/src/index.ts +++ b/models/document/src/index.ts @@ -312,6 +312,10 @@ function defineDocument (builder: Builder): void { component: document.component.DocumentIcon }) + builder.mixin(document.class.Document, core.class.Class, view.mixin.AttributeEditor, { + inlineEditor: document.component.DocumentInlineEditor + }) + // Actions createAction(builder, { diff --git a/models/document/src/plugin.ts b/models/document/src/plugin.ts index 883cfc54b8..8f22ca8384 100644 --- a/models/document/src/plugin.ts +++ b/models/document/src/plugin.ts @@ -27,6 +27,7 @@ export default mergeIds(documentId, document, { component: { Documents: '' as AnyComponent, DocumentPresenter: '' as AnyComponent, + DocumentInlineEditor: '' as AnyComponent, NotificationDocumentPresenter: '' as AnyComponent, TeamspaceSpacePresenter: '' as AnyComponent, Move: '' as AnyComponent, diff --git a/plugins/document-resources/src/components/DocumentInlineEditor.svelte b/plugins/document-resources/src/components/DocumentInlineEditor.svelte new file mode 100644 index 0000000000..e092bc2dde --- /dev/null +++ b/plugins/document-resources/src/components/DocumentInlineEditor.svelte @@ -0,0 +1,46 @@ + + + + { + onChange(e.detail) + }} + _class={document.class.Document} + label={document.string.Document} + searchField={'title'} + docQuery={{}} + {readonly} + {kind} + {size} + {justify} + {width} +/> diff --git a/plugins/document-resources/src/index.ts b/plugins/document-resources/src/index.ts index b46ea7c610..2db4b0a18c 100644 --- a/plugins/document-resources/src/index.ts +++ b/plugins/document-resources/src/index.ts @@ -32,6 +32,7 @@ import { openDoc } from '@hcengineering/view-resources' import CreateDocument from './components/CreateDocument.svelte' import DocumentIcon from './components/DocumentIcon.svelte' import DocumentItem from './components/DocumentItem.svelte' +import DocumentInlineEditor from './components/DocumentInlineEditor.svelte' import DocumentPresenter from './components/DocumentPresenter.svelte' import DocumentSearchIcon from './components/DocumentSearchIcon.svelte' import DocumentToDoPresenter from './components/DocumentToDoPresenter.svelte' @@ -167,6 +168,7 @@ export default async (): Promise => ({ component: { CreateDocument, CreateTeamspace, + DocumentInlineEditor, DocumentPresenter, Documents, EditDoc, diff --git a/plugins/view-resources/src/components/ObjectBox.svelte b/plugins/view-resources/src/components/ObjectBox.svelte index 47ab463546..158de7dbfc 100644 --- a/plugins/view-resources/src/components/ObjectBox.svelte +++ b/plugins/view-resources/src/components/ObjectBox.svelte @@ -27,13 +27,13 @@ LabelAndProps, getEventPositionElement, getFocusManager, - showPanel, showPopup } from '@hcengineering/ui' import view from '@hcengineering/view' import { createEventDispatcher } from 'svelte' import ObjectBoxPopup from './ObjectBoxPopup.svelte' import ObjectPresenter from './ObjectPresenter.svelte' + import { openDoc } from '../utils' export let _class: Ref> export let excluded: Array> | undefined = undefined @@ -181,7 +181,7 @@ size={'small'} action={() => { if (selected) { - showPanel(view.component.EditDoc, selected._id, Hierarchy.mixinOrClass(selected), 'content') + void openDoc(client.getHierarchy(), selected) } }} />