restore composer.json, add mysqli extension

This commit is contained in:
2026-04-15 17:02:52 +05:00
commit 77cf56a348
4317 changed files with 1397107 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
@extends('dashboard.layouts.app')
@section('title', trans('admin.regions.title') . ' - ')
@section('speedbar')
<div class="content-header row">
<div class="content-header-left col-md-9 col-12 mb-2">
<div class="row breadcrumbs-top">
<div class="col-12">
<h2 class="content-header-title float-left mb-0">@lang('admin.regions.title')</h2>
<div class="breadcrumb-wrapper col-12">
<ol class="breadcrumb">
<li class="breadcrumb-item "><a href="{{ route('dashboard') }}">@lang('admin.home')</a>
</li>
<li class="breadcrumb-item active">
@lang('admin.regions.title')
</li>
{{-- <li class="breadcrumb-item active">Fixed Layout --}}
{{-- </li> --}}
</ol>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('content')
<div class="row" id="table-head">
<div class="col-md-12 mb-1">
@can('create', 'regions')
<a href="{{ route('dashboard.region.store') }}" class="btn btn-icon btn-success float-right">
<i class="feather icon-plus"></i> @lang('admin.add')
</a>
@endcan
</div>
<div class="col-12">
<div class="card">
<div class="card-content">
<div class="table-responsive">
<table class="table mb-0">
<thead class="thead-dark">
<tr>
<th scope="col" width="50">ID</th>
<th scope="col">@lang('admin.regions.name')</th>
<th scope="col">Наличие</th>
<th scope="col" class="text-right">@lang('admin.actions')</th>
</tr>
</thead>
<tbody>
@if (count($regions) == 0)
<tr>
<td class="text-center" colspan="4">
@lang('admin.no_data')
</td>
</tr>
@endif
@foreach ($regions as $region)
<tr>
<th scope="row">{{ $region->id }}</th>
<td>{{ $region->getName() }}</td>
<td>
@if ($region->cash)
Есть
@else
Нет
@endif
</td>
<td class="text-right">
@can('update', 'regions')
<a href="{{ route('dashboard.region.update', $region->id) }}"
class="btn btn-sm btn-success btn-icon" data-toggle="tooltip"
data-original-title="@lang('admin.edit')">
<i class="feather icon-edit"></i>
</a>
@endcan
{{-- @can('delete', 'regions') --}}
{{-- <a href="{{ route('dashboard.region.delete', $region->id) }}" class="btn btn-sm btn-danger btn-icon" data-toggle="tooltip" data-original-title="@lang('admin.delete')"> --}}
{{-- <i class="feather icon-trash"></i> --}}
{{-- </a> --}}
{{-- @endcan --}}
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
{{ $regions->links('pagination::bootstrap-4') }}
</div>
</div>
@endsection

View File

@@ -0,0 +1,204 @@
@extends('dashboard.layouts.app')
@section('title', trans('admin.add') . ' - ')
@section('speedbar')
<div class="content-header row">
<div class="content-header-left col-md-9 col-12 mb-2">
<div class="row breadcrumbs-top">
<div class="col-12">
<h2 class="content-header-title float-left mb-0">@lang('admin.add')</h2>
<div class="breadcrumb-wrapper col-12">
<ol class="breadcrumb">
<li class="breadcrumb-item ">
<a href="{{ route('dashboard') }}">@lang('admin.home')</a>
</li>
<li class="breadcrumb-item ">
<a href="{{ route('dashboard.regions') }}">@lang('admin.regions.title')</a>
</li>
<li class="breadcrumb-item active">
@lang('admin.add')
</li>
</ol>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('content')
<div class="row">
<div class="col-md-12 col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">@lang('admin.add')</h4>
</div>
<div class="card-content">
<form class="form form-vertical" action="{{ route('dashboard.region.store') }}" method="post">
@csrf
<div class="card-body">
<div class="form-body">
<p>@lang('admin.all_fields_with')</p>
<div class="row">
<div class="col-12">
<div class="row">
<div class="col-6">
<div class="form-group">
<label for="first-name-vertical">@lang('admin.regions.name') UZ *</label>
<input type="text" id="first-name-vertical" required
class="form-control @error('name.uz') is-invalid @enderror"
name="name[uz]" value="{{ old('name.uz') }}"
placeholder="@lang('admin.regions.name') UZ">
@error('name.uz')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-6">
<div class="form-group">
<label for="nameru">@lang('admin.regions.name') RU *</label>
<input type="text" id="nameru" required
class="form-control @error('name.ru') is-invalid @enderror"
value="{{ old('name.ru') }}" name="name[ru]"
placeholder="@lang('admin.regions.name') RU">
@error('name.ru')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
</div>
</div>
<div class="col-12">
<fieldset>
<div class="vs-checkbox-con vs-checkbox-primary">
<input type="checkbox" name="cash" value="1">
<span class="vs-checkbox">
<span class="vs-checkbox--check">
<i class="vs-icon feather icon-check"></i>
</span>
</span>
<span class="">Принимать наличные</span>
</div>
</fieldset>
</div>
{{-- Delivery Price Part Start --}}
<div class="col-md-12">
<div class="row g-3" id="delivery-price-part">
<div class="col-md-3 mt-0 top-right">
<button type="button"
class="form-control mt-4 btn btn-primary btn-sm add-delivery-price-button">
@lang('admin.regions.add_delivery_price')
</button>
</div>
<div class="col-md-12 hidden-section m-0"
id="labels-container-for-delivery-price">
<div class="row g-3 mt-2">
<div class="col-md-5">
<label class="form-label">@lang('admin.regions.power')</label>
</div>
<div class="col-md-5">
<label class="form-label">@lang('admin.regions.price')</label>
</div>
<div class="col-md-2">
</div>
</div>
</div>
{{-- Hidden input to keep track of the number of sets of inputs --}}
<input type="hidden" id="inputCounter" value="0">
</div>
</div>
{{-- Delivery Price Part End --}}
</div>
</div>
</div>
<div class="card-footer pb-0 pl-0 pt-1">
<div class="col-12 mb-0">
<div class="row">
<div class="col-3">
<button type="submit"
class="btn btn-primary mr-1 mb-1 waves-effect waves-light btn-icon">
<i class="feather icon-save"></i> @lang('admin.save')
</button>
</div>
<div class="col-9">
<a href="{{ route('dashboard.regions') }}"
class="btn btn-danger mr-1 mb-1 waves-effect waves-light btn-icon pull-right">
<i class="feather icon-x-circle"></i> @lang('admin.cancel')
</a>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
@push('js')
<script type="text/javascript">
var powers = @json($powers);
var lang = @json($lang);
// Add Delivery Prices
// Add new set of elements
$(".add-delivery-price-button").on("click", function() {
var inputCounter = parseInt($("#inputCounter").val());
// Create the select options dynamically using the 'powers' data
var powerOptions = `<option disabled selected>@lang('admin.regions.choose_power')</option>`;
powers.forEach(function(power) {
powerOptions += `<option value="${power.id}">${power.name[lang]}</option>`;
});
var newSetOfElements = `
<div class="row g-3 mb-2 delivery-price-row-${inputCounter}">
<div class="col-md-5">
<select class="select2 form-control" name="deliveryPrice[${inputCounter}][power_id]" required>
${powerOptions}
</select>
</div>
<div class="col-md-5">
<input type="text" name="deliveryPrice[${inputCounter}][price]" class="form-control time-mask" placeholder="@lang('admin.regions.price')">
</div>
<div class="col-md-2 d-flex align-items-center">
<button type="button" class="btn btn-danger btn-sm delivery-price-remove-btn" data-counter="${inputCounter}">
<i class="feather icon-trash"></i>
</button>
</div>
</div>
`;
// Remove the "hidden-section" class before adding new elements
$("#labels-container-for-delivery-price").removeClass("hidden-section");
// Find the specific <div class="row g-3"> and insert newSetOfElements after it
$(`${"#labels-container-for-delivery-price"} .row.g-3:last`).after(
newSetOfElements);
inputCounter++;
// Update the value of "inputCounter" in the hidden input
$("#inputCounter").val(inputCounter);
});
// Handle the remove button click event (for dynamically added elements)
$(document).on("click", ".delivery-price-remove-btn", function() {
let counter = $(this).data("counter");
let rows_to_delete = $('.delivery-price-row-' + counter);
// Remove the specific row
rows_to_delete.remove();
});
</script>
@endpush

View File

@@ -0,0 +1,255 @@
@extends('dashboard.layouts.app')
@section('title', trans('admin.edit') . ' - ')
@section('speedbar')
<div class="content-header row">
<div class="content-header-left col-md-9 col-12 mb-2">
<div class="row breadcrumbs-top">
<div class="col-12">
<h2 class="content-header-title float-left mb-0">@lang('admin.edit')</h2>
<div class="breadcrumb-wrapper col-12">
<ol class="breadcrumb">
<li class="breadcrumb-item ">
<a href="{{ route('dashboard') }}">@lang('admin.home')</a>
</li>
<li class="breadcrumb-item ">
<a href="{{ route('dashboard.regions') }}">@lang('admin.regions.title')</a>
</li>
<li class="breadcrumb-item active">
@lang('admin.edit')
</li>
</ol>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('content')
<div class="row">
<div class="col-md-12 col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">@lang('admin.edit')</h4>
</div>
<div class="card-content">
<form class="form form-vertical" action="{{ route('dashboard.region.update', $region->id) }}"
enctype="multipart/form-data" method="post">
@csrf
<div class="card-body">
<div class="form-body">
<p>@lang('admin.all_fields_with')</p>
<div class="row">
<div class="col-12">
<div class="row">
<div class="col-6">
<div class="form-group">
<label for="first-name-vertical">@lang('admin.regions.name') UZ *</label>
<input type="text" id="first-name-vertical" required
class="form-control @error('name.uz') is-invalid @enderror"
name="name[uz]" value="{{ old('name.uz', $region->name['uz']) }}"
placeholder="@lang('admin.regions.name') UZ">
@error('name.uz')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
<div class="col-6">
<div class="form-group">
<label for="nameru">@lang('admin.regions.name') RU *</label>
<input type="text" id="nameru" required
class="form-control @error('name.ru') is-invalid @enderror"
value="{{ old('name.ru', $region->name['ru']) }}" name="name[ru]"
placeholder="@lang('admin.regions.name') RU">
@error('name.ru')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</div>
</div>
</div>
<div class="col-12">
<fieldset>
<div class="vs-checkbox-con vs-checkbox-primary">
<input type="checkbox" name="cash"
@if ($region->cash) checked @endif value="1">
<span class="vs-checkbox">
<span class="vs-checkbox--check">
<i class="vs-icon feather icon-check"></i>
</span>
</span>
<span class="">Принимать наличные</span>
</div>
</fieldset>
</div>
{{-- Delivery Price Part Start --}}
<div class="col-md-12">
<div class="row g-3" id="delivery-price-part">
<div class="col-md-3 mt-0 top-right">
<button type="button"
class="form-control mt-4 btn btn-primary btn-sm add-delivery-price-button">
@lang('admin.regions.add_delivery_price')
</button>
</div>
<div class="col-md-12 hidden-section m-0"
id="labels-container-for-delivery-price">
<div class="row g-3 mt-2">
<div class="col-md-5">
<label class="form-label">@lang('admin.regions.power')</label>
</div>
<div class="col-md-5">
<label class="form-label">@lang('admin.regions.price')</label>
</div>
<div class="col-md-2">
</div>
</div>
</div>
{{-- Hidden input to keep track of the number of sets of inputs --}}
<input type="hidden" id="inputCounter" value="0">
</div>
</div>
{{-- Delivery Price Part End --}}
</div>
</div>
</div>
<div class="card-footer pb-0 pl-0 pt-1">
<div class="col-12 mb-0">
<div class="row">
<div class="col-3">
<button type="submit"
class="btn btn-primary mr-1 mb-1 waves-effect waves-light btn-icon">
<i class="feather icon-save"></i> @lang('admin.save')
</button>
</div>
<div class="col-9">
<a href="{{ route('dashboard.regions') }}"
class="btn btn-danger mr-1 mb-1 waves-effect waves-light btn-icon pull-right">
<i class="feather icon-x-circle"></i> @lang('admin.cancel')
</a>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
@push('js')
<script type="text/javascript">
var powers = @json($powers);
var lang = @json($lang);
var deliveryPrices = @json($region->deliveryPrice);
// Create the select options dynamically using the 'powers' data
var powerOptions = `<option disabled selected>@lang('admin.regions.choose_power')</option>`;
// Populate existing deliveryPrices
for (var i = 0; i < deliveryPrices.length; i++) {
let element = $(deliveryPrices[i]);
let id = element[0].id;
let power_id = element[0].power_id;
let price = element[0].price;
let inputCounter = parseInt($("#inputCounter").val());
let newSetOfElements = '';
powers.forEach(function(power) {
powerOptions +=
`<option value="${power.id}" ${power.id == power_id ? 'selected' : ''}>${power.name[lang]}</option>`;
});
newSetOfElements = newSetOfElements + `
<div class="row g-3 mb-2 delivery-price-row-${inputCounter}">
<input type="hidden" class="form-control" name="deliveryPrice[${inputCounter}][id]" placeholder=""
value="${id}" />
<div class="col-md-5">
<select class="select2 form-control" name="deliveryPrice[${inputCounter}][power_id]" required>
${powerOptions}
</select>
</div>
<div class="col-md-5">
<input type="text" name="deliveryPrice[${inputCounter}][price]" value="${price}" class="form-control time-mask" placeholder="@lang('admin.regions.price')">
</div>
<div class="col-md-2 d-flex align-items-center">
<button type="button" class="btn btn-danger btn-sm delivery-price-remove-btn" data-counter="${inputCounter}">
<i class="feather icon-trash"></i>
</button>
</div>
</div>
`;
inputCounter++;
// Update the value of "inputCounter" in the hidden input
$("#inputCounter").val(inputCounter);
$("#labels-container-for-delivery-price").removeClass("hidden-section");
$(`${"#labels-container-for-delivery-price"} .row.g-3:last`).after(newSetOfElements);
}
// Add Delivery Prices
// Add new set of elements
$(".add-delivery-price-button").on("click", function() {
var inputCounter = parseInt($("#inputCounter").val());
// Create the select options dynamically using the 'powers' data
var powerOptions = `<option disabled selected>@lang('admin.regions.choose_power')</option>`;
powers.forEach(function(power) {
powerOptions += `<option value="${power.id}">${power.name[lang]}</option>`;
});
var newSetOfElements = `
<div class="row g-3 mb-2 delivery-price-row-${inputCounter}">
<div class="col-md-5">
<select class="select2 form-control" name="deliveryPrice[${inputCounter}][power_id]" required>
${powerOptions}
</select>
</div>
<div class="col-md-5">
<input type="text" name="deliveryPrice[${inputCounter}][price]" class="form-control time-mask" placeholder="@lang('admin.regions.price')">
</div>
<div class="col-md-2 d-flex align-items-center">
<button type="button" class="btn btn-danger btn-sm delivery-price-remove-btn" data-counter="${inputCounter}">
<i class="feather icon-trash"></i>
</button>
</div>
</div>
`;
// Remove the "hidden-section" class before adding new elements
$("#labels-container-for-delivery-price").removeClass("hidden-section");
// Find the specific <div class="row g-3"> and insert newSetOfElements after it
$(`${"#labels-container-for-delivery-price"} .row.g-3:last`).after(
newSetOfElements);
inputCounter++;
// Update the value of "inputCounter" in the hidden input
$("#inputCounter").val(inputCounter);
});
// Handle the remove button click event (for dynamically added elements)
$(document).on("click", ".delivery-price-remove-btn", function() {
let counter = $(this).data("counter");
let rows_to_delete = $('.delivery-price-row-' + counter);
// Remove the specific row
rows_to_delete.remove();
});
</script>
@endpush