Mercurial > libervia-web
comparison libervia/web/pages/_browser/dialog.py @ 1620:3a60bf3762ef
browser: threads and replies implementation:
rel 457
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 06 May 2025 00:40:07 +0200 |
parents | a2cd4222c702 |
children |
comparison
equal
deleted
inserted
replaced
1619:a2cd4222c702 | 1620:3a60bf3762ef |
---|---|
181 elt.bind('click', lambda __: self.retry(notif_elt)) | 181 elt.bind('click', lambda __: self.retry(notif_elt)) |
182 | 182 |
183 | 183 |
184 class Modal: | 184 class Modal: |
185 | 185 |
186 def __init__(self, content_elt, is_card=False, closable=False): | 186 def __init__(self, content_elt, is_card=False, closable=False, close_cb=None): |
187 """Init a Modal instance. | 187 """Init a Modal instance. |
188 | 188 |
189 @param content_elt: Content of the modal. | 189 @param content_elt: Content of the modal. |
190 @param is_card: If True, a Modal card will be used. The ``content_elt`` must be a | 190 @param is_card: If True, a Modal card will be used. The ``content_elt`` must be a |
191 <div> with the "modal-card" class. | 191 <div> with the "modal-card" class. |
196 if not content_elt.classList.contains("modal-card"): | 196 if not content_elt.classList.contains("modal-card"): |
197 raise ValueError( | 197 raise ValueError( |
198 'Element must have a "modal-card" class when `is_card` is used' | 198 'Element must have a "modal-card" class when `is_card` is used' |
199 ) | 199 ) |
200 self.closable = closable | 200 self.closable = closable |
201 self._close_cb = close_cb | |
201 self._tpl = Template("dialogs/modal.html") | 202 self._tpl = Template("dialogs/modal.html") |
202 self.content_elt = content_elt | 203 self.content_elt = content_elt |
203 self._modal_elt = None | 204 self._modal_elt = None |
204 self.reset() | 205 self.reset() |
205 | 206 |
219 self.reset() | 220 self.reset() |
220 | 221 |
221 def on_close_click(self, evt) -> None: | 222 def on_close_click(self, evt) -> None: |
222 evt.preventDefault() | 223 evt.preventDefault() |
223 evt.stopPropagation() | 224 evt.stopPropagation() |
225 if self._close_cb is not None: | |
226 self._close_cb() | |
224 self.close() | 227 self.close() |
225 | 228 |
226 def show(self) -> None: | 229 def show(self) -> None: |
227 modal_elt = self._tpl.get_elt({ | 230 modal_elt = self._tpl.get_elt({ |
228 "closable": self.closable, | 231 "closable": self.closable, |