Viewing file: index.blade.php (62.4 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
@extends('layouts.admin')
@section('title', trans('admin.settings.setting'))
@section('extra-css') @if(Module::has('PaymentGateway') && Module::find('PaymentGateway')->isEnabled()) <link rel="stylesheet" href="{{Module::asset('paymentgateway:css/paymentgateway.css')}}"> @endif
<style> #email_temp .nav-link{ width: 100% !important; } /* Professional Settings Page Styling */ .settings-page-container { background: #f8f9fa; } /* Enhanced Tab Navigation */ .custom-ul-section { background: #fff; border-radius: 8px; padding: 8px !important; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .custom-ul-section .nav-item { margin: 0 4px; } .custom-ul-section .nav-link { border-radius: 6px; padding: 10px 16px; font-weight: 500; color: #495057; transition: all 0.3s ease; border: 1px solid transparent; display: flex; align-items: center; white-space: nowrap; } .custom-ul-section .nav-link:hover { background: #f8f9fa; color: #007bff; transform: translateY(-1px); } .custom-ul-section .nav-link.active { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #fff; box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4); border-color: transparent; } .custom-ul-section .nav-link i { font-size: 16px; margin-right: 6px; } /* Enhanced Card Styling */ .settings-page-container .card { border: none; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); margin-bottom: 24px; overflow: hidden; } .settings-page-container .card-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border: none; padding: 20px 24px; } .settings-page-container .card-header h2 { margin: 0; font-size: 24px; font-weight: 600; } .settings-page-container .card-header h2 a { color: #fff; text-decoration: none; } /* Section Cards within Tabs */ .tab-content .card { border: 1px solid #e9ecef; transition: all 0.3s ease; } .tab-content .card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.1); transform: translateY(-2px); } .tab-content .card-header.bg-light { background: linear-gradient(to right, #f8f9fa, #e9ecef) !important; border-bottom: 2px solid #667eea; } .tab-content .card-header h5 { color: #2d3748; font-weight: 600; margin: 0; display: flex; align-items: center; } .tab-content .card-header h5 i { color: #667eea; margin-right: 10px; font-size: 20px; } /* Enhanced Form Elements */ .tab-content .form-group label { font-weight: 500; color: #2d3748; margin-bottom: 8px; font-size: 14px; } .tab-content .form-control { border: 1px solid #cbd5e0; border-radius: 6px; padding: 10px 14px; transition: all 0.3s ease; font-size: 14px; } .tab-content .form-control:focus { border-color: #667eea; box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); } .tab-content textarea.form-control { resize: vertical; } /* Enhanced Alerts */ .tab-content .alert { border: none; border-radius: 8px; padding: 14px 18px; margin-bottom: 20px; display: flex; align-items: center; } .tab-content .alert-info { background: linear-gradient(135deg, #e0f2fe 0%, #dbeafe 100%); color: #075985; border-left: 4px solid #0284c7; } .tab-content .alert-warning { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); color: #92400e; border-left: 4px solid #f59e0b; } .tab-content .alert i { font-size: 18px; } /* Enhanced Buttons */ .tab-content .btn-primary { border-radius: 6px; padding: 10px 24px; font-weight: 500; transition: all 0.3s ease; } .tab-content .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3); } .tab-content .btn-primary:active { transform: translateY(0); } .tab-content .btn-sm { padding: 6px 16px; font-size: 13px; } /* Image Preview Styling */ .img-demo-setting { max-width: 120px; max-height: 80px; border: 2px solid #e9ecef; border-radius: 6px; padding: 4px; background: #fff; } /* Custom File Input */ .custom-file-label { border: 1px solid #cbd5e0; border-radius: 6px; padding: 10px 14px; } /* Permission Checkboxes */ .icheck-success input[type="checkbox"]:checked + label::before { background-color: #667eea; border-color: #667eea; } /* Responsive Improvements */ @media (max-width: 768px) { .custom-ul-section { flex-direction: column; width: 100%; } .custom-ul-section .nav-item { width: 100%; margin: 4px 0; } .custom-ul-section .nav-link { width: 100%; justify-content: center; } .settings-page-container .card-header h2 { font-size: 20px; } } /* Tab Content Styling */ .tab-content { padding: 24px; background: #fff; border-radius: 0 0 12px 12px; } .tab-pane { animation: fadeIn 0.3s ease-in; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } /* Enhanced Row Spacing */ .tab-content .row { margin-bottom: 0; } .tab-content .form-group { margin-bottom: 20px; } /* Card Body Padding */ .tab-content .card-body { padding: 24px; } /* Section Dividers */ .tab-content hr { border-top: 2px solid #e9ecef; margin: 20px 0; } /* Tooltip Styling */ .alert-tooltip-custom { color: #667eea; cursor: help; } /* Select2 Enhancement */ .select2-container--default .select2-selection--single { border: 1px solid #cbd5e0; border-radius: 6px; height: 42px; padding: 6px 12px; } .select2-container--default .select2-selection--single:focus { border-color: #667eea; } </style> @endsection
@section('content') @php $skip_permission=['number_purchase','sender_id_request','manage_sender_id','sender_id_list','staff_list','staff_create','staff_edit','staff_delete','staff_manage','staff_login_as']; @endphp
<section class="content-header">
</section> <!-- Main content --> <section class="content settings-page-container"> <div class="row"> <div class="col-12 mx-auto col-sm-10"> <!-- Custom Tabs --> <div class="card">
<div class="card-header d-flex p-0"> <div class="row"> <h2 class="card-title p-3"><a href="{{route('admin.settings.index')}}">@lang('admin.settings.setting')</a></h2> <ul class="nav nav-pills ml-auto p-2 custom-ul-section"> <!-- General Settings --> <li class="nav-item"> <a class="nav-link active" href="#general_settings_tab" data-toggle="tab"> <i class="fas fa-cog mr-1"></i> {{trans('General Settings')}} </a> </li> <!-- User & Access Management --> <li class="nav-item"> <a class="nav-link" href="#user_access_tab" data-toggle="tab"> <i class="fas fa-users-cog mr-1"></i> {{trans('User & Access')}} </a> </li> <!-- Communication Settings --> <li class="nav-item"> <a class="nav-link" href="#communication_tab" data-toggle="tab"> <i class="fas fa-envelope mr-1"></i> {{trans('Communication')}} </a> </li> <!-- Localization & Regional --> <li class="nav-item"> <a class="nav-link" href="#localization_tab" data-toggle="tab"> <i class="fas fa-globe mr-1"></i> {{trans('Localization')}} </a> </li> <!-- Payment & Billing --> @if(Module::has('PaymentGateway') && Module::find('PaymentGateway')->isEnabled()) <li class="nav-item"> <a class="nav-link" href="#payment_billing_tab" data-toggle="tab" id="payment_gateway_nav"> <i class="fas fa-credit-card mr-1"></i> {{trans('Payment & Billing')}} </a> </li> @endif <!-- System & Maintenance --> <li class="nav-item"> <a class="nav-link" href="#system_maintenance_tab" data-toggle="tab"> <i class="fas fa-tools mr-1"></i> {{trans('System & Maintenance')}} </a> </li>
<!-- Hidden tabs (kept for backward compatibility) --> <li class="nav-item d-none"><a class="nav-link apiTab" href="#api_tab" data-toggle="tab">@lang('admin.settings.api')</a></li> <li class="nav-item d-none"><a class="nav-link" href="#whatsapp_api" data-toggle="tab">@lang('admin.settings.whatsapp_api')</a></li> <li class="nav-item d-none"><a class="nav-link" href="#sending_setting" id="sending_setting_nav" data-toggle="tab">{{trans('admin.settings.sending_setting')}}</a></li> </ul> </div> </div><!-- /.card-header --> <div class="card-body"> <div class="tab-content"> <!-- ======================================== TAB 1: GENERAL SETTINGS ======================================== --> <div class="tab-pane active" id="general_settings_tab"> <form method="post" role="form" id="application_form" action="{{route('admin.settings.app_update')}}" enctype="multipart/form-data"> @csrf <div class="alert alert-info" role="alert"> <i class="fas fa-info-circle mr-2"></i> {{trans('admin.app_update_info')}} </div>
<!-- Application Branding Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-palette mr-2"></i>{{trans('Application Branding')}}</h5> </div> <div class="card-body"> <div class="form-group"> <label for="name">@lang('admin.form.input.app_name')</label> <input value="{{get_settings('app_name')}}" type="text" name="app_name" class="form-control" id="app_name" placeholder="@lang('admin.form.input.app_name')"> </div>
<div class="row"> <div class="col-md-6"> <div class="form-group"> <label for="favicon">@lang('admin.form.input.favicon')</label> @if(get_settings('app_favicon'))<img class="img-demo-setting d-block mb-2" src="{{asset('uploads/'.get_settings('app_favicon'))}}" alt="App Favicon">@endif <div class="input-group"> <div class="custom-file"> <input name="favicon" type="file" class="custom-file-input" id="favicon"> <label class="custom-file-label" for="favicon">@lang('admin.form.input.choose_file')</label> </div> </div> </div> </div>
<div class="col-md-6"> <div class="form-group"> <label for="logo">@lang('admin.form.input.logo')</label> @if(get_settings('app_logo'))<img class="img-demo-setting d-block mb-2" src="{{asset('uploads/'.get_settings('app_logo'))}}" alt="App Logo">@endif <div class="input-group"> <div class="custom-file"> <input name="logo" type="file" class="custom-file-input" id="logo"> <label class="custom-file-label" for="logo">@lang('admin.form.input.choose_file')</label> </div> </div> </div> </div> </div> </div> </div>
<!-- Contact Information Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-address-card mr-2"></i>{{trans('admin.Contact_Information')}}</h5> </div> <div class="card-body"> @php $contactData= get_settings('contact_info')?json_decode(get_settings('contact_info')):''; @endphp <div class="form-group"> <label for="">{{trans('admin.address')}}</label> <textarea name="address" class="form-control" cols="4" rows="4">{{isset($contactData->address)?$contactData->address:''}}</textarea> </div> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label for="">{{trans('admin.phone_number')}}</label> <input type="number" name="phone_number" class="form-control" value="{{isset($contactData->phone_number)?$contactData->phone_number:''}}"> </div> </div> <div class="col-md-6"> <div class="form-group"> <label for="">{{trans('admin.table.email')}}</label> <input type="email" name="email_address" class="form-control" value="{{isset($contactData->email_address)?$contactData->email_address:''}}"> </div> </div> </div> </div> </div>
<!-- Application Settings Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-sliders-h mr-2"></i>{{trans('Application Settings')}}</h5> </div> <div class="card-body"> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label for="">{{trans('admin.notice_status')}}</label> <select name="notice_status" class="form-control"> <option {{isset(get_settings('notice_status')->notice_status) && get_settings('notice_status')->notice_status=='disable'?'selected':''}} value="disable">{{trans('Disabled')}}</option> <option {{isset(get_settings('notice_status')->notice_status) && get_settings('notice_status')->notice_status=='enable'?'selected':''}} value="enable">{{trans('Enable')}}</option> </select> </div> </div>
<div class="col-md-6"> <div class="form-group"> <label for="status">@lang('admin.settings.landing_page')</label> <select class="form-control" name="landing_page_status" id="landing_page_status"> <option {{get_settings('landing_page_status')=='enable'?'selected':''}} value="enable">{{trans('admin.enabled')}}</option> <option {{get_settings('landing_page_status')=='disable'?'selected':''}} value="disable">{{trans('admin.disabled')}}</option> </select> </div> </div>
<div class="col-md-6"> <div class="form-group"> <label for="status">@lang('admin.addon.customer_registration')</label> <select class="form-control" name="registration_status" id="registration_status"> <option {{get_settings('registration_status')=='disable'?'selected':''}} value="disable">{{trans('admin.disabled')}}</option> <option {{get_settings('registration_status')=='enable'?'selected':''}} value="enable">{{trans('admin.enabled')}}</option> </select> </div> </div>
<div class="col-md-6"> <div class="form-group"> <label for="status">{{trans('admin.reseller_status')}} <i data-toggle="tooltip" data-placement="right" class="fa fa-question-circle alert-tooltip-custom ml-1" title="You cann't disabled reseller status, if you create any reseller or master reseller"></i> </label> <select class="form-control" name="reseller_status" {{isset($seller)?'disabled':''}}> <option {{get_settings('reseller_status')=='enable'?'selected':''}} value="enable">{{trans('admin.enabled')}}</option> <option {{get_settings('reseller_status')=='disable'?'selected':''}} value="disable">{{trans('admin.disabled')}}</option> </select> </div> </div>
<div class="col-md-6"> <div class="form-group"> <label for="status">{{trans('admin.Maintenance_Mode')}}</label> <select class="form-control" name="maintence_mode"> <option {{get_settings('maintence_mode')=='disable'?'selected':''}} value="disable">{{trans('admin.disabled')}}</option> <option {{get_settings('maintence_mode')=='enable'?'selected':''}} value="enable">{{trans('admin.enabled')}}</option> </select> </div> </div>
<div class="col-md-6"> <div class="form-group"> <label for="crisp_token">@lang('admin.form.input.crisp_token')</label> <input value="{{get_settings('crisp_token')}}" type="text" name="crisp_token" class="form-control" id="crisp_token" placeholder="@lang('admin.form.input.crisp_token')"> </div> </div>
<div class="col-md-6"> <div class="form-group"> <label for="tour_status">{{trans('Quick Tour')}}</label> <select class="form-control" name="tour_status" id="tour_status"> <option {{get_settings('tour_status')=='disable'?'selected':''}} value="disable">{{trans('admin.disabled')}}</option> <option {{get_settings('tour_status')=='enable'?'selected':''}} value="enable">{{trans('admin.enabled')}}</option> </select> </div> </div> </div> </div> </div>
<button type="submit" class="btn btn-primary"> <i class="fas fa-save mr-2"></i>@lang('admin.form.button.submit') </button> </form> </div>
<!-- ======================================== TAB 2: USER & ACCESS MANAGEMENT ======================================== --> <div class="tab-pane" id="user_access_tab"> <!-- Admin Profile Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-user-circle mr-2"></i>{{trans('admin.settings.profile')}}</h5> </div> <div class="card-body"> <form method="post" role="form" id="profile_form" action="{{route('admin.settings.profile_update')}}" enctype="multipart/form-data"> @csrf <div class="alert alert-info" role="alert"> <i class="fas fa-shield-alt mr-2"></i> {{trans('admin.profile_credentials_protect_info')}} </div>
@include('admin.settings.form')
<button type="submit" class="btn btn-primary"> <i class="fas fa-save mr-2"></i>@lang('admin.form.button.submit') </button> </form> </div> </div>
<!-- Roles & Permissions Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0 d-inline-block"><i class="fas fa-user-shield mr-2"></i>{{trans('admin.permission')}}</h5> <button type="button" class="btn btn-sm btn-primary float-right" id="add_new_role"> <i class="fas fa-plus mr-1"></i>{{trans('admin.addNewRole')}} </button> </div> <div class="card-body"> <div class="col-xl-12"> <div>{{trans('admin.permissionName')}}</div> <hr> <form action="{{route('admin.settings.permission.update')}}" method="post"> @csrf @method('put') @php $counter=0; @endphp @foreach($roles as $role) @if($role->name !='agency_admin') @if(auth()->user()) <div class="row mb-2" id="show_role_{{$role->name}}"> <div class="col-lg-2"> <label>{{$role->name}} <span class="float-right ml-3"><a href="#"><i data-role="{{$role->name}}" class="fa fa-trash text-danger"></i></a></span></label> </div> <div class="col-lg-10"> <div class="row"> <input type="hidden" value="{{$role->name}}" name="role_name[]"> @php $pre_role= \Spatie\Permission\Models\Role::where('name',$role->name)->where('admin_id', auth()->user()->id)->first(); $rolePermissions=$pre_role->getAllPermissions()->pluck('name')->toArray(); @endphp @foreach(get_customer_permission() as $key=>$permission) @if(!in_array($permission, $skip_permission)) @php $counter++; @endphp <div class="col-sm-4 display"> <div class="form-group clearfix"> <div class="icheck-success"> <input name="permission[{{$role->id}}][]" value="{{$permission}}" {{in_array($permission,$rolePermissions)?'checked':''}} type="checkbox" id="checkboxSuccess_{{$permission}}_{{$role->name}}"> <label for="checkboxSuccess_{{$permission}}_{{$role->name}}" class="text-muted d-inline ml-2"> {{ucfirst(str_replace('_',' ',$permission))}} </label> </div> </div> </div> @endif @endforeach </div> </div> </div> @endif @endif @endforeach
@if(isset($counter) && $counter > 0) <div class="text-right mt-2"> <button type="submit" class="btn btn-primary"> <i class="fas fa-save mr-2"></i>{{trans('admin.submit')}} </button> </div> @endif </form> </div> </div> </div> </div>
<!-- ======================================== TAB 3: COMMUNICATION SETTINGS ======================================== --> <div class="tab-pane" id="communication_tab"> <!-- SMTP Configuration Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-server mr-2"></i>{{trans('admin.settings.smtp')}}</h5> </div> <div class="card-body"> <form method="post" role="form" id="smtp_form" action="{{route('admin.settings.smtp_update')}}" enctype="multipart/form-data"> @csrf
<div class="alert alert-info" role="alert"> <i class="fas fa-info-circle mr-2"></i> {{trans('admin.smtp_update_info')}} </div>
@include('admin.settings.smtp_form')
<button type="submit" class="btn btn-primary"> <i class="fas fa-save mr-2"></i>@lang('admin.form.button.submit') </button> </form> </div> </div>
<!-- Email Templates Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-file-alt mr-2"></i>{{trans('admin.settings.email_template')}}</h5> </div> <div class="card-body"> <div class="alert alert-info" role="alert"> <i class="fas fa-info-circle mr-2"></i> {{trans('admin.email_template_update_info')}} </div>
@include('admin.settings.email_template') </div> </div>
<!-- OTP Settings Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-key mr-2"></i>{{trans('admin.otp_setting')}}</h5> </div> <div class="card-body"> <form method="post" role="form" id="otp_settings" action="{{route('admin.settings.otp.setting.update')}}" enctype="multipart/form-data"> @csrf
<div class="form-group"> <label for="">{{trans('admin.otp_setting')}}</label> <select name="otp_setting" class="form-control"> <option {{ get_settings('otp_setting')=='disable'?'selected':''}} value="disable">{{trans('Disabled')}}</option> <option {{ get_settings('otp_setting')=='enable'?'selected':''}} value="enable">{{trans('Enable')}}</option> </select> </div>
<button type="submit" class="btn btn-primary"> <i class="fas fa-save mr-2"></i>@lang('admin.form.button.submit') </button> </form> </div> </div> </div>
<!-- ======================================== TAB 4: LOCALIZATION & REGIONAL ======================================== --> <div class="tab-pane" id="localization_tab"> <form method="post" role="form" action="{{route('admin.settings.local.setting')}}" enctype="multipart/form-data"> @csrf <div class="alert alert-info" role="alert"> <i class="fas fa-info-circle mr-2"></i> {{trans('admin.local_setting_update_info')}} </div>
<!-- Language & Timezone Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-language mr-2"></i>{{trans('Language & Timezone')}}</h5> </div> <div class="card-body"> @include('admin.settings.local_setting_form') </div> </div>
<button type="submit" class="btn btn-primary"> <i class="fas fa-save mr-2"></i>@lang('admin.form.button.submit') </button> </form> </div>
<!-- ======================================== TAB 5: PAYMENT & BILLING ======================================== --> @if(Module::has('PaymentGateway') && Module::find('PaymentGateway')->isEnabled()) <div class="tab-pane" id="payment_billing_tab"> <form method="post" role="form" id="payment_gateway_form" action="{{route('paymentgateway::payment.settings.store')}}" enctype="multipart/form-data"> @csrf <div class="alert alert-info" role="alert"> <i class="fas fa-info-circle mr-2"></i> {{trans('admin.payment_gateway_update_info')}} </div> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-credit-card mr-2"></i>{{trans('paymentgateway::layout.payment_gateway')}}</h5> </div> <div class="card-body"> @include('paymentgateway::settings.payment_gateway') </div> </div>
<div class="text-right"> <button id="submit_payment_gateway" type="button" class="btn btn-primary"> <i class="fas fa-save mr-2"></i>@lang('admin.form.button.submit') </button> </div> </form> </div> @endif
<!-- ======================================== TAB 6: SYSTEM & MAINTENANCE ======================================== --> <div class="tab-pane" id="system_maintenance_tab"> <!-- Security Settings Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-shield-alt mr-2"></i>{{trans('Security Settings')}}</h5> </div> <div class="card-body"> <form method="post" role="form" action="{{route('admin.settings.app_update')}}" enctype="multipart/form-data"> @csrf @php $recaptcha= get_settings('recaptcha_key')?json_decode(get_settings('recaptcha_key')):''; @endphp <!-- Hidden field to satisfy app_update validation --> <input type="hidden" name="app_name" value="{{get_settings('app_name')}}"> <div class="form-group"> <label for="">{{trans('admin.recaptcha_site_key')}}</label> <input type="text" class="form-control" name="recaptcha_site_key" placeholder="{{trans('admin.enter_Site_Key')}}" value="{{isset($recaptcha->recaptcha_site_key)?$recaptcha->recaptcha_site_key:''}}"> </div> <div class="form-group"> <label for="">{{trans('admin.recaptcha_secret_key')}}</label> <input type="text" class="form-control" name="recaptcha_secret_key" placeholder="{{trans('admin.enter_Site_Key')}}" value="{{isset($recaptcha->recaptcha_secret_key)?$recaptcha->recaptcha_secret_key:''}}"> </div>
<button type="submit" class="btn btn-primary"> <i class="fas fa-save mr-2"></i>@lang('admin.form.button.submit') </button> </form> </div> </div>
<!-- Cache & Log Management Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-database mr-2"></i>{{trans('admin.settings.cache_settings')}}</h5> </div> <div class="card-body"> <div class="alert alert-warning" role="alert"> <i class="fas fa-exclamation-triangle mr-2"></i> {{trans('admin.message.msg_log_del_alert')}} </div>
<div class="row"> <div class="col-md-6"> <div class="form-group"> <label for="">{{trans('admin.from_date')}}</label> <input type="date" name="from_date" class="form-control"> </div> </div>
<div class="col-md-6"> <div class="form-group"> <label for="">{{trans('admin.to_date')}}</label> <input type="date" name="to_date" class="form-control"> </div> </div> </div> <div class="row"> <div class="col-md-12 mt-2"> <button type="button" class="btn btn-primary logDeleteConfirm"> <i class="fas fa-trash mr-2"></i>@lang('admin.form.button.submit') </button> </div> </div> </div> </div>
<!-- Translations Link Section --> <div class="card mb-4"> <div class="card-header bg-light"> <h5 class="mb-0"><i class="fas fa-globe mr-2"></i>{{trans('admin.settings.translations')}}</h5> </div> <div class="card-body"> <p class="text-muted">{{trans('Manage application translations and language files.')}}</p> <a href="{{url('translations')}}" target="_blank" class="btn btn-primary"> <i class="fas fa-external-link-alt mr-2"></i>{{trans('admin.settings.translations')}} </a> </div> </div> </div>
<!-- ======================================== HIDDEN TABS (for backward compatibility) ======================================== --> <div class="tab-pane" id="api_tab"> <form method="post" role="form" id="api_form" action="{{route('admin.settings.app_update')}}" enctype="multipart/form-data"> @csrf <div class="alert alert-primary" role="alert"> {{trans('admin.gateway_update_info')}} </div> @include('admin.settings.api_form')
<button id="submit_api" type="button" class="btn btn-primary">@lang('admin.form.button.submit')</button> </form> </div>
<div class="tab-pane" id="whatsapp_api"> <form method="post" action="{{route('admin.settings.whatsapp.api')}}" enctype="multipart/form-data"> @csrf
@include('admin.settings.whatsapp_api')
<button type="submit" class="btn btn-primary">@lang('admin.form.button.submit')</button> </form> </div>
<div class="tab-pane" id="sending_setting"> <form method="post" role="form" id="application_form" action="{{route('admin.settings.sending.setting')}}" enctype="multipart/form-data"> @csrf
@include('admin.settings.sending_settings')
<button type="submit" class="btn btn-primary">@lang('admin.form.button.submit')</button> </form> </div>
</div> <!-- /.tab-content --> </div><!-- /.card-body --> </div> <!-- ./card -->
</div> <!-- /.card --> </div> <!-- /.col --> </div> <!-- /.row --> </section> <!-- /.content -->
<div class="modal fade" id="cacheLogModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <form class="m-0" action="{{route('admin.settings.cache')}}" method="post"> @csrf
<div class="modal-header"> <h5 class="modal-title">{{trans('layout.confirmation')}}</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <input type="hidden" name="to" class="to_date"> <input type="hidden" name="from" class="from_date"> <div class="modal-body"> <p>{{trans('admin.message.msg_log_del_warn')}}</p> <small class="mt-2 text-danger">{{trans('admin.message.log_undone_alert')}}</small> </div> <div class="modal-footer p-2"> <button type="submit" class="btn btn-primary">{{trans('admin.confirm')}}</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> </div> </form> </div> </div> </div>
<div class="modal fade" id="add_role_new_modal"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <form action="{{route('admin.settings.role.create')}}" method="post"> @csrf @method('put') <div class="modal-header"> <h4 class="modal-title">{{trans('admin.rolePermission')}}</h4> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <div class="row"> <div class="col-sm-12">
<div class="form-group"> <label for="">{{trans('admin.roleName')}}</label> <input type="text" name="role_name" class="form-control"> </div> </div> @foreach($permissions->whereIn('name',get_customer_permission()) as $permission) @if(in_array($permission->name, get_customer_permission())) @if(!in_array($permission->name, $skip_permission)) <div class="col-sm-4" style="text-wrap: inherit"> <div class="form-group clearfix display"> <div class="icheck-success"> <input type="checkbox" id="checkboxSuccess_{{$permission->name}}" value="{{$permission->name}}" name="permission[]"> <label class="text-muted d-inline" for="checkboxSuccess_{{$permission->name}}"> {{ucfirst(str_replace('_',' ',$permission->name))}} </label> </div> </div> </div> @endif @endif @endforeach
</div> </div> <div class="modal-footer justify-content-between"> <button type="button" class="btn btn-default" data-dismiss="modal"> {{trans('admin.close')}} </button> <button type="submit" class="btn btn-primary">{{trans('admin.submit')}}</button> </div> </form> </div> <!-- /.modal-content --> </div> <!-- /.modal-dialog --> </div> @endsection
@section('extra-scripts') <script src="{{asset('plugins/jquery-validation/jquery.validate.min.js')}}"></script>
<script src="{{asset('plugins/bs-custom-file-input/bs-custom-file-input.js')}}"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script> <script !src=""> "use strict"; let $validate; $validate = $('#profile_form').validate({ rules: { email: { required: true, email: true, }, first_name: { required: true }, last_name: { required: true }, }, messages: { email: { required: "Please enter a email address", email: "Please enter a vaild email address" }, password: { required: "Please provide a password", minlength: "Your password must be at least 5 characters long" }, first_name: {required: "Please provide first name"}, last_name: {required: "Please provide last name"} }, errorElement: 'span', errorPlacement: function (error, element) { error.addClass('invalid-feedback'); element.closest('.form-group').append(error); }, highlight: function (element, errorClass, validClass) { $(element).addClass('is-invalid'); }, unhighlight: function (element, errorClass, validClass) { $(element).removeClass('is-invalid'); } }); $(document).ready(function () { bsCustomFileInput.init(); });
$('#gateway').select2({ multiple:false }).on('change', function (e) { e.preventDefault(); const type = $(this).val(); $('.api-section').hide(); $('#' + type + "_section").show(); });
$('#voice_call_gateway').select2({ multiple:false }).on('change', function (e) { e.preventDefault(); const type = $(this).val(); $('.voice-call-api-section').hide(); $('#' + type + "_section").show(); }); $('#whatsapp_gateway').select2({ multiple:false }).on('change', function (e) { e.preventDefault(); const type = $(this).val(); $('.whatsapp-api-section').hide(); $('#' + type + "_section").show(); }); $('#timezone').select2();
$('#submit_api').on('click', function (e) { e.preventDefault(); const form = $('#api_form').serialize(); $.ajax({ method: 'post', url: '{{route('admin.settings.api_update')}}', data: form, success: function (res) { if (res.status == 'success') { notify('success', res.message); } } }) });
$('#offDay').select2({ placeholder:'Select an offday', multiple:true }).val(@json($offdays)).change();
$('.message_limit').on('keyup or paste', function (e){ let message_limit = $(this).val(); $('#message_limit').text(message_limit?message_limit:'0'); }); $('.minutes').on('keyup or paste', function (e){ let minute_limit = $(this).val() $('#minutes').text(minute_limit?minute_limit:'0'); });
$(document).on('change', '#otpGateway', function(e){ const from = $(this).val();
$.ajax({ type:'GET', url:'{{route('admin.settings.gateway.numbers')}}', data:{ from:from },
success:function(res){ let html=''; $.each(res.data, function (index, value){ html+=`<option value="${value.number}">${value.number}</option>` });
$('#otpFromNumber').html(html); } }) });
$('#otpFromNumber').select2({ multiple:false });
@if(Module::has('PaymentGateway')) $('#submit_payment_gateway').on('click', function (e) { e.preventDefault(); const form = $('#payment_gateway_form'); const formData=form.serialize(); const url=form.attr('action'); $.ajax({ method: 'post', url: url, data: formData, success: function (res) { if (res.status == 'success') { notify('success', res.message); }else { notify('failed', res.message); } } }) }); @endif
</script>
<script> $(document).on('click','.logDeleteConfirm', function(e){
const to_date=$('input[name=to_date]').val(); const from_date=$('input[name=from_date]').val();
if(!from_date){ toastr.error('Please select from date'); return; }
if(!to_date){ toastr.error('Please select to date'); return; }
$('.to_date').val(to_date); $('.from_date').val(from_date);
$('#cacheLogModal').modal('show');
// data-input={"id":'.$q->id.'}
}) </script> <script> $(document).on('click', '#add_new_role', function(e){ $('#add_role_new_modal').modal('show'); }) $(document).on('click', '.fa-trash', function (e) { e.preventDefault();
const role = $(this).attr('data-role'); $.ajax({ method: "get", url: "{{route('admin.settings.staff.role.delete')}}", data: { role: role, },
success: function (res) { let html = ''; if (res.status == 'success') { $('#show_role_' + role).remove(); } else { toastr.error(res.message, 'failed', {timeOut: 5000}); } } }) }); </script> @endsection
|