feat: add admin blade views for admins airports, auth, comments, favorites, flights, payments, settings, sliders, tours, travel_types, users

This commit is contained in:
2026-08-17 07:58:02 +03:30
parent cecb00fbb6
commit 3fa5322e91
39 changed files with 2182 additions and 0 deletions
@@ -0,0 +1,3 @@
<div>
<!-- Nothing worth having comes easy. - Theodore Roosevelt -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- He who is contented is rich. - Laozi -->
</div>
@@ -0,0 +1,285 @@
@extends('admin.layouts.app')
@section('title', 'مدیریت مدیران')
@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="{{ route('admin.dashboard.index') }}">
داشبورد
</a>
</li>
<li class="breadcrumb-item active">
مدیریت مدیران
</li>
</ol>
</nav>
</div>
@endsection
@section('content')
<div class="container-fluid pt-4">
{{-- عنوان و عملیات --}}
<div class="row">
<div class="col-xl-12">
<div class="card custom-card">
<div class="card-body p-3">
<div class="d-flex align-items-center justify-content-between flex-wrap gap-3">
<div>
<h5 class="mb-1">
لیست مدیران
</h5>
<p class="text-muted mb-0 fs-12">
مدیریت مدیران پنل آژانس هواپیمایی
</p>
</div>
<div>
<a href="{{ route('admin.admins.create') }}"
class="btn btn-primary">
<i class="ri-add-line me-1"></i>
ایجاد مدیر جدید
</a>
</div>
</div>
</div>
</div>
</div>
</div>
{{-- جدول مدیران --}}
<div class="row">
<div class="col-xl-12">
<div class="card custom-card">
<div class="table-responsive">
<table class="table text-nowrap table-bordered">
<thead>
<tr>
<th>
#
</th>
<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>
<span class="fw-semibold">
{{ $admin->full_name }}
</span>
</td>
<td>
<span class="text-muted">
{{ $admin->username }}
</span>
</td>
<td>
{{ $admin->email }}
</td>
<td>
{{ $admin->mobile }}
</td>
<td>
@if((int) $admin->status === 1)
<span class="badge bg-success-transparent">
فعال
</span>
@else
<span class="badge bg-danger-transparent">
غیرفعال
</span>
@endif
</td>
<td>
{{ optional($admin->created_at)->format('Y/m/d') }}
</td>
<td>
<div class="hstack gap-2 fs-15">
<a href="{{ route('admin.admins.edit', $admin) }}"
class="btn btn-secondary-light btn-icon btn-sm">
<i class="ti ti-pencil"></i>
</a>
<form action="{{ route('admin.admins.destroy', $admin) }}"
method="POST"
onsubmit="return confirm('آیا از حذف این مدیر مطمئن هستید؟')">
@csrf
@method('DELETE')
<button type="submit"
class="btn btn-danger-light btn-icon btn-sm">
<i class="ri-delete-bin-line"></i>
</button>
</form>
</div>
</td>
</tr>
@empty
<tr>
<td colspan="8" class="text-center py-4">
<div class="text-muted">
مدیری برای نمایش وجود ندارد.
</div>
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
<div class="card-footer">
{{ $admins->links() }}
</div>
</div>
</div>
</div>
</div>
@endsection
@@ -0,0 +1,3 @@
<div>
<!-- Be present above all else. - Naval Ravikant -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Because you are alive, everything is possible. - Thich Nhat Hanh -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- We must ship. - Taylor Otwell -->
</div>
+134
View File
@@ -0,0 +1,134 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ورود مدیران</title>
<style>
body {
margin: 0;
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: #f4f7fb;
font-family: Tahoma, sans-serif;
}
.login-card {
width: 400px;
background: #fff;
padding: 35px;
border-radius: 16px;
box-shadow: 0 10px 35px rgba(0, 0, 0, .08);
}
.login-card h2 {
margin-top: 0;
margin-bottom: 25px;
text-align: center;
}
.form-group {
margin-bottom: 18px;
}
label {
display: block;
margin-bottom: 8px;
}
input {
width: 100%;
box-sizing: border-box;
padding: 12px;
border: 1px solid #ddd;
border-radius: 8px;
}
button {
width: 100%;
padding: 12px;
border: 0;
border-radius: 8px;
background: #0d6efd;
color: white;
cursor: pointer;
}
.error {
color: #dc3545;
font-size: 13px;
margin-top: 5px;
}
</style>
</head>
<body>
<div class="login-card">
<h2>ورود به پنل مدیریت</h2>
<form
action="{{ route('admin.auth.login.post') }}"
method="POST"
>
@csrf
<div class="form-group">
<label for="username">
نام کاربری
</label>
<input
type="text"
id="username"
name="username"
value="{{ old('username') }}"
autocomplete="username"
>
@error('username')
<div class="error">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="password">
رمز عبور
</label>
<input
type="password"
id="password"
name="password"
autocomplete="current-password"
>
@error('password')
<div class="error">
{{ $message }}
</div>
@enderror
</div>
<button type="submit">
ورود
</button>
</form>
</div>
</body>
</html>
@@ -0,0 +1,3 @@
<div>
<!-- Very little is needed to make a happy life. - Marcus Aurelius -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Because you are alive, everything is possible. - Thich Nhat Hanh -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Knowing is not enough; we must apply. Being willing is not enough; we must do. - Leonardo da Vinci -->
</div>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,3 @@
<div>
<!-- Let all your things have their places; let each part of your business have its time. - Benjamin Franklin -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- If you do not have a consistent goal in life, you can not live it in a consistent way. - Marcus Aurelius -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less. - Maria Skłodowska-Curie -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- He who is contented is rich. - Laozi -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- He who is contented is rich. - Laozi -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Well begun is half done. - Aristotle -->
</div>
+131
View File
@@ -0,0 +1,131 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<title>
@yield('title', 'پنل مدیریت')
</title>
{{-- CSS اصلی پروژه --}}
<link rel="stylesheet"
href="{{ asset('assets/admin/css/bootstrap.min.css') }}">
<link rel="stylesheet"
href="{{ asset('assets/admin/css/icons.css') }}">
<link rel="stylesheet"
href="{{ asset('assets/admin/css/style.css') }}">
@stack('styles')
</head>
<body>
<div class="page">
{{-- Sidebar --}}
@include('admin.layouts.sidebar')
<div class="main-content app-content">
{{-- Header --}}
@include('admin.layouts.header')
<main>
{{-- Breadcrumb --}}
@hasSection('breadcrumb')
<div class="page-header-breadcrumb">
@yield('breadcrumb')
</div>
@endif
{{-- Content --}}
@yield('content')
</main>
{{-- Footer --}}
@include('admin.layouts.footer')
</div>
</div>
<script src="{{ asset('assets/admin/js/bootstrap.bundle.min.js') }}"></script>
@stack('scripts')
</body>
</html>
{{--<!DOCTYPE html>--}}
{{--<html lang="fa" dir="rtl">--}}
{{--<head>--}}
{{-- <meta charset="UTF-8">--}}
{{-- <meta name="viewport"--}}
{{-- content="width=device-width, initial-scale=1.0">--}}
{{-- <title>--}}
{{-- @yield('title', 'پنل مدیریت')--}}
{{-- </title>--}}
{{-- --}}{{-- CSS اصلی پروژه --}}
{{-- <link rel="stylesheet"--}}
{{-- href="{{ asset('assets/admin/css/bootstrap.min.css') }}">--}}
{{-- <link rel="stylesheet"--}}
{{-- href="{{ asset('assets/admin/css/icons.css') }}">--}}
{{-- <link rel="stylesheet"--}}
{{-- href="{{ asset('assets/admin/css/style.css') }}">--}}
{{-- @stack('styles')--}}
{{--</head>--}}
{{--<body>--}}
{{--<div class="page">--}}
{{-- --}}{{-- Sidebar --}}
{{-- @include('admin.layouts.sidebar')--}}
{{-- <div class="main-content app-content">--}}
{{-- --}}{{-- Header --}}
{{-- @include('admin.layouts.header')--}}
{{-- <main>--}}
{{-- --}}{{-- Breadcrumb --}}
{{-- @hasSection('breadcrumb')--}}
{{-- <div class="page-header-breadcrumb">--}}
{{-- @yield('breadcrumb')--}}
{{-- </div>--}}
{{-- @endif--}}
{{-- --}}{{-- Content --}}
{{-- @yield('content')--}}
{{-- </main>--}}
{{-- --}}{{-- Footer --}}
{{-- @include('admin.layouts.footer')--}}
{{-- </div>--}}
{{--</div>--}}
{{--<script src="{{ asset('assets/admin/js/bootstrap.bundle.min.js') }}"></script>--}}
{{--@stack('scripts')--}}
{{--</body>--}}
{{--</html>--}}
@@ -0,0 +1,3 @@
<div>
<!-- When there is no desire, all things are at peace. - Laozi -->
</div>
@@ -0,0 +1,127 @@
<header class="app-header">
<div class="container-fluid">
<div class="d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center gap-3">
<button type="button"
class="btn btn-light"
id="sidebarToggle">
<i class="ri-menu-line"></i>
</button>
<span class="fw-semibold">
پنل مدیریت
</span>
</div>
<div class="d-flex align-items-center gap-3">
@auth('admin')
<div class="dropdown">
<button class="btn btn-light dropdown-toggle"
data-bs-toggle="dropdown">
<i class="ri-user-line me-1"></i>
{{ auth('admin')->user()->full_name }}
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item"
href="{{ route('admin.auth.logout') }}">
<i class="ri-logout-box-line me-2"></i>
خروج
</a>
</li>
</ul>
</div>
@endauth
</div>
</div>
</div>
</header>
{{--<header class="app-header">--}}
{{-- <div class="container-fluid">--}}
{{-- <div class="d-flex align-items-center justify-content-between">--}}
{{-- <div class="d-flex align-items-center gap-3">--}}
{{-- <button type="button"--}}
{{-- class="btn btn-light"--}}
{{-- id="sidebarToggle">--}}
{{-- <i class="ri-menu-line"></i>--}}
{{-- </button>--}}
{{-- <span class="fw-semibold">--}}
{{-- پنل مدیریت--}}
{{-- </span>--}}
{{-- </div>--}}
{{-- <div class="d-flex align-items-center gap-3">--}}
{{-- @auth('admin')--}}
{{-- <div class="dropdown">--}}
{{-- <button class="btn btn-light dropdown-toggle"--}}
{{-- data-bs-toggle="dropdown">--}}
{{-- <i class="ri-user-line me-1"></i>--}}
{{-- {{ auth('admin')->user()->full_name }}--}}
{{-- </button>--}}
{{-- <ul class="dropdown-menu">--}}
{{-- <li>--}}
{{-- <a class="dropdown-item"--}}
{{-- href="{{ route('admin.auth.logout') }}">--}}
{{-- <i class="ri-logout-box-line me-2"></i>--}}
{{-- خروج--}}
{{-- </a>--}}
{{-- </li>--}}
{{-- </ul>--}}
{{-- </div>--}}
{{-- @endauth--}}
{{-- </div>--}}
{{-- </div>--}}
{{-- </div>--}}
{{--</header>--}}
@@ -0,0 +1,354 @@
<aside class="app-sidebar sticky" id="sidebar">
{{-- Logo --}}
<div class="main-sidebar-header">
<a href="{{ route('admin.dashboard.index') }}"
class="header-logo">
<span class="text-primary fs-6 fw-bold">
پنل مدیریت آژانس
</span>
</a>
</div>
<div class="main-sidebar">
<nav class="main-menu-container">
<ul class="main-menu">
{{-- Dashboard --}}
<li class="slide">
<a href="{{ route('admin.dashboard.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar(['admin.dashboard.index']) }}">
<svg xmlns="http://www.w3.org/2000/svg"
class="side-menu__icon"
width="1em"
height="1em"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5">
<path d="M3 11.5L12 4l9 7.5"/>
<path d="M5 10v9h14v-9"/>
<path d="M9 19v-5h6v5"/>
</svg>
<span class="side-menu__label">
داشبورد
</span>
</a>
</li>
{{-- سفر و گردشگری --}}
<li class="slide__category">
<span class="category-name">
مدیریت سفر
</span>
</li>
{{-- Tours --}}
<li class="slide">
<a href="{{ route('admin.tours.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.tours.index',
'admin.tours.create',
'admin.tours.show',
'admin.tours.edit'
]) }}">
<i class="ri-map-pin-line side-menu__icon"></i>
<span class="side-menu__label">
مدیریت تورها
</span>
</a>
</li>
{{-- Travel Types --}}
<li class="slide">
<a href="{{ route('admin.travelTypes.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.travelTypes.index',
'admin.travelTypes.create',
'admin.travelTypes.show',
'admin.travelTypes.edit'
]) }}">
<i class="ri-route-line side-menu__icon"></i>
<span class="side-menu__label">
انواع سفر
</span>
</a>
</li>
{{-- Flights --}}
<li class="slide">
<a href="{{ route('admin.flights.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.flights.index',
'admin.flights.create',
'admin.flights.show',
'admin.flights.edit'
]) }}">
<i class="ri-flight-takeoff-line side-menu__icon"></i>
<span class="side-menu__label">
مدیریت پروازها
</span>
</a>
</li>
{{-- Airports --}}
<li class="slide">
<a href="{{ route('admin.airports.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.airports.index',
'admin.airports.create',
'admin.airports.edit'
]) }}">
<i class="ri-building-line side-menu__icon"></i>
<span class="side-menu__label">
مدیریت فرودگاه‌ها
</span>
</a>
</li>
{{-- Users --}}
<li class="slide__category">
<span class="category-name">
کاربران و تعاملات
</span>
</li>
{{-- Users --}}
<li class="slide">
<a href="{{ route('admin.users.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.users.index',
'admin.users.show',
'admin.users.edit'
]) }}">
<i class="ri-user-3-line side-menu__icon"></i>
<span class="side-menu__label">
مدیریت کاربران
</span>
</a>
</li>
{{-- Comments --}}
<li class="slide">
<a href="{{ route('admin.comments.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.comments.index',
'admin.comments.show',
'admin.comments.edit'
]) }}">
<i class="ri-chat-3-line side-menu__icon"></i>
<span class="side-menu__label">
مدیریت نظرات
</span>
</a>
</li>
{{-- Favorites --}}
<li class="slide">
<a href="{{ route('admin.favorites.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.favorites.index',
'admin.favorites.show'
]) }}">
<i class="ri-heart-3-line side-menu__icon"></i>
<span class="side-menu__label">
علاقه‌مندی‌ها
</span>
</a>
</li>
{{-- Financial --}}
<li class="slide__category">
<span class="category-name">
مالی
</span>
</li>
{{-- Payments --}}
<li class="slide">
<a href="{{ route('admin.payments.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.payments.index',
'admin.payments.show'
]) }}">
<i class="ri-bank-card-line side-menu__icon"></i>
<span class="side-menu__label">
مدیریت پرداخت‌ها
</span>
</a>
</li>
{{-- Content --}}
<li class="slide__category">
<span class="category-name">
محتوا
</span>
</li>
{{-- Sliders --}}
{{-- <li class="slide">--}}
{{-- <a href="{{ route('admin.sliders.index') }}"--}}
{{-- class="side-menu__item--}}
{{-- {{ ActiveAdminSidebar([--}}
{{-- 'admin.sliders.index',--}}
{{-- 'admin.sliders.create',--}}
{{-- 'admin.sliders.show',--}}
{{-- 'admin.sliders.edit'--}}
{{-- ]) }}">--}}
{{-- <i class="ri-slideshow-3-line side-menu__icon"></i>--}}
{{-- <span class="side-menu__label">--}}
{{-- مدیریت اسلایدرها--}}
{{-- </span>--}}
{{-- </a>--}}
{{-- </li>--}}
{{-- System --}}
<li class="slide__category">
<span class="category-name">
سیستم
</span>
</li>
{{-- Admins --}}
<li class="slide">
<a href="{{ route('admin.auth.login.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.admins.index',
'admin.admins.create',
'admin.admins.edit'
]) }}">
<i class="ri-admin-line side-menu__icon"></i>
<span class="side-menu__label">
مدیریت مدیران
</span>
</a>
</li>
{{-- Settings --}}
<li class="slide">
<a href="{{ route('admin.settings.index') }}"
class="side-menu__item
{{ ActiveAdminSidebar([
'admin.settings.index'
]) }}">
<i class="ri-settings-3-line side-menu__icon"></i>
<span class="side-menu__label">
تنظیمات
</span>
</a>
</li>
</ul>
</nav>
</div>
</aside>
@@ -0,0 +1,3 @@
<div>
<!-- Let all your things have their places; let each part of your business have its time. - Benjamin Franklin -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Simplicity is an acquired taste. - Katharine Gerould -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Because you are alive, everything is possible. - Thich Nhat Hanh -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- If you do not have a consistent goal in life, you can not live it in a consistent way. - Marcus Aurelius -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Smile, breathe, and go slowly. - Thich Nhat Hanh -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less. - Maria Skłodowska-Curie -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- I have not failed. I've just found 10,000 ways that won't work. - Thomas Edison -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- It always seems impossible until it is done. - Nelson Mandela -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- It is not the man who has too little, but the man who craves more, that is poor. - Seneca -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Nothing worth having comes easy. - Theodore Roosevelt -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Simplicity is an acquired taste. - Katharine Gerould -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Act only according to that maxim whereby you can, at the same time, will that it should become a universal law. - Immanuel Kant -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Well begun is half done. - Aristotle -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Act only according to that maxim whereby you can, at the same time, will that it should become a universal law. - Immanuel Kant -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Well begun is half done. - Aristotle -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- The only way to do great work is to love what you do. - Steve Jobs -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Simplicity is the consequence of refined emotions. - Jean D'Alembert -->
</div>
@@ -0,0 +1,3 @@
<div>
<!-- Live as if you were to die tomorrow. Learn as if you were to live forever. - Mahatma Gandhi -->
</div>