diff options
Diffstat (limited to 'ext/bg')
-rw-r--r-- | ext/bg/data/options-schema.json | 9 | ||||
-rw-r--r-- | ext/bg/js/anki-note-builder.js | 9 | ||||
-rw-r--r-- | ext/bg/js/options.js | 3 | ||||
-rw-r--r-- | ext/bg/js/settings/anki-templates-controller.js | 4 | ||||
-rw-r--r-- | ext/bg/search.html | 2 | ||||
-rw-r--r-- | ext/bg/settings.html | 31 |
6 files changed, 35 insertions, 23 deletions
diff --git a/ext/bg/data/options-schema.json b/ext/bg/data/options-schema.json index edb30074..2da48041 100644 --- a/ext/bg/data/options-schema.json +++ b/ext/bg/data/options-schema.json @@ -94,7 +94,7 @@ "popupScaleRelativeToVisualViewport", "showGuide", "compactTags", - "compactGlossaries", + "glossaryLayoutMode", "mainDictionary", "popupTheme", "popupOuterTheme", @@ -198,9 +198,10 @@ "type": "boolean", "default": false }, - "compactGlossaries": { - "type": "boolean", - "default": false + "glossaryLayoutMode": { + "type": "string", + "enum": ["default", "compact"], + "default": "default" }, "mainDictionary": { "type": "string" diff --git a/ext/bg/js/anki-note-builder.js b/ext/bg/js/anki-note-builder.js index d1e918c9..33cd3a0b 100644 --- a/ext/bg/js/anki-note-builder.js +++ b/ext/bg/js/anki-note-builder.js @@ -34,7 +34,7 @@ class AnkiNoteBuilder { checkForDuplicates=true, duplicateScope='collection', resultOutputMode='split', - compactGlossaries=false, + glossaryLayoutMode='default', compactTags=false, modeOptions: {fields, deck, model}, audioDetails=null, @@ -71,7 +71,7 @@ class AnkiNoteBuilder { } }; - const data = this._createNoteData(definition, mode, context, resultOutputMode, compactGlossaries, compactTags); + const data = this._createNoteData(definition, mode, context, resultOutputMode, glossaryLayoutMode, compactTags); const formattedFieldValuePromises = []; for (const [, fieldValue] of fieldEntries) { const formattedFieldValuePromise = this._formatField(fieldValue, data, templates, errors); @@ -105,7 +105,7 @@ class AnkiNoteBuilder { // Private - _createNoteData(definition, mode, context, resultOutputMode, compactGlossaries, compactTags) { + _createNoteData(definition, mode, context, resultOutputMode, glossaryLayoutMode, compactTags) { const pitches = DictionaryDataUtil.getPitchAccentInfos(definition); const pitchCount = pitches.reduce((i, v) => i + v.pitches.length, 0); return { @@ -118,7 +118,8 @@ class AnkiNoteBuilder { modeTermKanji: mode === 'term-kanji', modeTermKana: mode === 'term-kana', modeKanji: mode === 'kanji', - compactGlossaries, + compactGlossaries: (glossaryLayoutMode === 'compact'), + glossaryLayoutMode, compactTags, context }; diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index e4f6c8e4..dcc8471a 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -614,10 +614,13 @@ class OptionsUtil { // Updated handlebars templates to include "conjugation" definition. // Added global option showPopupPreview. // Added anki.checkForDuplicates. + // Added general.glossaryLayoutMode; removed general.compactGlossaries. await this._addFieldTemplatesToOptions(options, '/bg/data/anki-field-templates-upgrade-v6.handlebars'); options.global.showPopupPreview = false; for (const profile of options.profiles) { profile.options.anki.checkForDuplicates = true; + profile.options.general.glossaryLayoutMode = (profile.options.general.compactGlossaries ? 'compact' : 'default'); + delete profile.options.general.compactGlossaries; const fieldTemplates = profile.options.anki.fieldTemplates; if (typeof fieldTemplates === 'string') { profile.options.anki.fieldTemplates = this._updateVersion6AnkiTemplatesCompactTags(fieldTemplates); diff --git a/ext/bg/js/settings/anki-templates-controller.js b/ext/bg/js/settings/anki-templates-controller.js index 35a08476..3ac4fa9e 100644 --- a/ext/bg/js/settings/anki-templates-controller.js +++ b/ext/bg/js/settings/anki-templates-controller.js @@ -184,14 +184,14 @@ class AnkiTemplatesController { const ankiNoteBuilder = new AnkiNoteBuilder({ renderTemplate: this._renderTemplate.bind(this) }); - const {general: {resultOutputMode, compactGlossaries, compactTags}} = options; + const {general: {resultOutputMode, glossaryLayoutMode, compactTags}} = options; const note = await ankiNoteBuilder.createNote({ definition, mode, context, templates, resultOutputMode, - compactGlossaries, + glossaryLayoutMode, compactTags, modeOptions: { fields: {field}, diff --git a/ext/bg/search.html b/ext/bg/search.html index 3588d871..c0f98d8c 100644 --- a/ext/bg/search.html +++ b/ext/bg/search.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="en" data-yomichan-page="search"> +<html lang="en" data-page-type="popup"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> diff --git a/ext/bg/settings.html b/ext/bg/settings.html index d3b13354..5083a6bc 100644 --- a/ext/bg/settings.html +++ b/ext/bg/settings.html @@ -145,10 +145,6 @@ </div> <div class="checkbox"> - <label><input type="checkbox" id="compact-glossaries" data-setting="general.compactGlossaries"> Compact glossaries</label> - </div> - - <div class="checkbox"> <label><input type="checkbox" id="show-advanced-options" data-setting="general.showAdvanced" data-transform-pre="setDocumentAttribute" data-transform-post="setDocumentAttribute" data-document-attribute="data-options-general-show-advanced"> Show advanced options</label> </div> @@ -206,14 +202,6 @@ </div> <div class="form-group"> - <label for="popup-display-mode">Popup display mode</label> - <select class="form-control" id="popup-display-mode" data-setting="general.popupDisplayMode"> - <option value="default">Default</option> - <option value="full-width">Full width</option> - </select> - </div> - - <div class="form-group"> <label for="popup-scaling-factor">Popup size multiplier</label> <input type="number" min="0" id="popup-scaling-factor" data-setting="general.popupScalingFactor" class="form-control"> </div> @@ -287,6 +275,25 @@ <div class="form-group"> <div class="row"> <div class="col-xs-6"> + <label for="popup-display-mode">Popup display mode</label> + <select class="form-control" id="popup-display-mode" data-setting="general.popupDisplayMode"> + <option value="default">Default</option> + <option value="full-width">Full width</option> + </select> + </div> + <div class="col-xs-6"> + <label for="glossary-layout-mode">Glossary layout mode</label> + <select class="form-control" id="glossary-layout-mode" data-setting="general.glossaryLayoutMode"> + <option value="default">Default</option> + <option value="compact">Compact</option> + </select> + </div> + </div> + </div> + + <div class="form-group"> + <div class="row"> + <div class="col-xs-6"> <label for="popup-theme">Popup theme</label> <select class="form-control" id="popup-theme" data-setting="general.popupTheme"> <option value="default">Light</option> |