306 lines
17 KiB
HTML
306 lines
17 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Click Client Portal | SMS Traffic</title>
|
|
<link rel="icon" type="image/png" href="assets/img/click-logo.png">
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Sora:wght@400;600;700&display=swap" rel="stylesheet">
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
|
|
<link href="assets/css/theme.css" rel="stylesheet">
|
|
</head>
|
|
<body>
|
|
<div class="container py-3 py-lg-4">
|
|
<header class="topbar">
|
|
<div class="topbar-card d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<img src="assets/img/click-logo.png" alt="Click Mobile" class="brand-logo">
|
|
<div>
|
|
<div class="small text-uppercase text-primary fw-semibold">Client Portal</div>
|
|
<div class="fw-semibold">SMS traffic overview</div>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex flex-wrap align-items-center gap-2">
|
|
<span class="badge rounded-pill text-bg-light px-3 py-2">Acme Finance Ltd</span>
|
|
<span class="badge rounded-pill text-bg-light px-3 py-2"><i class="bi bi-clock-history me-1"></i> Last sync 09:12</span>
|
|
<a href="send-sms.html" class="btn btn-click px-4"><i class="bi bi-plus-circle me-2"></i>New SMS</a>
|
|
<a href="index.html" class="btn btn-ghost px-4">Log out</a>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<section class="traffic-hero mb-4">
|
|
<div class="row g-4 align-items-end">
|
|
<div class="col-lg-8">
|
|
<div class="text-uppercase small fw-semibold opacity-75 mb-2">Outbound SMS Monitoring</div>
|
|
<h1 class="display-6 fw-semibold mb-3">Track every message your team sends.</h1>
|
|
<p class="fs-5 opacity-75 mb-0">
|
|
Search sent SMS, review delivery outcomes, inspect failed attempts, and give clients a fast audit trail for every campaign.
|
|
</p>
|
|
</div>
|
|
<div class="col-lg-4">
|
|
<div class="row g-3">
|
|
<div class="col-6">
|
|
<div class="rounded-4 p-3 bg-white bg-opacity-10">
|
|
<div class="small opacity-75">Campaigns</div>
|
|
<div class="h3 mb-0">18</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-6">
|
|
<div class="rounded-4 p-3 bg-white bg-opacity-10">
|
|
<div class="small opacity-75">Countries</div>
|
|
<div class="h3 mb-0">7</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="row g-4 mb-4">
|
|
<div class="col-sm-6 col-xl-3">
|
|
<article class="traffic-card">
|
|
<div class="d-flex align-items-start justify-content-between mb-3">
|
|
<div class="icon-wrap"><i class="bi bi-send-check"></i></div>
|
|
<span class="small text-success fw-semibold">+12.6%</span>
|
|
</div>
|
|
<div class="muted-label mb-2">Messages sent today</div>
|
|
<div class="h3 mb-2">186,420</div>
|
|
<div class="mini-chart"><span style="width: 82%;"></span></div>
|
|
</article>
|
|
</div>
|
|
<div class="col-sm-6 col-xl-3">
|
|
<article class="traffic-card">
|
|
<div class="d-flex align-items-start justify-content-between mb-3">
|
|
<div class="icon-wrap"><i class="bi bi-check2-circle"></i></div>
|
|
<span class="small text-success fw-semibold">98.4%</span>
|
|
</div>
|
|
<div class="muted-label mb-2">Delivery success</div>
|
|
<div class="h3 mb-2">183,372</div>
|
|
<div class="mini-chart"><span style="width: 98%;"></span></div>
|
|
</article>
|
|
</div>
|
|
<div class="col-sm-6 col-xl-3">
|
|
<article class="traffic-card">
|
|
<div class="d-flex align-items-start justify-content-between mb-3">
|
|
<div class="icon-wrap"><i class="bi bi-exclamation-triangle"></i></div>
|
|
<span class="small text-warning fw-semibold">1.1%</span>
|
|
</div>
|
|
<div class="muted-label mb-2">Pending or queued</div>
|
|
<div class="h3 mb-2">2,074</div>
|
|
<div class="mini-chart"><span style="width: 34%;"></span></div>
|
|
</article>
|
|
</div>
|
|
<div class="col-sm-6 col-xl-3">
|
|
<article class="traffic-card">
|
|
<div class="d-flex align-items-start justify-content-between mb-3">
|
|
<div class="icon-wrap"><i class="bi bi-x-octagon"></i></div>
|
|
<span class="small text-danger fw-semibold">0.5%</span>
|
|
</div>
|
|
<div class="muted-label mb-2">Failed messages</div>
|
|
<div class="h3 mb-2">974</div>
|
|
<div class="mini-chart"><span style="width: 18%;"></span></div>
|
|
</article>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="row g-4">
|
|
<div class="col-xl-9">
|
|
<div class="filter-card mb-4">
|
|
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3 mb-3">
|
|
<div>
|
|
<h2 class="h4 mb-1">Sent SMS list</h2>
|
|
<p class="text-secondary mb-0">Filter messages by date, sender, recipient, or delivery state.</p>
|
|
</div>
|
|
<div class="d-flex flex-wrap gap-2">
|
|
<button class="btn btn-ghost px-4"><i class="bi bi-download me-2"></i>Export CSV</button>
|
|
<button class="btn btn-click px-4"><i class="bi bi-funnel me-2"></i>Apply filters</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row g-3">
|
|
<div class="col-md-6 col-lg-3">
|
|
<label for="range" class="form-label fw-semibold">Date range</label>
|
|
<select id="range" class="form-select">
|
|
<option>Today</option>
|
|
<option>Last 7 days</option>
|
|
<option>Last 30 days</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-6 col-lg-3">
|
|
<label for="senderId" class="form-label fw-semibold">Sender ID</label>
|
|
<select id="senderId" class="form-select">
|
|
<option>CLICKOTP</option>
|
|
<option>CLICKINFO</option>
|
|
<option>ACMEBANK</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-6 col-lg-3">
|
|
<label for="status" class="form-label fw-semibold">Status</label>
|
|
<select id="status" class="form-select">
|
|
<option>All statuses</option>
|
|
<option>Delivered</option>
|
|
<option>Pending</option>
|
|
<option>Failed</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-6 col-lg-3">
|
|
<label for="search" class="form-label fw-semibold">Search</label>
|
|
<input id="search" type="text" class="form-control" placeholder="Phone, message ID, text">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="traffic-table-card">
|
|
<div class="table-responsive">
|
|
<table class="table align-middle mb-0">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">Message ID</th>
|
|
<th scope="col">Recipient</th>
|
|
<th scope="col">Content</th>
|
|
<th scope="col">Channel</th>
|
|
<th scope="col">Sent time</th>
|
|
<th scope="col">Status</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td class="fw-semibold">MSG-900214</td>
|
|
<td class="recipient-cell">
|
|
<div class="fw-semibold">+233 24 555 9001</div>
|
|
<div class="text-secondary small">Ghana</div>
|
|
</td>
|
|
<td>Your OTP is 827194. Valid for 5 minutes.</td>
|
|
<td><span class="channel-badge">A2P SMS</span></td>
|
|
<td>17 Mar 2026, 08:58</td>
|
|
<td><span class="status-badge status-delivered">Delivered</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-semibold">MSG-900193</td>
|
|
<td class="recipient-cell">
|
|
<div class="fw-semibold">+265 88 441 2280</div>
|
|
<div class="text-secondary small">Malawi</div>
|
|
</td>
|
|
<td>Debit alert: MWK 24,000 completed successfully.</td>
|
|
<td><span class="channel-badge">Transactional</span></td>
|
|
<td>17 Mar 2026, 08:54</td>
|
|
<td><span class="status-badge status-delivered">Delivered</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-semibold">MSG-900171</td>
|
|
<td class="recipient-cell">
|
|
<div class="fw-semibold">+260 97 882 1433</div>
|
|
<div class="text-secondary small">Zambia</div>
|
|
</td>
|
|
<td>Reminder: your loan repayment is due tomorrow.</td>
|
|
<td><span class="channel-badge">Reminder</span></td>
|
|
<td>17 Mar 2026, 08:51</td>
|
|
<td><span class="status-badge status-pending">Queued</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-semibold">MSG-900148</td>
|
|
<td class="recipient-cell">
|
|
<div class="fw-semibold">+234 80 114 5600</div>
|
|
<div class="text-secondary small">Nigeria</div>
|
|
</td>
|
|
<td>Promo: Activate your merchant wallet before 6pm.</td>
|
|
<td><span class="channel-badge">Campaign</span></td>
|
|
<td>17 Mar 2026, 08:46</td>
|
|
<td><span class="status-badge status-failed">Rejected</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-semibold">MSG-900110</td>
|
|
<td class="recipient-cell">
|
|
<div class="fw-semibold">+254 72 445 6712</div>
|
|
<div class="text-secondary small">Kenya</div>
|
|
</td>
|
|
<td>Ticket update: your support request has been resolved.</td>
|
|
<td><span class="channel-badge">Support</span></td>
|
|
<td>17 Mar 2026, 08:39</td>
|
|
<td><span class="status-badge status-delivered">Delivered</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-semibold">MSG-900084</td>
|
|
<td class="recipient-cell">
|
|
<div class="fw-semibold">+233 50 228 7744</div>
|
|
<div class="text-secondary small">Ghana</div>
|
|
</td>
|
|
<td>Balance update: GHS 1,950 available in your wallet.</td>
|
|
<td><span class="channel-badge">Transactional</span></td>
|
|
<td>17 Mar 2026, 08:32</td>
|
|
<td><span class="status-badge status-delivered">Delivered</span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-xl-3">
|
|
<aside class="detail-card mb-4">
|
|
<div class="d-flex justify-content-between align-items-start mb-3">
|
|
<div>
|
|
<h2 class="h5 mb-1">Route health</h2>
|
|
<div class="muted-label">Top active markets</div>
|
|
</div>
|
|
<span class="badge rounded-pill text-bg-light">Live</span>
|
|
</div>
|
|
|
|
<div class="timeline-item">
|
|
<div class="d-flex justify-content-between fw-semibold mb-2">
|
|
<span>Ghana</span>
|
|
<span>99.1%</span>
|
|
</div>
|
|
<div class="mini-chart"><span style="width: 99%;"></span></div>
|
|
</div>
|
|
|
|
<div class="timeline-item">
|
|
<div class="d-flex justify-content-between fw-semibold mb-2">
|
|
<span>Malawi</span>
|
|
<span>97.8%</span>
|
|
</div>
|
|
<div class="mini-chart"><span style="width: 97%;"></span></div>
|
|
</div>
|
|
|
|
<div class="timeline-item">
|
|
<div class="d-flex justify-content-between fw-semibold mb-2">
|
|
<span>Zambia</span>
|
|
<span>96.4%</span>
|
|
</div>
|
|
<div class="mini-chart"><span style="width: 96%;"></span></div>
|
|
</div>
|
|
</aside>
|
|
|
|
<aside class="detail-card">
|
|
<h2 class="h5 mb-3">Recent activity</h2>
|
|
|
|
<div class="timeline-item pt-0 mt-0 border-0">
|
|
<div class="fw-semibold">Sender ID approved</div>
|
|
<div class="muted-label">CLICKINFO added for finance alerts</div>
|
|
<div class="small text-secondary mt-1">09:04</div>
|
|
</div>
|
|
|
|
<div class="timeline-item">
|
|
<div class="fw-semibold">Retry queue triggered</div>
|
|
<div class="muted-label">42 Zambia messages re-routed after timeout</div>
|
|
<div class="small text-secondary mt-1">08:57</div>
|
|
</div>
|
|
|
|
<div class="timeline-item">
|
|
<div class="fw-semibold">Campaign completed</div>
|
|
<div class="muted-label">Merchant onboarding reminder batch closed</div>
|
|
<div class="small text-secondary mt-1">08:41</div>
|
|
</div>
|
|
</aside>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
|
|
</body>
|
|
</html>
|