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,100 @@
@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-6">
<div class="card border-0 shadow-sm">
<div class="card-body p-4">
<h4 class="fw-bold mb-4">
افزودن استان جدید
</h4>
<form method="POST"
action="{{ route('admin.provinces.store') }}">
@csrf
<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.provinces.index') }}"
class="btn btn-secondary px-4">
بازگشت
</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@@ -0,0 +1,104 @@
@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-lg-6">
<div class="card border-0 shadow-sm">
<div class="card-header bg-white border-0 pt-4">
<h4 class="fw-bold">
<i class="bi bi-pencil-square"></i>
ویرایش استان
</h4>
<p class="text-muted mb-0">
اطلاعات استان را ویرایش کنید
</p>
</div>
<div class="card-body p-4">
<form method="POST"
action="{{ route('admin.provinces.update',$province->id) }}">
@csrf
@method('PUT')
<div class="mb-4">
<label class="form-label fw-bold">
نام استان
</label>
<input type="text"
name="name"
class="form-control form-control-lg @error('name') is-invalid @enderror"
value="{{ old('name',$province->name) }}"
placeholder="مثلا تهران">
@error('name')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="d-flex justify-content-between">
<a href="{{ route('admin.provinces.index') }}"
class="btn btn-light border px-4">
بازگشت
</a>
<button type="submit"
class="btn btn-warning px-5">
ذخیره تغییرات
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@@ -0,0 +1,170 @@
@extends('admin.layouts.app')
@section('breadcrumb')
<span>
مدیریت استان‌ها
</span>
@endsection
@section('content')
<div class="container-fluid mt-4">
<div class="d-flex justify-content-between align-items-center mb-4">
<div>
<h3 class="fw-bold mb-1">
مدیریت استان‌ها
</h3>
<small class="text-muted">
لیست استان‌های ثبت شده
</small>
</div>
<a href="{{ route('admin.provinces.create') }}"
class="btn btn-primary px-4">
<i class="bi bi-plus-circle"></i>
افزودن استان
</a>
</div>
<div class="card border-0 shadow-sm">
<div class="card-body p-4">
<div class="table-responsive">
<table class="table table-hover align-middle text-center">
<thead class="table-light">
<tr>
<th>
شناسه
</th>
<th>
نام استان
</th>
<th>
تاریخ ثبت
</th>
<th>
عملیات
</th>
</tr>
</thead>
<tbody>
@forelse($provinces as $province)
<tr>
<td>
<span class="badge bg-secondary">
{{ $province->id }}
</span>
</td>
<td class="fw-bold">
{{ $province->name }}
</td>
<td>
{{ $province->created_at?->toJalali()->format('Y/m/d') ?? '-' }}
</td>
<td>
<a href="{{ route('admin.provinces.edit',$province->id) }}"
class="btn btn-sm btn-warning">
ویرایش
</a>
<form action="{{ route('admin.provinces.destroy',$province->id) }}"
method="POST"
class="d-inline">
@csrf
@method('DELETE')
<button class="btn btn-sm btn-danger"
onclick="return confirm('آیا حذف شود؟')">
حذف
</button>
</form>
</td>
</tr>
@empty
<tr>
<td colspan="4"
class="text-muted py-4">
هنوز استانی ثبت نشده است
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
<div class="mt-3">
{{ $provinces->links() }}
</div>
</div>
</div>
</div>
@endsection