<div class="bg-white dark:bg-gray-800 shadow rounded-lg">
<div class="px-6 py-4 border-b border-gray-200">
<h2 class="text-xl font-semibold text-gray-800 dark:text-white">Dashboard Settings</h2>
</div>
<?php if (isset($error)): ?>
<div class="p-4 bg-red-100 border-l-4 border-red-500 text-red-700">
<p><?= $error ?></p>
</div>
<?php endif; ?>
<form action="<?php echo BASE_URL ?>/dashboard/settings" method="POST" class="p-6 space-y-6">
<!-- Site Name -->
<div>
<label for="site_name" class="block text-sm font-medium text-gray-700 dark:text-gray-300">Site Name</label>
<input type="text" name="site_name" id="site_name"
value="<?= htmlspecialchars($settings['site_name'] ?? '') ?>"
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white shadow-sm focus:border-blue-500 focus:ring-blue-500">
<p class="mt-1 text-sm text-gray-500 dark:text-gray-400">The name of your dashboard</p>
</div>
<!-- Theme -->
<div>
<label for="theme" class="block text-sm font-medium text-gray-700 dark:text-gray-300">Theme</label>
<select name="theme" id="theme"
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white shadow-sm focus:border-blue-500 focus:ring-blue-500">
<option value="light" <?= ($settings['theme'] ?? '') === 'light' ? 'selected' : '' ?>>Light</option>
<option value="dark" <?= ($settings['theme'] ?? '') === 'dark' ? 'selected' : '' ?>>Dark</option>
</select>
<p class="mt-1 text-sm text-gray-500 dark:text-gray-400">Choose the dashboard theme</p>
</div>
<!-- Items Per Page -->
<div>
<label for="items_per_page" class="block text-sm font-medium text-gray-700 dark:text-gray-300">Items Per Page</label>
<input type="number" name="items_per_page" id="items_per_page" min="5" max="100"
value="<?= htmlspecialchars($settings['items_per_page'] ?? '10') ?>"
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white shadow-sm focus:border-blue-500 focus:ring-blue-500">
<p class="mt-1 text-sm text-gray-500 dark:text-gray-400">Number of items to display per page in lists</p>
</div>
<!-- Maintenance Mode -->
<div>
<label for="maintenance_mode" class="block text-sm font-medium text-gray-700 dark:text-gray-300">Maintenance Mode</label>
<select name="maintenance_mode" id="maintenance_mode"
class="mt-1 block w-full rounded-md border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white shadow-sm focus:border-blue-500 focus:ring-blue-500">
<option value="false" <?= ($settings['maintenance_mode'] ?? '') === 'false' ? 'selected' : '' ?>>Disabled</option>
<option value="true" <?= ($settings['maintenance_mode'] ?? '') === 'true' ? 'selected' : '' ?>>Enabled</option>
</select>
<p class="mt-1 text-sm text-gray-500 dark:text-gray-400">Enable maintenance mode to restrict access</p>
</div>
<!-- Submit Button -->
<div class="flex justify-end">
<button type="submit"
class="bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
Save Settings
</button>
</div>
</form>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const themeSelect = document.getElementById('theme');
const html = document.documentElement;
// Function to update theme
function updateTheme(theme) {
if (theme === 'dark') {
html.classList.add('dark');
} else {
html.classList.remove('dark');
}
}
// Handle theme changes
themeSelect.addEventListener('change', function() {
updateTheme(this.value);
});
// Initialize theme
updateTheme(themeSelect.value);
});
</script>
|