Mercurial > libervia-web
view libervia/web/pages/chat/select/_browser/__init__.py @ 1547:383e1fee29f6
browser (chat/select): update dynamically JID items when search box is used
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 06 Jul 2023 12:12:07 +0200 |
parents | |
children | 66aa6e140ebb |
line wrap: on
line source
from bridge import AsyncBridge as Bridge from browser import aio, bind, console as log, document, window from urllib.parse import urljoin, quote 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 )