changeset 1628:84e287565fab

browser (chat): show origin in message, and activate suitable side panel on click: Message origin is show with a tag below message header. If the message is from a bot, another "bot" tag is added. rel 459
author Goffi <goffi@goffi.org>
date Sun, 08 Jun 2025 17:29:10 +0200
parents 61449c5ddd70
children 961468588131
files libervia/web/pages/chat/_browser/__init__.py
diffstat 1 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libervia/web/pages/chat/_browser/__init__.py	Sun Jun 08 17:27:44 2025 +0200
+++ b/libervia/web/pages/chat/_browser/__init__.py	Sun Jun 08 17:29:10 2025 +0200
@@ -958,6 +958,17 @@
             sub_messages_check_cb
         )
 
+    async def _on_origin_click(self, origin_elt) -> None:
+        origin = origin_elt.dataset["type"]
+        label = origin_elt.text
+        def sub_messages_check_cb(extra: dict) -> bool:
+            return origin in extra.get("origins", [])
+        await self.show_filtered_messages(
+            {"origin": origin},
+            {"title": f"{label} messages."},
+            sub_messages_check_cb
+        )
+
 
     async def get_message_tuple(self, message_elt) -> tuple|None:
         """Retrieve message tuple from as sent by [message_new]
@@ -1127,6 +1138,16 @@
                 )
             )
 
+        ## origin
+        for origin_elt in parent_elt.select(".message-origin"):
+            origin_elt.bind(
+                "click",
+                lambda __, origin_elt=origin_elt: aio.run(
+                    self._on_origin_click(origin_elt)
+                )
+            )
+
+
 
     def add_reactions_listeners(self, parent_elt=None) -> None:
         """Add listener on reactions to handle details and reaction toggle"""