diff options
Diffstat (limited to 'ext/bg/js/options-form.js')
| -rw-r--r-- | ext/bg/js/options-form.js | 98 | 
1 files changed, 49 insertions, 49 deletions
| diff --git a/ext/bg/js/options-form.js b/ext/bg/js/options-form.js index f53808e8..fcb3d50f 100644 --- a/ext/bg/js/options-form.js +++ b/ext/bg/js/options-form.js @@ -25,29 +25,29 @@ function yomichan() {  }  function getFormValues() { -    return loadOptions().then(optsOld => { +    return optionsLoad().then(optsOld => {          const optsNew = $.extend({}, optsOld); -        optsNew.activateOnStartup = $('#activate-on-startup').prop('checked'); -        optsNew.enableAudioPlayback = $('#enable-audio-playback').prop('checked'); -        optsNew.enableSoftKatakanaSearch = $('#enable-soft-katakana-search').prop('checked'); -        optsNew.groupTermResults = $('#group-term-results').prop('checked'); -        optsNew.showAdvancedOptions = $('#show-advanced-options').prop('checked'); - -        optsNew.holdShiftToScan = $('#hold-shift-to-scan').prop('checked'); -        optsNew.selectMatchedText = $('#select-matched-text').prop('checked'); -        optsNew.scanDelay = parseInt($('#scan-delay').val(), 10); -        optsNew.scanLength = parseInt($('#scan-length').val(), 10); - -        optsNew.ankiEnable = $('#anki-enable').prop('checked'); -        optsNew.ankiCardTags = $('#anki-card-tags').val().split(/[,; ]+/); -        optsNew.sentenceExtent = parseInt($('#sentence-extent').val(), 10); -        optsNew.ankiTermDeck = $('#anki-term-deck').val(); -        optsNew.ankiTermModel = $('#anki-term-model').val(); -        optsNew.ankiTermFields = fieldsToDict($('#term .anki-field-value')); -        optsNew.ankiKanjiDeck = $('#anki-kanji-deck').val(); -        optsNew.ankiKanjiModel = $('#anki-kanji-model').val(); -        optsNew.ankiKanjiFields = fieldsToDict($('#kanji .anki-field-value')); +        optsNew.general.autoStart = $('#activate-on-startup').prop('checked'); +        optsNew.general.audioPlayback = $('#enable-audio-playback').prop('checked'); +        optsNew.general.softKatakana = $('#enable-soft-katakana-search').prop('checked'); +        optsNew.general.groupResults = $('#group-term-results').prop('checked'); +        optsNew.general.showAdvanced = $('#show-advanced-options').prop('checked'); + +        optsNew.scanning.requireShift = $('#hold-shift-to-scan').prop('checked'); +        optsNew.scanning.selectText = $('#select-matched-text').prop('checked'); +        optsNew.scanning.delay = parseInt($('#scan-delay').val(), 10); +        optsNew.scanning.length = parseInt($('#scan-length').val(), 10); + +        optsNew.anki.enable = $('#anki-enable').prop('checked'); +        optsNew.anki.tags = $('#anki-card-tags').val().split(/[,; ]+/); +        optsNew.anki.sentenceExt = parseInt($('#sentence-extent').val(), 10); +        optsNew.anki.terms.deck = $('#anki-term-deck').val(); +        optsNew.anki.terms.model = $('#anki-term-model').val(); +        optsNew.anki.terms.fields = fieldsToDict($('#term .anki-field-value')); +        optsNew.anki.kanji.deck = $('#anki-kanji-deck').val(); +        optsNew.anki.kanji.model = $('#anki-kanji-model').val(); +        optsNew.anki.kanji.fields = fieldsToDict($('#kanji .anki-field-value'));          $('.dict-group').each((index, element) => {              const dictionary = $(element); @@ -65,13 +65,13 @@ function getFormValues() {  }  function updateVisibility(opts) { -    if (opts.ankiEnable) { +    if (opts.anki.enable) {          $('#anki-general').show();      } else {          $('#anki-general').hide();      } -    if (opts.showAdvancedOptions) { +    if (opts.general.showAdvanced) {          $('.options-advanced').show();      } else {          $('.options-advanced').hide(); @@ -81,21 +81,21 @@ function updateVisibility(opts) {  $(document).ready(() => {      Handlebars.partials = Handlebars.templates; -    loadOptions().then(opts => { -        $('#activate-on-startup').prop('checked', opts.activateOnStartup); -        $('#enable-audio-playback').prop('checked', opts.enableAudioPlayback); -        $('#enable-soft-katakana-search').prop('checked', opts.enableSoftKatakanaSearch); -        $('#group-term-results').prop('checked', opts.groupTermResults); -        $('#show-advanced-options').prop('checked', opts.showAdvancedOptions); +    optionsLoad().then(opts => { +        $('#activate-on-startup').prop('checked', opts.general.autoStart); +        $('#enable-audio-playback').prop('checked', opts.general.audioPlayback); +        $('#enable-soft-katakana-search').prop('checked', opts.general.softKatakana); +        $('#group-term-results').prop('checked', opts.general.groupResults); +        $('#show-advanced-options').prop('checked', opts.general.showAdvanced); -        $('#hold-shift-to-scan').prop('checked', opts.holdShiftToScan); -        $('#select-matched-text').prop('checked', opts.selectMatchedText); -        $('#scan-delay').val(opts.scanDelay); -        $('#scan-length').val(opts.scanLength); +        $('#hold-shift-to-scan').prop('checked', opts.scanning.requireShift); +        $('#select-matched-text').prop('checked', opts.scanning.selectText); +        $('#scan-delay').val(opts.scanning.delay); +        $('#scan-length').val(opts.scanning.length); -        $('#anki-enable').prop('checked', opts.ankiEnable); -        $('#anki-card-tags').val(opts.ankiCardTags.join(' ')); -        $('#sentence-extent').val(opts.sentenceExtent); +        $('#anki-enable').prop('checked', opts.anki.enable); +        $('#anki-card-tags').val(opts.anki.tags.join(' ')); +        $('#sentence-extent').val(opts.anki.sentenceExt);          $('input, select').not('.anki-model').change(onOptionsChanged);          $('.anki-model').change(onAnkiModelChanged); @@ -189,7 +189,7 @@ function onDictionaryPurge(e) {          showDictionarySpinner(false);          dictControls.show();          dictProgress.hide(); -        return loadOptions().then(opts => populateDictionaries(opts)); +        return optionsLoad().then(opts => populateDictionaries(opts));      });  } @@ -212,7 +212,7 @@ function onDictionaryDelete() {          showDictionarySpinner(false);          dictProgress.hide();          dictControls.show(); -        return loadOptions().then(opts => populateDictionaries(opts)); +        return optionsLoad().then(opts => populateDictionaries(opts));      });  } @@ -229,10 +229,10 @@ function onDictionaryImport() {      setProgress(0.0); -    loadOptions().then(opts => { +    optionsLoad().then(opts => {          database().importDictionary(dictUrl.val(), (total, current) => setProgress(current / total * 100.0)).then(summary => {              opts.dictionaries[summary.title] = {enableTerms: summary.hasTerms, enableKanji: summary.hasKanji}; -            return saveOptions(opts).then(() => yomichan().setOptions(opts)); +            return optionsSave(opts).then(() => yomichan().setOptions(opts));          }).then(() => {              return populateDictionaries(opts);          }).catch(error => { @@ -303,8 +303,8 @@ function fieldsToDict(selection) {  function modelIdToFieldOptKey(id) {      return { -        'anki-term-model': 'ankiTermFields', -        'anki-kanji-model': 'ankiKanjiFields' +        'anki-term-model': 'anki.terms.fields', +        'anki-kanji-model': 'anki.kanji.fields'      }[id];  } @@ -344,16 +344,16 @@ function populateAnkiDeckAndModel(opts) {          ankiDeck.find('option').remove();          deckNames.forEach(name => ankiDeck.append($('<option/>', {value: name, text: name}))); -        $('#anki-term-deck').val(opts.ankiTermDeck); -        $('#anki-kanji-deck').val(opts.ankiKanjiDeck); +        $('#anki-term-deck').val(opts.anki.terms.deck); +        $('#anki-kanji-deck').val(opts.anki.kanji.deck);          const ankiModel = $('.anki-model');          ankiModel.find('option').remove();          modelNames.forEach(name => ankiModel.append($('<option/>', {value: name, text: name})));          return Promise.all([ -            populateAnkiFields($('#anki-term-model').val(opts.ankiTermModel), opts), -            populateAnkiFields($('#anki-kanji-model').val(opts.ankiKanjiModel), opts) +            populateAnkiFields($('#anki-term-model').val(opts.anki.terms.model), opts), +            populateAnkiFields($('#anki-kanji-model').val(opts.anki.kanji.model), opts)          ]);      }).then(() => {          ankiFormat.show(); @@ -403,7 +403,7 @@ function onAnkiModelChanged(e) {      getFormValues().then(({optsNew, optsOld}) => {          optsNew[modelIdToFieldOptKey($(this).id)] = {};          populateAnkiFields($(this), optsNew).then(() => { -            saveOptions(optsNew).then(() => yomichan().setOptions(optsNew)); +            optionsSave(optsNew).then(() => yomichan().setOptions(optsNew));          }).catch(error => {              showAnkiError(error);          }).then(() => { @@ -418,10 +418,10 @@ function onOptionsChanged(e) {      }      getFormValues().then(({optsNew, optsOld}) => { -        return saveOptions(optsNew).then(() => { +        return optionsSave(optsNew).then(() => {              yomichan().setOptions(optsNew);              updateVisibility(optsNew); -            if (optsNew.ankiEnable !== optsOld.ankiEnable) { +            if (optsNew.anki.enable !== optsOld.anki.enable) {                  showAnkiError(null);                  showAnkiSpinner(true);                  return populateAnkiDeckAndModel(optsNew); |