From f2bd0ec7bb7cd8abf351868929261026429c383a Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Fri, 15 Jul 2016 23:29:36 -0700 Subject: [PATCH] Add option to enable and disable audio playback --- ext/bg/js/options-form.js | 12 +++++---- ext/bg/js/options.js | 25 ++++++++--------- ext/bg/js/templates.js | 57 +++++++++++++++++++++------------------ ext/bg/options.html | 8 ++++++ ext/manifest.json | 2 +- tmpl/term.html | 2 ++ 6 files changed, 62 insertions(+), 44 deletions(-) diff --git a/ext/bg/js/options-form.js b/ext/bg/js/options-form.js index 5a5e8834..712b7243 100644 --- a/ext/bg/js/options-form.js +++ b/ext/bg/js/options-form.js @@ -40,11 +40,12 @@ function formToOptions(section, callback) { switch (section) { case 'general': - optsNew.scanLength = parseInt($('#scan-length').val()); - optsNew.activateOnStartup = $('#activate-on-startup').prop('checked'); - optsNew.loadEnamDict = $('#load-enamdict').prop('checked'); - optsNew.selectMatchedText = $('#select-matched-text').prop('checked'); - optsNew.enableAnkiConnect = $('#enable-anki-connect').prop('checked'); + optsNew.scanLength = parseInt($('#scan-length').val()); + optsNew.activateOnStartup = $('#activate-on-startup').prop('checked'); + optsNew.loadEnamDict = $('#load-enamdict').prop('checked'); + optsNew.selectMatchedText = $('#select-matched-text').prop('checked'); + optsNew.enableAudioPlayback = $('#enable-audio-playback').prop('checked'); + optsNew.enableAnkiConnect = $('#enable-anki-connect').prop('checked'); break; case 'anki': optsNew.ankiCardTags = $('#anki-card-tags').val().split(/[,; ]+/); @@ -169,6 +170,7 @@ $(document).ready(() => { $('#activate-on-startup').prop('checked', opts.activateOnStartup); $('#load-enamdict').prop('checked', opts.loadEnamDict); $('#select-matched-text').prop('checked', opts.selectMatchedText); + $('#enable-audio-playback').prop('checked', opts.enableAudioPlayback); $('#enable-anki-connect').prop('checked', opts.enableAnkiConnect); $('#anki-card-tags').val(opts.ankiCardTags.join(' ')); diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index eefba95e..18707e43 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -19,18 +19,19 @@ function sanitizeOptions(options) { const defaults = { - scanLength: 20, - activateOnStartup: false, - selectMatchedText: true, - loadEnamDict: false, - enableAnkiConnect: false, - ankiCardTags: ['yomichan'], - ankiVocabDeck: '', - ankiVocabModel: '', - ankiVocabFields: {}, - ankiKanjiDeck: '', - ankiKanjiModel: '', - ankiKanjiFields: {} + scanLength: 20, + activateOnStartup: false, + selectMatchedText: true, + loadEnamDict: false, + enableAudioPlayback: true, + enableAnkiConnect: false, + ankiCardTags: ['yomichan'], + ankiVocabDeck: '', + ankiVocabModel: '', + ankiVocabFields: {}, + ankiKanjiDeck: '', + ankiKanjiModel: '', + ankiKanjiFields: {} }; for (let key in defaults) { diff --git a/ext/bg/js/templates.js b/ext/bg/js/templates.js index b09c49dd..11529eff 100644 --- a/ext/bg/js/templates.js +++ b/ext/bg/js/templates.js @@ -93,18 +93,23 @@ templates['kanji-list.html'] = template({"1":function(container,depth0,helpers,p + ((stack1 = container.invokePartial(partials["footer.html"],depth0,{"name":"footer.html","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); },"usePartial":true,"useData":true,"useDepths":true}); templates['term.html'] = template({"1":function(container,depth0,helpers,partials,data,blockParams,depths) { - var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : {}; + var stack1, alias1=depth0 != null ? depth0 : {}; return "
\n \n" - + ((stack1 = helpers["if"].call(alias3,(depth0 != null ? depth0.enableAnkiConnect : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + + container.escapeExpression(container.lambda((depths[1] != null ? depths[1].sequence : depths[1]), depth0)) + + "\">\n" + + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.enableAudioPlayback : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.enableAnkiConnect : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + "
\n"; },"2":function(container,depth0,helpers,partials,data,blockParams,depths) { + var helper, alias1=container.escapeExpression; + + return " \n"; +},"4":function(container,depth0,helpers,partials,data,blockParams,depths) { var helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda; return " \n"; -},"4":function(container,depth0,helpers,partials,data) { +},"6":function(container,depth0,helpers,partials,data) { var stack1, helper, options, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, alias3="function", buffer = "
"; - stack1 = ((helper = (helper = helpers.kanjiLinks || (depth0 != null ? depth0.kanjiLinks : depth0)) != null ? helper : alias2),(options={"name":"kanjiLinks","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper)); + stack1 = ((helper = (helper = helpers.kanjiLinks || (depth0 != null ? depth0.kanjiLinks : depth0)) != null ? helper : alias2),(options={"name":"kanjiLinks","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data}),(typeof helper === alias3 ? helper.call(alias1,options) : helper)); if (!helpers.kanjiLinks) { stack1 = helpers.blockHelperMissing.call(depth0,stack1,options)} if (stack1 != null) { buffer += stack1; } return buffer + "" + container.escapeExpression(((helper = (helper = helpers.reading || (depth0 != null ? depth0.reading : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"reading","hash":{},"data":data}) : helper))) + "
\n"; -},"5":function(container,depth0,helpers,partials,data) { +},"7":function(container,depth0,helpers,partials,data) { var helper; return container.escapeExpression(((helper = (helper = helpers.expression || (depth0 != null ? depth0.expression : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"expression","hash":{},"data":data}) : helper))); -},"7":function(container,depth0,helpers,partials,data) { +},"9":function(container,depth0,helpers,partials,data) { var stack1, helper, options, buffer = "
"; - stack1 = ((helper = (helper = helpers.kanjiLinks || (depth0 != null ? depth0.kanjiLinks : depth0)) != null ? helper : helpers.helperMissing),(options={"name":"kanjiLinks","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data}),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},options) : helper)); + stack1 = ((helper = (helper = helpers.kanjiLinks || (depth0 != null ? depth0.kanjiLinks : depth0)) != null ? helper : helpers.helperMissing),(options={"name":"kanjiLinks","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data}),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},options) : helper)); if (!helpers.kanjiLinks) { stack1 = helpers.blockHelperMissing.call(depth0,stack1,options)} if (stack1 != null) { buffer += stack1; } return buffer + "
\n"; -},"9":function(container,depth0,helpers,partials,data) { +},"11":function(container,depth0,helpers,partials,data) { var stack1; return "
\n" - + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.rules : depth0),{"name":"each","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") + + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.rules : depth0),{"name":"each","hash":{},"fn":container.program(12, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") + "
\n"; -},"10":function(container,depth0,helpers,partials,data) { +},"12":function(container,depth0,helpers,partials,data) { var stack1; return " " + container.escapeExpression(container.lambda(depth0, depth0)) + " " - + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(data && data.last),{"name":"unless","hash":{},"fn":container.program(11, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") + + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(data && data.last),{"name":"unless","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") + "\n"; -},"11":function(container,depth0,helpers,partials,data) { - return "«"; },"13":function(container,depth0,helpers,partials,data) { + return "«"; +},"15":function(container,depth0,helpers,partials,data) { var stack1; return "
\n" - + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tags : depth0),{"name":"each","hash":{},"fn":container.program(14, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") + + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tags : depth0),{"name":"each","hash":{},"fn":container.program(16, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") + "
\n"; -},"14":function(container,depth0,helpers,partials,data) { +},"16":function(container,depth0,helpers,partials,data) { var helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression; return " " + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data}) : helper))) + "\n"; -},"16":function(container,depth0,helpers,partials,data) { +},"18":function(container,depth0,helpers,partials,data) { return "
  • " + container.escapeExpression(container.lambda(depth0, depth0)) + "
  • \n"; @@ -178,13 +183,13 @@ templates['term.html'] = template({"1":function(container,depth0,helpers,partial return "
    \n" + ((stack1 = helpers["with"].call(alias1,(depth0 != null ? depth0.options : depth0),{"name":"with","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + "\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.reading : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0, blockParams, depths),"inverse":container.program(7, data, 0, blockParams, depths),"data":data})) != null ? stack1 : "") + + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.reading : depth0),{"name":"if","hash":{},"fn":container.program(6, data, 0, blockParams, depths),"inverse":container.program(9, data, 0, blockParams, depths),"data":data})) != null ? stack1 : "") + "\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.rules : depth0),{"name":"if","hash":{},"fn":container.program(9, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.rules : depth0),{"name":"if","hash":{},"fn":container.program(11, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + "\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.tags : depth0),{"name":"if","hash":{},"fn":container.program(13, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.tags : depth0),{"name":"if","hash":{},"fn":container.program(15, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + "\n
    \n
      \n" - + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.glossary : depth0),{"name":"each","hash":{},"fn":container.program(16, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.glossary : depth0),{"name":"each","hash":{},"fn":container.program(18, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") + "
    \n
    \n
    \n"; },"useData":true,"useDepths":true}); templates['term-list.html'] = template({"1":function(container,depth0,helpers,partials,data,blockParams,depths) { diff --git a/ext/bg/options.html b/ext/bg/options.html index 86739c58..1200b6c0 100644 --- a/ext/bg/options.html +++ b/ext/bg/options.html @@ -57,6 +57,14 @@ +
    +
    +
    + +
    +
    +
    +
    diff --git a/ext/manifest.json b/ext/manifest.json index 1a1cce38..0c315fa4 100644 --- a/ext/manifest.json +++ b/ext/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Yomichan", - "version": "0.4", + "version": "0.5", "description": "Japanese dictionary with Anki integration", "icons": {"16": "img/icon16.png", "48": "img/icon48.png", "128": "img/icon128.png"}, diff --git a/tmpl/term.html b/tmpl/term.html index ccc321e6..6296a2f3 100644 --- a/tmpl/term.html +++ b/tmpl/term.html @@ -1,7 +1,9 @@
    {{#with options}}
    + {{#if enableAudioPlayback}} + {{/if}} {{#if enableAnkiConnect}}