diff --git a/ext/bg/data/options-schema.json b/ext/bg/data/options-schema.json index 159ca009..edb30074 100644 --- a/ext/bg/data/options-schema.json +++ b/ext/bg/data/options-schema.json @@ -671,6 +671,7 @@ "terms", "kanji", "duplicateScope", + "checkForDuplicates", "fieldTemplates" ], "properties": { @@ -771,6 +772,10 @@ "default": "collection", "enum": ["collection", "deck", "deck-root"] }, + "checkForDuplicates": { + "type": "boolean", + "default": true + }, "fieldTemplates": { "type": ["string", "null"], "default": null diff --git a/ext/bg/js/anki-note-builder.js b/ext/bg/js/anki-note-builder.js index aa76ecd9..4ac597da 100644 --- a/ext/bg/js/anki-note-builder.js +++ b/ext/bg/js/anki-note-builder.js @@ -31,6 +31,7 @@ class AnkiNoteBuilder { context, templates, tags=[], + checkForDuplicates=true, duplicateScope='collection', resultOutputMode='split', compactGlossaries=false, @@ -60,6 +61,7 @@ class AnkiNoteBuilder { deckName: deck, modelName: model, options: { + allowDuplicate: !checkForDuplicates, duplicateScope, duplicateScopeOptions: { deckName: duplicateScopeDeckName, diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index 0edbb82a..bb90e655 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -613,8 +613,12 @@ class OptionsUtil { // Version 6 changes: // Updated handlebars templates to include "conjugation" definition. // Added global option showPopupPreview. + // Added anki.checkForDuplicates. await this._addFieldTemplatesToOptions(options, '/bg/data/anki-field-templates-upgrade-v6.handlebars'); options.global.showPopupPreview = false; + for (const profile of options.profiles) { + profile.options.anki.checkForDuplicates = true; + } return options; } } diff --git a/ext/bg/settings.html b/ext/bg/settings.html index 67a2d75c..6ec89269 100644 --- a/ext/bg/settings.html +++ b/ext/bg/settings.html @@ -921,6 +921,11 @@ +
+
+
+
+