Fixed users and locations not filling in in Assets modals

This commit is contained in:
2025-10-26 11:45:01 +01:00
parent 2c0ae9f5e9
commit dc5e117c93
2 changed files with 50 additions and 25 deletions

View File

@@ -123,18 +123,35 @@ async function loadLocationsIntoSelect(selectElement, selectedValue = null) {
const response = await fetch('/Locations/Index');
const locations = await response.json();
selectElement.innerHTML = `<option value="">${appTranslations.selectLocation}</option>`;
const ts = selectElement.tomselect;
if (!ts) {
selectElement.innerHTML = `<option value="">${appTranslations.selectLocation}</option>`;
locations.forEach(loc => {
const option = document.createElement('option');
option.value = loc.location;
option.textContent = loc.location;
if (selectedValue && selectedValue === loc.location) {
option.selected = true;
}
selectElement.appendChild(option);
});
return;
}
ts.clearOptions();
ts.addOption(locations.map(loc => ({
value: loc.location,
text: loc.location
})));
ts.refreshOptions(false);
if (selectedValue) {
ts.setValue(selectedValue);
} else {
ts.clear(true);
}
locations.forEach(loc => {
const text = `${loc.location}`;
const option = document.createElement('option');
option.value = loc.location;
option.textContent = text;
if (selectedValue && selectedValue === loc.location) {
option.selected = true;
}
selectElement.appendChild(option);
});
} catch (err) {
console.error('Error loading locations:', err);
showToast(appTranslations.errorLoadingLocations, 'danger');
@@ -146,20 +163,25 @@ async function loadUsersIntoSelect(selectElement, selectedValue = null) {
const response = await fetch('/Users/Index?Cn=false&Sn=false&Title=false&Description=false&JpegPhoto=false&UserPassword=false');
const users = await response.json();
selectElement.innerHTML = `<option value="">${appTranslations.selectUser}</option>`;
const ts = selectElement.tomselect;
if (!ts) {
selectElement.innerHTML = `<option value="">${appTranslations.selectUser}</option>`;
users.forEach(u => {
const opt = document.createElement('option');
opt.value = u.uid;
opt.textContent = u.uid;
selectElement.appendChild(opt);
});
return;
}
users.forEach(usr => {
const text = usr.uid;
const option = document.createElement('option');
option.value = usr.uid;
option.textContent = text;
if (selectedValue && selectedValue === usr.uid) {
option.selected = true;
}
selectElement.appendChild(option);
});
ts.clearOptions();
ts.addOption(users.map(u => ({ value: u.uid, text: u.uid })));
ts.refreshOptions(false);
if (selectedValue) ts.setValue(selectedValue);
} catch (err) {
console.error('Error loading users:', err);
showToast(appTranslations.errorLoadingUsers, 'danger');
}
}
}