summaryrefslogtreecommitdiff
path: root/www/imok.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/imok.js')
-rw-r--r--www/imok.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/www/imok.js b/www/imok.js
new file mode 100644
index 0000000..d985798
--- /dev/null
+++ b/www/imok.js
@@ -0,0 +1,64 @@
+function create() {
+ this.ready = false;
+ fetch('/v1/button', {method: 'PUT'}).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;
+ var payload = new FormData();
+ payload.append('id', button.id);
+ payload.append('status', button.status);
+
+ fetch('/v1/button/', {
+ method: 'POST',
+ body: payload
+ }).then(response => {
+ this.ready = true;
+ })
+};
+
+function remove(index) {
+ var button = this.buttons[index];
+
+ this.ready = false;
+ fetch('/v1/button/' + button.id, {method: 'DELETE'}).then(response => {
+ if (response.ok) {
+ response.json().then(ok => {
+ this.buttons.splice(index, 1);
+ this.ready = true;
+ });
+ }
+ });
+}
+
+const $app = new Vue({
+ el: '#container',
+ data: {
+ ready: false,
+ buttons: []
+ },
+ methods: {
+ create,
+ remove,
+ update
+ }
+});
+
+// GET /button
+fetch('/v1/button').then(response => {
+ if (response.ok) {
+ response.json().then(buttons => {
+ $app.buttons = buttons;
+ $app.ready = true;
+ })
+ }
+});