Initial commit
This commit is contained in:
198
resources/views/client-traffic/index.blade.php
Normal file
198
resources/views/client-traffic/index.blade.php
Normal file
@@ -0,0 +1,198 @@
|
||||
@extends('layouts.master')
|
||||
@section('page-title')
|
||||
{{ $page_title }}
|
||||
@endsection
|
||||
@section('page-css')
|
||||
@section('content')
|
||||
<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">Sender ID</th>
|
||||
<th scope="col">Date Created</th>
|
||||
<th scope="col">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if($traffic_arr)
|
||||
@foreach($traffic_arr->content as $row)
|
||||
<tr>
|
||||
<td class="fw-semibold">{{ $row->refId}}</td>
|
||||
<td class="recipient-cell">
|
||||
<div class="fw-semibold">{{ $row->to}}</div>
|
||||
<!-- <div class="text-secondary small">Ghana</div> -->
|
||||
</td>
|
||||
<td>{{ $row->message }}</td>
|
||||
<td><span class="channel-badge">{{ $row->from }}</span></td>
|
||||
<td>
|
||||
{{ \Carbon\Carbon::parse($row->createdAt)->format('Y-m-d H:i:s') }}
|
||||
</td>
|
||||
<td><span class="status-badge status-delivered">{{ $row->deliveryStatus }}</span></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-3">
|
||||
|
||||
|
||||
<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 </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">[campaign name] batch finished</div>
|
||||
<div class="small text-secondary mt-1">08:41</div>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@section('page-js')
|
||||
<script>
|
||||
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
135
resources/views/client-traffic/send-sms.blade.php
Normal file
135
resources/views/client-traffic/send-sms.blade.php
Normal file
@@ -0,0 +1,135 @@
|
||||
@extends('layouts.master')
|
||||
@section('page-title')
|
||||
{{ $page_title }}
|
||||
@endsection
|
||||
@section('page-css')
|
||||
@section('content')
|
||||
|
||||
<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">Campaign Composer</div>
|
||||
<h1 class="display-6 fw-semibold mb-3">Create and send an SMS campaign in one flow.</h1>
|
||||
<p class="fs-5 opacity-75 mb-0">
|
||||
Draft the message, choose sender and recipients, then send.
|
||||
</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">Available credit</div>
|
||||
<div class="h3 mb-0">48.2k</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="rounded-4 p-3 bg-white bg-opacity-10">
|
||||
<div class="small opacity-75">Sender IDs</div>
|
||||
<div class="h3 mb-0">3</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row g-4">
|
||||
<div class="col-md-12">
|
||||
<div class="compose-card mb-4">
|
||||
<div class="section-kicker mb-2">Message setup</div>
|
||||
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3 mb-4">
|
||||
<div>
|
||||
<h2 class="h3 mb-1">Compose message</h2>
|
||||
<p class="text-secondary mb-0">Set campaign details, recipients, and delivery rules before sending.</p>
|
||||
</div>
|
||||
<!-- <div class="d-flex flex-wrap gap-2">
|
||||
<span class="option-chip active"><i class="bi bi-lightning-charge"></i>Send now</span>
|
||||
<span class="option-chip"><i class="bi bi-calendar-event"></i>Schedule</span>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<form>
|
||||
<!-- <div class="row g-3 mb-4">
|
||||
<div class="col-md-6">
|
||||
<label for="campaignName" class="form-label fw-semibold">Campaign name</label>
|
||||
<input id="campaignName" type="text" class="form-control" value="March savings reminder">
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label for="senderSelect" class="form-label fw-semibold">Sender ID</label>
|
||||
<select id="senderSelect" class="form-select">
|
||||
<option>CLICKINFO</option>
|
||||
<option>CLICKOTP</option>
|
||||
<option>ACMEBANK</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label for="country" class="form-label fw-semibold">Primary market</label>
|
||||
<select id="country" class="form-select">
|
||||
<option>Ghana</option>
|
||||
<option>Malawi</option>
|
||||
<option>Zambia</option>
|
||||
</select>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="mb-4">
|
||||
<div class="d-flex align-items-center justify-content-between mb-2">
|
||||
<label for="messageText" class="form-label fw-semibold mb-0">Message content</label>
|
||||
<span class="muted-label">54 / 160 characters</span>
|
||||
</div>
|
||||
<textarea id="messageText" class="form-control py-3" rows="5">Dear customer, grow your savings with our new fixed plan. Visit any branch today.</textarea>
|
||||
<div class="char-progress mt-3"><span></span></div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-2 mb-2">
|
||||
<label class="form-label fw-semibold mb-0">Recipients</label>
|
||||
<span class="muted-label">Paste numbers(comma separated) or upload CSV</span>
|
||||
</div>
|
||||
<div class="recipient-box">
|
||||
<span class="recipient-tag"><i class="bi bi-telephone"></i>+233245559001</span>
|
||||
<span class="recipient-tag"><i class="bi bi-telephone"></i>+233502287744</span>
|
||||
<span class="recipient-tag"><i class="bi bi-telephone"></i>+265884412280</span>
|
||||
<span class="recipient-tag"><i class="bi bi-people"></i>Retail Savers Segment</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-md-6">
|
||||
<label for="deliveryWindow" class="form-label fw-semibold">Delivery window</label>
|
||||
<select id="deliveryWindow" class="form-select">
|
||||
<option>Immediately</option>
|
||||
<option>09:00 - 12:00</option>
|
||||
<option>12:00 - 15:00</option>
|
||||
<option>15:00 - 18:00</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="failover" class="form-label fw-semibold">Retry policy</label>
|
||||
<select id="failover" class="form-select">
|
||||
<option>Retry once after 5 minutes</option>
|
||||
<option>Retry twice after 10 minutes</option>
|
||||
<option>No retries</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-column flex-lg-row gap-3">
|
||||
<button type="button" class="btn btn-click flex-grow-1"><i class="bi bi-send me-2"></i>Send SMS campaign</button>
|
||||
<button type="button" class="btn btn-ghost flex-grow-1"><i class="bi bi-floppy me-2"></i>Save draft</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@section('page-js')
|
||||
<script>
|
||||
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
Reference in New Issue
Block a user