comparison libervia/web/pages/lists/view_item/_browser/__init__.py @ 1518:eb00d593801d

refactoring: rename `libervia` to `libervia.web` + update imports following backend changes
author Goffi <goffi@goffi.org>
date Fri, 02 Jun 2023 16:49:28 +0200
parents libervia/pages/lists/view_item/_browser/__init__.py@5ea06e8b06ed
children
comparison
equal deleted inserted replaced
1517:b8ed9726525b 1518:eb00d593801d
1 from browser import document, window, aio
2 from bridge import AsyncBridge as Bridge
3 import dialog
4
5 try:
6 pubsub_service = window.pubsub_service
7 pubsub_node = window.pubsub_node
8 pubsub_item = window.pubsub_item
9 except AttributeError:
10 can_delete = False
11 else:
12 bridge = Bridge()
13 can_delete = True
14
15
16 async def on_delete(evt):
17 evt.stopPropagation()
18 confirmed = await dialog.Confirm(
19 "This item will be deleted, are you sure?",
20 ok_label="delete",
21 ok_color="danger",
22 ).ashow()
23 if confirmed:
24 try:
25 comments_service = window.comments_service
26 comments_node = window.comments_node
27 except AttributeError:
28 pass
29 else:
30 print(f"deleting comment node at [{comments_service}] {comments_node!r}")
31 try:
32 await bridge.ps_node_delete(comments_service, comments_node)
33 except Exception as e:
34 dialog.notification.show(
35 f"Can't delete comment node: {e}",
36 level="error"
37 )
38
39 print(f"deleting list item {pubsub_item!r} at [{pubsub_service}] {pubsub_node!r}")
40 try:
41 await bridge.ps_item_retract(pubsub_service, pubsub_node, pubsub_item, True)
42 except Exception as e:
43 dialog.notification.show(
44 f"Can't delete list item: {e}",
45 level="error"
46 )
47 else:
48 # FIXME: Q&D way to get list view URL, need to have a proper method (would
49 # be nice to have a way to reference pages by name from browser)
50 list_url = '/'.join(window.location.pathname.split('/')[:-1]).replace(
51 'view_item', 'view')
52 window.location.replace(list_url)
53
54
55 if can_delete:
56 for elt in document.select('.action_delete'):
57 elt.bind("click", lambda evt: aio.run(on_delete(evt)))