From 81ca0a3776cc5e3d15dd693a1b41e64ed010b44e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 24 Oct 2024 18:47:16 +0300 Subject: [PATCH] client: Improve logging for basic sync crash --- src/public/app/services/bundle.js | 1 + src/public/app/widgets/basic_widget.js | 23 +++++++++++++++++++-- src/public/translations/en/translation.json | 3 ++- src/public/translations/es/translation.json | 3 +-- src/public/translations/fr/translation.json | 3 +-- src/public/translations/ro/translation.json | 3 ++- 6 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/public/app/services/bundle.js b/src/public/app/services/bundle.js index 51348111a..72636e7e5 100644 --- a/src/public/app/services/bundle.js +++ b/src/public/app/services/bundle.js @@ -75,6 +75,7 @@ async function getWidgetBundlesByParent() { try { widget = await executeBundle(bundle); + widget._noteId = bundle.noteId; widgetsByParent.add(widget); } catch (e) { diff --git a/src/public/app/widgets/basic_widget.js b/src/public/app/widgets/basic_widget.js index b60a74e8c..7c7c08c1a 100644 --- a/src/public/app/widgets/basic_widget.js +++ b/src/public/app/widgets/basic_widget.js @@ -1,4 +1,5 @@ import Component from "../components/component.js"; +import froca from "../services/froca.js"; import { t } from "../services/i18n.js"; import toastService from "../services/toast.js"; @@ -85,11 +86,29 @@ class BasicWidget extends Component { try { this.doRender(); } catch (e) { + console.log("Got issue in widget ", this); + console.error(e); + + let noteId = this._noteId; + if (this._noteId) { + froca.getNote(noteId, true).then((note) => { + toastService.showPersistent({ + title: t("toast.widget-error.title"), + icon: "alert", + message: t("toast.widget-error.message-custom", { + id: noteId, + title: note.title, + message: e.message + }) + }); + }); + return; + } + toastService.showPersistent({ title: t("toast.widget-error.title"), icon: "alert", - message: t("toast.widget-error.message", { - title: this.widgetTitle, + message: t("toast.widget-error.message-unknown", { message: e.message }) }); diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index 35fb226e5..40891d333 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -16,7 +16,8 @@ }, "widget-error": { "title": "Failed to initialize a widget", - "message": "Widget with title \"{{title}}\" could not be initialized due to:\n\n{{message}}" + "message-custom": "Custom widget from note with ID \"{{id}}\", titled \"{{title}}\" could not be initialized due to:\n\n{{message}}", + "message-unknown": "Unknown widget could not be initialized due to:\n\n{{message}}" } }, "add_link": { diff --git a/src/public/translations/es/translation.json b/src/public/translations/es/translation.json index e2c438475..df9386e77 100644 --- a/src/public/translations/es/translation.json +++ b/src/public/translations/es/translation.json @@ -15,8 +15,7 @@ "message": "Ha ocurrido un error crítico que previene que el cliente de la aplicación inicie:\n\n{{message}}\n\nMuy probablemente es causado por un script que falla de forma inesperada. Intente iniciar la aplicación en modo seguro y atienda el error." }, "widget-error": { - "title": "No se pudo inicializar un widget", - "message": "Widget con título \"{{title}}\" no pudo ser inicializado debido a:\n\n{{message}}" + "title": "No se pudo inicializar un widget" } }, "add_link": { diff --git a/src/public/translations/fr/translation.json b/src/public/translations/fr/translation.json index f95d27bec..4ff9b9920 100644 --- a/src/public/translations/fr/translation.json +++ b/src/public/translations/fr/translation.json @@ -15,8 +15,7 @@ "message": "Une erreur critique s'est produite qui empêche l'application client de démarrer :\n\n{{message}}\n\nCeci est probablement dû à un échec inattendu d'un script. Essayez de démarrer l'application en mode sans échec et de résoudre le problème." }, "widget-error": { - "title": "Impossible d'initialiser un widget", - "message": "Le widget portant le titre \"{{title}}\" n'a pas pu être initialisé en raison de :\n\n{{message}}" + "title": "Impossible d'initialiser un widget" } }, "add_link": { diff --git a/src/public/translations/ro/translation.json b/src/public/translations/ro/translation.json index a6bed6d62..51f09a9e1 100644 --- a/src/public/translations/ro/translation.json +++ b/src/public/translations/ro/translation.json @@ -1190,7 +1190,8 @@ }, "widget-error": { "message": "Widget-ul intitulat „{{title}}” nu a putut fi inițializat din cauza:\n\n{{message}}", - "title": "Eroare la inițializarea unui widget" + "title": "Eroare la inițializarea unui widget", + "message-custom": "Widget-ul personalizat din notița cu ID-ul „{{id}}”, întitulată ”{{title}}” nu a putut fi inițializată din cauza:\n\n{{message}}" } }, "tray": {