112 lines
6.0 KiB
PHP
112 lines
6.0 KiB
PHP
<?= $this->extend('layouts/main') ?>
|
|
|
|
<?= $this->section('styles') ?>
|
|
<link rel="stylesheet" href="<?= base_url('assets/css/dashboard.css') ?>">
|
|
<?= $this->endSection() ?>
|
|
|
|
<?= $this->section('content') ?>
|
|
<?php $did = (int) $dashboard['id']; ?>
|
|
<header class="cb-page-header">
|
|
<div>
|
|
<a href="<?= base_url('dashboard/view/' . $did) ?>" class="small text-decoration-none d-inline-flex align-items-center gap-1 mb-1" style="color: var(--text-secondary);">
|
|
<span class="material-symbols-outlined" style="font-size:16px;">arrow_back</span> Back to board
|
|
</a>
|
|
<h1 class="cb-page-title">Dashboard settings</h1>
|
|
<p class="cb-page-subtitle mb-0"><?= esc($dashboard['name']) ?></p>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="cb-page-body">
|
|
<?php if (session()->getFlashdata('success')): ?>
|
|
<div class="alert alert-success border-0 shadow-sm"><?= esc(session()->getFlashdata('success')) ?></div>
|
|
<?php endif; ?>
|
|
<?php if (session()->getFlashdata('error')): ?>
|
|
<div class="alert alert-danger border-0 shadow-sm"><?= esc(session()->getFlashdata('error')) ?></div>
|
|
<?php endif; ?>
|
|
<?php if (session()->get('errors')): ?>
|
|
<div class="alert alert-danger border-0 shadow-sm">
|
|
<?php foreach (session()->get('errors') as $e): ?>
|
|
<div><?= esc(is_array($e) ? implode(' ', $e) : (string) $e) ?></div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<div class="row g-4">
|
|
<div class="col-lg-8">
|
|
<div class="card border-0 shadow-sm rounded-4">
|
|
<div class="card-body p-4">
|
|
<h2 class="h6 fw-bold mb-3">General</h2>
|
|
<form action="<?= base_url('dashboard/settings/' . $did) ?>" method="post">
|
|
<?= csrf_field() ?>
|
|
<div class="mb-3">
|
|
<label class="form-label fw-semibold">Name</label>
|
|
<input type="text" name="name" class="form-control" required maxlength="200" value="<?= esc(old('name', $dashboard['name'])) ?>">
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label fw-semibold">Description</label>
|
|
<textarea name="description" class="form-control" rows="3" maxlength="2000"><?= esc(old('description', (string) ($dashboard['description'] ?? ''))) ?></textarea>
|
|
</div>
|
|
<div class="row g-3 mb-3">
|
|
<div class="col-md-6">
|
|
<label class="form-label fw-semibold">Theme</label>
|
|
<?php $th = old('theme', $dashboard['theme'] ?? 'system'); ?>
|
|
<select name="theme" class="form-select">
|
|
<option value="system" <?= $th === 'system' ? 'selected' : '' ?>>System</option>
|
|
<option value="light" <?= $th === 'light' ? 'selected' : '' ?>>Light canvas</option>
|
|
<option value="dark" <?= $th === 'dark' ? 'selected' : '' ?>>Dark canvas</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label fw-semibold">Auto-refresh</label>
|
|
<?php $ri = (int) old('refresh_interval', $dashboard['refresh_interval'] ?? 0); ?>
|
|
<select name="refresh_interval" class="form-select">
|
|
<option value="0" <?= $ri === 0 ? 'selected' : '' ?>>Manual only</option>
|
|
<option value="60" <?= $ri === 60 ? 'selected' : '' ?>>Every 1 minute</option>
|
|
<option value="300" <?= $ri === 300 ? 'selected' : '' ?>>Every 5 minutes</option>
|
|
<option value="900" <?= $ri === 900 ? 'selected' : '' ?>>Every 15 minutes</option>
|
|
<option value="3600" <?= $ri === 3600 ? 'selected' : '' ?>>Every hour</option>
|
|
</select>
|
|
<div class="form-text">Applies to chart widgets on the live board.</div>
|
|
</div>
|
|
</div>
|
|
<button type="submit" class="btn btn-dark">Save changes</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-4">
|
|
<div class="card shadow-sm rounded-4 border border-danger-subtle">
|
|
<div class="card-body p-4">
|
|
<h2 class="h6 fw-bold text-danger mb-2">Danger zone</h2>
|
|
<p class="small text-muted mb-3">Deleting removes this dashboard and all widget placements. Charts in your library stay intact.</p>
|
|
<button type="button" class="btn btn-outline-danger w-100" data-bs-toggle="modal" data-bs-target="#modalDeleteDash">Delete dashboard</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="modal fade" id="modalDeleteDash" tabindex="-1" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered">
|
|
<div class="modal-content border-0 shadow-lg rounded-4">
|
|
<form action="<?= base_url('dashboard/delete/' . $did) ?>" method="post">
|
|
<?= csrf_field() ?>
|
|
<div class="modal-header border-0">
|
|
<h2 class="modal-title h5 fw-bold">Delete dashboard</h2>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p class="mb-2">Type <strong><?= esc($dashboard['name']) ?></strong> to confirm.</p>
|
|
<input type="text" name="confirm_name" class="form-control" required autocomplete="off" placeholder="Dashboard name">
|
|
</div>
|
|
<div class="modal-footer border-0">
|
|
<button type="button" class="btn btn-light border" data-bs-dismiss="modal">Cancel</button>
|
|
<button type="submit" class="btn btn-danger">Delete permanently</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?= $this->endSection() ?>
|