From 1b46d447af0b1d9b7a7d85509a0c768cad5b372e Mon Sep 17 00:00:00 2001 From: Andres Vargas Date: Sat, 28 Nov 2020 23:21:15 -0600 Subject: [PATCH] chat demo finished --- .../javascript/controllers/chat_controller.js | 1 + core/reflexes/chat_reflex.py | 19 +++++++++++++++++-- core/templates/_chat_demo.html | 8 +++++--- core/views/chat.py | 3 ++- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/core/javascript/controllers/chat_controller.js b/core/javascript/controllers/chat_controller.js index 2b488f4..7f080f3 100644 --- a/core/javascript/controllers/chat_controller.js +++ b/core/javascript/controllers/chat_controller.js @@ -19,6 +19,7 @@ export default class extends ApplicationController { } post (event) { + console.log("post"); Rails.stopEverything(event) lastMessageId = Math.random() this.stimulate( diff --git a/core/reflexes/chat_reflex.py b/core/reflexes/chat_reflex.py index a79cd9c..2b143e6 100644 --- a/core/reflexes/chat_reflex.py +++ b/core/reflexes/chat_reflex.py @@ -1,6 +1,21 @@ from sockpuppet.reflex import Reflex +from sockpuppet.channel import Channel +from django.core.cache import cache +from django.utils import timezone class ChatReflex(Reflex): - def increment(self, step=1): - self.count = int(self.element.dataset['count']) + step + def post(self, color, message, message_id): + chats = cache.get("chats", []) + chats.append({ + 'message': message, + 'message_id': message_id, + 'created_at': timezone.now() + }) + cache.set("chats", chats) + channel = Channel("chat") + channel.dispatch_event({ + 'name': 'chats:added', + 'detail': {'messagre_id': message_id} + }) + channel.broadcast() diff --git a/core/templates/_chat_demo.html b/core/templates/_chat_demo.html index cc40fef..2cebf93 100644 --- a/core/templates/_chat_demo.html +++ b/core/templates/_chat_demo.html @@ -4,9 +4,9 @@ data-action="chats:added@document->chat#reload cable-ready:after-morph@document->chat#scroll"> {% for chat in chats %} -