git commit "add dynamic settings management"

This commit is contained in:
2026-08-20 13:12:51 +03:30
parent c04879b0d6
commit 598be63d71
17 changed files with 972 additions and 642 deletions
@@ -1,132 +0,0 @@
@extends('admin.layouts.app')
@section('content')
<div class="container mt-4">
<div class="card shadow">
<div class="card-body">
<h3 class="mb-4">
افزودن مدیر جدید
</h3>
<form action="{{ route('admin.admins.store') }}" method="POST">
@csrf
<div class="row">
<div class="col-md-6 mb-3">
<label>نام</label>
<input
type="text"
name="first_name"
class="form-control"
value="{{old('first_name')}}"
>
@error('first_name')
<small class="text-danger">
{{$message}}
</small>
@enderror
</div>
<div class="col-md-6 mb-3">
<label>نام خانوادگی</label>
<input
type="text"
name="last_name"
class="form-control"
value="{{old('last_name')}}"
>
</div>
<div class="col-md-6 mb-3">
<label>نام کاربری</label>
<input
type="text"
name="username"
class="form-control"
>
</div>
<div class="col-md-6 mb-3">
<label>ایمیل</label>
<input
type="email"
name="email"
class="form-control"
>
</div>
<div class="col-md-6 mb-3">
<label>موبایل</label>
<input
type="text"
name="mobile"
class="form-control"
>
</div>
<div class="col-md-6 mb-3">
<label>رمز عبور</label>
<input
type="password"
name="password"
class="form-control"
>
</div>
<div class="col-md-6 mb-3">
<label>وضعیت</label>
<select name="status" class="form-control">
<option value="1">
فعال
</option>
<option value="0">
غیرفعال
</option>
</select>
</div>
</div>
<button class="btn btn-success">
ذخیره
</button>
</form>
</div>
</div>
</div>
@endsection
-162
View File
@@ -1,162 +0,0 @@
@extends('admin.layouts.app')
@section('content')
<div class="container mt-4">
<div class="card shadow">
<div class="card-body">
<h3 class="mb-4">
ویرایش مدیر
</h3>
<div class="mb-3">
<label class="form-label">
نقش‌ها
</label>
@foreach($roles as $role)
<div class="form-check">
<input
class="form-check-input"
type="checkbox"
name="roles[]"
value="{{ $role->id }}"
@checked(
$admin->roles->contains($role->id)
)
>
<label class="form-check-label">
{{ $role->name }}
</label>
</div>
@endforeach
</div>
<form action="{{ route('admin.admins.update', $admin->id) }}" method="POST">
@csrf
@method('PUT')
<div class="row">
<div class="col-md-6 mb-3">
<label>نام</label>
<input
type="text"
name="first_name"
class="form-control"
value="{{old('first_name')}}"
>
@error('first_name')
<small class="text-danger">
{{$message}}
</small>
@enderror
</div>
<div class="col-md-6 mb-3">
<label>نام خانوادگی</label>
<input
type="text"
name="last_name"
class="form-control"
value="{{old('last_name')}}"
>
</div>
<div class="col-md-6 mb-3">
<label>نام کاربری</label>
<input
type="text"
name="username"
class="form-control"
>
</div>
<div class="col-md-6 mb-3">
<label>ایمیل</label>
<input
type="email"
name="email"
class="form-control"
>
</div>
<div class="col-md-6 mb-3">
<label>موبایل</label>
<input
type="text"
name="mobile"
class="form-control"
>
</div>
<div class="col-md-6 mb-3">
<label>رمز عبور</label>
<input
type="password"
name="password"
class="form-control"
>
</div>
<div class="col-md-6 mb-3">
<label>وضعیت</label>
<select name="status" class="form-control">
<option value="1">
فعال
</option>
<option value="0">
غیرفعال
</option>
</select>
</div>
</div>
<button class="btn btn-success">
ذخیره
</button>
</form>
</div>
</div>
</div>
@endsection
@@ -1,209 +0,0 @@
@extends('admin.layouts.app')
@section('breadcrumb')
<span>
مدیریت مدیران
</span>
@endsection
@section('content')
<div class="container mt-4">
<div class="d-flex justify-content-between align-items-center mb-3">
<h5 class="mb-0">
لیست مدیران
</h5>
<a href="{{ route('admin.admins.create') }}" class="btn btn-primary">
افزودن مدیر جدید
</a>
</div>
<div class="card shadow-sm mb-3">
<div class="card-body">
<form method="GET" action="{{ route('admin.admins.index') }}">
<div class="row g-2">
<div class="col-md-5">
<input
type="text"
name="keyword"
value="{{ request('keyword') }}"
class="form-control"
placeholder="جستجو بر اساس نام..."
>
</div>
<div class="col-md-3">
<select
class="form-control"
name="sort"
onchange="this.form.submit()"
>
<option value="">
مرتب‌سازی بر اساس
</option>
<option value="first_name_asc"
{{ request('sort') == 'first_name_asc' ? 'selected' : '' }}>
نام (الف - ی)
</option>
<option value="first_name_desc"
{{ request('sort') == 'first_name_desc' ? 'selected' : '' }}>
نام (ی - الف)
</option>
<option value="newest"
{{ request('sort') == 'newest' ? 'selected' : '' }}>
جدیدترین
</option>
</select>
</div>
<div class="col-md-2">
<button class="btn btn-primary w-100">
جستجو
</button>
</div>
</div>
</form>
</div>
</div>
<div class="card shadow">
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-hover text-center align-middle">
<thead class="table-light">
<tr>
<th>شناسه</th>
<th>نام</th>
<th>نام خانوادگی</th>
<th>نام کاربری</th>
<th>ایمیل</th>
<th>وضعیت</th>
<th>عملیات</th>
</tr>
</thead>
<tbody>
@forelse($admins as $admin)
<tr>
<td>{{ $admin->id }}</td>
<td>{{ $admin->first_name }}</td>
<td>{{ $admin->last_name }}</td>
<td>{{ $admin->username }}</td>
<td>{{ $admin->email }}</td>
<td>
@if($admin->status)
<span class="badge bg-success">
فعال
</span>
@else
<span class="badge bg-danger">
غیرفعال
</span>
@endif
</td>
<td>
<a href="{{ route('admin.admins.edit', $admin->id) }}"
class="btn btn-sm btn-warning">
ویرایش
</a>
<form action="{{ route('admin.admins.destroy', $admin->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="7">
رکوردی پیدا نشد
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
{{ $admins->links() }}
</div>
</div>
</div>
@endsection
@@ -96,6 +96,14 @@
مدیریت شهرستان ها </a>
</li>
<li class="nav-item mb-2">
<a href="{{ route('admin.settings.index') }}"
class="nav-link text-white">
تنظیمات </a>
</li>
@@ -1,3 +0,0 @@
<div>
<!-- He who is contented is rich. - Laozi -->
</div>
@@ -0,0 +1,136 @@
@extends('admin.layouts.app')
@section('breadcrumb')
<div>
<h1 class="page-title fw-medium fs-18 mb-2">
ایجاد تنظیم
</h1>
<nav>
<ol class="breadcrumb mb-0">
<li class="breadcrumb-item">
<a href="javascript:void(0)">
مدیریت تنظیمات
</a>
</li>
<li class="breadcrumb-item active">
ایجاد تنظیم
</li>
</ol>
</nav>
</div>
@endsection
@section('content')
<div class="row">
<div class="col-xl-12">
<form action="{{ route('admin.settings.store') }}"
method="POST">
@csrf
<div class="card custom-card">
<div class="card-header">
<div class="card-title">
ایجاد تنظیم
</div>
</div>
<div class="card-body">
<div class="row gy-4">
<div class="col-xl-6">
<label class="form-label">
کلید تنظیم
</label>
<input
type="text"
class="form-control"
name="code"
placeholder="مثلا site_name"
value="{{ old('code') }}"
>
@error('code')
<span class="text-danger">
{{ $message }}
</span>
@enderror
</div>
<div class="col-xl-6">
<label class="form-label">
مقدار
</label>
<input
type="text"
class="form-control"
name="value"
placeholder="مقدار تنظیم"
value="{{ old('value') }}"
>
@error('value')
<span class="text-danger">
{{ $message }}
</span>
@enderror
</div>
</div>
</div>
<div class="card-footer text-end">
<button type="submit"
class="btn btn-primary">
ایجاد تنظیم
</button>
</div>
</div>
</form>
</div>
</div>
@endsection
@@ -0,0 +1,144 @@
@extends('admin.layouts.app')
@section('breadcrumb')
<div>
<h1 class="page-title fw-medium fs-18 mb-2">
ویرایش تنظیم
</h1>
<nav>
<ol class="breadcrumb mb-0">
<li class="breadcrumb-item">
<a href="javascript:void(0)">
مدیریت تنظیمات
</a>
</li>
<li class="breadcrumb-item active">
ویرایش تنظیم
</li>
</ol>
</nav>
</div>
@endsection
@section('content')
<div class="main-content app-content">
<div class="container-fluid pt-4">
<div class="row">
<div class="col-xl-12">
<form action="{{ route('admin.settings.update',$setting->id) }}"
method="POST">
@csrf
@method('PUT')
<div class="card custom-card">
<div class="card-header">
<div class="card-title">
ویرایش تنظیم
</div>
</div>
<div class="card-body">
<div class="row gy-4">
<div class="col-xl-6">
<label class="form-label">
کلید تنظیم
</label>
<input
type="text"
class="form-control"
name="code"
placeholder="مثلا site_name"
value="{{ old('code',$setting->key) }}"
>
@error('code')
<span class="text-danger">
{{ $message }}
</span>
@enderror
</div>
<div class="col-xl-6">
<label class="form-label">
مقدار
</label>
<input
type="text"
class="form-control"
name="value"
placeholder="مقدار تنظیم"
value="{{ old('value',$setting->value) }}"
>
@error('value')
<span class="text-danger">
{{ $message }}
</span>
@enderror
</div>
</div>
</div>
<div class="card-footer text-end">
<button type="submit"
class="btn btn-primary">
ذخیره تغییرات
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
@@ -0,0 +1,200 @@
@extends('admin.layouts.app')
@section('breadcrumb')
<div>
<h1 class="page-title fw-medium fs-18 mb-2">
لیست تنظیمات
</h1>
<nav>
<ol class="breadcrumb mb-0">
<li class="breadcrumb-item">
<a href="javascript:void(0)">
مدیریت تنظیمات
</a>
</li>
<li class="breadcrumb-item active">
لیست تنظیمات
</li>
</ol>
</nav>
</div>
@endsection
@section('content')
<div class="card custom-card">
<div class="card-header d-flex justify-content-between align-items-center">
<div class="card-title">
لیست تنظیمات
</div>
<a href="{{ route('admin.settings.create') }}"
class="btn btn-primary">
ایجاد تنظیمات
</a>
</div>
<div class="card-body">
<form method="GET" class="mb-4">
<div class="row g-2 align-items-center">
<div class="col-md-5">
<input
type="text"
name="keyword"
class="form-control"
placeholder="جستجو تنظیمات..."
value="{{ request('keyword') }}"
>
</div>
<div class="col-md-2">
<button class="btn btn-primary w-100"
type="submit">
جستجو
</button>
</div>
</div>
</form>
<div class="table-responsive">
<table class="table table-bordered table-hover text-center align-middle">
<thead class="table-light">
<tr>
<th>
کلید تنظیم
</th>
<th>
مقدار
</th>
<th>
تاریخ ثبت
</th>
<th>
عملیات
</th>
</tr>
</thead>
<tbody>
@forelse($settings as $setting)
<tr>
<td>
{{ $setting->code }}
</td>
<td>
{{ $setting->value }}
</td>
<td>
{{ $setting->created_at->toJalali()->format('Y/m/d') }}
</td>
<td>
<a href="{{ route('admin.settings.edit',$setting->id) }}"
class="btn btn-warning btn-sm">
ویرایش
</a>
<form action="{{ route('admin.settings.destroy',$setting->id) }}"
method="POST"
class="d-inline">
@csrf
@method('DELETE')
<button class="btn btn-danger btn-sm">
حذف
</button>
</form>
</td>
</tr>
@empty
<tr>
<td colspan="4">
تنظیماتی ثبت نشده است.
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
<div class="mt-3">
{{ $settings->links() }}
</div>
</div>
</div>
@endsection