diff options
author | ngharo <nick@ngha.ro> | 2018-01-03 19:47:41 -0600 |
---|---|---|
committer | ngharo <nick@ngha.ro> | 2018-01-03 19:47:41 -0600 |
commit | 1f4160511f4853de614355f45b94152fbd19e29e (patch) | |
tree | 77e144270ae0ecf8cebe8857246bb75ae6092013 /www/src/app.js | |
parent | f920c7da0618fd9f4181c2c78ef054e324185355 (diff) | |
download | imOk-www-1f4160511f4853de614355f45b94152fbd19e29e.tar.xz imOk-www-1f4160511f4853de614355f45b94152fbd19e29e.zip |
Diffstat (limited to 'www/src/app.js')
-rw-r--r-- | www/src/app.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/www/src/app.js b/www/src/app.js new file mode 100644 index 0000000..214572c --- /dev/null +++ b/www/src/app.js @@ -0,0 +1,68 @@ +//const Vue = require('vue'); +//const buttonList = require('./buttonList.vue'); +const r = require('./request.js')('/v1'); + +function create() { + this.ready = false; + r.post('/button').then(response => { + if (response.ok) { + response.json().then(button => { + this.buttons.push(button); + this.ready = true; + }); + } + }); +} + +function update(index) { + var button = this.buttons[index]; + + this.ready = false; + r.put('/button', button).then(() => { + this.ready = true; + }); +} + +function remove(index) { + var button = this.buttons[index]; + + this.ready = false; + r.delete('/button', button).then(response => { + if (response.ok) { + response.json().then(() => { + this.buttons.splice(index, 1); + this.ready = true; + }); + } + }); +} + +const $app = new Vue({ + el: '#container', + data: { + ready: false, + buttons: [] + }, + methods: { + create, + remove, + update + } +}); + +// GET /button +r.get('/button').then(response => { + if (response.ok) { + return response.json(); + } + + throw new Error(response.status); + +}).then(data => { + $app.buttons = data; + $app.ready = true; + +}).catch(err => { + console.log('Request failed with error:', err.message); +}); + |