diff options
Diffstat (limited to 'ext/js')
-rw-r--r-- | ext/js/display/display-anki.js | 31 |
1 files 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(); |