From 733f2fdee50c39d91b288190d227a2f0191dea6d Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Mon, 28 Oct 2019 23:00:15 +0530 Subject: [PATCH] fix: Hide primary action when import in progress --- .../core/doctype/data_import_beta/data_import_beta.js | 10 +++++++++- .../core/doctype/data_import_beta/data_import_beta.py | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/frappe/core/doctype/data_import_beta/data_import_beta.js b/frappe/core/doctype/data_import_beta/data_import_beta.js index 2eb0bdc498..a8048fe77a 100644 --- a/frappe/core/doctype/data_import_beta/data_import_beta.js +++ b/frappe/core/doctype/data_import_beta/data_import_beta.js @@ -4,6 +4,7 @@ frappe.ui.form.on('Data Import Beta', { setup(frm) { frappe.realtime.on('data_import_refresh', ({ data_import }) => { + frm.import_in_progress = false; if (data_import !== frm.doc.name) return; frappe.model.clear_doc('Data Import Beta', frm.doc.name); frappe.model.with_doc('Data Import Beta', frm.doc.name).then(() => { @@ -11,6 +12,7 @@ frappe.ui.form.on('Data Import Beta', { }); }); frappe.realtime.on('data_import_progress', data => { + frm.import_in_progress = true; if (data.data_import !== frm.doc.name) { return; } @@ -81,7 +83,9 @@ frappe.ui.form.on('Data Import Beta', { } if (frm.doc.status !== 'Success') { - if (!frm.is_new() && frm.doc.import_file) { + if (frm.import_in_progress) { + frm.disable_save(); + } else if (!frm.is_new() && frm.doc.import_file) { let label = frm.doc.status === 'Pending' ? __('Start Import') : __('Retry'); frm.page.set_primary_action(label, () => frm.events.start_import(frm)); } else { @@ -131,6 +135,10 @@ frappe.ui.form.on('Data Import Beta', { doc: frm.doc, method: 'start_import', btn: frm.page.btn_primary + }).then(r => { + if (r.message === true) { + frm.disable_save(); + } }); }, diff --git a/frappe/core/doctype/data_import_beta/data_import_beta.py b/frappe/core/doctype/data_import_beta/data_import_beta.py index bbe89bdef8..813dca0755 100644 --- a/frappe/core/doctype/data_import_beta/data_import_beta.py +++ b/frappe/core/doctype/data_import_beta/data_import_beta.py @@ -50,6 +50,9 @@ class DataImportBeta(Document): data_import=self.name, now=frappe.conf.developer_mode or frappe.flags.in_test, ) + return True + + return False def export_errored_rows(self): return self.get_importer().export_errored_rows()