diff options
author | Kuuuube <61125188+Kuuuube@users.noreply.github.com> | 2024-04-16 12:25:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-16 16:25:59 +0000 |
commit | 669d277a95908cec7b35e098b3252ae38db05df0 (patch) | |
tree | 54dffc4d9c566b941eea67ad8a070d967ed3c717 | |
parent | 6e1cb327226d1f9dfc71ebff8063834a18db9dff (diff) |
Fix duplicate check not working across note types (#830)24.4.16.0
* Fix duplicate check not working across note types
* Add invalidNoteId
---------
Co-authored-by: James Maa <jmaa@berkeley.edu>
-rw-r--r-- | ext/js/background/backend.js | 6 | ||||
-rw-r--r-- | ext/js/data/anki-util.js | 2 | ||||
-rw-r--r-- | ext/js/display/display-anki.js | 8 |
3 files changed, 13 insertions, 3 deletions
diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index deaef4a0..df0378b3 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -28,7 +28,7 @@ import {logErrorLevelToNumber} from '../core/log-utilities.js'; import {log} from '../core/log.js'; import {isObjectNotArray} from '../core/object-utilities.js'; import {clone, deferPromise, promiseTimeout} from '../core/utilities.js'; -import {isNoteDataValid} from '../data/anki-util.js'; +import {invalidNoteId, isNoteDataValid} from '../data/anki-util.js'; import {arrayBufferToBase64} from '../data/array-buffer-util.js'; import {OptionsUtil} from '../data/options-util.js'; import {getAllPermissions, hasPermissions, hasRequiredPermissionsForOptions} from '../data/permissions-util.js'; @@ -595,6 +595,10 @@ export class Backend { const valid = isNoteDataValid(note); + if (isDuplicate && duplicateNoteIds[originalIndices.indexOf(i)].length === 0) { + duplicateNoteIds[originalIndices.indexOf(i)] = [invalidNoteId]; + } + const noteIds = isDuplicate ? duplicateNoteIds[originalIndices.indexOf(i)] : null; const noteInfos = (fetchAdditionalInfo && noteIds !== null && noteIds.length > 0) ? await this._anki.notesInfo(noteIds) : []; diff --git a/ext/js/data/anki-util.js b/ext/js/data/anki-util.js index eea3fb8b..a063980f 100644 --- a/ext/js/data/anki-util.js +++ b/ext/js/data/anki-util.js @@ -82,3 +82,5 @@ export function isNoteDataValid(note) { Object.entries(fields).length > 0 ); } + +export const invalidNoteId = -1; diff --git a/ext/js/display/display-anki.js b/ext/js/display/display-anki.js index fd3e8dcd..dc676702 100644 --- a/ext/js/display/display-anki.js +++ b/ext/js/display/display-anki.js @@ -21,7 +21,7 @@ import {log} from '../core/log.js'; import {toError} from '../core/to-error.js'; import {deferPromise} from '../core/utilities.js'; import {AnkiNoteBuilder} from '../data/anki-note-builder.js'; -import {isNoteDataValid} from '../data/anki-util.js'; +import {invalidNoteId, isNoteDataValid} from '../data/anki-util.js'; import {PopupMenu} from '../dom/popup-menu.js'; import {querySelectorNotNull} from '../dom/query-selector.js'; import {TemplateRendererProxy} from '../templates/template-renderer-proxy.js'; @@ -425,7 +425,11 @@ export class DisplayAnki { if (Array.isArray(noteIds) && noteIds.length > 0) { if (allNoteIds === null) { allNoteIds = new Set(); } - for (const noteId of noteIds) { allNoteIds.add(noteId); } + for (const noteId of noteIds) { + if (noteId !== invalidNoteId) { + allNoteIds.add(noteId); + } + } } if (displayTags !== 'never' && Array.isArray(noteInfos)) { |