mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-09 19:27:44 +02:00
fix: show collaborator connection errors (#9259)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
This commit is contained in:
@@ -72,6 +72,7 @@
|
||||
"SetTextColor": "Nastavit barvu textu",
|
||||
"ConvertToLinkPreview": "Zobrazit jako odkaz",
|
||||
"ConvertToEmbedPreview": "Zobrazit jako náhled obsahu",
|
||||
"UnableToLoadEmbeddedContent": "Náhled odkazu nelze načíst kvůli nastavení oprávnění nebo nepodporovanému obsahu"
|
||||
"UnableToLoadEmbeddedContent": "Náhled odkazu nelze načíst kvůli nastavení oprávnění nebo nepodporovanému obsahu",
|
||||
"CannotConnectToCollaborationService": "Nelze se připojit k službě spolupráce"
|
||||
}
|
||||
}
|
||||
@@ -71,6 +71,7 @@
|
||||
"SetTextColor": "Textfarbe ändern",
|
||||
"ConvertToLinkPreview": "Als Link anzeigen",
|
||||
"ConvertToEmbedPreview": "Als Inhaltsvorschau anzeigen",
|
||||
"UnableToLoadEmbeddedContent": "Die Linkvorschau konnte aufgrund von Berechtigungseinstellungen oder nicht unterstütztem Inhalt nicht geladen werden"
|
||||
"UnableToLoadEmbeddedContent": "Die Linkvorschau konnte aufgrund von Berechtigungseinstellungen oder nicht unterstütztem Inhalt nicht geladen werden",
|
||||
"CannotConnectToCollaborationService": "Kann keine Verbindung zum Kollaborationsdienst herstellen"
|
||||
}
|
||||
}
|
||||
@@ -73,6 +73,7 @@
|
||||
|
||||
"ConvertToLinkPreview": "Show as a link",
|
||||
"ConvertToEmbedPreview": "Show as a content preview",
|
||||
"UnableToLoadEmbeddedContent": "Link preview couldn't be loaded due to permission settings or unsupported content"
|
||||
"UnableToLoadEmbeddedContent": "Link preview couldn't be loaded due to permission settings or unsupported content",
|
||||
"CannotConnectToCollaborationService": "Cannot connect to collaboration service"
|
||||
}
|
||||
}
|
||||
@@ -62,6 +62,7 @@
|
||||
"DrawingBoard": "Tablero de dibujos",
|
||||
"ConvertToLinkPreview": "Mostrar como enlace",
|
||||
"ConvertToEmbedPreview": "Mostrar como vista previa de contenido",
|
||||
"UnableToLoadEmbeddedContent": "No se pudo cargar la vista previa del enlace debido a la configuración de permisos o contenido no compatible"
|
||||
"UnableToLoadEmbeddedContent": "No se pudo cargar la vista previa del enlace debido a la configuración de permisos o contenido no compatible",
|
||||
"CannotConnectToCollaborationService": "No se puede conectar con el colaborador"
|
||||
}
|
||||
}
|
||||
@@ -62,6 +62,7 @@
|
||||
"DrawingBoard": "Tableau de dessin",
|
||||
"ConvertToLinkPreview": "Afficher comme lien",
|
||||
"ConvertToEmbedPreview": "Afficher comme aperçu de contenu",
|
||||
"UnableToLoadEmbeddedContent": "L’aperçu du lien n’a pas pu être chargé en raison des paramètres d’autorisation ou d’un contenu non pris en charge"
|
||||
"UnableToLoadEmbeddedContent": "L’aperçu du lien n’a pas pu être chargé en raison des paramètres d’autorisation ou d’un contenu non pris en charge",
|
||||
"CannotConnectToCollaborationService": "Impossible de se connecter au collaborateur"
|
||||
}
|
||||
}
|
||||
@@ -71,6 +71,7 @@
|
||||
"SetTextColor": "Cambia il colore del testo",
|
||||
"ConvertToLinkPreview": "Mostra come link",
|
||||
"ConvertToEmbedPreview": "Mostra come anteprima del contenuto",
|
||||
"UnableToLoadEmbeddedContent": "Impossibile caricare l'anteprima del link a causa delle impostazioni dei permessi o di contenuto non supportato"
|
||||
"UnableToLoadEmbeddedContent": "Impossibile caricare l'anteprima del link a causa delle impostazioni dei permessi o di contenuto non supportato",
|
||||
"CannotConnectToCollaborationService": "Impossibile connettersi al servizio di collaborazione"
|
||||
}
|
||||
}
|
||||
@@ -73,6 +73,7 @@
|
||||
|
||||
"ConvertToLinkPreview": "リンクとして表示",
|
||||
"ConvertToEmbedPreview": "コンテンツプレビューとして表示",
|
||||
"UnableToLoadEmbeddedContent": "リンクのプレビューを読み込めません。権限設定または非対応のコンテンツが原因です"
|
||||
"UnableToLoadEmbeddedContent": "リンクのプレビューを読み込めません。権限設定または非対応のコンテンツが原因です",
|
||||
"CannotConnectToCollaborationService": "コラボレーションサービスに接続できません"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,6 +62,7 @@
|
||||
"DrawingBoard": "Quadro de desenho",
|
||||
"ConvertToLinkPreview": "Mostrar como link",
|
||||
"ConvertToEmbedPreview": "Mostrar como pré-visualização de conteúdo",
|
||||
"UnableToLoadEmbeddedContent": "Não foi possível carregar a pré-visualização do link devido às permissões ou a conteúdo não suportado"
|
||||
"UnableToLoadEmbeddedContent": "Não foi possível carregar a pré-visualização do link devido às permissões ou a conteúdo não suportado",
|
||||
"CannotConnectToCollaborationService": "Não foi possível conectar ao serviço de colaboração"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
"SetTextColor": "Изменить цвет текста",
|
||||
"ConvertToLinkPreview": "Показать как ссылку",
|
||||
"ConvertToEmbedPreview": "Показать как превью контента",
|
||||
"UnableToLoadEmbeddedContent": "Не удалось загрузить превью ссылки из-за настроек доступа или неподдерживаемого содержимого"
|
||||
"UnableToLoadEmbeddedContent": "Не удалось загрузить превью ссылки из-за настроек доступа или неподдерживаемого содержимого",
|
||||
"CannotConnectToCollaborationService": "Не удалось подключиться к сервису совместной работы"
|
||||
}
|
||||
}
|
||||
@@ -65,6 +65,7 @@
|
||||
|
||||
"ConvertToLinkPreview": "显示为链接",
|
||||
"ConvertToEmbedPreview": "显示为内容预览",
|
||||
"UnableToLoadEmbeddedContent": "由于权限设置或不支持的内容,无法加载链接预览"
|
||||
"UnableToLoadEmbeddedContent": "由于权限设置或不支持的内容,无法加载链接预览",
|
||||
"CannotConnectToCollaborationService": "无法连接到协作者"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,8 +152,6 @@
|
||||
|
||||
let editor: Editor
|
||||
let element: HTMLElement
|
||||
let textToolbarElement: HTMLElement
|
||||
let imageToolbarElement: HTMLElement
|
||||
let editorPopupContainer: HTMLElement
|
||||
|
||||
let placeHolderStr: string = ''
|
||||
@@ -242,10 +240,6 @@
|
||||
needFocus = false
|
||||
}
|
||||
|
||||
function handleFocus (): void {
|
||||
needFocus = true
|
||||
}
|
||||
|
||||
$: if (editor !== undefined) {
|
||||
// When the content is invalid, we don't want to emit an update
|
||||
// Preventing synchronization of the invalid content
|
||||
@@ -253,9 +247,6 @@
|
||||
editor.setEditable(editable, emitUpdate)
|
||||
}
|
||||
|
||||
// TODO: should be inside the editor
|
||||
$: showToolbar = canShowPopups
|
||||
|
||||
const optionalExtensions: AnyExtension[] = []
|
||||
|
||||
if (attachFile !== undefined) {
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
//
|
||||
|
||||
import { textEditorId } from '@hcengineering/text-editor'
|
||||
import { plugin } from '@hcengineering/platform'
|
||||
import { type IntlString, plugin } from '@hcengineering/platform'
|
||||
|
||||
export default plugin(textEditorId, {})
|
||||
export default plugin(textEditorId, {
|
||||
string: {
|
||||
CannotConnectToCollaborationService: '' as IntlString
|
||||
}
|
||||
})
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
|
||||
import { type Blob, type CollaborativeDoc, type Ref, generateId } from '@hcengineering/core'
|
||||
import { encodeDocumentId } from '@hcengineering/collaborator-client'
|
||||
import { getMetadata } from '@hcengineering/platform'
|
||||
import { OK, Severity, Status, getMetadata, setPlatformStatus } from '@hcengineering/platform'
|
||||
import presentation from '@hcengineering/presentation'
|
||||
import textEditor from '@hcengineering/text-editor'
|
||||
import { Doc as Ydoc } from 'yjs'
|
||||
|
||||
import { CloudCollabProvider } from './cloud'
|
||||
import plugin from '../plugin'
|
||||
|
||||
import { HocuspocusCollabProvider } from './hocuspocus'
|
||||
import { IndexeddbProvider } from './indexeddb'
|
||||
import { type Provider } from './types'
|
||||
@@ -36,28 +36,30 @@ export function createLocalProvider (ydoc: Ydoc, doc: CollaborativeDoc): Provide
|
||||
}
|
||||
|
||||
export function createRemoteProvider (ydoc: Ydoc, doc: CollaborativeDoc, content: Ref<Blob> | null): Provider {
|
||||
const collaborator = getMetadata(textEditor.metadata.Collaborator)
|
||||
|
||||
const token = getMetadata(presentation.metadata.Token) ?? ''
|
||||
const collaboratorUrl = getMetadata(presentation.metadata.CollaboratorUrl) ?? ''
|
||||
|
||||
const documentId = getDocumentId(doc)
|
||||
|
||||
return collaborator === 'cloud'
|
||||
? new CloudCollabProvider({
|
||||
url: collaboratorUrl,
|
||||
name: documentId,
|
||||
document: ydoc,
|
||||
content,
|
||||
token
|
||||
})
|
||||
: new HocuspocusCollabProvider({
|
||||
url: collaboratorUrl,
|
||||
name: documentId,
|
||||
document: ydoc,
|
||||
token,
|
||||
parameters: { content }
|
||||
})
|
||||
const provider = new HocuspocusCollabProvider({
|
||||
url: collaboratorUrl,
|
||||
name: documentId,
|
||||
document: ydoc,
|
||||
token,
|
||||
parameters: { content },
|
||||
onConnect: () => {
|
||||
void setPlatformStatus(OK)
|
||||
},
|
||||
onClose: (data) => {
|
||||
if (data.event.code === 1006) {
|
||||
console.error('Failed to connect to collaborator', data.event)
|
||||
const status = new Status(Severity.ERROR, plugin.string.CannotConnectToCollaborationService, {})
|
||||
void setPlatformStatus(status)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return provider
|
||||
}
|
||||
|
||||
export const createTiptapCollaborationData = (
|
||||
|
||||
Reference in New Issue
Block a user