Commit e688e0d8a7d49fac8e7ccc049f8fbf65b395dc67

Authored by Андрей Ларионов
1 parent 90302d3663

Статистика работников и вакансий, сообщения от администратора

Showing 16 changed files with 750 additions and 8 deletions Inline Diff

app/Http/Controllers/Admin/EmployersController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Models\Ad_employer;
6 use App\Models\Answer; 7 use App\Models\Answer;
7 use App\Models\Employer; 8 use App\Models\Employer;
9 use App\Models\Static_ad;
8 use App\Models\User; 10 use App\Models\User;
9 use Illuminate\Http\Request; 11 use Illuminate\Http\Request;
10 use Illuminate\Support\Facades\Storage; 12 use Illuminate\Support\Facades\Storage;
11 use Illuminate\Support\Facades\Validator; 13 use Illuminate\Support\Facades\Validator;
12 14
13 class EmployersController extends Controller 15 class EmployersController extends Controller
14 { 16 {
15 public function index(Request $request) { 17 public function index(Request $request) {
16 if ($request->ajax()) { 18 if ($request->ajax()) {
17 $user = User::find($request->id); 19 $user = User::find($request->id);
18 $request->offsetUnset('id'); 20 $request->offsetUnset('id');
19 $user->update($request->all()); 21 $user->update($request->all());
20 } 22 }
21 23
22 $users = User::where('is_worker', '0')->paginate(15); 24 $users = User::where('is_worker', '0')->paginate(15);
23 if ($request->ajax()) { 25 if ($request->ajax()) {
24 return view('admin.employer.index_ajax', compact('users')); 26 return view('admin.employer.index_ajax', compact('users'));
25 } else { 27 } else {
26 return view('admin.employer.index', compact('users')); 28 return view('admin.employer.index', compact('users'));
27 } 29 }
28 } 30 }
29 31
30 public function form_update_employer(Employer $employer) { 32 public function form_update_employer(Employer $employer) {
31 return view('admin.employer.edit', compact('employer')); 33 return view('admin.employer.edit', compact('employer'));
32 } 34 }
33 35
34 public function update_employer(Employer $employer, Request $request) 36 public function update_employer(Employer $employer, Request $request)
35 { 37 {
36 $params = $request->all(); 38 $params = $request->all();
37 unset($params['logo']); 39 unset($params['logo']);
38 unset($params['telephone']); 40 unset($params['telephone']);
39 unset($params['email']); 41 unset($params['email']);
40 unset($params['address']); 42 unset($params['address']);
41 unset($params['site']); 43 unset($params['site']);
42 44
43 $rules = [ 45 $rules = [
44 'name' => 'required|string|max:255', 46 'name' => 'required|string|max:255',
45 ]; 47 ];
46 48
47 $messages = [ 49 $messages = [
48 'required' => 'Укажите обязательное поле «:attribute»', 50 'required' => 'Укажите обязательное поле «:attribute»',
49 'confirmed' => 'Пароли не совпадают', 51 'confirmed' => 'Пароли не совпадают',
50 'email' => 'Введите корректный email', 52 'email' => 'Введите корректный email',
51 'min' => [ 53 'min' => [
52 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 54 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
53 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 55 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
54 ], 56 ],
55 'max' => [ 57 'max' => [
56 'string' => 'Поле «:attribute» должно быть не больше :max символов', 58 'string' => 'Поле «:attribute» должно быть не больше :max символов',
57 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 59 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
58 ], 60 ],
59 ]; 61 ];
60 62
61 $validator = Validator::make($params, $rules, $messages); 63 $validator = Validator::make($params, $rules, $messages);
62 64
63 if ($validator->fails()) { 65 if ($validator->fails()) {
64 return back()->withErrors($validator)->withInput(); //->route('admin.register') 66 return back()->withErrors($validator)->withInput(); //->route('admin.register')
65 67
66 } else { 68 } else {
67 69
68 //$user = User::find($employer->user_id); 70 //$user = User::find($employer->user_id);
69 $user_id = $employer->user_id; 71 $user_id = $employer->user_id;
70 $employer->telephone = $request->telephone; 72 $employer->telephone = $request->telephone;
71 $employer->email = $request->email; 73 $employer->email = $request->email;
72 $employer->address = $request->address; 74 $employer->address = $request->address;
73 $employer->site = $request->site; 75 $employer->site = $request->site;
74 $employer->text = $request->text; 76 $employer->text = $request->text;
75 77
76 if ($request->has('logo')) { 78 if ($request->has('logo')) {
77 if (!empty($employer->logo)) { 79 if (!empty($employer->logo)) {
78 Storage::delete($employer->logo); 80 Storage::delete($employer->logo);
79 } 81 }
80 $employer->logo = $request->file('logo')->store("employer/$user_id", 'public'); 82 $employer->logo = $request->file('logo')->store("employer/$user_id", 'public');
81 } 83 }
82 $employer->save(); 84 $employer->save();
83 85
84 $user = User::find($user_id); 86 $user = User::find($user_id);
85 $user->update($params); 87 $user->update($params);
86 88
87 return redirect()->route('admin.employer-profile', ['employer' => $employer->id]) 89 return redirect()->route('admin.employer-profile', ['employer' => $employer->id])
88 ->with('success', 'Данные были успешно сохранены'); 90 ->with('success', 'Данные были успешно сохранены');
89 } 91 }
90 } 92 }
91 93
92 // кабинет - отзывы о работодателе для модерации 94 // кабинет - отзывы о работодателе для модерации
93 public function answers(Request $request) { 95 public function answers(Request $request) {
94 if ($request->ajax()) { 96 if ($request->ajax()) {
95 $user = Answer::find($request->id); 97 $user = Answer::find($request->id);
96 $request->offsetUnset('id'); 98 $request->offsetUnset('id');
97 $user->update($request->all()); 99 $user->update($request->all());
98 } 100 }
99 101
100 $answers = Answer::query()->orderByDesc('id')->paginate(15); 102 $answers = Answer::query()->orderByDesc('id')->paginate(15);
101 103
102 if ($request->ajax()) { 104 if ($request->ajax()) {
103 return view('admin.answers.index_ajax', compact('answers')); 105 return view('admin.answers.index_ajax', compact('answers'));
104 } else { 106 } else {
105 return view('admin.answers.index', compact('answers')); 107 return view('admin.answers.index', compact('answers'));
106 } 108 }
107 } 109 }
108 110
109 // кабинет - статистика вакансий работодателя 111 // кабинет - статистика вакансий работодателя
110 public function static_ads() { 112 public function static_ads(Request $request) {
111 return; 113 $stat = Static_ad::with('ads');
114 $ads = Ad_employer::query()->active()->OrderBy('id')->get();
115 $periods = Static_ad::query()->distinct('year_month')->select('year_month')->get();
116 if ($request->ajax()) {
117 if (isset($request->ad_employer_id))
118 if (!$request->ad_employer_id == "0")
119 $stat = $stat->Where('ad_employer_id', '=', $request->ad_employer_id);
120 if (isset($request->year_month)) {
121 if (!$request->year_month == "0")
122 $stat = $stat->Where('year_month', '=', $request->year_month);
123 }
124 }
125
126 $stat = $stat->OrderByDesc('year_month');
127 $stat = $stat->paginate(15);
128
129 if ($request->ajax())
130 return view('admin.static.index_ads_ajax', compact('stat'));
131 else
132 return view('admin.static.index_ads', compact('stat', 'ads', 'periods'));
133
112 } 134 }
113 135
114 136
115 } 137 }
116 138
app/Http/Controllers/Admin/MsgAnswersController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Models\Message; 6 use App\Models\Message;
7 use App\Models\User;
7 use Illuminate\Http\Request; 8 use Illuminate\Http\Request;
9 use Illuminate\Support\Facades\Auth;
10 use Illuminate\Support\Facades\Validator;
8 11
9 class MsgAnswersController extends Controller 12 class MsgAnswersController extends Controller
10 { 13 {
11 public function messages() { 14 public function messages() {
12 $Msgs = Message::query()->orderByDesc('created_at')->paginate(25); 15 $Msgs = Message::query()->orderByDesc('created_at')->paginate(25);
13 16
14 return view('admin.messages', compact('Msgs')); 17 return view('admin.messages', compact('Msgs'));
15 } 18 }
19
20 public function admin_messages(Request $request) {
21 $id_admin = Auth::user()->id;
22 $users = User::query()->OrderBy('name')->get();
23
24 $Msgs = Message::query()->where('user_id', '=', $id_admin)
25 ->orWhere('to_user_id', '=', $id_admin)
26 ->orderByDesc('created_at')->paginate(5);
27
28 return view('admin.message.index', compact('Msgs', 'id_admin', 'users'));
29 }
30
31 public function admin_messages_post(Request $request) {
32 $rules = [
33 'title' => 'required|min:3|max:255',
34 'text' => 'required|min:1'
35 ];
36
37 $messages = [
38 'required' => 'Поле не может быть пустым!',
39 ];
40
41 $validator = Validator::make($request->all(), $rules, $messages);
42
43 if ($validator->fails()) {
44 return redirect()->route('admin.admin-messages')->withErrors($validator);
45 } else {
46 $params = $request->all();
47 $id_admin = Auth::user()->id;
48 if ($request->has('file')) {
49 $params['file'] = $request->file('file')->store("upload/".$id_admin, 'public');
50 }
51 Message::create($params);
52 return redirect()->route('admin.admin-messages');
53 }
54 }
16 } 55 }
17 56
app/Http/Controllers/Admin/WorkersController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Models\Static_worker;
6 use App\Models\User; 7 use App\Models\User;
7 use App\Models\Worker; 8 use App\Models\Worker;
8 use Illuminate\Http\Request; 9 use Illuminate\Http\Request;
9 10
10 class WorkersController extends Controller 11 class WorkersController extends Controller
11 { 12 {
12 public function index(Request $request) { 13 public function index(Request $request) {
13 if ($request->ajax()) { 14 if ($request->ajax()) {
14 $user = User::find($request->id); 15 $user = User::find($request->id);
15 $request->offsetUnset('id'); 16 $request->offsetUnset('id');
16 $user->update($request->all()); 17 $user->update($request->all());
17 } 18 }
18 19
19 $users = User::where('is_worker', '1')->paginate(15); 20 $users = User::where('is_worker', '1')->paginate(15);
20 21
21 if ($request->ajax()) { 22 if ($request->ajax()) {
22 return view('admin.worker.index_ajax', compact('users')); 23 return view('admin.worker.index_ajax', compact('users'));
23 } else { 24 } else {
24 return view('admin.worker.index', compact('users')); 25 return view('admin.worker.index', compact('users'));
25 } 26 }
26 } 27 }
27 28
28 public function form_update_worker(Worker $worker) { 29 public function form_update_worker(Worker $worker) {
29 return view('admin.worker.edit'); 30 return view('admin.worker.edit');
30 } 31 }
31 32
32 // кабинет - статистика работников 33 // кабинет - статистика работников
33 public function static_workers() { 34 public function static_workers(Request $request) {
34 return; 35 $stat = Static_worker::with('users');
36 //->join('users', 'users.id', '=', 'static_workers.user_id');
37 $users = User::query()->active()->OrderBy('id')->get();
38 $periods = Static_worker::query()->distinct('year_month')->select('year_month')->get();
39 if ($request->ajax()) {
40 if (isset($request->user_id))
41 if (!$request->user_id == "0")
42 $stat = $stat->Where('user_id', '=', $request->user_id);
43 if (isset($request->year_month)) {
44 if (!$request->year_month == "0")
45 $stat = $stat->Where('year_month', '=', $request->year_month);
46 }
47 }
48
49 $stat = $stat->OrderByDesc('year_month');
50 //->OrderBy('users.name');
51 //OrderBy('users.name')->
52 /*$stat->implode() loadMissing(['users' => function (Builder $query) {
53 $query->orderBy('name', 'asc');
54 }]);*/
55
56 $stat = $stat->paginate(15);
57
58 if ($request->ajax())
59 return view('admin.static.index_workers_ajax', compact('stat'));
60 else
61 return view('admin.static.index_workers', compact('stat', 'users', 'periods'));
62
35 } 63 }
36 64
37 } 65 }
38 66
app/Models/Message.php
1 <?php 1 <?php
2 2
3 namespace App\Models; 3 namespace App\Models;
4 4
5 use Illuminate\Database\Eloquent\Factories\HasFactory; 5 use Illuminate\Database\Eloquent\Factories\HasFactory;
6 use Illuminate\Database\Eloquent\Model; 6 use Illuminate\Database\Eloquent\Model;
7 7
8 class Message extends Model 8 class Message extends Model
9 { 9 {
10 use HasFactory; 10 use HasFactory;
11 11
12 protected $fillable = [
13 'user_id',
14 'to_user_id',
15 'text',
16 'file',
17 'flag_new'
18 ];
19
20
12 /* 21 /*
13 * Связь таблицы Message с таблицей User (Отправитель) 22 * Связь таблицы Message с таблицей User (Отправитель)
14 */ 23 */
15 public function user_from() { 24 public function user_from() {
16 return $this->belongsTo(User::class, 'user_id'); 25 return $this->belongsTo(User::class, 'user_id');
17 } 26 }
18 27
19 /* 28 /*
20 * Связь таблицы Message с таблицей User (Получатель) 29 * Связь таблицы Message с таблицей User (Получатель)
21 */ 30 */
22 public function user_to() { 31 public function user_to() {
23 return $this->belongsTo(User::class, 'to_user_id'); 32 return $this->belongsTo(User::class, 'to_user_id');
24 } 33 }
25 34
26 /* 35 /*
27 * Связь модели Сообщения (Message) с моделью Отклик на Вакансию (Ad_response) 36 * Связь модели Сообщения (Message) с моделью Отклик на Вакансию (Ad_response)
28 */ 37 */
29 public function response() { 38 public function response() {
30 return $this->hasMany(ad_response::class); 39 return $this->hasMany(ad_response::class);
31 } 40 }
32 } 41 }
33 42
app/Models/Static_ad.php
1 <?php 1 <?php
2 2
3 namespace App\Models; 3 namespace App\Models;
4 4
5 use Illuminate\Database\Eloquent\Factories\HasFactory; 5 use Illuminate\Database\Eloquent\Factories\HasFactory;
6 use Illuminate\Database\Eloquent\Model; 6 use Illuminate\Database\Eloquent\Model;
7 7
8 class Static_ad extends Model 8 class Static_ad extends Model
9 { 9 {
10 use HasFactory; 10 use HasFactory;
11
12 protected $fillable = [
13 'ad_employer_id',
14 'lookin',
15 'year_month',
16 'message',
17 'old_lookin',
18 'old_message'
19 ];
20
21 /*
22 * Связь таблицы ad_employers с таблицей static_ads
23 многие-к-одному
24 */
25 public function ads() {
26 return $this->belongsTo(Ad_employer::class, 'ad_employer_id');
27 }
11 } 28 }
12 29
app/Models/Static_worker.php
1 <?php 1 <?php
2 2
3 namespace App\Models; 3 namespace App\Models;
4 4
5 use Illuminate\Database\Eloquent\Factories\HasFactory; 5 use Illuminate\Database\Eloquent\Factories\HasFactory;
6 use Illuminate\Database\Eloquent\Model; 6 use Illuminate\Database\Eloquent\Model;
7 7
8 class Static_worker extends Model 8 class Static_worker extends Model
9 { 9 {
10 use HasFactory; 10 use HasFactory;
11
12 protected $fillable = [
13 'user_id',
14 'lookin',
15 'year_month',
16 'message',
17 'old_lookin',
18 'old_message'
19 ];
20
21 /*
22 * Связь таблицы users с таблицей static_workers
23 многие-к-одному
24 */
25 public function users() {
26 return $this->belongsTo(User::class, 'user_id');
27 }
28
11 } 29 }
12 30
database/migrations/2023_09_15_070116_alter_static_workers_table.php
File was created 1 <?php
2
3 use Illuminate\Database\Migrations\Migration;
4 use Illuminate\Database\Schema\Blueprint;
5 use Illuminate\Support\Facades\Schema;
6
7 return new class extends Migration
8 {
9 /**
10 * Run the migrations.
11 *
12 * @return void
13 */
14 public function up()
15 {
16 Schema::table('static_workers', function (Blueprint $table) {
17 $table->integer('old_lookin')->default(0);
18 $table->integer('old_message')->default(0);
19 });
20 }
21
22 /**
23 * Reverse the migrations.
24 *
25 * @return void
26 */
27 public function down()
28 {
29 Schema::table('static_workers', function (Blueprint $table) {
30 $table->dropColumn('old_lookin');
31 $table->dropColumn('old_message');
32 });
33 }
34 };
35
database/migrations/2023_09_15_070215_alter_static_ads_table.php
File was created 1 <?php
2
3 use Illuminate\Database\Migrations\Migration;
4 use Illuminate\Database\Schema\Blueprint;
5 use Illuminate\Support\Facades\Schema;
6
7 return new class extends Migration
8 {
9 /**
10 * Run the migrations.
11 *
12 * @return void
13 */
14 public function up()
15 {
16 Schema::table('static_ads', function (Blueprint $table) {
17 $table->integer('old_lookin')->default(0);
18 $table->integer('old_message')->default(0);
19 });
20 }
21
22 /**
23 * Reverse the migrations.
24 *
25 * @return void
26 */
27 public function down()
28 {
29 Schema::table('static_ads', function (Blueprint $table) {
30 $table->dropColumn('old_lookin');
31 $table->dropColumn('old_message');
32 });
33 }
34 };
35
database/migrations/2023_09_15_071013_alter_messages_table.php
File was created 1 <?php
2
3 use Illuminate\Database\Migrations\Migration;
4 use Illuminate\Database\Schema\Blueprint;
5 use Illuminate\Support\Facades\Schema;
6
7 return new class extends Migration
8 {
9 /**
10 * Run the migrations.
11 *
12 * @return void
13 */
14 public function up()
15 {
16 Schema::table('messages', function (Blueprint $table) {
17 $table->boolean('flag_new')->default(1);
18 });
19 }
20
21 /**
22 * Reverse the migrations.
23 *
24 * @return void
25 */
26 public function down()
27 {
28 Schema::table('messages', function (Blueprint $table) {
29 $table->dropColumn('flag_new');
30 });
31 }
32 };
33
resources/views/admin/message/index.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Сообщения адмистратора'])
2
3 @section('script')
4 @endsection
5
6 @section('search')
7 <!--<div class="absolute inset-y-0 flex items-center pl-2">
8 <svg
9 class="w-4 h-4"
10 aria-hidden="true"
11 fill="currentColor"
12 viewBox="0 0 20 20"
13 >
14 <path
15 fill-rule="evenodd"
16 d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
17 clip-rule="evenodd"
18 ></path>
19 </svg>
20 </div>
21 <form action="" method="POST">
22 <div style="float:left;"><input
23 class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
24 style="width: 400px"
25 type="text"
26 placeholder="Искать компанию или вакансию"
27 aria-label="Search"
28 /></div>
29 <div style="float: left">
30 <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Поиск</button>
31 </div>
32 </form>-->
33 @endsection
34
35 @section('content')
36 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
37 <div class="w-full overflow-x-auto">
38 <table class="w-full whitespace-no-wrap">
39 <thead>
40 <tr
41 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
42 >
43 <th class="px-4 py-3">№</th>
44 <th class="px-4 py-3">От юзера</th>
45 <th class="px-4 py-3">К юзеру</th>
46 <th class="px-4 py-3">Текст</th>
47 <th class="px-4 py-3">Дата</th>
48 </tr>
49 </thead>
50 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
51 @foreach($Msgs as $msg)
52 <tr class="text-gray-700 dark:text-gray-400">
53 <td class="px-4 py-3">
54 {{$msg->id}}
55 </td>
56 <td class="px-4 py-3">
57 {{$msg->user_from->name}} ({{$msg->user_from->id}})
58 </td>
59 <td class="px-4 py-3">
60 {{$msg->user_to->name}} ({{$msg->user_to->id}})
61 </td>
62 <td class="px-4 py-3">
63 {{$msg->title}}
64 <div class="flex items-center text-sm">
65 <textarea cols="7" style="width:250px;">{{ $msg->text }}</textarea>
66 </div>
67 </td>
68 <td class="px-4 py-3 text-sm">
69 {{ $msg->created_at }}
70 </td>
71 </tr>
72 @endforeach
73 </tbody>
74 </table>
75 </div>
76
77 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
78 <?=$Msgs->appends($_GET)->links('admin.pagginate'); ?>
79 </div>
80 </div><br>
81
82 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block2">
83
84 <form method="POST" action="{{ route('admin.admin-messages-post') }}" enctype="multipart/form-data">
85 @csrf
86 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
87 <h3 class="text-gray-700 dark:text-gray-400">Отправка сообщения</h3>
88 <hr>
89 <label for="ad_employer_id" class="block text-sm">
90 <input type="hidden" name="user_id" id="user_id" value="{{ $id_admin }}"/>
91
92 <span class="text-gray-700 dark:text-gray-400">Кому:</span>
93
94 <select name="to_user_id" id="to_user_id" class="block change_js mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray">
95 @foreach($users as $user)
96 <option value="{{ $user->id }}">{{ $user->name }} ({{ $user->id }})</option>
97 @endforeach
98 </select>
99 </label><br>
100
101 <label class="block text-sm">
102 <span class="text-gray-700 dark:text-gray-400">Заголовок</span>
103 <input name="title" id="title"
104 class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
105 placeholder="Заголовок" value="{{ old('title') ?? '' }}"
106 />
107 @error('title')
108 <span class="text-xs text-red-600 dark:text-red-400">
109 {{ $message }}
110 </span>
111 @enderror
112 </label><br>
113
114 <label class="block text-sm">
115 <span class="text-gray-700 dark:text-gray-400">Текст</span>
116 <textarea class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" name="text" placeholder="Текст" required
117 rows="4">{{ old('text') ?? '' }}</textarea>
118 @error('text')
119 <span class="text-xs text-red-600 dark:text-red-400">
120 {{ $message }}
121 </span>
122 @enderror
123 </label><br>
124
125
126 <label class="block text-sm">
127 <span class="text-gray-700 dark:text-gray-400">Файл</span>
128 <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700
129 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple
130 dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
131 id="file" name="file">
132 @error('file')
133 <span class="text-xs text-red-600 dark:text-red-400">
134 {{ $message }}
135 </span>
136 @enderror
137 </label><br>
138
139 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
140 <div>
141 <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple">
142 Отправить
143 </button>
144 </div>
145 </div>
146 </div>
147 </form>
148 </div>
149 @endsection
150
resources/views/admin/static/index_ads.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Вакансии статистика'])
2
3 @section('script')
4 <script>
5 $(document).ready(function() {
6 $(document).on('change', '.change_js', function () {
7 var ad_employer_id = $('#ad_employer_id');
8 var ad_employer_id_value = ad_employer_id.val();
9 var year_month = $('#year_month');
10 var year_month_value = year_month.val();
11 var ajax_block = $('#ajax_block');
12
13 $.ajax({
14 type: "GET",
15 url: "{{ url()->full()}}",
16 data: "ad_employer_id=" + ad_employer_id_value + "&year_month=" + year_month_value,
17 success: function (data) {
18 console.log('Обновление таблицы резюме ');
19 //data = JSON.parse(data);
20 console.log(data);
21 ajax_block.html(data);
22 },
23 headers: {
24 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
25 },
26 error: function (data) {
27 console.log('Error: ' + data);
28 }
29 });
30 });
31 });
32 </script>
33 @endsection
34
35 @section('search')
36 <!-- <div class="absolute inset-y-0 flex items-center pl-2">
37 <svg
38 class="w-4 h-4"
39 aria-hidden="true"
40 fill="currentColor"
41 viewBox="0 0 20 20"
42 >
43 <path
44 fill-rule="evenodd"
45 d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
46 clip-rule="evenodd"
47 ></path>
48 </svg>
49 </div>
50 <form action="" method="POST">
51 <div style="float:left;"><input
52 class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
53 style="width: 400px"
54 type="text"
55 placeholder="Искать..."
56 aria-label="Search"
57 /></div>
58 <div style="float: left">
59 <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Искать</button>
60 </div>
61 </form>-->
62 @endsection
63
64 @section('content')
65 <div>
66 <label for="ad_employer_id" class="block text-sm">
67 <span class="text-gray-700 dark:text-gray-400">Пользователи</span>
68 </label>
69 <select name="ad_employer_id" id="ad_employer_id" class="block change_js mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray">
70 <option value="0">Все</option>
71 @foreach($ads as $ad)
72 <option value="{{ $ad->id }}">{{ $ad->name }} ({{ $ad->id }})</option>
73 @endforeach
74 </select>
75 <label for="year_month" class="block text-sm">
76 <span class="text-gray-700 dark:text-gray-400">Периоды</span>
77 </label>
78 <select name="year_month" id="year_month" class="block change_js mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray">
79 <option value="0">Все</option>
80 @foreach($periods as $period)
81 <option value="{{ $period->year_month }}">{{ $period->year_month }}</option>
82 @endforeach
83 </select><br>
84 </div>
85 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
86 <div class="w-full overflow-x-auto">
87 <table class="w-full whitespace-no-wrap">
88 <thead>
89 <tr
90 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
91 >
92 <th class="px-4 py-3">№</th>
93 <th class="px-4 py-3">Вакансия (название/код)</th>
94 <th class="px-4 py-3">Интервал времени</th>
95 <th class="px-4 py-3">Просмотры</th>
96 <th class="px-4 py-3">Сообщения</th>
97 </tr>
98 </thead>
99 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
100
101 @foreach($stat as $ad)
102 <tr class="text-gray-700 dark:text-gray-400">
103 <td class="px-4 py-3">
104 {{$ad->id}}
105 </td>
106 <td class="px-4 py-3">
107 {{ $ad->ads->name }} ({{ $ad->ad_employer_id }})
108 </td>
109 <td class="px-4 py-3">
110 {{ $ad->year_month }}
111 </td>
112 <td class="px-4 py-3">
113 {{ $ad->lookin }}
114 </td>
115 <td class="px-4 py-3">
116 {{ $ad->message }}
117 </td>
118 </tr>
119 @endforeach
120
121 </tbody>
122 </table>
123 </div>
124
125 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
126 <?=$stat->appends($_GET)->links('admin.pagginate'); ?>
127 </div>
128 </div>
129
130
131 @endsection
132
resources/views/admin/static/index_ads_ajax.blade.php
File was created 1 <div class="w-full overflow-x-auto">
2 <table class="w-full whitespace-no-wrap">
3 <thead>
4 <tr
5 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
6 >
7 <th class="px-4 py-3">№</th>
8 <th class="px-4 py-3">Вакансия (название/код)</th>
9 <th class="px-4 py-3">Интервал времени</th>
10 <th class="px-4 py-3">Просмотры</th>
11 <th class="px-4 py-3">Сообщения</th>
12 </tr>
13 </thead>
14 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
15
16 @foreach($stat as $ad)
17 <tr class="text-gray-700 dark:text-gray-400">
18 <td class="px-4 py-3">
19 {{$ad->id}}
20 </td>
21 <td class="px-4 py-3">
22 {{ $ad->ads->name }} ({{ $ad->ad_employer_id }})
23 </td>
24 <td class="px-4 py-3">
25 {{ $ad->year_month }}
26 </td>
27 <td class="px-4 py-3">
28 {{ $ad->lookin }}
29 </td>
30 <td class="px-4 py-3">
31 {{ $ad->message }}
32 </td>
33 </tr>
34 @endforeach
35
36 </tbody>
37 </table>
38 </div>
39
40 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
41 <?=$stat->appends($_GET)->links('admin.pagginate'); ?>
42 </div>
43
resources/views/admin/static/index_workers.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Работники статистика'])
2
3 @section('script')
4 <script>
5 $(document).ready(function() {
6 $(document).on('change', '.change_js', function () {
7 var user_id = $('#user_id');
8 var user_id_value = user_id.val();
9 var year_month = $('#year_month');
10 var year_month_value = year_month.val();
11 var ajax_block = $('#ajax_block');
12
13 $.ajax({
14 type: "GET",
15 url: "{{ url()->full()}}",
16 data: "user_id=" + user_id_value + "&year_month=" + year_month_value,
17 success: function (data) {
18 console.log('Обновление таблицы работников ');
19 //data = JSON.parse(data);
20 console.log(data);
21 ajax_block.html(data);
22 },
23 headers: {
24 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
25 },
26 error: function (data) {
27 console.log('Error: ' + data);
28 }
29 });
30 });
31 });
32 </script>
33 @endsection
34
35 @section('search')
36 <!-- <div class="absolute inset-y-0 flex items-center pl-2">
37 <svg
38 class="w-4 h-4"
39 aria-hidden="true"
40 fill="currentColor"
41 viewBox="0 0 20 20"
42 >
43 <path
44 fill-rule="evenodd"
45 d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
46 clip-rule="evenodd"
47 ></path>
48 </svg>
49 </div>
50 <form action="" method="POST">
51 <div style="float:left;"><input
52 class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
53 style="width: 400px"
54 type="text"
55 placeholder="Искать..."
56 aria-label="Search"
57 /></div>
58 <div style="float: left">
59 <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Искать</button>
60 </div>
61 </form>-->
62 @endsection
63
64 @section('content')
65 <div>
66 <label for="user_id" class="block text-sm">
67 <span class="text-gray-700 dark:text-gray-400">Пользователи</span>
68 </label>
69 <select name="user_id" id="user_id" class="block change_js mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray">
70 <option value="0">Все</option>
71 @foreach($users as $user)
72 <option value="{{ $user->id }}">{{ !empty($user->name) ? $user->name : $user->name_man }} ({{ $user->id }})</option>
73 @endforeach
74 </select>
75 <label for="year_month" class="block text-sm">
76 <span class="text-gray-700 dark:text-gray-400">Периоды</span>
77 </label>
78 <select name="year_month" id="year_month" class="block change_js mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray">
79 <option value="0">Все</option>
80 @foreach($periods as $period)
81 <option value="{{ $period->year_month }}">{{ $period->year_month }}</option>
82 @endforeach
83 </select><br>
84 </div>
85 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
86 <div class="w-full overflow-x-auto">
87 <table class="w-full whitespace-no-wrap">
88 <thead>
89 <tr
90 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
91 >
92 <th class="px-4 py-3">№</th>
93 <th class="px-4 py-3">Юзер (имя/код)</th>
94 <th class="px-4 py-3">Интервал времени</th>
95 <th class="px-4 py-3">Просмотры</th>
96 <th class="px-4 py-3">Сообщения</th>
97 </tr>
98 </thead>
99 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
100
101 @foreach($stat as $user)
102 <tr class="text-gray-700 dark:text-gray-400">
103 <td class="px-4 py-3">
104 {{$user->id}}
105 </td>
106 <td class="px-4 py-3">
107 {{ !empty($user->users->name) ? $user->users->name : $user->users->name_man }} ({{ $user->user_id }})
108 </td>
109 <td class="px-4 py-3">
110 {{ $user->year_month }}
111 </td>
112 <td class="px-4 py-3">
113 {{ $user->lookin }}
114 </td>
115 <td class="px-4 py-3">
116 {{ $user->message }}
117 </td>
118 </tr>
119 @endforeach
120
121 </tbody>
122 </table>
123 </div>
124
125 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
126 <?=$stat->appends($_GET)->links('admin.pagginate'); ?>
127 </div>
128 </div>
129
130
131 @endsection
132
resources/views/admin/static/index_workers_ajax.blade.php
File was created 1 <div class="w-full overflow-x-auto">
2 <table class="w-full whitespace-no-wrap">
3 <thead>
4 <tr
5 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
6 >
7 <th class="px-4 py-3">№</th>
8 <th class="px-4 py-3">Юзер (имя/код)</th>
9 <th class="px-4 py-3">Интервал времени</th>
10 <th class="px-4 py-3">Просмотры</th>
11 <th class="px-4 py-3">Сообщения</th>
12 </tr>
13 </thead>
14 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
15 @foreach($stat as $user)
16 <tr class="text-gray-700 dark:text-gray-400">
17 <td class="px-4 py-3">
18 {{$user->id}}
19 </td>
20 <td class="px-4 py-3">
21 {{ !empty($user->users->name) ? $user->users->name : $user->users->name_man }} ({{ $user->user_id }})
22 </td>
23 <td class="px-4 py-3">
24 {{ $user->year_month }}
25 </td>
26 <td class="px-4 py-3">
27 {{ $user->lookin }}
28 </td>
29 <td class="px-4 py-3">
30 {{ $user->message }}
31 </td>
32 </tr>
33 @endforeach
34 </tbody>
35 </table>
36 </div>
37
38 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
39 <?=$stat->appends($_GET)->links('admin.pagginate'); ?>
40 </div>
41
resources/views/layout/admin.blade.php
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}"> 2 <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}">
3 <head> 3 <head>
4 <meta charset="UTF-8" /> 4 <meta charset="UTF-8" />
5 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6 <title>{{$title}}</title> 6 <title>{{$title}}</title>
7 <link 7 <link
8 href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" 8 href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
9 rel="stylesheet" 9 rel="stylesheet"
10 /> 10 />
11 <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output.css')}}" /> 11 <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output.css')}}" />
12 <script 12 <script
13 src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" 13 src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
14 defer 14 defer
15 ></script> 15 ></script>
16 <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> 16 <script src="{{ asset('./assets/js/init-alpine.js') }}"></script>
17 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> 17 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/>
18 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> 18 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script>
19 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 19 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
20 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> 20 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script>
21 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> 21 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script>
22 </head> 22 </head>
23 <body> 23 <body>
24 <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> 24 <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }">
25 <!-- Desktop sidebar --> 25 <!-- Desktop sidebar -->
26 <aside 26 <aside
27 class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" 27 class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
28 > 28 >
29 <div class="py-4 text-gray-500 dark:text-gray-400"> 29 <div class="py-4 text-gray-500 dark:text-gray-400">
30 <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 30 <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
31 href="{{ route('admin.index') }}"> 31 href="{{ route('admin.index') }}">
32 Админка 32 Админка
33 </a> 33 </a>
34 <ul class="mt-6"> 34 <ul class="mt-6">
35 <li class="relative px-6 py-3"> 35 <li class="relative px-6 py-3">
36 <span 36 <span
37 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 37 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
38 aria-hidden="true" 38 aria-hidden="true"
39 ></span> 39 ></span>
40 <a 40 <a
41 class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" 41 class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
42 href="{{ route('admin.index') }}" 42 href="{{ route('admin.index') }}"
43 > 43 >
44 <svg 44 <svg
45 class="w-5 h-5" 45 class="w-5 h-5"
46 aria-hidden="true" 46 aria-hidden="true"
47 fill="none" 47 fill="none"
48 stroke-linecap="round" 48 stroke-linecap="round"
49 stroke-linejoin="round" 49 stroke-linejoin="round"
50 stroke-width="2" 50 stroke-width="2"
51 viewBox="0 0 24 24" 51 viewBox="0 0 24 24"
52 stroke="currentColor" 52 stroke="currentColor"
53 > 53 >
54 <path 54 <path
55 d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" 55 d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
56 ></path> 56 ></path>
57 </svg> 57 </svg>
58 <span class="ml-4">Главная страница</span> 58 <span class="ml-4">Главная страница</span>
59 </a> 59 </a>
60 </li> 60 </li>
61 </ul> 61 </ul>
62 <ul> 62 <ul>
63 <li class="relative px-6 py-3"> 63 <li class="relative px-6 py-3">
64 <a 64 <a
65 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 65 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
66 href="{{ route('admin.users') }}" 66 href="{{ route('admin.users') }}"
67 > 67 >
68 <svg 68 <svg
69 class="w-5 h-5" 69 class="w-5 h-5"
70 aria-hidden="true" 70 aria-hidden="true"
71 fill="none" 71 fill="none"
72 stroke-linecap="round" 72 stroke-linecap="round"
73 stroke-linejoin="round" 73 stroke-linejoin="round"
74 stroke-width="2" 74 stroke-width="2"
75 viewBox="0 0 24 24" 75 viewBox="0 0 24 24"
76 stroke="currentColor" 76 stroke="currentColor"
77 > 77 >
78 <path 78 <path
79 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" 79 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
80 ></path> 80 ></path>
81 </svg> 81 </svg>
82 <span class="ml-4">Пользователи</span> 82 <span class="ml-4">Пользователи</span>
83 </a> 83 </a>
84 </li> 84 </li>
85 <li class="relative px-6 py-3"> 85 <li class="relative px-6 py-3">
86 <a 86 <a
87 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 87 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
88 href="{{ route('admin.employers') }}" 88 href="{{ route('admin.employers') }}"
89 > 89 >
90 <svg 90 <svg
91 class="w-5 h-5" 91 class="w-5 h-5"
92 aria-hidden="true" 92 aria-hidden="true"
93 fill="none" 93 fill="none"
94 stroke-linecap="round" 94 stroke-linecap="round"
95 stroke-linejoin="round" 95 stroke-linejoin="round"
96 stroke-width="2" 96 stroke-width="2"
97 viewBox="0 0 24 24" 97 viewBox="0 0 24 24"
98 stroke="currentColor" 98 stroke="currentColor"
99 > 99 >
100 <path 100 <path
101 d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" 101 d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
102 ></path> 102 ></path>
103 </svg> 103 </svg>
104 <span class="ml-4">Работодатели</span> 104 <span class="ml-4">Работодатели</span>
105 </a> 105 </a>
106 </li> 106 </li>
107 <li class="relative px-6 py-3"> 107 <li class="relative px-6 py-3">
108 <a 108 <a
109 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 109 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
110 href="{{ route('admin.workers') }}" 110 href="{{ route('admin.workers') }}"
111 > 111 >
112 <svg 112 <svg
113 class="w-5 h-5" 113 class="w-5 h-5"
114 aria-hidden="true" 114 aria-hidden="true"
115 fill="none" 115 fill="none"
116 stroke-linecap="round" 116 stroke-linecap="round"
117 stroke-linejoin="round" 117 stroke-linejoin="round"
118 stroke-width="2" 118 stroke-width="2"
119 viewBox="0 0 24 24" 119 viewBox="0 0 24 24"
120 stroke="currentColor" 120 stroke="currentColor"
121 > 121 >
122 <path 122 <path
123 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 123 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
124 ></path> 124 ></path>
125 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 125 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
126 </svg> 126 </svg>
127 <span class="ml-4">Соискатели</span> 127 <span class="ml-4">Соискатели</span>
128 </a> 128 </a>
129 </li> 129 </li>
130 <li class="relative px-6 py-3"> 130 <li class="relative px-6 py-3">
131 <a 131 <a
132 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 132 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
133 href="{{ route('admin.ad-employers') }}" 133 href="{{ route('admin.ad-employers') }}"
134 > 134 >
135 <svg 135 <svg
136 class="w-5 h-5" 136 class="w-5 h-5"
137 aria-hidden="true" 137 aria-hidden="true"
138 fill="none" 138 fill="none"
139 stroke-linecap="round" 139 stroke-linecap="round"
140 stroke-linejoin="round" 140 stroke-linejoin="round"
141 stroke-width="2" 141 stroke-width="2"
142 viewBox="0 0 24 24" 142 viewBox="0 0 24 24"
143 stroke="currentColor" 143 stroke="currentColor"
144 > 144 >
145 <path 145 <path
146 d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" 146 d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
147 ></path> 147 ></path>
148 </svg> 148 </svg>
149 <span class="ml-4">Вакансии</span> 149 <span class="ml-4">Вакансии</span>
150 </a> 150 </a>
151 </li> 151 </li>
152 152
153 <li class="relative px-6 py-3"> 153 <li class="relative px-6 py-3">
154 <a 154 <a
155 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 155 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
156 href="{{ route('admin.messages') }}" 156 href="{{ route('admin.messages') }}"
157 > 157 >
158 <svg 158 <svg
159 class="w-5 h-5" 159 class="w-5 h-5"
160 aria-hidden="true" 160 aria-hidden="true"
161 fill="none" 161 fill="none"
162 stroke-linecap="round" 162 stroke-linecap="round"
163 stroke-linejoin="round" 163 stroke-linejoin="round"
164 stroke-width="2" 164 stroke-width="2"
165 viewBox="0 0 24 24" 165 viewBox="0 0 24 24"
166 stroke="currentColor" 166 stroke="currentColor"
167 > 167 >
168 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 168 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
169 </svg> 169 </svg>
170 <span class="ml-4">Сообщения</span> 170 <span class="ml-4">Сообщения</span>
171 </a> 171 </a>
172 </li> 172 </li>
173 <li class="relative px-6 py-3"> 173 <li class="relative px-6 py-3">
174 <a 174 <a
175 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 175 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
176 href="{{ route('admin.groups') }}" 176 href="{{ route('admin.groups') }}"
177 > 177 >
178 <svg 178 <svg
179 class="w-5 h-5" 179 class="w-5 h-5"
180 aria-hidden="true" 180 aria-hidden="true"
181 fill="none" 181 fill="none"
182 stroke-linecap="round" 182 stroke-linecap="round"
183 stroke-linejoin="round" 183 stroke-linejoin="round"
184 stroke-width="2" 184 stroke-width="2"
185 viewBox="0 0 24 24" 185 viewBox="0 0 24 24"
186 stroke="currentColor" 186 stroke="currentColor"
187 > 187 >
188 <path 188 <path
189 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" 189 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
190 ></path> 190 ></path>
191 </svg> 191 </svg>
192 <span class="ml-4">Группы пользователей</span> 192 <span class="ml-4">Группы пользователей</span>
193 </a> 193 </a>
194 </li> 194 </li>
195 <li class="relative px-6 py-3"> 195 <li class="relative px-6 py-3">
196 <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 196 <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
197 href="{{ route('admin.roles') }}"> 197 href="{{ route('admin.roles') }}">
198 <svg 198 <svg
199 class="w-5 h-5" 199 class="w-5 h-5"
200 aria-hidden="true" 200 aria-hidden="true"
201 fill="none" 201 fill="none"
202 stroke-linecap="round" 202 stroke-linecap="round"
203 stroke-linejoin="round" 203 stroke-linejoin="round"
204 stroke-width="2" 204 stroke-width="2"
205 viewBox="0 0 24 24" 205 viewBox="0 0 24 24"
206 stroke="currentColor" 206 stroke="currentColor"
207 > 207 >
208 <path 208 <path
209 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" 209 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
210 ></path> 210 ></path>
211 </svg> 211 </svg>
212 <span class="ml-4">Роли пользователей</span> 212 <span class="ml-4">Роли пользователей</span>
213 </a> 213 </a>
214 </li> 214 </li>
215 <li class="relative px-6 py-3"> 215 <li class="relative px-6 py-3">
216 <a 216 <a
217 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 217 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
218 href="{{ route('admin.statics') }}" 218 href="{{ route('admin.statics') }}"
219 > 219 >
220 <svg 220 <svg
221 class="w-5 h-5" 221 class="w-5 h-5"
222 aria-hidden="true" 222 aria-hidden="true"
223 fill="none" 223 fill="none"
224 stroke-linecap="round" 224 stroke-linecap="round"
225 stroke-linejoin="round" 225 stroke-linejoin="round"
226 stroke-width="2" 226 stroke-width="2"
227 viewBox="0 0 24 24" 227 viewBox="0 0 24 24"
228 stroke="currentColor" 228 stroke="currentColor"
229 > 229 >
230 <path 230 <path
231 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 231 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
232 ></path> 232 ></path>
233 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 233 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
234 </svg> 234 </svg>
235 <span class="ml-4">Статистика</span> 235 <span class="ml-4">Статистика</span>
236 </a> 236 </a>
237 </li> 237 </li>
238 <li class="relative px-6 py-3"> 238 <li class="relative px-6 py-3">
239 <a 239 <a
240 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 240 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
241 href="{{ route('admin.answers') }}" 241 href="{{ route('admin.answers') }}"
242 > 242 >
243 <svg 243 <svg
244 class="w-5 h-5" 244 class="w-5 h-5"
245 aria-hidden="true" 245 aria-hidden="true"
246 fill="none" 246 fill="none"
247 stroke-linecap="round" 247 stroke-linecap="round"
248 stroke-linejoin="round" 248 stroke-linejoin="round"
249 stroke-width="2" 249 stroke-width="2"
250 viewBox="0 0 24 24" 250 viewBox="0 0 24 24"
251 stroke="currentColor" 251 stroke="currentColor"
252 > 252 >
253 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 253 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
254 </svg> 254 </svg>
255 <span class="ml-4">Модерация</span> 255 <span class="ml-4">Модерация</span>
256 </a> 256 </a>
257 </li> 257 </li>
258 <!-- Справочники --> 258 <!-- Справочники -->
259 <li class="relative px-6 py-3" x-data="{ open1: false }"> 259 <li class="relative px-6 py-3" x-data="{ open1: false }">
260 <button 260 <button
261 class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 261 class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
262 @click="open1=!open1" 262 @click="open1=!open1"
263 aria-haspopup="true"> 263 aria-haspopup="true">
264 <span class="inline-flex items-center"> 264 <span class="inline-flex items-center">
265 <svg 265 <svg
266 class="w-5 h-5" 266 class="w-5 h-5"
267 aria-hidden="true" 267 aria-hidden="true"
268 fill="none" 268 fill="none"
269 stroke-linecap="round" 269 stroke-linecap="round"
270 stroke-linejoin="round" 270 stroke-linejoin="round"
271 stroke-width="2" 271 stroke-width="2"
272 viewBox="0 0 24 24" 272 viewBox="0 0 24 24"
273 stroke="currentColor"> 273 stroke="currentColor">
274 <path 274 <path
275 d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" 275 d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
276 ></path> 276 ></path>
277 </svg> 277 </svg>
278 <span class="ml-4">Справочники</span> 278 <span class="ml-4">Справочники</span>
279 </span> 279 </span>
280 <svg 280 <svg
281 class="w-4 h-4" 281 class="w-4 h-4"
282 aria-hidden="true" 282 aria-hidden="true"
283 fill="currentColor" 283 fill="currentColor"
284 viewBox="0 0 20 20" 284 viewBox="0 0 20 20"
285 > 285 >
286 <path 286 <path
287 fill-rule="evenodd" 287 fill-rule="evenodd"
288 d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" 288 d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
289 clip-rule="evenodd" 289 clip-rule="evenodd"
290 ></path> 290 ></path>
291 </svg> 291 </svg>
292 </button> 292 </button>
293 <template x-if="open1"> 293 <template x-if="open1">
294 <ul 294 <ul
295 x-transition:enter="transition-all ease-in-out duration-300" 295 x-transition:enter="transition-all ease-in-out duration-300"
296 x-transition:enter-start="opacity-25 max-h-0" 296 x-transition:enter-start="opacity-25 max-h-0"
297 x-transition:enter-end="opacity-100 max-h-xl" 297 x-transition:enter-end="opacity-100 max-h-xl"
298 x-transition:leave="transition-all ease-in-out duration-300" 298 x-transition:leave="transition-all ease-in-out duration-300"
299 x-transition:leave-start="opacity-100 max-h-xl" 299 x-transition:leave-start="opacity-100 max-h-xl"
300 x-transition:leave-end="opacity-0 max-h-0" 300 x-transition:leave-end="opacity-0 max-h-0"
301 class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" 301 class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
302 aria-label="submenu" 302 aria-label="submenu"
303 > 303 >
304 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 304 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
305 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> 305 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
306 </li> 306 </li>
307 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 307 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
308 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> 308 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a>
309 </li> 309 </li>
310 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 310 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
311 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> 311 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a>
312 </li> 312 </li>
313 313
314 </ul> 314 </ul>
315 </template> 315 </template>
316 </li> 316 </li>
317 317
318 318
319 <!-- Редактор --> 319 <!-- Редактор -->
320 <li class="relative px-6 py-3"> 320 <li class="relative px-6 py-3">
321 <button 321 <button
322 class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 322 class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
323 @click="togglePagesMenu" 323 @click="togglePagesMenu"
324 aria-haspopup="true"> 324 aria-haspopup="true">
325 <span class="inline-flex items-center"> 325 <span class="inline-flex items-center">
326 <svg 326 <svg
327 class="w-5 h-5" 327 class="w-5 h-5"
328 aria-hidden="true" 328 aria-hidden="true"
329 fill="none" 329 fill="none"
330 stroke-linecap="round" 330 stroke-linecap="round"
331 stroke-linejoin="round" 331 stroke-linejoin="round"
332 stroke-width="2" 332 stroke-width="2"
333 viewBox="0 0 24 24" 333 viewBox="0 0 24 24"
334 stroke="currentColor"> 334 stroke="currentColor">
335 <path 335 <path
336 d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" 336 d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
337 ></path> 337 ></path>
338 </svg> 338 </svg>
339 <span class="ml-4">Редактор</span> 339 <span class="ml-4">Редактор</span>
340 </span> 340 </span>
341 <svg 341 <svg
342 class="w-4 h-4" 342 class="w-4 h-4"
343 aria-hidden="true" 343 aria-hidden="true"
344 fill="currentColor" 344 fill="currentColor"
345 viewBox="0 0 20 20" 345 viewBox="0 0 20 20"
346 > 346 >
347 <path 347 <path
348 fill-rule="evenodd" 348 fill-rule="evenodd"
349 d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" 349 d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
350 clip-rule="evenodd" 350 clip-rule="evenodd"
351 ></path> 351 ></path>
352 </svg> 352 </svg>
353 </button> 353 </button>
354 <template x-if="isPagesMenuOpen"> 354 <template x-if="isPagesMenuOpen">
355 <ul 355 <ul
356 x-transition:enter="transition-all ease-in-out duration-300" 356 x-transition:enter="transition-all ease-in-out duration-300"
357 x-transition:enter-start="opacity-25 max-h-0" 357 x-transition:enter-start="opacity-25 max-h-0"
358 x-transition:enter-end="opacity-100 max-h-xl" 358 x-transition:enter-end="opacity-100 max-h-xl"
359 x-transition:leave="transition-all ease-in-out duration-300" 359 x-transition:leave="transition-all ease-in-out duration-300"
360 x-transition:leave-start="opacity-100 max-h-xl" 360 x-transition:leave-start="opacity-100 max-h-xl"
361 x-transition:leave-end="opacity-0 max-h-0" 361 x-transition:leave-end="opacity-0 max-h-0"
362 class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" 362 class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
363 aria-label="submenu" 363 aria-label="submenu"
364 > 364 >
365 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 365 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
366 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> 366 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a>
367 </li> 367 </li>
368 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 368 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
369 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> 369 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a>
370 </li> 370 </li>
371 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 371 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
372 <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> 372 <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a>
373 </li> 373 </li>
374 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 374 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
375 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> 375 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a>
376 </li> 376 </li>
377 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 377 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
378 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> 378 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a>
379 </li> 379 </li>
380 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 380 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
381 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> 381 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a>
382 </li> 382 </li>
383 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 383 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
384 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> 384 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a>
385 </li> 385 </li>
386 </ul> 386 </ul>
387 </template> 387 </template>
388 </li> 388 </li>
389 389
390 </ul> 390 </ul>
391 <!--<div class="px-6 my-6"> 391 <!--<div class="px-6 my-6">
392 <button 392 <button
393 class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" 393 class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
394 > 394 >
395 Create account 395 Create account
396 <span class="ml-2" aria-hidden="true">+</span> 396 <span class="ml-2" aria-hidden="true">+</span>
397 </button> 397 </button>
398 </div>--> 398 </div>-->
399 </div> 399 </div>
400 </aside> 400 </aside>
401 <!-- Mobile sidebar --> 401 <!-- Mobile sidebar -->
402 <!-- Backdrop --> 402 <!-- Backdrop -->
403 <div 403 <div
404 x-show="isSideMenuOpen" 404 x-show="isSideMenuOpen"
405 x-transition:enter="transition ease-in-out duration-150" 405 x-transition:enter="transition ease-in-out duration-150"
406 x-transition:enter-start="opacity-0" 406 x-transition:enter-start="opacity-0"
407 x-transition:enter-end="opacity-100" 407 x-transition:enter-end="opacity-100"
408 x-transition:leave="transition ease-in-out duration-150" 408 x-transition:leave="transition ease-in-out duration-150"
409 x-transition:leave-start="opacity-100" 409 x-transition:leave-start="opacity-100"
410 x-transition:leave-end="opacity-0" 410 x-transition:leave-end="opacity-0"
411 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" 411 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
412 ></div> 412 ></div>
413 <aside 413 <aside
414 class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden" 414 class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
415 x-show="isSideMenuOpen" 415 x-show="isSideMenuOpen"
416 x-transition:enter="transition ease-in-out duration-150" 416 x-transition:enter="transition ease-in-out duration-150"
417 x-transition:enter-start="opacity-0 transform -translate-x-20" 417 x-transition:enter-start="opacity-0 transform -translate-x-20"
418 x-transition:enter-end="opacity-100" 418 x-transition:enter-end="opacity-100"
419 x-transition:leave="transition ease-in-out duration-150" 419 x-transition:leave="transition ease-in-out duration-150"
420 x-transition:leave-start="opacity-100" 420 x-transition:leave-start="opacity-100"
421 x-transition:leave-end="opacity-0 transform -translate-x-20" 421 x-transition:leave-end="opacity-0 transform -translate-x-20"
422 @click.away="closeSideMenu" 422 @click.away="closeSideMenu"
423 @keydown.escape="closeSideMenu" 423 @keydown.escape="closeSideMenu"
424 > 424 >
425 <div class="py-4 text-gray-500 dark:text-gray-400"> 425 <div class="py-4 text-gray-500 dark:text-gray-400">
426 <a 426 <a
427 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 427 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
428 href="{{ route('admin.index') }}" 428 href="{{ route('admin.index') }}"
429 > 429 >
430 Админка 430 Админка
431 </a> 431 </a>
432 <ul class="mt-6"> 432 <ul class="mt-6">
433 <li class="relative px-6 py-3"> 433 <li class="relative px-6 py-3">
434 <span 434 <span
435 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 435 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
436 aria-hidden="true" 436 aria-hidden="true"
437 ></span> 437 ></span>
438 <a 438 <a
439 class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" 439 class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
440 href="{{ route('admin.index') }}" 440 href="{{ route('admin.index') }}"
441 > 441 >
442 <svg 442 <svg
443 class="w-5 h-5" 443 class="w-5 h-5"
444 aria-hidden="true" 444 aria-hidden="true"
445 fill="none" 445 fill="none"
446 stroke-linecap="round" 446 stroke-linecap="round"
447 stroke-linejoin="round" 447 stroke-linejoin="round"
448 stroke-width="2" 448 stroke-width="2"
449 viewBox="0 0 24 24" 449 viewBox="0 0 24 24"
450 stroke="currentColor" 450 stroke="currentColor"
451 > 451 >
452 <path 452 <path
453 d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" 453 d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
454 ></path> 454 ></path>
455 </svg> 455 </svg>
456 <span class="ml-4">Главная страница</span> 456 <span class="ml-4">Главная страница</span>
457 </a> 457 </a>
458 </li> 458 </li>
459 </ul> 459 </ul>
460 <ul> 460 <ul>
461 <li class="relative px-6 py-3"> 461 <li class="relative px-6 py-3">
462 <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 462 <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
463 href="{{ route('admin.users') }}"> 463 href="{{ route('admin.users') }}">
464 <svg 464 <svg
465 class="w-5 h-5" 465 class="w-5 h-5"
466 aria-hidden="true" 466 aria-hidden="true"
467 fill="none" 467 fill="none"
468 stroke-linecap="round" 468 stroke-linecap="round"
469 stroke-linejoin="round" 469 stroke-linejoin="round"
470 stroke-width="2" 470 stroke-width="2"
471 viewBox="0 0 24 24" 471 viewBox="0 0 24 24"
472 stroke="currentColor" 472 stroke="currentColor"
473 > 473 >
474 <path 474 <path
475 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" 475 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
476 ></path> 476 ></path>
477 </svg> 477 </svg>
478 <span class="ml-4">Пользователи</span> 478 <span class="ml-4">Пользователи</span>
479 </a> 479 </a>
480 </li> 480 </li>
481 <li class="relative px-6 py-3"> 481 <li class="relative px-6 py-3">
482 <a 482 <a
483 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 483 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
484 href="{{ route('admin.employers') }}" 484 href="{{ route('admin.employers') }}"
485 > 485 >
486 <svg 486 <svg
487 class="w-5 h-5" 487 class="w-5 h-5"
488 aria-hidden="true" 488 aria-hidden="true"
489 fill="none" 489 fill="none"
490 stroke-linecap="round" 490 stroke-linecap="round"
491 stroke-linejoin="round" 491 stroke-linejoin="round"
492 stroke-width="2" 492 stroke-width="2"
493 viewBox="0 0 24 24" 493 viewBox="0 0 24 24"
494 stroke="currentColor" 494 stroke="currentColor"
495 > 495 >
496 <path 496 <path
497 d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" 497 d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
498 ></path> 498 ></path>
499 </svg> 499 </svg>
500 <span class="ml-4">Работодатели</span> 500 <span class="ml-4">Работодатели</span>
501 </a> 501 </a>
502 </li> 502 </li>
503 <li class="relative px-6 py-3"> 503 <li class="relative px-6 py-3">
504 <a 504 <a
505 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 505 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
506 href="{{ route('admin.workers') }}" 506 href="{{ route('admin.workers') }}"
507 > 507 >
508 <svg 508 <svg
509 class="w-5 h-5" 509 class="w-5 h-5"
510 aria-hidden="true" 510 aria-hidden="true"
511 fill="none" 511 fill="none"
512 stroke-linecap="round" 512 stroke-linecap="round"
513 stroke-linejoin="round" 513 stroke-linejoin="round"
514 stroke-width="2" 514 stroke-width="2"
515 viewBox="0 0 24 24" 515 viewBox="0 0 24 24"
516 stroke="currentColor" 516 stroke="currentColor"
517 > 517 >
518 <path 518 <path
519 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 519 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
520 ></path> 520 ></path>
521 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 521 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
522 </svg> 522 </svg>
523 <span class="ml-4">Соискатели</span> 523 <span class="ml-4">Соискатели</span>
524 </a> 524 </a>
525 </li> 525 </li>
526 <li class="relative px-6 py-3"> 526 <li class="relative px-6 py-3">
527 <a 527 <a
528 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 528 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
529 href="{{ route('admin.ad-employers') }}" 529 href="{{ route('admin.ad-employers') }}"
530 > 530 >
531 <svg 531 <svg
532 class="w-5 h-5" 532 class="w-5 h-5"
533 aria-hidden="true" 533 aria-hidden="true"
534 fill="none" 534 fill="none"
535 stroke-linecap="round" 535 stroke-linecap="round"
536 stroke-linejoin="round" 536 stroke-linejoin="round"
537 stroke-width="2" 537 stroke-width="2"
538 viewBox="0 0 24 24" 538 viewBox="0 0 24 24"
539 stroke="currentColor" 539 stroke="currentColor"
540 > 540 >
541 <path 541 <path
542 d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" 542 d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
543 ></path> 543 ></path>
544 </svg> 544 </svg>
545 <span class="ml-4">Вакансии</span> 545 <span class="ml-4">Вакансии</span>
546 </a> 546 </a>
547 </li> 547 </li>
548 <li class="relative px-6 py-3"> 548 <li class="relative px-6 py-3">
549 <a 549 <a
550 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 550 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
551 href="{{ route('admin.messages') }}" 551 href="{{ route('admin.messages') }}"
552 > 552 >
553 <svg 553 <svg
554 class="w-5 h-5" 554 class="w-5 h-5"
555 aria-hidden="true" 555 aria-hidden="true"
556 fill="none" 556 fill="none"
557 stroke-linecap="round" 557 stroke-linecap="round"
558 stroke-linejoin="round" 558 stroke-linejoin="round"
559 stroke-width="2" 559 stroke-width="2"
560 viewBox="0 0 24 24" 560 viewBox="0 0 24 24"
561 stroke="currentColor" 561 stroke="currentColor"
562 > 562 >
563 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 563 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
564 </svg> 564 </svg>
565 <span class="ml-4">Сообщения</span> 565 <span class="ml-4">Сообщения</span>
566 </a> 566 </a>
567 </li> 567 </li>
568 <li class="relative px-6 py-3"> 568 <li class="relative px-6 py-3">
569 <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 569 <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
570 href="{{ route('admin.groups') }}"> 570 href="{{ route('admin.groups') }}">
571 <svg 571 <svg
572 class="w-5 h-5" 572 class="w-5 h-5"
573 aria-hidden="true" 573 aria-hidden="true"
574 fill="none" 574 fill="none"
575 stroke-linecap="round" 575 stroke-linecap="round"
576 stroke-linejoin="round" 576 stroke-linejoin="round"
577 stroke-width="2" 577 stroke-width="2"
578 viewBox="0 0 24 24" 578 viewBox="0 0 24 24"
579 stroke="currentColor" 579 stroke="currentColor"
580 > 580 >
581 <path 581 <path
582 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" 582 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
583 ></path> 583 ></path>
584 </svg> 584 </svg>
585 <span class="ml-4">Группы пользователей</span> 585 <span class="ml-4">Группы пользователей</span>
586 </a> 586 </a>
587 </li> 587 </li>
588 <li class="relative px-6 py-3"> 588 <li class="relative px-6 py-3">
589 <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 589 <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
590 href="{{ route('admin.roles') }}"> 590 href="{{ route('admin.roles') }}">
591 <svg 591 <svg
592 class="w-5 h-5" 592 class="w-5 h-5"
593 aria-hidden="true" 593 aria-hidden="true"
594 fill="none" 594 fill="none"
595 stroke-linecap="round" 595 stroke-linecap="round"
596 stroke-linejoin="round" 596 stroke-linejoin="round"
597 stroke-width="2" 597 stroke-width="2"
598 viewBox="0 0 24 24" 598 viewBox="0 0 24 24"
599 stroke="currentColor" 599 stroke="currentColor"
600 > 600 >
601 <path 601 <path
602 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" 602 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
603 ></path> 603 ></path>
604 </svg> 604 </svg>
605 <span class="ml-4">Роли пользователей</span> 605 <span class="ml-4">Роли пользователей</span>
606 </a> 606 </a>
607 </li> 607 </li>
608 <li class="relative px-6 py-3"> 608 <li class="relative px-6 py-3">
609 <a 609 <a
610 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 610 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
611 href="{{ route('admin.statics') }}" 611 href="{{ route('admin.statics') }}"
612 > 612 >
613 <svg 613 <svg
614 class="w-5 h-5" 614 class="w-5 h-5"
615 aria-hidden="true" 615 aria-hidden="true"
616 fill="none" 616 fill="none"
617 stroke-linecap="round" 617 stroke-linecap="round"
618 stroke-linejoin="round" 618 stroke-linejoin="round"
619 stroke-width="2" 619 stroke-width="2"
620 viewBox="0 0 24 24" 620 viewBox="0 0 24 24"
621 stroke="currentColor" 621 stroke="currentColor"
622 > 622 >
623 <path 623 <path
624 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 624 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
625 ></path> 625 ></path>
626 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 626 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
627 </svg> 627 </svg>
628 <span class="ml-4">Статистика</span> 628 <span class="ml-4">Статистика</span>
629 </a> 629 </a>
630 </li> 630 </li>
631 <li class="relative px-6 py-3"> 631 <li class="relative px-6 py-3">
632 <a 632 <a
633 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 633 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
634 href="{{ route('admin.messages') }}" 634 href="{{ route('admin.messages') }}"
635 > 635 >
636 <svg 636 <svg
637 class="w-5 h-5" 637 class="w-5 h-5"
638 aria-hidden="true" 638 aria-hidden="true"
639 fill="none" 639 fill="none"
640 stroke-linecap="round" 640 stroke-linecap="round"
641 stroke-linejoin="round" 641 stroke-linejoin="round"
642 stroke-width="2" 642 stroke-width="2"
643 viewBox="0 0 24 24" 643 viewBox="0 0 24 24"
644 stroke="currentColor" 644 stroke="currentColor"
645 > 645 >
646 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 646 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
647 </svg> 647 </svg>
648 <span class="ml-4">Сообщения</span> 648 <span class="ml-4">Сообщения</span>
649 </a> 649 </a>
650 </li> 650 </li>
651 <!-- Справочники --> 651 <!-- Справочники -->
652 <li class="relative px-6 py-3" x-data="{ open2: false }"> 652 <li class="relative px-6 py-3" x-data="{ open2: false }">
653 <button 653 <button
654 class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 654 class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
655 @click="open2=!open2" 655 @click="open2=!open2"
656 aria-haspopup="true"> 656 aria-haspopup="true">
657 <span class="inline-flex items-center"> 657 <span class="inline-flex items-center">
658 <svg 658 <svg
659 class="w-5 h-5" 659 class="w-5 h-5"
660 aria-hidden="true" 660 aria-hidden="true"
661 fill="none" 661 fill="none"
662 stroke-linecap="round" 662 stroke-linecap="round"
663 stroke-linejoin="round" 663 stroke-linejoin="round"
664 stroke-width="2" 664 stroke-width="2"
665 viewBox="0 0 24 24" 665 viewBox="0 0 24 24"
666 stroke="currentColor"> 666 stroke="currentColor">
667 <path 667 <path
668 d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" 668 d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
669 ></path> 669 ></path>
670 </svg> 670 </svg>
671 <span class="ml-4">Справочники</span> 671 <span class="ml-4">Справочники</span>
672 </span> 672 </span>
673 <svg 673 <svg
674 class="w-4 h-4" 674 class="w-4 h-4"
675 aria-hidden="true" 675 aria-hidden="true"
676 fill="currentColor" 676 fill="currentColor"
677 viewBox="0 0 20 20" 677 viewBox="0 0 20 20"
678 > 678 >
679 <path 679 <path
680 fill-rule="evenodd" 680 fill-rule="evenodd"
681 d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" 681 d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
682 clip-rule="evenodd" 682 clip-rule="evenodd"
683 ></path> 683 ></path>
684 </svg> 684 </svg>
685 </button> 685 </button>
686 <template x-if="open2"> 686 <template x-if="open2">
687 <ul 687 <ul
688 x-transition:enter="transition-all ease-in-out duration-300" 688 x-transition:enter="transition-all ease-in-out duration-300"
689 x-transition:enter-start="opacity-25 max-h-0" 689 x-transition:enter-start="opacity-25 max-h-0"
690 x-transition:enter-end="opacity-100 max-h-xl" 690 x-transition:enter-end="opacity-100 max-h-xl"
691 x-transition:leave="transition-all ease-in-out duration-300" 691 x-transition:leave="transition-all ease-in-out duration-300"
692 x-transition:leave-start="opacity-100 max-h-xl" 692 x-transition:leave-start="opacity-100 max-h-xl"
693 x-transition:leave-end="opacity-0 max-h-0" 693 x-transition:leave-end="opacity-0 max-h-0"
694 class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" 694 class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
695 aria-label="submenu" 695 aria-label="submenu"
696 > 696 >
697 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 697 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
698 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> 698 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
699 </li> 699 </li>
700 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 700 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
701 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> 701 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a>
702 </li> 702 </li>
703 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 703 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
704 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> 704 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a>
705 </li> 705 </li>
706 706
707 </ul> 707 </ul>
708 </template> 708 </template>
709 </li> 709 </li>
710 710
711 711
712 <!-- Редактор --> 712 <!-- Редактор -->
713 <li class="relative px-6 py-3"> 713 <li class="relative px-6 py-3">
714 <button 714 <button
715 class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 715 class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
716 @click="togglePagesMenu" 716 @click="togglePagesMenu"
717 aria-haspopup="true" 717 aria-haspopup="true"
718 > 718 >
719 <span class="inline-flex items-center"> 719 <span class="inline-flex items-center">
720 <svg 720 <svg
721 class="w-5 h-5" 721 class="w-5 h-5"
722 aria-hidden="true" 722 aria-hidden="true"
723 fill="none" 723 fill="none"
724 stroke-linecap="round" 724 stroke-linecap="round"
725 stroke-linejoin="round" 725 stroke-linejoin="round"
726 stroke-width="2" 726 stroke-width="2"
727 viewBox="0 0 24 24" 727 viewBox="0 0 24 24"
728 stroke="currentColor" 728 stroke="currentColor"
729 > 729 >
730 <path 730 <path
731 d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" 731 d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
732 ></path> 732 ></path>
733 </svg> 733 </svg>
734 <span class="ml-4">Редактор</span> 734 <span class="ml-4">Редактор</span>
735 </span> 735 </span>
736 <svg 736 <svg
737 class="w-4 h-4" 737 class="w-4 h-4"
738 aria-hidden="true" 738 aria-hidden="true"
739 fill="currentColor" 739 fill="currentColor"
740 viewBox="0 0 20 20" 740 viewBox="0 0 20 20"
741 > 741 >
742 <path 742 <path
743 fill-rule="evenodd" 743 fill-rule="evenodd"
744 d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" 744 d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
745 clip-rule="evenodd" 745 clip-rule="evenodd"
746 ></path> 746 ></path>
747 </svg> 747 </svg>
748 </button> 748 </button>
749 <template x-if="isPagesMenuOpen"> 749 <template x-if="isPagesMenuOpen">
750 <ul 750 <ul
751 x-transition:enter="transition-all ease-in-out duration-300" 751 x-transition:enter="transition-all ease-in-out duration-300"
752 x-transition:enter-start="opacity-25 max-h-0" 752 x-transition:enter-start="opacity-25 max-h-0"
753 x-transition:enter-end="opacity-100 max-h-xl" 753 x-transition:enter-end="opacity-100 max-h-xl"
754 x-transition:leave="transition-all ease-in-out duration-300" 754 x-transition:leave="transition-all ease-in-out duration-300"
755 x-transition:leave-start="opacity-100 max-h-xl" 755 x-transition:leave-start="opacity-100 max-h-xl"
756 x-transition:leave-end="opacity-0 max-h-0" 756 x-transition:leave-end="opacity-0 max-h-0"
757 class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" 757 class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
758 aria-label="submenu" 758 aria-label="submenu"
759 > 759 >
760 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 760 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
761 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> 761 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a>
762 </li> 762 </li>
763 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 763 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
764 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> 764 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a>
765 </li> 765 </li>
766 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 766 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
767 <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> 767 <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a>
768 </li> 768 </li>
769 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 769 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
770 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> 770 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a>
771 </li> 771 </li>
772 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 772 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
773 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> 773 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a>
774 </li> 774 </li>
775 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 775 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
776 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> 776 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a>
777 </li> 777 </li>
778 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 778 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
779 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> 779 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a>
780 </li> 780 </li>
781 781
782 </ul> 782 </ul>
783 </template> 783 </template>
784 </li> 784 </li>
785 </ul> 785 </ul>
786 <!--<div class="px-6 my-6"> 786 <!--<div class="px-6 my-6">
787 <button class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> 787 <button class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple">
788 Create account 788 Create account
789 <span class="ml-2" aria-hidden="true">+</span> 789 <span class="ml-2" aria-hidden="true">+</span>
790 </button> 790 </button>
791 </div>--> 791 </div>-->
792 </div> 792 </div>
793 </aside> 793 </aside>
794 <div class="flex flex-col flex-1 w-full"> 794 <div class="flex flex-col flex-1 w-full">
795 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> 795 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
796 <div 796 <div
797 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" 797 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
798 > 798 >
799 <!-- Mobile hamburger --> 799 <!-- Mobile hamburger -->
800 <button 800 <button
801 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" 801 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
802 @click="toggleSideMenu" 802 @click="toggleSideMenu"
803 aria-label="Menu" 803 aria-label="Menu"
804 > 804 >
805 <svg 805 <svg
806 class="w-6 h-6" 806 class="w-6 h-6"
807 aria-hidden="true" 807 aria-hidden="true"
808 fill="currentColor" 808 fill="currentColor"
809 viewBox="0 0 20 20" 809 viewBox="0 0 20 20"
810 > 810 >
811 <path 811 <path
812 fill-rule="evenodd" 812 fill-rule="evenodd"
813 d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z" 813 d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
814 clip-rule="evenodd" 814 clip-rule="evenodd"
815 ></path> 815 ></path>
816 </svg> 816 </svg>
817 </button> 817 </button>
818 <!-- Search input --> 818 <!-- Search input -->
819 <div class="flex justify-center flex-1 lg:mr-32"> 819 <div class="flex justify-center flex-1 lg:mr-32">
820 <div 820 <div
821 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" 821 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
822 > 822 >
823 823
824 @yield('search') 824 @yield('search')
825 </div> 825 </div>
826 </div> 826 </div>
827 <ul class="flex items-center flex-shrink-0 space-x-6"> 827 <ul class="flex items-center flex-shrink-0 space-x-6">
828 <!-- Theme toggler --> 828 <!-- Theme toggler -->
829 <li class="flex"> 829 <li class="flex">
830 <button 830 <button
831 class="rounded-md focus:outline-none focus:shadow-outline-purple" 831 class="rounded-md focus:outline-none focus:shadow-outline-purple"
832 @click="toggleTheme" 832 @click="toggleTheme"
833 aria-label="Toggle color mode" 833 aria-label="Toggle color mode"
834 > 834 >
835 <template x-if="!dark"> 835 <template x-if="!dark">
836 <svg 836 <svg
837 class="w-5 h-5" 837 class="w-5 h-5"
838 aria-hidden="true" 838 aria-hidden="true"
839 fill="currentColor" 839 fill="currentColor"
840 viewBox="0 0 20 20" 840 viewBox="0 0 20 20"
841 > 841 >
842 <path 842 <path
843 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" 843 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
844 ></path> 844 ></path>
845 </svg> 845 </svg>
846 </template> 846 </template>
847 <template x-if="dark"> 847 <template x-if="dark">
848 <svg 848 <svg
849 class="w-5 h-5" 849 class="w-5 h-5"
850 aria-hidden="true" 850 aria-hidden="true"
851 fill="currentColor" 851 fill="currentColor"
852 viewBox="0 0 20 20" 852 viewBox="0 0 20 20"
853 > 853 >
854 <path 854 <path
855 fill-rule="evenodd" 855 fill-rule="evenodd"
856 d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z" 856 d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
857 clip-rule="evenodd" 857 clip-rule="evenodd"
858 ></path> 858 ></path>
859 </svg> 859 </svg>
860 </template> 860 </template>
861 </button> 861 </button>
862 </li> 862 </li>
863 <!-- Notifications menu --> 863 <!-- Notifications menu -->
864 <li class="relative"> 864 <li class="relative">
865 <button 865 <button
866 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" 866 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
867 @click="toggleNotificationsMenu" 867 @click="toggleNotificationsMenu"
868 @keydown.escape="closeNotificationsMenu" 868 @keydown.escape="closeNotificationsMenu"
869 aria-label="Notifications" 869 aria-label="Notifications"
870 aria-haspopup="true" 870 aria-haspopup="true"
871 > 871 >
872 <svg 872 <svg
873 class="w-5 h-5" 873 class="w-5 h-5"
874 aria-hidden="true" 874 aria-hidden="true"
875 fill="currentColor" 875 fill="currentColor"
876 viewBox="0 0 20 20" 876 viewBox="0 0 20 20"
877 > 877 >
878 <path 878 <path
879 d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z" 879 d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
880 ></path> 880 ></path>
881 </svg> 881 </svg>
882 <!-- Notification badge --> 882 <!-- Notification badge -->
883 <span 883 <span
884 aria-hidden="true" 884 aria-hidden="true"
885 class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800" 885 class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
886 ></span> 886 ></span>
887 </button> 887 </button>
888 <template x-if="isNotificationsMenuOpen"> 888 <template x-if="isNotificationsMenuOpen">
889 <ul 889 <ul
890 x-transition:leave="transition ease-in duration-150" 890 x-transition:leave="transition ease-in duration-150"
891 x-transition:leave-start="opacity-100" 891 x-transition:leave-start="opacity-100"
892 x-transition:leave-end="opacity-0" 892 x-transition:leave-end="opacity-0"
893 @click.away="closeNotificationsMenu" 893 @click.away="closeNotificationsMenu"
894 @keydown.escape="closeNotificationsMenu" 894 @keydown.escape="closeNotificationsMenu"
895 class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700" 895 class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
896 > 896 >
897 <li class="flex"> 897 <li class="flex">
898 <a 898 <a
899 class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" 899 class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
900 href="#" 900 href="{{ route('admin.admin-messages') }}"
901 > 901 >
902 <span>Сообщения</span> 902 <span>Сообщения</span>
903 <span 903 <span
904 class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600" 904 class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
905 > 905 >
906 13 906 13
907 </span> 907 </span>
908 </a> 908 </a>
909 </li> 909 </li>
910 <li class="flex"> 910 <!--<li class="flex">
911 <a 911 <a
912 class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" 912 class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
913 href="#" 913 href="#"
914 > 914 >
915 <span>Логи</span> 915 <span>Логи</span>
916 </a> 916 </a>
917 </li> 917 </li>-->
918 </ul> 918 </ul>
919 </template> 919 </template>
920 </li> 920 </li>
921 <!-- Profile menu --> 921 <!-- Profile menu -->
922 <li class="relative"> 922 <li class="relative">
923 <button 923 <button
924 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" 924 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
925 @click="toggleProfileMenu" 925 @click="toggleProfileMenu"
926 @keydown.escape="closeProfileMenu" 926 @keydown.escape="closeProfileMenu"
927 aria-label="Account" 927 aria-label="Account"
928 aria-haspopup="true" 928 aria-haspopup="true"
929 > 929 >
930 <img 930 <img
931 class="object-cover w-8 h-8 rounded-full" 931 class="object-cover w-8 h-8 rounded-full"
932 src="{{ asset('assets/img/profile.jpg') }}" 932 src="{{ asset('assets/img/profile.jpg') }}"
933 alt="" 933 alt=""
934 aria-hidden="true" 934 aria-hidden="true"
935 /> 935 />
936 </button> 936 </button>
937 <template x-if="isProfileMenuOpen"> 937 <template x-if="isProfileMenuOpen">
938 <ul 938 <ul
939 x-transition:leave="transition ease-in duration-150" 939 x-transition:leave="transition ease-in duration-150"
940 x-transition:leave-start="opacity-100" 940 x-transition:leave-start="opacity-100"
941 x-transition:leave-end="opacity-0" 941 x-transition:leave-end="opacity-0"
942 @click.away="closeProfileMenu" 942 @click.away="closeProfileMenu"
943 @keydown.escape="closeProfileMenu" 943 @keydown.escape="closeProfileMenu"
944 class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700" 944 class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
945 aria-label="submenu" 945 aria-label="submenu"
946 > 946 >
947 <li class="flex"> 947 <li class="flex">
948 <a 948 <a
949 class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" 949 class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
950 href="{{ route('admin.profile') }}" 950 href="{{ route('admin.profile') }}"
951 > 951 >
952 <svg 952 <svg
953 class="w-4 h-4 mr-3" 953 class="w-4 h-4 mr-3"
954 aria-hidden="true" 954 aria-hidden="true"
955 fill="none" 955 fill="none"
956 stroke-linecap="round" 956 stroke-linecap="round"
957 stroke-linejoin="round" 957 stroke-linejoin="round"
958 stroke-width="2" 958 stroke-width="2"
959 viewBox="0 0 24 24" 959 viewBox="0 0 24 24"
960 stroke="currentColor" 960 stroke="currentColor"
961 > 961 >
962 <path 962 <path
963 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" 963 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
964 ></path> 964 ></path>
965 </svg> 965 </svg>
966 <span>Профиль</span> 966 <span>Профиль</span>
967 </a> 967 </a>
968 </li> 968 </li>
969 <li class="flex"> 969 <li class="flex">
970 <a 970 <a
971 class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" 971 class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
972 href="{{ route('admin.config') }}" 972 href="{{ route('admin.config') }}"
973 > 973 >
974 <svg 974 <svg
975 class="w-4 h-4 mr-3" 975 class="w-4 h-4 mr-3"
976 aria-hidden="true" 976 aria-hidden="true"
977 fill="none" 977 fill="none"
978 stroke-linecap="round" 978 stroke-linecap="round"
979 stroke-linejoin="round" 979 stroke-linejoin="round"
980 stroke-width="2" 980 stroke-width="2"
981 viewBox="0 0 24 24" 981 viewBox="0 0 24 24"
982 stroke="currentColor" 982 stroke="currentColor"
983 > 983 >
984 <path 984 <path
985 d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" 985 d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
986 ></path> 986 ></path>
987 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> 987 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
988 </svg> 988 </svg>
989 <span>Настройки</span> 989 <span>Настройки</span>
990 </a> 990 </a>
991 </li> 991 </li>
992 <li class="flex"> 992 <li class="flex">
993 <a 993 <a
994 class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" 994 class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
995 href="{{ route('admin.logout') }}" 995 href="{{ route('admin.logout') }}"
996 > 996 >
997 <svg 997 <svg
998 class="w-4 h-4 mr-3" 998 class="w-4 h-4 mr-3"
999 aria-hidden="true" 999 aria-hidden="true"
1000 fill="none" 1000 fill="none"
1001 stroke-linecap="round" 1001 stroke-linecap="round"
1002 stroke-linejoin="round" 1002 stroke-linejoin="round"
1003 stroke-width="2" 1003 stroke-width="2"
1004 viewBox="0 0 24 24" 1004 viewBox="0 0 24 24"
1005 stroke="currentColor" 1005 stroke="currentColor"
1006 > 1006 >
1007 <path 1007 <path
1008 d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1" 1008 d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
1009 ></path> 1009 ></path>
1010 </svg> 1010 </svg>
1011 <span>Выход</span> 1011 <span>Выход</span>
1012 </a> 1012 </a>
1013 </li> 1013 </li>
1014 </ul> 1014 </ul>
1015 </template> 1015 </template>
1016 </li> 1016 </li>
1017 </ul> 1017 </ul>
1018 </div> 1018 </div>
1019 </header> 1019 </header>
1020 <main class="h-full overflow-y-auto"> 1020 <main class="h-full overflow-y-auto">
1021 <div class="container px-6 mx-auto grid"> 1021 <div class="container px-6 mx-auto grid">
1022 <h2 1022 <h2
1023 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" 1023 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
1024 > 1024 >
1025 {{$title}} 1025 {{$title}}
1026 </h2> 1026 </h2>
1027 <!-- CTA --> 1027 <!-- CTA -->
1028 <a 1028 <a
1029 class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple" 1029 class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
1030 href="{{ route('admin.admin-users') }}" 1030 href="{{ route('admin.admin-users') }}"
1031 > 1031 >
1032 <div class="flex items-center"> 1032 <div class="flex items-center">
1033 <svg 1033 <svg
1034 class="w-5 h-5 mr-2" 1034 class="w-5 h-5 mr-2"
1035 fill="currentColor" 1035 fill="currentColor"
1036 viewBox="0 0 20 20" 1036 viewBox="0 0 20 20"
1037 > 1037 >
1038 <path 1038 <path
1039 d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" 1039 d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
1040 ></path> 1040 ></path>
1041 </svg> 1041 </svg>
1042 <span>Вход в админку только для пользователей-админов</span> 1042 <span>Вход в админку только для пользователей-админов</span>
1043 </div> 1043 </div>
1044 <span>Список админов &RightArrow;</span> 1044 <span>Список админов &RightArrow;</span>
1045 </a> 1045 </a>
1046 1046
1047 @if ($message = Session::get('success')) 1047 @if ($message = Session::get('success'))
1048 <section> 1048 <section>
1049 <div class="alert alert-success alert-dismissible mt-0" role="alert"> 1049 <div class="alert alert-success alert-dismissible mt-0" role="alert">
1050 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 1050 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
1051 <span aria-hidden="true">&times;</span> 1051 <span aria-hidden="true">&times;</span>
1052 </button> 1052 </button>
1053 {{ $message }} 1053 {{ $message }}
1054 </div> 1054 </div>
1055 </section> 1055 </section>
1056 @endif 1056 @endif
1057 1057
1058 @if ($errors->any()) 1058 @if ($errors->any())
1059 <section> 1059 <section>
1060 <div class="alert alert-danger alert-dismissible mt-4" role="alert"> 1060 <div class="alert alert-danger alert-dismissible mt-4" role="alert">
1061 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 1061 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
1062 <span aria-hidden="true">&times;</span> 1062 <span aria-hidden="true">&times;</span>
1063 </button> 1063 </button>
1064 <ul class="mb-0"> 1064 <ul class="mb-0">
1065 @foreach ($errors->all() as $error) 1065 @foreach ($errors->all() as $error)
1066 <li>{{ $error }}</li> 1066 <li>{{ $error }}</li>
1067 @endforeach 1067 @endforeach
1068 </ul> 1068 </ul>
1069 </div> 1069 </div>
1070 </section> 1070 </section>
1071 @endif 1071 @endif
1072 1072
1073 @yield('content') 1073 @yield('content')
1074 1074
1075 <!-- Cards 1075 <!-- Cards
1076 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> 1076 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
1077 1077
1078 <div 1078 <div
1079 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1079 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1080 > 1080 >
1081 <div 1081 <div
1082 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" 1082 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"
1083 > 1083 >
1084 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1084 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1085 <path 1085 <path
1086 d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z" 1086 d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"
1087 ></path> 1087 ></path>
1088 </svg> 1088 </svg>
1089 </div> 1089 </div>
1090 <div> 1090 <div>
1091 <p 1091 <p
1092 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1092 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1093 > 1093 >
1094 Total clients 1094 Total clients
1095 </p> 1095 </p>
1096 <p 1096 <p
1097 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1097 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1098 > 1098 >
1099 6389 1099 6389
1100 </p> 1100 </p>
1101 </div> 1101 </div>
1102 </div> 1102 </div>
1103 1103
1104 <div 1104 <div
1105 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1105 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1106 > 1106 >
1107 <div 1107 <div
1108 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" 1108 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"
1109 > 1109 >
1110 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1110 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1111 <path 1111 <path
1112 fill-rule="evenodd" 1112 fill-rule="evenodd"
1113 d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z" 1113 d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z"
1114 clip-rule="evenodd" 1114 clip-rule="evenodd"
1115 ></path> 1115 ></path>
1116 </svg> 1116 </svg>
1117 </div> 1117 </div>
1118 <div> 1118 <div>
1119 <p 1119 <p
1120 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1120 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1121 > 1121 >
1122 Account balance 1122 Account balance
1123 </p> 1123 </p>
1124 <p 1124 <p
1125 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1125 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1126 > 1126 >
1127 $ 46,760.89 1127 $ 46,760.89
1128 </p> 1128 </p>
1129 </div> 1129 </div>
1130 </div> 1130 </div>
1131 1131
1132 <div 1132 <div
1133 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1133 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1134 > 1134 >
1135 <div 1135 <div
1136 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" 1136 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"
1137 > 1137 >
1138 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1138 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1139 <path 1139 <path
1140 d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z" 1140 d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"
1141 ></path> 1141 ></path>
1142 </svg> 1142 </svg>
1143 </div> 1143 </div>
1144 <div> 1144 <div>
1145 <p 1145 <p
1146 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1146 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1147 > 1147 >
1148 New sales 1148 New sales
1149 </p> 1149 </p>
1150 <p 1150 <p
1151 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1151 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1152 > 1152 >
1153 376 1153 376
1154 </p> 1154 </p>
1155 </div> 1155 </div>
1156 </div> 1156 </div>
1157 1157
1158 <div 1158 <div
1159 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1159 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1160 > 1160 >
1161 <div 1161 <div
1162 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" 1162 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"
1163 > 1163 >
1164 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1164 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1165 <path 1165 <path
1166 fill-rule="evenodd" 1166 fill-rule="evenodd"
1167 d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z" 1167 d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z"
1168 clip-rule="evenodd" 1168 clip-rule="evenodd"
1169 ></path> 1169 ></path>
1170 </svg> 1170 </svg>
1171 </div> 1171 </div>
1172 <div> 1172 <div>
1173 <p 1173 <p
1174 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1174 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1175 > 1175 >
1176 Pending contacts 1176 Pending contacts
1177 </p> 1177 </p>
1178 <p 1178 <p
1179 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1179 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1180 > 1180 >
1181 35 1181 35
1182 </p> 1182 </p>
1183 </div> 1183 </div>
1184 </div> 1184 </div>
1185 </div> 1185 </div>
1186 --> 1186 -->
1187 <!-- New Table 1187 <!-- New Table
1188 <div class="w-full overflow-hidden rounded-lg shadow-xs"> 1188 <div class="w-full overflow-hidden rounded-lg shadow-xs">
1189 <div class="w-full overflow-x-auto"> 1189 <div class="w-full overflow-x-auto">
1190 <table class="w-full whitespace-no-wrap"> 1190 <table class="w-full whitespace-no-wrap">
1191 <thead> 1191 <thead>
1192 <tr 1192 <tr
1193 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" 1193 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
1194 > 1194 >
1195 <th class="px-4 py-3">Client</th> 1195 <th class="px-4 py-3">Client</th>
1196 <th class="px-4 py-3">Amount</th> 1196 <th class="px-4 py-3">Amount</th>
1197 <th class="px-4 py-3">Status</th> 1197 <th class="px-4 py-3">Status</th>
1198 <th class="px-4 py-3">Date</th> 1198 <th class="px-4 py-3">Date</th>
1199 </tr> 1199 </tr>
1200 </thead> 1200 </thead>
1201 <tbody 1201 <tbody
1202 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" 1202 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
1203 > 1203 >
1204 <tr class="text-gray-700 dark:text-gray-400"> 1204 <tr class="text-gray-700 dark:text-gray-400">
1205 <td class="px-4 py-3"> 1205 <td class="px-4 py-3">
1206 <div class="flex items-center text-sm"> 1206 <div class="flex items-center text-sm">
1207 1207
1208 <div 1208 <div
1209 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1209 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1210 > 1210 >
1211 <img 1211 <img
1212 class="object-cover w-full h-full rounded-full" 1212 class="object-cover w-full h-full rounded-full"
1213 src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" 1213 src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
1214 alt="" 1214 alt=""
1215 loading="lazy" 1215 loading="lazy"
1216 /> 1216 />
1217 <div 1217 <div
1218 class="absolute inset-0 rounded-full shadow-inner" 1218 class="absolute inset-0 rounded-full shadow-inner"
1219 aria-hidden="true" 1219 aria-hidden="true"
1220 ></div> 1220 ></div>
1221 </div> 1221 </div>
1222 <div> 1222 <div>
1223 <p class="font-semibold">Hans Burger</p> 1223 <p class="font-semibold">Hans Burger</p>
1224 <p class="text-xs text-gray-600 dark:text-gray-400"> 1224 <p class="text-xs text-gray-600 dark:text-gray-400">
1225 10x Developer 1225 10x Developer
1226 </p> 1226 </p>
1227 </div> 1227 </div>
1228 </div> 1228 </div>
1229 </td> 1229 </td>
1230 <td class="px-4 py-3 text-sm"> 1230 <td class="px-4 py-3 text-sm">
1231 $ 863.45 1231 $ 863.45
1232 </td> 1232 </td>
1233 <td class="px-4 py-3 text-xs"> 1233 <td class="px-4 py-3 text-xs">
1234 <span 1234 <span
1235 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" 1235 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
1236 > 1236 >
1237 Approved 1237 Approved
1238 </span> 1238 </span>
1239 </td> 1239 </td>
1240 <td class="px-4 py-3 text-sm"> 1240 <td class="px-4 py-3 text-sm">
1241 6/10/2020 1241 6/10/2020
1242 </td> 1242 </td>
1243 </tr> 1243 </tr>
1244 1244
1245 <tr class="text-gray-700 dark:text-gray-400"> 1245 <tr class="text-gray-700 dark:text-gray-400">
1246 <td class="px-4 py-3"> 1246 <td class="px-4 py-3">
1247 <div class="flex items-center text-sm"> 1247 <div class="flex items-center text-sm">
1248 1248
1249 <div 1249 <div
1250 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1250 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1251 > 1251 >
1252 <img 1252 <img
1253 class="object-cover w-full h-full rounded-full" 1253 class="object-cover w-full h-full rounded-full"
1254 src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&facepad=3&fit=facearea&s=707b9c33066bf8808c934c8ab394dff6" 1254 src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&facepad=3&fit=facearea&s=707b9c33066bf8808c934c8ab394dff6"
1255 alt="" 1255 alt=""
1256 loading="lazy" 1256 loading="lazy"
1257 /> 1257 />
1258 <div 1258 <div
1259 class="absolute inset-0 rounded-full shadow-inner" 1259 class="absolute inset-0 rounded-full shadow-inner"
1260 aria-hidden="true" 1260 aria-hidden="true"
1261 ></div> 1261 ></div>
1262 </div> 1262 </div>
1263 <div> 1263 <div>
1264 <p class="font-semibold">Jolina Angelie</p> 1264 <p class="font-semibold">Jolina Angelie</p>
1265 <p class="text-xs text-gray-600 dark:text-gray-400"> 1265 <p class="text-xs text-gray-600 dark:text-gray-400">
1266 Unemployed 1266 Unemployed
1267 </p> 1267 </p>
1268 </div> 1268 </div>
1269 </div> 1269 </div>
1270 </td> 1270 </td>
1271 <td class="px-4 py-3 text-sm"> 1271 <td class="px-4 py-3 text-sm">
1272 $ 369.95 1272 $ 369.95
1273 </td> 1273 </td>
1274 <td class="px-4 py-3 text-xs"> 1274 <td class="px-4 py-3 text-xs">
1275 <span 1275 <span
1276 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" 1276 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"
1277 > 1277 >
1278 Pending 1278 Pending
1279 </span> 1279 </span>
1280 </td> 1280 </td>
1281 <td class="px-4 py-3 text-sm"> 1281 <td class="px-4 py-3 text-sm">
1282 6/10/2020 1282 6/10/2020
1283 </td> 1283 </td>
1284 </tr> 1284 </tr>
1285 1285
1286 <tr class="text-gray-700 dark:text-gray-400"> 1286 <tr class="text-gray-700 dark:text-gray-400">
1287 <td class="px-4 py-3"> 1287 <td class="px-4 py-3">
1288 <div class="flex items-center text-sm"> 1288 <div class="flex items-center text-sm">
1289 1289
1290 <div 1290 <div
1291 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1291 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1292 > 1292 >
1293 <img 1293 <img
1294 class="object-cover w-full h-full rounded-full" 1294 class="object-cover w-full h-full rounded-full"
1295 src="https://images.unsplash.com/photo-1551069613-1904dbdcda11?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" 1295 src="https://images.unsplash.com/photo-1551069613-1904dbdcda11?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
1296 alt="" 1296 alt=""
1297 loading="lazy" 1297 loading="lazy"
1298 /> 1298 />
1299 <div 1299 <div
1300 class="absolute inset-0 rounded-full shadow-inner" 1300 class="absolute inset-0 rounded-full shadow-inner"
1301 aria-hidden="true" 1301 aria-hidden="true"
1302 ></div> 1302 ></div>
1303 </div> 1303 </div>
1304 <div> 1304 <div>
1305 <p class="font-semibold">Sarah Curry</p> 1305 <p class="font-semibold">Sarah Curry</p>
1306 <p class="text-xs text-gray-600 dark:text-gray-400"> 1306 <p class="text-xs text-gray-600 dark:text-gray-400">
1307 Designer 1307 Designer
1308 </p> 1308 </p>
1309 </div> 1309 </div>
1310 </div> 1310 </div>
1311 </td> 1311 </td>
1312 <td class="px-4 py-3 text-sm"> 1312 <td class="px-4 py-3 text-sm">
1313 $ 86.00 1313 $ 86.00
1314 </td> 1314 </td>
1315 <td class="px-4 py-3 text-xs"> 1315 <td class="px-4 py-3 text-xs">
1316 <span 1316 <span
1317 class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700" 1317 class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700"
1318 > 1318 >
1319 Denied 1319 Denied
1320 </span> 1320 </span>
1321 </td> 1321 </td>
1322 <td class="px-4 py-3 text-sm"> 1322 <td class="px-4 py-3 text-sm">
1323 6/10/2020 1323 6/10/2020
1324 </td> 1324 </td>
1325 </tr> 1325 </tr>
1326 1326
1327 <tr class="text-gray-700 dark:text-gray-400"> 1327 <tr class="text-gray-700 dark:text-gray-400">
1328 <td class="px-4 py-3"> 1328 <td class="px-4 py-3">
1329 <div class="flex items-center text-sm"> 1329 <div class="flex items-center text-sm">
1330 1330
1331 <div 1331 <div
1332 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1332 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1333 > 1333 >
1334 <img 1334 <img
1335 class="object-cover w-full h-full rounded-full" 1335 class="object-cover w-full h-full rounded-full"
1336 src="https://images.unsplash.com/photo-1551006917-3b4c078c47c9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" 1336 src="https://images.unsplash.com/photo-1551006917-3b4c078c47c9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
1337 alt="" 1337 alt=""
1338 loading="lazy" 1338 loading="lazy"
1339 /> 1339 />
1340 <div 1340 <div
1341 class="absolute inset-0 rounded-full shadow-inner" 1341 class="absolute inset-0 rounded-full shadow-inner"
1342 aria-hidden="true" 1342 aria-hidden="true"
1343 ></div> 1343 ></div>
1344 </div> 1344 </div>
1345 <div> 1345 <div>
1346 <p class="font-semibold">Rulia Joberts</p> 1346 <p class="font-semibold">Rulia Joberts</p>
1347 <p class="text-xs text-gray-600 dark:text-gray-400"> 1347 <p class="text-xs text-gray-600 dark:text-gray-400">
1348 Actress 1348 Actress
1349 </p> 1349 </p>
1350 </div> 1350 </div>
1351 </div> 1351 </div>
1352 </td> 1352 </td>
1353 <td class="px-4 py-3 text-sm"> 1353 <td class="px-4 py-3 text-sm">
1354 $ 1276.45 1354 $ 1276.45
1355 </td> 1355 </td>
1356 <td class="px-4 py-3 text-xs"> 1356 <td class="px-4 py-3 text-xs">
1357 <span 1357 <span
1358 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" 1358 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
1359 > 1359 >
1360 Approved 1360 Approved
1361 </span> 1361 </span>
1362 </td> 1362 </td>
1363 <td class="px-4 py-3 text-sm"> 1363 <td class="px-4 py-3 text-sm">
1364 6/10/2020 1364 6/10/2020
1365 </td> 1365 </td>
1366 </tr> 1366 </tr>
1367 1367
1368 <tr class="text-gray-700 dark:text-gray-400"> 1368 <tr class="text-gray-700 dark:text-gray-400">
1369 <td class="px-4 py-3"> 1369 <td class="px-4 py-3">
1370 <div class="flex items-center text-sm"> 1370 <div class="flex items-center text-sm">
1371 1371
1372 <div 1372 <div
1373 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1373 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1374 > 1374 >
1375 <img 1375 <img
1376 class="object-cover w-full h-full rounded-full" 1376 class="object-cover w-full h-full rounded-full"
1377 src="https://images.unsplash.com/photo-1546456073-6712f79251bb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" 1377 src="https://images.unsplash.com/photo-1546456073-6712f79251bb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
1378 alt="" 1378 alt=""
1379 loading="lazy" 1379 loading="lazy"
1380 /> 1380 />
1381 <div 1381 <div
1382 class="absolute inset-0 rounded-full shadow-inner" 1382 class="absolute inset-0 rounded-full shadow-inner"
1383 aria-hidden="true" 1383 aria-hidden="true"
1384 ></div> 1384 ></div>
1385 </div> 1385 </div>
1386 <div> 1386 <div>
1387 <p class="font-semibold">Wenzel Dashington</p> 1387 <p class="font-semibold">Wenzel Dashington</p>
1388 <p class="text-xs text-gray-600 dark:text-gray-400"> 1388 <p class="text-xs text-gray-600 dark:text-gray-400">
1389 Actor 1389 Actor
1390 </p> 1390 </p>
1391 </div> 1391 </div>
1392 </div> 1392 </div>
1393 </td> 1393 </td>
1394 <td class="px-4 py-3 text-sm"> 1394 <td class="px-4 py-3 text-sm">
1395 $ 863.45 1395 $ 863.45
1396 </td> 1396 </td>
1397 <td class="px-4 py-3 text-xs"> 1397 <td class="px-4 py-3 text-xs">
1398 <span 1398 <span
1399 class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700" 1399 class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700"
1400 > 1400 >
1401 Expired 1401 Expired
1402 </span> 1402 </span>
1403 </td> 1403 </td>
1404 <td class="px-4 py-3 text-sm"> 1404 <td class="px-4 py-3 text-sm">
1405 6/10/2020 1405 6/10/2020
1406 </td> 1406 </td>
1407 </tr> 1407 </tr>
1408 1408
1409 <tr class="text-gray-700 dark:text-gray-400"> 1409 <tr class="text-gray-700 dark:text-gray-400">
1410 <td class="px-4 py-3"> 1410 <td class="px-4 py-3">
1411 <div class="flex items-center text-sm"> 1411 <div class="flex items-center text-sm">
1412 1412
1413 <div 1413 <div
1414 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1414 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1415 > 1415 >
1416 <img 1416 <img
1417 class="object-cover w-full h-full rounded-full" 1417 class="object-cover w-full h-full rounded-full"
1418 src="https://images.unsplash.com/photo-1502720705749-871143f0e671?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=b8377ca9f985d80264279f277f3a67f5" 1418 src="https://images.unsplash.com/photo-1502720705749-871143f0e671?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=b8377ca9f985d80264279f277f3a67f5"
1419 alt="" 1419 alt=""
1420 loading="lazy" 1420 loading="lazy"
1421 /> 1421 />
1422 <div 1422 <div
1423 class="absolute inset-0 rounded-full shadow-inner" 1423 class="absolute inset-0 rounded-full shadow-inner"
1424 aria-hidden="true" 1424 aria-hidden="true"
1425 ></div> 1425 ></div>
1426 </div> 1426 </div>
1427 <div> 1427 <div>
1428 <p class="font-semibold">Dave Li</p> 1428 <p class="font-semibold">Dave Li</p>
1429 <p class="text-xs text-gray-600 dark:text-gray-400"> 1429 <p class="text-xs text-gray-600 dark:text-gray-400">
1430 Influencer 1430 Influencer
1431 </p> 1431 </p>
1432 </div> 1432 </div>
1433 </div> 1433 </div>
1434 </td> 1434 </td>
1435 <td class="px-4 py-3 text-sm"> 1435 <td class="px-4 py-3 text-sm">
1436 $ 863.45 1436 $ 863.45
1437 </td> 1437 </td>
1438 <td class="px-4 py-3 text-xs"> 1438 <td class="px-4 py-3 text-xs">
1439 <span 1439 <span
1440 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" 1440 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
1441 > 1441 >
1442 Approved 1442 Approved
1443 </span> 1443 </span>
1444 </td> 1444 </td>
1445 <td class="px-4 py-3 text-sm"> 1445 <td class="px-4 py-3 text-sm">
1446 6/10/2020 1446 6/10/2020
1447 </td> 1447 </td>
1448 </tr> 1448 </tr>
1449 1449
1450 <tr class="text-gray-700 dark:text-gray-400"> 1450 <tr class="text-gray-700 dark:text-gray-400">
1451 <td class="px-4 py-3"> 1451 <td class="px-4 py-3">
1452 <div class="flex items-center text-sm"> 1452 <div class="flex items-center text-sm">
1453 1453
1454 <div 1454 <div
1455 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1455 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1456 > 1456 >
1457 <img 1457 <img
1458 class="object-cover w-full h-full rounded-full" 1458 class="object-cover w-full h-full rounded-full"
1459 src="https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" 1459 src="https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
1460 alt="" 1460 alt=""
1461 loading="lazy" 1461 loading="lazy"
1462 /> 1462 />
1463 <div 1463 <div
1464 class="absolute inset-0 rounded-full shadow-inner" 1464 class="absolute inset-0 rounded-full shadow-inner"
1465 aria-hidden="true" 1465 aria-hidden="true"
1466 ></div> 1466 ></div>
1467 </div> 1467 </div>
1468 <div> 1468 <div>
1469 <p class="font-semibold">Maria Ramovic</p> 1469 <p class="font-semibold">Maria Ramovic</p>
1470 <p class="text-xs text-gray-600 dark:text-gray-400"> 1470 <p class="text-xs text-gray-600 dark:text-gray-400">
1471 Runner 1471 Runner
1472 </p> 1472 </p>
1473 </div> 1473 </div>
1474 </div> 1474 </div>
1475 </td> 1475 </td>
1476 <td class="px-4 py-3 text-sm"> 1476 <td class="px-4 py-3 text-sm">
1477 $ 863.45 1477 $ 863.45
1478 </td> 1478 </td>
1479 <td class="px-4 py-3 text-xs"> 1479 <td class="px-4 py-3 text-xs">
1480 <span 1480 <span
1481 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" 1481 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
1482 > 1482 >
1483 Approved 1483 Approved
1484 </span> 1484 </span>
1485 </td> 1485 </td>
1486 <td class="px-4 py-3 text-sm"> 1486 <td class="px-4 py-3 text-sm">
1487 6/10/2020 1487 6/10/2020
1488 </td> 1488 </td>
1489 </tr> 1489 </tr>
1490 1490
1491 <tr class="text-gray-700 dark:text-gray-400"> 1491 <tr class="text-gray-700 dark:text-gray-400">
1492 <td class="px-4 py-3"> 1492 <td class="px-4 py-3">
1493 <div class="flex items-center text-sm"> 1493 <div class="flex items-center text-sm">
1494 1494
1495 <div 1495 <div
1496 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1496 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1497 > 1497 >
1498 <img 1498 <img
1499 class="object-cover w-full h-full rounded-full" 1499 class="object-cover w-full h-full rounded-full"
1500 src="https://images.unsplash.com/photo-1566411520896-01e7ca4726af?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" 1500 src="https://images.unsplash.com/photo-1566411520896-01e7ca4726af?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
1501 alt="" 1501 alt=""
1502 loading="lazy" 1502 loading="lazy"
1503 /> 1503 />
1504 <div 1504 <div
1505 class="absolute inset-0 rounded-full shadow-inner" 1505 class="absolute inset-0 rounded-full shadow-inner"
1506 aria-hidden="true" 1506 aria-hidden="true"
1507 ></div> 1507 ></div>
1508 </div> 1508 </div>
1509 <div> 1509 <div>
1510 <p class="font-semibold">Hitney Wouston</p> 1510 <p class="font-semibold">Hitney Wouston</p>
1511 <p class="text-xs text-gray-600 dark:text-gray-400"> 1511 <p class="text-xs text-gray-600 dark:text-gray-400">
1512 Singer 1512 Singer
1513 </p> 1513 </p>
1514 </div> 1514 </div>
1515 </div> 1515 </div>
1516 </td> 1516 </td>
1517 <td class="px-4 py-3 text-sm"> 1517 <td class="px-4 py-3 text-sm">
1518 $ 863.45 1518 $ 863.45
1519 </td> 1519 </td>
1520 <td class="px-4 py-3 text-xs"> 1520 <td class="px-4 py-3 text-xs">
1521 <span 1521 <span
1522 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" 1522 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
1523 > 1523 >
1524 Approved 1524 Approved
1525 </span> 1525 </span>
1526 </td> 1526 </td>
1527 <td class="px-4 py-3 text-sm"> 1527 <td class="px-4 py-3 text-sm">
1528 6/10/2020 1528 6/10/2020
1529 </td> 1529 </td>
1530 </tr> 1530 </tr>
1531 1531
1532 <tr class="text-gray-700 dark:text-gray-400"> 1532 <tr class="text-gray-700 dark:text-gray-400">
1533 <td class="px-4 py-3"> 1533 <td class="px-4 py-3">
1534 <div class="flex items-center text-sm"> 1534 <div class="flex items-center text-sm">
1535 1535
1536 <div 1536 <div
1537 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1537 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1538 > 1538 >
1539 <img 1539 <img
1540 class="object-cover w-full h-full rounded-full" 1540 class="object-cover w-full h-full rounded-full"
1541 src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" 1541 src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
1542 alt="" 1542 alt=""
1543 loading="lazy" 1543 loading="lazy"
1544 /> 1544 />
1545 <div 1545 <div
1546 class="absolute inset-0 rounded-full shadow-inner" 1546 class="absolute inset-0 rounded-full shadow-inner"
1547 aria-hidden="true" 1547 aria-hidden="true"
1548 ></div> 1548 ></div>
1549 </div> 1549 </div>
1550 <div> 1550 <div>
1551 <p class="font-semibold">Hans Burger</p> 1551 <p class="font-semibold">Hans Burger</p>
1552 <p class="text-xs text-gray-600 dark:text-gray-400"> 1552 <p class="text-xs text-gray-600 dark:text-gray-400">
1553 10x Developer 1553 10x Developer
1554 </p> 1554 </p>
1555 </div> 1555 </div>
1556 </div> 1556 </div>
1557 </td> 1557 </td>
1558 <td class="px-4 py-3 text-sm"> 1558 <td class="px-4 py-3 text-sm">
1559 $ 863.45 1559 $ 863.45
1560 </td> 1560 </td>
1561 <td class="px-4 py-3 text-xs"> 1561 <td class="px-4 py-3 text-xs">
1562 <span 1562 <span
1563 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" 1563 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
1564 > 1564 >
1565 Approved 1565 Approved
1566 </span> 1566 </span>
1567 </td> 1567 </td>
1568 <td class="px-4 py-3 text-sm"> 1568 <td class="px-4 py-3 text-sm">
1569 6/10/2020 1569 6/10/2020
1570 </td> 1570 </td>
1571 </tr> 1571 </tr>
1572 </tbody> 1572 </tbody>
1573 </table> 1573 </table>
1574 </div> 1574 </div>
1575 <div 1575 <div
1576 class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800" 1576 class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"
1577 > 1577 >
1578 <span class="flex items-center col-span-3"> 1578 <span class="flex items-center col-span-3">
1579 Showing 21-30 of 100 1579 Showing 21-30 of 100
1580 </span> 1580 </span>
1581 <span class="col-span-2"></span> 1581 <span class="col-span-2"></span>
1582 1582
1583 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> 1583 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
1584 <nav aria-label="Table navigation"> 1584 <nav aria-label="Table navigation">
1585 <ul class="inline-flex items-center"> 1585 <ul class="inline-flex items-center">
1586 <li> 1586 <li>
1587 <button 1587 <button
1588 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" 1588 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
1589 aria-label="Previous" 1589 aria-label="Previous"
1590 > 1590 >
1591 <svg 1591 <svg
1592 aria-hidden="true" 1592 aria-hidden="true"
1593 class="w-4 h-4 fill-current" 1593 class="w-4 h-4 fill-current"
1594 viewBox="0 0 20 20" 1594 viewBox="0 0 20 20"
1595 > 1595 >
1596 <path 1596 <path
1597 d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" 1597 d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
1598 clip-rule="evenodd" 1598 clip-rule="evenodd"
1599 fill-rule="evenodd" 1599 fill-rule="evenodd"
1600 ></path> 1600 ></path>
1601 </svg> 1601 </svg>
1602 </button> 1602 </button>
1603 </li> 1603 </li>
1604 <li> 1604 <li>
1605 <button 1605 <button
1606 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1606 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1607 > 1607 >
1608 1 1608 1
1609 </button> 1609 </button>
1610 </li> 1610 </li>
1611 <li> 1611 <li>
1612 <button 1612 <button
1613 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1613 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1614 > 1614 >
1615 2 1615 2
1616 </button> 1616 </button>
1617 </li> 1617 </li>
1618 <li> 1618 <li>
1619 <button 1619 <button
1620 class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple" 1620 class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple"
1621 > 1621 >
1622 3 1622 3
1623 </button> 1623 </button>
1624 </li> 1624 </li>
1625 <li> 1625 <li>
1626 <button 1626 <button
1627 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1627 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1628 > 1628 >
1629 4 1629 4
1630 </button> 1630 </button>
1631 </li> 1631 </li>
1632 <li> 1632 <li>
1633 <span class="px-3 py-1">...</span> 1633 <span class="px-3 py-1">...</span>
1634 </li> 1634 </li>
1635 <li> 1635 <li>
1636 <button 1636 <button
1637 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1637 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1638 > 1638 >
1639 8 1639 8
1640 </button> 1640 </button>
1641 </li> 1641 </li>
1642 <li> 1642 <li>
1643 <button 1643 <button
1644 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1644 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1645 > 1645 >
1646 9 1646 9
1647 </button> 1647 </button>
1648 </li> 1648 </li>
1649 <li> 1649 <li>
1650 <button 1650 <button
1651 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" 1651 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
1652 aria-label="Next" 1652 aria-label="Next"
1653 > 1653 >
1654 <svg 1654 <svg
1655 class="w-4 h-4 fill-current" 1655 class="w-4 h-4 fill-current"
1656 aria-hidden="true" 1656 aria-hidden="true"
1657 viewBox="0 0 20 20" 1657 viewBox="0 0 20 20"
1658 > 1658 >
1659 <path 1659 <path
1660 d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" 1660 d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
1661 clip-rule="evenodd" 1661 clip-rule="evenodd"
1662 fill-rule="evenodd" 1662 fill-rule="evenodd"
1663 ></path> 1663 ></path>
1664 </svg> 1664 </svg>
1665 </button> 1665 </button>
1666 </li> 1666 </li>
1667 </ul> 1667 </ul>
1668 </nav> 1668 </nav>
1669 </span> 1669 </span>
1670 </div> 1670 </div>
1671 </div> 1671 </div>
1672 --> 1672 -->
1673 <!-- Charts --> 1673 <!-- Charts -->
1674 <!-- 1674 <!--
1675 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> 1675 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200">
1676 Графики 1676 Графики
1677 </h2> 1677 </h2>
1678 <div class="grid gap-6 mb-8 md:grid-cols-2"> 1678 <div class="grid gap-6 mb-8 md:grid-cols-2">
1679 <div 1679 <div
1680 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1680 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1681 > 1681 >
1682 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 1682 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1683 Revenue 1683 Revenue
1684 </h4> 1684 </h4>
1685 <canvas id="pie"></canvas> 1685 <canvas id="pie"></canvas>
1686 <div 1686 <div
1687 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 1687 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1688 > 1688 >
1689 1689
1690 <div class="flex items-center"> 1690 <div class="flex items-center">
1691 <span 1691 <span
1692 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" 1692 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full"
1693 ></span> 1693 ></span>
1694 <span>Shirts</span> 1694 <span>Shirts</span>
1695 </div> 1695 </div>
1696 <div class="flex items-center"> 1696 <div class="flex items-center">
1697 <span 1697 <span
1698 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 1698 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1699 ></span> 1699 ></span>
1700 <span>Shoes</span> 1700 <span>Shoes</span>
1701 </div> 1701 </div>
1702 <div class="flex items-center"> 1702 <div class="flex items-center">
1703 <span 1703 <span
1704 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 1704 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1705 ></span> 1705 ></span>
1706 <span>Bags</span> 1706 <span>Bags</span>
1707 </div> 1707 </div>
1708 </div> 1708 </div>
1709 </div> 1709 </div>
1710 <div 1710 <div
1711 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1711 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1712 > 1712 >
1713 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 1713 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1714 Traffic 1714 Traffic
1715 </h4> 1715 </h4>
1716 <canvas id="line"></canvas> 1716 <canvas id="line"></canvas>
1717 <div 1717 <div
1718 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 1718 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1719 > 1719 >
1720 1720
1721 <div class="flex items-center"> 1721 <div class="flex items-center">
1722 <span 1722 <span
1723 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 1723 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1724 ></span> 1724 ></span>
1725 <span>Organic</span> 1725 <span>Organic</span>
1726 </div> 1726 </div>
1727 <div class="flex items-center"> 1727 <div class="flex items-center">
1728 <span 1728 <span
1729 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 1729 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1730 ></span> 1730 ></span>
1731 <span>Paid</span> 1731 <span>Paid</span>
1732 </div> 1732 </div>
1733 </div> 1733 </div>
1734 </div> 1734 </div>
1735 </div> 1735 </div>
1736 --> 1736 -->
1737 </div> 1737 </div>
1738 </main> 1738 </main>
1739 </div> 1739 </div>
1740 </div> 1740 </div>
1741 </body> 1741 </body>
1742 @yield('script') 1742 @yield('script')
1743 </html> 1743 </html>
1744 1744
1 <?php 1 <?php
2 2
3 use App\Http\Controllers\Admin\AdminController; 3 use App\Http\Controllers\Admin\AdminController;
4 use App\Http\Controllers\Admin\CategoryController; 4 use App\Http\Controllers\Admin\CategoryController;
5 use App\Http\Controllers\Admin\EmployersController; 5 use App\Http\Controllers\Admin\EmployersController;
6 use App\Http\Controllers\Admin\InfoBloksController; 6 use App\Http\Controllers\Admin\InfoBloksController;
7 use App\Http\Controllers\Admin\JobTitlesController; 7 use App\Http\Controllers\Admin\JobTitlesController;
8 use App\Http\Controllers\Admin\UsersController; 8 use App\Http\Controllers\Admin\UsersController;
9 use App\Http\Controllers\Admin\WorkersController; 9 use App\Http\Controllers\Admin\WorkersController;
10 use App\Http\Controllers\Auth\LoginController; 10 use App\Http\Controllers\Auth\LoginController;
11 use App\Http\Controllers\Auth\RegisterController; 11 use App\Http\Controllers\Auth\RegisterController;
12 use App\Http\Controllers\CKEditorController; 12 use App\Http\Controllers\CKEditorController;
13 use App\Models\User; 13 use App\Models\User;
14 use App\Http\Controllers\MainController; 14 use App\Http\Controllers\MainController;
15 use App\Http\Controllers\HomeController; 15 use App\Http\Controllers\HomeController;
16 use Illuminate\Support\Facades\Route; 16 use Illuminate\Support\Facades\Route;
17 use App\Http\Controllers\Admin\CompanyController; 17 use App\Http\Controllers\Admin\CompanyController;
18 use App\Http\Controllers\Admin\Ad_EmployersController; 18 use App\Http\Controllers\Admin\Ad_EmployersController;
19 use App\Http\Controllers\Admin\MsgAnswersController; 19 use App\Http\Controllers\Admin\MsgAnswersController;
20 use App\Http\Controllers\Admin\GroupsController; 20 use App\Http\Controllers\Admin\GroupsController;
21 use App\Http\Controllers\PagesController; 21 use App\Http\Controllers\PagesController;
22 use Illuminate\Support\Facades\Storage;
22 23
23 24
24 /* 25 /*
25 |-------------------------------------------------------------------------- 26 |--------------------------------------------------------------------------
26 | Web Routes 27 | Web Routes
27 |-------------------------------------------------------------------------- 28 |--------------------------------------------------------------------------
28 | 29 |
29 | Here is where you can register web routes for your application. These 30 | Here is where you can register web routes for your application. These
30 | routes are loaded by the RouteServiceProvider within a group which 31 | routes are loaded by the RouteServiceProvider within a group which
31 | contains the "web" middleware group. Now create something great! 32 | contains the "web" middleware group. Now create something great!
32 | 33 |
33 */ 34 */
34 /* 35 /*
35 Route::get('/', function () { 36 Route::get('/', function () {
36 return view('welcome'); 37 return view('welcome');
37 })->name('index'); 38 })->name('index');
38 */ 39 */
39 Route::get('/', [MainController::class, 'index'])->name('index'); 40 Route::get('/', [MainController::class, 'index'])->name('index');
40 41
41 //Роуты авторизации, регистрации, восстановления, аутентификации 42 //Роуты авторизации, регистрации, восстановления, аутентификации
42 Auth::routes(['verify' => true]); 43 Auth::routes(['verify' => true]);
43 //Личный кабинет пользователя 44 //Личный кабинет пользователя
44 Route::get('/home', [HomeController::class, 'index'])->name('home'); 45 Route::get('/home', [HomeController::class, 'index'])->name('home');
45 46
46 /* 47 /*
47 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { 48 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) {
48 $user = User::where('email',$request->input('email'))->first(); 49 $user = User::where('email',$request->input('email'))->first();
49 50
50 $user->sendEmailVerificationNotification(); 51 $user->sendEmailVerificationNotification();
51 52
52 return 'your response'; 53 return 'your response';
53 })->middleware('throttle:6,1')->name('verification.resend'); 54 })->middleware('throttle:6,1')->name('verification.resend');
54 */ 55 */
55 56
56 // Авторизация, регистрация в админку 57 // Авторизация, регистрация в админку
57 Route::group([ 58 Route::group([
58 'as' => 'admin.', // имя маршрута, например auth.index 59 'as' => 'admin.', // имя маршрута, например auth.index
59 'prefix' => 'admin', // префикс маршрута, например auth/index 60 'prefix' => 'admin', // префикс маршрута, например auth/index
60 'middleware' => ['guest'], 61 'middleware' => ['guest'],
61 ], function () { 62 ], function () {
62 // Форма регистрации 63 // Форма регистрации
63 Route::get('register', [AdminController::class, 'register'])->name('register'); 64 Route::get('register', [AdminController::class, 'register'])->name('register');
64 65
65 // Создание пользователя 66 // Создание пользователя
66 Route::post('register', [AdminController::class, 'create'])->name('create'); 67 Route::post('register', [AdminController::class, 'create'])->name('create');
67 //Форма входа 68 //Форма входа
68 Route::get('login', [AdminController::class, 'login'])->name('login'); 69 Route::get('login', [AdminController::class, 'login'])->name('login');
69 70
70 // аутентификация 71 // аутентификация
71 Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); 72 Route::post('login', [AdminController::class, 'autenticate'])->name('auth');
72 73
73 }); 74 });
74 75
75 // Личный кабинет админки 76 // Личный кабинет админки
76 Route::group([ 77 Route::group([
77 'as' => 'admin.', // имя маршрута, например auth.index 78 'as' => 'admin.', // имя маршрута, например auth.index
78 'prefix' => 'admin', // префикс маршрута, например auth/index 79 'prefix' => 'admin', // префикс маршрута, например auth/index
79 'middleware' => ['auth'], ['admin'], 80 'middleware' => ['auth'], ['admin'],
80 ], function() { 81 ], function() {
81 82
82 // выход 83 // выход
83 Route::get('logout', [AdminController::class, 'logout'])->name('logout'); 84 Route::get('logout', [AdminController::class, 'logout'])->name('logout');
84 85
85 // кабинет главная страница 86 // кабинет главная страница
86 Route::get('cabinet', [AdminController::class, 'index'])->name('index'); 87 Route::get('cabinet', [AdminController::class, 'index'])->name('index');
87 88
88 // кабинет профиль админа - форма 89 // кабинет профиль админа - форма
89 Route::get('profile', [AdminController::class, 'profile'])->name('profile'); 90 Route::get('profile', [AdminController::class, 'profile'])->name('profile');
90 // кабинет профиль админа - сохранение формы 91 // кабинет профиль админа - сохранение формы
91 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); 92 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile');
92 93
94 //кабинет сообщения админа
95 //Route::get('messages', [AdminController::class, 'profile'])->name('profile');
96
97
93 // кабинет профиль - форма пароли 98 // кабинет профиль - форма пароли
94 Route::get('password', [AdminController::class, 'profile_password'])->name('password'); 99 Route::get('password', [AdminController::class, 'profile_password'])->name('password');
95 // кабинет профиль - сохранение формы пароля 100 // кабинет профиль - сохранение формы пароля
96 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); 101 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password');
97 102
98 103
99 // кабинет профиль пользователя - форма 104 // кабинет профиль пользователя - форма
100 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); 105 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile');
101 // кабинет профиль пользователя - сохранение формы 106 // кабинет профиль пользователя - сохранение формы
102 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); 107 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile');
103 108
104 // кабинет профиль работодатель - форма 109 // кабинет профиль работодатель - форма
105 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); 110 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile');
106 // кабинет профиль работодатель - сохранение формы 111 // кабинет профиль работодатель - сохранение формы
107 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); 112 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile');
108 113
109 // кабинет профиль работник - форма 114 // кабинет профиль работник - форма
110 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile'); 115 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile');
111 116
112 // кабинет настройки сайта - форма 117 // кабинет настройки сайта - форма
113 Route::get('config', [AdminController::class, 'config_form'])->name('config'); 118 Route::get('config', [AdminController::class, 'config_form'])->name('config');
114 // кабинет настройки сайта сохранение формы 119 // кабинет настройки сайта сохранение формы
115 Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); 120 Route::post('config', [AdminController::class, 'store_config'])->name('store_config');
116 121
117 // кабинет - пользователи 122 // кабинет - пользователи
118 Route::get('users', [UsersController::class, 'index'])->name('users'); 123 Route::get('users', [UsersController::class, 'index'])->name('users');
119 124
120 // кабинет - пользователи 125 // кабинет - пользователи
121 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); 126 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users');
122 127
123 // кабинет - работодатели 128 // кабинет - работодатели
124 Route::get('employers', [EmployersController::class, 'index'])->name('employers'); 129 Route::get('employers', [EmployersController::class, 'index'])->name('employers');
125 130
126 // кабинет - соискатели 131 // кабинет - соискатели
127 Route::get('workers', [WorkersController::class, 'index'])->name('workers'); 132 Route::get('workers', [WorkersController::class, 'index'])->name('workers');
128 133
129 // кабинет - вакансии 134 // кабинет - вакансии
130 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); 135 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers');
131 136
132 // кабинет - категории 137 // кабинет - категории
133 //Route::get('categories', [AdminController::class, 'index'])->name('categories'); 138 //Route::get('categories', [AdminController::class, 'index'])->name('categories');
134 /* 139 /*
135 * CRUD-операции над Справочником Категории 140 * CRUD-операции над Справочником Категории
136 */ 141 */
137 Route::resource('categories', CategoryController::class, ['except' => ['show']]); 142 Route::resource('categories', CategoryController::class, ['except' => ['show']]);
138 143
139 144
140 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); 145 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');
141 /* 146 /*
142 * кабинет - CRUD-операции по справочнику должности 147 * кабинет - CRUD-операции по справочнику должности
143 * 148 *
144 */ 149 */
145 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); 150 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]);
146 151
147 // кабинет - сообщения 152 // кабинет - сообщения (чтение чужих)
148 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); 153 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages');
154 // кабинет - сообщения (админские)
155 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages');
156 // кабинет - сообщения (админские)
157 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post');
149 158
150 /* 159 /*
151 * Расписанный подход в описании каждой директорий групп пользователей. 160 * Расписанный подход в описании каждой директорий групп пользователей.
152 */ 161 */
153 // кабинет - группы пользователей 162 // кабинет - группы пользователей
154 Route::get('groups', [GroupsController::class, 'index'])->name('groups'); 163 Route::get('groups', [GroupsController::class, 'index'])->name('groups');
155 // кабинет - добавление форма группы пользователей 164 // кабинет - добавление форма группы пользователей
156 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); 165 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group');
157 // кабинет - сохранение формы группы пользователей 166 // кабинет - сохранение формы группы пользователей
158 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); 167 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store');
159 // кабинет - редактирование форма группы пользователей 168 // кабинет - редактирование форма группы пользователей
160 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); 169 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group');
161 // кабинет - сохранение редактированной формы группы пользователей 170 // кабинет - сохранение редактированной формы группы пользователей
162 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); 171 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group');
163 // кабинет - удаление группы пользователей 172 // кабинет - удаление группы пользователей
164 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); 173 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group');
165 174
175
166 // кабинет - список админов 176 // кабинет - список админов
167 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); 177 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin');
168 178
179
169 /////редактор////// кабинет - редактор сайта//////////////////////// 180 /////редактор////// кабинет - редактор сайта////////////////////////
170 Route::get('editor-site', function() { 181 Route::get('editor-site', function() {
171 return view('admin.editor.index'); 182 return view('admin.editor.index');
172 })->name('editor-site'); 183 })->name('editor-site');
173 184
174 185
175 // кабинет - редактор шапки-футера сайта 186 // кабинет - редактор шапки-футера сайта
176 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); 187 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks');
177 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); 188 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block');
178 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); 189 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store');
179 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); 190 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block');
180 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); 191 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block');
181 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); 192 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block');
182 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); 193 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block');
183 194
184 195
185 // кабинет - редактор должности на главной 196 // кабинет - редактор должности на главной
186 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); 197 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main');
187 198
188 // кабинет - редактор работодатели на главной 199 // кабинет - редактор работодатели на главной
189 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); 200 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main');
190 201
191 202
192 // кабинет - редактор seo-сайта 203 // кабинет - редактор seo-сайта
193 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); 204 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo');
194 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); 205 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo');
195 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); 206 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store');
196 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); 207 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo');
197 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); 208 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo');
198 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); 209 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo');
199 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); 210 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo');
200 211
201 212
202 // кабинет - редактор страниц 213 // кабинет - редактор страниц
203 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); 214 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages');
204 // кабинет - добавление страницы 215 // кабинет - добавление страницы
205 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); 216 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page');
206 // кабинет - сохранение формы страницы 217 // кабинет - сохранение формы страницы
207 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); 218 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store');
208 // кабинет - редактирование форма страницы 219 // кабинет - редактирование форма страницы
209 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); 220 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page');
210 // кабинет - сохранение редактированной формы страницы 221 // кабинет - сохранение редактированной формы страницы
211 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); 222 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page');
212 // кабинет - удаление страницы 223 // кабинет - удаление страницы
213 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); 224 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page');
214 225
215 226
216 // кабинет - реклама сайта 227 // кабинет - реклама сайта
217 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); 228 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames');
218 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); 229 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames');
219 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); 230 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store');
220 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); 231 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames');
221 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); 232 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames');
222 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); 233 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames');
223 //////////////////////////////////////////////////////////////////////// 234 ////////////////////////////////////////////////////////////////////////
224 235
225 236
226 // кабинет - отзывы о работодателе для модерации 237 // кабинет - отзывы о работодателе для модерации
227 Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); 238 Route::get('answers', [EmployersController::class, 'answers'])->name('answers');
228 239
229 // Общая страница статистики 240 // Общая страница статистики
230 Route::get('statics', function () { 241 Route::get('statics', function () {
231 return view('admin.static.index'); 242 return view('admin.static.index');
232 })->name('statics'); 243 })->name('statics');
233 244
234 // кабинет - статистика работников 245 // кабинет - статистика работников
235 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); 246 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers');
236 247
237 // кабинет - статистика вакансий работодателя 248 // кабинет - статистика вакансий работодателя
238 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); 249 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads');
239 250
240 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника 251 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника
241 /* 252 /*
242 * CRUD-операции над справочником дипломы и документы 253 * CRUD-операции над справочником дипломы и документы
243 */ 254 */
244 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); 255 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks');
245 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); 256 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]);
246 257
247 // кабинет - роли пользователя 258 // кабинет - роли пользователя
248 Route::get('roles', [UsersController::class, 'roles'])->name('roles'); 259 Route::get('roles', [UsersController::class, 'roles'])->name('roles');
249 260
261 Route::get('logs', function() {
262 $files = Storage::files('logs/laravel.log');
263 print_r($files);
264 })->name('logs');
265
250 }); 266 });
251 267
252 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); 268 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload');
253 269
254 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); 270 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page');
255 271