Duplicate scope check all models (#1810)
* Add duplicateScopeCheckAllModels option to createNote * Add duplicateScopeCheckAllModels option * Add setting
This commit is contained in:
parent
d5320c71a6
commit
d058237ba7
@ -812,6 +812,7 @@
|
||||
"terms",
|
||||
"kanji",
|
||||
"duplicateScope",
|
||||
"duplicateScopeCheckAllModels",
|
||||
"checkForDuplicates",
|
||||
"fieldTemplates",
|
||||
"suspendNewCards",
|
||||
@ -910,6 +911,10 @@
|
||||
"default": "collection",
|
||||
"enum": ["collection", "deck", "deck-root"]
|
||||
},
|
||||
"duplicateScopeCheckAllModels": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"checkForDuplicates": {
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
|
@ -41,6 +41,7 @@ class AnkiNoteBuilder {
|
||||
requirements=[],
|
||||
checkForDuplicates=true,
|
||||
duplicateScope='collection',
|
||||
duplicateScopeCheckAllModels=false,
|
||||
resultOutputMode='split',
|
||||
glossaryLayoutMode='default',
|
||||
compactTags=false,
|
||||
@ -98,7 +99,8 @@ class AnkiNoteBuilder {
|
||||
duplicateScope,
|
||||
duplicateScopeOptions: {
|
||||
deckName: duplicateScopeDeckName,
|
||||
checkChildren: duplicateScopeCheckChildren
|
||||
checkChildren: duplicateScopeCheckChildren,
|
||||
checkAllModels: duplicateScopeCheckAllModels
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -856,7 +856,11 @@ class OptionsUtil {
|
||||
// Handlebars templates updated to use new media format.
|
||||
// Added {selection-text} field marker.
|
||||
// Added {sentence-furigana} field marker.
|
||||
// Added anki.duplicateScopeCheckAllModels.
|
||||
await this._applyAnkiFieldTemplatesPatch(options, '/data/templates/anki-field-templates-upgrade-v13.handlebars');
|
||||
for (const profile of options.profiles) {
|
||||
profile.options.anki.duplicateScopeCheckAllModels = false;
|
||||
}
|
||||
return options;
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ class DisplayAnki {
|
||||
this._glossaryLayoutMode = 'default';
|
||||
this._displayTags = 'never';
|
||||
this._duplicateScope = 'collection';
|
||||
this._duplicateScopeCheckAllModels = false;
|
||||
this._screenshotFormat = 'png';
|
||||
this._screenshotQuality = 100;
|
||||
this._scanLength = 10;
|
||||
@ -142,7 +143,7 @@ class DisplayAnki {
|
||||
_onOptionsUpdated({options}) {
|
||||
const {
|
||||
general: {resultOutputMode, glossaryLayoutMode, compactTags},
|
||||
anki: {tags, duplicateScope, suspendNewCards, checkForDuplicates, displayTags, kanji, terms, screenshot: {format, quality}},
|
||||
anki: {tags, duplicateScope, duplicateScopeCheckAllModels, suspendNewCards, checkForDuplicates, displayTags, kanji, terms, screenshot: {format, quality}},
|
||||
scanning: {length: scanLength}
|
||||
} = options;
|
||||
|
||||
@ -153,6 +154,7 @@ class DisplayAnki {
|
||||
this._glossaryLayoutMode = glossaryLayoutMode;
|
||||
this._displayTags = displayTags;
|
||||
this._duplicateScope = duplicateScope;
|
||||
this._duplicateScopeCheckAllModels = duplicateScopeCheckAllModels;
|
||||
this._screenshotFormat = format;
|
||||
this._screenshotQuality = quality;
|
||||
this._scanLength = scanLength;
|
||||
@ -561,6 +563,7 @@ class DisplayAnki {
|
||||
tags: this._noteTags,
|
||||
checkForDuplicates: this._checkForDuplicates,
|
||||
duplicateScope: this._duplicateScope,
|
||||
duplicateScopeCheckAllModels: this._duplicateScopeCheckAllModels,
|
||||
resultOutputMode: this._resultOutputMode,
|
||||
glossaryLayoutMode: this._glossaryLayoutMode,
|
||||
compactTags: this._compactTags,
|
||||
|
@ -1494,6 +1494,28 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="settings-item-children settings-item-children-group" id="anki-card-duplicate-options" hidden>
|
||||
<div class="settings-item">
|
||||
<div class="settings-item-inner">
|
||||
<div class="settings-item-left">
|
||||
<div class="settings-item-label">
|
||||
Check for duplicates across all models
|
||||
<a class="more-toggle more-only" data-parent-distance="4">(?)</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="settings-item-right">
|
||||
<label class="toggle"><input type="checkbox" data-setting="anki.duplicateScopeCheckAllModels"><span class="toggle-body"><span class="toggle-track"></span><span class="toggle-knob"></span></span></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="settings-item-children more" hidden>
|
||||
<p>
|
||||
By default, duplicate checks are only performed for notes created with the same model.
|
||||
Enabling this option will check for duplicates across <em>all</em> model types.
|
||||
</p>
|
||||
<p>
|
||||
<a class="more-toggle" data-parent-distance="3">Less…</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="settings-item">
|
||||
<div class="settings-item-inner settings-item-inner-wrappable">
|
||||
<div class="settings-item-left">
|
||||
|
@ -236,6 +236,7 @@ async function getRenderResults(dictionaryEntries, type, mode, template, AnkiNot
|
||||
tags: ['yomichan'],
|
||||
checkForDuplicates: true,
|
||||
duplicateScope: 'collection',
|
||||
duplicateScopeCheckAllModels: false,
|
||||
resultOutputMode: mode,
|
||||
glossaryLayoutMode: 'default',
|
||||
compactTags: false
|
||||
|
@ -444,6 +444,7 @@ function createProfileOptionsUpdatedTestData1() {
|
||||
terms: {deck: '', model: '', fields: {}},
|
||||
kanji: {deck: '', model: '', fields: {}},
|
||||
duplicateScope: 'collection',
|
||||
duplicateScopeCheckAllModels: false,
|
||||
displayTags: 'never',
|
||||
checkForDuplicates: true,
|
||||
fieldTemplates: null,
|
||||
|
Loading…
Reference in New Issue
Block a user