From d897fb553d5f9901bf2c8a0942e87e043788e1b2 Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Fri, 9 Jul 2021 20:26:20 -0400 Subject: Improve error when card has missing content (#1818) --- ext/js/display/display-anki.js | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/ext/js/display/display-anki.js b/ext/js/display/display-anki.js index 235149ad..b08dc952 100644 --- a/ext/js/display/display-anki.js +++ b/ext/js/display/display-anki.js @@ -368,12 +368,8 @@ class DisplayAnki { const {note, errors, requirements: outputRequirements} = await this._createNote(dictionaryEntry, mode, requirements); allErrors.push(...errors); - if (outputRequirements.length > 0) { - const error = new Error('The created card may not have some content'); - error.requirements = requirements; - error.outputRequirements = outputRequirements; - allErrors.push(error); - } + const error = this._getAddNoteRequirementsError(requirements, outputRequirements); + if (error !== null) { allErrors.push(error); } let noteId = null; let addNoteOkay = false; @@ -413,6 +409,29 @@ class DisplayAnki { } } + _getAddNoteRequirementsError(requirements, outputRequirements) { + if (outputRequirements.length === 0) { return null; } + + let count = 0; + for (const requirement of outputRequirements) { + const {type} = requirement; + switch (type) { + case 'audio': + case 'clipboardImage': + break; + default: + ++count; + break; + } + } + if (count === 0) { return null; } + + const error = new Error('The created card may not have some content'); + error.requirements = requirements; + error.outputRequirements = outputRequirements; + return error; + } + _showAnkiNoteErrors(errors) { if (this._ankiNoteNotificationEventListeners !== null) { this._ankiNoteNotificationEventListeners.removeAllEventListeners(); -- cgit v1.2.3