fix: update model and sidebar for panel admin
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Enums\AdminStatus;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
|
||||
class Admin extends Authenticatable
|
||||
@@ -9,10 +10,12 @@ class Admin extends Authenticatable
|
||||
protected $table = 'admins';
|
||||
|
||||
protected $fillable = [
|
||||
'first_name',
|
||||
'last_name',
|
||||
'username',
|
||||
'email',
|
||||
'password',
|
||||
'status',
|
||||
'last_login_at',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
@@ -20,7 +23,7 @@ class Admin extends Authenticatable
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'status' => 'int',
|
||||
'status' => AdminStatus::class,
|
||||
'last_login_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,14 +1,87 @@
|
||||
@extends('admin.layouts.app')
|
||||
@section('breadcrumb')<div><h1 class="page-title fw-medium fs-18 mb-1">ایجاد مدیر</h1><span class="text-muted fs-12">اطلاعات مدیر سامانه</span></div>@endsection
|
||||
@section('content')<div class="container-fluid pt-4">@include('admin.partials.errors')
|
||||
<form action="{{ isset($admin) ? route('admin.admins.update',$admin) : route('admin.admins.store') }}" method="POST">@csrf @if(isset($admin)) @method('PUT') @endif
|
||||
<div class="row g-3"><div class="col-xl-8"><div class="card custom-card"><div class="card-header"><div class="card-title">اطلاعات مدیر</div></div><div class="card-body"><div class="row gy-3">
|
||||
<div class="col-md-6"><label class="form-label">نام</label><input class="form-control" name="first_name" value="{{ old('first_name',$admin->first_name ?? '') }}" required></div>
|
||||
<div class="col-md-6"><label class="form-label">نام خانوادگی</label><input class="form-control" name="last_name" value="{{ old('last_name',$admin->last_name ?? '') }}" required></div>
|
||||
<div class="col-md-6"><label class="form-label">ایمیل</label><input type="email" class="form-control" name="email" value="{{ old('email',$admin->email ?? '') }}" required></div>
|
||||
<div class="col-md-6"><label class="form-label">رمز عبور {{ isset($admin) ? '(در صورت تغییر)' : '' }}</label><input type="password" class="form-control" name="password" {{ isset($admin) ? '' : 'required' }}></div>
|
||||
<div class="col-md-6"><label class="form-label">وضعیت</label><select class="form-control" name="status"><option value="1" @selected((string)old('status',$admin->status ?? 1)==='1')>فعال</option><option value="0" @selected((string)old('status',$admin->status ?? 1)==='0')>غیرفعال</option></select></div>
|
||||
</div></div></div></div>
|
||||
<div class="col-xl-4"><div class="card custom-card"><div class="card-header"><div class="card-title">دسترسی مدیر</div></div><div class="card-body"><div class="alert alert-warning fs-12">جدول فعلی admins ستون دسترسی ندارد. برای فعالسازی واقعی دسترسیها باید جدول permissions/roles اضافه شود.</div><div class="form-check form-switch mb-3"><input class="form-check-input" type="checkbox" disabled checked><label class="form-check-label">مدیریت کاربران</label></div><div class="form-check form-switch mb-3"><input class="form-check-input" type="checkbox" disabled checked><label class="form-check-label">مدیریت پرواز و تور</label></div><div class="form-check form-switch mb-3"><input class="form-check-input" type="checkbox" disabled checked><label class="form-check-label">مدیریت رزروها</label></div><div class="form-check form-switch"><input class="form-check-input" type="checkbox" disabled checked><label class="form-check-label">گزارش و لاگ</label></div></div></div></div></div>
|
||||
<div class="card custom-card mt-3"><div class="card-footer d-flex justify-content-end gap-2"><a href="{{ route('admin.admins.index') }}" class="btn btn-light">انصراف</a><button class="btn btn-primary">{{ isset($admin) ? 'ذخیره تغییرات' : 'ثبت مدیر' }}</button></div></div>
|
||||
</form></div>@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="main-content app-content">
|
||||
<div class="container-fluid pt-4">
|
||||
|
||||
@error('general')
|
||||
<span class="text-danger">{{ $message }}</span>
|
||||
@enderror
|
||||
<div class="row">
|
||||
<div class="col-xl-12">
|
||||
<form action="{{ route('admin.admins.store') }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="card custom-card">
|
||||
<div class="card-header">
|
||||
<div class="card-title">ایجاد مدیر</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="row gy-3">
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label">نام</label>
|
||||
<input type="text" class="form-control" name="first_name"
|
||||
value="{{ old('first_name') }}" placeholder="نام را وارد کنید">
|
||||
@error('first_name')
|
||||
<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="last_name"
|
||||
value="{{ old('last_name') }}" placeholder="نام خانوادگی را وارد کنید">
|
||||
@error('last_name')
|
||||
<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="username"
|
||||
value="{{ old('username') }}" placeholder="نام کاربری">
|
||||
@error('username')
|
||||
<span class="text-danger">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label">ایمیل</label>
|
||||
<input type="email" class="form-control" name="email" value="{{ old('email') }}"
|
||||
placeholder="ایمیل را وارد کنید">
|
||||
@error('email')
|
||||
<span class="text-danger">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label">رمز عبور</label>
|
||||
<input type="password" class="form-control" name="password"
|
||||
placeholder="رمز عبور را وارد کنید">
|
||||
@error('password')
|
||||
<span class="text-danger">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label">وضعیت</label>
|
||||
<select class="form-control" name="status">
|
||||
<option value="1"
|
||||
@selected(\App\Enums\AdminStatus::ENABLE)>
|
||||
فعال
|
||||
</option>
|
||||
<option value="0"
|
||||
@selected(\App\Enums\AdminStatus::DISABLE)>
|
||||
غیرفعال
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card-footer text-end">
|
||||
<button type="submit" class="btn btn-primary">ثبت اطلاعات</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,14 +1,144 @@
|
||||
@extends('admin.layouts.app')
|
||||
@section('breadcrumb')<div><h1 class="page-title fw-medium fs-18 mb-1">{{ isset($admin) ? 'ویرایش مدیر' : 'ایجاد مدیر' }}</h1><span class="text-muted fs-12">اطلاعات مدیر سامانه</span></div>@endsection
|
||||
@section('content')<div class="container-fluid pt-4">@include('admin.partials.errors')
|
||||
<form action="{{ isset($admin) ? route('admin.admins.update',$admin) : route('admin.admins.store') }}" method="POST">@csrf @if(isset($admin)) @method('PUT') @endif
|
||||
<div class="row g-3"><div class="col-xl-8"><div class="card custom-card"><div class="card-header"><div class="card-title">اطلاعات مدیر</div></div><div class="card-body"><div class="row gy-3">
|
||||
<div class="col-md-6"><label class="form-label">نام</label><input class="form-control" name="first_name" value="{{ old('first_name',$admin->first_name ?? '') }}" required></div>
|
||||
<div class="col-md-6"><label class="form-label">نام خانوادگی</label><input class="form-control" name="last_name" value="{{ old('last_name',$admin->last_name ?? '') }}" required></div>
|
||||
<div class="col-md-6"><label class="form-label">ایمیل</label><input type="email" class="form-control" name="email" value="{{ old('email',$admin->email ?? '') }}" required></div>
|
||||
<div class="col-md-6"><label class="form-label">رمز عبور {{ isset($admin) ? '(در صورت تغییر)' : '' }}</label><input type="password" class="form-control" name="password" {{ isset($admin) ? '' : 'required' }}></div>
|
||||
<div class="col-md-6"><label class="form-label">وضعیت</label><select class="form-control" name="status"><option value="1" @selected((string)old('status',$admin->status ?? 1)==='1')>فعال</option><option value="0" @selected((string)old('status',$admin->status ?? 1)==='0')>غیرفعال</option></select></div>
|
||||
</div></div></div></div>
|
||||
<div class="col-xl-4"><div class="card custom-card"><div class="card-header"><div class="card-title">دسترسی مدیر</div></div><div class="card-body"><div class="alert alert-warning fs-12">جدول فعلی admins ستون دسترسی ندارد. برای فعالسازی واقعی دسترسیها باید جدول permissions/roles اضافه شود.</div><div class="form-check form-switch mb-3"><input class="form-check-input" type="checkbox" disabled checked><label class="form-check-label">مدیریت کاربران</label></div><div class="form-check form-switch mb-3"><input class="form-check-input" type="checkbox" disabled checked><label class="form-check-label">مدیریت پرواز و تور</label></div><div class="form-check form-switch mb-3"><input class="form-check-input" type="checkbox" disabled checked><label class="form-check-label">مدیریت رزروها</label></div><div class="form-check form-switch"><input class="form-check-input" type="checkbox" disabled checked><label class="form-check-label">گزارش و لاگ</label></div></div></div></div></div>
|
||||
<div class="card custom-card mt-3"><div class="card-footer d-flex justify-content-end gap-2"><a href="{{ route('admin.admins.index') }}" class="btn btn-light">انصراف</a><button class="btn btn-primary">{{ isset($admin) ? 'ذخیره تغییرات' : 'ثبت مدیر' }}</button></div></div>
|
||||
</form></div>@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="main-content app-content">
|
||||
<div class="container-fluid pt-4">
|
||||
|
||||
@error('general')
|
||||
<span class="text-danger">{{ $message }}</span>
|
||||
@enderror
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xl-12">
|
||||
|
||||
<form action="{{ route('admin.admins.update', $admin->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-3">
|
||||
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label">نام</label>
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
name="first_name"
|
||||
value="{{ old('first_name', $admin->first_name) }}"
|
||||
placeholder="نام را وارد کنید">
|
||||
|
||||
@error('first_name')
|
||||
<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="last_name"
|
||||
value="{{ old('last_name', $admin->last_name) }}"
|
||||
placeholder="نام خانوادگی را وارد کنید">
|
||||
|
||||
@error('last_name')
|
||||
<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="username"
|
||||
value="{{ old('username', $admin->username) }}"
|
||||
placeholder="نام کاربری">
|
||||
|
||||
@error('username')
|
||||
<span class="text-danger">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label">ایمیل</label>
|
||||
<input
|
||||
type="email"
|
||||
class="form-control"
|
||||
name="email"
|
||||
value="{{ old('email', $admin->email) }}"
|
||||
placeholder="ایمیل را وارد کنید">
|
||||
|
||||
@error('email')
|
||||
<span class="text-danger">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label">رمز عبور جدید</label>
|
||||
<input
|
||||
type="password"
|
||||
class="form-control"
|
||||
name="password"
|
||||
placeholder="در صورت عدم تغییر خالی بگذارید">
|
||||
|
||||
@error('password')
|
||||
<span class="text-danger">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label">وضعیت</label>
|
||||
|
||||
<select class="form-control" name="status">
|
||||
|
||||
<option
|
||||
value="1"
|
||||
@selected(old('status', $admin->status) == 1)>
|
||||
فعال
|
||||
</option>
|
||||
|
||||
<option
|
||||
value="0"
|
||||
@selected(old('status', $admin->status) == 0)>
|
||||
غیرفعال
|
||||
</option>
|
||||
|
||||
</select>
|
||||
|
||||
@error('status')
|
||||
<span class="text-danger">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-footer text-end">
|
||||
<a
|
||||
href="{{ route('admin.admins.index') }}"
|
||||
class="btn btn-light">
|
||||
انصراف
|
||||
</a>
|
||||
|
||||
<button type="submit" class="btn btn-primary">
|
||||
ذخیره تغییرات
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<!-- Start::slide -->
|
||||
<li class="slide ">
|
||||
<a href=""
|
||||
class="side-menu__item ">
|
||||
class="side-menu__item {{activeAdminSidebar(['admin.users.index', 'admin.users.edit', 'admin.users.show'])}}">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="side-menu__icon" width="1em"
|
||||
height="1em" viewBox="0 0 24 24">
|
||||
@@ -69,7 +69,7 @@
|
||||
<!-- Start::slide -->
|
||||
<li class="slide ">
|
||||
<a href=""
|
||||
class="side-menu__item">
|
||||
class="side-menu__item {{activeAdminSidebar(['admin.orders.index' , 'admin.orders.shoe', 'admin.orders.edit'])}}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="side-menu__icon" width="1em"
|
||||
height="1em" viewBox="0 0 24 24">
|
||||
<path fill="none" stroke="currentColor" stroke-linecap="round"
|
||||
@@ -121,7 +121,7 @@
|
||||
|
||||
<!-- Start::slide -->
|
||||
<li class="slide active">
|
||||
<a href=""
|
||||
<a href="{{route('admin.admins.index')}}"
|
||||
class="side-menu__item {{activeAdminSidebar(['admin.admins.index','admin.admins.show', 'admin.admins.edit', 'admin.admins.create'])}}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
class="side-menu__icon"
|
||||
|
||||
Reference in New Issue
Block a user