feat: Group functions in edit modal
This commit is contained in:
parent
3da7625d06
commit
cdd041c172
31
index.php
31
index.php
@ -601,19 +601,36 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
const functionsSelect = document.getElementById('editRoles');
|
||||
functionsSelect.innerHTML = ''; // Clear existing options
|
||||
|
||||
data.all_functions.forEach(func => {
|
||||
const functionsSelect = document.getElementById('editRoles');
|
||||
functionsSelect.innerHTML = ''; // Clear existing options
|
||||
|
||||
// Group functions by group name
|
||||
const groupedFunctions = data.all_functions.reduce((acc, func) => {
|
||||
const groupName = func.group_name || 'Other';
|
||||
if (!acc[groupName]) {
|
||||
acc[groupName] = [];
|
||||
}
|
||||
acc[groupName].push(func);
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
// Populate the select with optgroups
|
||||
for (const groupName in groupedFunctions) {
|
||||
const optgroup = document.createElement('optgroup');
|
||||
optgroup.label = groupName;
|
||||
|
||||
groupedFunctions[groupName].forEach(func => {
|
||||
const option = document.createElement('option');
|
||||
option.value = func.id;
|
||||
let textContent = func.name;
|
||||
if (func.group_name) {
|
||||
textContent += ' (' + func.group_name + ')';
|
||||
}
|
||||
option.textContent = textContent;
|
||||
option.textContent = func.name;
|
||||
if (data.person_functions.map(String).includes(String(func.id))) {
|
||||
option.selected = true;
|
||||
}
|
||||
functionsSelect.appendChild(option);
|
||||
optgroup.appendChild(option);
|
||||
});
|
||||
|
||||
functionsSelect.appendChild(optgroup);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user