diff options
| author | Alex Yatskov <alex@foosoft.net> | 2016-05-03 20:25:35 -0700 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2016-05-03 20:25:35 -0700 | 
| commit | 1e2a249c537ba4b0eb4b07b855511dec20d45c88 (patch) | |
| tree | ffb91c4f1282e89e5af09deb8ddf288557c0e75f | |
| parent | 2b3550bd337381ba602df9d89e143e2927df9797 (diff) | |
Show action icons
| -rw-r--r-- | ext/bg/js/templates.js | 74 | ||||
| -rw-r--r-- | ext/fg/css/frame.css | 12 | ||||
| -rw-r--r-- | ext/manifest.json | 5 | ||||
| -rw-r--r-- | util/tmpl/term-list.html | 2 | ||||
| -rw-r--r-- | util/tmpl/term.html | 8 | 
5 files changed, 71 insertions, 30 deletions
| diff --git a/ext/bg/js/templates.js b/ext/bg/js/templates.js index 834f67d0..6ac80841 100644 --- a/ext/bg/js/templates.js +++ b/ext/bg/js/templates.js @@ -74,49 +74,65 @@ templates['kanji-list.html'] = template({"1":function(container,depth0,helpers,p      + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.defs : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")      + ((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}); -templates['term.html'] = template({"1":function(container,depth0,helpers,partials,data) { +templates['term.html'] = template({"1":function(container,depth0,helpers,partials,data,blockParams,depths) { +    var stack1, alias1=depth0 != null ? depth0 : {}; + +  return "        " +    + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.vocabExp : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") +    + "\n        " +    + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.vocabReading : 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) { +    return "<a href=\"#\" title=\"Add as expression\"><img src=\"" +    + container.escapeExpression(container.lambda((depths[1] != null ? depths[1].root : depths[1]), depth0)) +    + "/img/icon_add_expression.png\"></a>"; +},"4":function(container,depth0,helpers,partials,data,blockParams,depths) { +    return "<a href=\"#\" title=\"Add as reading\"><img src=\"" +    + container.escapeExpression(container.lambda((depths[1] != null ? depths[1].root : depths[1]), depth0)) +    + "/img/icon_add_reading.png\"></a>"; +},"6":function(container,depth0,helpers,partials,data) {      var stack1, helper, options, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, alias3="function", buffer =     "    <div class=\"term-expression\"><ruby>"; -  stack1 = ((helper = (helper = helpers.kanjiLinks || (depth0 != null ? depth0.kanjiLinks : depth0)) != null ? helper : alias2),(options={"name":"kanjiLinks","hash":{},"fn":container.program(2, 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 + "<rt>"      + 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)))      + "</rt></ruby></div>\n"; -},"2":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))); -},"4":function(container,depth0,helpers,partials,data) { +},"9":function(container,depth0,helpers,partials,data) {      var stack1, helper, options, buffer =     "    <div class=\"term-expression\">"; -  stack1 = ((helper = (helper = helpers.kanjiLinks || (depth0 != null ? depth0.kanjiLinks : depth0)) != null ? helper : helpers.helperMissing),(options={"name":"kanjiLinks","hash":{},"fn":container.program(2, 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 + "</div>\n"; -},"6":function(container,depth0,helpers,partials,data) { +},"11":function(container,depth0,helpers,partials,data) {      var stack1;    return "    <div class=\"term-rules\">\n" -    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.rules : depth0),{"name":"each","hash":{},"fn":container.program(7, 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 : "")      + "    </div>\n"; -},"7":function(container,depth0,helpers,partials,data) { +},"12":function(container,depth0,helpers,partials,data) {      var stack1;    return "        <span class=\"rule\">"      + container.escapeExpression(container.lambda(depth0, depth0))      + "</span> " -    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(data && data.last),{"name":"unless","hash":{},"fn":container.program(8, 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"; -},"8":function(container,depth0,helpers,partials,data) { +},"13":function(container,depth0,helpers,partials,data) {      return "«"; -},"10":function(container,depth0,helpers,partials,data) { +},"15":function(container,depth0,helpers,partials,data) {      var stack1;    return "    <div class=\"term-tags\">\n" -    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tags : depth0),{"name":"each","hash":{},"fn":container.program(11, 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 : "")      + "    </div>\n"; -},"11":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 "        <span class=\"tag tag-" @@ -126,32 +142,36 @@ templates['term.html'] = template({"1":function(container,depth0,helpers,partial      + "\">"      + 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)))      + "</span>\n"; -},"13":function(container,depth0,helpers,partials,data) { +},"18":function(container,depth0,helpers,partials,data) {      return "            <li><span>"      + container.escapeExpression(container.lambda(depth0, depth0))      + "</span></li>\n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { -    var stack1, alias1=depth0 != null ? depth0 : {}; +},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data,blockParams,depths) { +    var stack1, helper, alias1=depth0 != null ? depth0 : {}; -  return "<div class=\"term-definition\">\n" -    + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.reading : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(4, data, 0),"data":data})) != null ? stack1 : "") +  return "<div class=\"term-definition\">\n    <div class=\"action-icons\">\n" +    + ((stack1 = helpers["with"].call(alias1,(depth0 != null ? depth0.addable : depth0),{"name":"with","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "") +    + "        <a href=\"#\" title=\"Copy definition\"><img src=\"" +    + container.escapeExpression(((helper = (helper = helpers.root || (depth0 != null ? depth0.root : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(alias1,{"name":"root","hash":{},"data":data}) : helper))) +    + "/img/icon_copy_definition.png\"></a>\n    </div>\n\n" +    + ((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(6, data, 0),"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(10, data, 0),"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    <div class=\"term-glossary\">\n        <ol>\n" -    + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.glossary : depth0),{"name":"each","hash":{},"fn":container.program(13, data, 0),"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 : "")      + "        </ol>\n    </div>\n</div>\n"; -},"useData":true}); -templates['term-list.html'] = template({"1":function(container,depth0,helpers,partials,data) { +},"useData":true,"useDepths":true}); +templates['term-list.html'] = template({"1":function(container,depth0,helpers,partials,data,blockParams,depths) {      var stack1; -  return ((stack1 = container.invokePartial(partials["term.html"],depth0,{"name":"term.html","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { +  return ((stack1 = container.invokePartial(partials["term.html"],depth0,{"name":"term.html","hash":{"root":(depths[1] != null ? depths[1].root : depths[1])},"data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : ""); +},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data,blockParams,depths) {      var stack1;    return ((stack1 = container.invokePartial(partials["header.html"],depth0,{"name":"header.html","data":data,"helpers":helpers,"partials":partials,"decorators":container.decorators})) != null ? stack1 : "") -    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.defs : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") +    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.defs : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0, blockParams, depths),"inverse":container.noop,"data":data})) != null ? stack1 : "")      + ((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}); +},"usePartial":true,"useData":true,"useDepths":true});  })();
\ No newline at end of file diff --git a/ext/fg/css/frame.css b/ext/fg/css/frame.css index 39e6475b..d28816f8 100644 --- a/ext/fg/css/frame.css +++ b/ext/fg/css/frame.css @@ -58,6 +58,16 @@ body {      background-color: #0275d8;  } +.action-icons { +    float: right; +} + +.action-icons:after { +    clear:   both; +    content: ''; +    display: block; +} +  /* term styles */  .term-expression { @@ -93,7 +103,7 @@ body {  .kanji-glyph {      float:          left; -    font-family:    "KanjiStrokeOrders"; +    font-family:    'KanjiStrokeOrders';      font-size:      140px;      line-height:    140px;      padding:        0.01em; diff --git a/ext/manifest.json b/ext/manifest.json index 0fe4139a..a99f0730 100644 --- a/ext/manifest.json +++ b/ext/manifest.json @@ -24,7 +24,10 @@      "web_accessible_resources": [          "fg/css/frame.css",          "fg/js/frame.js", -        "fg/ttf/kanji-stroke-orders.ttf" +        "fg/ttf/kanji-stroke-orders.ttf", +        "fg/img/icon_add_expression.png", +        "fg/img/icon_add_reading.png", +        "fg/img/icon_copy_definition.png"      ],      "content_scripts": [{ diff --git a/util/tmpl/term-list.html b/util/tmpl/term-list.html index 6206f323..9199092c 100644 --- a/util/tmpl/term-list.html +++ b/util/tmpl/term-list.html @@ -1,5 +1,5 @@  {{> header.html}}  {{#each defs}} -{{> term.html}} +{{> term.html root=../root}}  {{/each}}  {{> footer.html}} diff --git a/util/tmpl/term.html b/util/tmpl/term.html index 0daf9f49..f31d9da0 100644 --- a/util/tmpl/term.html +++ b/util/tmpl/term.html @@ -1,4 +1,12 @@  <div class="term-definition"> +    <div class="action-icons"> +        {{#with addable}} +        {{#if vocabExp}}<a href="#" title="Add as expression"><img src="{{../root}}/img/icon_add_expression.png"></a>{{/if}} +        {{#if vocabReading}}<a href="#" title="Add as reading"><img src="{{../root}}/img/icon_add_reading.png"></a>{{/if}} +        {{/with}} +        <a href="#" title="Copy definition"><img src="{{root}}/img/icon_copy_definition.png"></a> +    </div> +      {{#if reading}}      <div class="term-expression"><ruby>{{#kanjiLinks}}{{expression}}{{/kanjiLinks}}<rt>{{reading}}</rt></ruby></div>      {{else}} |