From a5aff370e4b514218b4984de270ee8e082a5c333 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sun, 15 Jan 2017 11:37:05 -0800 Subject: don't wipe options when disabling anki support (fixes #27) --- ext/bg/js/options-form.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/ext/bg/js/options-form.js b/ext/bg/js/options-form.js index 2a49a148..af918aa6 100644 --- a/ext/bg/js/options-form.js +++ b/ext/bg/js/options-form.js @@ -24,7 +24,7 @@ function yomichan() { return chrome.extension.getBackgroundPage().yomichan; } -function getFormValues() { +function getFormData() { return optionsLoad().then(optionsOld => { const optionsNew = $.extend(true, {}, optionsOld); @@ -42,12 +42,14 @@ function getFormValues() { optionsNew.anki.enable = $('#anki-enable').prop('checked'); optionsNew.anki.tags = $('#card-tags').val().split(/[,; ]+/); optionsNew.anki.sentenceExt = parseInt($('#sentence-detection-extent').val(), 10); - optionsNew.anki.terms.deck = $('#anki-terms-deck').val(); - optionsNew.anki.terms.model = $('#anki-terms-model').val(); - optionsNew.anki.terms.fields = fieldsToDict($('#terms .anki-field-value')); - optionsNew.anki.kanji.deck = $('#anki-kanji-deck').val(); - optionsNew.anki.kanji.model = $('#anki-kanji-model').val(); - optionsNew.anki.kanji.fields = fieldsToDict($('#kanji .anki-field-value')); + if (optionsOld.anki.enable) { + optionsNew.anki.terms.deck = $('#anki-terms-deck').val(); + optionsNew.anki.terms.model = $('#anki-terms-model').val(); + optionsNew.anki.terms.fields = ankiFieldsToDict($('#terms .anki-field-value')); + optionsNew.anki.kanji.deck = $('#anki-kanji-deck').val(); + optionsNew.anki.kanji.model = $('#anki-kanji-model').val(); + optionsNew.anki.kanji.fields = ankiFieldsToDict($('#kanji .anki-field-value')); + } $('.dict-group').each((index, element) => { const dictionary = $(element); @@ -290,7 +292,7 @@ function showAnkiError(error) { } } -function fieldsToDict(selection) { +function ankiFieldsToDict(selection) { const result = {}; selection.each((index, element) => { result[$(element).data('field')] = $(element).val(); @@ -369,7 +371,7 @@ function onAnkiModelChanged(e) { showAnkiSpinner(true); const element = $(this); - getFormValues().then(({optionsNew, optionsOld}) => { + getFormData().then(({optionsNew, optionsOld}) => { const tab = element.closest('.tab-pane'); const tabId = tab.attr('id'); @@ -389,7 +391,7 @@ function onOptionsChanged(e) { return; } - getFormValues().then(({optionsNew, optionsOld}) => { + getFormData().then(({optionsNew, optionsOld}) => { return optionsSave(optionsNew).then(() => { yomichan().setOptions(optionsNew); updateVisibility(optionsNew); -- cgit v1.2.3