diff options
-rw-r--r-- | src/app/main.js | 19 | ||||
-rw-r--r-- | src/app/toast.js | 6 | ||||
-rw-r--r-- | src/index.js | 5 | ||||
-rw-r--r-- | src/lang/de.json | 6 | ||||
-rw-r--r-- | src/lang/en.json | 2 | ||||
-rw-r--r-- | src/lang/es.json | 6 | ||||
-rw-r--r-- | src/lang/fr.json | 4 |
7 files changed, 42 insertions, 6 deletions
diff --git a/src/app/main.js b/src/app/main.js index bd25071..9d59cbc 100644 --- a/src/app/main.js +++ b/src/app/main.js @@ -138,6 +138,25 @@ ipcRenderer.on("ns-update-event", (event, key) => { } }); +ipcRenderer.on("unknown-error", (event, err) => { + new Toast({ + timeout: 10000, + scheme: "error", + title: lang("gui.toast.title.unknown_error"), + description: lang("gui.toast.desc.unknown_error"), + callback: () => { + new Toast({ + timeout: 15000, + scheme: "error", + title: "", + description: err.stack.replaceAll("\n", "<br>") + }) + } + }) + + console.error(err.stack) +}) + let lastselected = ""; function select(entry) { let entries = document.querySelectorAll("#modsdiv .mod .modtext"); diff --git a/src/app/toast.js b/src/app/toast.js index 9cb8996..3bc1745 100644 --- a/src/app/toast.js +++ b/src/app/toast.js @@ -3,6 +3,7 @@ function Toast(properties) { fg: "#000000", bg: "#FFFFFF", timeout: 3000, + callback: () => {}, title: "Untitled Toast", description: "No description provided for toast", ...properties @@ -34,7 +35,10 @@ function Toast(properties) { el.style.background = toast.bg; el.id = id; - el.setAttribute("onclick", `dismissToast(${id})`); + el.addEventListener("click", () => { + dismissToast(id); + toast.callback(); + }) el.innerHTML = ` <div class="title">${toast.title}</div> diff --git a/src/index.js b/src/index.js index 02a7a60..ba08056 100644 --- a/src/index.js +++ b/src/index.js @@ -74,6 +74,11 @@ function start() { ipcMain.on("installed-mod", (event, modname) => {send("installed-mod", modname)}); ipcMain.on("no-internet", () => {send("no-internet")}); + process.on("uncaughtException", (err) => { + send("unknown-error", err); + console.error(err); + }); + // install calls ipcMain.on("install-from-path", (event, path) => {utils.mods.install(path)}); ipcMain.on("install-from-url", (event, url) => {utils.mods.installFromURL(url)}); diff --git a/src/lang/de.json b/src/lang/de.json index c92982b..03ad0c4 100644 --- a/src/lang/de.json +++ b/src/lang/de.json @@ -134,11 +134,13 @@ "gui.toast.title.installed": "Mod installiert!", "gui.toast.title.failed": "Fehler beim Installieren des Mods!", "gui.toast.title.malformed": "Fehlerhafte Ordnerstruktur!", - "gui.toast.title.duped": "Duplizierter Ordner name!", + "gui.toast.title.duped": "Duplizierter Ordner name!", + "gui.toast.title.unknown_error": "Unbekannter Fehler!", "gui.toast.desc.installed": "wurde installiert!", "gui.toast.desc.malformed": "hat eine fehlerhafte Ordnerstruktur, falls du der Entwickler bist, solltest du dies beheben.", "gui.toast.desc.failed": "Ein unbekannter Fehler ist aufgetaucht beim Installieren, die Schuld kann beim Autor liegen oder bei Viper selbst!", - "gui.toast.desc.duped": "hat mehrere Ordner in sich mit dem selben Namen, wodurch ein duplizierter Ordner ensteht! Falls du der Entwickler bist solltest du dies beheben!", + "gui.toast.desc.duped": "hat mehrere Ordner in sich mit dem selben Namen, wodurch ein duplizierter Ordner ensteht! Falls du der Entwickler bist solltest du dies beheben!", + "gui.toast.desc.unknown_error": "Ein unbekannter Fehler ist aufgetreten für mehr details drücken! Es wird empfohlen einen Screenshot von der detalierten Fehlernachricht zu machen wenn ein Bug-Report erstellt wird!", "gui.toast.noInternet.title": "Kein Internet", "gui.toast.noInternet.desc": "Viper funktioniert möglicherweise nicht korrekt", diff --git a/src/lang/en.json b/src/lang/en.json index aadcee0..4ba077a 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -136,10 +136,12 @@ "gui.toast.title.duped": "Duplicate folder names!", "gui.toast.title.failed": "Failed to install", "gui.toast.title.malformed": "Incorrect folder structure!", + "gui.toast.title.unknown_error": "Unknown Error!", "gui.toast.desc.installed": "has been installed successfully!", "gui.toast.desc.malformed": "has an incorrect folder structure, if you're the developer, you should fix this.", "gui.toast.desc.failed": "An unknown error occurred while trying to install the mod. This may be the author's fault, and it may also be Viper's fault.", "gui.toast.desc.duped": "has multiple mod folders in it, with the same name, causing duplicate folders, if you're the developer, you should fix this.", + "gui.toast.desc.unknown_error": "An unknown error occurred, click for more details. You may want to take a screenshot of the detailed error when filing a bug report.", "gui.toast.noInternet.title": "No Internet", "gui.toast.noInternet.desc": "Viper may not work properly.", diff --git a/src/lang/es.json b/src/lang/es.json index 68c15a4..bf109c1 100644 --- a/src/lang/es.json +++ b/src/lang/es.json @@ -130,11 +130,13 @@ "gui.toast.title.installed": "¡Modificación instalada!", "gui.toast.title.failed": "¡Falló al instalar!", "gui.toast.title.malformed": "¡Estructura de las carpetas incorrecta!", - "gui.toast.title.duped": "tiene varias carpetas de la modificación con el mismo nombre, lo que genera carpetas duplicadas. Si eres el desarrollador, deberías arreglar esto.", + "gui.toast.title.duped": "tiene varias carpetas de la modificación con el mismo nombre, lo que genera carpetas duplicadas. Si eres el desarrollador, deberías arreglar esto.", + "gui.toast.title.unknown_error": "¡Error desconocido!", "gui.toast.desc.installed": "¡Ha sido instalado exitosamente!", "gui.toast.desc.malformed": "tiene una estructura de carpetas incorrecta, si usted es el desarrollador, debe corregir esto.", "gui.toast.desc.failed": "Se produjo un error desconocido al intentar instalar la modificación. Esto puede ser culpa del autor de la modificación, y también puede ser culpa de Viper.", - "gui.toast.desc.duped": "¡Nombres de las carpetas duplicados!", + "gui.toast.desc.duped": "¡Nombres de las carpetas duplicados!", + "gui.toast.desc.unknown_error": "Ha ocurrido un error desconocido, presiona para más detalles. Recomendamos que tomes una captura de pantalla del error con sus detalles cuando reportes un error.", "gui.server.player": "jugador", "gui.server.players": "jugadores", diff --git a/src/lang/fr.json b/src/lang/fr.json index 069c3d5..6481a8b 100644 --- a/src/lang/fr.json +++ b/src/lang/fr.json @@ -133,13 +133,15 @@ "gui.gamepath.lost": "Le chemin du jeu ne peut être trouvé / n'existe plus !\n\nVeuillez vérifier que votre disqué est correctement monté, ou, si vous avez déplacé votre jeu, que vous avez mis à jour le chemin du dossier.\n\nViper ne fonctionnera pas correctement jusqu'au prochain redémarrage.", "gui.toast.title.installed": "Mod installé !", + "gui.toast.title.duped": "Nom de dossier dupliqué !", "gui.toast.title.failed": "L'installation a échoué", "gui.toast.title.malformed": "La structure du dossier du mod est incorrecte.", - "gui.toast.title.duped": "Nom de dossier dupliqué !", + "gui.toast.title.unknown_error": "Erreur inconnue", "gui.toast.desc.installed": "a été installé avec succès !", "gui.toast.desc.malformed": "a une structure de dossier incorrecte ; si vous êtes son développeur, vous devriez réparer ça.", "gui.toast.desc.failed": "Une erreur inconnue est survenue lors de l'installation du mod. Cela peut être du ressort de l'auteur du mod ou de Viper.", "gui.toast.desc.duped": "contient plusieurs dossiers ayant le même nom ; si vous êtes le développer, vous devriez réparer ceci.", + "gui.toast.desc.unknown_error": "Une erreur inconnue est survenue, cliquez pour plus de détails. Vous devriez prendre une capture d'écran de l'erreur si vous comptez créer un ticket.", "gui.toast.noInternet.title": "Pas de connexion Internet", "gui.toast.noInternet.desc": "Viper ne fonctionnera pas correctement tant que la connexion n'est pas rétablie.", |