From bf1ba794bd8df428e4dcb4620996150802c375ba Mon Sep 17 00:00:00 2001
From: Philippe PITTOLI
Date: Fri, 6 Dec 2019 03:16:48 +0100
Subject: [PATCH] subscribe and unsubscribe
---
client/index.ls | 2 ++
client/todowebsocket.ls | 36 ++++++++++++++++++++++++++----------
2 files changed, 28 insertions(+), 10 deletions(-)
diff --git a/client/index.ls b/client/index.ls
index 6ed3d23..8755496 100644
--- a/client/index.ls
+++ b/client/index.ls
@@ -222,6 +222,7 @@ render-navbar = ->
h \div.navbar-start [
h \a.navbar-item.is-size-2 {
onclick: ->
+ model.todod-ws.unsubscribe model.viewed-project.id
model.viewed-project := void
model.current-view := "project-list"
} [ "⌂" ]
@@ -243,6 +244,7 @@ render-project-list = ->
onclick: ->
model.current-view := "project"
model.viewed-project := project.id
+ model.todod-ws.subscribe project.id
model.todod-ws.get-list project.id
model.todod-ws.get-tasks project.id
} [
diff --git a/client/todowebsocket.ls b/client/todowebsocket.ls
index 5fc0816..64e46f3 100644
--- a/client/todowebsocket.ls
+++ b/client/todowebsocket.ls
@@ -9,16 +9,18 @@ module.exports = {
self = {}
request-types = {
- "list-lists": 0
- "get-list": 1
- "add-list": 2
- "edit-list": 3
- "remove-list": 4
- "get-tasks": 5
- "get-task": 6
- "add-task": 7
- "remove-task": 8
- "edit-task": 9
+ "list-lists": 0
+ "get-list": 1
+ "add-list": 2
+ "edit-list": 3
+ "remove-list": 4
+ "get-tasks": 5
+ "get-task": 6
+ "add-task": 7
+ "remove-task": 8
+ "edit-task": 9
+ "subscribe": 10
+ "unsubscribe": 11
}
response-types = {
@@ -33,6 +35,8 @@ module.exports = {
"task-created": 8
"task-removed": 9
"task-updated": 10
+ "subscribed": 11
+ "unsubscribed": 12
}
# users can record functions to run on events
@@ -162,5 +166,17 @@ module.exports = {
self.send request-types[\edit-task], JSON.stringify payload
+ self.subscribe = (list-id) ->
+ self.send request-types[\subscribe], JSON.stringify {
+ token: self.token
+ list: list-id
+ }
+
+ self.unsubscribe = (list-id) ->
+ self.send request-types[\unsubscribe], JSON.stringify {
+ token: self.token
+ list: list-id
+ }
+
self
}