chartboard/app/Views/settings/workspace.php
2026-03-30 09:51:33 +05:30

130 lines
7.7 KiB
PHP

<?= $this->extend('layouts/main') ?>
<?php $tp = $themePreference ?? 'light'; ?>
<?= $this->section('content') ?>
<header class="cb-page-header cb-page-header--center">
<h1 class="cb-page-title mb-0">Workspace preferences</h1>
<a class="btn cb-settings-back" href="<?= base_url('dashboard') ?>">Back</a>
</header>
<div class="cb-page-body">
<?php if (session()->getFlashdata('success')): ?>
<div class="alert alert-success"><?= esc(session()->getFlashdata('success')) ?></div>
<?php endif; ?>
<?php if (session()->getFlashdata('error')): ?>
<div class="alert alert-danger"><?= esc(session()->getFlashdata('error')) ?></div>
<?php endif; ?>
<?php if (session()->getFlashdata('errors')): ?>
<div class="alert alert-danger">
<ul class="mb-0">
<?php foreach (session()->getFlashdata('errors') as $err): ?>
<li><?= esc(is_array($err) ? json_encode($err) : $err) ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<div class="cb-settings-form-card mb-4">
<h2 class="cb-settings-section-title">Appearance</h2>
<p class="cb-settings-section-hint mb-0">Choose how Chart Board looks for your account. System follows your device setting.</p>
<div class="cb-theme-tiles mt-4">
<form method="post" action="<?= base_url('settings/theme') ?>" class="cb-theme-tile-form">
<?= csrf_field() ?>
<input type="hidden" name="theme" value="light">
<button type="submit" class="cb-theme-tile <?= $tp === 'light' ? 'active' : '' ?>" aria-pressed="<?= $tp === 'light' ? 'true' : 'false' ?>">
<span class="material-symbols-outlined cb-theme-tile-icon" aria-hidden="true">light_mode</span>
<span class="cb-theme-tile-title">Light</span>
<span class="cb-theme-tile-desc">Bright interface</span>
</button>
</form>
<form method="post" action="<?= base_url('settings/theme') ?>" class="cb-theme-tile-form">
<?= csrf_field() ?>
<input type="hidden" name="theme" value="dark">
<button type="submit" class="cb-theme-tile <?= $tp === 'dark' ? 'active' : '' ?>" aria-pressed="<?= $tp === 'dark' ? 'true' : 'false' ?>">
<span class="material-symbols-outlined cb-theme-tile-icon" aria-hidden="true">dark_mode</span>
<span class="cb-theme-tile-title">Dark</span>
<span class="cb-theme-tile-desc">Easier in low light</span>
</button>
</form>
<form method="post" action="<?= base_url('settings/theme') ?>" class="cb-theme-tile-form">
<?= csrf_field() ?>
<input type="hidden" name="theme" value="system">
<button type="submit" class="cb-theme-tile <?= $tp === 'system' ? 'active' : '' ?>" aria-pressed="<?= $tp === 'system' ? 'true' : 'false' ?>">
<span class="material-symbols-outlined cb-theme-tile-icon" aria-hidden="true">brightness_auto</span>
<span class="cb-theme-tile-title">System</span>
<span class="cb-theme-tile-desc">Match this device</span>
</button>
</form>
</div>
</div>
<div class="cb-settings-form-card">
<h2 class="cb-settings-section-title mb-3">Workspace</h2>
<form method="post" action="<?= base_url('settings/workspace') ?>" enctype="multipart/form-data">
<?= csrf_field() ?>
<div class="mb-3">
<label class="form-label">Workspace name</label>
<input type="text" name="name" class="form-control" value="<?= esc(old('name', $workspace['name'])) ?>" required>
</div>
<div class="mb-3">
<label class="form-label">Slug</label>
<input type="text" name="slug" class="form-control" value="<?= esc(old('slug', $workspace['slug'])) ?>">
</div>
<div class="mb-3">
<label class="form-label">Description</label>
<textarea name="description" rows="3" class="form-control"><?= esc(old('description', $workspace['description'] ?? '')) ?></textarea>
</div>
<div class="mb-3">
<label class="form-label">Logo</label>
<input type="file" name="logo" class="form-control" accept="image/*">
<?php if (! empty($workspace['logo'])): ?>
<div class="form-text">Current: <?= esc($workspace['logo']) ?></div>
<?php endif; ?>
</div>
<div class="cb-settings-grid-3">
<div>
<label class="form-label">Timezone</label>
<?php $tz = old('timezone', $workspace['timezone']); ?>
<select name="timezone" class="form-select">
<?php foreach (['UTC', 'Asia/Kolkata', 'America/New_York', 'America/Los_Angeles', 'Europe/Berlin'] as $zone): ?>
<option value="<?= esc($zone) ?>" <?= $tz === $zone ? 'selected' : '' ?>><?= esc($zone) ?></option>
<?php endforeach; ?>
</select>
</div>
<div>
<label class="form-label">Default refresh</label>
<?php $ref = (string) old('default_refresh', (string) $workspace['default_refresh']); ?>
<select name="default_refresh" class="form-select">
<option value="60" <?= $ref === '60' ? 'selected' : '' ?>>1 minute</option>
<option value="300" <?= $ref === '300' ? 'selected' : '' ?>>5 minutes</option>
<option value="900" <?= $ref === '900' ? 'selected' : '' ?>>15 minutes</option>
<option value="3600" <?= $ref === '3600' ? 'selected' : '' ?>>1 hour</option>
</select>
</div>
<div>
<label class="form-label">Default theme (new dashboards)</label>
<?php $dt = old('default_theme', $default_theme); ?>
<select name="default_theme" class="form-select">
<option value="light" <?= $dt === 'light' ? 'selected' : '' ?>>Light</option>
<option value="dark" <?= $dt === 'dark' ? 'selected' : '' ?>>Dark</option>
<option value="system" <?= $dt === 'system' ? 'selected' : '' ?>>System</option>
</select>
</div>
<div>
<label class="form-label">Status</label>
<?php $active = (string) old('is_active', (string) $workspace['is_active']); ?>
<select name="is_active" class="form-select">
<option value="1" <?= $active === '1' ? 'selected' : '' ?>>Active</option>
<option value="0" <?= $active === '0' ? 'selected' : '' ?>>Archived</option>
</select>
</div>
</div>
<div class="mt-4">
<button type="submit" class="btn btn-primary">Save preferences</button>
</div>
</form>
</div>
</div>
<?= $this->endSection() ?>