connect to /notify WebSocket from frontend on app startup
This commit is contained in:
parent
6b3cc4c168
commit
c88d434f39
2 changed files with 51 additions and 13 deletions
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
|
||||||
|
/.idea
|
||||||
|
.env
|
||||||
|
.local
|
||||||
|
|
||||||
|
staticfiles/
|
||||||
|
userfiles/
|
|
@ -3,8 +3,11 @@
|
||||||
<AddItemModal v-if="addModalOpen" @close="closeAddModal()" isModal="true"/>
|
<AddItemModal v-if="addModalOpen" @close="closeAddModal()" isModal="true"/>
|
||||||
<Navbar @addClicked="openAddModal()"/>
|
<Navbar @addClicked="openAddModal()"/>
|
||||||
<router-view/>
|
<router-view/>
|
||||||
<div aria-live="polite" aria-atomic="true" class="d-flex justify-content-end align-items-start fixed-top mx-1 my-5 py-3" style="min-height: 200px; z-index: 100000; pointer-events: none">
|
<div aria-live="polite" aria-atomic="true"
|
||||||
<Toast v-for="toast in toasts" :key="toast" :title="toast.title" :message="toast.message" :color="toast.color" @close="removeToast(toast.key)" style="pointer-events: auto"/>
|
class="d-flex justify-content-end align-items-start fixed-top mx-1 my-5 py-3"
|
||||||
|
style="min-height: 200px; z-index: 100000; pointer-events: none">
|
||||||
|
<Toast v-for="toast in toasts" :key="toast" :title="toast.title" :message="toast.message" :color="toast.color"
|
||||||
|
@close="removeToast(toast.key)" style="pointer-events: auto"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -23,13 +26,41 @@ export default {
|
||||||
addModalOpen: false
|
addModalOpen: false
|
||||||
}),
|
}),
|
||||||
methods: {
|
methods: {
|
||||||
...mapMutations(['removeToast']),
|
...mapMutations(['removeToast', 'createToast']),
|
||||||
openAddModal() {
|
openAddModal() {
|
||||||
this.addModalOpen = true;
|
this.addModalOpen = true;
|
||||||
},
|
},
|
||||||
closeAddModal() {
|
closeAddModal() {
|
||||||
this.addModalOpen = false;
|
this.addModalOpen = false;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
created: function () {
|
||||||
|
this.notify_socket = new WebSocket('wss://' + window.location.host + '/notify/');
|
||||||
|
this.notify_socket.onmessage = (e) => {
|
||||||
|
let data = JSON.parse(e.data);
|
||||||
|
console.log(data, e.data);
|
||||||
|
};
|
||||||
|
this.notify_socket.onopen = (e) => {
|
||||||
|
this.createToast({
|
||||||
|
title: "Connection established",
|
||||||
|
message: JSON.stringify(e),
|
||||||
|
color: "success"
|
||||||
|
});
|
||||||
|
};
|
||||||
|
this.notify_socket.onclose = (e) => {
|
||||||
|
this.createToast({
|
||||||
|
title: "Connection closed",
|
||||||
|
message: JSON.stringify(e),
|
||||||
|
color: "danger"
|
||||||
|
});
|
||||||
|
};
|
||||||
|
this.notify_socket.onerror = (e) => {
|
||||||
|
this.createToast({
|
||||||
|
title: "Connection error",
|
||||||
|
message: JSON.stringify(e),
|
||||||
|
color: "danger"
|
||||||
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in a new issue