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

77 lines
3.6 KiB
PHP

<?= $this->extend('layouts/main') ?>
<?= $this->section('content') ?>
<header class="cb-page-header cb-page-header--center">
<div class="min-w-0">
<h1 class="cb-page-title text-break"><?= esc($savedQuery['name']) ?></h1>
<p class="cb-page-subtitle mb-0"><?= esc($savedQuery['description'] ?: 'No description') ?></p>
</div>
<div class="d-flex flex-wrap gap-2 justify-content-end">
<a href="<?= base_url('query/edit/' . (int) $savedQuery['id']) ?>" class="btn cb-page-primary-btn">Edit &amp; test</a>
<a href="<?= base_url('query/edit/' . (int) $savedQuery['id']) ?>#test" class="btn btn-outline-success">Test variables</a>
<a href="<?= base_url('query') ?>" class="btn cb-settings-back">All queries</a>
</div>
</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; ?>
<div class="row g-3">
<div class="col-md-6">
<div class="card border-0 shadow-sm h-100">
<div class="card-header bg-light">Details</div>
<div class="card-body small">
<p class="mb-2"><strong>Data source:</strong> <?= esc($dataSourceName ?? '-') ?></p>
<p class="mb-2"><strong>Type:</strong> <span class="badge bg-secondary-subtle text-secondary"><?= esc(strtoupper((string) $savedQuery['query_type'])) ?></span></p>
<p class="mb-2"><strong>Cache TTL:</strong> <?= esc((string) ($savedQuery['cache_ttl'] ?? 0)) ?> s</p>
<p class="mb-0"><strong>Updated:</strong> <?= esc($savedQuery['updated_at'] ?? '-') ?></p>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card border-0 shadow-sm h-100">
<div class="card-header bg-light">Variables (<?= count($queryVariables) ?>)</div>
<div class="card-body">
<?php if ($queryVariables === []): ?>
<p class="text-muted small mb-0">No variables stored. Use Edit to add SQL with <code>{{name}}</code> placeholders.</p>
<?php else: ?>
<ul class="list-unstyled small mb-0">
<?php foreach ($queryVariables as $v): ?>
<li class="mb-2">
<code><?= esc($v['name']) ?></code>
— <?= esc($v['label'] ?: $v['name']) ?>
<span class="text-muted">(<?= esc($v['type']) ?>)</span>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php if ((string) $savedQuery['query_type'] === 'raw_sql' && ! empty($savedQuery['raw_sql'])): ?>
<div class="card border-0 shadow-sm mt-3">
<div class="card-header bg-light">SQL</div>
<div class="card-body">
<pre class="small mb-0" style="white-space: pre-wrap;"><?= esc($savedQuery['raw_sql']) ?></pre>
</div>
</div>
<?php endif; ?>
<?php if ((string) $savedQuery['query_type'] === 'api' && ! empty($savedQuery['api_endpoint'])): ?>
<div class="card border-0 shadow-sm mt-3">
<div class="card-header bg-light">API endpoint</div>
<div class="card-body">
<pre class="small mb-0" style="white-space: pre-wrap;"><?= esc($savedQuery['api_endpoint']) ?></pre>
</div>
</div>
<?php endif; ?>
</div>
<?= $this->endSection() ?>