diff options
| author | Alex Yatskov <alex@foosoft.net> | 2016-05-21 17:11:17 -0700 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2016-05-21 17:11:17 -0700 | 
| commit | ad54735a80ede1980eca4ab51273256c5fd8d3bd (patch) | |
| tree | 8a30901eb2ed5766da6d49b78ea5421313878878 | |
| parent | 8b4d19c9f2d35ef53bbd8543f1d39f95c355bf12 (diff) | |
WIP
| -rw-r--r-- | ext/bg/js/options-form.js | 20 | ||||
| -rw-r--r-- | ext/bg/js/yomichan.js | 24 | ||||
| -rw-r--r-- | ext/bg/options.html | 6 | 
3 files changed, 40 insertions, 10 deletions
| diff --git a/ext/bg/js/options-form.js b/ext/bg/js/options-form.js index fec2494a..a77419ff 100644 --- a/ext/bg/js/options-form.js +++ b/ext/bg/js/options-form.js @@ -43,6 +43,25 @@ function updateVisibility() {      }  } +function updateAnkiPage() { +    const yomichan = chrome.extension.getBackgroundPage().yomichan; + +    $('#ankiDeck').find('option').remove(); +    $('#ankiModel').find('option').remove(); + +    yomichan.getDeckNames((names) => { +        names.forEach((name) => { +            $('#ankiDeck').append($('<option/>', {value: name, text: name})); +        }); +    }); + +    yomichan.getModelNames((names) => { +        names.forEach((name) => { +            $('#ankiModel').append($('<option/>', {value: name, text: name})); +        }); +    }); +} +  function onOptionsChanged() {      updateVisibility();      const opts = formToOptions(); @@ -55,6 +74,7 @@ $(document).ready(() => {      loadOptions((opts) => {          optionsToForm(opts);          updateVisibility(); +        updateAnkiPage();          $('input').on('input paste change', onOptionsChanged);      });  }); diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index 14d311c0..88280ab0 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -51,19 +51,29 @@ class Yomichan {      onMessage(request, sender, callback) {          const {action, params} = request, handlers = { -            canAddNotes: ({definitions, modes}) => this.ankiInvoke('canAddNotes', {definitions: definitions, modes: modes}, 'notes', callback), -            addNote:     ({definition, mode}) => this.ankiInvoke('addNote', {definition: definition, mode: mode}, null, callback), -            findKanji:   (text) => callback(this.translator.findKanji(text)), -            findTerm:    (text) => callback(this.translator.findTerm(text)), -            getOptions:  () => callback(this.options), -            getState:    () => callback(this.state), -            renderText:  ({data, template}) => callback(Handlebars.templates[template](data)) +            addNote:       ({definition, mode}) => this.ankiInvoke('addNote', {definition: definition, mode: mode}, null, callback), +            canAddNotes:   ({definitions, modes}) => this.ankiInvoke('canAddNotes', {definitions: definitions, modes: modes}, 'notes', callback), +            findKanji:     (text) => callback(this.translator.findKanji(text)), +            findTerm:      (text) => callback(this.translator.findTerm(text)), +            getDeckNames:  () => this.getDeckNames(callback), +            getModelNames: () => this.getModelNames(callback), +            getOptions:    () => callback(this.options), +            getState:      () => callback(this.state), +            renderText:    ({data, template}) => callback(Handlebars.templates[template](data))          };          handlers[action].call(this, params);          return true;      } +    getDeckNames(callback) { +        this.ankiInvoke('deckNames', {}, null, callback); +    } + +    getModelNames(callback) { +        this.ankiInvoke('modelNames', {}, null, callback); +    } +      onBrowserAction(tab) {          switch (this.state) {              case 'disabled': diff --git a/ext/bg/options.html b/ext/bg/options.html index 95236e6d..9b8be64b 100644 --- a/ext/bg/options.html +++ b/ext/bg/options.html @@ -36,7 +36,7 @@                      <div class="form-group">                          <div class="col-sm-offset-2 col-sm-10">                              <div class="checkbox"> -                                <label><input type="checkbox" id="loadEnasmict"> Load <a href="http://www.edrdg.org/enasmict/enasmict_doc.html">ENAsmICT</a> (requires restart)</label> +                                <label><input type="checkbox" id="loadEnamdict"> Load <a href="http://www.edrdg.org/enamdict/enamdict_doc.html">ENAMDICT</a> (requires restart)</label>                              </div>                          </div>                      </div> @@ -74,14 +74,14 @@                      <div class="form-group">                          <label class="col-sm-2 control-label" for="ankiDeck">Deck</label>                          <div class="col-sm-10"> -                            <select class="form-control" name="ankiDeck"></select> +                            <select class="form-control" id="ankiDeck"></select>                          </div>                      </div>                      <div class="form-group">                          <label class="col-sm-2 control-label" for="ankiModel">Model</label>                          <div class="col-sm-10"> -                            <select class="form-control" name="ankiDeck"></select> +                            <select class="form-control" id="ankiModel"></select>                          </div>                      </div>                  </div> |