diff options
Diffstat (limited to 'ext/bg/js/settings/anki.js')
-rw-r--r-- | ext/bg/js/settings/anki.js | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/ext/bg/js/settings/anki.js b/ext/bg/js/settings/anki.js index ae380fdb..aa89c6bf 100644 --- a/ext/bg/js/settings/anki.js +++ b/ext/bg/js/settings/anki.js @@ -17,6 +17,9 @@ */ +let _ankiDataPopulated = false; + + function ankiSpinnerShow(show) { const spinner = $('#anki-spinner'); if (show) { @@ -165,11 +168,7 @@ function onAnkiMarkerClicked(e) { async function onAnkiModelChanged(e) { try { - if (!e.originalEvent) { - return; - } - - const element = $(this); + const element = $(e.currentTarget); const tab = element.closest('.tab-pane'); const tabId = tab.attr('id'); @@ -188,3 +187,30 @@ async function onAnkiModelChanged(e) { ankiSpinnerShow(false); } } + + +function ankiInitialize() { + for (const node of document.querySelectorAll('#anki-terms-model,#anki-kanji-model')) { + node.addEventListener('change', (e) => onAnkiModelChanged(e), false); + } +} + +async function onAnkiOptionsChanged(options) { + if (!options.anki.enable) { + _ankiDataPopulated = false; + return; + } + + if (_ankiDataPopulated) { return; } + + try { + ankiSpinnerShow(true); + await ankiDeckAndModelPopulate(options); + ankiErrorShow(); + _ankiDataPopulated = true; + } catch (e) { + ankiErrorShow(e); + } finally { + ankiSpinnerShow(false); + } +} |