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

93 lines
5.1 KiB
PHP

<?= $this->extend('layouts/main') ?>
<?= $this->section('content') ?>
<header class="cb-page-header cb-page-header--center cb-page-header--compact">
<div>
<h1 class="cb-page-title">Workspace Settings</h1>
<p class="cb-page-subtitle mb-0">Name, slug, defaults, and status for this workspace.</p>
</div>
<a class="btn cb-settings-back" href="<?= base_url('workspace') ?>">Back</a>
</header>
<div class="cb-page-body cb-page-body--form-tight">
<?php if (session()->getFlashdata('success')): ?>
<div class="alert alert-success mb-3 py-2"><?= esc(session()->getFlashdata('success')) ?></div>
<?php endif; ?>
<?php if (session()->getFlashdata('error')): ?>
<div class="alert alert-danger mb-3 py-2"><?= esc(session()->getFlashdata('error')) ?></div>
<?php endif; ?>
<?php if (session()->getFlashdata('errors')): ?>
<div class="alert alert-danger mb-3 py-2">
<ul class="mb-0 small">
<?php foreach (session()->getFlashdata('errors') as $error): ?>
<li><?= esc($error) ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<div class="cb-form-shell">
<form method="post" action="<?= base_url('workspace/update/' . $workspace['id']) ?>">
<?= csrf_field() ?>
<div class="row g-3">
<div class="col-12 col-lg-6">
<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="col-12 col-lg-6">
<label class="form-label">Slug</label>
<input type="text" name="slug" class="form-control" value="<?= esc(old('slug', $workspace['slug'])) ?>">
</div>
<div class="col-12">
<label class="form-label">Description</label>
<textarea name="description" rows="2" class="form-control"><?= esc(old('description', $workspace['description'] ?? '')) ?></textarea>
</div>
<div class="col-12 col-md-4">
<label class="form-label">Timezone</label>
<select name="timezone" class="form-select">
<?php $tz = old('timezone', $workspace['timezone']); ?>
<?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 class="col-12 col-md-4">
<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 class="col-12 col-md-4">
<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 class="col-12 pt-1">
<div class="d-flex flex-wrap gap-2">
<button class="btn btn-primary" type="submit">Save Changes</button>
<a class="btn btn-outline-primary" href="<?= base_url('workspace/members/' . $workspace['id']) ?>">Manage Members</a>
<a class="btn btn-outline-secondary" href="<?= base_url('workspace/invite/' . $workspace['id']) ?>">Invitations</a>
</div>
</div>
</div>
</form>
</div>
<div class="cb-form-shell border-danger cb-ws-danger-shell">
<h2 class="h6 text-danger mb-2">Danger Zone</h2>
<p class="text-muted small mb-2">Only the workspace owner can delete this workspace.</p>
<form method="post" action="<?= base_url('workspace/delete/' . $workspace['id']) ?>" onsubmit="return confirm('Delete this workspace permanently?');">
<?= csrf_field() ?>
<button type="submit" class="btn btn-outline-danger">Delete Workspace</button>
</form>
</div>
</div>
<?= $this->endSection() ?>