Mercurial > libervia-web
diff libervia/web/pages/chat/select/_browser/__init__.py @ 1548:66aa6e140ebb
browser: make `jid_search` more generic:
rel 423
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 09 Aug 2023 00:22:16 +0200 |
parents | 383e1fee29f6 |
children | c6976c5b85a1 |
line wrap: on
line diff
--- a/libervia/web/pages/chat/select/_browser/__init__.py Thu Jul 06 12:12:07 2023 +0200 +++ b/libervia/web/pages/chat/select/_browser/__init__.py Wed Aug 09 00:22:16 2023 +0200 @@ -1,51 +1,13 @@ + from bridge import AsyncBridge as Bridge -from browser import aio, bind, console as log, document, window -from urllib.parse import urljoin, quote +from browser import console as log, document, window +from cache import cache from jid_search import JidSearch -from template import Template -from cache import cache -from pprint import pp log.warning = log.warn -profile = window.profile or "" -bridge = Bridge() -class ChatSelect: - - def __init__(self): - self.search_item_tpl = Template("chat/search_item.html") - self.chat_items_elt = document["chat_items"] - - def show_items(self, items) -> None: - for item in items: - search_item_elt = self.search_item_tpl.get_elt({ - "url": urljoin(f"{window.location.href}/", quote(item["entity"])), - "item": item, - "identities": cache.identities - }) - self.chat_items_elt <= search_item_elt - - def on_empty_search(self): - items = [ - { - "entity": jid_, - "groups": data["groups"] - } - for jid_, data in cache.roster.items() - ] - self.chat_items_elt.clear() - self.show_items(items) - - def on_search_filter(self, search_items): - self.chat_items_elt.clear() - pp(search_items) - self.show_items(search_items) - - -chat_select = ChatSelect() jid_search = JidSearch( document["search"], - chat_select.on_search_filter, - chat_select.on_empty_search + document["chat_items"], )