git commit "complete province and city management with ajax"

This commit is contained in:
2026-08-19 18:56:35 +03:30
parent 3f46f6356a
commit 8872473e8d
13 changed files with 1071 additions and 72 deletions
@@ -0,0 +1,114 @@
@extends('admin.layouts.app')
@section('breadcrumb')
<span>
افزودن شهرستان
</span>
@endsection
@section('content')
<div class="container-fluid mt-4">
<div class="row justify-content-center">
<div class="col-md-7">
<div class="card shadow-sm border-0">
<div class="card-body p-4">
<h4 class="fw-bold mb-4">
افزودن شهرستان جدید
</h4>
<form method="POST" action="{{ route('admin.cities.store') }}">
@csrf
<div class="mb-3">
<label class="form-label">
استان
</label>
<select name="province_id"
class="form-select form-select-lg">
<option value="">
انتخاب استان
</option>
@foreach($provinces as $province)
<option value="{{ $province->id }}"
{{ old('province_id') == $province->id ? 'selected' : '' }}>
{{ $province->name }}
</option>
@endforeach
</select>
@error('province_id')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="mb-3">
<label class="form-label">
نام شهرستان
</label>
<input type="text"
name="name"
class="form-control form-control-lg"
placeholder="مثلا مشهد"
value="{{ old('name') }}">
@error('name')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="d-flex gap-2">
<button class="btn btn-success px-4">
ثبت شهرستان
</button>
<a href="{{ route('admin.cities.index') }}"
class="btn btn-secondary px-4">
بازگشت
</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@@ -0,0 +1,117 @@
@extends('admin.layouts.app')
@section('breadcrumb')
<span>
ویرایش شهرستان
</span>
@endsection
@section('content')
<div class="container-fluid mt-4">
<div class="row justify-content-center">
<div class="col-md-7">
<div class="card shadow-sm border-0">
<div class="card-body p-4">
<h4 class="fw-bold mb-4">
ویرایش شهرستان
</h4>
<form method="POST"
action="{{ route('admin.cities.update',$city->id) }}">
@csrf
@method('PUT')
<div class="mb-3">
<label class="form-label">
استان
</label>
<select name="province_id"
class="form-select form-select-lg">
@foreach($provinces as $province)
<option value="{{ $province->id }}"
@if($city->province_id == $province->id)
selected
@endif
>
{{ $province->name }}
</option>
@endforeach
</select>
@error('province_id')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="mb-3">
<label class="form-label">
نام شهرستان
</label>
<input type="text"
name="name"
class="form-control form-control-lg"
value="{{ old('name',$city->name) }}">
@error('name')
<div class="text-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="d-flex gap-2">
<button class="btn btn-warning px-4">
ویرایش
</button>
<a href="{{ route('admin.cities.index') }}"
class="btn btn-secondary px-4">
بازگشت
</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@@ -0,0 +1,131 @@
@extends('admin.layouts.app')
@section('content')
<div class="container-fluid mt-4">
<div class="d-flex justify-content-between mb-4">
<h3 class="fw-bold">
مدیریت شهرستان‌ها
</h3>
<a href="{{ route('admin.cities.create') }}"
class="btn btn-primary">
افزودن شهرستان
</a>
</div>
<div class="card shadow-sm border-0">
<div class="card-body">
<table class="table table-hover text-center">
<thead class="table-light">
<tr>
<th>شناسه</th>
<th>
نام شهرستان
</th>
<th>
استان
</th>
<th>
تاریخ ثبت
</th>
<th>
عملیات
</th>
</tr>
</thead>
<tbody>
@forelse($cities as $city)
<tr>
<td>
{{ $city->id }}
</td>
<td class="fw-bold">
{{ $city->name }}
</td>
<td>
{{ $city->province->name ?? '-' }}
</td>
<td>
{{ $city->created_at?->toJalali()->format('Y/m/d') ?? '-' }}
</td>
<td>
<a href="{{ route('admin.cities.edit',$city->id) }}"
class="btn btn-warning btn-sm">
ویرایش
</a>
<form action="{{ route('admin.cities.destroy',$city->id) }}"
method="POST"
class="d-inline">
@csrf
@method('DELETE')
<button class="btn btn-danger btn-sm">
حذف
</button>
</form>
</td>
</tr>
@empty
<tr>
<td colspan="5">
شهرستانی ثبت نشده است
</td>
</tr>
@endforelse
</tbody>
</table>
{{ $cities->links() }}
</div>
</div>
</div>
@endsection