Mercurial > libervia-web
view libervia/pages/lists/_browser/__init__.py @ 1389:ac4173fff71d
pages (lists/view): add `list_type` to `template_data`:
when a service/node is used for the first time, schema is retrieved, and `list_type` is
put in cache and used in template. This allows the template to have specialised views
depending on the kind of list user is opening.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 27 Feb 2021 20:58:22 +0100 |
parents | a84383c659b4 |
children | 72f9639594b2 |
line wrap: on
line source
from browser import bind, DOMNode from javascript import JSON from bridge import Bridge import dialog bridge = Bridge() def list_delete_cb(item_elt, item): dialog.notification.show(f"{item['name']!r} has been deleted") def list_delete_eb(failure_, item_elt, item): dialog.notification.show( f"Error while deleting {item['name']!r}: {failure_['message']}", "error" ) def interest_retract_cb(item_elt, item): 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()) bridge.psNodeDelete( item['service'], item['node'], callback=lambda: list_delete_cb(item_elt, item), errback=lambda failure: list_delete_eb(failure, item_elt, item), ) def interest_retract_eb(failure_, item_elt, item): dialog.notification.show( f"Can't remove list {item['name']!r} from personal interests: " f"{failure_['message']}", "error" ) def delete_ok(evt, notif_elt, item_elt, item): bridge.interestRetract( "", item['id'], callback=lambda: interest_retract_cb(item_elt, item), errback=lambda failure:interest_retract_eb(failure, item_elt, item)) def delete_cancel(evt, notif_elt, item_elt, item): notif_elt.remove() item_elt.classList.remove("selected_for_deletion") @bind(".action_delete", "click") 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) dialog.Confirm( f"List {item['name']!r} will be deleted, are you sure?", ok_label="delete", ).show( ok_cb=lambda evt, notif_elt: delete_ok(evt, notif_elt, item_elt, item), cancel_cb=lambda evt, notif_elt: delete_cancel(evt, notif_elt, item_elt, item), )