classify admin

This commit is contained in:
Husanjonazamov
2026-02-24 12:52:01 +05:00
commit e0f1989655
769 changed files with 1263008 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
@extends('layouts.main')
@section('title')
{{ __('About Us') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first">
</div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="card">
<form action="{{ route('settings.store') }}" method="post" class="create-form-without-reset">
@csrf
<div class="card-body">
<ul class="nav nav-tabs" id="languageTabs" role="tablist">
@foreach ($languages as $lang)
<li class="nav-item" role="presentation">
<a class="nav-link {{ $loop->first ? 'active' : '' }}" id="tab-{{ $lang->id }}"
data-bs-toggle="tab" href="#lang-{{ $lang->id }}" role="tab">
{{ $lang->name }}
</a>
</li>
@endforeach
</ul>
<div class="tab-content mt-3">
@foreach ($languages as $lang)
<div class="tab-pane fade {{ $loop->first ? 'show active' : '' }}" id="lang-{{ $lang->id }}"
role="tabpanel">
<input type="hidden" name="languages[]" value="{{ $lang->id }}">
<div class="form-group">
<label>{{ __('About Us') }} ({{ $lang->name }})</label>
<textarea name="about_us[{{ $lang->id }}]" id="tinymce_editor_{{ $lang->id }}"
class="tinymce_editor form-control" rows="6">{{ old("about_us.$lang->id", $translations['about_us'][$lang->id] ?? ($settings['about_us'] ?? '')) }}</textarea>
</div>
</div>
@endforeach
</div>
<div class="col-12 mt-3 d-flex justify-content-end">
<button class="btn btn-primary" type="submit">{{ __('Save') }}</button>
</div>
</div>
</form>
</div>
</section>
@endsection
@section('script')
<script>
document.addEventListener("DOMContentLoaded", () => {
tinymce.init({
selector: '.tinymce_editor',
height: 400,
menubar: false,
plugins: [
'advlist autolink lists link charmap preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime table paste code help wordcount'
],
toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | removeformat | code',
setup: function(editor) {
editor.on("change keyup", function() {
editor.save();
});
}
});
});
</script>
@endsection

View File

@@ -0,0 +1,117 @@
@extends('layouts.main')
@section('title')
{{ __('Admob')." ".__("Settings")}}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="create-form-without-reset" action="{{ route('settings.store') }}" method="post" enctype="multipart/form-data">
<div class="row d-flex mb-3">
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Banner Ad') }}</h6>
</div>
<div class="form-group row mt-3">
<label for="banner_ad_id_android" class="col-sm-12 form-check-label mt-2">{{ __('Banner Ad Id Android') }}</label>
<div class="col-sm-12 mt-2">
<input id="banner_ad_id_android" name="banner_ad_id_android" type="text" class="form-control" placeholder="{{ __('Banner Ad Id Android') }}" value="{{ $settings['banner_ad_id_android'] ?? '' }}">
</div>
<label for="banner_ad_id_ios" class="col-sm-12 form-check-label mt-2">{{ __('Banner Ad Id IOS') }}</label>
<div class="col-sm-12 mt-2">
<input id="banner_ad_id_ios" name="banner_ad_id_ios" type="text" class="form-control" placeholder="{{ __('Banner Ad Id IOS') }}" value="{{ $settings['banner_ad_id_ios'] ?? '' }}">
</div>
<label class="col-sm-12 form-check-label mt-2" id='banner_ad_status'>{{__("Status")}}</label>
<div class="col-sm-2 col-md-12 col-xs-12 mt-2">
<div class="form-check form-switch ">
<input type="hidden" name="banner_ad_status" id="banner_ad_status" value="{{ $settings['banner_ad_status'] ?? 0 }}">
<input class="form-check-input switch-input status-switch" type="checkbox" role="switch" {{ isset($settings['banner_ad_status']) && $settings['banner_ad_status'] == '1' ? 'checked' : '' }} id="switch_banner_ad_status" aria-label="switch_banner_ad_status">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Interstitial Ad') }}</h6>
</div>
<div class="form-group row mt-3">
<label for="interstitial_ad_id_android" class="col-sm-12 form-check-label mt-2">{{ __('Interstitial Ad Id Android') }}</label>
<div class="col-sm-12 mt-2">
<input id="interstitial_ad_id_android" name="interstitial_ad_id_android" type="text" class="form-control" placeholder="{{ __('Interstitial Ad Id Android') }}" value="{{ $settings['interstitial_ad_id_android'] ?? '' }}">
</div>
<label for="interstitial_ad_id_ios" class="col-sm-12 form-check-label mt-2">{{ __('Interstitial Ad Id IOS') }}</label>
<div class="col-sm-12 mt-2">
<input id="interstitial_ad_id_ios" name="interstitial_ad_id_ios" type="text" class="form-control" placeholder="{{ __('Interstitial Ad Id IOS') }}" value="{{ $settings['interstitial_ad_id_ios'] ?? '' }}">
</div>
<label class="col-sm-12 form-check-label mt-2" id='interstitial_ad_status'>{{__("Status")}}</label>
<div class="col-sm-2 col-md-12 col-xs-12 mt-2">
<div class="form-check form-switch ">
<input type="hidden" name="interstitial_ad_status" id="interstitial_ad_status" value="{{ $settings['interstitial_ad_status'] ?? 0 }}">
<input class="form-check-input switch-input status-switch" type="checkbox" role="switch" {{ isset($settings['interstitial_ad_status']) && $settings['interstitial_ad_status'] == '1' ? 'checked' : '' }} id="switch_interstitial_ad_status" aria-label="switch_interstitial_ad_status">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Native Ad') }}</h6>
</div>
<div class="form-group row mt-3">
<label for="native _app_id_android" class="col-sm-12 form-check-label mt-2">{{ __('Native App Id Android') }}</label>
<div class="col-sm-12 mt-2">
<input id="native_app_id_android" name="native_app_id_android" type="text" class="form-control" placeholder="{{ __('Native App Id Android') }}" value="{{ $settings['native_app_id_android'] ?? '' }}">
</div>
<label for="native _app_id_ios" class="col-sm-12 form-check-label mt-2">{{ __('Native App Id iOS') }}</label>
<div class="col-sm-12 mt-2">
<input id="native_app_id_ios" name="native_app_id_ios" type="text" class="form-control" placeholder="{{ __('Native App Id iOS') }}" value="{{ $settings['native_app_id_ios'] ?? '' }}">
</div>
<label class="col-sm-12 form-check-label mt-2" id='native _ad_status'>{{__("Status")}}</label>
<div class="col-sm-2 col-md-12 col-xs-12 mt-2">
<div class="form-check form-switch ">
<input type="hidden" name="native_ad_status" id="native_ad_status" value="{{ $settings['native _ad_status'] ?? 0 }}">
<input class="form-check-input switch-input status-switch" type="checkbox" role="switch" {{ isset($settings['native_ad_status']) && $settings['native_ad_status'] == '1' ? 'checked' : '' }} id="switch_native_ad_status" aria-label="switch_native_ad_status">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 d-flex justify-content-end">
<button type="submit" class="btn btn-primary me-1 mb-3">{{ __('Save') }}</button>
</div>
</form>
</section>
@endsection

View File

@@ -0,0 +1,85 @@
@extends('layouts.main')
@section('title')
{{ __('Contact Us') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="card">
<form action="{{ route('settings.store') }}" method="post" class="create-form-without-reset">
@csrf
<div class="card-body">
<ul class="nav nav-tabs" id="languageTabs" role="tablist">
@foreach($languages as $lang)
<li class="nav-item" role="presentation">
<a class="nav-link {{ $loop->first ? 'active' : '' }}"
id="tab-{{ $lang->id }}"
data-bs-toggle="tab"
href="#lang-{{ $lang->id }}"
role="tab">
{{ $lang->name }}
</a>
</li>
@endforeach
</ul>
<div class="tab-content mt-3">
@foreach($languages as $lang)
<div class="tab-pane fade {{ $loop->first ? 'show active' : '' }}"
id="lang-{{ $lang->id }}"
role="tabpanel">
<input type="hidden" name="languages[]" value="{{ $lang->id }}">
<div class="form-group">
<label>{{ __("Contact Us") }} ({{ $lang->name }})</label>
<textarea name="contact_us[{{ $lang->id }}]"
id="tinymce_editor_contact_{{ $lang->id }}"
class="tinymce_editor form-control"
rows="6">{{ old("contact_us.$lang->id", $translations['contact_us'][$lang->id] ?? ($settings['contact_us'] ?? '')) }}</textarea>
</div>
</div>
@endforeach
</div>
<div class="col-12 mt-3 d-flex justify-content-end">
<button class="btn btn-primary" type="submit">{{ __('Save') }}</button>
</div>
</div>
</form>
</div>
</section>
@endsection
@section('script')
<script>
document.addEventListener("DOMContentLoaded", () => {
tinymce.init({
selector: '.tinymce_editor',
height: 400,
menubar: false,
plugins: [
'advlist autolink lists link charmap preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime table paste code help wordcount'
],
toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | removeformat | code',
setup: function (editor) {
editor.on("change keyup", function () {
editor.save();
});
}
});
});
</script>
@endsection

View File

@@ -0,0 +1,109 @@
@extends('layouts.main')
@section('title')
{{ __('Default Currency Settings') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="create-form-without-reset" action="{{ route('settings.store') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="row d-flex mb-3">
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Default Currency Settings') }}</h6>
</div>
<div class="form-group row">
<div class="col-sm-12 mt-2">
<label for="currency_iso_code" class="col-sm-12 form-check-label mt-2">{{ __('Default Currency ISO Code') }}</label>
@if(count($currencies) > 0)
<select name="currency_iso_code" id="currency_iso_code" class="form-select form-control-sm">
@foreach($currencies as $currency)
<option value="{{ $currency->iso_code }}" {{ (isset($settings['currency_iso_code']) && $settings['currency_iso_code'] == $currency->iso_code) ? 'selected' : '' }}>
{{ $currency->iso_code }}
</option>
@endforeach
</select>
@else
<input type="text" name="currency_iso_code" id="currency_iso_code" class="form-control"
placeholder="e.g. USD" maxlength="3" required
value="{{ $settings['currency_iso_code'] ?? '' }}"
oninput="this.value = this.value.toUpperCase().replace(/[^A-Z]/g, '')">
@endif
</div>
<div class="col-sm-12 mt-2">
<label for="currency_symbol" class="col-sm-12 form-check-label mt-2">{{ __('Currency Symbol') }}</label>
<input id="currency_symbol" name="currency_symbol" type="text" class="form-control" placeholder="{{ __('Currency Symbol') }}" value="{{ $settings['currency_symbol'] ?? '' }}">
</div>
<div class="col-sm-12 mt-3">
<label for="currency_symbol_position" class="col-sm-12 form-check-label mt-2">{{ __('Currency Symbol Position') }}</label>
<div class="mt-2 d-flex align-items-center">
<div class="form-check me-3">
<input
type="radio"
id="currency_symbol_left"
name="currency_symbol_position"
value="left"
class="form-check-input"
{{ (isset($settings['currency_symbol_position']) && $settings['currency_symbol_position'] === 'left') ? 'checked' : '' }}
>
<label for="currency_symbol_left" class="form-check-label">{{ __('Left') }}</label>
</div>
<div class="form-check">
<input
type="radio"
id="currency_symbol_right"
name="currency_symbol_position"
value="right"
class="form-check-input"
{{ (isset($settings['currency_symbol_position']) && $settings['currency_symbol_position'] === 'right') ? 'checked' : '' }}
>
<label for="currency_symbol_right" class="form-check-label">{{ __('Right') }}</label>
</div>
</div>
</div>
<div class="col-sm-6 mt-3">
<label for="decimal_places" class="col-sm-12 form-check-label mt-2">{{ __('Decimal Places') }}</label>
<input id="decimal_places" name="decimal_places" type="number" class="form-control" value="{{ $settings['decimal_places'] ?? 2 }}" min="0" max="6">
</div>
<div class="col-sm-6 mt-3">
<label for="thousand_separator" class="col-sm-12 form-check-label mt-2">{{ __('Thousand Separator') }}</label>
<input id="thousand_separator" name="thousand_separator" type="text" class="form-control" value="{{ $settings['thousand_separator'] ?? ',' }}" maxlength="1">
</div>
<div class="col-sm-6 mt-3">
<label for="decimal_separator" class="col-sm-12 form-check-label mt-2">{{ __('Decimal Separator') }}</label>
<input id="decimal_separator" name="decimal_separator" type="text" class="form-control" value="{{ $settings['decimal_separator'] ?? '.' }}" maxlength="1">
</div>
</div>
<div class="col-12 d-flex justify-content-end mt-3">
<button type="submit" class="btn btn-primary me-1 mb-3">{{ __('Save') }}</button>
</div>
</div>
</div>
</div>
</div>
</form>
</section>
@endsection

View File

@@ -0,0 +1,74 @@
@extends('layouts.main')
@section('title')
{{ __('Import Dummy Data') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="card">
<div class="card-body">
<div class="alert alert-warning" role="alert">
<h5 class="alert-heading">
<i class="fas fa-exclamation-triangle"></i> {{ __('Important Notice') }}
</h5>
<hr>
<p class="mb-0">
<strong>{{ __('Warning:') }}</strong>
{{ __('This action will delete ALL categories and custom fields and insert fresh dummy data. This cannot be undone.') }}
</p>
</div>
<div class="alert alert-info">
<h6 class="alert-heading">
<i class="fas fa-info-circle"></i> {{ __('Instructions:') }}
</h6>
<ol class="mb-0">
<li>{{ __('Click the button below to import dummy data automatically.') }}</li>
</ol>
</div>
<div class="mt-3 text-center">
<button type="button" id="importDummyBtn" class="btn btn-danger btn-lg">
<i class="fas fa-database"></i> {{ __('Import Dummy Data') }}
</button>
</div>
</div>
</div>
</section>
@endsection
@section('script')
@section('script')
<script>
$(document).ready(function () {
$('#importDummyBtn').on('click', function () {
showSweetAlertForDataConfirmPopup(
"{{ route('settings.dummy-data.import') }}",
"POST",
{
text: "This action will delete ALL categories and custom fields and insert fresh dummy data. This cannot be undone.",
confirmButtonText: "Yes, Delete & Import",
data: {
_token: "{{ csrf_token() }}"
},
successCallBack: function () {
}
}
);
});
});
</script>
@endsection

View File

@@ -0,0 +1,86 @@
@extends('layouts.main')
@section('title')
{{ __('File Manager') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="create-form-without-reset" action="{{ route('settings.file-manager.store') }}" method="post" enctype="multipart/form-data">
<div class="row d-flex mb-3">
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('File Manager Setting') }}</h6>
</div>
<div class="form-group row">
<div class="col-sm-12 mt-2">
<label for="file_manager" class="col-sm-12 form-check-label mt-2">{{ __('File Manager') }}</label>
<select name="file_manager" id="file_manager" class="form-select form-control-sm">
<option value="public">{{ __('Local Server') }}</option>
<option value="s3">{{ __('AWS S3') }}</option>
</select>
</div>
<div id="s3_div" style="display: none">
<label for="stripe_secret_key" class="col-sm-12 form-check-label mt-2">{{ __('AWS Access Key ID') }}</label>
<div class="col-sm-12 mt-2">
<input id="stripe_secret_key" name="S3_aws_access_key_id" type="text" class="form-control" placeholder="{{ __('AWS Access Key ID') }}" value="{{ $settings['S3_aws_access_key_id'] ?? '' }}" >
</div>
<label for="stripe_publishable_key" class="col-sm-12 form-check-label mt-2">{{ __('AWS Secret Access Key') }}</label>
<div class="col-sm-12 mt-2">
<input id="AWS_SECRET_ACCESS_KEY" name="s3_aws_secret_access_key" type="text" class="form-control" placeholder="{{ __('AWS Secret Access Key') }}" value="{{ $settings['s3_aws_secret_access_key'] ?? '' }}" >
</div>
<label for="stripe_webhook_secret" class="col-sm-12 form-check-label mt-2">{{ __('AWS Default Region') }}</label>
<div class="col-sm-12 mt-2">
<input id="AWS_DEFAULT_REGION" name="s3_aws_default_region" type="text" class="form-control" placeholder="{{ __('AWS Default Region') }}" value="{{ $settings['s3_aws_default_region'] ?? '' }}" >
</div>
<label for="stripe_webhook_url" class="col-sm-12 form-check-label mt-2">{{ __('AWS Bucket') }}</label>
<div class="col-sm-12 mt-2">
<input id="AWS_BUCKET" name="s3_aws_bucket" type="text" class="form-control" placeholder="{{ __('AWS Bucket') }}" value="{{ $settings['s3_aws_default_region'] ?? '' }}" >
</div>
<label for="stripe_webhook_url" class="col-sm-12 form-check-label mt-2">{{ __('AWS URL') }}</label>
<div class="col-sm-12 mt-2">
<input id="AWS_URL" name="s3_aws_url" type="text" class="form-control" placeholder="{{ __('AWS URL') }}" value="{{ $settings['s3_aws_url'] ?? '' }}" >
</div>
</div>
</div>
<div class="col-12 d-flex justify-content-end">
<button type="submit" class="btn btn-primary me-1 mb-3">{{ __('Save') }}</button>
</div>
</div>
</div>
</div>
{{--Stripe Payment Gateway END--}}
</div>
</form>
</section>
@endsection
@section('script')
<script type="text/javascript">
$('#file_manager').val("{{$settings['file_manager'] ?? ''}}").trigger("change");
</script>
@endsection

View File

@@ -0,0 +1,73 @@
@extends('layouts.main')
@section('title')
{{__("Firebase Settings")}}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="card">
<form class="create-form-without-reset" action="{{ route('settings.firebase.update') }}" method="POST">
<div class="card-body">
<div class="row mt-1">
<div class="card-body">
<div class="form-group row">
<label for="apiKey" class="col-sm-2 col-form-label text-center">{{__("Api Key")}}</label>
<div class="col-sm-4">
<input name="apiKey" type="text" class="form-control" placeholder="{{__("Api Key")}}" id="apiKey" value="{{ $settings['apiKey'] ?? '' }}" required="">
</div>
<label for="authDomain" class="col-sm-2 col-form-label text-center">{{__("Auth Domain")}}</label>
<div class="col-sm-4">
<input required name="authDomain" type="text" class="form-control" placeholder="{{__("Auth Domain")}}" id="authDomain" value="{{ $settings['authDomain'] ?? '' }}">
</div>
</div>
<div class="form-group row">
<label for="projectId" class="col-sm-2 col-form-label text-center">{{__("Project Id")}}</label>
<div class="col-sm-4">
<input name="projectId" type="text" class="form-control" placeholder="{{__("Project Id")}}" id="projectId" value="{{ $settings['projectId'] ?? '' }}" required="">
</div>
<label for="storageBucket" class="col-sm-2 col-form-label text-center">{{__("Storage Bucket")}}</label>
<div class="col-sm-4">
<input name="storageBucket" type="text" class="form-control" id="storageBucket" placeholder="{{__("Storage Buckets")}}" value="{{ $settings['storageBucket'] ?? '' }}" required="">
</div>
</div>
<div class="form-group row">
<label for="messagingSenderId" class="col-sm-2 col-form-label text-center">{{__("Messaging Sender Id")}}</label>
<div class="col-sm-4">
<input name="messagingSenderId" type="text" class="form-control" placeholder="{{__("Messaging Sender Id")}}" id="messagingSenderId" value="{{ $settings['messagingSenderId'] ?? '' }}" required="">
</div>
<label for="appId" class="col-sm-2 col-form-label text-center">{{__("App Id")}}</label>
<div class="col-sm-4">
<input name="appId" id="appId" type="text" class="form-control" placeholder="{{__("App Id")}}" value="{{ $settings['appId'] ?? '' }}" required="">
</div>
</div>
<div class="form-group row">
<label for="measurementId" class="col-sm-2 col-form-label text-center">{{__("Measurement Id")}}</label>
<div class="col-sm-4">
<input name="measurementId" type="text" class="form-control" id="measurementId" placeholder="{{__("Measurement Id")}}" value="{{ $settings['measurementId'] ?? '' }}" required="">
</div>
</div>
</div>
<div class="col-12 d-flex justify-content-end">
<button type="submit" value="btnAdd" class="btn btn-primary me-1 mb-1">{{__("Save")}}</button>
</div>
</div>
</div>
</form>
</div>
</section>
@endsection

View File

@@ -0,0 +1,382 @@
@extends('layouts.main')
@section('title')
{{ __('Settings') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="row">
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.system') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<i class="fas fa-cogs text-dark icon_font_size "></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Settings') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.web-settings') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<i class="fas fa-cog text-dark icon_font_size "></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Web Settings') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.notification-setting') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<i class="fas fa-bell text-dark icon_font_size "></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Notification Settings') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.watermark-settings') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<i class="fas fa-solid fa-image text-dark icon_font_size "></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Watermark Settings') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.login-method') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<i class="fa fa-envelope text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('OTP Provider Settings') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.dummy-data.index') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<i class="fas fa-database text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Import Dummy Data') }}</h5>
<div class="">{{ __('Add dummy categories and custom fields') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.admob.index') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test ">
<i class="fas fa-ad text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Admob') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.about-us.index') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test ">
<i class="fas fa-info-circle text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('About Us') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.terms-conditions.index') }}" class="card setting_active_tab h-100"
style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test ">
<i class=" fas fa-file-contract text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Terms & Conditions') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.privacy-policy.index') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<i class=" fas fas fa-shield-alt text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Privacy Policy') }}</h5>
<div class="{{ route('settings.privacy-policy.index') }}">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i></div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.refund-policy.index') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<i class=" fas fas fa-shield-alt text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Refund Policy') }}</h5>
<div class="{{ route('settings.refund-policy.index') }}">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i></div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.contact-us.index') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<i class=" fas fas fa-address-book text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Contact Us') }}</h5>
<div class="{{ route('settings.contact-us.index') }}">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i></div>
</div>
</a>
</div>
{{-- <div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">--}}
{{-- <a href="{{ route('settings.firebase.index') }}" class="card setting_active_tab h-100"--}}
{{-- style="text-decoration: none;">--}}
{{-- <div class="content d-flex h-100">--}}
{{-- <div class="row mx-2 ">--}}
{{-- <div class="provider_a test ">--}}
{{-- <i class=" fas fa-cloud text-dark icon_font_size"></i>--}}
{{-- </div>--}}
{{-- </div>--}}
{{-- </div>--}}
{{-- <div class="card-body">--}}
{{-- <h5 class="title">{{ __('Firebase Settings') }}</h5>--}}
{{-- <div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>--}}
{{-- </div>--}}
{{-- </div>--}}
{{-- </a>--}}
{{-- </div>--}}
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.language.index') }}" class="card setting_active_tab h-100"
style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test ">
<i class=" fas fas fa-language text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Languages') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.payment-gateway.index') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test ">
<i class="fas fa-dollar-sign text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Payment Gateways') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.system-status.index') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test ">
<i class="fas fa-external-link-square-alt text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('System Status') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.seo-settings.index') }}" class="card setting_active_tab h-100"
style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test ">
<i class="fab fa-searchengin text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Seo-Settings') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.file-manager.index') }}" class="card setting_active_tab h-100"
style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<FontAwesomeIcon icon="" />
<i class="fas fa-file-export text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('File Manager') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.default-currency.index') }}" class="card setting_active_tab h-100"
style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test">
<FontAwesomeIcon icon="" />
<i class="fas bi-cash-stack text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Default Currency Settings') }}</h5>
<div class="">{{ __('Go to settings') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
@hasrole('Super Admin')
<div class="col-xxl-3 col-xl-4 col-lg-6 col-md-12 mb-3">
<a href="{{ route('settings.error-logs.index') }}" class="card setting_active_tab h-100" style="text-decoration: none;">
<div class="content d-flex h-100">
<div class="row mx-2 ">
<div class="provider_a test ">
<i class="fa fa-file-alt text-dark icon_font_size"></i>
</div>
</div>
</div>
<div class="card-body">
<h5 class="title">{{ __('Log Viewer') }}</h5>
<div class="">{{ __('Find Errors in your System') }} <i class="fas fa-arrow-right mt-2 arrow_icon"></i>
</div>
</div>
</a>
</div>
@endhasrole
</div>
</section>
@endsection

View File

@@ -0,0 +1,309 @@
@extends('layouts.main')
@section('title')
{{ __('Languages') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="row">
<div class="col-md-4">
<div class="card">
<div class="card-header">
<div class="divider">
<div class="divider-text">
<h4>{{ __('Add Language') }}</h4>
</div>
</div>
</div>
<div class="card-content">
<div class="card-body">
<div class="row form-group">
<div class="col-sm-12 col-md-12 form-group">
{!! Form::open([
'url' => route('language.store'),
'files' => true,
'data-parsley-validate',
'class' => 'create-form',
]) !!}
<div class="row">
<div class="col-sm-12 col-md-12 form-group mandatory ">
{{ Form::label('Language Name', __('Language Name'), ['class' => 'form-label text-center']) }}
{{ Form::text('name', '', ['class' => 'form-control', 'placeholder' => __('Language Name'), 'data-parsley-required' => 'true']) }}
</div>
<div class="col-sm-12 col-md-12 form-group mandatory ">
{{ Form::label('Language Name', __('Language Name') . ' (' . __('in English') . ')', ['class' => 'form-label text-center']) }}
{{ Form::text('name_in_english', '', ['class' => 'form-control', 'placeholder' => __('Language Name') . ' (' . __('in English') . ')', 'data-parsley-required' => 'true']) }}
</div>
<div class="col-sm-12 col-md-12 form-group mandatory ">
{{ Form::label('Language Code', __('Language Code'), ['class' => 'form-label text-center']) }}
{{ Form::text('code', '', ['class' => 'form-control', 'placeholder' => __('Language Code'), 'data-parsley-required' => 'true']) }}
</div>
{{-- <div class="col-sm-12 col-md-12 form-group mandatory ">
{{ Form::label('Country Code', __('Country Code'), ['class' => 'form-label text-center']) }}
{{ Form::text('country_code', '', ['class' => 'form-control', 'placeholder' => __('Country Code'), 'data-parsley-required' => 'true']) }}
</div> --}}
<div class="col-sm-12 col-md-12 form-group mandatory">
{{ Form::label('country_code', __('Country Code'), ['class' => 'form-label text-center']) }}
{{ Form::text('country_code', '', [
'class' => 'form-control',
'placeholder' => __('Country Code'),
'data-parsley-required' => 'true',
]) }}
<small class="form-text text-muted">
{{ __('Provide the two-letter ISO country code for a country. Reference:') }}
<a href="https://countrycode.org" target="_blank">CountryCode.org</a>.
</small>
</div>
<div class="col-sm-12 col-md-12 form-group mandatory">
<label class="form-label ">{{ __('Image') }}</label>
<div class="">
<input class="filepond" type="file" name="image" id="favicon_icon">
</div>
</div>
<div class="col-sm-1 col-md-12">
{{ Form::label('file', __('RTL'), ['class' => 'col-form-label text-center']) }}
<div class="form-check form-switch col-12" style='padding-right:12.5rem;'>
{{ Form::checkbox('rtl', '', false, ['class' => 'form-check-input', 'id' => 'rtl']) }}
</div>
</div>
</div>
{{-- <div class="row">
<div class="col-sm-2 col-md-12 form-group mandatory">
{{ Form::label('file', __('File For Admin Panel'), ['class' => 'form-label text-center', 'accept' => '.json.*']) }}
{{ Form::file('panel_file', ['class' => 'form-control', 'language code', 'data-parsley-required' => 'true', 'accept' => '.json']) }}
</div>
<div class="col-sm-2 col-md-12 form-group mandatory">
{{ Form::label('file', __('File For App'), ['class' => 'form-label text-center', 'accept' => '.json.*']) }}
{{ Form::file('app_file', ['class' => 'form-control', 'data-parsley-required' => 'true', 'accept' => '.json']) }}
</div>
<div class="col-sm-2 col-md-12 form-group mandatory">
{{ Form::label('file', __('File For Web'), ['class' => 'form-label text-center', 'accept' => '.json.*']) }}
{{ Form::file('web_file', ['class' => 'form-control', 'data-parsley-required' => 'true', 'accept' => '.json']) }}
</div>
<div class="col-sm-1 col-md-4">
{{ Form::label('file', __('Sample for Admin'), ['class' => 'col-form-label text-center']) }}
<div class="form-check form-switch col-12" style='padding-right:12.5rem;'>
<a class="btn icon btn-primary btn-sm rounded-pill" href="{{ route('language.download.panel.json') }}" title="Edit">
<i class="bi bi-download"></i>
</a>
</div>
</div>
<div class="col-sm-1 col-md-4">
{{ Form::label('file', __('Sample For App'), ['class' => 'col-form-label text-center']) }}
<div class="form-check form-switch col-12" style='padding-right:12.5rem;'>
<a class="btn icon btn-primary btn-sm rounded-pill" href="{{ route('language.download.app.json') }}" title="Edit">
<i class="bi bi-download"></i>
</a>
</div>
</div>
<div class="col-sm-1 col-md-4">
{{ Form::label('file', __('Sample For Web'), ['class' => 'col-form-label text-center']) }}
<div class="form-check form-switch col-12" style='padding-right:12.5rem;'>
<a class="btn icon btn-primary btn-sm rounded-pill" href="{{ route('language.download.web.json') }}" title="Edit">
<i class="bi bi-download"></i>
</a>
</div>
</div>
</div> --}}
<div class="col-sm-12 d-flex justify-content-end mt-3">
{{ Form::submit(__('Save'), ['class' => 'btn btn-primary me-1 mb-1']) }}
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
</div>
<div class="col-md-8">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table-light table-striped" aria-describedby="mydesc" id="table_list"
data-toggle="table" data-url="{{ route('language.show', 1) }}"
data-click-to-select="true" data-side-pagination="server" data-pagination="true"
data-page-list="[5, 10, 20, 50, 100, 200]" data-search="true" data-toolbar="#toolbar"
data-show-columns="true" data-show-refresh="true" data-fixed-columns="true"
data-fixed-number="1" data-fixed-right-number="1" data-trim-on-search="false"
data-responsive="true" data-sort-name="id" data-sort-order="desc"
data-pagination-successively-size="3" data-escape="true" data-query-params="queryParams"
data-mobile-responsive="true">
<thead>
<tr>
<th scope="col" data-field="id" data-sortable="true">{{ __('ID') }}
</th>
<th scope="col" data-field="name" data-sortable="false">{{ __('Name') }}
</th>
<th scope="col" data-field="name_in_english" data-sortable="false">
{{ __('Name') . ' (' . __('in English') . ')' }}</th>
<th scope="col" data-field="code" data-sortable="true">
{{ __('Language Code') }}</th>
<th scope="col" data-field="country_code" data-sortable="true">
{{ __('Country Code') }}</th>
{{-- <th scope="col" data-field="rtl_text" data-sortable="true">{{ __('RTL') }}</th> --}}
<th scope="col" data-field="image" data-sortable="false"
data-formatter="imageFormatter">{{ __('Image') }}</th>
<th scope="col" data-field="operate" data-escape="false"
data-sortable="false" data-events="languageEvents">{{ __('Action') }}</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- EDIT MODEL MODEL -->
<div id="editModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1" aria-hidden="true">
<div class="modal-dialog">
<form action="#" class="form-horizontal" id="edit-form" enctype="multipart/form-data" method="POST"
data-parsley-validate>
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel1">{{ __('Edit Language') }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-12">
<div class="col-md-12 col-12">
<div class="form-group mandatory">
<label for="edit_name"
class="form-label col-12">{{ __('Language Name') }}</label>
<input type="text" id="edit_name" class="form-control col-12"
placeholder="{{ __('Name') }}" name="name"
data-parsley-required="true">
</div>
</div>
</div>
<div class="col-sm-12">
<div class="col-md-12 col-12">
<div class="form-group mandatory">
<label for="edit_name_in_english"
class="form-label col-12">{{ __('Language Name') }}({{ __('in English') }})</label>
<input type="text" id="edit_name_in_english" class="form-control col-12"
placeholder="{{ __('Name') }}" name="name_in_english"
data-parsley-required="true">
</div>
</div>
</div>
<div class="col-sm-12">
<div class="col-md-12 col-12">
<div class="form-group mandatory">
<label for="edit_code"
class="form-label col-12">{{ __('Language Code') }}</label>
<input type="text" id="edit_code" class="form-control col-12"
placeholder="{{ __('Language Code') }}" name="code"
data-parsley-required="true">
</div>
</div>
</div>
<div class="col-sm-12">
<div class="col-md-12 col-12">
<div class="form-group mandatory">
<label for="edit_code" class="form-label col-12">{{ __('Country Code') }}</label>
<input type="text" id="edit_country_code" class="form-control col-12"
placeholder="{{ __('Country Code') }}" name="country_code"
data-parsley-required="true">
</div>
</div>
</div>
<div class="col-sm-12 col-md-12 form-group">
<label class="col-form-label ">{{ __('Image') }}</label>
<div class="">
<input class="filepond" type="file" name="image" id="edit_image">
</div>
</div>
<div class="col-sm-12">
<div class="col-md-12 col-12">
<div class="form-group">
<label for="edit_panel_file"
class="form-label col-12">{{ __('File For Admin Panel') }}</label>
<input type="file" id="edit_panel_file" class="form-control col-12"
name="panel_file" accept=".json">
<a id="download_panel_file" href="#" target="_blank"
class="btn btn-sm btn-outline-primary mt-2">
<i class="bi bi-download"></i> {{ __('Download Current') }}
</a>
</div>
</div>
</div>
<div class="col-sm-12">
<div class="col-md-12 col-12">
<div class="form-group">
<label for="edit_app_file"
class="form-label col-12">{{ __('File For App') }}</label>
<input type="file" id="edit_app_file" class="form-control col-12"
name="app_file" accept=".json">
<a id="download_app_file" href="#" target="_blank"
class="btn btn-sm btn-outline-primary mt-2">
<i class="bi bi-download"></i> {{ __('Download Current') }}
</a>
</div>
</div>
</div>
<div class="col-sm-12">
<div class="col-md-12 col-12">
<div class="form-group">
<label for="edit_web_file"
class="form-label col-12">{{ __('File For Web') }}</label>
<input type="file" id="edit_web_file" class="form-control col-12"
name="web_file" accept=".json">
<a id="download_web_file" href="#" target="_blank"
class="btn btn-sm btn-outline-primary mt-2">
<i class="bi bi-download"></i> {{ __('Download Current') }}
</a>
</div>
</div>
</div>
<div class="col-sm-12">
<div class="col-md-12 col-12">
<div class="form-group form-check form-switch">
<label for="edit_rtl" class="form-label col-12">{{ __('RTL') }}</label>
<input type="hidden" value="0" name="rtl" id="edit_rtl">
<input type="checkbox" class="form-check-input status-switch"
id="edit_rtl_switch" aria-label="edit_rtl">
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect"
data-bs-dismiss="modal">{{ __('Close') }}</button>
<button type="submit"
class="btn btn-primary waves-effect waves-light">{{ __('Save') }}</button>
</div>
</div>
</form>
</div>
</div>
@endsection

View File

@@ -0,0 +1,39 @@
@extends('layouts.main')
@section('title')
{{ __('Edit Language') }}
@endsection
@section('content')
<section class="section">
<div class="row">
<form action="{{ route('updatelanguage', ['id' => $language->id, 'type' => $type]) }}" method="POST" enctype="multipart/form-data" class="editlanguage-form">
@csrf
@method('PUT')
<div class="card">
<div class="card-header">{{ __("Language JSON - " .($type)) }}
<!-- <button type="button" class="btn btn-secondary float-end" onclick="location.href='{{ route('auto-translate', ['id' => $language->id, 'type' => $type, 'locale' => $language->code]) }}'">
Auto Translate
</button> -->
</div>
<div class="card-body mt-3">
<div class="row">
@foreach($enLabels as $key => $value)
<div class="col-md-4">
<div class="form-group">
<label for="value-{{ $loop->index }}" class="form-labe">{{$key}}</label>
<input type="text" class="form-control" id="value-{{ $loop->index }}" name="values[]" value="{{ $value }}" required>
</div>
</div>
@endforeach
</div>
<div class="col-md-6">
<button type="submit" class="btn btn-primary">{{__("Save Changes")}}</button>
</div>
</div>
</div>
</form>
</div>
</section>
@endsection

View File

@@ -0,0 +1,79 @@
@extends('layouts.main')
@section('title')
{{ __('OTP Provider Settings') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="create-form-without-reset" action="{{ route('settings.store') }}" method="post" enctype="multipart/form-data" data-success-function="successFunction" data-parsley-validate>
@csrf
<div class="row d-flex mb-3">
<div class="card mb-0">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('OTP Provider Settings') }}</h6>
</div>
{{-- OTP Services Provider --}}
<div class="form-group row mt-3" id="otp-services-provider-div">
<label class="col-sm-12 form-label-mandatory" for="otp-services-provider">{{ __('OTP Services Provider') }}</label>
<div class="col-md-6 col-sm-12">
<select name="otp_service_provider" id="otp-services-provider" class="choosen-select form-select form-control-sm otp-services-provider">
<option value="firebase" {{ !empty($settings['otp_service_provider']) && $settings['otp_service_provider'] == 'firebase' ? 'selected' : '' }}>{{ __('Firebase') }}</option>
<option value="twilio" {{ !empty($settings['otp_service_provider']) && $settings['otp_service_provider'] == 'twilio' ? 'selected' : '' }}>{{ __('Twilio') }}</option>
</select>
</div>
</div>
{{-- Twilio SMS Settings --}}
<div class="col-12 mt-2 p-4 row bg-light" id="twilio-sms-settings-div">
<h5>{{ __('Twilio SMS Settings') }}</h5>
<div class="form-group row mt-3">
<div class="col-md-6 col-sm-12">
<label for="twilio_account_sid" class="form-label">{{ __('Account SID') }}</label>
<input type="text" name="twilio_account_sid" id="twilio_account_sid" class="form-control" placeholder="{{ __('Account SID') }}" value="{{ $settings['twilio_account_sid'] ?? '' }}">
</div>
<div class="col-md-6 col-sm-12">
<label for="twilio_auth_token" class="form-label">{{ __('Auth Token') }}</label>
<input type="text" name="twilio_auth_token" id="twilio_auth_token" class="form-control" placeholder="{{ __('Auth Token') }}" value="{{ $settings['twilio_auth_token'] ?? '' }}">
</div>
</div>
<div class="form-group row mt-3">
<div class="col-md-6 col-sm-12">
<label for="twilio_my_phone_number" class="form-label">{{ __('My Twilio Phone Number') }}</label>
<input type="text" name="twilio_my_phone_number" id="twilio_my_phone_number" class="form-control" placeholder="{{ __('My Twilio Phone Number') }}" value="{{ $settings['twilio_my_phone_number'] ?? '' }}">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 d-flex justify-content-end">
<button type="submit" value="btnAdd" class="btn btn-primary me-1 mb-3">{{ __('Save') }}</button>
</div>
</form>
</section>
@endsection
@section('js')
<script>
function successFunction() {
window.location.reload();
}
</script>
@endsection

View File

@@ -0,0 +1,101 @@
@extends('layouts.main')
@section('title')
{{ __('Notification Settings') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="create-form-without-reset" action="{{route('settings.store') }}" method="post" enctype="multipart/form-data" data-success-function="successFunction" data-parsley-validate>
@csrf
<div class="row d-flex mb-3">
<div class="card mb-0">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('FCM Notification Settings') }}</h6>
</div>
<div class="form-group row mt-3">
<div class="col-md-6 col-sm-12">
<label for="firebase_project_id" class="form-label">{{ __('Firebase Project Id') }}</label>
<input type="text" id="firebase_project_id" name="firebase_project_id" class="form-control" placeholder="{{ __('Firebase Project Id') }}" value="{{ $settings['firebase_project_id'] ?? '' }}"/>
</div>
<div class="col-md-6 col-sm-12">
<label for="service_file" class="form-label">{{ __('Service Json File') }}</label><span style="color: #00B2CA">
* {{ __('Accept only Json File') }}</span>
<input id="service_file" name="service_file" type="file" class="form-control">
<p style="display: none" id="img_error_msg" class="badge rounded-pill bg-danger"></p>
</div>
</div>
</div>
</div>
</div>
<div class="row d-flex mb-3">
<div class="card mb-0">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Email Notification Settings') }}</h6>
</div>
<div class="form-group row mt-3">
<div class="col-md-6 col-sm-12">
<label for="mail_mailer" class="form-label">{{ __('Mail Mailer') }}</label>
<input type="text" id="mail_mailer" name="mail_mailer" class="form-control" placeholder="{{ __('Mail Mailer') }}" value="{{ $settings['mail_mailer'] ?? '' }}"/>
</div>
<div class="col-md-6 col-sm-12">
<label for="mail_host" class="form-label">{{ __('Mail Host') }}</label>
<input type="text" id="mail_host" name="mail_host" class="form-control" placeholder="{{ __('Mail Host') }}" value="{{ $settings['mail_host'] ?? '' }}"/>
</div>
</div>
<div class="form-group row mt-3">
<div class="col-md-6 col-sm-12">
<label for="mail_port" class="form-label">{{ __('Mail Port') }}</label>
<input type="text" id="mail_port" name="mail_port" class="form-control" placeholder="{{ __('Mail Port') }}" value="{{ $settings['mail_port'] ?? '' }}"/>
</div>
<div class="col-md-6 col-sm-12">
<label for="mail_username" class="form-label">{{ __('Mail Username') }}</label>
<input type="text" id="mail_username" name="mail_username" class="form-control" placeholder="{{ __('Mail Username') }}" value="{{ $settings['mail_username'] ?? '' }}"/>
</div>
</div>
<div class="form-group row mt-3">
<div class="col-md-6 col-sm-12">
<label for="mail_password" class="form-label">{{ __('Mail Password') }}</label>
<input type="password" id="mail_password" name="mail_password" class="form-control" placeholder="{{ __('Mail Password') }}" value="{{ $settings['mail_password'] ?? '' }}"/>
</div>
<div class="col-md-6 col-sm-12">
<label for="mail_encryption" class="form-label">{{ __('Mail Encryption') }}</label>
<input type="text" id="mail_encryption" name="mail_encryption" class="form-control" placeholder="{{ __('Mail Encryption') }}" value="{{ $settings['mail_encryption'] ?? '' }}"/>
</div>
</div>
<div class="form-group row mt-3">
<div class="col-md-6 col-sm-12">
<label for="mail_from_address" class="form-label">{{ __('Mail From Address') }}</label>
<input type="text" id="mail_from_address" name="mail_from_address" class="form-control" placeholder="{{ __('Mail From Address') }}" value="{{ $settings['mail_from_address'] ?? '' }}"/>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 d-flex justify-content-end">
<button type="submit" value="btnAdd" class="btn btn-primary me-1 mb-3">{{ __('Save') }}</button>
</div>
</form>
</section>
@endsection
@section('js')
<script>
function successFunction() {
window.location.reload();
}
</script>
@endsection

View File

@@ -0,0 +1,827 @@
@extends('layouts.main')
@section('title')
{{ __('Payment Gateways Settings') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="create-form-without-reset" action="{{ route('settings.payment-gateway.store') }}" method="post"
enctype="multipart/form-data">
<div class="row d-flex mb-3">
{{-- Stripe Payment Gateway START --}}
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Stripe Setting') }}</h6>
</div>
<div class="form-group row mt-3">
<label for="stripe_currency_code"
class="col-sm-12 form-check-label mt-2">{{ __('Stripe Currency Symbol') }}</label>
<div class="col-sm-12 mt-2">
<select name="gateway[Stripe][currency_code]" id="stripe_currency_code"
class="select2 form-select form-control">
<option value="USD">USD</option>
<option value="AED">AED</option>
<option value="AFN">AFN</option>
<option value="ALL">ALL</option>
<option value="AMD">AMD</option>
<option value="ANG">ANG</option>
<option value="AOA">AOA</option>
<option value="ARS">ARS</option>
<option value="AUD">AUD</option>
<option value="AWG">AWG</option>
<option value="AZN">AZN</option>
<option value="BAM">BAM</option>
<option value="BBD">BBD</option>
<option value="BDT">BDT</option>
<option value="BGN">BGN</option>
<option value="BMD">BMD</option>
<option value="BND">BND</option>
<option value="BOB">BOB</option>
<option value="BRL">BRL</option>
<option value="BSD">BSD</option>
<option value="BWP">BWP</option>
<option value="BYN">BYN</option>
<option value="BZD">BZD</option>
<option value="CAD">CAD</option>
<option value="CDF">CDF</option>
<option value="CHF">CHF</option>
<option value="CNY">CNY</option>
<option value="COP">COP</option>
<option value="CRC">CRC</option>
<option value="CVE">CVE</option>
<option value="CZK">CZK</option>
<option value="DKK">DKK</option>
<option value="DOP">DOP</option>
<option value="DZD">DZD</option>
<option value="EGP">EGP</option>
<option value="ETB">ETB</option>
<option value="EUR">EUR</option>
<option value="FJD">FJD</option>
<option value="FKP">FKP</option>
<option value="GBP">GBP</option>
<option value="GEL">GEL</option>
<option value="GIP">GIP</option>
<option value="GMD">GMD</option>
<option value="GTQ">GTQ</option>
<option value="GYD">GYD</option>
<option value="HKD">HKD</option>
<option value="HNL">HNL</option>
<option value="HTG">HTG</option>
<option value="HUF">HUF</option>
<option value="IDR">IDR</option>
<option value="ILS">ILS</option>
<option value="INR">INR</option>
<option value="ISK">ISK</option>
<option value="JMD">JMD</option>
<option value="KES">KES</option>
<option value="KGS">KGS</option>
<option value="KHR">KHR</option>
<option value="KYD">KYD</option>
<option value="KZT">KZT</option>
<option value="LAK">LAK</option>
<option value="LBP">LBP</option>
<option value="LKR">LKR</option>
<option value="LRD">LRD</option>
<option value="LSL">LSL</option>
<option value="MAD">MAD</option>
<option value="MDL">MDL</option>
<option value="MKD">MKD</option>
<option value="MMK">MMK</option>
<option value="MNT">MNT</option>
<option value="MOP">MOP</option>
<option value="MUR">MUR</option>
<option value="MVR">MVR</option>
<option value="MWK">MWK</option>
<option value="MXN">MXN</option>
<option value="MYR">MYR</option>
<option value="MZN">MZN</option>
<option value="NAD">NAD</option>
<option value="NGN">NGN</option>
<option value="NIO">NIO</option>
<option value="NOK">NOK</option>
<option value="NPR">NPR</option>
<option value="NZD">NZD</option>
<option value="PAB">PAB</option>
<option value="PEN">PEN</option>
<option value="PGK">PGK</option>
<option value="PHP">PHP</option>
<option value="PKR">PKR</option>
<option value="PLN">PLN</option>
<option value="QAR">QAR</option>
<option value="RON">RON</option>
<option value="RSD">RSD</option>
<option value="RUB">RUB</option>
<option value="SAR">SAR</option>
<option value="SBD">SBD</option>
<option value="SCR">SCR</option>
<option value="SEK">SEK</option>
<option value="SGD">SGD</option>
<option value="SHP">SHP</option>
<option value="SLE">SLE</option>
<option value="SOS">SOS</option>
<option value="SRD">SRD</option>
<option value="STD">STD</option>
<option value="SZL">SZL</option>
<option value="THB">THB</option>
<option value="TJS">TJS</option>
<option value="TOP">TOP</option>
<option value="TRY">TRY</option>
<option value="TTD">TTD</option>
<option value="TWD">TWD</option>
<option value="TZS">TZS</option>
<option value="UAH">UAH</option>
<option value="UYU">UYU</option>
<option value="UZS">UZS</option>
<option value="WST">WST</option>
<option value="XAF">XAF</option>
<option value="XCD">XCD</option>
<option value="YER">YER</option>
<option value="ZAR">ZAR</option>
<option value="ZMW">ZMW</option>
</select>
</div>
<label for="stripe_secret_key"
class="col-sm-12 form-check-label mt-2">{{ __('Stripe Secret key') }}</label>
<div class="col-sm-12 mt-2">
<input id="stripe_secret_key" name="gateway[Stripe][secret_key]" type="text"
class="form-control" placeholder="{{ __('Stripe Secret key') }}"
value="{{ $paymentGateway['Stripe']['secret_key'] ?? '' }}">
</div>
<label for="stripe_publishable_key"
class="col-sm-12 form-check-label mt-2">{{ __('Stripe Publishable key') }}</label>
<div class="col-sm-12 mt-2">
<input id="stripe_publishable_key" name="gateway[Stripe][api_key]" type="text"
class="form-control" placeholder="{{ __('Stripe Publishable key') }}"
value="{{ $paymentGateway['Stripe']['api_key'] ?? '' }}">
</div>
<label for="stripe_webhook_secret"
class="col-sm-12 form-check-label mt-2">{{ __('Stripe Webhook Secret') }}</label>
<div class="col-sm-12 mt-2">
<input id="stripe_webhook_secret" name="gateway[Stripe][webhook_secret_key]"
type="text" class="form-control"
placeholder="{{ __('Stripe Webhook Secret') }}"
value="{{ $paymentGateway['Stripe']['webhook_secret_key'] ?? '' }}">
</div>
<label for="stripe_webhook_url"
class="col-sm-12 form-check-label mt-2">{{ __('Stripe Webhook URL') }}</label>
<div class="col-sm-12 mt-2">
<input id="stripe_webhook_url" name="gateway[Stripe][webhook_url]" type="text"
class="form-control" placeholder="{{ __('Stripe Webhook URL') }}"
value="{{ url('/webhook/stripe') }}" disabled>
</div>
<label class="col-sm-12 form-check-label mt-2"
id='lbl_stripe'>{{ __('Status') }}</label>
<div class="col-sm-2 col-md-12 col-xs-12 mt-2">
<div class="form-check form-switch ">
<input type="hidden" name="gateway[Stripe][status]" id="stripe_gateway"
value="{{ $paymentGateway['Stripe']['status'] ?? 0 }}">
<input class="form-check-input switch-input status-switch" type="checkbox"
role="switch" name='op'
{{ isset($paymentGateway['Stripe']['status']) && $paymentGateway['Stripe']['status'] == '1' ? 'checked' : '' }}
id="switch_stripe_gateway" aria-label="switch_stripe_gateway">
</div>
</div>
</div>
</div>
</div>
</div>
{{-- Stripe Payment Gateway END --}}
{{-- Razorpay Payment Gateway START --}}
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Razorpay Setting') }}</h6>
</div>
<div class="form-group row mt-3">
<label for="razorpay_currency_code"
class="col-sm-12 form-check-label mt-2">{{ __('Razorpay Currency Symbol') }}</label>
<div class="col-sm-12 mt-2">
<select name="gateway[Razorpay][currency_code]" id="razorpay_currency_code"
class="select2 form-select form-control">
<option value="AED">AED</option>
<option value="ALL">ALL</option>
<option value="AMD">AMD</option>
<option value="ARS">ARS</option>
<option value="AUD">AUD</option>
<option value="AWG">AWG</option>
<option value="AZN">AZN</option>
<option value="BAM">BAM</option>
<option value="BBD">BBD</option>
<option value="BDT">BDT</option>
<option value="BGN">BGN</option>
<option value="BHD">BHD</option>
<option value="BIF">BIF</option>
<option value="BMD">BMD</option>
<option value="BND">BND</option>
<option value="BOB">BOB</option>
<option value="BRL">BRL</option>
<option value="BSD">BSD</option>
<option value="BTN">BTN</option>
<option value="BWP">BWP</option>
<option value="BZD">BZD</option>
<option value="CAD">CAD</option>
<option value="CHF">CHF</option>
<option value="CLP">CLP</option>
<option value="CNY">CNY</option>
<option value="COP">COP</option>
<option value="CRC">CRC</option>
<option value="CUP">CUP</option>
<option value="CVE">CVE</option>
<option value="CZK">CZK</option>
<option value="DJF">DJF</option>
<option value="DKK">DKK</option>
<option value="DOP">DOP</option>
<option value="DZD">DZD</option>
<option value="EGP">EGP</option>
<option value="ETB">ETB</option>
<option value="EUR">EUR</option>
<option value="FJD">FJD</option>
<option value="GBP">GBP</option>
<option value="GHS">GHS</option>
<option value="GIP">GIP</option>
<option value="GMD">GMD</option>
<option value="GNF">GNF</option>
<option value="GTQ">GTQ</option>
<option value="GYD">GYD</option>
<option value="HKD">HKD</option>
<option value="HNL">HNL</option>
<option value="HRK">HRK</option>
<option value="HTG">HTG</option>
<option value="HUF">HUF</option>
<option value="IDR">IDR</option>
<option value="ILS">ILS</option>
<option value="INR">INR</option>
<option value="IQD">IQD</option>
<option value="ISK">ISK</option>
<option value="JMD">JMD</option>
<option value="JOD">JOD</option>
<option value="JPY">JPY</option>
<option value="KES">KES</option>
<option value="KGS">KGS</option>
<option value="KHR">KHR</option>
<option value="KMF">KMF</option>
<option value="KRW">KRW</option>
<option value="KWD">KWD</option>
<option value="KYD">KYD</option>
<option value="KZT">KZT</option>
<option value="LAK">LAK</option>
<option value="LKR">LKR</option>
<option value="LRD">LRD</option>
<option value="LSL">LSL</option>
<option value="MAD">MAD</option>
<option value="MDL">MDL</option>
<option value="MGA">MGA</option>
<option value="MKD">MKD</option>
<option value="MMK">MMK</option>
<option value="MNT">MNT</option>
<option value="MOP">MOP</option>
<option value="MUR">MUR</option>
<option value="MVR">MVR</option>
<option value="MWK">MWK</option>
<option value="MXN">MXN</option>
<option value="MYR">MYR</option>
<option value="MZN">MZN</option>
<option value="NAD">NAD</option>
<option value="NGN">NGN</option>
<option value="NIO">NIO</option>
<option value="NOK">NOK</option>
<option value="NPR">NPR</option>
<option value="NZD">NZD</option>
<option value="OMR">OMR</option>
<option value="PEN">PEN</option>
<option value="PGK">PGK</option>
<option value="PHP">PHP</option>
<option value="PKR">PKR</option>
<option value="PLN">PLN</option>
<option value="PYG">PYG</option>
<option value="QAR">QAR</option>
<option value="RON">RON</option>
<option value="RSD">RSD</option>
<option value="RUB">RUB</option>
<option value="RWF">RWF</option>
<option value="SAR">SAR</option>
<option value="SCR">SCR</option>
<option value="SEK">SEK</option>
<option value="SGD">SGD</option>
<option value="SLL">SLL</option>
<option value="SOS">SOS</option>
<option value="SSP">SSP</option>
<option value="SVC">SVC</option>
<option value="SZL">SZL</option>
<option value="THB">THB</option>
<option value="TND">TND</option>
<option value="TRY">TRY</option>
<option value="TTD">TTD</option>
<option value="TWD">TWD</option>
<option value="TZS">TZS</option>
<option value="UAH">UAH</option>
<option value="UGX">UGX</option>
<option value="USD">USD</option>
<option value="UYU">UYU</option>
<option value="UZS">UZS</option>
<option value="VND">VND</option>
<option value="VUV">VUV</option>
<option value="XAF">XAF</option>
<option value="XCD">XCD</option>
<option value="XOF">XOF</option>
<option value="XPF">XPF</option>
<option value="YER">YER</option>
<option value="ZAR">ZAR</option>
<option value="ZMW">ZMW</option>
</select>
</div>
<label for="razorpay_secret_key"
class="col-sm-12 form-check-label mt-2">{{ __('Razorpay Secret key') }}</label>
<div class="col-sm-12 mt-2">
<input id="razorpay_secret_key" name="gateway[Razorpay][secret_key]" type="text"
class="form-control" placeholder="{{ __('Razorpay Secret key') }}"
value="{{ $paymentGateway['Razorpay']['secret_key'] ?? '' }}">
</div>
<label for="razorpay_public_key"
class="col-sm-12 form-check-label mt-2">{{ __('Razorpay Public key') }}</label>
<div class="col-sm-12 mt-2">
<input id="razorpay_public_key" name="gateway[Razorpay][api_key]" type="text"
class="form-control" placeholder="{{ __('Razorpay Publishable key') }}"
value="{{ $paymentGateway['Razorpay']['api_key'] ?? '' }}">
</div>
<label for="razorpay_webhook_secret"
class="col-sm-12 form-check-label mt-2">{{ __('Razorpay Webhook Secret') }}</label>
<div class="col-sm-12 mt-2">
<input id="razorpay_webhook_secret" name="gateway[Razorpay][webhook_secret_key]"
type="text" class="form-control"
placeholder="{{ __('Razorpay Webhook Secret') }}"
value="{{ $paymentGateway['Razorpay']['webhook_secret_key'] ?? '' }}">
</div>
<label for="razorpay_webhook_url"
class="col-sm-12 form-check-label mt-2">{{ __('Razorpay Webhook URL') }}</label>
<div class="col-sm-12 mt-2">
<input id="razorpay_webhook_url" name="gateway[Razorpay][webhook_url]" type="text"
class="form-control" placeholder="{{ __('Razorpay Webhook URL') }}"
value="{{ url('/webhook/razorpay') }}" disabled>
</div>
<label class="col-sm-12 form-check-label mt-2"
id='lbl_stripe'>{{ __('Status') }}</label>
<div class="col-sm-2 col-md-12 col-xs-12 mt-2">
<div class="form-check form-switch ">
<input type="hidden" name="gateway[Razorpay][status]" id="razorpay_gateway"
value="{{ $paymentGateway['Razorpay']['status'] ?? 0 }}">
<input class="form-check-input switch-input status-switch" type="checkbox"
role="switch" name='op'
{{ isset($paymentGateway['Razorpay']['status']) && $paymentGateway['Razorpay']['status'] == '1' ? 'checked' : '' }}
id="switch_razorpay_gateway" aria-label="switch_razorpay_gateway">
</div>
</div>
</div>
</div>
</div>
</div>
{{-- Razorpay Payment Gateway END --}}
{{-- Paystack Payment Gateway START --}}
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Paystack Setting') }}</h6>
</div>
<div class="form-group row mt-3">
<label for="paystack_currency_code"
class="col-sm-12 form-check-label mt-2">{{ __('Paystack Currency Symbol') }}</label>
<div class="col-sm-12 mt-2">
<select name="gateway[Paystack][currency_code]" id="paystack_currency_code"
class="select2 form-select form-control">
<option value="USD">USD</option>
<option value="GHS">GHS</option>
<option value="KES">KES</option>
<option value="NGN">NGN</option>
<option value="ZAR">ZAR</option>
</select>
</div>
<label for="paystack_secret_key"
class="col-sm-12 form-check-label mt-2">{{ __('Paystack Secret key') }}</label>
<div class="col-sm-12 mt-2">
<input id="paystack_secret_key" name="gateway[Paystack][secret_key]" type="text"
class="form-control" placeholder="{{ __('Paystack Secret key') }}"
value="{{ $paymentGateway['Paystack']['secret_key'] ?? '' }}">
</div>
<label for="paystack_publishable_key"
class="col-sm-12 form-check-label mt-2">{{ __('Paystack Public key') }}</label>
<div class="col-sm-12 mt-2">
<input id="paystack_publishable_key" name="gateway[Paystack][api_key]" type="text"
class="form-control" placeholder="{{ __('Paystack Public key') }}"
value="{{ $paymentGateway['Paystack']['api_key'] ?? '' }}">
</div>
<label for="paystack_webhook_url"
class="col-sm-12 form-check-label mt-2">{{ __('Paystack Webhook URL') }}</label>
<div class="col-sm-12 mt-2">
<input id="paystack_webhook_url" name="gateway[Paystack][webhook_url]" type="text"
class="form-control" placeholder="{{ __('Paystack Webhook URL') }}"
value="{{ url('/webhook/paystack') }}" disabled>
</div>
<label class="col-sm-12 form-check-label mt-2"
id='lbl_stripe'>{{ __('Status') }}</label>
<div class="col-sm-2 col-md-12 col-xs-12 mt-2">
<div class="form-check form-switch ">
<input type="hidden" name="gateway[Paystack][status]" id="paystack_gateway"
value="{{ $paymentGateway['Paystack']['status'] ?? 0 }}">
<input class="form-check-input switch-input status-switch" type="checkbox"
role="switch" name='op'
{{ isset($paymentGateway['Paystack']['status']) && $paymentGateway['Paystack']['status'] == '1' ? 'checked' : '' }}
id="switch_paystack_gateway" aria-label="switch_paystack_gateway">
</div>
</div>
</div>
</div>
</div>
</div>
{{-- Paystack Payment Gateway END --}}
{{-- phonePe Payment Gateway START --}}
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('PhonePe Setting') }}</h6>
</div>
<div class="form-group row mt-3">
<label for="paystack_secret_key"
class="col-sm-12 form-check-label mt-2">{{ __('PhonePe Client Secret') }}</label>
<div class="col-sm-12 mt-2">
<input id="paystack_secret_key" name="gateway[PhonePe][secret_key]" type="text"
class="form-control phonepe-required"
placeholder="{{ __('PhonePe Client Secret') }}"
value="{{ $paymentGateway['PhonePe']['secret_key'] ?? '' }}">
</div>
<label for="paystack_publishable_key"
class="col-sm-12 form-check-label mt-2">{{ __('PhonePe Client ID') }}</label>
<div class="col-sm-12 mt-2">
<input id="paystack_publishable_key" name="gateway[PhonePe][api_key]" type="text"
class="form-control phonepe-required" placeholder="{{ __('PhonePe Client ID') }}"
value="{{ $paymentGateway['PhonePe']['api_key'] ?? '' }}">
</div>
<label for="paystack_publishable_key"
class="col-sm-12 form-check-label mt-2">{{ __('PhonePe Client Version') }}</label>
<div class="col-sm-12 mt-2">
<input id="paystack_publishable_key" name="gateway[PhonePe][additional_data_1]"
type="text" class="form-control phonepe-required"
placeholder="{{ __('PhonePe Client Version') }}"
value="{{ $paymentGateway['PhonePe']['additional_data_1'] ?? '' }}">
</div>
<label for="paystack_publishable_key"
class="col-sm-12 form-check-label mt-2">{{ __('PhonePe Merchant ID') }}</label>
<div class="col-sm-12 mt-2">
<input id="paystack_publishable_key" name="gateway[PhonePe][additional_data_2]"
type="text" class="form-control phonepe-required"
placeholder="{{ __('PhonePe Merchant ID') }}"
value="{{ $paymentGateway['PhonePe']['additional_data_2'] ?? '' }}">
</div>
<label for="phonepe_username"
class="col-sm-12 form-check-label mt-2">{{ __('PhonePe Username') }}</label>
<div class="col-sm-12 mt-2">
<input id="phonepe_username_key" name="gateway[PhonePe][username]"
type="text" class="form-control phonepe-required"
placeholder="{{ __('PhonePe Username') }}"
value="{{ $paymentGateway['PhonePe']['username'] ?? '' }}">
</div>
<label for="phonepe_password"
class="col-sm-12 form-check-label mt-2">{{ __('PhonePe Password') }}</label>
<div class="col-sm-12 mt-2">
<input id="paystack_publishable_key" name="gateway[PhonePe][password]"
type="text" class="form-control phonepe-required"
placeholder="{{ __('PhonePe Password') }}"
value="{{ $paymentGateway['PhonePe']['password'] ?? '' }}">
</div>
<label for="phonepe_mode"
class="col-sm-12 form-check-label mt-2">{{ __('PhonePe Payment Mode') }}</label>
<div class="col-sm-12 mt-2">
<select id="phonepe_mode" name="gateway[PhonePe][payment_mode]"
class="form-control phonepe-required">
<option value="UAT"
{{ isset($paymentGateway['PhonePe']['payment_mode']) && $paymentGateway['PhonePe']['payment_mode'] == 'UAT' ? 'selected' : '' }}>
UAT</option>
<option value="PROD"
{{ isset($paymentGateway['PhonePe']['payment_mode']) && $paymentGateway['PhonePe']['payment_mode'] == 'PROD' ? 'selected' : '' }}>
PROD</option>
</select>
</div>
<label for="paystack_webhook_url"
class="col-sm-12 form-check-label mt-2">{{ __('PhonePe Webhook URL') }}</label>
<div class="col-sm-12 mt-2">
<input id="phonePe_webhook_url" name="gateway[PhonePe][webhook_url]" type="text"
class="form-control" placeholder="{{ __('PhonePe Webhook URL') }}"
value="{{ url('/webhook/phonePe') }}" disabled>
</div>
<label class="col-sm-12 form-check-label mt-2"
id='lbl_stripe'>{{ __('Status') }}</label>
<div class="col-sm-2 col-md-12 col-xs-12 mt-2">
<div class="form-check form-switch ">
<input type="hidden" name="gateway[PhonePe][status]" id="paystack_gateway"
value="{{ $paymentGateway['PhonePe']['status'] ?? 0 }}">
<input class="form-check-input switch-input status-switch" type="checkbox"
role="switch" name='op'
{{ isset($paymentGateway['PhonePe']['status']) && $paymentGateway['PhonePe']['status'] == '1' ? 'checked' : '' }}
id="switch_phonepe_gateway" aria-label="switch_paystack_gateway">
</div>
</div>
</div>
</div>
</div>
</div>
{{-- phonePe Payment Gateway END --}}
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Flutterwave Setting') }}</h6>
</div>
<div class="form-group row mt-3">
<label for="flutterwave_currency_code" class="col-sm-12 form-check-label mt-2">
{{ __('Flutterwave Currency') }}
</label>
<div class="col-sm-12 mt-2">
<select name="gateway[flutterwave][currency_code]" id="flutterwave_currency_code"
class="select2 form-select form-control-sm">
<option value="NGN">NGN</option>
<option value="USD">USD</option>
<option value="GHS">GHS</option>
<option value="KES">KES</option>
<option value="UGX">UGX</option>
<option value="TZS">TZS</option>
<option value="ZAR">ZAR</option>
<option value="XOF">XOF</option>
</select>
</div>
<label for="flutterwave_secret_key" class="col-sm-12 form-check-label mt-2">
{{ __('Flutterwave Secret Key') }}
</label>
<div class="col-sm-12 mt-2">
<input id="flutterwave_secret_key" name="gateway[flutterwave][secret_key]"
type="text" class="form-control"
placeholder="{{ __('Flutterwave Secret Key') }}"
value="{{ $paymentGateway['flutterwave']['secret_key'] ?? '' }}">
</div>
<label for="flutterwave_public_key" class="col-sm-12 form-check-label mt-2">
{{ __('Flutterwave Public Key') }}
</label>
<div class="col-sm-12 mt-2">
<input id="flutterwave_public_key" name="gateway[flutterwave][api_key]"
type="text" class="form-control"
placeholder="{{ __('Flutterwave Public Key') }}"
value="{{ $paymentGateway['flutterwave']['api_key'] ?? '' }}">
</div>
<label for="flutterwave_encryption_key" class="col-sm-12 form-check-label mt-2">
{{ __('Flutterwave Webhook Secret') }}
</label>
<div class="col-sm-12 mt-2">
<input id="flutterwave_encryption_key" name="gateway[flutterwave][webhook_secret_key]"
type="text" class="form-control"
placeholder="{{ __('Flutterwave Webhook Secret') }}"
value="{{ $paymentGateway['flutterwave']['webhook_secret_key'] ?? '' }}">
</div>
<label for="flutterwave_webhook_url" class="col-sm-12 form-check-label mt-2">
{{ __('Flutterwave Webhook URL') }}
</label>
<div class="col-sm-12 mt-2">
<input id="flutterwave_webhook_url" name="gateway[flutterwave][webhook_url]"
type="text" class="form-control"
placeholder="{{ __('Flutterwave Webhook URL') }}"
value="{{ url('/webhook/flutterwave') }}" disabled>
</div>
<label class="col-sm-12 form-check-label mt-2"
id='lbl_flutterwave'>{{ __('Status') }}</label>
<div class="col-sm-2 col-md-12 col-xs-12 mt-2">
<div class="form-check form-switch">
<input type="hidden" name="gateway[flutterwave][status]"
id="flutterwave_gateway"
value="{{ $paymentGateway['flutterwave']['status'] ?? 0 }}">
<input class="form-check-input switch-input status-switch" type="checkbox"
role="switch" name='op'
{{ isset($paymentGateway['flutterwave']['status']) && $paymentGateway['flutterwave']['status'] == '1' ? 'checked' : '' }}
id="switch_flutterwave_gateway" aria-label="switch_flutterwave_gateway">
</div>
</div>
</div>
</div>
</div>
</div>
{{-- paypal Payment Gateway START --}}
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('PayPal Setting') }}</h6>
</div>
<div class="form-group row mt-3">
<label for="paypal_currency_code"
class="col-sm-12 form-check-label mt-2">{{ __('PayPal Currency Symbol') }}</label>
<div class="col-sm-12 mt-2">
<select name="gateway[Paypal][currency_code]" id="paypal_currency_code"
class="select2 form-select form-control">
<option value="USD"
{{ ($paymentGateway['Paypal']['currency_code'] ?? '') == 'USD' ? 'selected' : '' }}>
USD</option>
<option value="EUR"
{{ ($paymentGateway['Paypal']['currency_code'] ?? '') == 'EUR' ? 'selected' : '' }}>
EUR</option>
<option value="GBP"
{{ ($paymentGateway['Paypal']['currency_code'] ?? '') == 'GBP' ? 'selected' : '' }}>
GBP</option>
<option value="AUD"
{{ ($paymentGateway['Paypal']['currency_code'] ?? '') == 'AUD' ? 'selected' : '' }}>
AUD</option>
<option value="CAD"
{{ ($paymentGateway['Paypal']['currency_code'] ?? '') == 'CAD' ? 'selected' : '' }}>
CAD</option>
</select>
</div>
<label for="paypal_client_id"
class="col-sm-12 form-check-label mt-2">{{ __('PayPal Client ID') }}</label>
<div class="col-sm-12 mt-2">
<input id="paypal_client_id" name="gateway[Paypal][api_key]" type="text"
class="form-control" placeholder="{{ __('PayPal Client ID') }}"
value="{{ $paymentGateway['Paypal']['api_key'] ?? '' }}">
</div>
<label for="paypal_secret_key"
class="col-sm-12 form-check-label mt-2">{{ __('PayPal Secret Key') }}</label>
<div class="col-sm-12 mt-2">
<input id="paypal_secret_key" name="gateway[Paypal][secret_key]" type="text"
class="form-control" placeholder="{{ __('PayPal Secret Key') }}"
value="{{ $paymentGateway['Paypal']['secret_key'] ?? '' }}">
</div>
<label for="paypal_webhook_url"
class="col-sm-12 form-check-label mt-2">{{ __('PayPal Webhook URL') }}</label>
<div class="col-sm-12 mt-2">
<input id="paypal_webhook_url" name="gateway[Paypal][webhook_url]" type="text"
class="form-control" placeholder="{{ __('PayPal Webhook URL') }}"
value="{{ url('/webhook/paypal') }}" disabled>
</div>
<label for="phonepe_mode"
class="col-sm-12 form-check-label mt-2">{{ __('Paypal Payment Mode') }}</label>
<div class="col-sm-12 mt-2">
<select id="phonepe_mode" name="gateway[Paypal][payment_mode]"
class="form-control phonepe-required">
<option value="UAT"
{{ isset($paymentGateway['Paypal']['payment_mode']) && $paymentGateway['Paypal']['payment_mode'] == 'UAT' ? 'selected' : '' }}>
UAT</option>
<option value="PROD"
{{ isset($paymentGateway['Paypal']['payment_mode']) && $paymentGateway['Paypal']['payment_mode'] == 'PROD' ? 'selected' : '' }}>
PROD</option>
</select>
</div>
<label class="col-sm-12 form-check-label mt-2">{{ __('Status') }}</label>
<div class="col-sm-2 col-md-12 col-xs-12 mt-2">
<div class="form-check form-switch">
<input type="hidden" name="gateway[Paypal][status]" id="paypal_gateway"
value="{{ $paymentGateway['Paypal']['status'] ?? 0 }}">
<input class="form-check-input switch-input status-switch" type="checkbox"
role="switch" name='op'
{{ isset($paymentGateway['Paypal']['status']) && $paymentGateway['Paypal']['status'] == '1' ? 'checked' : '' }}
id="switch_paypal_gateway" aria-label="switch_paypal_gateway">
</div>
</div>
</div>
</div>
</div>
</div>
{{-- paypal Payment Gateway END --}}
{{-- Bank Account Details --}}
<div class="col-md-6 mt-4">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Manage Bank Account Details') }}</h6>
</div>
<div class="form-group">
<label for="account_holder_name"
class="form-label">{{ __('Account Holder Name') }}</label>
<input class="form-control" type="text" name="bank[account_holder_name]"
id="account_holder_name" value="{{ $settings['account_holder_name'] ?? '' }}">
</div>
<div class="form-group">
<label for="bank_name" class="form-label">{{ __('Bank Name') }}</label>
<input class="form-control" type="text" name="bank[bank_name]" id="bank_name"
value="{{ $settings['bank_name'] ?? '' }}">
</div>
<div class="form-group">
<label for="account_number" class="form-label">{{ __('Account Number') }}</label>
<input class="form-control" type="number" name="bank[account_number]"
id="account_number" value="{{ $settings['account_number'] ?? '' }}">
</div>
<div class="form-group">
<label for="ifsc_swift_code" class="form-label">{{ __('IFSC/SWIFT Code') }}</label>
<input class="form-control" type="text" name="bank[ifsc_swift_code]"
id="ifsc_swift_code" value="{{ $settings['ifsc_swift_code'] ?? '' }}">
</div>
<label class="form-check-label mt-2">{{ __('Status') }}</label>
<div class="form-check form-switch">
<input type="hidden" name="bank[bank_transfer_status]" value="0">
<input class="form-check-input" type="checkbox" name="bank[bank_transfer_status]"
value="1"
{{ isset($settings['bank_transfer_status']) && $settings['bank_transfer_status'] == '1' ? 'checked' : '' }}>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 d-flex justify-content-end">
<button type="submit" class="btn btn-primary me-1 mb-3">{{ __('Save') }}</button>
</div>
</form>
</section>
@endsection
@section('script')
<script type="text/javascript">
$('#stripe_currency_code').val("{{ $paymentGateway['Stripe']['currency_code'] ?? '' }}").trigger("change");
$('#switch_stripe_gateway').val("{{ $paymentGateway['Stripe']['status'] ?? false }}").trigger("change");
$('#razorpay_currency_code').val("{{ $paymentGateway['Razorpay']['currency_code'] ?? '' }}").trigger("change");
$('#switch_razorpay_gateway').val("{{ $paymentGateway['Stripe']['status'] ?? false }}").trigger("change");
$('#paystack_currency_code').val("{{ $paymentGateway['Paystack']['currency_code'] ?? '' }}").trigger("change");
$('#switch_paystack_gateway').val("{{ $paymentGateway['Stripe']['status'] ?? false }}").trigger("change");
</script>
<script>
$(document).ready(function() {
function togglePhonePeRequiredFields() {
if ($('#switch_phonepe_gateway').is(':checked')) {
$('.phonepe-required').attr('required', true);
} else {
$('.phonepe-required').removeAttr('required');
}
}
// Initial check on page load
togglePhonePeRequiredFields();
// On switch toggle
$('#switch_phonepe_gateway').on('change', function() {
togglePhonePeRequiredFields();
});
});
</script>
@endsection

View File

@@ -0,0 +1,91 @@
@extends('layouts.main')
@section('title')
{{ __('Privacy Policy') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="card">
<form action="{{ route('settings.store')}}" method="post" class="create-form-without-reset">
@csrf
<div class="card-body">
<div class="row form-group">
<div class="col-2 d-flex justify-content-end">
<a href="{{ route('public.privacy-policy') }}" target="_blank" class="col-sm-12 col-md-12 d-fluid btn icon btn-primary btn-sm rounded-pill" onclick="" title="Enable">
<i class="bi bi-eye-fill"></i>
</a>
</div>
<ul class="nav nav-tabs" id="privacyTabs" role="tablist">
@foreach($languages as $lang)
<li class="nav-item" role="presentation">
<a class="nav-link {{ $loop->first ? 'active' : '' }}"
id="privacy-tab-{{ $lang->id }}"
data-bs-toggle="tab"
href="#privacy-lang-{{ $lang->id }}"
role="tab">
{{ $lang->name }}
</a>
</li>
@endforeach
</ul>
<!-- Tab Panes -->
<div class="tab-content mt-3">
@foreach($languages as $lang)
<div class="tab-pane fade {{ $loop->first ? 'show active' : '' }}"
id="privacy-lang-{{ $lang->id }}"
role="tabpanel">
<input type="hidden" name="languages[]" value="{{ $lang->id }}">
<div class="form-group">
<label>{{ __("Privacy Policy") }} ({{ $lang->name }})</label>
<textarea name="privacy_policy[{{ $lang->id }}]"
id="tinymce_editor_privacy_{{ $lang->id }}"
class="tinymce_editor form-control"
rows="6">{{ old("privacy_policy.$lang->id", $translations['privacy_policy'][$lang->id] ?? ($settings['privacy_policy'] ?? '')) }}</textarea>
</div>
</div>
@endforeach
</div>
<!-- Save Button -->
<div class="col-12 mt-3 d-flex justify-content-end">
<button class="btn btn-primary" type="submit">{{ __('Save') }}</button>
</div>
</div>
</form>
</div>
</section>
@endsection
@section('script')
<script>
document.addEventListener("DOMContentLoaded", () => {
tinymce.init({
selector: '.tinymce_editor',
height: 400,
menubar: false,
plugins: [
'advlist autolink lists link charmap preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime table paste code help wordcount'
],
toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | removeformat | code',
setup: function (editor) {
editor.on("change keyup", function () {
editor.save();
});
}
});
});
</script>
@endsection

View File

@@ -0,0 +1,100 @@
@extends('layouts.main')
@section('title')
{{ __('Refund Policy') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="card">
<form action="{{ route('settings.store')}}" method="post" class="create-form-without-reset">
@csrf
<div class="card-body">
<!-- Preview Button -->
<div class="row form-group">
<div class="col-2 d-flex justify-content-end">
<a href="{{ route('public.refund-policy') }}" target="_blank"
class="btn icon btn-primary btn-sm rounded-pill"
title="{{ __('View Page') }}">
<i class="bi bi-eye-fill"></i>
</a>
</div>
</div>
<!-- Language Tabs -->
<ul class="nav nav-tabs" id="refundTabs" role="tablist">
@foreach($languages as $lang)
<li class="nav-item" role="presentation">
<a class="nav-link {{ $loop->first ? 'active' : '' }}"
id="refund-tab-{{ $lang->id }}"
data-bs-toggle="tab"
href="#refund-lang-{{ $lang->id }}"
role="tab">
{{ $lang->name }}
</a>
</li>
@endforeach
</ul>
<!-- Tab Panes -->
<div class="tab-content mt-3">
@foreach($languages as $lang)
<div class="tab-pane fade {{ $loop->first ? 'show active' : '' }}"
id="refund-lang-{{ $lang->id }}"
role="tabpanel">
<input type="hidden" name="languages[]" value="{{ $lang->id }}">
<div class="form-group">
<label>{{ __("Refund Policy") }} ({{ $lang->name }})</label>
<textarea name="refund_policy[{{ $lang->id }}]"
id="tinymce_editor_refund_{{ $lang->id }}"
class="tinymce_editor form-control"
rows="6">{{ old("refund_policy.$lang->id", $translations['refund_policy'][$lang->id] ?? ($settings['refund_policy'] ?? '')) }}</textarea>
</div>
</div>
@endforeach
</div>
<!-- Save Button -->
<div class="col-12 mt-3 d-flex justify-content-end">
<button class="btn btn-primary" type="submit">{{ __('Save') }}</button>
</div>
</div>
</form>
</div>
</section>
@endsection
@section('script')
<script>
document.addEventListener("DOMContentLoaded", () => {
tinymce.init({
selector: '.tinymce_editor',
height: 400,
menubar: false,
plugins: [
'advlist autolink lists link charmap preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime table paste code help wordcount'
],
toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | removeformat | code',
setup: function (editor) {
editor.on("change keyup", function () {
editor.save();
});
}
});
});
</script>
@endsection

View File

@@ -0,0 +1,308 @@
@extends('layouts.main')
@section('title')
{{ __('Seo-settings') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="row">
<div class="col-md-4">
<div class="card">
<div class="card-header">
<div class="divider">
<div class="divider-text">
<h4>{{ __('Seo Setting') }}</h4>
</div>
</div>
</div>
<div class="card-content">
<div class="card-body">
<div class="row form-group">
<div class="col-sm-12 col-md-12 form-group">
<form action="{{ route('seo-setting.store') }}" method="POST" enctype="multipart/form-data" data-parsley-validate class="create-form">
@csrf
{{-- <div class="row">
<div class="col-sm-12 col-md-12 form-group mandatory">
<label for="page" class="form-label text-center">{{ __('Page') }}</label>
<select class="form-control" name="page" data-parsley-required="true">
<option value="">Select Page</option>
<option value="home">Home</option>
<option value="subscription">Subscription</option>
<option value="blogs">Blogs</option>
<option value="faqs">Faqs</option>
<option value="ad-listing">Ad Listing</option>
<option value="about-us">About us</option>
<option value="contact-us">Contact us</option>
<option value="landing">Landing</option>
<option value="privacy-policy">Privacy Policy</option>
<option value="terms-and-conditions">Terms and Conditions</option>
</select>
</div>
<div class="col-sm-12 col-md-12 form-group mandatory">
<label for="meta_title" class="form-label text-center">{{ __('Title') }}</label>
<input type="text" name="title" class="form-control" id="meta_title" placeholder="{{ __('Title') }}" data-parsley-required="true">
<h6 id="meta_title_count"></h6>
</div>
<div class="col-sm-12 col-md-12 form-group mandatory">
<label for="meta_description" class="form-label text-center">{{ __('Description') }}</label>
<textarea name="description" class="form-control" id="meta_description" placeholder="{{ __('Description') }}" data-parsley-required="true"></textarea>
<h6 id="meta_description_count"></h6>
</div>
<div class="col-sm-12 col-md-12 form-group mandatory">
<label for="keywords" class="form-label text-center">{{ __('Keywords') }}</label>
<textarea name="keywords" class="form-control" placeholder="{{ __('Keywords') }}" data-parsley-required="true"></textarea>
</div>
<div class="col-sm-12 col-md-12 form-group mandatory">
<label for="image" class="form-label">{{ __('Image') }}</label>
<input class="filepond" type="file" name="image" id="favicon_icon">
</div>
</div>
<div class="row">
<div class="col-sm-12 d-flex justify-content-end mt-3">
<button type="submit" class="btn btn-primary me-1 mb-1">{{ __('Save') }}</button>
</div>
</div> --}}
<div class="row">
<div class="col-12">
{{-- English-only fields --}}
<div class="form-group mandatory">
<label for="page" class="form-label">{{ __('Page') }}</label>
<select class="form-control" name="page" data-parsley-required="true">
<option value="">{{ __('Select Page') }}</option>
<option value="home">{{ __('Home') }}</option>
<option value="subscription">{{ __('Subscription') }}</option>
<option value="blogs">{{ __('Blogs') }}</option>
<option value="faqs">{{ __('Faqs') }}</option>
<option value="ad-listing">{{ __('Ad Listing') }}</option>
<option value="about-us">{{ __('About us') }}</option>
<option value="contact-us">{{ __('Contact us') }}</option>
<option value="landing">{{ __('Landing') }}</option>
<option value="privacy-policy">{{ __('Privacy Policy') }}</option>
<option value="refund-policy">{{ __('Refund Policy') }}</option>
<option value="terms-and-conditions">{{ __('Terms and Conditions') }}</option>
</select>
</div>
<div class="form-group mandatory">
<label for="image" class="form-label">{{ __('Image') }}</label>
<input class="filepond" type="file" name="image" id="favicon_icon">
</div>
{{-- Language Tabs --}}
<ul class="nav nav-tabs mt-3" id="languageTabs" role="tablist">
@foreach($languages as $lang)
<li class="nav-item" role="presentation">
<a class="nav-link {{ $loop->first ? 'active' : '' }}" id="tab-{{ $lang->id }}" data-bs-toggle="tab" href="#lang-{{ $lang->id }}" role="tab">
{{ $lang->name }}
</a>
</li>
@endforeach
</ul>
<div class="tab-content mt-3">
@foreach($languages as $lang)
<div class="tab-pane fade {{ $loop->first ? 'show active' : '' }}" id="lang-{{ $lang->id }}" role="tabpanel">
<input type="hidden" name="languages[]" value="{{ $lang->id }}">
<div class="form-group">
<label>{{ __("Title") }} ({{ $lang->name }})</label>
<input type="text" name="title[{{ $lang->id }}]" class="form-control">
</div>
<div class="form-group">
<label>{{ __("Description") }} ({{ $lang->name }})</label>
<textarea name="description[{{ $lang->id }}]" class="form-control" rows="3"></textarea>
</div>
<div class="form-group">
<label>{{ __("Keywords") }} ({{ $lang->name }})</label>
<textarea name="keywords[{{ $lang->id }}]" class="form-control" rows="2"></textarea>
</div>
</div>
@endforeach
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 d-flex justify-content-end mt-3">
<button type="submit" class="btn btn-primary me-1 mb-1">{{ __('Save') }}</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-8">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table-light table-striped" aria-describedby="mydesc" id="table_list" data-toggle="table" data-url="{{ route('seo-setting.show',1) }}" data-click-to-select="true" data-side-pagination="server" data-pagination="true" data-page-list="[5, 10, 20, 50, 100, 200]" data-search="true" data-toolbar="#toolbar" data-show-columns="true" data-show-refresh="true" data-fixed-columns="true" data-fixed-number="1" data-fixed-right-number="1" data-trim-on-search="false" data-responsive="true" data-sort-name="id" data-sort-order="desc" data-pagination-successively-size="3" data-escape="true" data-query-params="queryParams" data-mobile-responsive="true">
<thead>
<tr>
<th scope="col" data-field="id" data-sortable="true">{{ __('ID') }}</th>
<th scope="col" data-field="page" data-sortable="false">{{ __('Page') }}</th>
<th scope="col" data-field="title" data-sortable="false">{{ __('Title')}}</th>
<th scope="col" data-field="description" data-sortable="true">{{ __('Description') }}</th>
<th scope="col" data-field="keywords" data-sortable="true">{{ __('Keywords') }}
<th scope="col" data-field="image" data-sortable="false" data-formatter="imageFormatter">{{ __('Image') }}
<th scope="col" data-field="operate" data-escape="false" data-sortable="false" data-events="SeoSettingEvents">{{ __('Action') }}</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- EDIT MODEL MODEL -->
<div id="editModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1" aria-hidden="true">
<div class="modal-dialog">
<form action="#" class="form-horizontal" id="edit-form" enctype="multipart/form-data" method="POST" data-parsley-validate>
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel1">{{ __('Edit Seo Setting') }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-12">
<div class="col-md-12 col-12">
<div class="form-group mandatory">
<label for="edit_page" class="form-label col-12">{{ __('Page') }}</label>
<input type="text" id="edit_page" class="form-control col-12" placeholder="{{__("Page")}}" name="page" data-parsley-required="true" disabled>
</div>
</div>
</div>
<div class="col-sm-12 col-md-12 form-group">
<label class="col-form-label ">{{ __('Image') }}</label>
<div class="">
<input class="filepond" type="file" name="image" id="edit_image">
</div>
</div>
<ul class="nav nav-tabs mt-3" role="tablist">
@foreach($languages as $lang)
<li class="nav-item" role="presentation">
<a class="nav-link {{ $loop->first ? 'active' : '' }}" id="edit-tab-{{ $lang->id }}" data-bs-toggle="tab" href="#edit-lang-{{ $lang->id }}" role="tab">
{{ $lang->name }}
</a>
</li>
@endforeach
</ul>
<div class="tab-content mt-3">
@foreach($languages as $lang)
<div class="tab-pane fade {{ $loop->first ? 'show active' : '' }}" id="edit-lang-{{ $lang->id }}" role="tabpanel">
<input type="hidden" name="languages[]" value="{{ $lang->id }}">
<div class="form-group">
<label>{{ __("Title") }} ({{ $lang->name }})</label>
<input type="text" name="title[{{ $lang->id }}]" id="edit_title_{{ $lang->id }}" class="form-control">
</div>
<div class="form-group">
<label>{{ __("Description") }} ({{ $lang->name }})</label>
<textarea name="description[{{ $lang->id }}]" id="edit_description_{{ $lang->id }}" class="form-control" rows="3"></textarea>
</div>
<div class="form-group">
<label>{{ __("Keywords") }} ({{ $lang->name }})</label>
<textarea name="keywords[{{ $lang->id }}]" id="edit_keywords_{{ $lang->id }}" class="form-control" rows="2"></textarea>
</div>
</div>
@endforeach
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect" data-bs-dismiss="modal">{{ __('Close') }}</button>
<button type="submit" class="btn btn-primary waves-effect waves-light">{{ __('Save') }}</button>
</div>
</div>
</form>
</div>
</div>
@endsection
@section('script')
<script>
const maxPixelWidth = 400; // Adjust as needed
const tooLongPixelWidth = 600; // Adjust as needed
// Reusable width calculator
function getTextWidth(text, font) {
const canvas = document.createElement("canvas");
const context = canvas.getContext("2d");
context.font = font;
return context.measureText(text).width;
}
function updateMetaLength(inputId, maxPixelWidth, tooLongPixelWidth) {
const input = $(`#${inputId}`);
const countElement = $(`#${inputId}_count`);
if (input.length && countElement.length) {
const text = input.val().trim();
let textPixelLength = Math.round(getTextWidth(text, '19.9px Arial'));
let iconClass = 'fa-exclamation-triangle text-danger';
let feedbackMessage = `Your Meta is too short.`;
let feedbackColor = 'text-danger';
if (textPixelLength >= maxPixelWidth && textPixelLength <= tooLongPixelWidth) {
iconClass = 'fa-check-circle text-success';
feedbackMessage = `Your Meta is an acceptable length.`;
feedbackColor = 'text-success';
} else if (textPixelLength > tooLongPixelWidth) {
feedbackMessage = `Meta should be around ${tooLongPixelWidth}px in length.`;
}
countElement.html(`
<i class="fa ${iconClass}"></i>
<span><b>${textPixelLength}</b> pixels</span>
<span class="${feedbackColor}"> -- ${feedbackMessage}</span>
`);
}
}
// Trigger check on input for each language
$(document).ready(function () {
@foreach ($languages as $lang)
// Title
$(`#meta_title_{{ $lang->id }}`).on('input', function () {
updateMetaLength('meta_title_{{ $lang->id }}', maxPixelWidth, tooLongPixelWidth);
});
$(`#meta_description_{{ $lang->id }}`).on('input', function () {
updateMetaLength('meta_description_{{ $lang->id }}', maxPixelWidth, tooLongPixelWidth);
});
$(`#meta_keywords_{{ $lang->id }}`).on('input', function () {
updateMetaLength('meta_keywords_{{ $lang->id }}', maxPixelWidth, tooLongPixelWidth);
});
@endforeach
});
</script>
@endsection

View File

@@ -0,0 +1,70 @@
@extends('layouts.main')
@section('title')
{{ __("System Status")." ".__("Settings")}}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<div class="row mb-3">
<div class="col-md-8">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('System Status') }}</h6>
</div>
<!-- Backend Section -->
<div class="card mt-3">
<div class="card-header">
{{ __('Backend') }}
</div>
</div>
<!-- Storage Section -->
<div class="card mt-1">
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-3">
<div class="d-flex align-items-center">
<label for="Storage" class="form-label mb-0 me-2">
{{ __('Storage') }}
</label>
<a href="#" data-bs-toggle="tooltip" title="{{ $isLinked ? __('Storage folder is currently linked.') : __('Storage folder is not linked. Click to link it.') }}">
<i class="bi bi-question-circle"></i>
</a>
</div>
<div class="d-flex align-items-center">
<i class="bi {{ $isLinked ? 'bi-check-circle text-success' : 'bi-x-circle text-danger' }} me-2" aria-label="{{ $isLinked ? 'Linked' : 'Unlinked' }}"></i>
<form action="{{ route('toggle.storage.link') }}" method="POST" class="m-0">
@csrf
<button type="submit" class="btn btn-link text-primary" style="font-size: 0.875rem; padding: 0; text-decoration: underline;">
{{ __('Link') }}
</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('script')
<script>
$(document).ready(function() {
$('[data-toggle="tooltip"]').tooltip();
});
</script>
@endsection

View File

@@ -0,0 +1,499 @@
@extends('layouts.main')
@section('title')
{{ __('System Settings') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="create-form-without-reset" action="{{ route('settings.store') }}" method="post"
enctype="multipart/form-data" data-success-function="successFunction" data-parsley-validate>
@csrf
<div class="row d-flex mb-3">
<div class="col-md-4 d-flex">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Company Details') }}</h6>
</div>
<div class="row">
<div class="col-sm-12 form-group mandatory">
<label for="company_name"
class="col-sm-6 col-md-6 form-label mt-1">{{ __('Company Name') }}</label>
<input name="company_name" type="text" class="form-control" id="company_name"
placeholder="{{ __('Company Name') }}" value="{{ $settings['company_name'] ?? '' }}"
required>
</div>
<div class="col-sm-12 form-group mandatory">
<label for="company_email"
class="col-sm-12 col-md-6 form-label mt-1">{{ __('Email') }}</label>
<input id="company_email" name="company_email" type="email" class="form-control"
placeholder="{{ __('Email') }}" value="{{ $settings['company_email'] ?? '' }}"
required>
</div>
<div class="col-sm-12 form-group mandatory">
<label for="company_tel1"
class="col-sm-12 col-md-6 form-label mt-1">{{ __('Contact Number') . ' 1' }}</label>
<input id="company_tel1" name="company_tel1" type="text" class="form-control"
placeholder="{{ __('Contact Number') . ' 1' }}" maxlength="16"
onKeyDown="if(this.value.length==16 && event.keyCode!=8) return false;"
value="{{ $settings['company_tel1'] ?? '' }}" required>
</div>
<div class="col-sm-12">
<label for="company_tel2"
class="col-sm-12 col-md-6 form-label mt-1">{{ __('Contact Number') . ' 2' }}</label>
<input id="company_tel2" name="company_tel2" type="text" class="form-control"
placeholder="{{ __('Contact Number') . ' 2' }}" maxlength="16"
onKeyDown="if(this.value.length==16 && event.keyCode!=8) return false;"
value="{{ $settings['company_tel2'] ?? '' }}">
</div>
<div class="col-sm-12">
<label for="company_address"
class="col-sm-12 col-md-6 form-label mt-1">{{ __('Address') }}</label>
<textarea id="company_address" name="company_address" type="text" class="form-control"
placeholder="{{ __('Address') }}">{{ $settings['company_address'] ?? '' }}</textarea>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-8 d-flex">
<div class="card h-100">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('More Setting') }}</h6>
</div>
<div class="row">
<div class="form-group col-sm-12 col-md-6 col-xs-12 mandatory">
<label for="default_language" class="form-label ">{{ __('Default Language') }}</label>
<select name="default_language" id="default_language"
class="form-select form-control-sm">
@foreach ($languages as $row)
{{ $row }}
<option value="{{ $row->code }}"
{{ $settings['default_language'] == $row->code ? 'selected' : '' }}>
{{ $row->name }}
</option>
@endforeach
</select>
</div>
{{-- </div> --}}
<div class="form-group col-sm-12 col-md-6">
<label for="android_version" class="form-label ">{{ __('Android Version') }}</label>
<input id="android_version" name="android_version" type="text" class="form-control"
placeholder="{{ __('Android Version') }}"
value="{{ $settings['android_version'] ?? '' }}" required="">
</div>
<div class="form-group col-sm-12 col-md-6">
<label for="play_store_link" class="form-label ">{{ __('Play Store Link') }}</label>
<input id="play_store_link" name="play_store_link" type="url" class="form-control"
placeholder="{{ __('Play Store Link') }}"
value="{{ $settings['play_store_link'] ?? '' }}">
</div>
<div class="form-group col-sm-12 col-md-6">
<label for="ios_version" class="form-label ">{{ __('IOS Version') }}</label>
<input id="ios_version" name="ios_version" type="text" class="form-control"
placeholder="{{ __('IOS Version') }}" value="{{ $settings['ios_version'] ?? '' }}"
required="">
</div>
<div class="form-group col-sm-12 col-md-6">
<label for="app_store_link" class="form-label ">{{ __('App Store Link') }}</label>
<input id="app_store_link" name="app_store_link" type="url" class="form-control"
placeholder="{{ __('App Store Link') }}"
value="{{ $settings['app_store_link'] ?? '' }}">
</div>
<div class="form-group col-sm-12 col-md-6">
<label class="form-label ">{{ __('Maintenance Mode') }}</label>
<i class="fa fa-info-circle" data-bs-toggle="tooltip" data-bs-placement="top"
title="{{ __('Temporary disable website.') }}"
aria-label="{{ __('Temporary disable website.') }}"></i>
<div class="form-check form-switch">
<input type="hidden" name="maintenance_mode" id="maintenance_mode"
class="checkbox-toggle-switch-input"
value="{{ $settings['maintenance_mode'] ?? 0 }}">
<input class="form-check-input checkbox-toggle-switch" type="checkbox" role="switch"
{{ $settings['maintenance_mode'] == '1' ? 'checked' : '' }}
id="switch_maintenance_mode">
<label class="form-check-label" for="switch_maintenance_mode"></label>
</div>
</div>
<div class="form-group col-sm-12 col-md-6">
<label class="form-label">{{ __('Force Update') }}</label>
<div class="form-check form-switch">
<input type="hidden" name="force_update" id="force_update"
class="checkbox-toggle-switch-input"
value="{{ (int) $settings['force_update'] ?? 0 }}">
<input class="form-check-input checkbox-toggle-switch" type="checkbox" role="switch"
{{ (int) $settings['force_update'] === 1 ? 'checked' : '' }}
id="switch_force_update">
<label class="form-check-label" for="switch_force_update"></label>
</div>
</div>
<div class="form-group col-sm-12 col-md-6">
<label class="form-check-label">{{ __('Free Ad Listing') }}
<i class="fa fa-info-circle" data-bs-toggle="tooltip" data-bs-placement="top"
title="{{ __('User can post ad without purchasing a package.') }}"
aria-label="{{ __('User can post ad without purchasing a package.') }}"></i>
</label>
<div class="form-check form-switch">
<input type="hidden" name="free_ad_listing" id="free_ad_listing"
class="checkbox-toggle-switch-input"
value="{{ $settings['free_ad_listing'] ?? 0 }}">
<input class="form-check-input checkbox-toggle-switch" type="checkbox" role="switch"
id="switch_Free_ad_listing" aria-label="switch_Free_ad_listing"
data-bs-toggle="tooltip" data-bs-placement="top"
{{ $settings['free_ad_listing'] == '1' ? 'checked' : '' }}>
</div>
</div>
<div class="row mt-2">
<div class="col-md-6 form-group">
<label class="form-label d-block">
{{ __('Free Ad Listing Duration') }}
<i class="fa fa-info-circle ms-1" data-bs-toggle="tooltip"
title="{{ __('Set how long free ads remain active.') }}"></i>
</label>
<div class="form-check form-switch mt-2">
<input class="form-check-input"
type="checkbox"
id="free_ad_unlimited"
name="free_ad_unlimited"
value="1"
{{ ($settings['free_ad_unlimited'] ?? 0) == 1 ? 'checked' : '' }}>
<label class="form-check-label" for="free_ad_unlimited">
{{ __('Unlimited') }}
</label>
</div>
</div>
<div class="col-md-6 form-group">
<div id="free_ad_duration_input"
class="mt-4"
style="{{ ($settings['free_ad_unlimited'] ?? 0) == 1 ? 'display:none;' : 'display:block;' }}">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text myDivClass"
style="height: 42px;">
<span class="mySpanClass">{{ __('Days') }}</span>
</div>
</div>
<input type="number"
name="free_ad_duration_days"
class="form-control"
min="1"
value="{{ $settings['free_ad_duration_days'] ?? '' }}"
placeholder="{{ __('Enter duration in days') }}">
</div>
</div>
</div>
</div>
<div class="form-group col-sm-12 col-md-6 col-xs-12">
<label for="min_value" class="form-label">{{ __('Min Range') }}
<i class="fa fa-info-circle" data-bs-toggle="tooltip" data-bs-placement="top"
title="{{ __('Adding fixed minimum range for radius.') }}"
aria-label="{{ __('Adding fixed minimum range for radius.') }}"></i>
</label>
<input id="min_length" name="min_length" type="number" class="form-control"
placeholder="{{ __('Enter Min Length') }}"
value="{{ $settings['min_length'] ?? '' }}">
</div>
<div class="form-group col-sm-12 col-md-6 col-xs-12">
<label for="max_value" class="form-label">{{ __('Max Range') }}
<i class="fa fa-info-circle" data-bs-toggle="tooltip" data-bs-placement="top"
title="{{ __('Adding fixed maximum range for radius.') }}"
aria-label="{{ __('Adding fixed maximum range for radius.') }}"></i>
</label>
<input id="max_length" name="max_length" type="number" class="form-control"
placeholder="{{ __('Enter Max Length') }}"
value="{{ $settings['max_length'] ?? '' }}">
</div>
<div class="form-group col-sm-12 col-md-6">
<label class="form-check-label">{{ __('Auto Approve Advertisements') }}
<i class="fa fa-info-circle" data-bs-toggle="tooltip" data-bs-placement="top"
title="{{ __('Item will be auto approved for all users.') }}"
aria-label="{{ __('Item will be auto approved for all users.') }}"></i>
</label>
<div class="form-check form-switch">
<input type="hidden" name="auto_approve_item" id="auto_approve_item"
class="checkbox-toggle-switch-input"
value="{{ $settings['auto_approve_item'] ?? 0 }}">
<input class="form-check-input checkbox-toggle-switch" type="checkbox" role="switch"
id="switch_auto_approve_item" aria-label="switch_Free_ad_listing"
data-bs-toggle="tooltip" data-bs-placement="top"
{{ $settings['auto_approve_item'] == '1' ? 'checked' : '' }}>
</div>
</div>
<div class="form-group col-sm-12 col-md-6">
<label class="form-check-label">{{ __('Auto Approve Edited Advertisements') }}
<i class="fa fa-info-circle" data-bs-toggle="tooltip" data-bs-placement="top"
title="{{ __('Edited item will be auto approved for all users.') }}"
aria-label="{{ __('Edited item will be auto approved for all users.') }}"></i>
</label>
<div class="form-check form-switch">
<input type="hidden" name="auto_approve_edited_item" id="auto_approve_edited_item"
class="checkbox-toggle-switch-input"
value="{{ $settings['auto_approve_edited_item'] ?? 0 }}">
<input class="form-check-input checkbox-toggle-switch" type="checkbox" role="switch"
id="switch_auto_approve_edited_item" aria-label="switch_Free_ad_listing"
data-bs-toggle="tooltip" data-bs-placement="top"
{{ $settings['auto_approve_edited_item'] == '1' ? 'checked' : '' }}>
</div>
</div>
<div class="form-group col-sm-12 col-md-6">
<label for="map_provider"
class="col-sm-12 form-check-label mt-2">{{ __('Map Provider') }}</label>
<select name="map_provider" id="map_provider" class="form-select form-control-sm">
<option value="google_places"
{{ !empty($settings['map_provider']) && $settings['map_provider'] == 'google_places' ? 'selected' : '' }}>
{{ __('Place API') }}</option>
<option value="free_api"
{{ !empty($settings['map_provider']) && $settings['map_provider'] == 'free_api' ? 'selected' : '' }}>
{{ __('Free API') }}</option>
{{-- <option value="google_places">Plcae API</option>
<option value="free_api">Free API</option> --}}
</select>
</div>
<div class="form-group col-sm-12 col-md-6" id="s3_div" style="display: none">
<label for="place_api_key" class="form-label">{{ __('Place API Key') }}</label>
<input class="form-control" type="text" name="place_api_key" id="place_api_key"
value="{{ $settings['place_api_key'] ?? '' }}">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Admin User Credentials for Advertisement Creation') }}</h6>
</div>
<div class="row">
<div class="form-group col-sm-12 col-md-6">
<label for="admin_user_email" class="form-label">{{ __('Email') }}
<i class="fa fa-info-circle" data-bs-toggle="tooltip" data-bs-placement="top"
title="{{ __('Email address for admin to create advertisements on behalf of users.') }}"
aria-label="{{ __('Email address for admin to create advertisements on behalf of users.') }}"></i>
</label>
<input id="admin_user_email" name="admin_user_email" type="email" class="form-control"
placeholder="{{ __('Email') }}" value="{{ $settings['admin_user_email'] ?? '' }}">
</div>
<div class="form-group col-sm-12 col-md-6">
<label for="admin_user_password" class="form-label">{{ __('Password') }}
<i class="fa fa-info-circle" data-bs-toggle="tooltip" data-bs-placement="top"
title="{{ __('Password for admin to create advertisements on behalf of users. Leave blank to keep current password.') }}"
aria-label="{{ __('Password for admin to create advertisements on behalf of users.') }}"></i>
</label>
<div class="input-group">
<input id="admin_user_password" name="admin_user_password" type="password"
class="form-control" placeholder="{{ __('Leave blank to keep current password') }}"
autocomplete="new-password" value="{{ $settings['admin_user_password'] ?? '' }}">
{{-- <button class="btn btn-outline-secondary" type="button" id="toggle-password-visibility">
<i class="fa fa-eye" id="password-eye-icon"></i>
</button> --}}
</div>
@if (!empty($settings['admin_user_password']))
<small class="text-muted d-block mt-1">
<i class="fa fa-lock"></i> {{ __('Password is set (hidden for security)') }}
</small>
@endif
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Images') }}</h6>
</div>
<div class="row">
<div class="form-group col-md-4 col-sm-12">
<label class=" col-form-label ">{{ __('Favicon Icon') }}</label>
<input class="filepond" type="file" name="favicon_icon" id="favicon_icon">
<img src="{{ $settings['favicon_icon'] ?? '' }}"
data-custom-image="{{ asset('assets/images/logo/favicon.png') }}"
class="mt-2 favicon_icon" alt="image" style=" height: 31%;width: 21%;">
</div>
<div class="form-group col-md-4 col-sm-12">
<label class="form-label ">{{ __('Company Logo') }}</label>
<input class="filepond" type="file" name="company_logo" id="company_logo">
<img src="{{ $settings['company_logo'] ?? '' }}"
data-custom-image="{{ asset('assets/images/logo/logo.png') }}" class="mt-2 company_logo"
alt="image" style="height: 31%;width: 21%;">
</div>
<div class="form-group col-md-4 col-sm-12">
<label class="form-label ">{{ __('Login Page Image') }}</label>
<input class="filepond" type="file" name="login_image" id="login_image">
<img src="{{ $settings['login_image'] ?? '' }}"
data-custom-image="{{ asset('assets/images/bg/login.jpg') }}" class="mt-2 login_image"
alt="image" style="height: 31%;width: 21%;">
</div>
{{-- <div class="form-group col-md-4 col-sm-12">
<label class="form-label ">{{ __('Watermark Image') }}</label>
<input class="filepond" type="file" name="watermark_image" id="watermark_image">
<img src="{{ $settings['watermark_image'] ?? '' }}" data-custom-image="{{asset('assets/images/logo/watermark.png')}}" class="mt-2 watermark_image" alt="image" style="height: 31%;width: 21%;">
</div> --}}
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Deep Link') }}</h6>
</div>
{{-- <div class="form-group row mt-3">
<div class="col-md-6 col-sm-12">
<label for="deep_link_text_file" class="form-label">{{ __('Apple App Site Association File') }}</label>
<input id="deep_link_text_file" name="deep_link_text_file" type="file" class="form-control">
<p style="display: none" id="img_error_msg" class="badge rounded-pill bg-danger"></p>
</div>
<div class="col-md-6 col-sm-12">
<label for="deep_link_json_file" class="form-label">{{ __('Assetlinks File') }}</label>
<input id="deep_link_json_file" name="deep_link_json_file" type="file" class="form-control">
<p style="display: none" id="img_error_msg" class="badge rounded-pill bg-danger"></p>
</div>
</div> --}}
<div class="form-group row mt-3">
<div class="col-md-12">
<label for="scheme" class="form-label">{{ __('Deep Link Scheme') }}</label>
<input id="scheme" name="deep_link_scheme" type="text" class="form-control"
placeholder="e.g., myapp" pattern="^[a-z][a-z0-9]*$"
title="{{ __('Must start with a letter, lowercase, and contain no spaces or special characters.') }}"
value="{{ $settings['deep_link_scheme'] ?? '' }}">
<small class="text-muted d-block mt-1">
{{ __('Must start with a letter, be lowercase, and contain no spaces or special characters.') }}
</small><small class="text-muted">{{ __('Example: ') }}<strong>myapp://</strong></small>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Authentication Setting (Enable/Disable)') }}</h6>
</div>
<div class="form-group row mt-3">
<div class="form-group col-md-6 col-sm-12">
<label class="form-label">{{ __('Mobile Authentication') }}</label>
<div class="form-check form-switch">
<input type="hidden" name="mobile_authentication" value="0">
<input class="form-check-input auth" type="checkbox" id="mobile_authentication"
name="mobile_authentication" value="1"
{{ isset($settings['mobile_authentication']) && $settings['mobile_authentication'] == 1 ? 'checked' : '' }}>
<label class="form-check-label" for="google_authentication">
{{ __('On / Off') }}
</label>
</div>
</div>
<div class="form-group col-md-6 col-sm-12">
<label class="form-label">{{ __('Google Authentication') }}</label>
<div class="form-check form-switch">
<input type="hidden" name="google_authentication" value="0">
<input class="form-check-input auth" type="checkbox" id="google_authentication"
name="google_authentication" value="1"
{{ isset($settings['google_authentication']) && $settings['google_authentication'] == 1 ? 'checked' : '' }}>
<label class="form-check-label" for="google_authentication">
{{ __('On / Off') }}
</label>
</div>
</div>
<div class="form-group col-md-6 col-sm-12">
<label class="form-label">{{ __('Email Authentication') }}</label>
<div class="form-check form-switch">
<input type="hidden" name="email_authentication" value="0">
<input class="form-check-input auth" type="checkbox" id="email_authentication"
name="email_authentication" value="1"
{{ isset($settings['email_authentication']) && $settings['email_authentication'] == 1 ? 'checked' : '' }}>
<label class="form-check-label" for="email_authentication">
{{ __('On / Off') }}
</label>
</div>
</div>
<div class="form-group col-md-6 col-sm-12">
<label class="form-label">{{ __('Apple Authentication') }}</label>
<div class="form-check form-switch">
<input type="hidden" name="apple_authentication" value="0">
<input class="form-check-input auth" type="checkbox" id="email_authentication"
name="apple_authentication" value="1"
{{ isset($settings['apple_authentication']) && $settings['apple_authentication'] == 1 ? 'checked' : '' }}>
<label class="form-check-label" for="apple_authentication">
{{ __('On / Off') }}
</label>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 d-flex justify-content-end">
<button type="submit" value="btnAdd" class="btn btn-primary me-1 mb-3">{{ __('Save') }}</button>
</div>
</form>
</section>
@endsection
@section('js')
<script>
function successFunction() {
window.location.reload();
}
// Toggle password visibility for admin user password
$(document).on('click', '#toggle-password-visibility', function() {
const passwordInput = $('#admin_user_password');
const eyeIcon = $('#password-eye-icon');
if (passwordInput.attr('type') === 'password') {
passwordInput.attr('type', 'text');
eyeIcon.removeClass('fa-eye').addClass('fa-eye-slash');
} else {
passwordInput.attr('type', 'password');
eyeIcon.removeClass('fa-eye-slash').addClass('fa-eye');
}
});
$('#free_ad_unlimited').on('change', function () {
if ($(this).is(':checked')) {
$('#free_ad_duration_input').hide();
} else {
$('#free_ad_duration_input').show();
}
});
</script>
@endsection

View File

@@ -0,0 +1,100 @@
@extends('layouts.main')
@section('title')
{{ __('Terms & Conditions') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<div class="card">
<form action="{{ route('settings.store') }}" method="post" class="create-form-without-reset">
@csrf
<div class="card-body">
<!-- Preview Button -->
<div class="row form-group">
<div class="col-2 d-flex justify-content-end">
<a href="{{ route('public.terms-conditions') }}" target="_blank"
class="btn icon btn-primary btn-sm rounded-pill"
title="{{ __('View Page') }}">
<i class="bi bi-eye-fill"></i>
</a>
</div>
</div>
<!-- Language Tabs -->
<ul class="nav nav-tabs" id="termsTabs" role="tablist">
@foreach($languages as $lang)
<li class="nav-item" role="presentation">
<a class="nav-link {{ $loop->first ? 'active' : '' }}"
id="terms-tab-{{ $lang->id }}"
data-bs-toggle="tab"
href="#terms-lang-{{ $lang->id }}"
role="tab">
{{ $lang->name }}
</a>
</li>
@endforeach
</ul>
<!-- Tab Panes -->
<div class="tab-content mt-3">
@foreach($languages as $lang)
<div class="tab-pane fade {{ $loop->first ? 'show active' : '' }}"
id="terms-lang-{{ $lang->id }}"
role="tabpanel">
<input type="hidden" name="languages[]" value="{{ $lang->id }}">
<div class="form-group">
<label>{{ __("Terms & Conditions") }} ({{ $lang->name }})</label>
<textarea name="terms_conditions[{{ $lang->id }}]"
id="tinymce_editor_terms_{{ $lang->id }}"
class="tinymce_editor form-control"
rows="6">{{ old("terms_conditions.$lang->id", $translations['terms_conditions'][$lang->id] ?? ($settings['terms_conditions'] ?? '')) }}</textarea>
</div>
</div>
@endforeach
</div>
<!-- Save Button -->
<div class="col-12 mt-3 d-flex justify-content-end">
<button class="btn btn-primary" type="submit">{{ __('Save') }}</button>
</div>
</div>
</form>
</div>
</section>
@endsection
@section('script')
<script>
document.addEventListener("DOMContentLoaded", () => {
tinymce.init({
selector: '.tinymce_editor',
height: 400,
menubar: false,
plugins: [
'advlist autolink lists link charmap preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime table paste code help wordcount'
],
toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | removeformat | code',
setup: function (editor) {
editor.on("change keyup", function () {
editor.save();
});
}
});
});
</script>
@endsection

View File

@@ -0,0 +1,468 @@
@extends('layouts.main')
@section('title')
{{ __('Watermark Settings') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>{{ __('Watermark Settings') }}</h4>
</div>
</div>
</div>
@endsection
@section('content')
<section class="section">
{!! Form::open(['route' => 'settings.watermark-settings-store', 'data-parsley-validate', 'class' => 'create-form', 'data-success-function'=> "formSuccessFunction", 'enctype' => 'multipart/form-data']) !!}
{{ csrf_field() }}
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Watermark Configuration') }}</h6>
</div>
{{-- Enable/Disable Watermark --}}
<div class="form-group mt-3">
<label class="form-label" for="watermark_enabled">{{ __('Enable Watermark') }}</label>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" name="watermark_enabled" id="watermark_enabled" value="1"
{{ ($watermarkSettings['enabled'] ?? 0) == 1 ? 'checked' : '' }}
onchange="toggleWatermarkSettings(); updateEnabledLabel();">
<input type="hidden" name="watermark_enabled" value="0" id="watermark_enabled_hidden">
<label class="form-check-label" for="watermark_enabled" id="enabled-label">
{{ ($watermarkSettings['enabled'] ?? 0) == 1 ? __('Enabled') : __('Disabled') }}
</label>
</div>
<small class="text-muted">{{ __('When enabled, watermarks will be applied to uploaded images') }}</small>
</div>
{{-- Watermark Image Upload --}}
<div class="form-group mt-3" id="watermark-image-group">
<label class="form-label" for="watermark_image">{{ __('Watermark Image') }}</label>
<input type="file" name="watermark_image" id="watermark_image" class="form-control"
accept="image/png,image/jpeg,image/jpg"
onchange="previewWatermarkImage(this); updatePreview();">
<small class="text-muted">{{ __('Upload a custom watermark image (PNG, JPG, JPEG). If not uploaded, default logo will be used.') }}</small>
@if(!empty($watermarkSettings['watermark_image_url']))
<div class="mt-2">
<p class="text-success mb-1"><small>{{ __('Current Watermark:') }}</small></p>
<img src="{{ $watermarkSettings['watermark_image_url'] }}"
alt="Current Watermark"
style="max-width: 150px; max-height: 150px; border: 1px solid #ddd; padding: 5px; border-radius: 4px;"
id="current-watermark-preview">
</div>
@else
<div class="mt-2">
<p class="text-info mb-1"><small>{{ __('Using default logo: Company Logo') }}</small></p>
</div>
@endif
<div id="new-watermark-preview" class="mt-2" style="display: none;">
<p class="text-success mb-1"><small>{{ __('New Watermark Preview:') }}</small></p>
<img id="new-watermark-preview-img" src="" alt="New Watermark"
style="max-width: 150px; max-height: 150px; border: 1px solid #ddd; padding: 5px; border-radius: 4px;">
</div>
</div>
{{-- Opacity --}}
<div class="form-group mt-3" id="watermark-settings-group">
<label class="form-label" for="opacity">{{ __('Opacity') }} (<span id="opacity-value">{{ $watermarkSettings['opacity'] ?? 25 }}</span>%)</label>
<input type="range" name="opacity" id="opacity" class="form-range" min="0" max="100"
value="{{ $watermarkSettings['opacity'] ?? 25 }}"
data-parsley-required="true"
oninput="updatePreview(); document.getElementById('opacity-value').textContent = this.value;">
<div class="d-flex justify-content-between">
<small>0%</small>
<small>100%</small>
</div>
</div>
{{-- Size --}}
<div class="form-group mt-3">
<label class="form-label" for="size">{{ __('Size') }} (<span id="size-value">{{ $watermarkSettings['size'] ?? 10 }}</span>%)</label>
<input type="range" name="size" id="size" class="form-range" min="1" max="100"
value="{{ $watermarkSettings['size'] ?? 10 }}"
data-parsley-required="true"
oninput="updatePreview(); document.getElementById('size-value').textContent = this.value;">
<div class="d-flex justify-content-between">
<small>1%</small>
<small>100%</small>
</div>
</div>
{{-- Style --}}
<div class="form-group mt-3">
<label class="form-label" for="style">{{ __('Style') }}</label>
<select name="style" id="style" class="form-select" data-parsley-required="true" onchange="updatePreview(); togglePositionField();">
<option value="tile" {{ ($watermarkSettings['style'] ?? 'tile') == 'tile' ? 'selected' : '' }}>{{ __('Tile (Repeat Pattern)') }}</option>
<option value="single" {{ ($watermarkSettings['style'] ?? 'tile') == 'single' ? 'selected' : '' }}>{{ __('Single Watermark') }}</option>
<option value="center" {{ ($watermarkSettings['style'] ?? 'tile') == 'center' ? 'selected' : '' }}>{{ __('Center Only') }}</option>
</select>
</div>
{{-- Position --}}
<div class="form-group mt-3" id="position-group">
<label class="form-label" for="position">{{ __('Position') }}</label>
<select name="position" id="position" class="form-select" data-parsley-required="false" onchange="updatePreview();">
<option value="top-left" {{ ($watermarkSettings['position'] ?? 'center') == 'top-left' ? 'selected' : '' }}>{{ __('Top Left') }}</option>
<option value="top-right" {{ ($watermarkSettings['position'] ?? 'center') == 'top-right' ? 'selected' : '' }}>{{ __('Top Right') }}</option>
<option value="bottom-left" {{ ($watermarkSettings['position'] ?? 'center') == 'bottom-left' ? 'selected' : '' }}>{{ __('Bottom Left') }}</option>
<option value="bottom-right" {{ ($watermarkSettings['position'] ?? 'center') == 'bottom-right' ? 'selected' : '' }}>{{ __('Bottom Right') }}</option>
<option value="center" {{ ($watermarkSettings['position'] ?? 'center') == 'center' ? 'selected' : '' }}>{{ __('Center') }}</option>
</select>
<small class="text-muted" id="position-note" style="display: none;">{{ __('Position is automatically set to center for this style') }}</small>
{{-- Hidden input for position when style is 'tile' --}}
<input type="hidden" name="position_hidden" id="position_hidden" value="center">
</div>
{{-- Rotation --}}
<div class="form-group mt-3">
<label class="form-label" for="rotation">{{ __('Rotation') }} (<span id="rotation-value">{{ $watermarkSettings['rotation'] ?? -30 }}</span>°)</label>
<input type="range" name="rotation" id="rotation" class="form-range" min="-360" max="360"
value="{{ $watermarkSettings['rotation'] ?? -30 }}"
oninput="updatePreview(); document.getElementById('rotation-value').textContent = this.value;">
<div class="d-flex justify-content-between">
<small>-360°</small>
<small>360°</small>
</div>
</div>
<div class="col-12 d-flex justify-content-end mt-4">
<button type="submit" class="btn btn-primary me-1 mb-1">{{ __('Save Settings') }}</button>
</div>
</div>
</div>
</div>
{{-- Preview Section --}}
<div class="col-md-6">
<div class="card">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Preview') }}</h6>
</div>
<div class="form-group mt-3">
<div id="preview-container" style="position: relative; width: 100%; height: 400px; border: 2px solid #ffffff; border-radius: 8px; overflow: hidden; background: linear-gradient(45deg, #f0f0f0 25%, transparent 25%), linear-gradient(-45deg, #f0f0f0 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f0f0f0 75%), linear-gradient(-45deg, transparent 75%, #f0f0f0 75%); background-size: 20px 20px; background-position: 0 0, 0 10px, 10px -10px, -10px 0px;">
<div id="preview-image" style="width: 100%; height: 100%; background: linear-gradient(135deg, #eaebef 0%, #e1dfe4 100%); display: flex; align-items: center; justify-content: center; color: white; font-size: 24px; font-weight: bold;">
{{ __('Sample Image') }}
</div>
<div id="watermark-preview" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 10;"></div>
</div>
<p class="text-muted mt-2 text-center"><small>{{ __('This is a visual preview of how the watermark will appear') }}</small></p>
</div>
</div>
</div>
</div>
</div>
{{-- @dd($watermarkSettings); --}}
{!! Form::close() !!}
</section>
@endsection
@section('script')
<script>
const defaultWatermarkPath = "{{ asset('assets/images/logo/logo.png') }}";
const customWatermarkPath = @if(!empty($watermarkSettings['watermark_image_url'])) "{{ $watermarkSettings['watermark_image_url'] }}" @else null @endif;
let currentWatermarkPath = customWatermarkPath || defaultWatermarkPath;
function previewWatermarkImage(input) {
if (input.files && input.files[0]) {
const reader = new FileReader();
reader.onload = function(e) {
const previewDiv = document.getElementById('new-watermark-preview');
const previewImg = document.getElementById('new-watermark-preview-img');
previewImg.src = e.target.result;
previewDiv.style.display = 'block';
currentWatermarkPath = e.target.result;
updatePreview();
};
reader.readAsDataURL(input.files[0]);
}
}
function updateEnabledLabel() {
const enabled = document.getElementById('watermark_enabled').checked;
const label = document.getElementById('enabled-label');
label.textContent = enabled ? '{{ __('Enabled') }}' : '{{ __('Disabled') }}';
}
function updateEnabledLabel() {
const enabled = document.getElementById('watermark_enabled').checked;
const label = document.getElementById('enabled-label');
if (label) {
label.textContent = enabled ? '{{ __('Enabled') }}' : '{{ __('Disabled') }}';
}
}
function togglePositionField() {
const style = document.getElementById('style').value;
const positionSelect = document.getElementById('position');
const positionGroup = document.getElementById('position-group');
const positionNote = document.getElementById('position-note');
if (style === 'tile') {
// Requirement: Hide when Tile is selected
positionGroup.style.display = 'none';
} else if (style === 'center') {
// Requirement: Show but Disable when Center Only is selected
positionGroup.style.display = 'block';
positionSelect.value = 'center'; // Force the value to center
positionSelect.disabled = true;
positionSelect.style.opacity = '0.6';
positionNote.style.display = 'block';
} else {
// Default: Single Watermark
positionGroup.style.display = 'block';
positionSelect.disabled = false;
positionSelect.style.opacity = '1';
positionNote.style.display = 'none';
}
}
function toggleWatermarkSettings() {
const enabled = document.getElementById('watermark_enabled').checked;
const settingsGroup = document.getElementById('watermark-settings-group');
const imageGroup = document.getElementById('watermark-image-group');
const positionGroup = document.getElementById('position-group');
const styleSelect = document.getElementById('style');
const opacityInput = document.getElementById('opacity');
const sizeInput = document.getElementById('size');
const rotationInput = document.getElementById('rotation');
const positionSelect = document.getElementById('position');
if (enabled) {
document.getElementById('watermark_enabled_hidden').value = '1';
settingsGroup.style.opacity = '1';
imageGroup.style.opacity = '1';
styleSelect.disabled = false;
opacityInput.disabled = false;
sizeInput.disabled = false;
rotationInput.disabled = false;
// Let togglePositionField handle the position logic
togglePositionField();
} else {
document.getElementById('watermark_enabled_hidden').value = '0';
settingsGroup.style.opacity = '0.5';
imageGroup.style.opacity = '0.5';
styleSelect.disabled = true;
opacityInput.disabled = true;
sizeInput.disabled = true;
rotationInput.disabled = true;
positionSelect.disabled = true;
}
updatePreview();
}
function createWatermarkElement(size, opacity, rotation) {
const watermark = document.createElement('img');
watermark.src = currentWatermarkPath;
watermark.style.opacity = opacity / 100;
watermark.style.transform = `rotate(${rotation}deg)`;
watermark.style.width = size + 'px';
watermark.style.height = 'auto';
watermark.style.imageRendering = 'auto';
watermark.style.maxWidth = size + 'px';
watermark.style.maxHeight = size + 'px';
watermark.onerror = function() {
// If logo doesn't exist, create a placeholder
const placeholder = document.createElement('div');
placeholder.style.width = size + 'px';
placeholder.style.height = size + 'px';
placeholder.style.border = '2px dashed #999';
placeholder.style.display = 'flex';
placeholder.style.alignItems = 'center';
placeholder.style.justifyContent = 'center';
placeholder.style.opacity = opacity / 100;
placeholder.style.transform = `rotate(${rotation}deg)`;
placeholder.textContent = 'LOGO';
placeholder.style.fontSize = Math.max(12, size / 4) + 'px';
placeholder.style.color = '#999';
placeholder.style.backgroundColor = 'rgba(255, 255, 255, 0.8)';
placeholder.style.borderRadius = '4px';
this.parentNode.replaceChild(placeholder, this);
};
watermark.onload = function() {
// Ensure image maintains aspect ratio
if (this.naturalWidth > 0 && this.naturalHeight > 0) {
const aspectRatio = this.naturalHeight / this.naturalWidth;
this.style.height = (size * aspectRatio) + 'px';
}
};
return watermark;
}
function updatePreview() {
const enabled = document.getElementById('watermark_enabled').checked;
const previewContainer = document.getElementById('preview-container');
const watermarkPreview = document.getElementById('watermark-preview');
// Clear previous watermark
watermarkPreview.innerHTML = '';
// If watermark is disabled, don't show preview
if (!enabled) {
return;
}
const opacity = parseInt(document.getElementById('opacity').value);
const size = parseInt(document.getElementById('size').value);
const style = document.getElementById('style').value;
const position = document.getElementById('position').value;
const rotation = parseInt(document.getElementById('rotation').value);
const containerWidth = previewContainer.offsetWidth;
const containerHeight = previewContainer.offsetHeight;
// Calculate watermark size
const watermarkSize = (containerWidth * size) / 100;
if (style === 'tile') {
// Create tiled pattern
const spacing = watermarkSize * 1.5;
const yPositions = [];
for (let y = 0; y < containerHeight; y += spacing) {
yPositions.push(y);
}
// Ensure last row is at the bottom - calculate bottom margin to maintain spacing
const lastY = yPositions[yPositions.length - 1];
const isLastRow = (y) => y === lastY;
// Calculate bottom margin to maintain similar spacing as top (10px from top)
const bottomMargin = 10;
for (let i = 0; i < yPositions.length; i++) {
const y = yPositions[i];
const isBottomRow = isLastRow(y);
for (let x = 0; x < containerWidth; x += spacing) {
const tile = createWatermarkElement(watermarkSize, opacity, rotation);
tile.style.position = 'absolute';
tile.style.left = x + 'px';
if (isBottomRow) {
// Use bottom positioning to stick to bottom
tile.style.bottom = bottomMargin + 'px';
tile.style.top = 'auto';
} else {
tile.style.top = y + 'px';
tile.style.bottom = 'auto';
}
watermarkPreview.appendChild(tile);
}
}
} else if (style === 'center') {
// Center only - always use center position
const watermark = createWatermarkElement(watermarkSize, opacity, rotation);
watermark.style.position = 'absolute';
const left = (containerWidth - watermarkSize) / 2;
const top = (containerHeight - watermarkSize) / 2;
watermark.style.left = left + 'px';
watermark.style.top = top + 'px';
watermarkPreview.appendChild(watermark);
} else if (style === 'single') {
// Single watermark - use position dropdown
const watermark = createWatermarkElement(watermarkSize, opacity, rotation);
watermark.style.position = 'absolute';
// Calculate position based on dropdown
let left = 0, top = 0, bottom = null;
switch(position) {
case 'top-left':
left = 10;
top = 10;
break;
case 'top-right':
left = containerWidth - watermarkSize - 10;
top = 10;
break;
case 'bottom-left':
left = 10;
bottom = 10;
break;
case 'bottom-right':
left = containerWidth - watermarkSize - 10;
bottom = 10;
break;
case 'center':
default:
left = (containerWidth - watermarkSize) / 2;
top = (containerHeight - watermarkSize) / 2;
break;
}
watermark.style.left = left + 'px';
if (bottom !== null) {
watermark.style.bottom = bottom + 'px';
watermark.style.top = 'auto';
} else {
watermark.style.top = top + 'px';
watermark.style.bottom = 'auto';
}
watermarkPreview.appendChild(watermark);
}
}
function togglePositionField() {
const style = document.getElementById('style').value;
const positionSelect = document.getElementById('position');
const positionGroup = document.getElementById('position-group');
const positionNote = document.getElementById('position-note');
const positionHidden = document.getElementById('position_hidden');
if (style === 'tile') {
// Hide position group when Tile is selected
positionGroup.style.display = 'none';
// Set hidden input value for form submission
if (positionHidden) {
positionHidden.value = 'center';
}
// Also set the select value (even though hidden)
positionSelect.value = 'center';
// Remove required attribute
positionSelect.removeAttribute('data-parsley-required');
} else if (style === 'center') {
// Show but disable when Center Only is selected
positionGroup.style.display = 'block';
positionSelect.value = 'center'; // Force the value to center
positionSelect.disabled = true;
positionSelect.style.opacity = '0.6';
positionNote.style.display = 'block';
// Set required for validation
positionSelect.setAttribute('data-parsley-required', 'true');
} else {
// Default: Single Watermark - show and enable
positionGroup.style.display = 'block';
positionSelect.disabled = false;
positionSelect.style.opacity = '1';
positionNote.style.display = 'none';
// Set required for validation
positionSelect.setAttribute('data-parsley-required', 'true');
}
}
// Initialize preview on page load
document.addEventListener('DOMContentLoaded', function() {
// Wait for container to be fully rendered
setTimeout(function() {
toggleWatermarkSettings();
togglePositionField();
updatePreview();
}, 100);
// Update preview when window is resized
window.addEventListener('resize', function() {
setTimeout(updatePreview, 100);
});
});
function formSuccessFunction(response) {
if(!response.error && !response.warning){
setTimeout(() => {
window.location.reload();
}, 500);
}
}
</script>
@endsection

View File

@@ -0,0 +1,150 @@
@extends('layouts.main')
@section('title')
{{ __('Web Settings') }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6 order-md-1 order-last">
<h4>@yield('title')</h4>
</div>
<div class="col-12 col-md-6 order-md-2 order-first"></div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="create-form-without-reset" action="{{route('settings.store') }}" method="post" enctype="multipart/form-data" data-success-function="successFunction" data-parsley-validate>
@csrf
<div class="row d-flex mb-3">
<div class="card">
<div class="card-body">
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Web Settings') }}</h6>
</div>
<div class="row">
<div class="form-group col-md-6 col-sm-12">
<label for="web_theme_color" class="form-label ">{{ __('Theme Color') }}</label>
<input id="web_theme_color" name="web_theme_color" type="color" class="form-control form-control-color" placeholder="{{ __('Theme Color') }}" value="{{ $settings['web_theme_color'] ?? '' }}">
</div>
<div class="form-group col-md-6 col-sm-12">
<label class="form-label ">{{ __('Header Logo') }}</label>
<input class="filepond" type="file" name="header_logo" id="header_logo">
<img src="{{ $settings['header_logo'] ?? '' }}" data-custom-image="{{asset('assets/images/logo/Header Logo.svg')}}" class="w-25" alt="image">
</div>
<div class="form-group col-md-6 col-sm-12">
<label class="form-label ">{{ __('Footer Logo') }}</label>
<input class="filepond" type="file" name="footer_logo" id="footer_logo">
<img src="{{ $settings['footer_logo'] ?? '' }}" data-custom-image="{{asset('assets/images/logo/Footer Logo.svg')}}" class="w-25" alt="image">
</div>
<div class="form-group col-md-6 col-sm-12">
<label class="form-label ">{{ __('Placeholder image') }} <small>{{__('(This image will be displayed if no image is available.)')}}</small></label>
<input class="filepond" type="file" name="placeholder_image" id="placeholder_image">
<img src="{{ $settings['placeholder_image'] ?? '' }}" data-custom-image="{{asset('assets/images/logo/favicon.png')}}" alt="image" style="height: 31%;width: 21%;">
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="footer_description" class="form-label ">{{ __('Footer Description') }}</label>
<textarea id="footer_description" name="footer_description" class="form-control" rows="5" placeholder="{{ __('Footer Description') }}">{{ $settings['footer_description'] ?? '' }}</textarea>
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="google_map_iframe_link" class="form-label ">{{ __('Google Map Iframe Link') }}</label>
<textarea id="google_map_iframe_link" name="google_map_iframe_link" type="text" class="form-control" rows="5" placeholder="{{ __('Google Map Iframe Link') }}">{{ $settings['google_map_iframe_link'] ?? '' }}</textarea>
</div>
@if($languages_translate->isNotEmpty())
<div class="col-md-12 mt-3">
<hr>
<h5>{{ __("Translations") . " (" . __("Optional") . ")" }}</h5>
</div>
@foreach($languages_translate as $language)
<div class="col-md-6 mb-4 p-3 rounded">
<h6 class="mb-3 text-primary">
{{ __("Translation for") }}: <strong>{{ $language->name }} ({{ $language->code }})</strong>
</h6>
<input type="hidden" name="translations[{{ $language->id }}][name]" value="footer_description">
<div class="form-group">
<label for="translation_{{ $language->id }}" class="form-label">
{{ __("Translated Footer Description") }}
</label>
<textarea class="form-control"
name="translations[{{ $language->id }}][value]"
rows="4"
placeholder="{{ __('Contact Us in') . ' ' . $language->name }}">
{{ old("translations.{$language->id}.value", $translations['footer_description'][$language->id] ?? '') }}
</textarea>
</div>
</div>
@endforeach
@endif
<div class="form-group col-md-6 col-sm-12">
<label for="google_map_iframe_link" class="form-label ">{{ __('Default Latitude & Longitude') }} <small>{{__('(For Default Location Selection)')}}</small></label>
<div class="form-group">
<label for="default_latitude" class="form-label ">{{ __('Latitude') }}</label>
<input id="default_latitude" name="default_latitude" type="text" class="form-control" placeholder="{{ __('Latitude') }}" value="{{ $settings['default_latitude'] ?? '' }}">
<label for="default_longitude" class="form-label ">{{ __('Longitude') }}</label>
<input id="default_longitude" name="default_longitude" type="text" class="form-control" placeholder="{{ __('Longitude') }}" value="{{ $settings['default_longitude'] ?? '' }}">
</div>
</div>
<div class="form-group col-md-6 col-sm-12">
<label class="form-label">{{ __('Show Landing Page') }}</label>
<div class="form-check form-switch">
<input type="hidden" name="show_landing_page" value="0">
<input class="form-check-input" type="checkbox" id="show_landing_page" name="show_landing_page" value="1" {{ isset($settings['show_landing_page']) && $settings['show_landing_page'] == 1 ? 'checked' : '' }}>
<label class="form-check-label" for="show_landing_page">
{{ __('On / Off') }}
</label>
</div>
</div>
<div class="divider pt-3">
<h6 class="divider-text">{{ __('Social Media Links') }}</h6>
</div>
<div class="form-group col-sm-12 col-md-4">
<label for="instagram_link" class="form-label ">{{ __('Instagram Link') }}</label>
<input id="instagram_link" name="instagram_link" type="url" class="form-control" placeholder="{{ __('Instagram Link') }}" value="{{ $settings['instagram_link'] ?? '' }}">
</div>
<div class="form-group col-sm-12 col-md-4">
<label for="x_link" class="form-label ">{{ __('X Link') }}</label>
<input id="x_link" name="x_link" type="url" class="form-control" placeholder="{{ __('X Link') }}" value="{{ $settings['x_link'] ?? '' }}">
</div>
<div class="form-group col-sm-12 col-md-4">
<label for="facebook_link" class="form-label ">{{ __('Facebook Link') }}</label>
<input id="facebook_link" name="facebook_link" type="url" class="form-control" placeholder="{{ __('Facebook Link') }}" value="{{ $settings['facebook_link'] ?? '' }}">
</div>
<div class="form-group col-sm-12 col-md-4">
<label for="linkedin_link" class="form-label ">{{ __('Linkedin Link') }}</label>
<input id="linkedin_link" name="linkedin_link" type="url" class="form-control" placeholder="{{ __('Linkedin Link') }}" value="{{ $settings['linkedin_link'] ?? '' }}">
</div>
<div class="form-group col-sm-12 col-md-4">
<label for="pinterest_link" class="form-label ">{{ __('Pinterest Link') }}</label>
<input id="pinterest_link" name="pinterest_link" type="url" class="form-control" placeholder="{{ __('Pinterest Link') }}" value="{{ $settings['pinterest_link'] ?? '' }}">
</div>
</div>
</div>
</div>
<div class="col-12 d-flex justify-content-end">
<button type="submit" value="btnAdd" class="btn btn-primary me-1 mb-3">{{ __('Save') }}</button>
</div>
</form>
</section>
@endsection
@section('js')
<script>
function successFunction() {
window.location.reload();
}
</script>
@endsection