aboutsummaryrefslogtreecommitdiff
path: root/ext/js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js')
-rw-r--r--ext/js/display/display-anki.js31
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();