75 lines
3.3 KiB
JavaScript
75 lines
3.3 KiB
JavaScript
function fill_add_stock_modal_component(data) {
|
|
// component has been selected. Process it:
|
|
document.getElementById('add-stock-search').value = '';
|
|
console.log(data);
|
|
var template = document.querySelector('#add-stock-modal-component-template');
|
|
var container = document.querySelector('#add-stock-modal-component-container');
|
|
container.innerHTML = '';
|
|
var comp_elem = template.content.cloneNode(true);
|
|
|
|
if (data.ro_image) {
|
|
comp_elem.querySelector('#add-stock-cmp-img').setAttribute('src', data.ro_image);
|
|
}
|
|
var description_container = comp_elem.querySelector('#add-stock-cmp-desc-container');
|
|
var heading = document.createElement('h6');
|
|
heading.appendChild(document.createTextNode(data.name));
|
|
description_container.appendChild(heading);
|
|
if (data.package_data && data.package_data.name) {
|
|
description_container.appendChild(document.createTextNode('in '+data.package_data.name));
|
|
}
|
|
if (data.ro_manufacturer_name) {
|
|
description_container.appendChild(document.createElement('br'));
|
|
description_container.appendChild(document.createTextNode('by '+data.ro_manufacturer_name));
|
|
}
|
|
document.querySelector('#add-stock-modal-comp-uuid').value = data.id;
|
|
console.log("Selected element: "+data.id);
|
|
container.appendChild(comp_elem);
|
|
}
|
|
|
|
new AutocompleteCustomUi('add-stock-search', 'add-stock-search-ac-dropdown',
|
|
function(search, autocomplete_obj) {
|
|
if (search.startsWith('[comp_uuid]')) {
|
|
search = search.replace('[comp_uuid]', '');
|
|
}
|
|
api_search_component(search, function(results) {
|
|
components = results.results;
|
|
var test = [];
|
|
for (var i = 0; i < components.length; i++) {
|
|
var c = components[i];
|
|
var node = document.createElement('div');
|
|
node.setAttribute('class', 'd-flex align-items-center');
|
|
var img_container = document.createElement('div');
|
|
img_container.setAttribute('class', 'flex-shrink-0');
|
|
var text_container = document.createElement('div');
|
|
text_container.setAttribute('class', 'flex-grow-1 ms-1');
|
|
var img = document.createElement('img');
|
|
var img_path = fallback_img_path;
|
|
var style = "width:64px;max-height:64px;";
|
|
if (c.ro_image != null) {
|
|
img_path = c.ro_image;
|
|
style = "max-width:64px;max-height:64px;";
|
|
}
|
|
img.setAttribute('src', img_path);
|
|
img.setAttribute('style', style)
|
|
img_container.appendChild(img);
|
|
|
|
var name_text = document.createTextNode(c.name);
|
|
var heading = document.createElement('h6');
|
|
heading.appendChild(name_text);
|
|
text_container.appendChild(heading);
|
|
if (c.package_data != null) {
|
|
text_container.appendChild(document.createTextNode('in '+c.package_data.name));
|
|
}
|
|
if (c.ro_manufacturer_name) {
|
|
text_container.appendChild(document.createTextNode(' by '+c.ro_manufacturer_name));
|
|
}
|
|
|
|
node.appendChild(img_container);
|
|
node.appendChild(text_container);
|
|
|
|
test.push({'ui': node, 'data': c})
|
|
}
|
|
autocomplete_obj.show_results(test,
|
|
function(data){fill_add_stock_modal_component(data);});
|
|
}, function(){});
|
|
}); |