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

42 lines
2.3 KiB
PHP

<?php
/** @var array $d */
/** @var bool $pinned */
$wid = (int) $d['id'];
$count = (int) ($d['widget_count'] ?? 0);
$isPublic = ! empty($d['is_public']);
?>
<div class="col-md-6 col-xl-4">
<div class="cb-dash-card h-100">
<div class="cb-dash-card-accent"></div>
<div class="cb-dash-card-body">
<div class="d-flex justify-content-between align-items-start gap-2 mb-2">
<div class="min-w-0">
<a href="<?= base_url('dashboard/view/' . $wid) ?>" class="cb-dash-card-title text-decoration-none"><?= esc($d['name']) ?></a>
<?php if (! empty($d['description'])): ?>
<p class="small text-muted mb-0 mt-1 text-truncate-2"><?= esc($d['description']) ?></p>
<?php endif; ?>
</div>
<form action="<?= base_url('dashboard/pin/' . $wid) ?>" method="post" class="m-0 position-relative z-1" onclick="event.stopPropagation();">
<?= csrf_field() ?>
<button type="submit" class="btn btn-sm btn-light border-0 p-1 rounded-2 cb-dash-pin" title="<?= $pinned ? 'Unpin' : 'Pin to top' ?>">
<span class="material-symbols-outlined" style="font-size:20px;"><?= $pinned ? 'star' : 'star_border' ?></span>
</button>
</form>
</div>
<div class="d-flex flex-wrap align-items-center gap-2 small mt-3 cb-dash-meta-row">
<span class="cb-dash-badge"><?= $count ?> widget<?= $count === 1 ? '' : 's' ?></span>
<?php if ($isPublic): ?>
<span class="cb-dash-badge cb-dash-badge-shared">Shared</span>
<?php else: ?>
<span class="cb-dash-badge cb-dash-badge-muted">Private</span>
<?php endif; ?>
<span class="text-muted ms-auto"><?= esc($d['updated_at'] ?? '') ?></span>
</div>
<div class="d-flex gap-2 mt-3 position-relative z-1 cb-dash-card-actions-row">
<a href="<?= base_url('dashboard/view/' . $wid) ?>" class="btn btn-sm btn-dark">Open</a>
<a href="<?= base_url('dashboard/settings/' . $wid) ?>" class="btn btn-sm btn-outline-secondary">Settings</a>
</div>
</div>
</div>
</div>