@if(!$cronJobAvailable)
Cron Job or Schedule task not available
Kindly ensure that the cron job or schedule task is enabled to facilitate the importing of
contacts, sending campaigns, and all other background-related tasks. Please navigate to Settings
> All Settings > Cron jobs for more details.
@endif
@if($serverCounts->active == 0 || $planCounts->active == 0 || $customerCounts->active == 0 || $subscriptionCounts->active == 0)
@php
$steps = [
[
'done' => $serverCounts->active != 0,
'title' => 'Add Sending Server or SMS Gateway',
'body' => 'Sending servers are needed in order to send out all the sms from the application. ' . config('app.name') . ' comes with support more than 200+ sending servers or gateways. You can use either of them, or Create your own one',
],
[
'done' => $planCounts->active != 0,
'title' => 'Create Plan for your Customers',
'body' => 'Plans are essential for configuring SMS pricing, coverage, sending limits, plan features, etc. ' . config('app.name') . ' allows you to create various types of price plans for your customers. Additionally, you can assign different types of sending servers or SMS gateways and allocate SMS units based on countries.',
],
[
'done' => $customerCounts->active != 0,
'title' => 'Your Customer Account',
'body' => 'When you first installed the application, you were asked to create a customer account. In case you haven\'t done so, please go ahead and create one. When using ' . config('app.name') . ', the customers are the ones that manage the contact lists, campaigns, templates and so on. You can also assign different types of pricing, sending servers or SMS gateways, permissions, etc to your customers.',
],
[
'done' => $subscriptionCounts->active != 0,
'title' => 'Assign Plan to your Customer',
'body' => 'After creating a Plan and Customer, now it\'s time to assign your plan to your customer. To assign a plan to your customer, go ahead and click on the Assign Plan button.',
],
];
$infoSteps = [
['title' => 'Assign Sender ID or Phone Numbers to your customer',
'body' => 'You have the option to assign sender IDs or phone numbers to your customers. This step is optional if your sending servers or SMS gateway do not support sender IDs or phone numbers as originators.'],
['title' => 'Application Branding Setup',
'body' => 'You have the option to configure your Application/Brand Name, Application Title, Logo, Favicon, Default Language, and many more. Navigate to Settings -> All Settings -> General to configure your application.'],
];
@endphp
@foreach($steps as $step)
-
{{ $step['title'] }}
{!! $step['body'] !!}
@endforeach
@foreach($infoSteps as $step)
-
{{ $step['title'] }}
{!! $step['body'] !!}
@endforeach
@endif
{{-- Quick shortcuts --}}
@foreach([
[
'route' => route('admin.customers.create'),
'label' => __('locale.buttons.create').' '.__('locale.menu.Customer'),
'sub' => __('locale.labels.add_a_new_customer_account'),
'icon' => 'user-plus',
'avatar' => 'bg-light-primary',
'permission' => 'create customer'
],
[
'route' => route('admin.plans.create'),
'label' => __('locale.buttons.create').' '.__('locale.menu.Plan'),
'sub' => __('locale.labels.set_up_a_subscription_plan'),
'icon' => 'credit-card',
'avatar' => 'bg-light-success',
'permission' => 'create plans'
],
[
'route' => route('admin.sending-servers.select'),
'label' => __('locale.sending_servers.add_sending_server'),
'sub' => __('locale.labels.configure_sms_gateway'),
'icon' => 'send',
'avatar' => 'bg-light-info',
'permission' => 'create sending_servers'
],
[
'route' => route('admin.settings.general'),
'label' => __('locale.labels.system_settings'),
'sub' => __('locale.labels.configure_your_platform'),
'icon' => 'settings',
'avatar' => 'bg-light-secondary',
'permission' => 'general settings'
],
] as $qa)
@can($qa['permission'])
{{ $qa['label'] }}
{{ $qa['sub'] }}
@endcan
@endforeach
{{-- Stat cards row 1 --}}
@foreach([
['value' => $customerCounts->active, 'total' => $customerCounts->total, 'label' => __('locale.menu.Customers'), 'route' => route('admin.customers.index'), 'icon' => 'users', 'color' => 'bg-light-primary'],
['value' => $planCounts->active, 'total' => $planCounts->total, 'label' => __('locale.menu.Plan'), 'route' => route('admin.plans.index'), 'icon' => 'credit-card', 'color' => 'bg-light-success'],
['value' => $adminDashboardQuickCounts['reports_total'], 'total' => null, 'label' => __('locale.labels.sms_send'), 'route' => route('admin.reports.all'), 'icon' => 'message-square','color' => 'bg-light-danger'],
['value' => $adminDashboardQuickCounts['campaigns_total'], 'total' => null, 'label' => __('locale.labels.campaigns_send'),'route' => route('admin.reports.campaigns'), 'icon' => 'send', 'color' => 'bg-light-info'],
] as $card)
@endforeach
{{-- Stat cards row 2 --}}
@foreach([
['value' => $subscriptionCounts->active, 'total' => $subscriptionCounts->total, 'label' => __('locale.menu.Subscriptions'), 'route' => route('admin.subscriptions.index'),'icon' => 'credit-card', 'color' => 'bg-light-success'],
['value' => $adminDashboardQuickCounts['announcements_total'], 'total' => null, 'label' => __('locale.menu.Announcements'), 'route' => route('admin.announcements.index'),'icon' => 'tv', 'color' => 'bg-light-warning'],
['value' => $adminDashboardQuickCounts['invoices_not_paid'], 'total' => $adminDashboardQuickCounts['invoices_paid'], 'label' => __('locale.menu.Invoices'), 'route' => route('admin.invoices.index'), 'icon' => 'shopping-cart','color' => 'bg-light-primary'],
['value' => $serverCounts->active, 'total' => $serverCounts->total, 'label' => __('locale.menu.Sending Servers'),'route' => route('admin.sending-servers.index'),'icon' => 'send', 'color' => 'bg-light-primary'],
] as $card)
@endforeach
{{-- KPI sparklines --}}
@foreach([
['id' => 'dash-spark-sms', 'label' => __('locale.labels.sms_send'), 'value' => Tool::format_number($adminDashboardQuickCounts['reports_total'])],
['id' => 'dash-spark-delivery', 'label' => __('locale.labels.delivered').' %', 'value' => $dashboardDeliveryRatePct.'%'],
['id' => 'dash-spark-customers-reg','label' => __('locale.menu.Customers'),
'value' => '
'.$customerCounts->active.' / '.$customerCounts->total],
['id' => 'dash-spark-campaigns', 'label' => __('locale.labels.campaigns_send'), 'value' => Tool::format_number($adminDashboardQuickCounts['campaigns_total'])],
] as $spark)
@endforeach
@forelse($dashboardHub['recent_subscriptions'] as $sub)
{{ $sub->plan->name ?? __('locale.menu.Plan') }}
{{ $sub->user?->displayName() }}
@if($sub->plan && $sub->plan->currency)
{{ Tool::format_price($sub->plan->price, $sub->plan->currency->format) }}
@endif
{{ $sub->status }}
@empty
{{ __('locale.datatables.no_results') }}
@endforelse
@forelse($dashboardHub['activity_feed'] as $item)
{{ $item['title'] }}
{{ $item['body'] }}
{{ isset($item['happened_at']) ? Carbon::parse($item['happened_at'])->diffForHumans() : '' }}
@empty
{{ __('locale.datatables.no_results') }}
@endforelse
@foreach([
['title' => __('locale.menu.Campaigns'), 'items' => $dashboardHub['top_campaigns'], 'color' => 'bg-primary', 'nameKey' => 'name', 'uid' => true],
['title' => __('locale.labels.sms_reports').' — '.__('locale.menu.Customers'), 'items' => $dashboardHub['top_customers_sms'], 'color' => 'bg-info', 'nameKey' => 'name', 'uid' => false],
] as $panel)
@forelse($panel['items'] as $row)
@php $pct = min(100, $row['delivery_rate']); @endphp
@empty
{{ __('locale.datatables.no_results') }}
@endforelse
@endforeach
| {{ __('locale.menu.Customer') }} |
{{ __('locale.menu.Plan') }} |
{{ __('locale.labels.status') }} |
{{ __('locale.menu.Subscriptions') }} |
{{ __('locale.labels.created_at') }} |
@forelse($dashboardHub['recent_customers'] as $cust)
|
{{ $cust->user?->email }}
|
{{ $cust->subscription?->plan?->name ?? '—' }} |
@if($cust->user && $cust->user->status)
{{ __('locale.labels.active') }}
@else
{{ __('locale.labels.inactive') }}
@endif
|
{{ $cust->subscription?->status ?? '—' }} |
{{ $cust->created_at?->diffForHumans() }} |
@empty
| {{ __('locale.datatables.no_results') }} |
@endforelse
| {{ __('locale.labels.sender_id') }} |
{{ __('locale.labels.name') }} |
{{ __('locale.menu.Customer') }} |
{{ __('locale.plans.price') }} |
{{ __('locale.plans.validity') }} |
@foreach($sender_ids as $senderid)
|
{{ $senderid->uid }}
|
{{ $senderid->sender_id }} |
{{ $senderid->user->displayName() }}
|
{{ Tool::format_price($senderid->price, $senderid->currency->format) }} |
{{ $senderid->displayFrequencyTime() }} |
@endforeach
@foreach($smsTypes as $type)
@endforeach
@endsection
@section('vendor-script')
@endsection
@section('page-script')
@endsection