update marketing
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 5m14s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 17s
Build, Push and Deploy / deploy-staging (push) Successful in 41s
Build, Push and Deploy / deploy-production (push) Has been skipped

This commit is contained in:
2026-05-14 11:55:22 +07:00
parent f80fcc4c1b
commit 05fd3230b8
448 changed files with 17545 additions and 5128 deletions

View File

@@ -0,0 +1,54 @@
<div class="responsive-table m-0">
<table class="table align-middle" id="erp-table">
<thead class="table-light">
<tr>
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Date & Time') }}</th>
<th class="text-start">{{ __('Title') }}</th>
<th class="text-start">{{ __('Message') }}</th>
<th class="text-start">{{ __('Message To') }}</th>
<th class="text-start">{{ __('Type') }}</th>
<th class="text-center">{{ __('Status') }}</th>
<th>{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($message_logs as $message)
<tr>
<td>{{ $message_logs->firstItem() + $loop->index }}</td>
<td class="text-start">{{ formatted_date($message->send_at) }} {{ formatted_time($message->send_at) }}</td>
<td class="text-start">{{ $message->title }}</td>
<td class="text-start">{!! Str::words($message->message, 5, '...') !!}</td>
@if ($message->channel == 'email')
<td class="text-start">{{ $message->user?->email }}</td>
@else
<td class="text-start">{{ $message->phone }}</td>
@endif
<td class="text-start">{{ ucfirst($message->channel) }}</td>
<td class="text-center">
@if ($message->status == 'success')
<span class="success-badge">{{__('Success')}}</span>
@elseif ($message->status == 'failed')
<span class="failed-badge">{{__('Failed')}}</span>
@else
<span class="pending-badge">{{__('Pending')}}</span>
@endif
</td>
<td class="d-print-none">
<a href="#msg-log-view-modal" data-bs-toggle="modal" class="view-details-btn message-view-btn"
data-title="{{ $message->title }}"
data-message="{{ $message->message }}"
data-message-to="{{ $message->channel == 'email' ? $message->user?->email : $message->phone }}"
data-date="{{ formatted_date($message->send_at) }} {{ formatted_time($message->send_at) }}"
data-type="{{ ucfirst($message->channel) }}">
{{__('View Details')}}
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $message_logs->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,78 @@
@extends('layouts.business.master')
@section('title')
{{ __('Message Logs') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="top-title smswhatsApp">
<h4>{{ __('SMS, Email, WhatsApp Log') }}</h4>
</div>
<div class="table-top-form p-16-0">
<form action="{{ route('business.message-logs.index') }}" method="GET" class="filter-form" table="#message-logs-data">
<div class="table-top-left d-flex gap-3 margin-l-16">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show- 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show- 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show- 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show- 500') }}</option>
</select>
<span></span>
</div>
<div class="table-search position-relative">
<input class="form-control" type="text" name="search" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" />
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round" />
</svg>
</span>
</div>
<div class="table-search position-relative w-auto">
<div class="gpt-up-down-arrow position-relative">
<select name="type" class="form-control">
<option value="">{{ __('All Type') }}</option>
<option value="sms">{{ __('SMS') }}</option>
<option value="whatsapp">{{ __('WhatsApp') }}</option>
<option value="email">{{ __('Email') }}</option>
</select>
<span></span>
</div>
</div>
<div class="table-search position-relative w-auto">
<div class="gpt-up-down-arrow position-relative">
<select name="status" class="form-control">
<option value="">{{ __('All Status') }}</option>
<option value="pending">{{ __('Pending') }}</option>
<option value="success">{{ __('Success') }}</option>
<option value="failed">{{ __('Failed') }}</option>
</select>
<span></span>
</div>
</div>
</div>
</form>
</div>
<div id="message-logs-data">
@include('marketingaddon::message-logs.datas')
</div>
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('marketingaddon::message-logs.view')
@endpush

View File

@@ -0,0 +1,44 @@
<div class="modal fade p-0" id="msg-log-view-modal">
<div class="modal-dialog modal-dialog-centered modal-md">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('View Details') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body order-form-section">
<table class="info-table">
<tbody>
<tr>
<td class="fw-bold" id="title"></td>
</tr>
<tr>
<td class="text-muted" id="message"></td>
</tr>
<tr>
<td>
<svg class="me-1" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 1.33203V3.33203M4 1.33203V3.33203" stroke="#3F3F46" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13.0003 2.33203H3.00033C2.26395 2.33203 1.66699 2.92898 1.66699 3.66536V13.332C1.66699 14.0684 2.26395 14.6654 3.00033 14.6654H13.0003C13.7367 14.6654 14.3337 14.0684 14.3337 13.332V3.66536C14.3337 2.92898 13.7367 2.33203 13.0003 2.33203Z" stroke="#3F3F46" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1.66699 5.66797H14.3337" stroke="#3F3F46" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M7.99667 8.66797H8.00267M7.99667 11.3346H8.00267M10.6603 8.66797H10.6663M5.33301 8.66797H5.33899M5.33301 11.3346H5.33899" stroke="#3F3F46" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>{{ __('Date') }}:
<span class="text-muted" id="date"></span>
</td>
</tr>
<tr>
<td class="border-0 w-50 viewmodal-type">
{{ __('Type') }}:
<span class="text-muted" id="type"></span>
</td>
<td class="border-0 w-50 text-end viewmodal-type">
{{ __('Message To') }}:
<span class="text-muted" id="message_to"></span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>