diff options
author | Eloy Robillard <eloy.robillard@gmail.com> | 2024-02-15 04:02:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-15 03:02:36 +0000 |
commit | 7a4096240ce4faf70a785d047945388baa0daab3 (patch) | |
tree | 841da38533391a095fdb932c528c4b5c3366ba1b /ext/js/display | |
parent | 043ac79203abbc9c7f3aa971e2de8ddedb3c0e90 (diff) |
Show all duplicate notes on click (#636)
* Show all duplicate notes on click
* Change 'notesView' to 'viewNotes'
* Replace api.noteView with api.viewNotes
* Update "viewNote" action to "viewNotes" in options util
* Update options-util test with "viewNotes" action
* Replace uses of "viewNote" with "viewNotes"
* Replace _viewNote with _viewNotes
* Rename /*ViewNote*/ methods to /*ViewNotes*/
Diffstat (limited to 'ext/js/display')
-rw-r--r-- | ext/js/display/display-anki.js | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/ext/js/display/display-anki.js b/ext/js/display/display-anki.js index 665521dd..4766f1ae 100644 --- a/ext/js/display/display-anki.js +++ b/ext/js/display/display-anki.js @@ -99,11 +99,11 @@ export class DisplayAnki { /** @type {(event: MouseEvent) => void} */ this._onNoteAddBind = this._onNoteAdd.bind(this); /** @type {(event: MouseEvent) => void} */ - this._onViewNoteButtonClickBind = this._onViewNoteButtonClick.bind(this); + this._onViewNotesButtonClickBind = this._onViewNotesButtonClick.bind(this); /** @type {(event: MouseEvent) => void} */ - this._onViewNoteButtonContextMenuBind = this._onViewNoteButtonContextMenu.bind(this); + this._onViewNotesButtonContextMenuBind = this._onViewNotesButtonContextMenu.bind(this); /** @type {(event: import('popup-menu').MenuCloseEvent) => void} */ - this._onViewNoteButtonMenuCloseBind = this._onViewNoteButtonMenuClose.bind(this); + this._onViewNotesButtonMenuCloseBind = this._onViewNotesButtonMenuClose.bind(this); } /** */ @@ -114,7 +114,7 @@ export class DisplayAnki { ['addNoteKanji', () => { this._tryAddAnkiNoteForSelectedEntry('kanji'); }], ['addNoteTermKanji', () => { this._tryAddAnkiNoteForSelectedEntry('term-kanji'); }], ['addNoteTermKana', () => { this._tryAddAnkiNoteForSelectedEntry('term-kana'); }], - ['viewNote', this._viewNoteForSelectedEntry.bind(this)] + ['viewNotes', this._viewNotesForSelectedEntry.bind(this)] ]); /* eslint-enable @stylistic/no-multi-spaces */ this._display.on('optionsUpdated', this._onOptionsUpdated.bind(this)); @@ -249,9 +249,9 @@ export class DisplayAnki { eventListeners.addEventListener(node, 'click', this._onNoteAddBind); } for (const node of element.querySelectorAll('.action-button[data-action=view-note]')) { - eventListeners.addEventListener(node, 'click', this._onViewNoteButtonClickBind); - eventListeners.addEventListener(node, 'contextmenu', this._onViewNoteButtonContextMenuBind); - eventListeners.addEventListener(node, 'menuClose', this._onViewNoteButtonMenuCloseBind); + eventListeners.addEventListener(node, 'click', this._onViewNotesButtonClickBind); + eventListeners.addEventListener(node, 'contextmenu', this._onViewNotesButtonContextMenuBind); + eventListeners.addEventListener(node, 'menuClose', this._onViewNotesButtonMenuCloseBind); } } @@ -777,34 +777,34 @@ export class DisplayAnki { /** * @param {MouseEvent} e */ - _onViewNoteButtonClick(e) { + _onViewNotesButtonClick(e) { const element = /** @type {HTMLElement} */ (e.currentTarget); e.preventDefault(); if (e.shiftKey) { - this._showViewNoteMenu(element); + this._showViewNotesMenu(element); } else { - this._viewNote(element); + this._viewNotes(element); } } /** * @param {MouseEvent} e */ - _onViewNoteButtonContextMenu(e) { + _onViewNotesButtonContextMenu(e) { const element = /** @type {HTMLElement} */ (e.currentTarget); e.preventDefault(); - this._showViewNoteMenu(element); + this._showViewNotesMenu(element); } /** * @param {import('popup-menu').MenuCloseEvent} e */ - _onViewNoteButtonMenuClose(e) { + _onViewNotesButtonMenuClose(e) { const {detail: {action, item}} = e; switch (action) { - case 'viewNote': + case 'viewNotes': if (item !== null) { - this._viewNote(item); + this._viewNotes(item); } break; } @@ -848,11 +848,11 @@ export class DisplayAnki { /** * @param {HTMLElement} node */ - async _viewNote(node) { + async _viewNotes(node) { const noteIds = this._getNodeNoteIds(node); if (noteIds.length === 0) { return; } try { - await this._display.application.api.noteView(noteIds[0], this._noteGuiMode, false); + await this._display.application.api.viewNotes(noteIds, this._noteGuiMode, false); } catch (e) { const displayErrors = ( toError(e).message === 'Mode not supported' ? @@ -867,7 +867,7 @@ export class DisplayAnki { /** * @param {HTMLElement} node */ - _showViewNoteMenu(node) { + _showViewNotesMenu(node) { const noteIds = this._getNodeNoteIds(node); if (noteIds.length === 0) { return; } @@ -883,7 +883,7 @@ export class DisplayAnki { /** @type {Element} */ const label = querySelectorNotNull(item, '.popup-menu-item-label'); label.textContent = `Note ${i + 1}: ${noteId}`; - item.dataset.menuAction = 'viewNote'; + item.dataset.menuAction = 'viewNotes'; item.dataset.noteIds = `${noteId}`; menuBodyNode.appendChild(item); } @@ -920,12 +920,14 @@ export class DisplayAnki { return entry !== null ? entry.querySelector('.action-button[data-action=view-note]') : null; } - /** */ - _viewNoteForSelectedEntry() { + /** + * Shows notes for selected pop-up entry when "View Notes" hotkey is used. + */ + _viewNotesForSelectedEntry() { const index = this._display.selectedIndex; const button = this._getViewNoteButton(index); if (button !== null) { - this._viewNote(button); + this._viewNotes(button); } } |