Allow user to select file format when downloadin BOM import template

(cherry picked from commit 8030ca0bb9)
This commit is contained in:
Oliver 2021-11-22 20:51:55 +11:00
parent 95db82a4ea
commit d75ce451be
2 changed files with 43 additions and 8 deletions

View File

@ -32,7 +32,7 @@
<div class='alert alert-info alert-block'>
<strong>{% trans "Requirements for BOM upload" %}:</strong>
<ul>
<li>{% trans "The BOM file must contain the required named columns as provided in the " %} <strong><a href="/part/bom_template/">{% trans "BOM Upload Template" %}</a></strong></li>
<li>{% trans "The BOM file must contain the required named columns as provided in the " %} <strong><a href='#' id='bom-template-download'>{% trans "BOM Upload Template" %}</a></strong></li>
<li>{% trans "Each part must already exist in the database" %}</li>
</ul>
</div>
@ -60,4 +60,8 @@
enableSidebar('bom-upload');
{% endblock js_ready %}
$('#bom-template-download').click(function() {
downloadBomTemplate();
});
{% endblock js_ready %}

View File

@ -2,6 +2,7 @@
/* globals
constructForm,
exportFormatOptions,
imageHoverIcon,
inventreeGet,
inventreePut,
@ -14,6 +15,7 @@
*/
/* exported
downloadBomTemplate,
newPartFromBomWizard,
loadBomTable,
loadUsedInTable,
@ -21,12 +23,41 @@
removeColFromBomWizard,
*/
/* BOM management functions.
* Requires follwing files to be loaded first:
* - api.js
* - part.js
* - modals.js
*/
function downloadBomTemplate(options={}) {
var format = options.format;
if (!format) {
format = inventreeLoad('bom-export-format', 'csv');
}
constructFormBody({}, {
title: '{% trans "Download BOM Template" %}',
fields: {
format: {
label: '{% trans "Format" %}',
help_text: '{% trans "Select file format" %}',
required: true,
type: 'choice',
value: format,
choices: exportFormatOptions(),
}
},
onSubmit: function(fields, opts) {
var format = getFormFieldValue('format', fields['format'], opts);
// Save the format for next time
inventreeSave('bom-export-format', format);
// Hide the modal
$(opts.modal).modal('hide');
// Download the file
location.href = `{% url "bom-upload-template" %}?format=${format}`;
}
});
}
function bomItemFields() {