Mercurial > libervia-web
comparison libervia/pages/photos/album/_browser/__init__.py @ 1345:ce1217e3a9c0
browser (photos/album): use notifications to show error messages + use `ok_color` argument for delete confirmation
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 25 Aug 2020 08:28:08 +0200 |
parents | a75d82713a02 |
children | cda5537c71d6 |
comparison
equal
deleted
inserted
replaced
1344:472267dcd4d8 | 1345:ce1217e3a9c0 |
---|---|
30 photo_elt.select_one('.action_delete').bind("click", on_delete) | 30 photo_elt.select_one('.action_delete').bind("click", on_delete) |
31 print(f"file {file_.name} uploaded correctly") | 31 print(f"file {file_.name} uploaded correctly") |
32 | 32 |
33 | 33 |
34 def on_error(failure, file_, photo_elt): | 34 def on_error(failure, file_, photo_elt): |
35 # TODO: cleaner error notification | 35 dialog.notification( |
36 window.alert(f"can't upload {file_.name}: failure") | 36 f"can't upload {file_.name}: failure", |
37 level="error" | |
38 ) | |
37 | 39 |
38 | 40 |
39 def update_progress(photo_elt, new_value): | 41 def update_progress(photo_elt, new_value): |
40 progress_elt = photo_elt.select_one("progress") | 42 progress_elt = photo_elt.select_one("progress") |
41 progress_elt.value = new_value | 43 progress_elt.value = new_value |
53 xhr.setRequestHeader('Xmpp-File-No-Http', "true") | 55 xhr.setRequestHeader('Xmpp-File-No-Http', "true") |
54 xhr.send(file_) | 56 xhr.send(file_) |
55 | 57 |
56 | 58 |
57 def on_slot_eb(file_, failure, photo_elt): | 59 def on_slot_eb(file_, failure, photo_elt): |
58 breakpoint() | 60 dialog.notification( |
61 f"Can't get upload slot: {failure}", | |
62 level="error" | |
63 ) | |
59 | 64 |
60 | 65 |
61 def upload_files(files): | 66 def upload_files(files): |
62 print(f"uploading {len(files)} files") | 67 print(f"uploading {len(files)} files") |
63 photo_tpl = Template('photo/item.html') | 68 photo_tpl = Template('photo/item.html') |
118 item_elt.bind("transitionend", lambda evt: item_elt.remove()) | 123 item_elt.bind("transitionend", lambda evt: item_elt.remove()) |
119 print(f"deleted {item['name']}") | 124 print(f"deleted {item['name']}") |
120 | 125 |
121 | 126 |
122 def file_delete_eb(failure, item_elt, item): | 127 def file_delete_eb(failure, item_elt, item): |
123 # TODO: cleaner error notification | 128 dialog.notification( |
124 window.alert(f"error while deleting {item['name']}: failure") | 129 f"error while deleting {item['name']}: failure", |
130 level="error" | |
131 ) | |
125 | 132 |
126 | 133 |
127 def delete_ok(evt, notif_elt, item_elt, item): | 134 def delete_ok(evt, notif_elt, item_elt, item): |
128 file_path = f"{files_path.rstrip('/')}/{item['name']}" | 135 file_path = f"{files_path.rstrip('/')}/{item['name']}" |
129 bridge.fileSharingDelete( | 136 bridge.fileSharingDelete( |
147 item_elt.classList.add("selected_for_deletion") | 154 item_elt.classList.add("selected_for_deletion") |
148 item = JSON.parse(item_elt.dataset.item) | 155 item = JSON.parse(item_elt.dataset.item) |
149 dialog.Confirm( | 156 dialog.Confirm( |
150 f"{item['name']!r} will be deleted, are you sure?", | 157 f"{item['name']!r} will be deleted, are you sure?", |
151 ok_label="delete", | 158 ok_label="delete", |
159 ok_color="danger", | |
152 ).show( | 160 ).show( |
153 ok_cb=lambda evt, notif_elt: delete_ok(evt, notif_elt, item_elt, item), | 161 ok_cb=lambda evt, notif_elt: delete_ok(evt, notif_elt, item_elt, item), |
154 cancel_cb=lambda evt, notif_elt: delete_cancel(evt, notif_elt, item_elt, item), | 162 cancel_cb=lambda evt, notif_elt: delete_cancel(evt, notif_elt, item_elt, item), |
155 ) | 163 ) |
156 | 164 |