fix(file-format): offer to re-run auto-detect on sample re-upload

Previously a re-upload (clear → re-attach) just refreshed the Excel
Column dropdown and silently kept the existing mapping rows — pointing
the user at the new file but leaving the table tied to the old one. Now
the form asks before overwriting: empty table still auto-detects
silently, populated table prompts with a Confirm dialog before clearing
and re-running.
This commit is contained in:
Ali 2026-05-18 13:10:22 +00:00
parent d87da25417
commit a27e9b08f5
1 changed files with 15 additions and 5 deletions

View File

@ -189,14 +189,24 @@ const BIFileFormat = {
});
},
// Called when the user attaches / replaces the Sample Excel File. Refresh
// the Excel Column dropdown and, if the table is still empty, run
// auto-detect silently. We never overwrite a user-filled table.
// Called when the user attaches / replaces / clears the Sample Excel File.
// Refresh the Excel Column dropdown, then either auto-detect silently
// (empty table) or ask before overwriting an existing mapping (re-upload).
onSampleFileChange(frm) {
this.applySampleHeaders(frm, /*force*/ true);
if (!frm.doc.sample_file) return;
const hasRows = (frm.doc.column_mappings || []).some(r => r.excel_column || r.standard_field);
if (!frm.doc.sample_file || hasRows) return;
if (!hasRows) {
this.autoDetect(frm, /*silent*/ true);
return;
}
frappe.confirm(
__('Re-run auto-detect and replace the existing {0} Column Mapping row(s)?', [
frm.doc.column_mappings.length,
]),
() => this.autoDetect(frm, /*silent*/ true),
);
},
setColumnOptions(frm, headers) {