71 lines
1.7 KiB
JavaScript
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);
|
|
},
|
|
});
|