diff options
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/api.js | 4 | ||||
| -rw-r--r-- | ext/fg/js/client.js | 26 | 
2 files changed, 16 insertions, 14 deletions
| diff --git a/ext/fg/js/api.js b/ext/fg/js/api.js index e13c1421..05db4618 100644 --- a/ext/fg/js/api.js +++ b/ext/fg/js/api.js @@ -48,3 +48,7 @@ function bgGetState(callback) {  function bgCanAddNotes(definitions, modes, callback) {      bgSendMessage('canAddNotes', {definitions, modes}, callback);  } + +function bgAddNote(definition, mode, callback) { +    bgSendMessage('addNote', {definition: definition, mode: mode}, callback); +} diff --git a/ext/fg/js/client.js b/ext/fg/js/client.js index 4b34ef9a..5878a5c6 100644 --- a/ext/fg/js/client.js +++ b/ext/fg/js/client.js @@ -81,7 +81,7 @@ class Client {      onFrameMessage(e) {          const {action, params} = e.data, handlers = { -            addNote:      ({mode, index}) => this.actionAddNote(mode, index, (data) => e.source.postMessage(data, e.origin)), +            addNote:      ({mode, index}) => this.actionAddNote(index, mode, (data) => e.source.postMessage(data, e.origin)),              displayKanji: this.actionDisplayKanji          }; @@ -117,10 +117,7 @@ class Client {                          bgCanAddNotes(definitions, ['vocabExp', 'vocabReading'], (states) => {                              if (states !== null) { -                                states.forEach((state, index) => this.popup.sendMessage( -                                    'setActionState', -                                    {index: index, state: state, sequence: sequence} -                                )); +                                states.forEach((state, index) => this.popup.sendMessage('setActionState', {index: index, state: state, sequence: sequence}));                              }                          });                      } @@ -129,14 +126,18 @@ class Client {          });      } -    actionAddNote(mode, index, callback) { +    actionAddNote(index, mode, callback) {          const state = {};          state[mode] = false; -        this.popup.sendMessage( -            'setActionState', -            {index: index, state: state, sequence: this.sequence} -        ); +        bgAddNote(this.definitions[index], mode, (success) => { +            if (success) { +                this.popup.sendMessage('setActionState', {index: index, state: state, sequence: this.sequence}); +            } else { +                alert('Note could not be added'); +            } +        }); +      }      actionDisplayKanji(kanji) { @@ -151,10 +152,7 @@ class Client {                      bgCanAddNotes(definitions, ['kanji'], (states) => {                          if (states !== null) { -                            states.forEach((state, index) => this.popup.sendMessage( -                                'setActionState', -                                {index: index, state: state, sequence: sequence} -                            )); +                            states.forEach((state, index) => this.popup.sendMessage('setActionState', {index: index, state: state, sequence: sequence}));                          }                      });                  } |