Further develop behavour when typing in text input for new manufacturer or model. If it already exists, select it.
This commit is contained in:
parent
7dbd950574
commit
ee609ad28b
|
@ -346,7 +346,7 @@ function getLocation() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function populate_models(ManufacturerId) {
|
function populate_models(ManufacturerId) {
|
||||||
let dropdown = $j('[name="newMonitor[ModelId]"]');
|
const dropdown = $j('[name="newMonitor[ModelId]"]');
|
||||||
if (!dropdown.length) {
|
if (!dropdown.length) {
|
||||||
console.log("No element found for ModelId");
|
console.log("No element found for ModelId");
|
||||||
return;
|
return;
|
||||||
|
@ -356,10 +356,11 @@ function populate_models(ManufacturerId) {
|
||||||
dropdown.append('<option value="0" selected="true">Unknown</option>');
|
dropdown.append('<option value="0" selected="true">Unknown</option>');
|
||||||
dropdown.prop('selectedIndex', 0);
|
dropdown.prop('selectedIndex', 0);
|
||||||
|
|
||||||
|
if (ManufacturerId) {
|
||||||
// Populate dropdown with list of provinces
|
// Populate dropdown with list of provinces
|
||||||
$j.getJSON(thisUrl+'?request=models&ManufacturerId='+ManufacturerId, function (data) {
|
$j.getJSON(thisUrl+'?request=models&ManufacturerId='+ManufacturerId, function(data) {
|
||||||
if (data.result == 'Ok') {
|
if (data.result == 'Ok') {
|
||||||
$j.each(data.models, function (key, entry) {
|
$j.each(data.models, function(key, entry) {
|
||||||
dropdown.append($j('<option></option>').attr('value', entry.Id).text(entry.Name));
|
dropdown.append($j('<option></option>').attr('value', entry.Id).text(entry.Name));
|
||||||
});
|
});
|
||||||
dropdown.chosen("destroy");
|
dropdown.chosen("destroy");
|
||||||
|
@ -368,6 +369,9 @@ function populate_models(ManufacturerId) {
|
||||||
alert(data.result);
|
alert(data.result);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
dropdown.chosen("destroy");
|
||||||
|
dropdown.chosen();
|
||||||
}
|
}
|
||||||
|
|
||||||
function ManufacturerId_onchange(ManufacturerId_select) {
|
function ManufacturerId_onchange(ManufacturerId_select) {
|
||||||
|
@ -377,7 +381,7 @@ function ManufacturerId_onchange(ManufacturerId_select) {
|
||||||
} else {
|
} else {
|
||||||
ManufacturerId_select.form.elements['newMonitor[Manufacturer]'].style['display'] = 'inline';
|
ManufacturerId_select.form.elements['newMonitor[Manufacturer]'].style['display'] = 'inline';
|
||||||
// Set models dropdown to Unknown, text area visible
|
// Set models dropdown to Unknown, text area visible
|
||||||
let ModelId_dropdown = $j('[name="newMonitor[ModelId]"]');
|
const ModelId_dropdown = $j('[name="newMonitor[ModelId]"]');
|
||||||
ModelId_dropdown.empty();
|
ModelId_dropdown.empty();
|
||||||
ModelId_dropdown.append('<option selected="true">Unknown</option>');
|
ModelId_dropdown.append('<option selected="true">Unknown</option>');
|
||||||
ModelId_dropdown.prop('selectedIndex', 0);
|
ModelId_dropdown.prop('selectedIndex', 0);
|
||||||
|
@ -385,6 +389,31 @@ function ManufacturerId_onchange(ManufacturerId_select) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function select_by_value_case_insensitive(dropdown, value) {
|
||||||
|
const test_value = value.toLowerCase();
|
||||||
|
for (i=1; i < dropdown.options.length; i++) {
|
||||||
|
if (dropdown.options[i].text.toLowerCase() == test_value) {
|
||||||
|
dropdown.selectedIndex = i;
|
||||||
|
dropdown.options[i].selected = true;
|
||||||
|
$j(dropdown).chosen("destroy").chosen();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (dropdown.selectedIndex != 0) {
|
||||||
|
dropdown.selectedIndex = 0;
|
||||||
|
$j(dropdown).chosen("destroy").chosen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Manufacturer_onchange(input) {
|
||||||
|
if (!input.value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ManufacturerId_select = input.form.elements['newMonitor[ManufacturerId]'];
|
||||||
|
select_by_value_case_insensitive(ManufacturerId_select, input.value);
|
||||||
|
populate_models(ManufacturerId_select.value);
|
||||||
|
}
|
||||||
|
|
||||||
function ModelId_onchange(ModelId_select) {
|
function ModelId_onchange(ModelId_select) {
|
||||||
if (parseInt(ModelId_select.value)) {
|
if (parseInt(ModelId_select.value)) {
|
||||||
$j('[name="newMonitor[Model]"]').hide();
|
$j('[name="newMonitor[Model]"]').hide();
|
||||||
|
@ -393,4 +422,8 @@ function ModelId_onchange(ModelId_select) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Model_onchange(input) {
|
||||||
|
select_by_value_case_insensitive(input.form.elements['newMonitor[ModelId]'], input.value);
|
||||||
|
}
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', initPage);
|
window.addEventListener('DOMContentLoaded', initPage);
|
||||||
|
|
Loading…
Reference in New Issue