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,264 @@
@extends('layouts.main')
@section('title')
{{__("Area")}}
@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>
</div>
@endsection
@section('content')
<section class="section">
@can('area-create')
<div class="row m-3">
<div class="col-12 text-end">
<a href="{{ route('areas.translation') }}" class="btn btn-primary">
<i class="fa fa-language me-2"></i> {{ __('Translate Areas') }}
</a>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h3 class="card-title">{{ __('Add Area') }}</h3>
</div>
<div class="card-body">
<form class="create-form" action="{{route('area.create')}}" method="POST" data-parsley-validate enctype="multipart/form-data">
@csrf
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label for="country" class="mandatory form-label">{{ __('Country') }}</label>
<select class="form-control select2" id="country" name="country_id" required>
<option value="">{{ __('--Select Country--') }}</option>
@foreach($countries as $country)
<option value="{{ $country->id }}">{{ $country->name }}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="state" class="mandatory form-label">{{ __('State') }}</label>
<select class="form-control select2" id="state" name="state_id" required>
<option value="">{{ __('--Select State--') }}</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="city" class="mandatory form-label">{{ __('City') }}</label>
<select class="form-control select2" id="city" name="city_id" required>
<option value="">{{ __('--Select City--') }}</option>
</select>
</div>
</div>
</div>
<div id="areas-container">
<div class="row area-input-group mb-3">
<div class="col-md-4 form-group">
<label for="name" class="mandatory form-label mt-2">{{ __("Area Name") }}</label>
<div class="d-flex">
<input type="text" name="name[]" class="form-control me-2" placeholder="{{ __("Enter Area name") }}">
</div>
</div>
<div class="form-group col-md-4 col-sm-12">
<label for="latitude" class="mandatory form-label mt-2">{{ __("Latitude") }}</label>
<div class="d-flex mb-2">
<input type="text" name="latitude[]" class="form-control me-2" placeholder="{{ __("Enter Latitude") }}">
</div>
</div>
<div class="form-group col-md-4 col-sm-12">
<label for="longitude" class="mandatory form-label mt-2">{{ __("Longitude") }}</label>
<div class="d-flex mb-2">
<input type="text" name="longitude[]" class="form-control me-2" placeholder="{{ __("Enter Longitude") }}">
<button type="button" class="btn btn-danger remove-area-button ms-2">-</button>
<button type="button" class="btn btn-secondary add-area-button ms-2">+</button>
</div>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-12">
<div class="alert alert-warning" role="alert">
{{ __('Please select the correct location on the map. Do not place the marker for any other location.') }}
</div>
<div id="map"></div>
</div>
</div>
<div class="form-group mt-3 text-end">
<button type="submit" class="btn btn-primary">{{ __('Submit') }}</button>
<a href="{{ route('area.index') }}" class="btn btn-secondary">{{ __('Cancel') }}</a>
</div>
</form>
</div>
</div>
</div>
</div>
@endcan
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<div id="filters">
<div class="row">
<div class="col-12 col-md-4">
<label for="filter_country">{{__("Country")}}</label>
<select class="form-control bootstrap-table-filter-control-country.name" id="filter_country">
<option value="">{{__("All")}}</option>
@foreach($countries as $country)
<option value="{{$country->id}}">{{$country->name}}</option>
@endforeach
</select>
</div>
<div class="col-12 col-md-4">
<label for="filter_state">{{__("State")}}</label>
<select class="form-control bootstrap-table-filter-control-state.name" id="filter_state">
<option value="">{{__("All")}}</option>
</select>
</div>
<div class="col-12 col-md-4">
<label for="filter_city">{{__("City")}}</label>
<select name="city_id" class="form-control bootstrap-table-filter-control-city.name" id="filter_city">
<option value="">{{__("All")}}</option>
</select>
</div>
</div>
</div>
<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('area.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-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-mobile-responsive="true"
data-filter-control="true"
data-toolbar="#filters"
data-filter-control-container="#filters">
<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="country.name" data-sortable="false" data-filter-name="country_id" data-filter-control="select" data-filter-data="">{{ __('Country') }}</th>
<th scope="col" data-field="state.name" data-sortable="false" data-filter-name="state_id" data-filter-control="select" data-filter-data="">{{ __('State') }}</th>
<th scope="col" data-field="city.name" data-sortable="false" data-filter-name="city_id" data-filter-control="select" data-filter-data="">{{ __('City') }}</th>
<th scope="col" data-field="longitude" data-sortable="false">{{ __('Longitude') }}</th>
<th scope="col" data-field="latitude" data-sortable="false">{{ __('Latitude') }}</th>
<th scope="col" data-field="operate" data-sortable="false" data-escape="false" data-events="areaEvents">{{ __('Action') }}</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
@can('area-update')
<!-- EDIT MODEL MODEL -->
<div id="editModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel1">{{ __('Edit Area') }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="edit-form" class="edit-form" action="" method="POST" enctype="multipart/form-data">
@csrf
<div class="row">
<div class="col-md-4 form-group">
<label for="country" class="mandatory form-label">{{__("Country")}}</label>
<select name="country_id" id="edit_country" class="form-control country form-select" data-placeholder="{{__("Select Country")}}">
<option value="">Select Country</option>
@foreach ($countries as $country)
<option value="{{ $country->id }}">{{ $country->name }}</option>
@endforeach
</select>
</div>
<div class="col-md-4 form-group">
<label for="state" class="mandatory form-label">{{__("State")}}</label>
<select name="state_id" id="edit_state" class="form-control form-select" data-placeholder="{{__("Select State")}}">
@foreach ($states as $state)
<option value="{{ $state->id }}">{{ $state->name }}</option>
@endforeach
</select>
</div>
<div class="col-md-4 form-group">
<label for="city" class="mandatory form-label">{{__("City")}}</label>
<select name="city_id" id="edit_city" class="form-control form-select" data-placeholder="{{__("Select City")}}">
@foreach ($cities as $city)
<option value="{{ $city->id }}">{{ $city->name }}</option>
@endforeach
</select>
</div>
</div>
<div class="row mt-3">
<div class="form-group col-md-4 col-sm-12">
<label for="edit_name" class="mandatory form-label">{{ __('Name') }}</label>
<input type="text" name="name" id="edit_name" class="form-control" data-parsley-required="true">
</div>
<div class="form-group col-md-4 col-sm-12">
<label for="latitude" class="mandatory form-label">Latitude</label>
<div class="d-flex mb-2">
<input type="text" name="latitude" id="edit_latitude" class="form-control me-2" placeholder="{{__("Enter Latitude")}}">
</div>
</div>
<div class="form-group col-md-4 col-sm-12">
<label for="longitude" class="mandatory form-label">Longitude</label>
<div class="d-flex mb-2">
<input type="text" name="longitude" id="edit_longitude" class="form-control me-2" placeholder="{{__("Enter Longitude")}}">
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-12">
<div id="edit_map" style="height: 400px;"></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>
</form>
</div>
</div>
</div>
</div>
@endcan
</section>
@endsection
@section('script')
<script>
$(document).ready(function() {
// Initialize map with default coordinates
const map = window.mapUtils.initializeMap('map', 0, 0);
// Function to update area coordinates
window.updateAreaCoordinates = function(lat, lng) {
// Get the last area input group (the one being edited)
const $areaGroup = $('.area-input-group').last();
// Update latitude and longitude fields
$areaGroup.find('input[name="latitude[]"]').val(lat);
$areaGroup.find('input[name="longitude[]"]').val(lng);
};
});
</script>
@endsection

View File

@@ -0,0 +1,127 @@
@extends('layouts.main')
@section('title')
{{ __("Translate Areas") }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6">
<h4>@yield('title')</h4>
</div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="edit-form" action="{{ route('areas.translation.update') }}" method="POST" data-parsley-validate>
@csrf
<div class="card">
<div class="card-header">
<h4>{{ __('Translate Area Names') }}</h4>
</div>
<div class="card-body">
@if($countries->isNotEmpty())
<div class="form-group mb-3">
<label for="country_translation_area">{{ __('Select Country') }}</label>
<select id="country_translation_area" class="form-control">
<option value="">{{ __('Select Country') }}</option>
@foreach($countries as $country)
<option value="{{ $country->id }}">{{ $country->name }}</option>
@endforeach
</select>
</div>
<div class="form-group mb-3">
<label for="State_For_area">{{ __('Select State') }}</label>
<select id="State_For_area" class="form-control" disabled>
<option value="">{{ __('Select State') }}</option>
</select>
</div>
<div class="form-group mb-3">
<label for="city_translation">{{ __('Select City') }}</label>
<select id="city_translation" class="form-control" disabled>
<option value="">{{ __('Select City') }}</option>
</select>
</div>
<div id="area_translations_container" class="mt-4"></div>
<div class="text-end">
<button type="submit" class="btn btn-primary">{{ __("Save") }}</button>
</div>
@else
<p>{{ __("No countries found.") }}</p>
@endif
</div>
</div>
</form>
</section>
@endsection
@section('script')
<script>
$('#country_translation_area').on('change', function () {
console.log('here');
let countryId = $(this).val();
let url = window.baseurl + 'states/search?country_id=' + countryId;
$('#State_For_area').html("<option value=''>{{ __('Select State') }}</option>");
$('#city_translation').html("<option value=''>{{ __('Select City') }}</option>").prop('disabled', true);
$('#State_For_area').prop('disabled', true);
$('#area_translations_container').html("");
if (!countryId) return;
ajaxRequest('GET', url, null, null, function (response) {
$.each(response.data, function (key, value) {
console.log(
response
);
$('#State_For_area').append($('<option>', { value: value.id, text: value.name }));
});
$('#State_For_area').prop('disabled', false);
});
});
$('#State_For_area').on('change', function () {
let stateId = $(this).val();
$('#city_translation').html("<option value=''>{{ __('Select City') }}</option>").prop('disabled', true);
$('#area_translations_container').html("");
if (!stateId) return;
let url = window.baseurl + 'cities/search?state_id=' + stateId;
ajaxRequest('GET', url, null, null, function (response) {
$.each(response.data, function (key, value) {
$('#city_translation').append($('<option>', { value: value.id, text: value.name }));
});
$('#city_translation').prop('disabled', false);
});
});
$('#city_translation').on('change', function () {
let cityId = $(this).val();
$('#area_translations_container').html("");
if (!cityId) return;
let url = window.baseurl + 'area-translations/' + cityId;
$.ajax({
url: url,
type: 'GET',
success: function (response) {
$('#area_translations_container').html(response);
},
error: function () {
$('#area_translations_container').html('<div class="text-danger">Failed to load translations.</div>');
}
});
});
</script>
@endsection

View File

@@ -0,0 +1,36 @@
@if($languages->isNotEmpty())
<ul class="nav nav-tabs mb-3">
@foreach($languages as $index => $language)
<li class="nav-item">
<a class="nav-link @if($index == 0) active @endif"
data-bs-toggle="tab"
href="#lang-{{ $language->id }}-{{ $city->id }}">
{{ $language->name }}
</a>
</li>
@endforeach
</ul>
<div class="tab-content mb-4">
@foreach($languages as $index => $language)
<div class="tab-pane fade @if($index == 0) show active @endif"
id="lang-{{ $language->id }}-{{ $city->id }}">
<div class="row">
@foreach($areas as $area)
@php
$translation = $area->translations->firstWhere('language_id', $language->id);
@endphp
<div class="col-md-6 mb-3">
<label class="form-label">{{ $area->name }}</label>
<input type="text"
name="translations[{{ $language->id }}][{{ $area->id }}]"
class="form-control"
value="{{ $translation?->name }}"
placeholder="{{ __('Enter name for') }} {{ $area->name }}">
</div>
@endforeach
</div>
</div>
@endforeach
</div>
@endif

View File

@@ -0,0 +1,236 @@
@extends('layouts.main')
@section('title')
{{ __('Cities') }}
@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 m-3">
<div class="col-12 text-end">
<a href="{{ route('cities.translation') }}" class="btn btn-primary">
<i class="fa fa-language me-2"></i> {{ __('Translate Cities') }}
</a>
</div>
</div>
<div class="row">
<form class="create-form" action="{{route('city.create')}}" method="POST" data-parsley-validate enctype="multipart/form-data">
@csrf
<div class="col-md-12">
<div class="card">
<div class="card-header">{{__("Add City")}}</div>
<div class="card-body mt-3">
<div class="row">
<div class="col-md-6 form-group">
<label for="country" class="mandatory form-label">{{__("Country")}}</label>
<select name="country_id" id="country" class="form-control form-select" data-placeholder="{{__("Select Country")}}">
<option value="">{{__("Select Country")}}</option>
@foreach ($countries as $country)
<option value="{{ $country->id }}">{{ $country->name }}</option>
@endforeach
</select>
</div>
<div class="col-md-6 form-group">
<label for="state" class="mandatory form-label">{{__("State")}}</label>
<select name="state_id" id="state" class="form-control form-select" data-placeholder="{{__("Select State")}}">
<option value="">{{ __("Select State") }}</option>
</select>
</div>
</div>
<div id="city-container" >
<div class="row city-input-group">
<div class="form-group col-md-4 col-sm-12">
<label for="name" class="mandatory form-label mt-2">{{ __("City Name") }}</label><span class="text-danger">*</span>
<div class="d-flex mb-2">
<input type="text" name="name[]" class="form-control me-2" placeholder="{{ __("Enter City name") }}">
</div>
</div>
<div class="form-group col-md-4 col-sm-12">
<label for="latitude" class="mandatory form-label mt-2">{{ __("Latitude") }}</label>
<div class="d-flex mb-2">
<input type="text" name="latitude[]" class="form-control me-2" placeholder="{{ __("Enter Latitude") }}">
</div>
</div>
<div class="form-group col-md-4 col-sm-12">
<label for="longitude" class="mandatory form-label mt-2">{{ __("Longitude") }}</label>
<div class="d-flex mb-2">
<input type="text" name="longitude[]" class="form-control me-2" placeholder="{{ __("Enter Longitude") }}">
<button type="button" class="btn btn-secondary add-city-button">+</button>
<button type="button" class="btn btn-danger remove-city-button ms-2">-</button>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-12">
<div id="map"></div>
</div>
</div>
</div>
<div class="col-md-12 m-2 text-end">
<input type="submit" class="btn btn-primary" value="{{__("Create")}}">
</div>
</div>
</div>
</div>
</form>
</div>
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-body">
<div id="filters">
<div class="row">
<div class="col-12 col-md-4">
<label for="filter_country">{{__("Country")}}</label>
<select class="form-control bootstrap-table-filter-control-country_name" id="filter_country">
<option value="">{{__("All")}}</option>
@foreach($countries as $country)
<option value="{{$country->id}}">{{$country->name}}</option>
@endforeach
</select>
</div>
<div class="col-12 col-md-4">
<label for="filter_state">{{__("State")}}</label>
<select class="form-control bootstrap-table-filter-control-state_name" id="filter_state">
<option value="">{{__("All")}}</option>
@foreach($states as $state)
<option value="{{$state->id}}">{{$state->name}}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<table class="table-borderless table-striped" aria-describedby="mydesc" id="table_list"
data-toggle="table" data-url="{{ route('cities.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-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-table="cities" data-status-column="deleted_at"
data-escape="true"
data-filter-control="true"
data-toolbar="#filters"
data-filter-control-container="#filters"
data-show-export="true" data-export-options='{"fileName": "city-list","ignoreColumn": ["operate"]}' data-export-types="['pdf','json', 'xml', 'csv', 'txt', 'sql', 'doc', 'excel']"
data-mobile-responsive="true">
<thead class="thead-dark">
<tr>
<th scope="col" data-field="id" data-sortable="true">{{ __('ID') }}</th>
<th scope="col" data-field="name" data-sortable="true">{{ __('Name') }}</th>
<th scope="col" data-field="country_name" data-sortable="true" data-filter-name="country_id" data-filter-control="select" data-filter-data="">{{ __('Country Name') }}</th>
<th scope="col" data-field="state_name" data-sortable="true" data-filter-name="state_id" data-filter-control="select" data-filter-data="">{{ __('State Name') }}</th>
<th scope="col" data-field="longitude" data-sortable="false">{{ __('Longitude') }}</th>
<th scope="col" data-field="latitude" data-sortable="false">{{ __('Latitude') }}</th>
<th scope="col" data-field="country.emoji">{{ __('Flag') }}</th>
<th scope="col" data-field="operate" data-sortable="false" data-escape="false" data-events="cityEvents">{{ __('Action') }}</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
@can('city-update')
<!-- EDIT MODEL MODEL -->
<div id="editModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel1">{{ __('Edit City') }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="edit-form" class="edit-form" action="" method="POST" enctype="multipart/form-data">
@csrf
<div class="row">
<div class="col-md-6 form-group">
<label for="country" class="mandatory form-label">{{__("Country")}}</label>
<select name="country_id" id="edit_country" class="form-control country form-select" data-placeholder="{{__("Select Country")}}">
<option value="">Select Country</option>
@foreach ($countries as $country)
<option value="{{ $country->id }}">{{ $country->name }}</option>
@endforeach
</select>
</div>
<div class="col-md-6 form-group">
<label for="state" class="mandatory form-label">{{__("State")}}</label>
<select name="state_id" id="edit_state" class="form-control form-select" data-placeholder="{{__("Select State")}}">
@foreach ($states as $state)
<option value="{{ $state->id }}">{{ $state->name }}</option>
@endforeach
</select>
</div>
</div>
<div class="row mt-3">
<div class="form-group col-md-4 col-sm-12">
<label for="name" class="mandatory form-label">City Name</label>
<div class="d-flex mb-2">
<input type="text" name="name" class="form-control me-2" id="edit_name" placeholder="{{__("Enter City name")}}">
</div>
</div>
<div class="form-group col-md-4 col-sm-12">
<label for="latitude" class="mandatory form-label">Latitude</label>
<div class="d-flex mb-2">
<input type="text" name="latitude" id="edit_latitude" class="form-control me-2" placeholder="{{__("Enter Latitude")}}">
</div>
</div>
<div class="form-group col-md-4 col-sm-12">
<label for="longitude" class="mandatory form-label">Longitude</label>
<div class="d-flex mb-2">
<input type="text" name="longitude" id="edit_longitude" class="form-control me-2" placeholder="{{__("Enter Longitude")}}">
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-12">
<div id="edit_map" style="height: 400px;"></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>
</form>
</div>
</div>
</div>
</div>
@endcan
</section>
@endsection
@section('script')
<script>
$(document).ready(function() {
// Initialize map with default coordinates
const map = window.mapUtils.initializeMap('map', 0, 0);
window.updateAreaCoordinates = function(lat, lng) {
// Get the last area input group (the one being edited)
const $areaGroup = $('.city-input-group').last();
// Update latitude and longitude fields
$areaGroup.find('input[name="latitude[]"]').val(lat);
$areaGroup.find('input[name="longitude[]"]').val(lng);
};
});
</script>
@endsection

View File

@@ -0,0 +1,58 @@
@extends('layouts.main')
@section('title')
{{ __("Translate Cities") }}
@endsection
@section('page-title')
<div class="page-title">
<div class="row">
<div class="col-12 col-md-6">
<h4>@yield('title')</h4>
</div>
</div>
</div>
@endsection
@section('content')
<section class="section">
<form class="edit-form" action="{{ route('cities.translation.update') }}" method="POST" data-parsley-validate enctype="multipart/form-data">
@csrf
<div class="card">
<div class="card-header">
<h4>{{ __('Translate City Names') }}</h4>
</div>
<div class="card-body">
@if($countries->isNotEmpty())
<div class="form-group mb-3">
<label for="country_translation">{{ __('Select Country') }}</label>
<select id="country_translation" class="form-control">
<option value="">{{ __('Select Country') }}</option>
@foreach($countries as $country)
<option value="{{ $country->id }}">{{ $country->name }}</option>
@endforeach
</select>
</div>
<div class="form-group mb-3">
<label for="state_translation">{{ __('Select State') }}</label>
<select id="state_translation" class="form-control" disabled>
<option value="">{{ __('Select State') }}</option>
</select>
</div>
<div id="city_translations_container" class="mt-4"></div>
<div class="text-end">
<button type="submit" class="btn btn-primary">{{ __("Save") }}</button>
</div>
@else
<p>{{ __("No countries found.") }}</p>
@endif
</div>
</div>
</form>
</section>
@endsection

View File

@@ -0,0 +1,36 @@
@if($languages->isNotEmpty())
<ul class="nav nav-tabs mb-3">
@foreach($languages as $index => $language)
<li class="nav-item">
<a class="nav-link @if($index == 0) active @endif"
data-bs-toggle="tab"
href="#lang-{{ $language->id }}-{{ $state->id }}">
{{ $language->name }}
</a>
</li>
@endforeach
</ul>
<div class="tab-content mb-4">
@foreach($languages as $index => $language)
<div class="tab-pane fade @if($index == 0) show active @endif"
id="lang-{{ $language->id }}-{{ $state->id }}">
<div class="row">
@foreach($cities as $city)
@php
$translation = $city->translations->firstWhere('language_id', $language->id);
@endphp
<div class="col-md-6 mb-3">
<label class="form-label">{{ $city->name }}</label>
<input type="text"
name="translations[{{ $language->id }}][{{ $city->id }}]"
class="form-control"
value="{{ $translation?->name }}"
placeholder="{{ __('Enter name for') }} {{ $city->name }}">
</div>
@endforeach
</div>
</div>
@endforeach
</div>
@endif

View File

@@ -0,0 +1,101 @@
@extends('layouts.main')
@section('title')
{{ __('Countries') }}
@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="buttons d-flex justify-content-end">
<a class="btn btn-primary" href="#" data-bs-toggle="modal" data-bs-target="#countryModal">
+ {{ __("Import Countries") }}
</a>
<a class="btn btn-primary ms-2" href="{{ route('countries.translation') }}">
<i class="fa fa-language me-2"></i> {{ __("Translate Countries") }}</a>
</div>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table-borderless table-striped" aria-describedby="mydesc" id="table_list"
data-toggle="table" data-url="{{ route('countries.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-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-table="countries" data-status-column="deleted_at"
data-escape="true"
data-show-export="true" data-export-options='{"fileName": "country-list","ignoreColumn": ["operate"]}' data-export-types="['pdf','json', 'xml', 'csv', 'txt', 'sql', 'doc', 'excel']"
data-mobile-responsive="true" data-filter-control="true" data-filter-control-container="#filters" data-toolbar="#filters">
<thead class="thead-dark">
<tr>
<th scope="col" data-field="id" data-sortable="true">{{ __('ID') }}</th>
<th scope="col" data-field="name" data-sortable="true">{{ __('Name') }}</th>
<th scope="col" data-field="emoji">{{ __('Flag') }}</th>
<th scope="col" data-field="operate" data-escape="false">{{ __('Action') }}</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
<div id="countryModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1" aria-hidden="true">
<div class="modal-dialog modal-fullscreen">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel1">{{ __('Import Country Data') }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form class="create-form" action="{{route('countries.import')}}" method="POST" data-success-function="successFunction">
@csrf
<div class="row">
<div class="col-12 mb-3">
<input type="text" id="countrySearchInput" class="form-control" placeholder="{{ __('Search countries...') }}">
</div>
<div class="col-12 mb-2">
<input type="checkbox" id="selectAllCountries" class="form-check-input">
<label for="selectAllCountries" class="form-label">{{ __('Select All') }}</label>
</div>
@foreach($countries as $country)
<div class="col-md-3">
<input type="checkbox" id="{{$country['id']}}" name="countries[]" value="{{$country['id']}}" {{$country['is_already_exists'] ? "checked disabled" : ""}} class="form-check-input">
<label for="{{$country['id']}}" class="form-label">{{$country['name'].' '.$country['emoji']}}</label>
</div>
@endforeach
</div>
<div class="text-end">
<input type="submit" value="{{__("Save")}}" class="btn btn-primary mt-3">
</div>
</form>
</div>
</div>
</div>
<!-- /.modal-content -->
</div>
</section>
@endsection
@section('js')
<script>
function successFunction() {
$('#countryModal').modal('hide');
}
</script>
@endsection

View File

@@ -0,0 +1,76 @@
@extends('layouts.main')
@section('title')
{{ __("Translate Countries") }}
@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>
</div>
@endsection
@section('content')
<section class="section">
<form class="edit-form" action="{{route('countries.translation.update')}}" method="POST" data-parsley-validate enctype="multipart/form-data">
@csrf
<div class="card">
<div class="card-header">
<h4>{{ __('Translate Country Names') }}</h4>
</div>
<div class="card-body">
@if($languages->isNotEmpty())
<ul class="nav nav-tabs" id="languageTabs" role="tablist">
@foreach($languages as $index => $language)
<li class="nav-item" role="presentation">
<button class="nav-link @if($index === 0) active @endif" id="tab-{{ $language->id }}" data-bs-toggle="tab" data-bs-target="#lang-{{ $language->id }}" type="button" role="tab">
{{ $language->name }}
</button>
</li>
@endforeach
</ul>
<div class="tab-content border p-3 mt-3" id="languageTabContent">
@foreach($languages as $index => $language)
<div class="tab-pane fade @if($index === 0) show active @endif" id="lang-{{ $language->id }}" role="tabpanel">
<h5 class="text-primary mb-3">{{ __("Translations for") }}: {{ $language->name }} ({{ $language->code }})</h5>
<div class="row">
@foreach($countries as $country)
<div class="col-md-6 mb-3">
<label class="form-label">
{{ $country->name }}
</label>
@php
$existingTranslation = $country->nameTranslations->firstWhere('language_id', $language->id);
@endphp
<input type="text"
name="translations[{{ $language->id }}][{{ $country->id }}]"
class="form-control"
value="{{ $existingTranslation ? $existingTranslation->name : '' }}"
placeholder="{{ __('Enter name for') }} {{ $country->name }}">
</div>
@endforeach
</div>
</div>
@endforeach
</div>
<div class="mt-4 text-end">
<div class="col-md-12 m-2 text-end">
<input type="submit" class="btn btn-primary" value="{{__("Save")}}">
</div>
</div>
@else
<p>{{ __("No languages found.") }}</p>
@endif
</div>
</div>
</form>
</section>
@endsection

View File

@@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>OpenLayers Map</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ol/ol.css" />
<script src="https://cdn.jsdelivr.net/npm/ol/ol.js"></script>
<style>
#map {
height: 500px;
width: 100%;
}
</style>
</head>
<body>
<div id="map"></div>
<form action="{{ route('store.location') }}" method="POST">
@csrf
<label>Latitude:</label>
<input type="text" id="latitude" name="latitude" readonly>
<label>Longitude:</label>
<input type="text" id="longitude" name="longitude" readonly>
<button type="submit">Save Location</button>
</form>
<script>
const map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM() // OpenStreetMap Layer
})
],
view: new ol.View({
center: ol.proj.fromLonLat([0, 0]),
zoom: 2
})
});
let marker = new ol.Overlay({
position: ol.proj.fromLonLat([0, 0]),
element: document.createElement('div'),
positioning: 'center-center'
});
map.addOverlay(marker);
map.on('click', function(event) {
const coordinate = ol.proj.toLonLat(event.coordinate);
const lat = coordinate[1];
const lng = coordinate[0];
document.getElementById('latitude').value = lat;
document.getElementById('longitude').value = lng;
marker.setPosition(event.coordinate);
});
</script>
</body>
</html>

View File

@@ -0,0 +1,73 @@
@extends('layouts.main')
@section('title')
{{ __('States') }}
@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 m-3">
<div class="col-12 text-end">
<a href="{{ route('states.translation') }}" class="btn btn-primary">
<i class="fa fa-language me-2"></i> {{ __('Translate States') }}
</a>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-body">
<div id="filters">
<div class="row">
<div class="col-12 col-md-12">
<label for="filter_country">{{__("Country")}}</label>
<select class="form-control bootstrap-table-filter-control-country_name" id="filter_country">
<option value="">{{__("All")}}</option>
@foreach($countries as $country)
<option value="{{$country->id}}">{{$country->name}}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<table class="table-borderless table-striped" aria-describedby="mydesc" id="table_list"
data-toggle="table" data-url="{{ route('states.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-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-table="states" data-status-column="deleted_at"
data-escape="true"
data-show-export="true" data-export-options='{"fileName": "state-list","ignoreColumn": ["operate"]}' data-export-types="['pdf','json', 'xml', 'csv', 'txt', 'sql', 'doc', 'excel']"
data-mobile-responsive="true" data-filter-control="true" data-filter-control-container="#filters" data-toolbar="#filters">
<thead class="thead-dark">
<tr>
<th scope="col" data-field="id" data-sortable="true">{{ __('ID') }}</th>
<th scope="col" data-field="name" data-sortable="true">{{ __('Name') }}</th>
<th scope="col" data-field="country_name" data-sortable="true" data-filter-name="country_id" data-filter-control="select" data-filter-data="">{{ __('Country') }}</th>
<th scope="col" data-field="country.emoji">{{ __('Flag') }}</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection

View File

@@ -0,0 +1,106 @@
@extends('layouts.main')
@section('title')
{{ __("Translate States") }}
@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>
</div>
@endsection
@section('content')
<section class="section">
<form class="edit-form" action="{{ route('states.translation.update') }}" method="POST" data-parsley-validate enctype="multipart/form-data">
@csrf
@method('PUT')
<div class="card">
<div class="card-header">
<h4>{{ __('Translate State Names') }}</h4>
</div>
<div class="card-body">
@if($countries->isNotEmpty())
<ul class="nav nav-tabs" id="countryTabs" role="tablist">
@foreach($countries as $index => $country)
<li class="nav-item" role="presentation">
<button class="nav-link @if($index === 0) active @endif"
id="country-tab-{{ $country->id }}"
data-bs-toggle="tab"
data-bs-target="#country-{{ $country->id }}"
type="button" role="tab">
{{ $country->name }}
</button>
</li>
@endforeach
</ul>
<div class="tab-content border p-3 mt-3" id="countryTabContent">
@foreach($countries as $index => $country)
<div class="tab-pane fade @if($index === 0) show active @endif" id="country-{{ $country->id }}" role="tabpanel">
<h5 class="text-primary">{{ __('States in') }} {{ $country->name }}</h5>
@php
$countryStates = $States->where('country_id', $country->id);
@endphp
@if($languages->isNotEmpty())
<ul class="nav nav-tabs mt-3" id="languageTabs-{{ $country->id }}" role="tablist">
@foreach($languages as $langIndex => $language)
<li class="nav-item" role="presentation">
<button class="nav-link @if($langIndex === 0) active @endif"
id="lang-tab-{{ $country->id }}-{{ $language->id }}"
data-bs-toggle="tab"
data-bs-target="#lang-content-{{ $country->id }}-{{ $language->id }}"
type="button" role="tab">
{{ $language->name }}
</button>
</li>
@endforeach
</ul>
<div class="tab-content border p-3 mt-3">
@foreach($languages as $langIndex => $language)
<div class="tab-pane fade @if($langIndex === 0) show active @endif"
id="lang-content-{{ $country->id }}-{{ $language->id }}"
role="tabpanel">
<h6 class="text-secondary">{{ __('Language') }}: {{ $language->name }}</h6>
<div class="row">
@foreach($countryStates as $state)
@php
$existingTranslation = $state->translations->firstWhere('language_id', $language->id);
@endphp
<div class="col-md-6 mb-3">
<label class="form-label">{{ $state->name }}</label>
<input type="text"
name="translations[{{ $language->id }}][{{ $state->id }}]"
class="form-control"
value="{{ $existingTranslation?->name }}"
placeholder="{{ __('Enter name for') }} {{ $state->name }}">
</div>
@endforeach
</div>
</div>
@endforeach
</div>
@endif
</div>
@endforeach
</div>
<div class="mt-4 text-end">
<input type="submit" class="btn btn-primary" value="{{ __('Save') }}">
</div>
@else
<p>{{ __("No countries found.") }}</p>
@endif
</div>
</div>
</form>
</section>
@endsection