Mercurial > libervia-web
view libervia/web/pages/events/_browser/__init__.py @ 1522:a44f77559279
installation: moved from `setup.py` to `pyproject.toml`:
- following backend change, installation is now using `pyproject.toml`, and legacy
`setup.py` as well as other legacy files have been deleted/updated.
- [hatch](https://hatch.pypa.io) is now used as main building tool. However, thanks to the
use of standards, other tools can be used too.
- `VERSION` file has been deleted, in favor or using directly `__version__`, in
`libervia/web/__init__.py`. Version can be updated directly from Hatch
- update .hgignore
- several dependencies version bump, with code update to adapt to changes.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 07 Jun 2023 15:28:10 +0200 |
parents | eb00d593801d |
children |
line wrap: on
line source
from browser import DOMNode, document, aio from javascript import JSON from bridge import AsyncBridge as Bridge, BridgeException import dialog bridge = Bridge() async def on_delete(evt): evt.stopPropagation() evt.preventDefault() target = evt.currentTarget item_elt = DOMNode(target.closest('.item')) item_elt.classList.add("selected_for_deletion") item = JSON.parse(item_elt.dataset.item) confirmed = await dialog.Confirm( f"Event {item['name']!r} will be deleted, are you sure?", ok_label="delete", ).ashow() if not confirmed: item_elt.classList.remove("selected_for_deletion") return try: await bridge.interest_retract("", item['interest_id']) except BridgeException as e: dialog.notification.show( f"Can't remove list {item['name']!r} from personal interests: {e}", "error" ) else: print(f"{item['name']!r} removed successfuly from list of interests") item_elt.classList.add("state_deleted") item_elt.bind("transitionend", lambda evt: item_elt.remove()) if item.get("creator", False): try: await bridge.ps_node_delete( item['service'], item['node'], ) except BridgeException as e: dialog.notification.show( f"Error while deleting {item['name']!r}: {e}", "error" ) else: dialog.notification.show(f"{item['name']!r} has been deleted") for elt in document.select('.action_delete'): elt.bind("click", lambda evt: aio.run(on_delete(evt)))