From 50f058ed86d6a52af888971e942af7bee4a14d2a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 18 Nov 2015 08:20:21 +0530 Subject: [PATCH] Fix ajax modals --- src/pyj/modals.pyj | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/pyj/modals.pyj b/src/pyj/modals.pyj index 7de1f0bd73..0fc1404a4e 100644 --- a/src/pyj/modals.pyj +++ b/src/pyj/modals.pyj @@ -83,7 +83,7 @@ class ModalContainer: def hide_modal(self, modal_id): if self.current_modal is not None and self.current_modal.id == modal_id: - self.close_current_modal() + self.clear_current_modal() else: doomed_modal = None for i, modal in enumerate(self.modals): @@ -106,17 +106,20 @@ class ModalContainer: set_css(c, display='block') c.firstChild.lastChild.style.visibility = 'visible' if self.current_modal.show_close else 'hidden' + def clear_current_modal(self): + self.current_modal = None + c = self.modal_container + clear(c.firstChild.firstChild) + if self.modals.length == 0: + set_css(c, display='none') + else: + self.update() + def close_current_modal(self, event): if self.current_modal is not None: if self.current_modal.on_close is not None and self.current_modal.on_close(event) is True: return - self.current_modal = None - c = self.modal_container - clear(c.firstChild.firstChild) - if self.modals.length == 0: - set_css(c, display='none') - else: - self.update() + self.clear_current_modal() def create_simple_dialog(title, msg, details, icon_name, prefix): details = details or '' @@ -222,7 +225,8 @@ def ajax_progress_dialog(path, on_complete, msg, **kw): def on_progress_callback(loaded, total, xhr): pd.update_progress(loaded, total) xhr = ajax(path, on_complete_callback, on_progress=on_progress_callback, **kw) - pd = progress_dialog(msg, xhr.abort) + pd = progress_dialog(msg, xhr.abort.bind(xhr)) + xhr.send() return xhr, pd def ajax_send_progress_dialog(path, data, on_complete, msg, **kw): @@ -235,5 +239,5 @@ def ajax_send_progress_dialog(path, data, on_complete, msg, **kw): def on_progress_callback(loaded, total, xhr): pd.update_progress(loaded, total) xhr = ajax_send(path, data, on_complete_callback, on_progress=on_progress_callback, **kw) - pd = progress_dialog(msg, xhr.abort) + pd = progress_dialog(msg, xhr.abort.bind(xhr)) return xhr, pd