Mercurial > libervia-web
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)