annotate libervia/pages/lists/view_item/_browser/__init__.py @ 1509:106bae41f5c8

massive refactoring from camelCase -> snake_case. See backend commit log for more details
author Goffi <goffi@goffi.org>
date Sat, 08 Apr 2023 13:44:11 +0200
parents 027f5059e1e2
children 5ea06e8b06ed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1422
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
1 from browser import document, window, aio
1509
106bae41f5c8 massive refactoring from camelCase -> snake_case. See backend commit log for more details
Goffi <goffi@goffi.org>
parents: 1422
diff changeset
2 from aio_bridge import bridge
1422
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
3 import dialog
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
4
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
5 try:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
6 pubsub_service = window.pubsub_service
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
7 pubsub_node = window.pubsub_node
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
8 pubsub_item = window.pubsub_item
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
9 except AttributeError:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
10 can_delete = False
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
11 else:
1509
106bae41f5c8 massive refactoring from camelCase -> snake_case. See backend commit log for more details
Goffi <goffi@goffi.org>
parents: 1422
diff changeset
12 bridge = bridge()
1422
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
13 can_delete = True
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
14
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
15
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
16 async def on_delete(evt):
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
17 evt.stopPropagation()
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
18 confirmed = await dialog.Confirm(
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
19 "This item will be deleted, are you sure?",
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
20 ok_label="delete",
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
21 ok_color="danger",
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
22 ).ashow()
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
23 if confirmed:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
24 try:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
25 comments_service = window.comments_service
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
26 comments_node = window.comments_node
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
27 except AttributeError:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
28 pass
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
29 else:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
30 print(f"deleting comment node at [{comments_service}] {comments_node!r}")
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
31 try:
1509
106bae41f5c8 massive refactoring from camelCase -> snake_case. See backend commit log for more details
Goffi <goffi@goffi.org>
parents: 1422
diff changeset
32 await bridge.ps_node_delete(comments_service, comments_node)
1422
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
33 except Exception as e:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
34 dialog.notification.show(
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
35 f"Can't delete comment node: {e}",
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
36 level="error"
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
37 )
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
38
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
39 print(f"deleting list item {pubsub_item!r} at [{pubsub_service}] {pubsub_node!r}")
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
40 try:
1509
106bae41f5c8 massive refactoring from camelCase -> snake_case. See backend commit log for more details
Goffi <goffi@goffi.org>
parents: 1422
diff changeset
41 await bridge.ps_item_retract(pubsub_service, pubsub_node, pubsub_item, True)
1422
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
42 except Exception as e:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
43 dialog.notification.show(
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
44 f"Can't delete list item: {e}",
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
45 level="error"
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
46 )
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
47 else:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
48 # FIXME: Q&D way to get list view URL, need to have a proper method (would
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
49 # be nice to have a way to reference pages by name from browser)
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
50 list_url = '/'.join(window.location.pathname.split('/')[:-1]).replace(
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
51 'view_item', 'view')
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
52 window.location.replace(list_url)
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
53
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
54
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
55 if can_delete:
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
56 for elt in document.select('.action_delete'):
027f5059e1e2 pages (lists/view_item): browser part was not in the repository
Goffi <goffi@goffi.org>
parents:
diff changeset
57 elt.bind("click", lambda evt: aio.run(on_delete(evt)))