changeset 1623:fdb5689fb826

browser (chat): Update following template change + some cleaning: - Some templates have been moved from `chat` to `components` to be re-used, this patch adapt the code consequently. - Remove now unused `select` page.
author Goffi <goffi@goffi.org>
date Wed, 21 May 2025 15:57:21 +0200
parents c2065de5f6d0
children fd421f1be8f5
files libervia/web/pages/chat/_browser/__init__.py libervia/web/pages/chat/page_meta.py libervia/web/pages/chat/select/_browser/__init__.py libervia/web/pages/chat/select/page_meta.py
diffstat 4 files changed, 10 insertions(+), 83 deletions(-) [+]
line wrap: on
line diff
--- a/libervia/web/pages/chat/_browser/__init__.py	Thu May 15 17:52:59 2025 +0200
+++ b/libervia/web/pages/chat/_browser/__init__.py	Wed May 21 15:57:21 2025 +0200
@@ -258,8 +258,8 @@
         self.direct_messages_tpl = Template("chat/direct_messages.html")
         self.message_tpl = Template("chat/message.html")
         self.extra_menu_tpl = Template("chat/extra_menu.html")
-        self.reactions_tpl = Template("chat/reactions.html")
-        self.reactions_details_tpl = Template("chat/reactions_details.html")
+        self.reactions_tpl = Template("components/reactions.html")
+        self.reactions_details_tpl = Template("components/reactions_details.html")
         self.url_preview_control_tpl = Template("components/url_preview_control.html")
         self.url_preview_tpl = Template("components/url_preview.html")
         self.new_messages_marker_elt = Template("chat/new_messages_marker.html").get_elt()
@@ -541,8 +541,9 @@
                 log.debug(f"Message {uid} found, new reactions: {reactions}")
                 reactions_elt = self.reactions_tpl.get_elt(
                     {
-                        "chat_type": chat_type,
-                        "own_local_jid": str(own_local_jid),
+                        "own_jid": str(
+                            own_local_jid if chat_type == "group" else own_local_jid.bare
+                        ),
                         "reactions": reactions
                     })
                 reactions_wrapper_elt.clear()
@@ -867,16 +868,16 @@
             "", "", -2, True, {"thread_id": thread_id}
         )
         for message_data in history_data:
-            uid, timestamp, from_jid, to_jid, message_data, subject_data, mess_type, extra = message_data
+            uid, timestamp, from_jid_s, to_jid_s, message_data, subject_data, mess_type, extra_s = message_data
             template_data = await self.message_to_template_data(
                 uid,
                 timestamp=timestamp,
-                from_jid=from_jid,
-                to_jid=to_jid,
+                from_jid=jid.JID(from_jid_s),
+                to_jid=jid.JID(to_jid_s),
                 message_data=message_data,
                 subject_data=subject_data,
                 mess_type=mess_type,
-                extra=json.loads(extra)
+                extra=json.loads(extra_s)
             )
             message_elt = self.message_tpl.get_elt(template_data)
             thread_messages_elt <= message_elt
--- a/libervia/web/pages/chat/page_meta.py	Thu May 15 17:52:59 2025 +0200
+++ b/libervia/web/pages/chat/page_meta.py	Wed May 21 15:57:21 2025 +0200
@@ -24,7 +24,7 @@
     try:
         target_jid_s = self.next_path(request)
     except IndexError:
-        target_jid_s = "goffi@tazar3.int"
+        target_jid_s = self.get_jid(request).userhost()
         # # not chat jid, we redirect to jid selection page
         # self.page_redirect("chat_select", request)
         # return
--- a/libervia/web/pages/chat/select/_browser/__init__.py	Thu May 15 17:52:59 2025 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-
-from bridge import AsyncBridge as Bridge
-from browser import console as log, document
-from cache import cache
-from jid_search import JidSearch
-
-bridge = Bridge()
-log.warning = log.warn
-
-
-async def empty_search(jid_search):
-    # FIXME: this is Q&D way to add bookmarks, a proper handling of joined room must be
-    #   done
-    items = [
-        {
-            "entity": jid_,
-            "groups": data["groups"]
-        }
-        for jid_, data in cache.roster.items()
-    ]
-    bookmarks = await bridge.bookmarks_list("muc", "all")
-    for bm_values in list(bookmarks.values()):
-        for room_jid, room_data in bm_values.items():
-            items.append({"entity": room_jid})
-    jid_search.show_items(items)
-
-jid_search = JidSearch(
-    document["search"],
-    document["chat_items"],
-    empty_cb = empty_search
-)
--- a/libervia/web/pages/chat/select/page_meta.py	Thu May 15 17:52:59 2025 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-#!/usr/bin/env python3
-
-
-from libervia.backend.core.i18n import _
-from libervia.web.server.constants import Const as C
-from twisted.internet import defer
-from twisted.words.protocols.jabber import jid
-from libervia.backend.tools.common import data_objects
-from libervia.backend.core.log import getLogger
-
-log = getLogger(__name__)
-
-name = "chat_select"
-access = C.PAGES_ACCESS_PROFILE
-template = "chat/select.html"
-
-
-async def prepare_render(self, request):
-    profile = self.get_profile(request)
-    template_data = request.template_data
-    rooms = template_data["rooms"] = []
-    bookmarks = await self.host.bridge_call("bookmarks_list", "muc", "all", profile)
-    for bm_values in list(bookmarks.values()):
-        for room_jid, room_data in bm_values.items():
-            url = self.get_page_by_name("chat").get_url(room_jid)
-            rooms.append(data_objects.Room(room_jid, name=room_data.get("name"), url=url))
-    rooms.sort(key=lambda r: r.name)
-
-
-async def on_data_post(self, request):
-    jid_ = self.get_posted_data(request, "search")
-    if "@" not in jid_:
-        profile = self.get_profile(request)
-        service = await self.host.bridge_call("muc_get_service", "", profile)
-        if service:
-            muc_jid = jid.JID(service)
-            muc_jid.user = jid_
-            jid_ = muc_jid.full()
-        else:
-            log.warning(_("Invalid jid received: {jid}".format(jid=jid_)))
-            return C.POST_NO_CONFIRM
-    url = self.get_page_by_name("chat").get_url(jid_)
-    self.http_redirect(request, url)