71 lines
1.7 KiB
JavaScript

function trim_and_upload_import_file(frm) {
frappe.confirm(
__(
'Trim leading and trailing spaces from all cells, upload the cleaned file, and update Import File?'
),
() => {
frappe.call({
method: 'asset_lite.api.data_import_api.trim_and_upload_import_file',
args: { data_import: frm.doc.name },
freeze: true,
freeze_message: __('Trimming and uploading file...'),
callback(r) {
if (!r.message) {
return;
}
frappe.show_alert(
{
message: r.message.summary || __('File trimmed and uploaded.'),
indicator: 'green',
},
5
);
frm.reload_doc().then(() => frm.trigger('import_file'));
},
});
}
);
}
function add_trim_and_upload_button(frm) {
if (frm.is_new() || !frm.doc.import_file || frm.doc.google_sheets_url) {
frm.fields_dict.import_file?.$wrapper?.find('.trim-upload-btn').remove();
return;
}
const label = __('Trim and Upload file');
const action = () => trim_and_upload_import_file(frm);
frm.add_custom_button(label, action, __('Actions'));
frm.page.add_action_item(label, action);
const field = frm.get_field('import_file');
if (!field?.$wrapper) {
return;
}
field.$wrapper.find('.trim-upload-btn').remove();
const $btn = $(`<button type="button" class="btn btn-default btn-sm trim-upload-btn" style="margin-left: 8px;">
${label}
</button>`);
$btn.on('click', action);
const $attachRow = field.$wrapper.find('.attached-file, .file-preview, .control-input-wrapper').last();
if ($attachRow.length) {
$attachRow.append($btn);
} else {
field.$wrapper.append($btn);
}
}
frappe.ui.form.on('Data Import', {
refresh(frm) {
add_trim_and_upload_button(frm);
},
onload_post_render(frm) {
add_trim_and_upload_button(frm);
},
});