170 lines
8.7 KiB
PHP
170 lines
8.7 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/includes/app.php';
|
|
|
|
$pageTitle = 'Inquiry Desk';
|
|
$pageDescription = 'Preview list and detail view for strategic inquiries submitted through the first MVP slice.';
|
|
$pageRobots = 'noindex, nofollow';
|
|
$activePage = '';
|
|
|
|
$inquiries = list_inquiries();
|
|
$selectedReference = trim((string) ($_GET['reference'] ?? ''));
|
|
$selectedId = isset($_GET['id']) ? (int) $_GET['id'] : null;
|
|
$selectedInquiry = null;
|
|
|
|
if ($selectedReference !== '' || ($selectedId !== null && $selectedId > 0)) {
|
|
$selectedInquiry = find_inquiry($selectedId, $selectedReference !== '' ? $selectedReference : null);
|
|
}
|
|
|
|
if (!$selectedInquiry && $inquiries !== []) {
|
|
$selectedInquiry = $inquiries[0];
|
|
}
|
|
|
|
require __DIR__ . '/includes/header.php';
|
|
?>
|
|
<section class="page-section pt-4 pt-lg-5">
|
|
<div class="container">
|
|
<div class="hero-shell page-intro">
|
|
<div class="row g-4 align-items-center">
|
|
<div class="col-lg-8">
|
|
<span class="section-kicker">Preview desk</span>
|
|
<h1 class="page-title">Qualified inquiry queue and detail view.</h1>
|
|
<p class="lead-copy mb-0">This admin-style page gives the first delivery an internal operational surface: a list of saved inquiries and a focused detail panel for review.</p>
|
|
</div>
|
|
<div class="col-lg-4">
|
|
<div class="surface-card hero-panel h-100">
|
|
<span class="signal-chip signal-chip--primary mb-3">Queue snapshot</span>
|
|
<div class="metric-stack">
|
|
<div class="meta-stack mb-3">
|
|
<span class="meta-label">Entries</span>
|
|
<strong><?= h((string) count($inquiries)) ?></strong>
|
|
</div>
|
|
<div class="meta-stack">
|
|
<span class="meta-label">Storage mode</span>
|
|
<strong><?= using_preview_storage() ? 'Preview session' : 'Database' ?></strong>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php if (using_preview_storage()): ?>
|
|
<div class="notice-banner notice-banner--warning mb-4">
|
|
<strong>Preview mode:</strong> the queue is reading from the current browser session because the database connection is rejecting access right now.
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<div class="admin-layout">
|
|
<section class="table-shell p-3">
|
|
<div class="d-flex justify-content-between align-items-center gap-3 mb-3">
|
|
<div>
|
|
<span class="section-kicker">Inquiry list</span>
|
|
<h2 class="section-title mb-0">Current queue</h2>
|
|
</div>
|
|
<a class="btn btn-outline-brand btn-sm" href="partnership.php">New inquiry</a>
|
|
</div>
|
|
<?php if ($inquiries === []): ?>
|
|
<div class="empty-panel">
|
|
<span class="signal-chip signal-chip--gold mb-3">Empty state</span>
|
|
<h3 class="detail-title">No inquiries yet</h3>
|
|
<p class="empty-copy">Submit the first strategic brief to see the list and detail layout in action.</p>
|
|
<a class="btn btn-brand mt-2" href="partnership.php">Open inquiry desk</a>
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="table-responsive">
|
|
<table class="table queue-table align-middle">
|
|
<thead>
|
|
<tr>
|
|
<th>Reference</th>
|
|
<th>Contact</th>
|
|
<th>Interest</th>
|
|
<th>Status</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php foreach ($inquiries as $inquiry):
|
|
$isActive = $selectedInquiry && ($selectedInquiry['reference_code'] === $inquiry['reference_code']);
|
|
?>
|
|
<tr class="<?= $isActive ? 'queue-row--active' : '' ?>">
|
|
<td>
|
|
<a class="queue-link" href="<?= h(page_url('admin.php', ['reference' => $inquiry['reference_code']])) ?>"><?= h($inquiry['reference_code']) ?></a>
|
|
<div class="note-muted"><?= h(format_date_label($inquiry['created_at'] ?? '')) ?></div>
|
|
</td>
|
|
<td>
|
|
<strong><?= h($inquiry['contact_name']) ?></strong>
|
|
<div class="note-muted"><?= h($inquiry['organization_name']) ?></div>
|
|
</td>
|
|
<td>
|
|
<div class="queue-summary"><?= h($inquiry['interest_area']) ?></div>
|
|
<div class="note-muted"><?= h($inquiry['inquiry_type']) ?></div>
|
|
</td>
|
|
<td><span class="status-badge status-badge--new"><?= h($inquiry['status'] ?? 'New') ?></span></td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<?php endif; ?>
|
|
</section>
|
|
|
|
<aside class="surface-card p-3">
|
|
<?php if (!$selectedInquiry): ?>
|
|
<div class="empty-panel h-100 d-flex flex-column justify-content-center">
|
|
<span class="signal-chip signal-chip--gold mb-3">No selection</span>
|
|
<h3 class="detail-title">Select an inquiry</h3>
|
|
<p class="empty-copy">Pick a queue item to inspect the detailed context for review.</p>
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="d-flex justify-content-between align-items-start gap-3 mb-3">
|
|
<div>
|
|
<span class="section-kicker">Detail view</span>
|
|
<h2 class="section-title mb-1"><?= h($selectedInquiry['organization_name']) ?></h2>
|
|
<p class="meta-inline mb-0"><?= h($selectedInquiry['contact_name']) ?> · <?= h($selectedInquiry['email']) ?></p>
|
|
</div>
|
|
<span class="status-badge status-badge--new"><?= h($selectedInquiry['status'] ?? 'New') ?></span>
|
|
</div>
|
|
<div class="copy-inline mb-3">
|
|
<span class="signal-chip signal-chip--gold" id="selectedReference"><?= h($selectedInquiry['reference_code']) ?></span>
|
|
<button class="btn btn-subtle btn-sm" type="button" data-copy-target="#selectedReference">Copy</button>
|
|
</div>
|
|
<div class="detail-grid">
|
|
<div class="meta-block">
|
|
<span class="meta-label">Inquiry type</span>
|
|
<div class="detail-title"><?= h($selectedInquiry['inquiry_type']) ?></div>
|
|
</div>
|
|
<div class="meta-block">
|
|
<span class="meta-label">Interest area</span>
|
|
<div class="detail-title"><?= h($selectedInquiry['interest_area']) ?></div>
|
|
</div>
|
|
<div class="detail-meta">
|
|
<div class="meta-block">
|
|
<span class="meta-label">Preferred date</span>
|
|
<strong><?= h(format_date_label($selectedInquiry['target_date'] ?? '')) ?></strong>
|
|
</div>
|
|
<div class="meta-block">
|
|
<span class="meta-label">Scale</span>
|
|
<strong><?= h($selectedInquiry['event_scale'] ?? 'To be discussed') ?></strong>
|
|
</div>
|
|
<div class="meta-block">
|
|
<span class="meta-label">Location</span>
|
|
<strong><?= h($selectedInquiry['preferred_location'] ?? 'To be discussed') ?></strong>
|
|
</div>
|
|
<div class="meta-block">
|
|
<span class="meta-label">Phone / WhatsApp</span>
|
|
<strong><?= h($selectedInquiry['phone'] ?: 'Not provided') ?></strong>
|
|
</div>
|
|
</div>
|
|
<div class="meta-block">
|
|
<span class="meta-label">Brief summary</span>
|
|
<p class="detail-copy mb-0"><?= nl2br(h($selectedInquiry['notes'])) ?></p>
|
|
</div>
|
|
</div>
|
|
<?php endif; ?>
|
|
</aside>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<?php require __DIR__ . '/includes/footer.php'; ?>
|