MCPcopy Create free account
hub / github.com/cppla/ServerStatus / renderConfigList

Function renderConfigList

web/js/app.js:707–719  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

705 return S.admin.config[key];
706}
707function renderConfigList(){
708 const list = $('configItemList');
709 const def = activeConfigDef();
710 const items = configItems();
711 if(S.admin.selectedIndex >= items.length) S.admin.selectedIndex = -1;
712 $('addConfigItemBtn').textContent = def.addLabel;
713 document.querySelectorAll('#configTypeTabs button').forEach(btn => btn.classList.toggle('active', btn.dataset.type === S.admin.selectedType));
714 list.innerHTML = items.map((item, index) => {
715 const badge = def.badge(item, index);
716 return `<div class="config-row${S.admin.selectedIndex === index ? ' active' : ''}" data-index="${index}"><div><div class="name">${esc(def.title(item, index))}</div><div class="meta">${esc(def.meta(item, index))}</div></div><span class="badge ${badge.cls}">${esc(badge.text)}</span></div>`;
717 }).join('') || `<div class="empty-state">${def.empty}</div>`;
718 list.querySelectorAll('.config-row').forEach(row => row.addEventListener('click', () => selectConfigItem(Number(row.dataset.index))));
719}
720function selectConfigItem(index){
721 const item = configItems()[index];
722 if(!item) return;

Callers 4

loadConfigFunction · 0.85
selectConfigItemFunction · 0.85
clearConfigFormFunction · 0.85
bindAdminFunction · 0.85

Calls 5

$Function · 0.85
activeConfigDefFunction · 0.85
configItemsFunction · 0.85
escFunction · 0.85
selectConfigItemFunction · 0.85

Tested by

no test coverage detected