[Developer] #424 load permission rule columns dynamically

This commit is contained in:
devmrko
2026-06-23 14:34:19 +09:00
parent ae3dd6667e
commit e5ba9aedd7
3 changed files with 54 additions and 7 deletions

View File

@@ -28,13 +28,7 @@ function filterUserRoleDetail() {
empty.hidden = shown !== 0;
}
function syncRuleColumnOptions() {
const objectSelect = document.querySelector('select[name="objectRef"]');
if (!objectSelect) {
return;
}
const selectedOption = objectSelect.options[objectSelect.selectedIndex];
const columns = (selectedOption?.dataset.columns || '').split(',').filter(Boolean);
function renderRuleColumnOptions(columns) {
document.querySelectorAll('.rule-column-select').forEach((select) => {
const current = select.value;
select.innerHTML = '<option value="">전체 행</option>' + columns
@@ -46,6 +40,26 @@ function syncRuleColumnOptions() {
});
}
async function syncRuleColumnOptions() {
const objectSelect = document.querySelector('select[name="objectRef"]');
if (!objectSelect) {
return;
}
const selectedOption = objectSelect.options[objectSelect.selectedIndex];
const fallbackColumns = (selectedOption?.dataset.columns || '').split(',').filter(Boolean);
renderRuleColumnOptions(fallbackColumns);
try {
const response = await fetch(`/permissions/object-columns?objectRef=${encodeURIComponent(objectSelect.value)}`);
if (!response.ok) {
return;
}
const columns = await response.json();
renderRuleColumnOptions(Array.isArray(columns) ? columns : fallbackColumns);
} catch (error) {
renderRuleColumnOptions(fallbackColumns);
}
}
document.addEventListener('DOMContentLoaded', () => {
const master = document.getElementById('userRoleMaster');
if (master) {