Files
scoutiq/resources/views/admin/contacts/show.php

82 lines
4.3 KiB
PHP

<div class="page-header">
<div>
<h1><?= $this->escape($contact['name']) ?></h1>
<p><?= $contact['position'] ? $this->escape($contact['position']) . ' • ' : '' ?><?= $contact['org_name'] ? $this->escape($contact['org_name']) : 'Independent' ?></p>
</div>
<div style="display: flex; gap: 10px;">
<a href="/admin/contacts/<?= $contact['id'] ?>/edit" class="btn btn-secondary">Edit</a>
</div>
</div>
<?php if ($flashSuccess = $this->session->getFlash('success')): ?>
<div class="alert alert-success"><span><?= $this->escape($flashSuccess) ?></span></div>
<?php endif; ?>
<div class="detail-grid">
<div class="glass-panel">
<h3 style="margin-bottom: 20px;">Contact Details</h3>
<div class="detail-row">
<span class="detail-label">Email</span>
<span><?= $contact['email'] ? $this->escape($contact['email']) : '-' ?></span>
</div>
<div class="detail-row">
<span class="detail-label">Phone</span>
<span><?= $contact['phone'] ? $this->escape($contact['phone']) : '-' ?></span>
</div>
<div class="detail-row">
<span class="detail-label">Position</span>
<span><?= $this->escape($contact['position'] ?? '-') ?></span>
</div>
<div class="detail-row">
<span class="detail-label">Organization</span>
<span><?= $contact['org_id'] ? '<a href="/admin/organizations/' . $contact['org_id'] . '">' . $this->escape($contact['org_name']) . '</a>' : '-' ?></span>
</div>
<div class="detail-row" style="flex-direction: column; align-items: flex-start;">
<span class="detail-label">Notes</span>
<p style="margin-top: 8px; line-height: 1.6;"><?= $this->escape($contact['notes'] ?? 'No notes') ?></p>
</div>
</div>
<div>
<!-- Interactions -->
<div class="glass-panel" style="margin-bottom: 20px;">
<h3 style="margin-bottom: 16px;">Interactions (<?= count($interactions) ?>)</h3>
<form action="/admin/contacts/<?= $contact['id'] ?>/interaction" method="POST" style="display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px;">
<input type="hidden" name="_csrf" value="<?= $this->session->getCsrfToken() ?>">
<div class="form-row" style="display: flex; gap: 10px;">
<select name="type" class="form-control" style="flex: 0 0 120px;">
<option value="note">Note</option>
<option value="email">Email</option>
<option value="call">Call</option>
<option value="meeting">Meeting</option>
</select>
<input type="text" name="notes" class="form-control" placeholder="Add interaction note..." required>
<button type="submit" class="btn btn-primary">Log</button>
</div>
</form>
<?php if (empty($interactions)): ?>
<p style="color: var(--text-muted);">No interactions logged yet.</p>
<?php else: ?>
<?php foreach ($interactions as $interaction): ?>
<div class="list-item">
<div style="display: flex; justify-content: space-between; align-items: center;">
<span class="badge" style="background: rgba(56, 189, 248, 0.2); color: #38bdf8;"><?= $this->escape($interaction['type']) ?></span>
<small style="color: var(--text-muted);"><?= date('M j, g:i a', strtotime($interaction['created_at'])) ?></small>
</div>
<p style="margin-top: 8px; line-height: 1.5;"><?= $this->escape($interaction['notes']) ?></p>
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
</div>
</div>
<style>
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.detail-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
.detail-label { font-size: 0.85rem; color: var(--text-muted); font-weight: 600; }
.list-item { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
@media (max-width: 768px) { .detail-grid { grid-template-columns: 1fr; } }
</style>