diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-12-15 00:02:52 -0500 |
---|---|---|
committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-12-29 12:33:03 -0500 |
commit | d2ae7364bb969afbaa86fed28c8c756c0a19ab02 (patch) | |
tree | f392267da47282aefb5d06faa91f9e556be7de4a /ext/bg/js/settings/anki-templates.js | |
parent | 3033fea31e4bc9ba7198d2d31d6f6046813926d1 (diff) |
Update anki-templates.js to control the value of fieldTemplates
Also assigns a value of null when using the default value
Diffstat (limited to 'ext/bg/js/settings/anki-templates.js')
-rw-r--r-- | ext/bg/js/settings/anki-templates.js | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/ext/bg/js/settings/anki-templates.js b/ext/bg/js/settings/anki-templates.js index 0e6e3cbd..281383a7 100644 --- a/ext/bg/js/settings/anki-templates.js +++ b/ext/bg/js/settings/anki-templates.js @@ -42,10 +42,22 @@ function ankiTemplatesInitialize() { node.addEventListener('click', onAnkiTemplateMarkerClicked, false); } - $('#field-templates').on('change', (e) => onAnkiTemplatesValidateCompile(e)); + $('#field-templates').on('change', (e) => onAnkiFieldTemplatesChanged(e)); $('#field-template-render').on('click', (e) => onAnkiTemplateRender(e)); $('#field-templates-reset').on('click', (e) => onAnkiFieldTemplatesReset(e)); $('#field-templates-reset-confirm').on('click', (e) => onAnkiFieldTemplatesResetConfirm(e)); + + ankiTemplatesUpdateValue(); +} + +async function ankiTemplatesUpdateValue() { + const optionsContext = getOptionsContext(); + const options = await apiOptionsGet(optionsContext); + let templates = options.anki.fieldTemplates; + if (typeof templates !== 'string') { templates = profileOptionsGetDefaultFieldTemplates(); } + $('#field-templates').val(templates); + + onAnkiTemplatesValidateCompile(); } const ankiTemplatesValidateGetDefinition = (() => { @@ -91,6 +103,24 @@ async function ankiTemplatesValidate(infoNode, field, mode, showSuccessResult, i } } +async function onAnkiFieldTemplatesChanged(e) { + // Get value + let templates = e.currentTarget.value; + if (templates === profileOptionsGetDefaultFieldTemplates()) { + // Default + templates = null; + } + + // Overwrite + const optionsContext = getOptionsContext(); + const options = await getOptionsMutable(optionsContext); + options.anki.fieldTemplates = templates; + await settingsSaveOptions(); + + // Compile + onAnkiTemplatesValidateCompile(); +} + function onAnkiTemplatesValidateCompile() { const infoNode = document.querySelector('#field-template-compile-result'); ankiTemplatesValidate(infoNode, '{expression}', 'term-kanji', false, true); |