From 07636246888373a4e3fd81365cb51e65122aec23 Mon Sep 17 00:00:00 2001 From: Kristina Date: Mon, 23 Sep 2024 15:24:25 +0400 Subject: [PATCH 1/2] Add employee action to start conversation (#6687) Signed-off-by: Kristina Fefelova --- models/chunter/src/actions.ts | 13 +++ models/chunter/src/plugin.ts | 3 +- packages/ui/src/components/ModernTab.svelte | 2 + plugins/chunter-assets/lang/en.json | 3 +- plugins/chunter-assets/lang/es.json | 3 +- plugins/chunter-assets/lang/fr.json | 3 +- plugins/chunter-assets/lang/pt.json | 3 +- plugins/chunter-assets/lang/ru.json | 3 +- plugins/chunter-assets/lang/zh.json | 3 +- .../chat/create/CreateDirectChat.svelte | 80 ++-------------- plugins/chunter-resources/src/index.ts | 6 +- plugins/chunter-resources/src/utils.ts | 94 ++++++++++++++++++- plugins/chunter/src/index.ts | 3 +- .../src/components/sidebar/SidebarMini.svelte | 2 +- .../sidebar/widgets/WidgetsBar.svelte | 7 +- 15 files changed, 140 insertions(+), 88 deletions(-) diff --git a/models/chunter/src/actions.ts b/models/chunter/src/actions.ts index a7b7ab219f..4b33c7182f 100644 --- a/models/chunter/src/actions.ts +++ b/models/chunter/src/actions.ts @@ -19,6 +19,7 @@ import notification, { notificationActionTemplates } from '@hcengineering/model- import activity from '@hcengineering/activity' import workbench from '@hcengineering/model-workbench' import core from '@hcengineering/model-core' +import contact from '@hcengineering/contact' import chunter from './plugin' @@ -43,6 +44,18 @@ export function defineActions (builder: Builder): void { chunter.category.Chunter ) + createAction(builder, { + action: chunter.actionImpl.StartConversation, + label: chunter.string.StartConversation, + icon: chunter.icon.Thread, + input: 'focus', + category: chunter.category.Chunter, + target: contact.mixin.Employee, + context: { + mode: 'context', + group: 'associate' + } + }) defineMessageActions(builder) defineChannelActions(builder) } diff --git a/models/chunter/src/plugin.ts b/models/chunter/src/plugin.ts index c0fbc87557..8116ad3290 100644 --- a/models/chunter/src/plugin.ts +++ b/models/chunter/src/plugin.ts @@ -53,7 +53,8 @@ export default mergeIds(chunterId, chunter, { ReplyToThread: '' as ViewAction, OpenInSidebar: '' as ViewAction, TranslateMessage: '' as ViewAction, - ShowOriginalMessage: '' as ViewAction + ShowOriginalMessage: '' as ViewAction, + StartConversation: '' as ViewAction }, category: { Chunter: '' as Ref diff --git a/packages/ui/src/components/ModernTab.svelte b/packages/ui/src/components/ModernTab.svelte index 90b552fbf1..c9fb9e2a7f 100644 --- a/packages/ui/src/components/ModernTab.svelte +++ b/packages/ui/src/components/ModernTab.svelte @@ -148,6 +148,8 @@ } .icon { + writing-mode: initial; + text-orientation: initial; &.vertical { transform: rotate(90deg); text-orientation: upright; diff --git a/plugins/chunter-assets/lang/en.json b/plugins/chunter-assets/lang/en.json index 7d61091832..8412b7ca32 100644 --- a/plugins/chunter-assets/lang/en.json +++ b/plugins/chunter-assets/lang/en.json @@ -126,6 +126,7 @@ "TranslateMessage": "Translate message", "Translate": "Translate", "ShowOriginal": "Show original", - "Translating": "Translating..." + "Translating": "Translating...", + "StartConversation": "Start conversation" } } \ No newline at end of file diff --git a/plugins/chunter-assets/lang/es.json b/plugins/chunter-assets/lang/es.json index 1fef286c8a..027a3e2c10 100644 --- a/plugins/chunter-assets/lang/es.json +++ b/plugins/chunter-assets/lang/es.json @@ -126,6 +126,7 @@ "TranslateMessage": "Traducir mensaje", "Translate": "Traducir", "ShowOriginal": "Mostrar original", - "Translating": "Traduciendo..." + "Translating": "Traduciendo...", + "StartConversation": "Iniciar conversación" } } \ No newline at end of file diff --git a/plugins/chunter-assets/lang/fr.json b/plugins/chunter-assets/lang/fr.json index e5415a0cd1..f50055ed47 100644 --- a/plugins/chunter-assets/lang/fr.json +++ b/plugins/chunter-assets/lang/fr.json @@ -126,6 +126,7 @@ "TranslateMessage": "Traduire le message", "Translate": "Traduire", "ShowOriginal": "Afficher l'original", - "Translating": "Traduction en cours..." + "Translating": "Traduction en cours...", + "StartConversation": "Démarrer la conversation" } } \ No newline at end of file diff --git a/plugins/chunter-assets/lang/pt.json b/plugins/chunter-assets/lang/pt.json index 0b2c5a6425..fbfe71a7f0 100644 --- a/plugins/chunter-assets/lang/pt.json +++ b/plugins/chunter-assets/lang/pt.json @@ -126,6 +126,7 @@ "TranslateMessage": "Traduzir mensagem", "Translate": "Traduzir", "ShowOriginal": "Mostrar original", - "Translating": "A traduzir..." + "Translating": "A traduzir...", + "StartConversation": "Iniciar conversa" } } \ No newline at end of file diff --git a/plugins/chunter-assets/lang/ru.json b/plugins/chunter-assets/lang/ru.json index 0d62dcce64..febe44f00e 100644 --- a/plugins/chunter-assets/lang/ru.json +++ b/plugins/chunter-assets/lang/ru.json @@ -126,6 +126,7 @@ "TranslateMessage": "Перевести сообщение", "Translate": "Перевести", "ShowOriginal": "Показать оригинал", - "Translating": "Перевод..." + "Translating": "Перевод...", + "StartConversation": "Начать диалог" } } \ No newline at end of file diff --git a/plugins/chunter-assets/lang/zh.json b/plugins/chunter-assets/lang/zh.json index 84b7dbf3f8..80bfc8c339 100644 --- a/plugins/chunter-assets/lang/zh.json +++ b/plugins/chunter-assets/lang/zh.json @@ -126,6 +126,7 @@ "TranslateMessage": "翻译消息", "Translate": "翻译", "ShowOriginal": "显示原文", - "Translating": "翻译中..." + "Translating": "翻译中...", + "StartConversation": "开始对话" } } diff --git a/plugins/chunter-resources/src/components/chat/create/CreateDirectChat.svelte b/plugins/chunter-resources/src/components/chat/create/CreateDirectChat.svelte index 964c5cc822..0b5eeb277f 100644 --- a/plugins/chunter-resources/src/components/chat/create/CreateDirectChat.svelte +++ b/plugins/chunter-resources/src/components/chat/create/CreateDirectChat.svelte @@ -14,24 +14,20 @@ --> - + diff --git a/plugins/workbench-resources/src/components/sidebar/widgets/WidgetsBar.svelte b/plugins/workbench-resources/src/components/sidebar/widgets/WidgetsBar.svelte index 5f5717b4db..fbdb5d4b41 100644 --- a/plugins/workbench-resources/src/components/sidebar/widgets/WidgetsBar.svelte +++ b/plugins/workbench-resources/src/components/sidebar/widgets/WidgetsBar.svelte @@ -24,6 +24,7 @@ export let widgets: Widget[] = [] export let preferences: WidgetPreference[] = [] export let selected: Ref | undefined = undefined + export let roundBorder = false function handleAddWidget (): void { showPopup(AddWidgetsPopup, { widgets }) @@ -48,7 +49,7 @@ .filter((widget): widget is Widget => widget !== undefined && widget.type === WidgetType.Configurable) -
+
{#each fixedWidgets as widget} Date: Mon, 23 Sep 2024 18:24:40 +0700 Subject: [PATCH 2/2] fix: better handling png image size for scale < 2 (#6688) Signed-off-by: Alexander Onnikov --- .../src/components/FilePreview.svelte | 5 +++-- packages/presentation/src/image.ts | 21 +++++++++++-------- .../components/CollaborativeTextEditor.svelte | 4 ++-- .../src/components/StyledTextBox.svelte | 4 ++-- .../src/components/extension/imageExt.ts | 3 +++ .../components/extension/imageUploadExt.ts | 6 ++++-- .../src/components/viewer/ImageViewer.svelte | 19 ++++++++++------- 7 files changed, 38 insertions(+), 24 deletions(-) diff --git a/packages/presentation/src/components/FilePreview.svelte b/packages/presentation/src/components/FilePreview.svelte index 96d3eee38e..5c988b3c99 100644 --- a/packages/presentation/src/components/FilePreview.svelte +++ b/packages/presentation/src/components/FilePreview.svelte @@ -27,6 +27,7 @@ import { getFileUrl } from '../file' import { getPreviewType, previewTypes } from '../filetypes' + import { imageSizeToRatio } from '../image' import { BlobMetadata, FilePreviewExtension } from '../types' export let file: Ref @@ -68,8 +69,8 @@ return } const pR: number = mD?.pixelRatio ?? 1 - const fWidth: number = mD.originalWidth / pR - const fHeight: number = mD.originalHeight / pR + const fWidth: number = imageSizeToRatio(mD.originalWidth, pR) + const fHeight: number = imageSizeToRatio(mD.originalHeight, pR) let mHeight: number = 0 let scale: number = 1 if (fWidth > pWidth) { diff --git a/packages/presentation/src/image.ts b/packages/presentation/src/image.ts index cda525b48e..d5ff35337b 100644 --- a/packages/presentation/src/image.ts +++ b/packages/presentation/src/image.ts @@ -15,6 +15,11 @@ import extract from 'png-chunks-extract' +export function imageSizeToRatio (width: number, pixelRatio: number): number { + // consider pixel ratio < 2 as non retina and display them in original size + return pixelRatio < 2 ? width : Math.round(width / pixelRatio) +} + export async function getImageSize (file: Blob): Promise<{ width: number, height: number, pixelRatio: number }> { const size = isPng(file) ? await getPngImageSize(file) : undefined @@ -65,20 +70,18 @@ async function getPngImageSize (file: Blob): Promise<{ width: number, height: nu const idhrData = parseIHDR(new DataView(iHDRChunk.data.buffer)) const physData = parsePhys(new DataView(pHYsChunk.data.buffer)) - if (physData.unit === 0 && physData.ppux === physData.ppuy) { - const pixelRatio = Math.round(physData.ppux / 2834.5) - return { - width: idhrData.width, - height: idhrData.height, - pixelRatio - } + // Assuming pixels are square + // http://www.libpng.org/pub/png/spec/1.2/PNG-Decoders.html#D.Pixel-dimensions + const pixelRatio = Math.round(physData.ppux * 0.0254) / 72 + return { + width: idhrData.width, + height: idhrData.height, + pixelRatio } } catch (err) { console.error(err) return undefined } - - return undefined } // See http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html diff --git a/plugins/text-editor-resources/src/components/CollaborativeTextEditor.svelte b/plugins/text-editor-resources/src/components/CollaborativeTextEditor.svelte index 90eab040d5..304395eba2 100644 --- a/plugins/text-editor-resources/src/components/CollaborativeTextEditor.svelte +++ b/plugins/text-editor-resources/src/components/CollaborativeTextEditor.svelte @@ -17,7 +17,7 @@ -{#await p then blobRef} +{#await getBlobRef(value, name) then blobRef} {#if loading}