/** * DeComPress CMS - Core Admin Logic */ const state = { currentView: 'Pages', themes: [ { id: 1, name: 'Minimalist', version: '1.2.0', active: true, color: 'bg-slate-300' }, { id: 2, name: 'Dark Mode Pro', version: '2.0.1', active: false, color: 'bg-gray-800' }, { id: 3, name: 'Ocean Breeze', version: '1.0.5', active: false, color: 'bg-blue-400' } ], customFields: [], // Dynamic state for the field builder navItems: [ { name: 'Pages', icon: '📄' }, { name: 'Themes', icon: '🎨' }, { name: 'Post Types', icon: '📌' }, { name: 'Custom Fields', icon: '🔧' }, { name: 'Users', icon: '👥' }, { name: 'Roles', icon: '🛡️' }, { name: 'Permissions', icon: '🔑' } ] } // --- Initialization --- document.addEventListener('DOMContentLoaded', () => { initApp() }) function initApp () { renderNav() navigateTo(state.currentView) // Mobile Toggle Logic document.getElementById('mobile-toggle').addEventListener('click', () => { const sidebar = document.getElementById('sidebar') sidebar.classList.toggle('hidden') sidebar.classList.toggle('absolute') sidebar.classList.toggle('z-50') sidebar.classList.toggle('h-full') }) } // --- Router --- function navigateTo (viewName) { state.currentView = viewName document.getElementById('view-title').innerText = viewName renderNav() // Refresh active state const container = document.getElementById('app-content') container.innerHTML = '' // Clear current switch (viewName) { case 'Pages': container.innerHTML = viewPages() break case 'Themes': container.innerHTML = viewThemes() break case 'Permissions': container.innerHTML = viewPermissions() break case 'Custom Fields': container.innerHTML = viewCustomFields() break case 'Users': container.innerHTML = viewUsers() break default: container.innerHTML = `
| Page Title | Status | Actions |
|---|---|---|
| Homepage | Published | Edit |
| Contact | Draft | Edit |
Version ${ t.version }
| Capability | ${roles .map( r => `${r} | ` ) .join('')}
|---|---|
| ${c} | ${roles .map( r => `` ) .join('')} |
No fields added yet. Click "+ Add Field" to begin.
' : '' }