# HG changeset patch # User Goffi # Date 1747835841 -7200 # Node ID fdb5689fb8261c5266b9c3200f1842f5510820f7 # Parent c2065de5f6d099fd8b8d9fdd675f356025d123b1 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. diff -r c2065de5f6d0 -r fdb5689fb826 libervia/web/pages/chat/_browser/__init__.py --- 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 diff -r c2065de5f6d0 -r fdb5689fb826 libervia/web/pages/chat/page_meta.py --- 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 diff -r c2065de5f6d0 -r fdb5689fb826 libervia/web/pages/chat/select/_browser/__init__.py --- 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 -) diff -r c2065de5f6d0 -r fdb5689fb826 libervia/web/pages/chat/select/page_meta.py --- 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)