Commit 80e6ce32abdb9d0b9a3eddd22b7c9203912d6ab2

Authored by Андрей Ларионов
Exists in master

Merge branch 'master' of http://gitlab.nologostudio.ru/alarionov/rekamore-su

Showing 14 changed files 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\Ad_employer;
7 use App\Models\Answer; 7 use App\Models\Answer;
8 use App\Models\CategoryEmp; 8 use App\Models\CategoryEmp;
9 use App\Models\Employer; 9 use App\Models\Employer;
10 use App\Models\Static_ad; 10 use App\Models\Static_ad;
11 use App\Models\User; 11 use App\Models\User;
12 use Illuminate\Http\Request; 12 use Illuminate\Http\Request;
13 use Illuminate\Support\Facades\DB; 13 use Illuminate\Support\Facades\DB;
14 use Illuminate\Support\Facades\Storage; 14 use Illuminate\Support\Facades\Storage;
15 use Illuminate\Support\Facades\Validator; 15 use Illuminate\Support\Facades\Validator;
16 16
17 class EmployersController extends Controller 17 class EmployersController extends Controller
18 { 18 {
19 public function index(Request $request) { 19 public function index(Request $request) {
20 //$all_employer = User::where('is_worker', '0')->count(); 20 //$all_employer = User::where('is_worker', '0')->count();
21 $all_public = -1; 21 $all_public = -1;
22 $all_status = -1; 22 $all_status = -1;
23 if ($request->ajax()) { 23 if ($request->ajax()) {
24 $user = User::find($request->id); 24 $user = User::find($request->id);
25 $request->offsetUnset('id'); 25 $request->offsetUnset('id');
26 $user->update($request->all()); 26 $user->update($request->all());
27 } 27 }
28 28
29 $users = User::with('employers')->select(['users.*','users.id as usr_id', 'emp.id as emp_id', 'emp.code as code_id', 'emp.logo as emp_logo', 'emp.*']) 29 $users = User::with('employers')->select(['users.*','users.id as usr_id', 'emp.id as emp_id', 'emp.code as code_id', 'emp.logo as emp_logo', 'emp.*'])
30 ->join('employers as emp','emp.user_id','users.id') 30 ->join('employers as emp','emp.user_id','users.id')
31 ->where('users.is_worker', '0')->Realuser(); //->Notadmin(); 31 ->where('users.is_worker', '0')->Realuser(); //->Notadmin();
32 $all_employer = $users->count(); 32 $all_employer = $users->count();
33 33
34 $all_public = Employer::where('status_hidden', '=', '0')-> 34 $all_public = Employer::where('status_hidden', '=', '0')->
35 count(); 35 count();
36 36
37 $all_status = Employer::where(function($query) { 37 $all_status = Employer::where(function($query) {
38 $query->Where('category', '=', 'Не оплачен') 38 $query->Where('category', '=', 'Не оплачен')
39 ->orWhere('category', '=', 'Не определен') 39 ->orWhere('category', '=', 'Не определен')
40 ->orWhere('category', '=', 'Согласование'); 40 ->orWhere('category', '=', 'Согласование');
41 })->count(); 41 })->count();
42 42
43 $find_cat = ""; 43 $find_cat = "";
44 if (isset($request->category)) { 44 if (isset($request->category)) {
45 if ($request->category != 'Все категории') { 45 if ($request->category != 'Все категории') {
46 $users = $users->where('category', '=', $request->category); 46 $users = $users->where('category', '=', $request->category);
47 $find_cat = $request->category; 47 $find_cat = $request->category;
48 } 48 }
49 } 49 }
50 $find_key = ""; 50 $find_key = "";
51 51
52 if (isset($request->find)) { 52 if (isset($request->find)) {
53 $find_key = $request->find; 53 $find_key = $request->find;
54 $users = $users->where(function($query) use($find_key) { 54 $users = $users->where(function($query) use($find_key) {
55 $query->Where('users.name', 'LIKE', "%$find_key%") 55 $query->Where('users.name', 'LIKE', "%$find_key%")
56 ->orWhere('emp.email', 'LIKE', "%$find_key%") 56 ->orWhere('emp.email', 'LIKE', "%$find_key%")
57 ->orWhere('emp.telephone', 'LIKE', "%$find_key%"); 57 ->orWhere('emp.telephone', 'LIKE', "%$find_key%");
58 }); 58 });
59 } 59 }
60 60
61 //DB::enableQueryLog(); 61 //DB::enableQueryLog();
62 $all_current = $users->count();
62 $users = $users->paginate(15); 63 $users = $users->paginate(15);
63 //dd(DB::getQueryLog()); 64 //dd(DB::getQueryLog());
64 65
65 $select_category = CategoryEmp::query()->active()->get(); 66 $select_category = CategoryEmp::query()->active()->get();
66 67
67 if ($request->ajax()) { 68 if ($request->ajax()) {
68 return view('admin.employer.index_ajax', compact('users')); 69 return view('admin.employer.index_ajax', compact('users'));
69 } else { 70 } else {
70 return view('admin.employer.index', compact('users', 71 return view('admin.employer.index', compact('users',
71 'find_key', 72 'find_key',
72 'find_cat', 73 'find_cat',
73 'all_employer', 74 'all_employer',
74 'all_public', 75 'all_public',
75 'all_status', 76 'all_status',
77 'all_current',
76 'select_category')); 78 'select_category'));
77 } 79 }
78 } 80 }
79 81
80 public function comment_read(Employer $employer) { 82 public function comment_read(Employer $employer) {
81 return view('admin.employer.comment', compact('employer')); 83 return view('admin.employer.comment', compact('employer'));
82 } 84 }
83 85
84 public function form_update_employer(Employer $employer) { 86 public function form_update_employer(Employer $employer) {
85 $select_category = CategoryEmp::query()->active()->get(); 87 $select_category = CategoryEmp::query()->active()->get();
86 return view('admin.employer.edit', compact('employer', 'select_category')); 88 return view('admin.employer.edit', compact('employer', 'select_category'));
87 } 89 }
88 90
89 public function update_employer(Employer $employer, Request $request) 91 public function update_employer(Employer $employer, Request $request)
90 { 92 {
91 $params = $request->all(); 93 $params = $request->all();
92 unset($params['logo']); 94 unset($params['logo']);
93 unset($params['telephone']); 95 unset($params['telephone']);
94 unset($params['email']); 96 unset($params['email']);
95 unset($params['address']); 97 unset($params['address']);
96 unset($params['site']); 98 unset($params['site']);
97 unset($params['status_hidden']); 99 unset($params['status_hidden']);
98 unset($params['oficial_status']); 100 unset($params['oficial_status']);
99 unset($params['social_is']); 101 unset($params['social_is']);
100 unset($params['sending_is']); 102 unset($params['sending_is']);
101 unset($params['category']); 103 unset($params['category']);
102 unset($params['comment_admin']); 104 unset($params['comment_admin']);
103 105
104 $rules = [ 106 $rules = [
105 'name' => 'required|string|max:255', 107 'name' => 'required|string|max:255',
106 ]; 108 ];
107 109
108 $messages = [ 110 $messages = [
109 'required' => 'Укажите обязательное поле «:attribute»', 111 'required' => 'Укажите обязательное поле «:attribute»',
110 'confirmed' => 'Пароли не совпадают', 112 'confirmed' => 'Пароли не совпадают',
111 'email' => 'Введите корректный email', 113 'email' => 'Введите корректный email',
112 'min' => [ 114 'min' => [
113 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 115 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
114 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 116 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
115 ], 117 ],
116 'max' => [ 118 'max' => [
117 'string' => 'Поле «:attribute» должно быть не больше :max символов', 119 'string' => 'Поле «:attribute» должно быть не больше :max символов',
118 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 120 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
119 ], 121 ],
120 ]; 122 ];
121 123
122 $validator = Validator::make($params, $rules, $messages); 124 $validator = Validator::make($params, $rules, $messages);
123 125
124 if ($validator->fails()) { 126 if ($validator->fails()) {
125 return back()->withErrors($validator)->withInput(); //->route('admin.register') 127 return back()->withErrors($validator)->withInput(); //->route('admin.register')
126 128
127 } else { 129 } else {
128 130
129 //$user = User::find($employer->user_id); 131 //$user = User::find($employer->user_id);
130 $user_id = $employer->user_id; 132 $user_id = $employer->user_id;
131 $employer->telephone = $request->telephone; 133 $employer->telephone = $request->telephone;
132 $employer->email = $request->email; 134 $employer->email = $request->email;
133 $employer->address = $request->address; 135 $employer->address = $request->address;
134 $employer->site = $request->site; 136 $employer->site = $request->site;
135 $employer->text = $request->text; 137 $employer->text = $request->text;
136 $employer->status_hidden = $request->status_hidden; 138 $employer->status_hidden = $request->status_hidden;
137 $employer->oficial_status = $request->oficial_status; 139 $employer->oficial_status = $request->oficial_status;
138 $employer->social_is = $request->social_is; 140 $employer->social_is = $request->social_is;
139 $employer->sending_is = $request->sending_is; 141 $employer->sending_is = $request->sending_is;
140 $employer->category = $request->category; 142 $employer->category = $request->category;
141 $employer->comment_admin = $request->comment_admin; 143 $employer->comment_admin = $request->comment_admin;
142 144
143 if ($request->has('logo')) { 145 if ($request->has('logo')) {
144 if (!empty($employer->logo)) { 146 if (!empty($employer->logo)) {
145 Storage::delete($employer->logo); 147 Storage::delete($employer->logo);
146 } 148 }
147 $employer->logo = $request->file('logo')->store("employer/$user_id", 'public'); 149 $employer->logo = $request->file('logo')->store("employer/$user_id", 'public');
148 } 150 }
149 $employer->save(); 151 $employer->save();
150 152
151 $user = User::find($user_id); 153 $user = User::find($user_id);
152 $user->update($params); 154 $user->update($params);
153 155
154 return redirect()->route('admin.employer-profile', ['employer' => $employer->id]) 156 return redirect()->route('admin.employer-profile', ['employer' => $employer->id])
155 ->with('success', 'Данные были успешно сохранены'); 157 ->with('success', 'Данные были успешно сохранены');
156 } 158 }
157 } 159 }
158 160
159 // Удаление работодателя, вакансий и профиля юзера 161 // Удаление работодателя, вакансий и профиля юзера
160 public function delete_employer(Employer $employer, User $user) { 162 public function delete_employer(Employer $employer, User $user) {
161 try { 163 try {
162 if (!empty($employer)) { 164 if (!empty($employer)) {
163 if (!empty($employer->logo)) { 165 if (!empty($employer->logo)) {
164 Storage::delete($employer->logo); 166 Storage::delete($employer->logo);
165 } 167 }
166 168
167 foreach($employer->ads as $ad) { 169 foreach($employer->ads as $ad) {
168 $ads = Ad_employer::find($ad->id); 170 $ads = Ad_employer::find($ad->id);
169 $ads->employer_id = 2; 171 $ads->employer_id = 2;
170 $ads->is_remove = 1; 172 $ads->is_remove = 1;
171 $ads->save(); 173 $ads->save();
172 } 174 }
173 175
174 $employer->delete(); 176 $employer->delete();
175 } 177 }
176 } finally { 178 } finally {
177 $user->delete(); 179 $user->delete();
178 } 180 }
179 181
180 return redirect()->route('admin.employers')->with('success', 'Данные были удалены о работодателе'); 182 return redirect()->route('admin.employers')->with('success', 'Данные были удалены о работодателе');
181 } 183 }
182 184
183 // кабинет - отзывы о работодателе для модерации 185 // кабинет - отзывы о работодателе для модерации
184 public function answers(Request $request) { 186 public function answers(Request $request) {
185 if ($request->ajax()) { 187 if ($request->ajax()) {
186 $user = Answer::find($request->id); 188 $user = Answer::find($request->id);
187 $request->offsetUnset('id'); 189 $request->offsetUnset('id');
188 $user->update($request->all()); 190 $user->update($request->all());
189 } 191 }
190 192
191 $answers = Answer::query()->orderByDesc('id')->paginate(15); 193 $answers = Answer::query()->orderByDesc('id')->paginate(15);
192 194
193 if ($request->ajax()) { 195 if ($request->ajax()) {
194 return view('admin.answers.index_ajax', compact('answers')); 196 return view('admin.answers.index_ajax', compact('answers'));
195 } else { 197 } else {
196 return view('admin.answers.index', compact('answers')); 198 return view('admin.answers.index', compact('answers'));
197 } 199 }
198 } 200 }
199 201
200 // кабинет - статистика вакансий работодателя 202 // кабинет - статистика вакансий работодателя
201 public function static_ads(Request $request) { 203 public function static_ads(Request $request) {
202 $stat = Static_ad::with('ads'); 204 $stat = Static_ad::with('ads');
203 $ads = Ad_employer::query()->active()->OrderBy('id')->get(); 205 $ads = Ad_employer::query()->active()->OrderBy('id')->get();
204 $periods = Static_ad::query()->distinct('year_month')->select('year_month')->get(); 206 $periods = Static_ad::query()->distinct('year_month')->select('year_month')->get();
205 if ($request->ajax()) { 207 if ($request->ajax()) {
206 if (isset($request->ad_employer_id)) 208 if (isset($request->ad_employer_id))
207 if (!$request->ad_employer_id == "0") 209 if (!$request->ad_employer_id == "0")
208 $stat = $stat->Where('ad_employer_id', '=', $request->ad_employer_id); 210 $stat = $stat->Where('ad_employer_id', '=', $request->ad_employer_id);
209 if (isset($request->year_month)) { 211 if (isset($request->year_month)) {
210 if (!$request->year_month == "0") 212 if (!$request->year_month == "0")
211 $stat = $stat->Where('year_month', '=', $request->year_month); 213 $stat = $stat->Where('year_month', '=', $request->year_month);
212 } 214 }
213 } 215 }
214 216
215 $stat = $stat->OrderByDesc('year_month'); 217 $stat = $stat->OrderByDesc('year_month');
216 $stat = $stat->paginate(15); 218 $stat = $stat->paginate(15);
217 219
218 if ($request->ajax()) 220 if ($request->ajax())
219 return view('admin.static.index_ads_ajax', compact('stat')); 221 return view('admin.static.index_ads_ajax', compact('stat'));
220 else 222 else
221 return view('admin.static.index_ads', compact('stat', 'ads', 'periods')); 223 return view('admin.static.index_ads', compact('stat', 'ads', 'periods'));
222 224
223 } 225 }
224 226
225 227
226 } 228 }
227 229
app/Http/Controllers/Admin/UsersController.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\Http\Requests\BaseUserRequest; 6 use App\Http\Requests\BaseUserRequest;
7 use App\Models\ContentRoles;
7 use App\Models\Job_title; 8 use App\Models\Job_title;
8 use App\Models\User; 9 use App\Models\User;
9 use App\Models\Worker; 10 use App\Models\Worker;
10 use Illuminate\Http\Request; 11 use Illuminate\Http\Request;
11 use Illuminate\Support\Facades\Auth; 12 use Illuminate\Support\Facades\Auth;
12 use Illuminate\Support\Facades\Storage; 13 use Illuminate\Support\Facades\Storage;
13 use PhpOffice\PhpSpreadsheet\Spreadsheet; 14 use PhpOffice\PhpSpreadsheet\Spreadsheet;
14 use PhpOffice\PhpSpreadsheet\Style\Alignment; 15 use PhpOffice\PhpSpreadsheet\Style\Alignment;
15 use PhpOffice\PhpSpreadsheet\Style\Border; 16 use PhpOffice\PhpSpreadsheet\Style\Border;
16 use PhpOffice\PhpSpreadsheet\Style\Font; 17 use PhpOffice\PhpSpreadsheet\Style\Font;
17 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; 18 use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
18 19
19 class UsersController extends Controller 20 class UsersController extends Controller
20 { 21 {
21 public function index(Request $request) { 22 public function index(Request $request) {
22 $title = 'Админка - Пользователи системы'; 23 $title = 'Админка - Пользователи системы';
23 $id_admin = Auth::user()->id; 24 $id_admin = Auth::user()->id;
24 if ($request->ajax()) { 25 if ($request->ajax()) {
25 $user = User::find($request->id); 26 $user = User::find($request->id);
26 $request->offsetUnset('id'); 27 $request->offsetUnset('id');
27 $user->update($request->all()); 28 $user->update($request->all());
28 } 29 }
29 $find_key = ""; 30 $find_key = "";
30 $users = User::query(); 31 $users = User::query();
31 if (isset($request->find)) { 32 if (isset($request->find)) {
32 $find_key = $request->find; 33 $find_key = $request->find;
33 $users = $users->where('name', 'LIKE', "%$find_key%") 34 $users = $users->where('name', 'LIKE', "%$find_key%")
34 ->orWhere('email', 'LIKE', "%$find_key%"); 35 ->orWhere('email', 'LIKE', "%$find_key%");
35 } 36 }
36 $users = $users->paginate(15); 37 $users = $users->paginate(15);
37 38
38 if ($request->ajax()) { 39 if ($request->ajax()) {
39 return view('admin.users.index_ajax', compact('users', 'id_admin')); 40 return view('admin.users.index_ajax', compact('users', 'id_admin'));
40 } else { 41 } else {
41 return view('admin.users.index', compact('users', 'title', 'id_admin', 'find_key')); 42 return view('admin.users.index', compact('users', 'title', 'id_admin', 'find_key'));
42 } 43 }
43 } 44 }
44 45
45 public function index_bd(Request $request) { 46 public function index_bd(Request $request) {
46 $title = 'Админка - Пользователи базы данных'; 47 $title = 'Админка - Пользователи базы данных';
47 48
48 $find_key = ""; 49 $find_key = "";
49 $users = User::query(); 50 $users = User::query();
50 if (isset($request->find)) { 51 if (isset($request->find)) {
51 $find_key = $request->find; 52 $find_key = $request->find;
52 $users = $users->where('name', 'LIKE', "%$find_key%") 53 $users = $users->where('name', 'LIKE', "%$find_key%")
53 ->orWhere('email', 'LIKE', "%$find_key%") 54 ->orWhere('email', 'LIKE', "%$find_key%")
54 ->orWhere('telephone', 'LIKE', "%$find_key%"); 55 ->orWhere('telephone', 'LIKE', "%$find_key%");
55 } 56 }
56 57
57 $users = $users->Baseuser()->paginate(15); 58 $users = $users->Baseuser()->paginate(15);
58 59
59 if ($request->ajax()) { 60 if ($request->ajax()) {
60 return view('admin.users.index_bd_ajax', compact('users')); 61 return view('admin.users.index_bd_ajax', compact('users'));
61 } else { 62 } else {
62 return view('admin.users.index_bd', compact('users', 'title', 'find_key')); 63 return view('admin.users.index_bd', compact('users', 'title', 'find_key'));
63 } 64 }
64 } 65 }
65 66
66 public function add_bd() { 67 public function add_bd() {
67 $list_job_titles = Job_title::query()->active()->orderBy('name', 'asc')->get(); 68 $list_job_titles = Job_title::query()->active()->orderBy('name', 'asc')->get();
68 return view('admin.users.add', compact('list_job_titles')); 69 return view('admin.users.add', compact('list_job_titles'));
69 } 70 }
70 71
71 public function add_store_bd(BaseUserRequest $request) { 72 public function add_store_bd(BaseUserRequest $request) {
72 $params = $request->all(); 73 $params = $request->all();
73 $position_work = $request->position_work; 74 $position_work = $request->position_work;
74 75
75 if ($request->has('file')) { 76 if ($request->has('file')) {
76 $params['file'] = $request->file('file')->store('basedata', 'public'); 77 $params['file'] = $request->file('file')->store('basedata', 'public');
77 } 78 }
78 79
79 if (isset($request->name)) { 80 if (isset($request->name)) {
80 $params['name'] = $request->surname." ".$request->name_man." ".$request->surname2; 81 $params['name'] = $request->surname." ".$request->name_man." ".$request->surname2;
81 } 82 }
82 83
83 $user = User::create($params); 84 $user = User::create($params);
84 $user_id = $user->id; 85 $user_id = $user->id;
85 $worker = new Worker(); 86 $worker = new Worker();
86 $worker->position_work = $position_work; 87 $worker->position_work = $position_work;
87 $worker->user_id = $user_id; 88 $worker->user_id = $user_id;
88 $worker->save(); 89 $worker->save();
89 90
90 return redirect()->route('admin.basedata'); 91 return redirect()->route('admin.basedata');
91 } 92 }
92 93
93 public function edit_bd(User $user) { 94 public function edit_bd(User $user) {
94 $list_job_titles = Job_title::query()->active()->orderBy('name', 'asc')->get(); 95 $list_job_titles = Job_title::query()->active()->orderBy('name', 'asc')->get();
95 return view('admin.users.edit', compact('user', 'list_job_titles')); 96 return view('admin.users.edit', compact('user', 'list_job_titles'));
96 } 97 }
97 98
98 public function update_bd(BaseUserRequest $request, User $user) { 99 public function update_bd(BaseUserRequest $request, User $user) {
99 $params = $request->all(); 100 $params = $request->all();
100 $position_work = $request->position_work; 101 $position_work = $request->position_work;
101 102
102 if ($request->has('file')) { 103 if ($request->has('file')) {
103 if (!empty($user->file)) Storage::delete($user->file); 104 if (!empty($user->file)) Storage::delete($user->file);
104 $params['file'] = $request->file('file')->store('basedata', 'public'); 105 $params['file'] = $request->file('file')->store('basedata', 'public');
105 } else { 106 } else {
106 if (!empty($user->image)) $params['file'] = $user->file; 107 if (!empty($user->image)) $params['file'] = $user->file;
107 } 108 }
108 109
109 if (isset($request->name)) { 110 if (isset($request->name)) {
110 $params['name'] = $request->surname." ".$request->name_man." ".$request->surname2; 111 $params['name'] = $request->surname." ".$request->name_man." ".$request->surname2;
111 } 112 }
112 113
113 $user->update($params); 114 $user->update($params);
114 if (isset($user->workers[0]->id)) { 115 if (isset($user->workers[0]->id)) {
115 $worker = Worker::find($user->workers[0]->id); 116 $worker = Worker::find($user->workers[0]->id);
116 $worker->position_work = $position_work; 117 $worker->position_work = $position_work;
117 $worker->save(); 118 $worker->save();
118 } else { 119 } else {
119 $worker = new Worker(); 120 $worker = new Worker();
120 $worker->user_id = $user->id; 121 $worker->user_id = $user->id;
121 $worker->position_work = $position_work; 122 $worker->position_work = $position_work;
122 $worker->save(); 123 $worker->save();
123 } 124 }
124 125
125 return redirect()->route('admin.basedata'); 126 return redirect()->route('admin.basedata');
126 } 127 }
127 128
128 public function destroy_bd(User $user) { 129 public function destroy_bd(User $user) {
129 $user->delete(); 130 $user->delete();
130 return redirect()->route('admin.basedata'); 131 return redirect()->route('admin.basedata');
131 } 132 }
132 133
133 public function roles(Request $request) { 134 public function roles(Request $request) {
134 if ($request->ajax()) { 135 if ($request->ajax()) {
135 $user = User::find($request->id); 136 $user = User::find($request->id);
136 $request->offsetUnset('id'); 137 $request->offsetUnset('id');
137 $user->update($request->all()); 138 $user->update($request->all());
138 } 139 }
139 140
140 $users = User::query()->Realuser()->paginate(15); 141 $users = User::query()->Realuser()->paginate(15);
141 142
142 if ($request->ajax()) { 143 if ($request->ajax()) {
143 return view('admin.users.roles.index_ajax', compact('users')); 144 return view('admin.users.roles.index_ajax', compact('users'));
144 } else { 145 } else {
145 return view('admin.users.roles.index', compact('users')); 146 return view('admin.users.roles.index', compact('users'));
146 } 147 }
147 } 148 }
148 149
150 public function admin_roles(Request $request) {
151
152 if ($request->ajax()) {
153 $content_roles = ContentRoles::find($request->id);
154 $request->offsetUnset($request->id);
155 $content_roles->update($request->all());
156 }
157 $roles = ContentRoles::query()->OrderBy('name')->paginate(25);
158
159
160 if ($request->ajax()) {
161 return view('admin.content.roles_index_ajax', compact('roles'));
162 } else {
163 return view('admin.content.roles_index', compact('roles'));
164 }
165 }
166
149 public function doc_bd(User $user) { 167 public function doc_bd(User $user) {
150 $id = $user->id; 168 $id = $user->id;
151 $spreadsheet = new Spreadsheet(); 169 $spreadsheet = new Spreadsheet();
152 $activeWorksheet = $spreadsheet->getActiveSheet(); 170 $activeWorksheet = $spreadsheet->getActiveSheet();
153 $activeWorksheet->setCellValue('A1', 'Отчет по соискателю'); 171 $activeWorksheet->setCellValue('A1', 'Отчет по соискателю');
154 $activeWorksheet->getStyle('A1')->applyFromArray([ 172 $activeWorksheet->getStyle('A1')->applyFromArray([
155 'font' => [ 173 'font' => [
156 'name' => 'Arial', 174 'name' => 'Arial',
157 'bold' => true, 175 'bold' => true,
158 'italic' => false, 176 'italic' => false,
159 'underline' => Font::UNDERLINE_DOUBLE, 177 'underline' => Font::UNDERLINE_DOUBLE,
160 'strikethrough' => false, 178 'strikethrough' => false,
161 'color' => [ 179 'color' => [
162 'rgb' => '808080' 180 'rgb' => '808080'
163 ] 181 ]
164 ], 182 ],
165 'borders' => [ 183 'borders' => [
166 'allBorders' => [ 184 'allBorders' => [
167 'borderStyle' => Border::BORDER_THIN, 185 'borderStyle' => Border::BORDER_THIN,
168 'color' => [ 186 'color' => [
169 'rgb' => '808080' 187 'rgb' => '808080'
170 ] 188 ]
171 ], 189 ],
172 'outline' => array( 190 'outline' => array(
173 'style' => Border::BORDER_THIN, 191 'style' => Border::BORDER_THIN,
174 'color' => array('rgb' => '000000') 192 'color' => array('rgb' => '000000')
175 ), 193 ),
176 ], 194 ],
177 195
178 'alignment' => [ 196 'alignment' => [
179 'horizontal' => Alignment::HORIZONTAL_CENTER, 197 'horizontal' => Alignment::HORIZONTAL_CENTER,
180 'vertical' => Alignment::VERTICAL_CENTER, 198 'vertical' => Alignment::VERTICAL_CENTER,
181 'wrapText' => true, 199 'wrapText' => true,
182 ] 200 ]
183 ]); 201 ]);
184 202
185 $activeWorksheet->setCellValue('A2', "Псевдоним/имя: ".$user->name); 203 $activeWorksheet->setCellValue('A2', "Псевдоним/имя: ".$user->name);
186 $activeWorksheet->setCellValue('A3', "Фамилия: ".$user->surname); 204 $activeWorksheet->setCellValue('A3', "Фамилия: ".$user->surname);
187 $activeWorksheet->setCellValue('A4', "Имя: ".$user->name_man); 205 $activeWorksheet->setCellValue('A4', "Имя: ".$user->name_man);
188 $activeWorksheet->setCellValue('A5', "Отчество: ".$user->surname2); 206 $activeWorksheet->setCellValue('A5', "Отчество: ".$user->surname2);
189 $activeWorksheet->setCellValue('A6', "Телефон: ".$user->telephone); 207 $activeWorksheet->setCellValue('A6', "Телефон: ".$user->telephone);
190 $activeWorksheet->setCellValue('A7', "Емайл: ".$user->email); 208 $activeWorksheet->setCellValue('A7', "Емайл: ".$user->email);
191 209
192 if (isset($user->workers[0]->id)) { 210 if (isset($user->workers[0]->id)) {
193 $activeWorksheet->setCellValue('A9', "Анкета: "); 211 $activeWorksheet->setCellValue('A9', "Анкета: ");
194 $activeWorksheet->setCellValue('A10', "Телефон: " . $user->workers[0]->telephone); 212 $activeWorksheet->setCellValue('A10', "Телефон: " . $user->workers[0]->telephone);
195 $activeWorksheet->setCellValue('A11', "Емайл: " . $user->workers[0]->email); 213 $activeWorksheet->setCellValue('A11', "Емайл: " . $user->workers[0]->email);
196 } 214 }
197 215
198 if (isset($user->jobtitles[0]->id)) { 216 if (isset($user->jobtitles[0]->id)) {
199 $activeWorksheet->setCellValue('A12', "Должность: " . $user->jobtitles[0]->name); 217 $activeWorksheet->setCellValue('A12', "Должность: " . $user->jobtitles[0]->name);
200 } 218 }
201 $activeWorksheet->getColumnDimension("A")->setWidth(100); 219 $activeWorksheet->getColumnDimension("A")->setWidth(100);
202 $writer = new Xlsx($spreadsheet); 220 $writer = new Xlsx($spreadsheet);
203 221
204 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 222 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
205 header('Content-Disposition: attachment; filename="user'.$id.'.xlsx"'); 223 header('Content-Disposition: attachment; filename="user'.$id.'.xlsx"');
206 header('Cache-Control: no-cache'); 224 header('Cache-Control: no-cache');
207 225
208 $writer->save('php://output'); 226 $writer->save('php://output');
209 $writer->save(storage_path("app/public/export/user$id.xlsx")); 227 $writer->save(storage_path("app/public/export/user$id.xlsx"));
210 228
211 //$spreadsheet->disconnectWorksheets(); 229 //$spreadsheet->disconnectWorksheets();
212 return redirect()->route('admin.basedata'); 230 return redirect()->route('admin.basedata');
213 231
214 } 232 }
215 } 233 }
216 234
app/Models/ContentRoles.php
File was created 1 <?php
2
3 namespace App\Models;
4
5 use Illuminate\Database\Eloquent\Factories\HasFactory;
6 use Illuminate\Database\Eloquent\Model;
7
8 class ContentRoles extends Model
9 {
10 use HasFactory;
11 }
12
app/Providers/MyServiceProvider.php
1 <?php 1 <?php
2 2
3 namespace App\Providers; 3 namespace App\Providers;
4 4
5 use App\Models\ContentRoles;
5 use App\Models\Job_title; 6 use App\Models\Job_title;
6 use Illuminate\Support\Facades\Auth; 7 use Illuminate\Support\Facades\Auth;
7 use Illuminate\Support\Facades\DB; 8 use Illuminate\Support\Facades\DB;
8 use Illuminate\Support\Facades\View; 9 use Illuminate\Support\Facades\View;
9 use Illuminate\Support\ServiceProvider; 10 use Illuminate\Support\ServiceProvider;
10 11
11 class MyServiceProvider extends ServiceProvider 12 class MyServiceProvider extends ServiceProvider
12 { 13 {
13 /** 14 /**
14 * Register services. 15 * Register services.
15 * 16 *
16 * @return void 17 * @return void
17 */ 18 */
18 public function register() 19 public function register()
19 { 20 {
20 // 21 //
21 } 22 }
22 23
23 /** 24 /**
24 * Bootstrap services. 25 * Bootstrap services.
25 * 26 *
26 * @return void 27 * @return void
27 */ 28 */
28 public function boot() 29 public function boot()
29 { 30 {
30 $views = ['admin.job_titles.parent_id']; 31 $views = ['admin.job_titles.parent_id'];
31 View::composer($views, 32 View::composer($views,
32 function($view) 33 function($view)
33 { 34 {
34 static $items = null; 35 static $items = null;
35 36
36 if (is_null($items)) { 37 if (is_null($items)) {
37 $items = Job_title::query()-> 38 $items = Job_title::query()->
38 orderByDesc('sort')-> 39 orderByDesc('sort')->
39 orderBy('name')-> 40 orderBy('name')->
40 active()-> 41 active()->
41 get(); 42 get();
42 $parent = 0; 43 $parent = 0;
43 $view->with(['items' => $items, 'parent' => $parent]); 44 $view->with(['items' => $items, 'parent' => $parent]);
44 } else { 45 } else {
45 $view->with(['items' => $items]); 46 $view->with(['items' => $items]);
46 } 47 }
47 48
48 } 49 }
49 ); 50 );
50 51
51 $views2 = ['layout.admin', 'admin.index']; 52 $views2 = ['layout.admin', 'admin.index'];
52 53
53 View::composer($views2, 54 View::composer($views2,
54 function($view){ 55 function($view){
55 $id = Auth::user()->id; 56 $id = Auth::user()->id;
57 $is_manager = Auth::user()->is_manager;
58 $admin = Auth::user()->admin;
59
60 $contents = ContentRoles::query()->get();
61
56 $query = DB::select(DB::raw('SELECT count(*) as MsgCount 62 $query = DB::select(DB::raw('SELECT count(*) as MsgCount
57 FROM messages m1 63 FROM messages m1
58 Where ((m1.flag_new = 1) and (m1.to_user_id = :uid)) 64 Where ((m1.flag_new = 1) and (m1.to_user_id = :uid))
59 '), ['uid' => $id] 65 '), ['uid' => $id]
60 ); 66 );
61 67
62 $view->with(['MsgCount' => $query[0]->MsgCount, 'UserId' => $id]); 68 $view->with(['MsgCount' => $query[0]->MsgCount,
69 'UserId' => $id,
70 'is_manager' => $is_manager,
71 'admin' => $admin,
72 'contents' => $contents]);
63 } 73 }
64 ); 74 );
65 } 75 }
66 } 76 }
67 77
database/migrations/2023_11_20_062736_alter_users_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('users', function (Blueprint $table) {
17 $table->boolean('is_manager')->default(1);
18 });
19 }
20
21 /**
22 * Reverse the migrations.
23 *
24 * @return void
25 */
26 public function down()
27 {
28 Schema::table('users', function (Blueprint $table) {
29 $table->dropColumn('is_manager');
30 });
31 }
32 };
33
database/migrations/2023_11_20_064430_create_content_roles_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::create('content_roles', function (Blueprint $table) {
17 $table->id();
18 $table->string('url_page', 255);
19 $table->boolean('is_admin')->default(1);
20 $table->boolean('is_manager')->default(0);
21 $table->timestamps();
22 });
23 }
24
25 /**
26 * Reverse the migrations.
27 *
28 * @return void
29 */
30 public function down()
31 {
32 Schema::dropIfExists('content_roles');
33 }
34 };
35
database/migrations/2023_11_20_070121_alter_content_roles_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('content_roles', function (Blueprint $table) {
17 $table->string('name', 255)->nullable(false);
18 });
19 }
20
21 /**
22 * Reverse the migrations.
23 *
24 * @return void
25 */
26 public function down()
27 {
28 Schema::table('content_roles', function (Blueprint $table) {
29 $table->dropColumn('name');
30 });
31 }
32 };
33
resources/views/admin/content/roles_index.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Роли администраторов и менеджеров для каждой страницы'])
2
3 @section('script')
4 <script>
5 $(document).ready(function() {
6 $(document).on('click', '.check_click', function () {
7 var this_ = $(this);
8 var value = this_.val();
9 var field = this_.attr('data-field');
10 var ajax_block = $('#ajax_block');
11 var bool = 0;
12 var str_get = '';
13
14 if(this.checked){
15 bool = 1;
16 } else {
17 bool = 0;
18 }
19 console.log(field);
20 str_get = "id=" + value + "&" + field + "=" + bool;
21 console.log(str_get);
22
23 $.ajax({
24 type: "GET",
25 url: "{{ url()->full()}}",
26 data: str_get,
27 success: function (data) {
28 console.log('Обновление таблицы пользователей ');
29 //data = JSON.parse(data);
30 //console.log(data);
31 ajax_block.html(data);
32 },
33 headers: {
34 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
35 },
36 error: function (data) {
37 console.log('Error: ' + data);
38 }
39 });
40 });
41 });
42 </script>
43 @endsection
44
45 @section('content')
46 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
47 <div class="w-full overflow-x-auto">
48 <table class="w-full whitespace-no-wrap">
49 <thead>
50 <tr
51 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"
52 >
53 <th class="px-4 py-3 text-xs">№</th>
54 <th class="px-4 py-3 text-xs">Раздел</th>
55 <th class="px-4 py-3 text-xs">URL-страницы</th>
56 <th class="px-4 py-3 text-xs">Админ</th>
57 <th class="px-4 py-3 text-xs">Менеджер</th>
58 <th class="px-4 py-3 text-xs">Дата регист.</th>
59 </tr>
60 </thead>
61 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
62 @foreach($roles as $role)
63 <tr class="text-gray-700 dark:text-gray-400">
64 <td class="px-4 py-3 text-xs">
65 {{$role->id}}
66 </td>
67 <td class="px-4 py-3 text-xs">
68 {{$role->name}}
69 </td>
70 <td class="px-4 py-3 text-xs">
71 {{ $role->url_page }}
72 </td>
73 <td class="px-4 py-3 text-xs">
74 {{ $role->is_admin }}
75 </td>
76 <td class="px-4 py-3 text-xs">
77 {{ $role->is_manager }}
78 </td>
79
80 <td class="px-4 py-3 text-xs">
81 {{ date('d.m.Y', strtotime($role->created_at)) }}
82 </td>
83 </tr>
84 @endforeach
85 </tbody>
86 </table>
87 </div>
88
89 <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">
90 <?//=$users->appends($_GET)->links('admin.pagginate'); ?>
91 {{$roles->links('admin.pagginate') }}
92 </div>
93 </div>
94
95 @endsection
96
resources/views/admin/content/roles_index_ajax.blade.php
resources/views/admin/employer/index.blade.php
1 @extends('layout.admin', ['title' => 'Админка - Работодатели']) 1 @extends('layout.admin', ['title' => 'Админка - Работодатели'])
2 2
3 @section('script') 3 @section('script')
4 <script> 4 <script>
5 $(document).ready(function() { 5 $(document).ready(function() {
6 $(document).on('click', '.checkban', function () { 6 $(document).on('click', '.checkban', function () {
7 var this_ = $(this); 7 var this_ = $(this);
8 var value = this_.val(); 8 var value = this_.val();
9 var ajax_block = $('#ajax_block'); 9 var ajax_block = $('#ajax_block');
10 var bool = 0; 10 var bool = 0;
11 11
12 if(this.checked){ 12 if(this.checked){
13 bool = 1; 13 bool = 1;
14 } else { 14 } else {
15 bool = 0; 15 bool = 0;
16 } 16 }
17 17
18 $.ajax({ 18 $.ajax({
19 type: "GET", 19 type: "GET",
20 url: "{{ url()->full()}}", 20 url: "{{ url()->full()}}",
21 data: "id=" + value + "&is_ban=" + bool, 21 data: "id=" + value + "&is_ban=" + bool,
22 success: function (data) { 22 success: function (data) {
23 console.log('Обновление таблицы пользователей '); 23 console.log('Обновление таблицы пользователей ');
24 //data = JSON.parse(data); 24 //data = JSON.parse(data);
25 //console.log(data); 25 //console.log(data);
26 ajax_block.html(data); 26 ajax_block.html(data);
27 }, 27 },
28 headers: { 28 headers: {
29 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 29 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
30 }, 30 },
31 error: function (data) { 31 error: function (data) {
32 console.log('Error: ' + data); 32 console.log('Error: ' + data);
33 } 33 }
34 }); 34 });
35 }); 35 });
36 36
37 }); 37 });
38 </script> 38 </script>
39 <script> 39 <script>
40 const btns = document.querySelectorAll('.btn_del'); 40 const btns = document.querySelectorAll('.btn_del');
41 btns.forEach(btn => { 41 btns.forEach(btn => {
42 btn.addEventListener('click', (e) => { 42 btn.addEventListener('click', (e) => {
43 console.log('click button'); 43 console.log('click button');
44 let id = e.target.id; 44 let id = e.target.id;
45 let form = document.getElementById("form_modal_del"); 45 let form = document.getElementById("form_modal_del");
46 form.action = "<?=$_SERVER['APP_URL']?>admin/employers/delete/"+e.target.getAttribute('data-employer')+'/'+e.target.getAttribute('data-user'); 46 form.action = "<?=$_SERVER['APP_URL']?>admin/employers/delete/"+e.target.getAttribute('data-employer')+'/'+e.target.getAttribute('data-user');
47 //document.getElementById("title_modal").innerHTML = id; 47 //document.getElementById("title_modal").innerHTML = id;
48 console.log(e.target.getAttribute('data-employer')); 48 console.log(e.target.getAttribute('data-employer'));
49 console.log(e.target.getAttribute('data-user')); 49 console.log(e.target.getAttribute('data-user'));
50 50
51 }); 51 });
52 }); 52 });
53 </script> 53 </script>
54 @endsection 54 @endsection
55 55
56 @section('search') 56 @section('search')
57 @include('admin.find_employer', ['select_category' => $select_category]) 57 @include('admin.find_employer', ['select_category' => $select_category])
58 @endsection 58 @endsection
59 59
60 @section('modal') 60 @section('modal')
61 @include('admin.employer.modal') 61 @include('admin.employer.modal')
62 @endsection 62 @endsection
63 63
64 @section('content') 64 @section('content')
65 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> 65 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
66 66
67 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> 67 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800">
68 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"> 68 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500">
69 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 69 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
70 <path 70 <path
71 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"></path> 71 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"></path>
72 </svg> 72 </svg>
73 </div> 73 </div>
74 <div> 74 <div>
75 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> 75 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400">
76 Всего работодателей 76 Всего работодателей
77 </p> 77 </p>
78 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> 78 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200">
79 {{ $all_employer }} 79 {{ $all_employer }}
80 </p> 80 </p>
81 </div> 81 </div>
82 </div> 82 </div>
83 83
84 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> 84 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800">
85 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"> 85 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500">
86 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 86 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
87 <path 87 <path
88 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"></path> 88 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"></path>
89 </svg> 89 </svg>
90 </div> 90 </div>
91 <div> 91 <div>
92 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> 92 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400">
93 Опубликованых 93 Опубликованых
94 </p> 94 </p>
95 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> 95 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200">
96 {{ $all_public }} 96 {{ $all_public }}
97 </p> 97 </p>
98 </div> 98 </div>
99 </div> 99 </div>
100 100
101 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> 101 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800">
102 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"> 102 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500">
103 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 103 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
104 <path 104 <path
105 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"></path> 105 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"></path>
106 </svg> 106 </svg>
107 </div> 107 </div>
108 <div> 108 <div>
109 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> 109 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400">
110 На рассмотрении 110 На рассмотрении
111 </p> 111 </p>
112 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> 112 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200">
113 {{ $all_status }} 113 {{ $all_status }}
114 </p> 114 </p>
115 </div> 115 </div>
116 </div> 116 </div>
117 </div> 117 </div>
118 118
119 <div class="text-gray-700 dark:text-gray-400">
120 <p class="px-4 py-3">Количество: {{ $all_current }}</p>
121 </div>
122
119 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> 123 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
120 <div class="w-full overflow-x-auto"> 124 <div class="w-full overflow-x-auto">
121 <table class="w-full whitespace-no-wrap"> 125 <table class="w-full whitespace-no-wrap">
122 <thead> 126 <thead>
123 <tr 127 <tr
124 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" 128 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"
125 > 129 >
126 <th class="px-4 py-3">№</th> 130 <th class="px-4 py-3">№</th>
127 <th class="px-4 py-3">ID</th> 131 <th class="px-4 py-3">ID</th>
128 <th class="px-4 py-3">Лого</th> 132 <th class="px-4 py-3">Лого</th>
129 <th class="px-4 py-3">Компания/Email/Тел/Пароль</th> 133 <th class="px-4 py-3">Компания/Email/Тел/Пароль</th>
130 <th class="px-4 py-3">Категория</th> 134 <th class="px-4 py-3">Категория</th>
131 <th class="px-4 py-3">Коммент.</th> 135 <th class="px-4 py-3">Коммент.</th>
132 <th class="px-4 py-3">Дата регист.</th> 136 <th class="px-4 py-3">Дата регист.</th>
133 <th class="px-4 py-3">Редакт.</th> 137 <th class="px-4 py-3">Редакт.</th>
134 </tr> 138 </tr>
135 </thead> 139 </thead>
136 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> 140 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
137 @foreach($users as $user) 141 @foreach($users as $user)
138 <tr class="text-gray-700 dark:text-gray-400"> 142 <tr class="text-gray-700 dark:text-gray-400">
139 <td class="px-4 py-3 text-xs"> 143 <td class="px-4 py-3 text-xs">
140 {{$user->id}} 144 {{$user->id}}
141 </td> 145 </td>
142 <td class="px-4 py-3 text-xs"> 146 <td class="px-4 py-3 text-xs">
143 @if (isset($user->code_id)) 147 @if (isset($user->code_id))
144 {{$user->code_id}} 148 {{$user->code_id}}
145 @endif 149 @endif
146 </td> 150 </td>
147 <td class="px-4 py-3 text-xs"> 151 <td class="px-4 py-3 text-xs">
148 @if (isset($user->emp_logo) && ($user->emp_logo)) 152 @if (isset($user->emp_logo) && ($user->emp_logo))
149 <div class="flex items-center text-sm"> 153 <div class="flex items-center text-sm">
150 <div 154 <div
151 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 155 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
152 > 156 >
153 <img 157 <img
154 class="object-cover w-full h-full rounded-full" 158 class="object-cover w-full h-full rounded-full"
155 src="{{ asset(Storage::url($user->emp_logo)) }}" 159 src="{{ asset(Storage::url($user->emp_logo)) }}"
156 alt="" 160 alt=""
157 loading="lazy" 161 loading="lazy"
158 /> 162 />
159 <div 163 <div
160 class="absolute inset-0 rounded-full shadow-inner" 164 class="absolute inset-0 rounded-full shadow-inner"
161 aria-hidden="true" 165 aria-hidden="true"
162 ></div> 166 ></div>
163 </div> 167 </div>
164 </div> 168 </div>
165 @else 169 @else
166 - 170 -
167 @endif 171 @endif
168 </td> 172 </td>
169 173
170 <td class="px-4 py-3 text-xs"> 174 <td class="px-4 py-3 text-xs">
171 <div class="flex items-center text-sm"> 175 <div class="flex items-center text-sm">
172 <div> 176 <div>
173 <p class="font-semibold">{{$user->name}}</p> 177 <p class="font-semibold">{{$user->name}}</p>
174 <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p> 178 <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p>
175 <p class="text-xs text-gray-600 dark:text-gray-400"> 179 <p class="text-xs text-gray-600 dark:text-gray-400">
176 {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }} 180 {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }}
177 </p> 181 </p>
178 <p class="text-xs text-gray-600 dark:text-gray-400"> 182 <p class="text-xs text-gray-600 dark:text-gray-400">
179 @if (!empty($user->pubpassword)) 183 @if (!empty($user->pubpassword))
180 {{ base64_decode($user->pubpassword) }} 184 {{ base64_decode($user->pubpassword) }}
181 @endif 185 @endif
182 </p> 186 </p>
183 </div> 187 </div>
184 </div> 188 </div>
185 189
186 </td> 190 </td>
187 <td class="px-4 py-3 text-xs"> 191 <td class="px-4 py-3 text-xs">
188 {{ $user->category }} 192 {{ $user->category }}
189 </td> 193 </td>
190 <td class="px-4 py-3 text-xs"> 194 <td class="px-4 py-3 text-xs">
191 @if (!empty($user->comment_admin)) 195 @if (!empty($user->comment_admin))
192 196
193 <a style="text-decoration: underline;" href="{{ route('admin.comment-employer', ['employer' => $user->emp_id]) }}">Есть</a> 197 <a style="text-decoration: underline;" href="{{ route('admin.comment-employer', ['employer' => $user->emp_id]) }}">Есть</a>
194 @else 198 @else
195 Нет 199 Нет
196 @endif 200 @endif
197 </td> 201 </td>
198 <td class="px-4 py-3 text-xs"> 202 <td class="px-4 py-3 text-xs">
199 {{ date('d.m.Y', strtotime($user->created_at)) }} 203 {{ date('d.m.Y', strtotime($user->created_at)) }}
200 </td> 204 </td>
201 <td class="px-4 py-3 text-xs"> 205 <td class="px-4 py-3 text-xs">
202 @if (!empty($user->emp_id)) 206 @if (!empty($user->emp_id))
203 <a href="{{ route('admin.employer-profile', ['employer' => $user->emp_id]) }}">Изменить</a> 207 <a href="{{ route('admin.employer-profile', ['employer' => $user->emp_id]) }}">Изменить</a>
204 @if ($user->emp_id > 2) | <a @click="openModal" style="cursor: pointer;" data-employer="{{$user->emp_id}}" data-user="{{$user->user_id}}" class="btn_del btn btn-danger">Удалить</a> 208 @if ($user->emp_id > 2) | <a @click="openModal" style="cursor: pointer;" data-employer="{{$user->emp_id}}" data-user="{{$user->user_id}}" class="btn_del btn btn-danger">Удалить</a>
205 @endif 209 @endif
206 @endif 210 @endif
207 </td> 211 </td>
208 <!--<td class="px-4 py-3 text-sm"> 212 <!--<td class="px-4 py-3 text-sm">
209 @if ($user->usr_id > 1) 213 @if ($user->usr_id > 1)
210 <input type="checkbox" class="checkban" value="{{$user->usr_id}}" name="ban_{{$user->usr_id}}" {{ ($user->is_ban) ? "checked" : "" }}/> 214 <input type="checkbox" class="checkban" value="{{$user->usr_id}}" name="ban_{{$user->usr_id}}" {{ ($user->is_ban) ? "checked" : "" }}/>
211 @endif 215 @endif
212 </td>--> 216 </td>-->
213 </tr> 217 </tr>
214 @endforeach 218 @endforeach
215 </tbody> 219 </tbody>
216 </table> 220 </table>
217 </div> 221 </div>
218 222
219 <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"> 223 <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">
220 <?=$users->appends($_GET)->links('admin.pagginate'); ?> 224 <?=$users->appends($_GET)->links('admin.pagginate'); ?>
221 </div> 225 </div>
222 </div> 226 </div>
223 @endsection 227 @endsection
224 228
resources/views/admin/users/index.blade.php
1 @extends('layout.admin', ['title' => $title]) 1 @extends('layout.admin', ['title' => $title])
2 2
3 @section('script') 3 @section('script')
4 <script> 4 <script>
5 $(document).ready(function() { 5 $(document).ready(function() {
6 $(document).on('click', '.check_click', function () { 6 $(document).on('click', '.check_click', function () {
7 var this_ = $(this); 7 var this_ = $(this);
8 var value = this_.val(); 8 var value = this_.val();
9 var field = this_.attr('data-field'); 9 var field = this_.attr('data-field');
10 var ajax_block = $('#ajax_block'); 10 var ajax_block = $('#ajax_block');
11 var bool = 0; 11 var bool = 0;
12 var str_get = ''; 12 var str_get = '';
13 13
14 if(this.checked){ 14 if(this.checked){
15 bool = 1; 15 bool = 1;
16 } else { 16 } else {
17 bool = 0; 17 bool = 0;
18 } 18 }
19 console.log(field); 19 console.log(field);
20 str_get = "id=" + value + "&" + field + "=" + bool; 20 str_get = "id=" + value + "&" + field + "=" + bool;
21 console.log(str_get); 21 console.log(str_get);
22 22
23 $.ajax({ 23 $.ajax({
24 type: "GET", 24 type: "GET",
25 url: "{{ url()->full()}}", 25 url: "{{ url()->full()}}",
26 data: str_get, 26 data: str_get,
27 success: function (data) { 27 success: function (data) {
28 console.log('Обновление таблицы пользователей '); 28 console.log('Обновление таблицы пользователей ');
29 //data = JSON.parse(data); 29 //data = JSON.parse(data);
30 //console.log(data); 30 //console.log(data);
31 ajax_block.html(data); 31 ajax_block.html(data);
32 }, 32 },
33 headers: { 33 headers: {
34 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 34 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
35 }, 35 },
36 error: function (data) { 36 error: function (data) {
37 console.log('Error: ' + data); 37 console.log('Error: ' + data);
38 } 38 }
39 }); 39 });
40 }); 40 });
41 }); 41 });
42 </script> 42 </script>
43 @endsection 43 @endsection
44 44
45 @section('search') 45 @section('search')
46 @include('admin.find') 46 @include('admin.find')
47 @endsection 47 @endsection
48 48
49 @section('content') 49 @section('content')
50 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> 50 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
51 <div class="w-full overflow-x-auto"> 51 <div class="w-full overflow-x-auto">
52 <table class="w-full whitespace-no-wrap"> 52 <table class="w-full whitespace-no-wrap">
53 <thead> 53 <thead>
54 <tr 54 <tr
55 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" 55 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"
56 > 56 >
57 <th class="px-4 py-3">№</th> 57 <th class="px-4 py-3 text-xs">№</th>
58 <th class="px-4 py-3">Имя</th> 58 <th class="px-4 py-3 text-xs">Имя</th>
59 <th class="px-4 py-3">Email/логин</th> 59 <th class="px-4 py-3 text-xs">Email/логин</th>
60 <th class="px-4 py-3">Работодатель/работник/администратор</th> 60 <th class="px-4 py-3 text-xs">Работодатель/работник/администратор</th>
61 <th class="px-4 py-3">Бан</th>
62 <th class="px-4 py-3">Новый</th>
63 @if ($id_admin == 1) 61 @if ($id_admin == 1)
64 <th class="px-4 py-3">Админ</th> 62 <th class="px-4 py-3 text-xs">Админ</th>
65 @endif 63 @endif
66 <th class="px-4 py-3">Дата регист.</th> 64 <th class="px-4 py-3 text-xs">Дата регист.</th>
67 </tr> 65 </tr>
68 </thead> 66 </thead>
69 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> 67 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
70 @foreach($users as $user) 68 @foreach($users as $user)
71 <tr class="text-gray-700 dark:text-gray-400"> 69 <tr class="text-gray-700 dark:text-gray-400">
72 <td class="px-4 py-3"> 70 <td class="px-4 py-3 text-xs">
73 {{$user->id}} 71 {{$user->id}}
74 </td> 72 </td>
75 <td class="px-4 py-3"> 73 <td class="px-4 py-3 text-xs">
76 <!--<div class="flex items-center text-sm"> 74 <a style="text-decoration: underline;" href="{{ route('admin.user-profile', ['user' => $user->id]) }}">{{ $user->name }}</a>
77 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
78 <div
79 class="absolute inset-0 rounded-full shadow-inner"
80 aria-hidden="true"
81 ></div>
82 </div>
83 <div>
84 <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p>
85 <p class="text-xs text-gray-600 dark:text-gray-400">
86 Все пользователи сайта
87 </p>
88 </div>
89 </div>
90 -->
91 <a style="text-decoration: underline;" href="{{ route('admin.user-profile', ['user' => $user->id]) }}">{{ $user->name }}</a>
92 </td> 75 </td>
93 <td class="px-4 py-3 text-sm"> 76 <td class="px-4 py-3 text-xs">
94 {{ $user->email }} 77 {{ $user->email }}
95 </td> 78 </td>
96 <td class="px-4 py-3 text-xs"> 79 <td class="px-4 py-3 text-xs">
97 <span 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"> 80 <span 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">
98 @if ($user->is_worker) 81 @if ($user->is_worker)
99 Работник 82 Работник
100 @else 83 @else
101 Работодатель 84 Работодатель
102 @endif 85 @endif
103 </span> 86 </span>
104 @if ($user->admin) 87 @if ($user->admin)
105 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> 88 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
106 Администратор 89 Администратор
107 </span> 90 </span>
108 @endif 91 @endif
109 @if ($user->is_bd) 92 @if ($user->is_bd)
110 <span 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"> 93 <span 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">
111 База данных 94 База данных
112 </span> 95 </span>
113 @endif 96 @endif
114 </td> 97 </td>
115 <td class="px-4 py-3 text-sm">
116 @if ($user->id > 1)
117 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_ban" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/>
118 @endif
119 </td>
120
121 <td class="px-4 py-3 text-sm">
122 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_new" name="new_{{$user->id}}" {{ ($user->is_new) ? "checked" : "" }}/>
123 </td>
124 98
125 @if ($id_admin == 1) 99 @if ($id_admin == 1)
126 <td class="px-4 py-3 text-sm"> 100 <td class="px-4 py-3 text-xs">
127 @if ($user->id > 1) 101 @if ($user->id > 1)
128 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="admin" name="admin_{{$user->id}}" {{ ($user->admin) ? "checked" : "" }}/> 102 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="admin" name="admin_{{$user->id}}" {{ ($user->admin) ? "checked" : "" }}/>
129 @endif 103 @endif
130 </td> 104 </td>
131 @endif 105 @endif
132 106
133 <td class="px-4 py-3 text-sm"> 107 <td class="px-4 py-3 text-xs">
134 {{ date('d.m.Y', strtotime($user->created_at)) }} 108 {{ date('d.m.Y', strtotime($user->created_at)) }}
135 </td> 109 </td>
136 </tr> 110 </tr>
137 @endforeach 111 @endforeach
138 </tbody> 112 </tbody>
139 </table> 113 </table>
140 </div> 114 </div>
141 115
142 <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"> 116 <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">
143 <?//=$users->appends($_GET)->links('admin.pagginate'); ?> 117 <?//=$users->appends($_GET)->links('admin.pagginate'); ?>
144 <?=$users->links('admin.pagginate'); ?> 118 <?=$users->links('admin.pagginate'); ?>
145 </div> 119 </div>
146 120
147 121
148 <!--<div 122 <!--<div
149 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" 123 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"
150 > 124 >
151 <span class="flex items-center col-span-3"> 125 <span class="flex items-center col-span-3">
152 Showing 21-30 of 100 126 Showing 21-30 of 100
153 </span> 127 </span>
154 <span class="col-span-2"></span> 128 <span class="col-span-2"></span>
155 129
156 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> 130 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
157 <nav aria-label="Table navigation"> 131 <nav aria-label="Table navigation">
158 <ul class="inline-flex items-center"> 132 <ul class="inline-flex items-center">
159 <li> 133 <li>
160 <button 134 <button
161 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" 135 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
162 aria-label="Previous" 136 aria-label="Previous"
163 > 137 >
164 <svg 138 <svg
165 aria-hidden="true" 139 aria-hidden="true"
166 class="w-4 h-4 fill-current" 140 class="w-4 h-4 fill-current"
167 viewBox="0 0 20 20" 141 viewBox="0 0 20 20"
168 > 142 >
169 <path 143 <path
170 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" 144 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"
171 clip-rule="evenodd" 145 clip-rule="evenodd"
172 fill-rule="evenodd" 146 fill-rule="evenodd"
173 ></path> 147 ></path>
174 </svg> 148 </svg>
175 </button> 149 </button>
176 </li> 150 </li>
177 <li> 151 <li>
178 <button 152 <button
179 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 153 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
180 > 154 >
181 1 155 1
182 </button> 156 </button>
183 </li> 157 </li>
184 <li> 158 <li>
185 <button 159 <button
186 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 160 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
187 > 161 >
188 2 162 2
189 </button> 163 </button>
190 </li> 164 </li>
191 <li> 165 <li>
192 <button 166 <button
193 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" 167 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"
194 > 168 >
195 3 169 3
196 </button> 170 </button>
197 </li> 171 </li>
198 <li> 172 <li>
199 <button 173 <button
200 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 174 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
201 > 175 >
202 4 176 4
203 </button> 177 </button>
204 </li> 178 </li>
205 <li> 179 <li>
206 <span class="px-3 py-1">...</span> 180 <span class="px-3 py-1">...</span>
207 </li> 181 </li>
208 <li> 182 <li>
209 <button 183 <button
210 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 184 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
211 > 185 >
212 8 186 8
213 </button> 187 </button>
214 </li> 188 </li>
215 <li> 189 <li>
216 <button 190 <button
217 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 191 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
218 > 192 >
219 9 193 9
220 </button> 194 </button>
221 </li> 195 </li>
222 <li> 196 <li>
223 <button 197 <button
224 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" 198 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
225 aria-label="Next" 199 aria-label="Next"
226 > 200 >
227 <svg 201 <svg
228 class="w-4 h-4 fill-current" 202 class="w-4 h-4 fill-current"
229 aria-hidden="true" 203 aria-hidden="true"
230 viewBox="0 0 20 20" 204 viewBox="0 0 20 20"
231 > 205 >
232 <path 206 <path
233 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" 207 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"
234 clip-rule="evenodd" 208 clip-rule="evenodd"
235 fill-rule="evenodd" 209 fill-rule="evenodd"
236 ></path> 210 ></path>
237 </svg> 211 </svg>
238 </button> 212 </button>
239 </li> 213 </li>
240 </ul> 214 </ul>
241 </nav> 215 </nav>
242 </span> 216 </span>
243 </div>--> 217 </div>-->
244 </div> 218 </div>
245 219
246 <?//=$users->appends($_GET)->links('catalogs.paginate'); ?> 220 <?//=$users->appends($_GET)->links('catalogs.paginate'); ?>
247 221
248 222
249 @endsection 223 @endsection
250 224
resources/views/admin/users/index_ajax.blade.php
1 <div class="w-full overflow-x-auto"> 1 <div class="w-full overflow-x-auto">
2 <table class="w-full whitespace-no-wrap"> 2 <table class="w-full whitespace-no-wrap">
3 <thead> 3 <thead>
4 <tr 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" 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 > 6 >
7 <th class="px-4 py-3">№</th> 7 <th class="px-4 py-3 text-xs">№</th>
8 <th class="px-4 py-3">Имя</th> 8 <th class="px-4 py-3 text-xs">Имя</th>
9 <th class="px-4 py-3">Email/логин</th> 9 <th class="px-4 py-3 text-xs">Email/логин</th>
10 <th class="px-4 py-3">Работодатель/работник/администратор</th> 10 <th class="px-4 py-3 text-xs">Работодатель/работник/администратор</th>
11 <th class="px-4 py-3">Бан</th>
12 <th class="px-4 py-3">Новый</th>
13 @if ($id_admin == 1) 11 @if ($id_admin == 1)
14 <th class="px-4 py-3">Админ</th> 12 <th class="px-4 py-3 text-xs">Админ</th>
15 @endif 13 @endif
16 <th class="px-4 py-3">Дата регистрации</th> 14 <th class="px-4 py-3 text-xs">Дата регист.</th>
17 </tr> 15 </tr>
18 </thead> 16 </thead>
19 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> 17 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
20 @foreach($users as $user) 18 @foreach($users as $user)
21 <tr class="text-gray-700 dark:text-gray-400"> 19 <tr class="text-gray-700 dark:text-gray-400">
22 <td class="px-4 py-3"> 20 <td class="px-4 py-3 text-xs">
23 {{$user->id}} 21 {{$user->id}}
24 </td> 22 </td>
25 <td class="px-4 py-3"> 23 <td class="px-4 py-3 text-xs">
26 {{ $user->name }} 24 <a style="text-decoration: underline;" href="{{ route('admin.user-profile', ['user' => $user->id]) }}">{{ $user->name }}</a>
27 </td> 25 </td>
28 <td class="px-4 py-3 text-sm"> 26 <td class="px-4 py-3 text-xs">
29 {{ $user->email }} 27 {{ $user->email }}
30 </td> 28 </td>
31 <td class="px-4 py-3 text-xs"> 29 <td class="px-4 py-3 text-xs">
32 <span 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"> 30 <span 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">
33 @if ($user->is_worker) 31 @if ($user->is_worker)
34 Работник 32 Работник
35 @else 33 @else
36 Работодатель 34 Работодатель
37 @endif 35 @endif
38 </span> 36 </span>
39 @if ($user->admin) 37 @if ($user->admin)
40 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> 38 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
41 Администратор 39 Администратор
42 </span> 40 </span>
43 @endif 41 @endif
44 </td> 42 @if ($user->is_bd)
45 <td class="px-4 py-3 text-sm"> 43 <span 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">
46 @if ($user->id > 1) 44 База данных
47 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_ban" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/> 45 </span>
48 @endif
49 </td>
50 <td class="px-4 py-3 text-sm">
51 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_new" name="new_{{$user->id}}" {{ ($user->is_new) ? "checked" : "" }}/>
52 </td>
53
54 @if ($id_admin == 1)
55 <td class="px-4 py-3 text-sm">
56 @if ($user->id > 1)
57 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="admin" name="admin_{{$user->id}}" {{ ($user->admin) ? "checked" : "" }}/>
58 @endif 46 @endif
59 </td> 47 </td>
60 @endif
61 48
62 <td class="px-4 py-3 text-sm"> 49 @if ($id_admin == 1)
63 {{ date('d.m.Y', strtotime($user->created_at)) }} 50 <td class="px-4 py-3 text-xs">
64 </td> 51 @if ($user->id > 1)
65 </tr> 52 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="admin" name="admin_{{$user->id}}" {{ ($user->admin) ? "checked" : "" }}/>
53 @endif
54 </td>
55 @endif
56
57 <td class="px-4 py-3 text-xs">
58 {{ date('d.m.Y', strtotime($user->created_at)) }}
59 </td>
60 </tr>
66 @endforeach 61 @endforeach
67 </tbody> 62 </tbody>
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_new.css')}}" /> 11 <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output_new.css')}}" />
12 <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" /> 12 <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" />
13 <script 13 <script
14 src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" 14 src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
15 defer 15 defer
16 ></script> 16 ></script>
17 <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> 17 <script src="{{ asset('./assets/js/init-alpine.js') }}"></script>
18 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> 18 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/>
19 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> 19 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script>
20 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 20 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
21 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> 21 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script>
22 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> 22 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script>
23 </head> 23 </head>
24 <body> 24 <body>
25 <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> 25 <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }">
26 <!-- Desktop sidebar --> 26 <!-- Desktop sidebar -->
27 <aside 27 <aside
28 class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" 28 class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
29 > 29 >
30 <div class="py-4 text-gray-500 dark:text-gray-400"> 30 <div class="py-4 text-gray-500 dark:text-gray-400">
31 <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 31 <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
32 href="{{ route('admin.index') }}"> 32 href="{{ route('admin.index') }}">
33 Админка 33 Админка
34 </a> 34 </a>
35
35 <ul class="mt-6"> 36 <ul class="mt-6">
37 @if (($is_manager == 1) || ($admin == 1))
36 <li class="relative px-6 py-3"> 38 <li class="relative px-6 py-3">
37 <span 39 <span
38 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 40 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
39 aria-hidden="true" 41 aria-hidden="true"
40 ></span> 42 ></span>
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 -->
43 <a 43 <a
44 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.index') ? 'dark:text-gray-100' : null }}" 44 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.index') ? 'dark:text-gray-100' : null }}"
45 href="{{ route('admin.index') }}" 45 href="{{ route('admin.index') }}"
46 > 46 >
47 <svg 47 <svg
48 class="w-5 h-5" 48 class="w-5 h-5"
49 aria-hidden="true" 49 aria-hidden="true"
50 fill="none" 50 fill="none"
51 stroke-linecap="round" 51 stroke-linecap="round"
52 stroke-linejoin="round" 52 stroke-linejoin="round"
53 stroke-width="2" 53 stroke-width="2"
54 viewBox="0 0 24 24" 54 viewBox="0 0 24 24"
55 stroke="currentColor" 55 stroke="currentColor"
56 > 56 >
57 <path 57 <path
58 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" 58 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"
59 ></path> 59 ></path>
60 </svg> 60 </svg>
61 <span class="ml-4">Главная страница</span> 61 <span class="ml-4">Главная страница</span>
62 </a> 62 </a>
63 </li> 63 </li>
64 @endif
64 </ul> 65 </ul>
65 <ul> 66 <ul>
66 @if ($UserId == 1) 67 @if (($UserId == 1) || ($admin == 1))
67 <li class="relative px-6 py-3"> 68 <li class="relative px-6 py-3">
68 <a 69 <a
69 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.users') ? 'dark:text-gray-100' : null }}" 70 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.users') ? 'dark:text-gray-100' : null }}"
70 href="{{ route('admin.users') }}" 71 href="{{ route('admin.users') }}"
71 > 72 >
72 <svg 73 <svg
73 class="w-5 h-5" 74 class="w-5 h-5"
74 aria-hidden="true" 75 aria-hidden="true"
75 fill="none" 76 fill="none"
76 stroke-linecap="round" 77 stroke-linecap="round"
77 stroke-linejoin="round" 78 stroke-linejoin="round"
78 stroke-width="2" 79 stroke-width="2"
79 viewBox="0 0 24 24" 80 viewBox="0 0 24 24"
80 stroke="currentColor" 81 stroke="currentColor"
81 > 82 >
82 <path 83 <path
83 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" 84 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"
84 ></path> 85 ></path>
85 </svg> 86 </svg>
86 <span class="ml-4">Пользователи</span> 87 <span class="ml-4">Пользователи</span>
87 </a> 88 </a>
88 </li> 89 </li>
89 @endif 90 @endif
91
92 @if ($admin == 1)
93 <!--<li class="relative px-6 py-3">
94 <a
95 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.users') ? 'dark:text-gray-100' : null }}"
96 href="{{ route('admin.admin_roles') }}"
97 >
98 <svg
99 class="w-5 h-5"
100 aria-hidden="true"
101 fill="none"
102 stroke-linecap="round"
103 stroke-linejoin="round"
104 stroke-width="2"
105 viewBox="0 0 24 24"
106 stroke="currentColor"
107 >
108 <path
109 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"
110 ></path>
111 </svg>
112 <span class="ml-4">Роли администраторов</span>
113 </a>
114 </li>-->
115 @endif
116
117 @if ($admin == 1)
90 <li class="relative px-6 py-3"> 118 <li class="relative px-6 py-3">
91 <a 119 <a
92 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-users') }}" 120 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-users') }}"
93 > 121 >
94 <svg 122 <svg
95 class="w-5 h-5" 123 class="w-5 h-5"
96 aria-hidden="true" 124 aria-hidden="true"
97 fill="none" 125 fill="none"
98 stroke-linecap="round" 126 stroke-linecap="round"
99 stroke-linejoin="round" 127 stroke-linejoin="round"
100 stroke-width="2" 128 stroke-width="2"
101 viewBox="0 0 24 24" 129 viewBox="0 0 24 24"
102 stroke="currentColor" 130 stroke="currentColor"
103 > 131 >
104 <path 132 <path
105 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" 133 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"
106 ></path> 134 ></path>
107 </svg> 135 </svg>
108 <span class="ml-4">Администраторы</span> 136 <span class="ml-4">Администраторы</span>
109 </a> 137 </a>
110 </li> 138 </li>
139 @endif
140
141 @if (($is_manager == 1) || ($admin == 1))
111 <li class="relative px-6 py-3"> 142 <li class="relative px-6 py-3">
112 <a 143 <a
113 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.employers') }}" 144 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.employers') }}"
114 > 145 >
115 <svg 146 <svg
116 class="w-5 h-5" 147 class="w-5 h-5"
117 aria-hidden="true" 148 aria-hidden="true"
118 fill="none" 149 fill="none"
119 stroke-linecap="round" 150 stroke-linecap="round"
120 stroke-linejoin="round" 151 stroke-linejoin="round"
121 stroke-width="2" 152 stroke-width="2"
122 viewBox="0 0 24 24" 153 viewBox="0 0 24 24"
123 stroke="currentColor" 154 stroke="currentColor"
124 > 155 >
125 <path 156 <path
126 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" 157 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"
127 ></path> 158 ></path>
128 </svg> 159 </svg>
129 <span class="ml-4">Работодатели</span> 160 <span class="ml-4">Работодатели</span>
130 </a> 161 </a>
131 </li> 162 </li>
163 @endif
164
165 @if (($is_manager == 1) || ($admin == 1))
132 <li class="relative px-6 py-3"> 166 <li class="relative px-6 py-3">
133 <a 167 <a
134 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.workers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.workers') }}" 168 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.workers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.workers') }}"
135 > 169 >
136 <svg 170 <svg
137 class="w-5 h-5" 171 class="w-5 h-5"
138 aria-hidden="true" 172 aria-hidden="true"
139 fill="none" 173 fill="none"
140 stroke-linecap="round" 174 stroke-linecap="round"
141 stroke-linejoin="round" 175 stroke-linejoin="round"
142 stroke-width="2" 176 stroke-width="2"
143 viewBox="0 0 24 24" 177 viewBox="0 0 24 24"
144 stroke="currentColor" 178 stroke="currentColor"
145 > 179 >
146 <path 180 <path
147 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 181 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
148 ></path> 182 ></path>
149 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 183 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
150 </svg> 184 </svg>
151 <span class="ml-4">Соискатели</span> 185 <span class="ml-4">Соискатели</span>
152 </a> 186 </a>
153 </li> 187 </li>
188 @endif
189
190 @if (($is_manager) || ($admin))
154 <li class="relative px-6 py-3"> 191 <li class="relative px-6 py-3">
155 <a 192 <a
156 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.ad-employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.ad-employers') }}" 193 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.ad-employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.ad-employers') }}"
157 > 194 >
158 <svg 195 <svg
159 class="w-5 h-5" 196 class="w-5 h-5"
160 aria-hidden="true" 197 aria-hidden="true"
161 fill="none" 198 fill="none"
162 stroke-linecap="round" 199 stroke-linecap="round"
163 stroke-linejoin="round" 200 stroke-linejoin="round"
164 stroke-width="2" 201 stroke-width="2"
165 viewBox="0 0 24 24" 202 viewBox="0 0 24 24"
166 stroke="currentColor" 203 stroke="currentColor"
167 > 204 >
168 <path 205 <path
169 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" 206 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"
170 ></path> 207 ></path>
171 </svg> 208 </svg>
172 <span class="ml-4">Вакансии</span> 209 <span class="ml-4">Вакансии</span>
173 </a> 210 </a>
174 </li> 211 </li>
212 @endif
175 213
214 @if ($admin)
176 <li class="relative px-6 py-3"> 215 <li class="relative px-6 py-3">
177 <a 216 <a
178 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}" 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 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}"
179 > 218 >
180 <svg 219 <svg
181 class="w-5 h-5" 220 class="w-5 h-5"
182 aria-hidden="true" 221 aria-hidden="true"
183 fill="none" 222 fill="none"
184 stroke-linecap="round" 223 stroke-linecap="round"
185 stroke-linejoin="round" 224 stroke-linejoin="round"
186 stroke-width="2" 225 stroke-width="2"
187 viewBox="0 0 24 24" 226 viewBox="0 0 24 24"
188 stroke="currentColor" 227 stroke="currentColor"
189 > 228 >
190 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 229 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
191 </svg> 230 </svg>
192 <span class="ml-4">Сообщения все</span> 231 <span class="ml-4">Сообщения все</span>
193 </a> 232 </a>
194 </li> 233 </li>
234 @endif
195 235
236 @if ($admin)
196 <li class="relative px-6 py-3"> 237 <li class="relative px-6 py-3">
197 <a 238 <a
198 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-messages') }}" 239 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-messages') }}"
199 > 240 >
200 <svg 241 <svg
201 class="w-5 h-5" 242 class="w-5 h-5"
202 aria-hidden="true" 243 aria-hidden="true"
203 fill="none" 244 fill="none"
204 stroke-linecap="round" 245 stroke-linecap="round"
205 stroke-linejoin="round" 246 stroke-linejoin="round"
206 stroke-width="2" 247 stroke-width="2"
207 viewBox="0 0 24 24" 248 viewBox="0 0 24 24"
208 stroke="currentColor" 249 stroke="currentColor"
209 > 250 >
210 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 251 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
211 </svg> 252 </svg>
212 <span class="ml-4">Заявки на рассылку</span> 253 <span class="ml-4">Заявки на рассылку</span>
213 </a> 254 </a>
214 </li> 255 </li>
256 @endif
215 257
258 @if (($is_manager) || ($admin))
216 <li class="relative px-6 py-3"> 259 <li class="relative px-6 py-3">
217 <a 260 <a
218 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.groups') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.groups') }}" 261 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.groups') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.groups') }}"
219 > 262 >
220 <svg 263 <svg
221 class="w-5 h-5" 264 class="w-5 h-5"
222 aria-hidden="true" 265 aria-hidden="true"
223 fill="none" 266 fill="none"
224 stroke-linecap="round" 267 stroke-linecap="round"
225 stroke-linejoin="round" 268 stroke-linejoin="round"
226 stroke-width="2" 269 stroke-width="2"
227 viewBox="0 0 24 24" 270 viewBox="0 0 24 24"
228 stroke="currentColor" 271 stroke="currentColor"
229 > 272 >
230 <path 273 <path
231 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" 274 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"
232 ></path> 275 ></path>
233 </svg> 276 </svg>
234 <span class="ml-4">Группы пользователей</span> 277 <span class="ml-4">Группы пользователей</span>
235 </a> 278 </a>
236 </li> 279 </li>
280 @endif
237 281
282 @if (($is_manager) || ($admin))
238 <li class="relative px-6 py-3"> 283 <li class="relative px-6 py-3">
239 <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 {{ Request::routeIs('admin.media') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.media') }}"> 284 <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 {{ Request::routeIs('admin.media') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.media') }}">
240 <svg 285 <svg
241 class="w-5 h-5" 286 class="w-5 h-5"
242 aria-hidden="true" 287 aria-hidden="true"
243 fill="none" 288 fill="none"
244 stroke-linecap="round" 289 stroke-linecap="round"
245 stroke-linejoin="round" 290 stroke-linejoin="round"
246 stroke-width="2" 291 stroke-width="2"
247 viewBox="0 0 24 24" 292 viewBox="0 0 24 24"
248 stroke="currentColor" 293 stroke="currentColor"
249 > 294 >
250 <path 295 <path
251 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" 296 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"
252 ></path> 297 ></path>
253 </svg> 298 </svg>
254 <span class="ml-4">Медиа</span> 299 <span class="ml-4">Медиа</span>
255 </a> 300 </a>
256 </li> 301 </li>
302 @endif
257 303
258 @if ($UserId == 1) 304 @if ($UserId == 1)
259 <li class="relative px-6 py-3"> 305 <li class="relative px-6 py-3">
260 <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 {{ Request::routeIs('admin.roles') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.roles') }}"> 306 <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 {{ Request::routeIs('admin.roles') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.roles') }}">
261 <svg 307 <svg
262 class="w-5 h-5" 308 class="w-5 h-5"
263 aria-hidden="true" 309 aria-hidden="true"
264 fill="none" 310 fill="none"
265 stroke-linecap="round" 311 stroke-linecap="round"
266 stroke-linejoin="round" 312 stroke-linejoin="round"
267 stroke-width="2" 313 stroke-width="2"
268 viewBox="0 0 24 24" 314 viewBox="0 0 24 24"
269 stroke="currentColor" 315 stroke="currentColor"
270 > 316 >
271 <path 317 <path
272 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" 318 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"
273 ></path> 319 ></path>
274 </svg> 320 </svg>
275 <span class="ml-4">Роли пользователей</span> 321 <span class="ml-4">Роли пользователей</span>
276 </a> 322 </a>
277 </li> 323 </li>
278 @endif 324 @endif
325
326 @if (($is_manager) || ($admin))
279 <li class="relative px-6 py-3"> 327 <li class="relative px-6 py-3">
280 <a 328 <a
281 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.basedata') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.basedata') }}" 329 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.basedata') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.basedata') }}"
282 > 330 >
283 <svg 331 <svg
284 class="w-5 h-5" 332 class="w-5 h-5"
285 aria-hidden="true" 333 aria-hidden="true"
286 fill="none" 334 fill="none"
287 stroke-linecap="round" 335 stroke-linecap="round"
288 stroke-linejoin="round" 336 stroke-linejoin="round"
289 stroke-width="2" 337 stroke-width="2"
290 viewBox="0 0 24 24" 338 viewBox="0 0 24 24"
291 stroke="currentColor" 339 stroke="currentColor"
292 > 340 >
293 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 341 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
294 </svg> 342 </svg>
295 <span class="ml-4">Базы данных</span> 343 <span class="ml-4">Базы данных</span>
296 </a> 344 </a>
297 </li> 345 </li>
346 @endif
298 347
348 @if ($admin)
299 <li class="relative px-6 py-3"> 349 <li class="relative px-6 py-3">
300 <a 350 <a
301 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.education.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.education.index') }}" 351 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.education.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.education.index') }}"
302 > 352 >
303 <svg 353 <svg
304 class="w-5 h-5" 354 class="w-5 h-5"
305 aria-hidden="true" 355 aria-hidden="true"
306 fill="none" 356 fill="none"
307 stroke-linecap="round" 357 stroke-linecap="round"
308 stroke-linejoin="round" 358 stroke-linejoin="round"
309 stroke-width="2" 359 stroke-width="2"
310 viewBox="0 0 24 24" 360 viewBox="0 0 24 24"
311 stroke="currentColor" 361 stroke="currentColor"
312 > 362 >
313 <path 363 <path
314 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" 364 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"
315 ></path> 365 ></path>
316 </svg> 366 </svg>
317 <span class="ml-4">Учебн.заведения</span> 367 <span class="ml-4">Учебн.заведения</span>
318 </a> 368 </a>
319 </li> 369 </li>
370 @endif
320 371
372 @if ($admin)
321 <li class="relative px-6 py-3"> 373 <li class="relative px-6 py-3">
322 <a 374 <a
323 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}" 375 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}"
324 > 376 >
325 <svg 377 <svg
326 class="w-5 h-5" 378 class="w-5 h-5"
327 aria-hidden="true" 379 aria-hidden="true"
328 fill="none" 380 fill="none"
329 stroke-linecap="round" 381 stroke-linecap="round"
330 stroke-linejoin="round" 382 stroke-linejoin="round"
331 stroke-width="2" 383 stroke-width="2"
332 viewBox="0 0 24 24" 384 viewBox="0 0 24 24"
333 stroke="currentColor" 385 stroke="currentColor"
334 > 386 >
335 <path 387 <path
336 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 388 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
337 ></path> 389 ></path>
338 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 390 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
339 </svg> 391 </svg>
340 <span class="ml-4">Статистика</span> 392 <span class="ml-4">Статистика</span>
341 </a> 393 </a>
342 </li> 394 </li>
395 @endif
396
397 @if (($is_manager) || ($admin))
343 <li class="relative px-6 py-3"> 398 <li class="relative px-6 py-3">
344 <a 399 <a
345 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.answers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.answers') }}" 400 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.answers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.answers') }}"
346 > 401 >
347 <svg 402 <svg
348 class="w-5 h-5" 403 class="w-5 h-5"
349 aria-hidden="true" 404 aria-hidden="true"
350 fill="none" 405 fill="none"
351 stroke-linecap="round" 406 stroke-linecap="round"
352 stroke-linejoin="round" 407 stroke-linejoin="round"
353 stroke-width="2" 408 stroke-width="2"
354 viewBox="0 0 24 24" 409 viewBox="0 0 24 24"
355 stroke="currentColor" 410 stroke="currentColor"
356 > 411 >
357 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 412 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
358 </svg> 413 </svg>
359 <span class="ml-4">Модерация</span> 414 <span class="ml-4">Модерация</span>
360 </a> 415 </a>
361 </li> 416 </li>
417 @endif
418
419 @if (($is_manager) || ($admin))
362 <li class="relative px-6 py-3"> 420 <li class="relative px-6 py-3">
363 <a 421 <a
364 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.reclames') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.reclames') }}" 422 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.reclames') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.reclames') }}"
365 > 423 >
366 <svg 424 <svg
367 class="w-5 h-5" 425 class="w-5 h-5"
368 aria-hidden="true" 426 aria-hidden="true"
369 fill="none" 427 fill="none"
370 stroke-linecap="round" 428 stroke-linecap="round"
371 stroke-linejoin="round" 429 stroke-linejoin="round"
372 stroke-width="2" 430 stroke-width="2"
373 viewBox="0 0 24 24" 431 viewBox="0 0 24 24"
374 stroke="currentColor" 432 stroke="currentColor"
375 > 433 >
376 <path 434 <path
377 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" 435 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"
378 ></path> 436 ></path>
379 </svg> 437 </svg>
380 <span class="ml-4">Реклама</span> 438 <span class="ml-4">Реклама</span>
381 </a> 439 </a>
382 </li> 440 </li>
441 @endif
442
383 <!-- Справочники --> 443 <!-- Справочники -->
444 @if ($admin)
384 <li class="relative px-6 py-3" x-data="{ open1: false }"> 445 <li class="relative px-6 py-3" x-data="{ open1: false }">
385 <button 446 <button
386 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" 447 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"
387 @click="open1=!open1" 448 @click="open1=!open1"
388 aria-haspopup="true"> 449 aria-haspopup="true">
389 <span class="inline-flex items-center"> 450 <span class="inline-flex items-center">
390 <svg 451 <svg
391 class="w-5 h-5" 452 class="w-5 h-5"
392 aria-hidden="true" 453 aria-hidden="true"
393 fill="none" 454 fill="none"
394 stroke-linecap="round" 455 stroke-linecap="round"
395 stroke-linejoin="round" 456 stroke-linejoin="round"
396 stroke-width="2" 457 stroke-width="2"
397 viewBox="0 0 24 24" 458 viewBox="0 0 24 24"
398 stroke="currentColor"> 459 stroke="currentColor">
399 <path 460 <path
400 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" 461 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"
401 ></path> 462 ></path>
402 </svg> 463 </svg>
403 <span class="ml-4">Справочники</span> 464 <span class="ml-4">Справочники</span>
404 </span> 465 </span>
405 <svg 466 <svg
406 class="w-4 h-4" 467 class="w-4 h-4"
407 aria-hidden="true" 468 aria-hidden="true"
408 fill="currentColor" 469 fill="currentColor"
409 viewBox="0 0 20 20" 470 viewBox="0 0 20 20"
410 > 471 >
411 <path 472 <path
412 fill-rule="evenodd" 473 fill-rule="evenodd"
413 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" 474 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"
414 clip-rule="evenodd" 475 clip-rule="evenodd"
415 ></path> 476 ></path>
416 </svg> 477 </svg>
417 </button> 478 </button>
418 <template x-if="open1"> 479 <template x-if="open1">
419 <ul 480 <ul
420 x-transition:enter="transition-all ease-in-out duration-300" 481 x-transition:enter="transition-all ease-in-out duration-300"
421 x-transition:enter-start="opacity-25 max-h-0" 482 x-transition:enter-start="opacity-25 max-h-0"
422 x-transition:enter-end="opacity-100 max-h-xl" 483 x-transition:enter-end="opacity-100 max-h-xl"
423 x-transition:leave="transition-all ease-in-out duration-300" 484 x-transition:leave="transition-all ease-in-out duration-300"
424 x-transition:leave-start="opacity-100 max-h-xl" 485 x-transition:leave-start="opacity-100 max-h-xl"
425 x-transition:leave-end="opacity-0 max-h-0" 486 x-transition:leave-end="opacity-0 max-h-0"
426 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" 487 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"
427 aria-label="submenu" 488 aria-label="submenu"
428 > 489 >
429 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles.index') ? 'dark:text-gray-100' : null }}"> 490 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles.index') ? 'dark:text-gray-100' : null }}">
430 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> 491 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
431 </li> 492 </li>
432 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.categories.index') ? 'dark:text-gray-100' : null }}"> 493 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.categories.index') ? 'dark:text-gray-100' : null }}">
433 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> 494 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a>
434 </li> 495 </li>
435 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.category-emp.index') ? 'dark:text-gray-100' : null }}"> 496 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.category-emp.index') ? 'dark:text-gray-100' : null }}">
436 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> 497 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a>
437 </li> 498 </li>
438 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.infobloks.index') ? 'dark:text-gray-100' : null }}"> 499 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.infobloks.index') ? 'dark:text-gray-100' : null }}">
439 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> 500 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a>
440 </li> 501 </li>
441 502
442 </ul> 503 </ul>
443 </template> 504 </template>
444 </li> 505 </li>
506 @endif
445 507
446 508
509 @if ($admin)
447 <!-- Редактор --> 510 <!-- Редактор -->
448 <li class="relative px-6 py-3"> 511 <li class="relative px-6 py-3">
449 <button 512 <button
450 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" 513 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"
451 @click="togglePagesMenu" 514 @click="togglePagesMenu"
452 aria-haspopup="true"> 515 aria-haspopup="true">
453 <span class="inline-flex items-center"> 516 <span class="inline-flex items-center">
454 <svg 517 <svg
455 class="w-5 h-5" 518 class="w-5 h-5"
456 aria-hidden="true" 519 aria-hidden="true"
457 fill="none" 520 fill="none"
458 stroke-linecap="round" 521 stroke-linecap="round"
459 stroke-linejoin="round" 522 stroke-linejoin="round"
460 stroke-width="2" 523 stroke-width="2"
461 viewBox="0 0 24 24" 524 viewBox="0 0 24 24"
462 stroke="currentColor"> 525 stroke="currentColor">
463 <path 526 <path
464 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" 527 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"
465 ></path> 528 ></path>
466 </svg> 529 </svg>
467 <span class="ml-4">Редактор</span> 530 <span class="ml-4">Редактор</span>
468 </span> 531 </span>
469 <svg 532 <svg
470 class="w-4 h-4" 533 class="w-4 h-4"
471 aria-hidden="true" 534 aria-hidden="true"
472 fill="currentColor" 535 fill="currentColor"
473 viewBox="0 0 20 20" 536 viewBox="0 0 20 20"
474 > 537 >
475 <path 538 <path
476 fill-rule="evenodd" 539 fill-rule="evenodd"
477 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" 540 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"
478 clip-rule="evenodd" 541 clip-rule="evenodd"
479 ></path> 542 ></path>
480 </svg> 543 </svg>
481 </button> 544 </button>
482 <template x-if="isPagesMenuOpen"> 545 <template x-if="isPagesMenuOpen">
483 <ul 546 <ul
484 x-transition:enter="transition-all ease-in-out duration-300" 547 x-transition:enter="transition-all ease-in-out duration-300"
485 x-transition:enter-start="opacity-25 max-h-0" 548 x-transition:enter-start="opacity-25 max-h-0"
486 x-transition:enter-end="opacity-100 max-h-xl" 549 x-transition:enter-end="opacity-100 max-h-xl"
487 x-transition:leave="transition-all ease-in-out duration-300" 550 x-transition:leave="transition-all ease-in-out duration-300"
488 x-transition:leave-start="opacity-100 max-h-xl" 551 x-transition:leave-start="opacity-100 max-h-xl"
489 x-transition:leave-end="opacity-0 max-h-0" 552 x-transition:leave-end="opacity-0 max-h-0"
490 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" 553 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"
491 aria-label="submenu" 554 aria-label="submenu"
492 > 555 >
493 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-site') ? 'dark:text-gray-100' : null }}"> 556 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-site') ? 'dark:text-gray-100' : null }}">
494 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> 557 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a>
495 </li> 558 </li>
496 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.edit-blocks') ? 'dark:text-gray-100' : null }}"> 559 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.edit-blocks') ? 'dark:text-gray-100' : null }}">
497 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> 560 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a>
498 </li> 561 </li>
499 562
500 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-seo') ? 'dark:text-gray-100' : null }}"> 563 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-seo') ? 'dark:text-gray-100' : null }}">
501 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> 564 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a>
502 </li> 565 </li>
503 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-pages') ? 'dark:text-gray-100' : null }}"> 566 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-pages') ? 'dark:text-gray-100' : null }}">
504 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> 567 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a>
505 </li> 568 </li>
506 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles-main') ? 'dark:text-gray-100' : null }}"> 569 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles-main') ? 'dark:text-gray-100' : null }}">
507 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> 570 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a>
508 </li> 571 </li>
509 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers-main') ? 'dark:text-gray-100' : null }}"> 572 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers-main') ? 'dark:text-gray-100' : null }}">
510 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> 573 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a>
511 </li> 574 </li>
512 </ul> 575 </ul>
513 </template> 576 </template>
514 </li> 577 </li>
578 @endif
515 579
516 </ul> 580 </ul>
517 <!--<div class="px-6 my-6"> 581 <!--<div class="px-6 my-6">
518 <button 582 <button
519 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" 583 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"
520 > 584 >
521 Create account 585 Create account
522 <span class="ml-2" aria-hidden="true">+</span> 586 <span class="ml-2" aria-hidden="true">+</span>
523 </button> 587 </button>
524 </div>--> 588 </div>-->
525 </div> 589 </div>
526 </aside> 590 </aside>
527 <!-- Mobile sidebar --> 591 <!-- Mobile sidebar -->
528 <!-- Backdrop --> 592 <!-- Backdrop -->
529 <div 593 <div
530 x-show="isSideMenuOpen" 594 x-show="isSideMenuOpen"
531 x-transition:enter="transition ease-in-out duration-150" 595 x-transition:enter="transition ease-in-out duration-150"
532 x-transition:enter-start="opacity-0" 596 x-transition:enter-start="opacity-0"
533 x-transition:enter-end="opacity-100" 597 x-transition:enter-end="opacity-100"
534 x-transition:leave="transition ease-in-out duration-150" 598 x-transition:leave="transition ease-in-out duration-150"
535 x-transition:leave-start="opacity-100" 599 x-transition:leave-start="opacity-100"
536 x-transition:leave-end="opacity-0" 600 x-transition:leave-end="opacity-0"
537 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" 601 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
538 ></div> 602 ></div>
539 <aside 603 <aside
540 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" 604 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"
541 x-show="isSideMenuOpen" 605 x-show="isSideMenuOpen"
542 x-transition:enter="transition ease-in-out duration-150" 606 x-transition:enter="transition ease-in-out duration-150"
543 x-transition:enter-start="opacity-0 transform -translate-x-20" 607 x-transition:enter-start="opacity-0 transform -translate-x-20"
544 x-transition:enter-end="opacity-100" 608 x-transition:enter-end="opacity-100"
545 x-transition:leave="transition ease-in-out duration-150" 609 x-transition:leave="transition ease-in-out duration-150"
546 x-transition:leave-start="opacity-100" 610 x-transition:leave-start="opacity-100"
547 x-transition:leave-end="opacity-0 transform -translate-x-20" 611 x-transition:leave-end="opacity-0 transform -translate-x-20"
548 @click.away="closeSideMenu" 612 @click.away="closeSideMenu"
549 @keydown.escape="closeSideMenu" 613 @keydown.escape="closeSideMenu"
550 > 614 >
551 <div class="py-4 text-gray-500 dark:text-gray-400"> 615 <div class="py-4 text-gray-500 dark:text-gray-400">
552 <a 616 <a
553 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 617 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
554 href="{{ route('admin.index') }}" 618 href="{{ route('admin.index') }}"
555 > 619 >
556 Админка 620 Админка
557 </a> 621 </a>
558 <ul class="mt-6"> 622 <ul class="mt-6">
559 <li class="relative px-6 py-3"> 623 <li class="relative px-6 py-3">
560 <span 624 <span
561 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 625 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
562 aria-hidden="true" 626 aria-hidden="true"
563 ></span> 627 ></span>
564 <a 628 <a
565 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.index') }}" 629 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.index') }}"
566 > 630 >
567 <svg 631 <svg
568 class="w-5 h-5" 632 class="w-5 h-5"
569 aria-hidden="true" 633 aria-hidden="true"
570 fill="none" 634 fill="none"
571 stroke-linecap="round" 635 stroke-linecap="round"
572 stroke-linejoin="round" 636 stroke-linejoin="round"
573 stroke-width="2" 637 stroke-width="2"
574 viewBox="0 0 24 24" 638 viewBox="0 0 24 24"
575 stroke="currentColor" 639 stroke="currentColor"
576 > 640 >
577 <path 641 <path
578 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" 642 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"
579 ></path> 643 ></path>
580 </svg> 644 </svg>
581 <span class="ml-4">Главная страница</span> 645 <span class="ml-4">Главная страница</span>
582 </a> 646 </a>
583 </li> 647 </li>
584 </ul> 648 </ul>
585 <ul> 649 <ul>
586 @if ($UserId == 1) 650 @if ($UserId == 1)
587 <li class="relative px-6 py-3"> 651 <li class="relative px-6 py-3">
588 <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 {{ Request::routeIs('admin.users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.users') }}"> 652 <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 {{ Request::routeIs('admin.users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.users') }}">
589 <svg 653 <svg
590 class="w-5 h-5" 654 class="w-5 h-5"
591 aria-hidden="true" 655 aria-hidden="true"
592 fill="none" 656 fill="none"
593 stroke-linecap="round" 657 stroke-linecap="round"
594 stroke-linejoin="round" 658 stroke-linejoin="round"
595 stroke-width="2" 659 stroke-width="2"
596 viewBox="0 0 24 24" 660 viewBox="0 0 24 24"
597 stroke="currentColor" 661 stroke="currentColor"
598 > 662 >
599 <path 663 <path
600 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" 664 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"
601 ></path> 665 ></path>
602 </svg> 666 </svg>
603 <span class="ml-4">Пользователи</span> 667 <span class="ml-4">Пользователи</span>
604 </a> 668 </a>
605 </li> 669 </li>
606 @endif 670 @endif
607 <li class="relative px-6 py-3"> 671 <li class="relative px-6 py-3">
608 <a 672 <a
609 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-users') }}" 673 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-users') }}"
610 > 674 >
611 <svg 675 <svg
612 class="w-5 h-5" 676 class="w-5 h-5"
613 aria-hidden="true" 677 aria-hidden="true"
614 fill="none" 678 fill="none"
615 stroke-linecap="round" 679 stroke-linecap="round"
616 stroke-linejoin="round" 680 stroke-linejoin="round"
617 stroke-width="2" 681 stroke-width="2"
618 viewBox="0 0 24 24" 682 viewBox="0 0 24 24"
619 stroke="currentColor" 683 stroke="currentColor"
620 > 684 >
621 <path 685 <path
622 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" 686 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"
623 ></path> 687 ></path>
624 </svg> 688 </svg>
625 <span class="ml-4">Администраторы</span> 689 <span class="ml-4">Администраторы</span>
626 </a> 690 </a>
627 </li> 691 </li>
628 692
629 <li class="relative px-6 py-3"> 693 <li class="relative px-6 py-3">
630 <a 694 <a
631 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.employers') }}" 695 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.employers') }}"
632 > 696 >
633 <svg 697 <svg
634 class="w-5 h-5" 698 class="w-5 h-5"
635 aria-hidden="true" 699 aria-hidden="true"
636 fill="none" 700 fill="none"
637 stroke-linecap="round" 701 stroke-linecap="round"
638 stroke-linejoin="round" 702 stroke-linejoin="round"
639 stroke-width="2" 703 stroke-width="2"
640 viewBox="0 0 24 24" 704 viewBox="0 0 24 24"
641 stroke="currentColor" 705 stroke="currentColor"
642 > 706 >
643 <path 707 <path
644 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" 708 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"
645 ></path> 709 ></path>
646 </svg> 710 </svg>
647 <span class="ml-4">Работодатели</span> 711 <span class="ml-4">Работодатели</span>
648 </a> 712 </a>
649 </li> 713 </li>
650 <li class="relative px-6 py-3"> 714 <li class="relative px-6 py-3">
651 <a 715 <a
652 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.workers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.workers') }}" 716 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.workers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.workers') }}"
653 > 717 >
654 <svg 718 <svg
655 class="w-5 h-5" 719 class="w-5 h-5"
656 aria-hidden="true" 720 aria-hidden="true"
657 fill="none" 721 fill="none"
658 stroke-linecap="round" 722 stroke-linecap="round"
659 stroke-linejoin="round" 723 stroke-linejoin="round"
660 stroke-width="2" 724 stroke-width="2"
661 viewBox="0 0 24 24" 725 viewBox="0 0 24 24"
662 stroke="currentColor" 726 stroke="currentColor"
663 > 727 >
664 <path 728 <path
665 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 729 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
666 ></path> 730 ></path>
667 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 731 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
668 </svg> 732 </svg>
669 <span class="ml-4">Соискатели</span> 733 <span class="ml-4">Соискатели</span>
670 </a> 734 </a>
671 </li> 735 </li>
672 <li class="relative px-6 py-3"> 736 <li class="relative px-6 py-3">
673 <a 737 <a
674 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.ad-employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.ad-employers') }}" 738 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.ad-employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.ad-employers') }}"
675 > 739 >
676 <svg 740 <svg
677 class="w-5 h-5" 741 class="w-5 h-5"
678 aria-hidden="true" 742 aria-hidden="true"
679 fill="none" 743 fill="none"
680 stroke-linecap="round" 744 stroke-linecap="round"
681 stroke-linejoin="round" 745 stroke-linejoin="round"
682 stroke-width="2" 746 stroke-width="2"
683 viewBox="0 0 24 24" 747 viewBox="0 0 24 24"
684 stroke="currentColor" 748 stroke="currentColor"
685 > 749 >
686 <path 750 <path
687 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" 751 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"
688 ></path> 752 ></path>
689 </svg> 753 </svg>
690 <span class="ml-4">Вакансии</span> 754 <span class="ml-4">Вакансии</span>
691 </a> 755 </a>
692 </li> 756 </li>
693 <li class="relative px-6 py-3"> 757 <li class="relative px-6 py-3">
694 <a 758 <a
695 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}" 759 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}"
696 > 760 >
697 <svg 761 <svg
698 class="w-5 h-5" 762 class="w-5 h-5"
699 aria-hidden="true" 763 aria-hidden="true"
700 fill="none" 764 fill="none"
701 stroke-linecap="round" 765 stroke-linecap="round"
702 stroke-linejoin="round" 766 stroke-linejoin="round"
703 stroke-width="2" 767 stroke-width="2"
704 viewBox="0 0 24 24" 768 viewBox="0 0 24 24"
705 stroke="currentColor" 769 stroke="currentColor"
706 > 770 >
707 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 771 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
708 </svg> 772 </svg>
709 <span class="ml-4">Сообщения все</span> 773 <span class="ml-4">Сообщения все</span>
710 </a> 774 </a>
711 </li> 775 </li>
712 776
713 <li class="relative px-6 py-3"> 777 <li class="relative px-6 py-3">
714 <a 778 <a
715 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-messages') }}" 779 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-messages') }}"
716 > 780 >
717 <svg 781 <svg
718 class="w-5 h-5" 782 class="w-5 h-5"
719 aria-hidden="true" 783 aria-hidden="true"
720 fill="none" 784 fill="none"
721 stroke-linecap="round" 785 stroke-linecap="round"
722 stroke-linejoin="round" 786 stroke-linejoin="round"
723 stroke-width="2" 787 stroke-width="2"
724 viewBox="0 0 24 24" 788 viewBox="0 0 24 24"
725 stroke="currentColor" 789 stroke="currentColor"
726 > 790 >
727 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 791 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
728 </svg> 792 </svg>
729 <span class="ml-4">Заявки на рассылку</span> 793 <span class="ml-4">Заявки на рассылку</span>
730 </a> 794 </a>
731 </li> 795 </li>
732 796
733 797
734 <li class="relative px-6 py-3"> 798 <li class="relative px-6 py-3">
735 <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 {{ Request::routeIs('admin.groups') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.groups') }}"> 799 <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 {{ Request::routeIs('admin.groups') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.groups') }}">
736 <svg 800 <svg
737 class="w-5 h-5" 801 class="w-5 h-5"
738 aria-hidden="true" 802 aria-hidden="true"
739 fill="none" 803 fill="none"
740 stroke-linecap="round" 804 stroke-linecap="round"
741 stroke-linejoin="round" 805 stroke-linejoin="round"
742 stroke-width="2" 806 stroke-width="2"
743 viewBox="0 0 24 24" 807 viewBox="0 0 24 24"
744 stroke="currentColor" 808 stroke="currentColor"
745 > 809 >
746 <path 810 <path
747 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" 811 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"
748 ></path> 812 ></path>
749 </svg> 813 </svg>
750 <span class="ml-4">Группы пользователей</span> 814 <span class="ml-4">Группы пользователей</span>
751 </a> 815 </a>
752 </li> 816 </li>
753 817
754 <li class="relative px-6 py-3"> 818 <li class="relative px-6 py-3">
755 <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 {{ Request::routeIs('admin.media') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.media') }}"> 819 <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 {{ Request::routeIs('admin.media') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.media') }}">
756 <svg 820 <svg
757 class="w-5 h-5" 821 class="w-5 h-5"
758 aria-hidden="true" 822 aria-hidden="true"
759 fill="none" 823 fill="none"
760 stroke-linecap="round" 824 stroke-linecap="round"
761 stroke-linejoin="round" 825 stroke-linejoin="round"
762 stroke-width="2" 826 stroke-width="2"
763 viewBox="0 0 24 24" 827 viewBox="0 0 24 24"
764 stroke="currentColor" 828 stroke="currentColor"
765 > 829 >
766 <path 830 <path
767 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" 831 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"
768 ></path> 832 ></path>
769 </svg> 833 </svg>
770 <span class="ml-4">Медиа</span> 834 <span class="ml-4">Медиа</span>
771 </a> 835 </a>
772 </li> 836 </li>
773 837
774 @if ($UserId == 1) 838 @if ($UserId == 1)
775 <li class="relative px-6 py-3"> 839 <li class="relative px-6 py-3">
776 <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 {{ Request::routeIs('admin.roles') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.roles') }}"> 840 <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 {{ Request::routeIs('admin.roles') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.roles') }}">
777 <svg 841 <svg
778 class="w-5 h-5" 842 class="w-5 h-5"
779 aria-hidden="true" 843 aria-hidden="true"
780 fill="none" 844 fill="none"
781 stroke-linecap="round" 845 stroke-linecap="round"
782 stroke-linejoin="round" 846 stroke-linejoin="round"
783 stroke-width="2" 847 stroke-width="2"
784 viewBox="0 0 24 24" 848 viewBox="0 0 24 24"
785 stroke="currentColor" 849 stroke="currentColor"
786 > 850 >
787 <path 851 <path
788 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" 852 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"
789 ></path> 853 ></path>
790 </svg> 854 </svg>
791 <span class="ml-4">Роли пользователей</span> 855 <span class="ml-4">Роли пользователей</span>
792 </a> 856 </a>
793 </li> 857 </li>
794 @endif 858 @endif
795 859
796 <li class="relative px-6 py-3"> 860 <li class="relative px-6 py-3">
797 <a 861 <a
798 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.basedata') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.basedata') }}" 862 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.basedata') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.basedata') }}"
799 > 863 >
800 <svg 864 <svg
801 class="w-5 h-5" 865 class="w-5 h-5"
802 aria-hidden="true" 866 aria-hidden="true"
803 fill="none" 867 fill="none"
804 stroke-linecap="round" 868 stroke-linecap="round"
805 stroke-linejoin="round" 869 stroke-linejoin="round"
806 stroke-width="2" 870 stroke-width="2"
807 viewBox="0 0 24 24" 871 viewBox="0 0 24 24"
808 stroke="currentColor" 872 stroke="currentColor"
809 > 873 >
810 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 874 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
811 </svg> 875 </svg>
812 <span class="ml-4">Базы данных</span> 876 <span class="ml-4">Базы данных</span>
813 </a> 877 </a>
814 </li> 878 </li>
815 879
816 <li class="relative px-6 py-3"> 880 <li class="relative px-6 py-3">
817 <a 881 <a
818 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.education.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.education.index') }}" 882 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.education.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.education.index') }}"
819 > 883 >
820 <svg 884 <svg
821 class="w-5 h-5" 885 class="w-5 h-5"
822 aria-hidden="true" 886 aria-hidden="true"
823 fill="none" 887 fill="none"
824 stroke-linecap="round" 888 stroke-linecap="round"
825 stroke-linejoin="round" 889 stroke-linejoin="round"
826 stroke-width="2" 890 stroke-width="2"
827 viewBox="0 0 24 24" 891 viewBox="0 0 24 24"
828 stroke="currentColor" 892 stroke="currentColor"
829 > 893 >
830 <path 894 <path
831 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" 895 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"
832 ></path> 896 ></path>
833 </svg> 897 </svg>
834 <span class="ml-4">Учебн.заведения</span> 898 <span class="ml-4">Учебн.заведения</span>
835 </a> 899 </a>
836 </li> 900 </li>
837 <li class="relative px-6 py-3"> 901 <li class="relative px-6 py-3">
838 <a 902 <a
839 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}" 903 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}"
840 > 904 >
841 <svg 905 <svg
842 class="w-5 h-5" 906 class="w-5 h-5"
843 aria-hidden="true" 907 aria-hidden="true"
844 fill="none" 908 fill="none"
845 stroke-linecap="round" 909 stroke-linecap="round"
846 stroke-linejoin="round" 910 stroke-linejoin="round"
847 stroke-width="2" 911 stroke-width="2"
848 viewBox="0 0 24 24" 912 viewBox="0 0 24 24"
849 stroke="currentColor" 913 stroke="currentColor"
850 > 914 >
851 <path 915 <path
852 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 916 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
853 ></path> 917 ></path>
854 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 918 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
855 </svg> 919 </svg>
856 <span class="ml-4">Статистика</span> 920 <span class="ml-4">Статистика</span>
857 </a> 921 </a>
858 </li> 922 </li>
859 <li class="relative px-6 py-3"> 923 <li class="relative px-6 py-3">
860 <a 924 <a
861 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}" 925 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}"
862 > 926 >
863 <svg 927 <svg
864 class="w-5 h-5" 928 class="w-5 h-5"
865 aria-hidden="true" 929 aria-hidden="true"
866 fill="none" 930 fill="none"
867 stroke-linecap="round" 931 stroke-linecap="round"
868 stroke-linejoin="round" 932 stroke-linejoin="round"
869 stroke-width="2" 933 stroke-width="2"
870 viewBox="0 0 24 24" 934 viewBox="0 0 24 24"
871 stroke="currentColor" 935 stroke="currentColor"
872 > 936 >
873 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 937 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
874 </svg> 938 </svg>
875 <span class="ml-4">Сообщения все</span> 939 <span class="ml-4">Сообщения все</span>
876 </a> 940 </a>
877 </li> 941 </li>
878 <li class="relative px-6 py-3"> 942 <li class="relative px-6 py-3">
879 <a 943 <a
880 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.reclames') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.reclames') }}" 944 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.reclames') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.reclames') }}"
881 > 945 >
882 <svg 946 <svg
883 class="w-5 h-5" 947 class="w-5 h-5"
884 aria-hidden="true" 948 aria-hidden="true"
885 fill="none" 949 fill="none"
886 stroke-linecap="round" 950 stroke-linecap="round"
887 stroke-linejoin="round" 951 stroke-linejoin="round"
888 stroke-width="2" 952 stroke-width="2"
889 viewBox="0 0 24 24" 953 viewBox="0 0 24 24"
890 stroke="currentColor" 954 stroke="currentColor"
891 > 955 >
892 <path 956 <path
893 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" 957 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"
894 ></path> 958 ></path>
895 </svg> 959 </svg>
896 <span class="ml-4">Реклама</span> 960 <span class="ml-4">Реклама</span>
897 </a> 961 </a>
898 </li> 962 </li>
899 <!-- Справочники --> 963 <!-- Справочники -->
900 <li class="relative px-6 py-3" x-data="{ open2: false }"> 964 <li class="relative px-6 py-3" x-data="{ open2: false }">
901 <button 965 <button
902 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" 966 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"
903 @click="open2=!open2" 967 @click="open2=!open2"
904 aria-haspopup="true"> 968 aria-haspopup="true">
905 <span class="inline-flex items-center"> 969 <span class="inline-flex items-center">
906 <svg 970 <svg
907 class="w-5 h-5" 971 class="w-5 h-5"
908 aria-hidden="true" 972 aria-hidden="true"
909 fill="none" 973 fill="none"
910 stroke-linecap="round" 974 stroke-linecap="round"
911 stroke-linejoin="round" 975 stroke-linejoin="round"
912 stroke-width="2" 976 stroke-width="2"
913 viewBox="0 0 24 24" 977 viewBox="0 0 24 24"
914 stroke="currentColor"> 978 stroke="currentColor">
915 <path 979 <path
916 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" 980 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"
917 ></path> 981 ></path>
918 </svg> 982 </svg>
919 <span class="ml-4">Справочники</span> 983 <span class="ml-4">Справочники</span>
920 </span> 984 </span>
921 <svg 985 <svg
922 class="w-4 h-4" 986 class="w-4 h-4"
923 aria-hidden="true" 987 aria-hidden="true"
924 fill="currentColor" 988 fill="currentColor"
925 viewBox="0 0 20 20" 989 viewBox="0 0 20 20"
926 > 990 >
927 <path 991 <path
928 fill-rule="evenodd" 992 fill-rule="evenodd"
929 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" 993 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"
930 clip-rule="evenodd" 994 clip-rule="evenodd"
931 ></path> 995 ></path>
932 </svg> 996 </svg>
933 </button> 997 </button>
934 <template x-if="open2"> 998 <template x-if="open2">
935 <ul 999 <ul
936 x-transition:enter="transition-all ease-in-out duration-300" 1000 x-transition:enter="transition-all ease-in-out duration-300"
937 x-transition:enter-start="opacity-25 max-h-0" 1001 x-transition:enter-start="opacity-25 max-h-0"
938 x-transition:enter-end="opacity-100 max-h-xl" 1002 x-transition:enter-end="opacity-100 max-h-xl"
939 x-transition:leave="transition-all ease-in-out duration-300" 1003 x-transition:leave="transition-all ease-in-out duration-300"
940 x-transition:leave-start="opacity-100 max-h-xl" 1004 x-transition:leave-start="opacity-100 max-h-xl"
941 x-transition:leave-end="opacity-0 max-h-0" 1005 x-transition:leave-end="opacity-0 max-h-0"
942 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" 1006 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"
943 aria-label="submenu" 1007 aria-label="submenu"
944 > 1008 >
945 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles.index') ? 'dark:text-gray-100' : null }}"> 1009 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles.index') ? 'dark:text-gray-100' : null }}">
946 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> 1010 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
947 </li> 1011 </li>
948 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.categories.index') ? 'dark:text-gray-100' : null }}"> 1012 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.categories.index') ? 'dark:text-gray-100' : null }}">
949 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> 1013 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a>
950 </li> 1014 </li>
951 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.category-emp.index') ? 'dark:text-gray-100' : null }}"> 1015 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.category-emp.index') ? 'dark:text-gray-100' : null }}">
952 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> 1016 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a>
953 </li> 1017 </li>
954 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.infobloks.index') ? 'dark:text-gray-100' : null }}"> 1018 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.infobloks.index') ? 'dark:text-gray-100' : null }}">
955 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> 1019 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a>
956 </li> 1020 </li>
957 1021
958 </ul> 1022 </ul>
959 </template> 1023 </template>
960 </li> 1024 </li>
961 1025
962 <!-- Редактор --> 1026 <!-- Редактор -->
963 <li class="relative px-6 py-3"> 1027 <li class="relative px-6 py-3">
964 <button 1028 <button
965 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" 1029 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"
966 @click="togglePagesMenu" 1030 @click="togglePagesMenu"
967 aria-haspopup="true" 1031 aria-haspopup="true"
968 > 1032 >
969 <span class="inline-flex items-center"> 1033 <span class="inline-flex items-center">
970 <svg 1034 <svg
971 class="w-5 h-5" 1035 class="w-5 h-5"
972 aria-hidden="true" 1036 aria-hidden="true"
973 fill="none" 1037 fill="none"
974 stroke-linecap="round" 1038 stroke-linecap="round"
975 stroke-linejoin="round" 1039 stroke-linejoin="round"
976 stroke-width="2" 1040 stroke-width="2"
977 viewBox="0 0 24 24" 1041 viewBox="0 0 24 24"
978 stroke="currentColor" 1042 stroke="currentColor"
979 > 1043 >
980 <path 1044 <path
981 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" 1045 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"
982 ></path> 1046 ></path>
983 </svg> 1047 </svg>
984 <span class="ml-4">Редактор</span> 1048 <span class="ml-4">Редактор</span>
985 </span> 1049 </span>
986 <svg 1050 <svg
987 class="w-4 h-4" 1051 class="w-4 h-4"
988 aria-hidden="true" 1052 aria-hidden="true"
989 fill="currentColor" 1053 fill="currentColor"
990 viewBox="0 0 20 20" 1054 viewBox="0 0 20 20"
991 > 1055 >
992 <path 1056 <path
993 fill-rule="evenodd" 1057 fill-rule="evenodd"
994 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" 1058 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"
995 clip-rule="evenodd" 1059 clip-rule="evenodd"
996 ></path> 1060 ></path>
997 </svg> 1061 </svg>
998 </button> 1062 </button>
999 <template x-if="isPagesMenuOpen"> 1063 <template x-if="isPagesMenuOpen">
1000 <ul 1064 <ul
1001 x-transition:enter="transition-all ease-in-out duration-300" 1065 x-transition:enter="transition-all ease-in-out duration-300"
1002 x-transition:enter-start="opacity-25 max-h-0" 1066 x-transition:enter-start="opacity-25 max-h-0"
1003 x-transition:enter-end="opacity-100 max-h-xl" 1067 x-transition:enter-end="opacity-100 max-h-xl"
1004 x-transition:leave="transition-all ease-in-out duration-300" 1068 x-transition:leave="transition-all ease-in-out duration-300"
1005 x-transition:leave-start="opacity-100 max-h-xl" 1069 x-transition:leave-start="opacity-100 max-h-xl"
1006 x-transition:leave-end="opacity-0 max-h-0" 1070 x-transition:leave-end="opacity-0 max-h-0"
1007 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" 1071 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"
1008 aria-label="submenu" 1072 aria-label="submenu"
1009 > 1073 >
1010 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-site') ? 'dark:text-gray-100' : null }}"> 1074 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-site') ? 'dark:text-gray-100' : null }}">
1011 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> 1075 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a>
1012 </li> 1076 </li>
1013 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.edit-blocks') ? 'dark:text-gray-100' : null }}"> 1077 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.edit-blocks') ? 'dark:text-gray-100' : null }}">
1014 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> 1078 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a>
1015 </li> 1079 </li>
1016 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-seo') ? 'dark:text-gray-100' : null }}"> 1080 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-seo') ? 'dark:text-gray-100' : null }}">
1017 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> 1081 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a>
1018 </li> 1082 </li>
1019 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-pages') ? 'dark:text-gray-100' : null }}"> 1083 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-pages') ? 'dark:text-gray-100' : null }}">
1020 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> 1084 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a>
1021 </li> 1085 </li>
1022 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles-main') ? 'dark:text-gray-100' : null }}"> 1086 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles-main') ? 'dark:text-gray-100' : null }}">
1023 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> 1087 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a>
1024 </li> 1088 </li>
1025 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers-main') ? 'dark:text-gray-100' : null }}"> 1089 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers-main') ? 'dark:text-gray-100' : null }}">
1026 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> 1090 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a>
1027 </li> 1091 </li>
1028 1092
1029 </ul> 1093 </ul>
1030 </template> 1094 </template>
1031 </li> 1095 </li>
1032 </ul> 1096 </ul>
1033 <!--<div class="px-6 my-6"> 1097 <!--<div class="px-6 my-6">
1034 <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"> 1098 <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">
1035 Create account 1099 Create account
1036 <span class="ml-2" aria-hidden="true">+</span> 1100 <span class="ml-2" aria-hidden="true">+</span>
1037 </button> 1101 </button>
1038 </div>--> 1102 </div>-->
1039 </div> 1103 </div>
1040 </aside> 1104 </aside>
1041 <div class="flex flex-col flex-1 w-full"> 1105 <div class="flex flex-col flex-1 w-full">
1042 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> 1106 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
1043 <div 1107 <div
1044 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" 1108 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
1045 > 1109 >
1046 <!-- Mobile hamburger --> 1110 <!-- Mobile hamburger -->
1047 <button 1111 <button
1048 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" 1112 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
1049 @click="toggleSideMenu" 1113 @click="toggleSideMenu"
1050 aria-label="Menu" 1114 aria-label="Menu"
1051 > 1115 >
1052 <svg 1116 <svg
1053 class="w-6 h-6" 1117 class="w-6 h-6"
1054 aria-hidden="true" 1118 aria-hidden="true"
1055 fill="currentColor" 1119 fill="currentColor"
1056 viewBox="0 0 20 20" 1120 viewBox="0 0 20 20"
1057 > 1121 >
1058 <path 1122 <path
1059 fill-rule="evenodd" 1123 fill-rule="evenodd"
1060 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" 1124 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"
1061 clip-rule="evenodd" 1125 clip-rule="evenodd"
1062 ></path> 1126 ></path>
1063 </svg> 1127 </svg>
1064 </button> 1128 </button>
1065 <!-- Search input --> 1129 <!-- Search input -->
1066 <div class="flex justify-center flex-1 lg:mr-32"> 1130 <div class="flex justify-center flex-1 lg:mr-32">
1067 <div 1131 <div
1068 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" 1132 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
1069 > 1133 >
1070 1134
1071 @yield('search') 1135 @yield('search')
1072 </div> 1136 </div>
1073 </div> 1137 </div>
1074 <ul class="flex items-center flex-shrink-0 space-x-6"> 1138 <ul class="flex items-center flex-shrink-0 space-x-6">
1075 <!-- Theme toggler --> 1139 <!-- Theme toggler -->
1076 <li class="flex"> 1140 <li class="flex">
1077 <button 1141 <button
1078 class="rounded-md focus:outline-none focus:shadow-outline-purple" 1142 class="rounded-md focus:outline-none focus:shadow-outline-purple"
1079 @click="toggleTheme" 1143 @click="toggleTheme"
1080 aria-label="Toggle color mode" 1144 aria-label="Toggle color mode"
1081 > 1145 >
1082 <template x-if="!dark"> 1146 <template x-if="!dark">
1083 <svg 1147 <svg
1084 class="w-5 h-5" 1148 class="w-5 h-5"
1085 aria-hidden="true" 1149 aria-hidden="true"
1086 fill="currentColor" 1150 fill="currentColor"
1087 viewBox="0 0 20 20" 1151 viewBox="0 0 20 20"
1088 > 1152 >
1089 <path 1153 <path
1090 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" 1154 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
1091 ></path> 1155 ></path>
1092 </svg> 1156 </svg>
1093 </template> 1157 </template>
1094 <template x-if="dark"> 1158 <template x-if="dark">
1095 <svg 1159 <svg
1096 class="w-5 h-5" 1160 class="w-5 h-5"
1097 aria-hidden="true" 1161 aria-hidden="true"
1098 fill="currentColor" 1162 fill="currentColor"
1099 viewBox="0 0 20 20" 1163 viewBox="0 0 20 20"
1100 > 1164 >
1101 <path 1165 <path
1102 fill-rule="evenodd" 1166 fill-rule="evenodd"
1103 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" 1167 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"
1104 clip-rule="evenodd" 1168 clip-rule="evenodd"
1105 ></path> 1169 ></path>
1106 </svg> 1170 </svg>
1107 </template> 1171 </template>
1108 </button> 1172 </button>
1109 </li> 1173 </li>
1110 <!-- Notifications menu --> 1174 <!-- Notifications menu -->
1111 <li class="relative"> 1175 <li class="relative">
1112 <button 1176 <button
1113 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" 1177 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
1114 @click="toggleNotificationsMenu" 1178 @click="toggleNotificationsMenu"
1115 @keydown.escape="closeNotificationsMenu" 1179 @keydown.escape="closeNotificationsMenu"
1116 aria-label="Notifications" 1180 aria-label="Notifications"
1117 aria-haspopup="true" 1181 aria-haspopup="true"
1118 > 1182 >
1119 <svg 1183 <svg
1120 class="w-5 h-5" 1184 class="w-5 h-5"
1121 aria-hidden="true" 1185 aria-hidden="true"
1122 fill="currentColor" 1186 fill="currentColor"
1123 viewBox="0 0 20 20" 1187 viewBox="0 0 20 20"
1124 > 1188 >
1125 <path 1189 <path
1126 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" 1190 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"
1127 ></path> 1191 ></path>
1128 </svg> 1192 </svg>
1129 <!-- Notification badge --> 1193 <!-- Notification badge -->
1130 <span 1194 <span
1131 aria-hidden="true" 1195 aria-hidden="true"
1132 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" 1196 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"
1133 ></span> 1197 ></span>
1134 </button> 1198 </button>
1135 <template x-if="isNotificationsMenuOpen"> 1199 <template x-if="isNotificationsMenuOpen">
1136 <ul 1200 <ul
1137 x-transition:leave="transition ease-in duration-150" 1201 x-transition:leave="transition ease-in duration-150"
1138 x-transition:leave-start="opacity-100" 1202 x-transition:leave-start="opacity-100"
1139 x-transition:leave-end="opacity-0" 1203 x-transition:leave-end="opacity-0"
1140 @click.away="closeNotificationsMenu" 1204 @click.away="closeNotificationsMenu"
1141 @keydown.escape="closeNotificationsMenu" 1205 @keydown.escape="closeNotificationsMenu"
1142 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" 1206 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"
1143 > 1207 >
1144 <li class="flex"> 1208 <li class="flex">
1145 <a 1209 <a
1146 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" 1210 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"
1147 href="{{ route('admin.admin-messages') }}" 1211 href="{{ route('admin.admin-messages') }}"
1148 > 1212 >
1149 <span>Сообщения</span> 1213 <span>Сообщения</span>
1150 @if($MsgCount > 0) 1214 @if($MsgCount > 0)
1151 <span 1215 <span
1152 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" 1216 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"
1153 > 1217 >
1154 1218
1155 {{ $MsgCount }} 1219 {{ $MsgCount }}
1156 </span> 1220 </span>
1157 @endif 1221 @endif
1158 </a> 1222 </a>
1159 </li> 1223 </li>
1160 <!--<li class="flex"> 1224 <!--<li class="flex">
1161 <a 1225 <a
1162 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" 1226 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"
1163 href="#" 1227 href="#"
1164 > 1228 >
1165 <span>Логи</span> 1229 <span>Логи</span>
1166 </a> 1230 </a>
1167 </li>--> 1231 </li>-->
1168 </ul> 1232 </ul>
1169 </template> 1233 </template>
1170 </li> 1234 </li>
1171 <!-- Profile menu --> 1235 <!-- Profile menu -->
1172 <li class="relative"> 1236 <li class="relative">
1173 <button 1237 <button
1174 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" 1238 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
1175 @click="toggleProfileMenu" 1239 @click="toggleProfileMenu"
1176 @keydown.escape="closeProfileMenu" 1240 @keydown.escape="closeProfileMenu"
1177 aria-label="Account" 1241 aria-label="Account"
1178 aria-haspopup="true" 1242 aria-haspopup="true"
1179 > 1243 >
1180 <img 1244 <img
1181 class="object-cover w-8 h-8 rounded-full" 1245 class="object-cover w-8 h-8 rounded-full"
1182 src="{{ asset('assets/img/profile.jpg') }}" 1246 src="{{ asset('assets/img/profile.jpg') }}"
1183 alt="" 1247 alt=""
1184 aria-hidden="true" 1248 aria-hidden="true"
1185 /> 1249 />
1186 </button> 1250 </button>
1187 <template x-if="isProfileMenuOpen"> 1251 <template x-if="isProfileMenuOpen">
1188 <ul 1252 <ul
1189 x-transition:leave="transition ease-in duration-150" 1253 x-transition:leave="transition ease-in duration-150"
1190 x-transition:leave-start="opacity-100" 1254 x-transition:leave-start="opacity-100"
1191 x-transition:leave-end="opacity-0" 1255 x-transition:leave-end="opacity-0"
1192 @click.away="closeProfileMenu" 1256 @click.away="closeProfileMenu"
1193 @keydown.escape="closeProfileMenu" 1257 @keydown.escape="closeProfileMenu"
1194 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" 1258 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"
1195 aria-label="submenu" 1259 aria-label="submenu"
1196 > 1260 >
1197 <li class="flex"> 1261 <li class="flex">
1198 <a 1262 <a
1199 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" 1263 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"
1200 href="{{ route('admin.profile') }}" 1264 href="{{ route('admin.profile') }}"
1201 > 1265 >
1202 <svg 1266 <svg
1203 class="w-4 h-4 mr-3" 1267 class="w-4 h-4 mr-3"
1204 aria-hidden="true" 1268 aria-hidden="true"
1205 fill="none" 1269 fill="none"
1206 stroke-linecap="round" 1270 stroke-linecap="round"
1207 stroke-linejoin="round" 1271 stroke-linejoin="round"
1208 stroke-width="2" 1272 stroke-width="2"
1209 viewBox="0 0 24 24" 1273 viewBox="0 0 24 24"
1210 stroke="currentColor" 1274 stroke="currentColor"
1211 > 1275 >
1212 <path 1276 <path
1213 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" 1277 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
1214 ></path> 1278 ></path>
1215 </svg> 1279 </svg>
1216 <span>Профиль</span> 1280 <span>Профиль</span>
1217 </a> 1281 </a>
1218 </li> 1282 </li>
1219 <li class="flex"> 1283 <li class="flex">
1220 <a 1284 <a
1221 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" 1285 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"
1222 href="{{ route('admin.config') }}" 1286 href="{{ route('admin.config') }}"
1223 > 1287 >
1224 <svg 1288 <svg
1225 class="w-4 h-4 mr-3" 1289 class="w-4 h-4 mr-3"
1226 aria-hidden="true" 1290 aria-hidden="true"
1227 fill="none" 1291 fill="none"
1228 stroke-linecap="round" 1292 stroke-linecap="round"
1229 stroke-linejoin="round" 1293 stroke-linejoin="round"
1230 stroke-width="2" 1294 stroke-width="2"
1231 viewBox="0 0 24 24" 1295 viewBox="0 0 24 24"
1232 stroke="currentColor" 1296 stroke="currentColor"
1233 > 1297 >
1234 <path 1298 <path
1235 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" 1299 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"
1236 ></path> 1300 ></path>
1237 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> 1301 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
1238 </svg> 1302 </svg>
1239 <span>Настройки</span> 1303 <span>Настройки</span>
1240 </a> 1304 </a>
1241 </li> 1305 </li>
1242 <li class="flex"> 1306 <li class="flex">
1243 <a 1307 <a
1244 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" 1308 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"
1245 href="{{ route('admin.logout') }}" 1309 href="{{ route('admin.logout') }}"
1246 > 1310 >
1247 <svg 1311 <svg
1248 class="w-4 h-4 mr-3" 1312 class="w-4 h-4 mr-3"
1249 aria-hidden="true" 1313 aria-hidden="true"
1250 fill="none" 1314 fill="none"
1251 stroke-linecap="round" 1315 stroke-linecap="round"
1252 stroke-linejoin="round" 1316 stroke-linejoin="round"
1253 stroke-width="2" 1317 stroke-width="2"
1254 viewBox="0 0 24 24" 1318 viewBox="0 0 24 24"
1255 stroke="currentColor" 1319 stroke="currentColor"
1256 > 1320 >
1257 <path 1321 <path
1258 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" 1322 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"
1259 ></path> 1323 ></path>
1260 </svg> 1324 </svg>
1261 <span>Выход</span> 1325 <span>Выход</span>
1262 </a> 1326 </a>
1263 </li> 1327 </li>
1264 </ul> 1328 </ul>
1265 </template> 1329 </template>
1266 </li> 1330 </li>
1267 </ul> 1331 </ul>
1268 </div> 1332 </div>
1269 </header> 1333 </header>
1270 <main class="h-full overflow-y-auto"> 1334 <main class="h-full overflow-y-auto">
1271 <div class="container px-6 mx-auto grid"> 1335 <div class="container px-6 mx-auto grid">
1272 <h2 1336 <h2
1273 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" 1337 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
1274 > 1338 >
1275 {{$title}} 1339 {{$title}}
1276 </h2> 1340 </h2>
1277 <!-- CTA --> 1341 <!-- CTA -->
1278 <a 1342 <a
1279 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" 1343 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"
1280 href="{{ route('admin.admin-users') }}" 1344 href="{{ route('admin.admin-users') }}"
1281 > 1345 >
1282 <div class="flex items-center"> 1346 <div class="flex items-center">
1283 <svg 1347 <svg
1284 class="w-5 h-5 mr-2" 1348 class="w-5 h-5 mr-2"
1285 fill="currentColor" 1349 fill="currentColor"
1286 viewBox="0 0 20 20" 1350 viewBox="0 0 20 20"
1287 > 1351 >
1288 <path 1352 <path
1289 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" 1353 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"
1290 ></path> 1354 ></path>
1291 </svg> 1355 </svg>
1292 <span>Контент для админов</span> 1356 <span>Контент для админов</span>
1293 </div> 1357 </div>
1294 <span>Список админов &RightArrow;</span> 1358 <span>Список админов &RightArrow;</span>
1295 </a> 1359 </a>
1296 1360
1297 @if ($message = Session::get('success')) 1361 @if ($message = Session::get('success'))
1298 <section> 1362 <section>
1299 <div class="alert alert-success alert-dismissible mt-0" role="alert"> 1363 <div class="alert alert-success alert-dismissible mt-0" role="alert">
1300 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 1364 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
1301 <span aria-hidden="true">&times;</span> 1365 <span aria-hidden="true">&times;</span>
1302 </button> 1366 </button>
1303 {{ $message }} 1367 {{ $message }}
1304 </div> 1368 </div>
1305 </section> 1369 </section>
1306 @endif 1370 @endif
1307 1371
1308 @if ($errors->any()) 1372 @if ($errors->any())
1309 <section> 1373 <section>
1310 <div class="alert alert-danger alert-dismissible mt-4" role="alert"> 1374 <div class="alert alert-danger alert-dismissible mt-4" role="alert">
1311 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 1375 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
1312 <span aria-hidden="true">&times;</span> 1376 <span aria-hidden="true">&times;</span>
1313 </button> 1377 </button>
1314 <ul class="mb-0"> 1378 <ul class="mb-0">
1315 @foreach ($errors->all() as $error) 1379 @foreach ($errors->all() as $error)
1316 <li>{{ $error }}</li> 1380 <li>{{ $error }}</li>
1317 @endforeach 1381 @endforeach
1318 </ul> 1382 </ul>
1319 </div> 1383 </div>
1320 </section> 1384 </section>
1321 @endif 1385 @endif
1322 1386
1323 @yield('content') 1387 @yield('content')
1324 1388
1325 <!-- Cards 1389 <!-- Cards
1326 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> 1390 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
1327 1391
1328 <div 1392 <div
1329 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1393 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1330 > 1394 >
1331 <div 1395 <div
1332 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" 1396 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"
1333 > 1397 >
1334 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1398 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1335 <path 1399 <path
1336 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" 1400 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"
1337 ></path> 1401 ></path>
1338 </svg> 1402 </svg>
1339 </div> 1403 </div>
1340 <div> 1404 <div>
1341 <p 1405 <p
1342 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1406 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1343 > 1407 >
1344 Total clients 1408 Total clients
1345 </p> 1409 </p>
1346 <p 1410 <p
1347 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1411 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1348 > 1412 >
1349 6389 1413 6389
1350 </p> 1414 </p>
1351 </div> 1415 </div>
1352 </div> 1416 </div>
1353 1417
1354 <div 1418 <div
1355 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1419 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1356 > 1420 >
1357 <div 1421 <div
1358 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" 1422 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"
1359 > 1423 >
1360 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1424 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1361 <path 1425 <path
1362 fill-rule="evenodd" 1426 fill-rule="evenodd"
1363 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" 1427 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"
1364 clip-rule="evenodd" 1428 clip-rule="evenodd"
1365 ></path> 1429 ></path>
1366 </svg> 1430 </svg>
1367 </div> 1431 </div>
1368 <div> 1432 <div>
1369 <p 1433 <p
1370 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1434 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1371 > 1435 >
1372 Account balance 1436 Account balance
1373 </p> 1437 </p>
1374 <p 1438 <p
1375 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1439 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1376 > 1440 >
1377 $ 46,760.89 1441 $ 46,760.89
1378 </p> 1442 </p>
1379 </div> 1443 </div>
1380 </div> 1444 </div>
1381 1445
1382 <div 1446 <div
1383 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1447 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1384 > 1448 >
1385 <div 1449 <div
1386 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" 1450 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"
1387 > 1451 >
1388 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1452 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1389 <path 1453 <path
1390 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" 1454 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"
1391 ></path> 1455 ></path>
1392 </svg> 1456 </svg>
1393 </div> 1457 </div>
1394 <div> 1458 <div>
1395 <p 1459 <p
1396 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1460 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1397 > 1461 >
1398 New sales 1462 New sales
1399 </p> 1463 </p>
1400 <p 1464 <p
1401 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1465 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1402 > 1466 >
1403 376 1467 376
1404 </p> 1468 </p>
1405 </div> 1469 </div>
1406 </div> 1470 </div>
1407 1471
1408 <div 1472 <div
1409 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1473 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1410 > 1474 >
1411 <div 1475 <div
1412 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" 1476 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"
1413 > 1477 >
1414 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1478 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1415 <path 1479 <path
1416 fill-rule="evenodd" 1480 fill-rule="evenodd"
1417 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" 1481 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"
1418 clip-rule="evenodd" 1482 clip-rule="evenodd"
1419 ></path> 1483 ></path>
1420 </svg> 1484 </svg>
1421 </div> 1485 </div>
1422 <div> 1486 <div>
1423 <p 1487 <p
1424 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1488 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1425 > 1489 >
1426 Pending contacts 1490 Pending contacts
1427 </p> 1491 </p>
1428 <p 1492 <p
1429 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1493 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1430 > 1494 >
1431 35 1495 35
1432 </p> 1496 </p>
1433 </div> 1497 </div>
1434 </div> 1498 </div>
1435 </div> 1499 </div>
1436 --> 1500 -->
1437 <!-- New Table 1501 <!-- New Table
1438 <div class="w-full overflow-hidden rounded-lg shadow-xs"> 1502 <div class="w-full overflow-hidden rounded-lg shadow-xs">
1439 <div class="w-full overflow-x-auto"> 1503 <div class="w-full overflow-x-auto">
1440 <table class="w-full whitespace-no-wrap"> 1504 <table class="w-full whitespace-no-wrap">
1441 <thead> 1505 <thead>
1442 <tr 1506 <tr
1443 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" 1507 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"
1444 > 1508 >
1445 <th class="px-4 py-3">Client</th> 1509 <th class="px-4 py-3">Client</th>
1446 <th class="px-4 py-3">Amount</th> 1510 <th class="px-4 py-3">Amount</th>
1447 <th class="px-4 py-3">Status</th> 1511 <th class="px-4 py-3">Status</th>
1448 <th class="px-4 py-3">Date</th> 1512 <th class="px-4 py-3">Date</th>
1449 </tr> 1513 </tr>
1450 </thead> 1514 </thead>
1451 <tbody 1515 <tbody
1452 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" 1516 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
1453 > 1517 >
1454 <tr class="text-gray-700 dark:text-gray-400"> 1518 <tr class="text-gray-700 dark:text-gray-400">
1455 <td class="px-4 py-3"> 1519 <td class="px-4 py-3">
1456 <div class="flex items-center text-sm"> 1520 <div class="flex items-center text-sm">
1457 1521
1458 <div 1522 <div
1459 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1523 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1460 > 1524 >
1461 <img 1525 <img
1462 class="object-cover w-full h-full rounded-full" 1526 class="object-cover w-full h-full rounded-full"
1463 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" 1527 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"
1464 alt="" 1528 alt=""
1465 loading="lazy" 1529 loading="lazy"
1466 /> 1530 />
1467 <div 1531 <div
1468 class="absolute inset-0 rounded-full shadow-inner" 1532 class="absolute inset-0 rounded-full shadow-inner"
1469 aria-hidden="true" 1533 aria-hidden="true"
1470 ></div> 1534 ></div>
1471 </div> 1535 </div>
1472 <div> 1536 <div>
1473 <p class="font-semibold">Hans Burger</p> 1537 <p class="font-semibold">Hans Burger</p>
1474 <p class="text-xs text-gray-600 dark:text-gray-400"> 1538 <p class="text-xs text-gray-600 dark:text-gray-400">
1475 10x Developer 1539 10x Developer
1476 </p> 1540 </p>
1477 </div> 1541 </div>
1478 </div> 1542 </div>
1479 </td> 1543 </td>
1480 <td class="px-4 py-3 text-sm"> 1544 <td class="px-4 py-3 text-sm">
1481 $ 863.45 1545 $ 863.45
1482 </td> 1546 </td>
1483 <td class="px-4 py-3 text-xs"> 1547 <td class="px-4 py-3 text-xs">
1484 <span 1548 <span
1485 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" 1549 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"
1486 > 1550 >
1487 Approved 1551 Approved
1488 </span> 1552 </span>
1489 </td> 1553 </td>
1490 <td class="px-4 py-3 text-sm"> 1554 <td class="px-4 py-3 text-sm">
1491 6/10/2020 1555 6/10/2020
1492 </td> 1556 </td>
1493 </tr> 1557 </tr>
1494 1558
1495 <tr class="text-gray-700 dark:text-gray-400"> 1559 <tr class="text-gray-700 dark:text-gray-400">
1496 <td class="px-4 py-3"> 1560 <td class="px-4 py-3">
1497 <div class="flex items-center text-sm"> 1561 <div class="flex items-center text-sm">
1498 1562
1499 <div 1563 <div
1500 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1564 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1501 > 1565 >
1502 <img 1566 <img
1503 class="object-cover w-full h-full rounded-full" 1567 class="object-cover w-full h-full rounded-full"
1504 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" 1568 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"
1505 alt="" 1569 alt=""
1506 loading="lazy" 1570 loading="lazy"
1507 /> 1571 />
1508 <div 1572 <div
1509 class="absolute inset-0 rounded-full shadow-inner" 1573 class="absolute inset-0 rounded-full shadow-inner"
1510 aria-hidden="true" 1574 aria-hidden="true"
1511 ></div> 1575 ></div>
1512 </div> 1576 </div>
1513 <div> 1577 <div>
1514 <p class="font-semibold">Jolina Angelie</p> 1578 <p class="font-semibold">Jolina Angelie</p>
1515 <p class="text-xs text-gray-600 dark:text-gray-400"> 1579 <p class="text-xs text-gray-600 dark:text-gray-400">
1516 Unemployed 1580 Unemployed
1517 </p> 1581 </p>
1518 </div> 1582 </div>
1519 </div> 1583 </div>
1520 </td> 1584 </td>
1521 <td class="px-4 py-3 text-sm"> 1585 <td class="px-4 py-3 text-sm">
1522 $ 369.95 1586 $ 369.95
1523 </td> 1587 </td>
1524 <td class="px-4 py-3 text-xs"> 1588 <td class="px-4 py-3 text-xs">
1525 <span 1589 <span
1526 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" 1590 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"
1527 > 1591 >
1528 Pending 1592 Pending
1529 </span> 1593 </span>
1530 </td> 1594 </td>
1531 <td class="px-4 py-3 text-sm"> 1595 <td class="px-4 py-3 text-sm">
1532 6/10/2020 1596 6/10/2020
1533 </td> 1597 </td>
1534 </tr> 1598 </tr>
1535 1599
1536 <tr class="text-gray-700 dark:text-gray-400"> 1600 <tr class="text-gray-700 dark:text-gray-400">
1537 <td class="px-4 py-3"> 1601 <td class="px-4 py-3">
1538 <div class="flex items-center text-sm"> 1602 <div class="flex items-center text-sm">
1539 1603
1540 <div 1604 <div
1541 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1605 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1542 > 1606 >
1543 <img 1607 <img
1544 class="object-cover w-full h-full rounded-full" 1608 class="object-cover w-full h-full rounded-full"
1545 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" 1609 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"
1546 alt="" 1610 alt=""
1547 loading="lazy" 1611 loading="lazy"
1548 /> 1612 />
1549 <div 1613 <div
1550 class="absolute inset-0 rounded-full shadow-inner" 1614 class="absolute inset-0 rounded-full shadow-inner"
1551 aria-hidden="true" 1615 aria-hidden="true"
1552 ></div> 1616 ></div>
1553 </div> 1617 </div>
1554 <div> 1618 <div>
1555 <p class="font-semibold">Sarah Curry</p> 1619 <p class="font-semibold">Sarah Curry</p>
1556 <p class="text-xs text-gray-600 dark:text-gray-400"> 1620 <p class="text-xs text-gray-600 dark:text-gray-400">
1557 Designer 1621 Designer
1558 </p> 1622 </p>
1559 </div> 1623 </div>
1560 </div> 1624 </div>
1561 </td> 1625 </td>
1562 <td class="px-4 py-3 text-sm"> 1626 <td class="px-4 py-3 text-sm">
1563 $ 86.00 1627 $ 86.00
1564 </td> 1628 </td>
1565 <td class="px-4 py-3 text-xs"> 1629 <td class="px-4 py-3 text-xs">
1566 <span 1630 <span
1567 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" 1631 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"
1568 > 1632 >
1569 Denied 1633 Denied
1570 </span> 1634 </span>
1571 </td> 1635 </td>
1572 <td class="px-4 py-3 text-sm"> 1636 <td class="px-4 py-3 text-sm">
1573 6/10/2020 1637 6/10/2020
1574 </td> 1638 </td>
1575 </tr> 1639 </tr>
1576 1640
1577 <tr class="text-gray-700 dark:text-gray-400"> 1641 <tr class="text-gray-700 dark:text-gray-400">
1578 <td class="px-4 py-3"> 1642 <td class="px-4 py-3">
1579 <div class="flex items-center text-sm"> 1643 <div class="flex items-center text-sm">
1580 1644
1581 <div 1645 <div
1582 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1646 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1583 > 1647 >
1584 <img 1648 <img
1585 class="object-cover w-full h-full rounded-full" 1649 class="object-cover w-full h-full rounded-full"
1586 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" 1650 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"
1587 alt="" 1651 alt=""
1588 loading="lazy" 1652 loading="lazy"
1589 /> 1653 />
1590 <div 1654 <div
1591 class="absolute inset-0 rounded-full shadow-inner" 1655 class="absolute inset-0 rounded-full shadow-inner"
1592 aria-hidden="true" 1656 aria-hidden="true"
1593 ></div> 1657 ></div>
1594 </div> 1658 </div>
1595 <div> 1659 <div>
1596 <p class="font-semibold">Rulia Joberts</p> 1660 <p class="font-semibold">Rulia Joberts</p>
1597 <p class="text-xs text-gray-600 dark:text-gray-400"> 1661 <p class="text-xs text-gray-600 dark:text-gray-400">
1598 Actress 1662 Actress
1599 </p> 1663 </p>
1600 </div> 1664 </div>
1601 </div> 1665 </div>
1602 </td> 1666 </td>
1603 <td class="px-4 py-3 text-sm"> 1667 <td class="px-4 py-3 text-sm">
1604 $ 1276.45 1668 $ 1276.45
1605 </td> 1669 </td>
1606 <td class="px-4 py-3 text-xs"> 1670 <td class="px-4 py-3 text-xs">
1607 <span 1671 <span
1608 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" 1672 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"
1609 > 1673 >
1610 Approved 1674 Approved
1611 </span> 1675 </span>
1612 </td> 1676 </td>
1613 <td class="px-4 py-3 text-sm"> 1677 <td class="px-4 py-3 text-sm">
1614 6/10/2020 1678 6/10/2020
1615 </td> 1679 </td>
1616 </tr> 1680 </tr>
1617 1681
1618 <tr class="text-gray-700 dark:text-gray-400"> 1682 <tr class="text-gray-700 dark:text-gray-400">
1619 <td class="px-4 py-3"> 1683 <td class="px-4 py-3">
1620 <div class="flex items-center text-sm"> 1684 <div class="flex items-center text-sm">
1621 1685
1622 <div 1686 <div
1623 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1687 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1624 > 1688 >
1625 <img 1689 <img
1626 class="object-cover w-full h-full rounded-full" 1690 class="object-cover w-full h-full rounded-full"
1627 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" 1691 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"
1628 alt="" 1692 alt=""
1629 loading="lazy" 1693 loading="lazy"
1630 /> 1694 />
1631 <div 1695 <div
1632 class="absolute inset-0 rounded-full shadow-inner" 1696 class="absolute inset-0 rounded-full shadow-inner"
1633 aria-hidden="true" 1697 aria-hidden="true"
1634 ></div> 1698 ></div>
1635 </div> 1699 </div>
1636 <div> 1700 <div>
1637 <p class="font-semibold">Wenzel Dashington</p> 1701 <p class="font-semibold">Wenzel Dashington</p>
1638 <p class="text-xs text-gray-600 dark:text-gray-400"> 1702 <p class="text-xs text-gray-600 dark:text-gray-400">
1639 Actor 1703 Actor
1640 </p> 1704 </p>
1641 </div> 1705 </div>
1642 </div> 1706 </div>
1643 </td> 1707 </td>
1644 <td class="px-4 py-3 text-sm"> 1708 <td class="px-4 py-3 text-sm">
1645 $ 863.45 1709 $ 863.45
1646 </td> 1710 </td>
1647 <td class="px-4 py-3 text-xs"> 1711 <td class="px-4 py-3 text-xs">
1648 <span 1712 <span
1649 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" 1713 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"
1650 > 1714 >
1651 Expired 1715 Expired
1652 </span> 1716 </span>
1653 </td> 1717 </td>
1654 <td class="px-4 py-3 text-sm"> 1718 <td class="px-4 py-3 text-sm">
1655 6/10/2020 1719 6/10/2020
1656 </td> 1720 </td>
1657 </tr> 1721 </tr>
1658 1722
1659 <tr class="text-gray-700 dark:text-gray-400"> 1723 <tr class="text-gray-700 dark:text-gray-400">
1660 <td class="px-4 py-3"> 1724 <td class="px-4 py-3">
1661 <div class="flex items-center text-sm"> 1725 <div class="flex items-center text-sm">
1662 1726
1663 <div 1727 <div
1664 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1728 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1665 > 1729 >
1666 <img 1730 <img
1667 class="object-cover w-full h-full rounded-full" 1731 class="object-cover w-full h-full rounded-full"
1668 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" 1732 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"
1669 alt="" 1733 alt=""
1670 loading="lazy" 1734 loading="lazy"
1671 /> 1735 />
1672 <div 1736 <div
1673 class="absolute inset-0 rounded-full shadow-inner" 1737 class="absolute inset-0 rounded-full shadow-inner"
1674 aria-hidden="true" 1738 aria-hidden="true"
1675 ></div> 1739 ></div>
1676 </div> 1740 </div>
1677 <div> 1741 <div>
1678 <p class="font-semibold">Dave Li</p> 1742 <p class="font-semibold">Dave Li</p>
1679 <p class="text-xs text-gray-600 dark:text-gray-400"> 1743 <p class="text-xs text-gray-600 dark:text-gray-400">
1680 Influencer 1744 Influencer
1681 </p> 1745 </p>
1682 </div> 1746 </div>
1683 </div> 1747 </div>
1684 </td> 1748 </td>
1685 <td class="px-4 py-3 text-sm"> 1749 <td class="px-4 py-3 text-sm">
1686 $ 863.45 1750 $ 863.45
1687 </td> 1751 </td>
1688 <td class="px-4 py-3 text-xs"> 1752 <td class="px-4 py-3 text-xs">
1689 <span 1753 <span
1690 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" 1754 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"
1691 > 1755 >
1692 Approved 1756 Approved
1693 </span> 1757 </span>
1694 </td> 1758 </td>
1695 <td class="px-4 py-3 text-sm"> 1759 <td class="px-4 py-3 text-sm">
1696 6/10/2020 1760 6/10/2020
1697 </td> 1761 </td>
1698 </tr> 1762 </tr>
1699 1763
1700 <tr class="text-gray-700 dark:text-gray-400"> 1764 <tr class="text-gray-700 dark:text-gray-400">
1701 <td class="px-4 py-3"> 1765 <td class="px-4 py-3">
1702 <div class="flex items-center text-sm"> 1766 <div class="flex items-center text-sm">
1703 1767
1704 <div 1768 <div
1705 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1769 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1706 > 1770 >
1707 <img 1771 <img
1708 class="object-cover w-full h-full rounded-full" 1772 class="object-cover w-full h-full rounded-full"
1709 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" 1773 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"
1710 alt="" 1774 alt=""
1711 loading="lazy" 1775 loading="lazy"
1712 /> 1776 />
1713 <div 1777 <div
1714 class="absolute inset-0 rounded-full shadow-inner" 1778 class="absolute inset-0 rounded-full shadow-inner"
1715 aria-hidden="true" 1779 aria-hidden="true"
1716 ></div> 1780 ></div>
1717 </div> 1781 </div>
1718 <div> 1782 <div>
1719 <p class="font-semibold">Maria Ramovic</p> 1783 <p class="font-semibold">Maria Ramovic</p>
1720 <p class="text-xs text-gray-600 dark:text-gray-400"> 1784 <p class="text-xs text-gray-600 dark:text-gray-400">
1721 Runner 1785 Runner
1722 </p> 1786 </p>
1723 </div> 1787 </div>
1724 </div> 1788 </div>
1725 </td> 1789 </td>
1726 <td class="px-4 py-3 text-sm"> 1790 <td class="px-4 py-3 text-sm">
1727 $ 863.45 1791 $ 863.45
1728 </td> 1792 </td>
1729 <td class="px-4 py-3 text-xs"> 1793 <td class="px-4 py-3 text-xs">
1730 <span 1794 <span
1731 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" 1795 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"
1732 > 1796 >
1733 Approved 1797 Approved
1734 </span> 1798 </span>
1735 </td> 1799 </td>
1736 <td class="px-4 py-3 text-sm"> 1800 <td class="px-4 py-3 text-sm">
1737 6/10/2020 1801 6/10/2020
1738 </td> 1802 </td>
1739 </tr> 1803 </tr>
1740 1804
1741 <tr class="text-gray-700 dark:text-gray-400"> 1805 <tr class="text-gray-700 dark:text-gray-400">
1742 <td class="px-4 py-3"> 1806 <td class="px-4 py-3">
1743 <div class="flex items-center text-sm"> 1807 <div class="flex items-center text-sm">
1744 1808
1745 <div 1809 <div
1746 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1810 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1747 > 1811 >
1748 <img 1812 <img
1749 class="object-cover w-full h-full rounded-full" 1813 class="object-cover w-full h-full rounded-full"
1750 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" 1814 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"
1751 alt="" 1815 alt=""
1752 loading="lazy" 1816 loading="lazy"
1753 /> 1817 />
1754 <div 1818 <div
1755 class="absolute inset-0 rounded-full shadow-inner" 1819 class="absolute inset-0 rounded-full shadow-inner"
1756 aria-hidden="true" 1820 aria-hidden="true"
1757 ></div> 1821 ></div>
1758 </div> 1822 </div>
1759 <div> 1823 <div>
1760 <p class="font-semibold">Hitney Wouston</p> 1824 <p class="font-semibold">Hitney Wouston</p>
1761 <p class="text-xs text-gray-600 dark:text-gray-400"> 1825 <p class="text-xs text-gray-600 dark:text-gray-400">
1762 Singer 1826 Singer
1763 </p> 1827 </p>
1764 </div> 1828 </div>
1765 </div> 1829 </div>
1766 </td> 1830 </td>
1767 <td class="px-4 py-3 text-sm"> 1831 <td class="px-4 py-3 text-sm">
1768 $ 863.45 1832 $ 863.45
1769 </td> 1833 </td>
1770 <td class="px-4 py-3 text-xs"> 1834 <td class="px-4 py-3 text-xs">
1771 <span 1835 <span
1772 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" 1836 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"
1773 > 1837 >
1774 Approved 1838 Approved
1775 </span> 1839 </span>
1776 </td> 1840 </td>
1777 <td class="px-4 py-3 text-sm"> 1841 <td class="px-4 py-3 text-sm">
1778 6/10/2020 1842 6/10/2020
1779 </td> 1843 </td>
1780 </tr> 1844 </tr>
1781 1845
1782 <tr class="text-gray-700 dark:text-gray-400"> 1846 <tr class="text-gray-700 dark:text-gray-400">
1783 <td class="px-4 py-3"> 1847 <td class="px-4 py-3">
1784 <div class="flex items-center text-sm"> 1848 <div class="flex items-center text-sm">
1785 1849
1786 <div 1850 <div
1787 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1851 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1788 > 1852 >
1789 <img 1853 <img
1790 class="object-cover w-full h-full rounded-full" 1854 class="object-cover w-full h-full rounded-full"
1791 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" 1855 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"
1792 alt="" 1856 alt=""
1793 loading="lazy" 1857 loading="lazy"
1794 /> 1858 />
1795 <div 1859 <div
1796 class="absolute inset-0 rounded-full shadow-inner" 1860 class="absolute inset-0 rounded-full shadow-inner"
1797 aria-hidden="true" 1861 aria-hidden="true"
1798 ></div> 1862 ></div>
1799 </div> 1863 </div>
1800 <div> 1864 <div>
1801 <p class="font-semibold">Hans Burger</p> 1865 <p class="font-semibold">Hans Burger</p>
1802 <p class="text-xs text-gray-600 dark:text-gray-400"> 1866 <p class="text-xs text-gray-600 dark:text-gray-400">
1803 10x Developer 1867 10x Developer
1804 </p> 1868 </p>
1805 </div> 1869 </div>
1806 </div> 1870 </div>
1807 </td> 1871 </td>
1808 <td class="px-4 py-3 text-sm"> 1872 <td class="px-4 py-3 text-sm">
1809 $ 863.45 1873 $ 863.45
1810 </td> 1874 </td>
1811 <td class="px-4 py-3 text-xs"> 1875 <td class="px-4 py-3 text-xs">
1812 <span 1876 <span
1813 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" 1877 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"
1814 > 1878 >
1815 Approved 1879 Approved
1816 </span> 1880 </span>
1817 </td> 1881 </td>
1818 <td class="px-4 py-3 text-sm"> 1882 <td class="px-4 py-3 text-sm">
1819 6/10/2020 1883 6/10/2020
1820 </td> 1884 </td>
1821 </tr> 1885 </tr>
1822 </tbody> 1886 </tbody>
1823 </table> 1887 </table>
1824 </div> 1888 </div>
1825 <div 1889 <div
1826 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" 1890 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"
1827 > 1891 >
1828 <span class="flex items-center col-span-3"> 1892 <span class="flex items-center col-span-3">
1829 Showing 21-30 of 100 1893 Showing 21-30 of 100
1830 </span> 1894 </span>
1831 <span class="col-span-2"></span> 1895 <span class="col-span-2"></span>
1832 1896
1833 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> 1897 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
1834 <nav aria-label="Table navigation"> 1898 <nav aria-label="Table navigation">
1835 <ul class="inline-flex items-center"> 1899 <ul class="inline-flex items-center">
1836 <li> 1900 <li>
1837 <button 1901 <button
1838 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" 1902 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
1839 aria-label="Previous" 1903 aria-label="Previous"
1840 > 1904 >
1841 <svg 1905 <svg
1842 aria-hidden="true" 1906 aria-hidden="true"
1843 class="w-4 h-4 fill-current" 1907 class="w-4 h-4 fill-current"
1844 viewBox="0 0 20 20" 1908 viewBox="0 0 20 20"
1845 > 1909 >
1846 <path 1910 <path
1847 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" 1911 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"
1848 clip-rule="evenodd" 1912 clip-rule="evenodd"
1849 fill-rule="evenodd" 1913 fill-rule="evenodd"
1850 ></path> 1914 ></path>
1851 </svg> 1915 </svg>
1852 </button> 1916 </button>
1853 </li> 1917 </li>
1854 <li> 1918 <li>
1855 <button 1919 <button
1856 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1920 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1857 > 1921 >
1858 1 1922 1
1859 </button> 1923 </button>
1860 </li> 1924 </li>
1861 <li> 1925 <li>
1862 <button 1926 <button
1863 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1927 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1864 > 1928 >
1865 2 1929 2
1866 </button> 1930 </button>
1867 </li> 1931 </li>
1868 <li> 1932 <li>
1869 <button 1933 <button
1870 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" 1934 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"
1871 > 1935 >
1872 3 1936 3
1873 </button> 1937 </button>
1874 </li> 1938 </li>
1875 <li> 1939 <li>
1876 <button 1940 <button
1877 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1941 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1878 > 1942 >
1879 4 1943 4
1880 </button> 1944 </button>
1881 </li> 1945 </li>
1882 <li> 1946 <li>
1883 <span class="px-3 py-1">...</span> 1947 <span class="px-3 py-1">...</span>
1884 </li> 1948 </li>
1885 <li> 1949 <li>
1886 <button 1950 <button
1887 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1951 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1888 > 1952 >
1889 8 1953 8
1890 </button> 1954 </button>
1891 </li> 1955 </li>
1892 <li> 1956 <li>
1893 <button 1957 <button
1894 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1958 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1895 > 1959 >
1896 9 1960 9
1897 </button> 1961 </button>
1898 </li> 1962 </li>
1899 <li> 1963 <li>
1900 <button 1964 <button
1901 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" 1965 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
1902 aria-label="Next" 1966 aria-label="Next"
1903 > 1967 >
1904 <svg 1968 <svg
1905 class="w-4 h-4 fill-current" 1969 class="w-4 h-4 fill-current"
1906 aria-hidden="true" 1970 aria-hidden="true"
1907 viewBox="0 0 20 20" 1971 viewBox="0 0 20 20"
1908 > 1972 >
1909 <path 1973 <path
1910 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" 1974 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"
1911 clip-rule="evenodd" 1975 clip-rule="evenodd"
1912 fill-rule="evenodd" 1976 fill-rule="evenodd"
1913 ></path> 1977 ></path>
1914 </svg> 1978 </svg>
1915 </button> 1979 </button>
1916 </li> 1980 </li>
1917 </ul> 1981 </ul>
1918 </nav> 1982 </nav>
1919 </span> 1983 </span>
1920 </div> 1984 </div>
1921 </div> 1985 </div>
1922 --> 1986 -->
1923 <!-- Charts --> 1987 <!-- Charts -->
1924 <!-- 1988 <!--
1925 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> 1989 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200">
1926 Графики 1990 Графики
1927 </h2> 1991 </h2>
1928 <div class="grid gap-6 mb-8 md:grid-cols-2"> 1992 <div class="grid gap-6 mb-8 md:grid-cols-2">
1929 <div 1993 <div
1930 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1994 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1931 > 1995 >
1932 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 1996 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1933 Revenue 1997 Revenue
1934 </h4> 1998 </h4>
1935 <canvas id="pie"></canvas> 1999 <canvas id="pie"></canvas>
1936 <div 2000 <div
1937 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 2001 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1938 > 2002 >
1939 2003
1940 <div class="flex items-center"> 2004 <div class="flex items-center">
1941 <span 2005 <span
1942 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" 2006 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full"
1943 ></span> 2007 ></span>
1944 <span>Shirts</span> 2008 <span>Shirts</span>
1945 </div> 2009 </div>
1946 <div class="flex items-center"> 2010 <div class="flex items-center">
1947 <span 2011 <span
1948 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 2012 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1949 ></span> 2013 ></span>
1950 <span>Shoes</span> 2014 <span>Shoes</span>
1951 </div> 2015 </div>
1952 <div class="flex items-center"> 2016 <div class="flex items-center">
1953 <span 2017 <span
1954 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 2018 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1955 ></span> 2019 ></span>
1956 <span>Bags</span> 2020 <span>Bags</span>
1957 </div> 2021 </div>
1958 </div> 2022 </div>
1959 </div> 2023 </div>
1960 <div 2024 <div
1961 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 2025 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1962 > 2026 >
1963 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 2027 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1964 Traffic 2028 Traffic
1965 </h4> 2029 </h4>
1966 <canvas id="line"></canvas> 2030 <canvas id="line"></canvas>
1967 <div 2031 <div
1968 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 2032 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1969 > 2033 >
1970 2034
1971 <div class="flex items-center"> 2035 <div class="flex items-center">
1972 <span 2036 <span
1973 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 2037 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1974 ></span> 2038 ></span>
1975 <span>Organic</span> 2039 <span>Organic</span>
1976 </div> 2040 </div>
1977 <div class="flex items-center"> 2041 <div class="flex items-center">
1978 <span 2042 <span
1979 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 2043 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1980 ></span> 2044 ></span>
1981 <span>Paid</span> 2045 <span>Paid</span>
1982 </div> 2046 </div>
1983 </div> 2047 </div>
1984 </div> 2048 </div>
1985 </div> 2049 </div>
1986 --> 2050 -->
1987 </div> 2051 </div>
1988 </main> 2052 </main>
1989 </div> 2053 </div>
1990 </div> 2054 </div>
1991 @yield('modal') 2055 @yield('modal')
1992 </body> 2056 </body>
1993 @yield('script') 2057 @yield('script')
1 <?php 1 <?php
2 2
3 use App\Http\Controllers\AdEmployerController; 3 use App\Http\Controllers\AdEmployerController;
4 use App\Http\Controllers\Admin\AdminController; 4 use App\Http\Controllers\Admin\AdminController;
5 use App\Http\Controllers\Admin\CategoryController; 5 use App\Http\Controllers\Admin\CategoryController;
6 use App\Http\Controllers\Admin\CategoryEmpController; 6 use App\Http\Controllers\Admin\CategoryEmpController;
7 use App\Http\Controllers\Admin\EducationController; 7 use App\Http\Controllers\Admin\EducationController;
8 use App\Http\Controllers\Admin\EmployersController; 8 use App\Http\Controllers\Admin\EmployersController;
9 use App\Http\Controllers\Admin\InfoBloksController; 9 use App\Http\Controllers\Admin\InfoBloksController;
10 use App\Http\Controllers\Admin\JobTitlesController; 10 use App\Http\Controllers\Admin\JobTitlesController;
11 use App\Http\Controllers\Admin\UsersController; 11 use App\Http\Controllers\Admin\UsersController;
12 use App\Http\Controllers\Admin\WorkersController; 12 use App\Http\Controllers\Admin\WorkersController;
13 use App\Http\Controllers\Auth\ForgotPasswordController; 13 use App\Http\Controllers\Auth\ForgotPasswordController;
14 use App\Http\Controllers\Auth\LoginController; 14 use App\Http\Controllers\Auth\LoginController;
15 use App\Http\Controllers\Auth\RegisterController; 15 use App\Http\Controllers\Auth\RegisterController;
16 use App\Http\Controllers\CKEditorController; 16 use App\Http\Controllers\CKEditorController;
17 use App\Http\Controllers\MediaController; 17 use App\Http\Controllers\MediaController;
18 use App\Http\Controllers\WorkerController; 18 use App\Http\Controllers\WorkerController;
19 use App\Models\User; 19 use App\Models\User;
20 use App\Http\Controllers\MainController; 20 use App\Http\Controllers\MainController;
21 use App\Http\Controllers\HomeController; 21 use App\Http\Controllers\HomeController;
22 use Illuminate\Support\Facades\Route; 22 use Illuminate\Support\Facades\Route;
23 use App\Http\Controllers\Admin\CompanyController; 23 use App\Http\Controllers\Admin\CompanyController;
24 use App\Http\Controllers\Admin\Ad_EmployersController; 24 use App\Http\Controllers\Admin\Ad_EmployersController;
25 use App\Http\Controllers\Admin\MsgAnswersController; 25 use App\Http\Controllers\Admin\MsgAnswersController;
26 use App\Http\Controllers\Admin\GroupsController; 26 use App\Http\Controllers\Admin\GroupsController;
27 use App\Http\Controllers\PagesController; 27 use App\Http\Controllers\PagesController;
28 use Illuminate\Support\Facades\Storage; 28 use Illuminate\Support\Facades\Storage;
29 29
30 30
31 /* 31 /*
32 |-------------------------------------------------------------------------- 32 |--------------------------------------------------------------------------
33 | Web Routes 33 | Web Routes
34 |-------------------------------------------------------------------------- 34 |--------------------------------------------------------------------------
35 | 35 |
36 | Here is where you can register web routes for your application. These 36 | Here is where you can register web routes for your application. These
37 | routes are loaded by the RouteServiceProvider within a group which 37 | routes are loaded by the RouteServiceProvider within a group which
38 | contains the "web" middleware group. Now create something great! 38 | contains the "web" middleware group. Now create something great!
39 | 39 |
40 */ 40 */
41 /* 41 /*
42 Route::get('/', function () { 42 Route::get('/', function () {
43 return view('welcome'); 43 return view('welcome');
44 })->name('index'); 44 })->name('index');
45 */ 45 */
46 Route::get('/', [MainController::class, 'index'])->name('index'); 46 Route::get('/', [MainController::class, 'index'])->name('index');
47 47
48 //Роуты авторизации, регистрации, восстановления, аутентификации 48 //Роуты авторизации, регистрации, восстановления, аутентификации
49 Auth::routes(['verify' => true]); 49 Auth::routes(['verify' => true]);
50 50
51 // роуты регистрации, авторизации, восстановления пароля, верификации почты 51 // роуты регистрации, авторизации, восстановления пароля, верификации почты
52 /*Route::group([ 52 /*Route::group([
53 'as' => 'auth.', //имя маршрута, например auth.index 53 'as' => 'auth.', //имя маршрута, например auth.index
54 'prefix' => 'auth', // префикс маршрута, например, auth/index 54 'prefix' => 'auth', // префикс маршрута, например, auth/index
55 ], function () { 55 ], function () {
56 //форма регистрации 56 //форма регистрации
57 Route::get('register', [RegisterController::class, 'register'])->name('register'); 57 Route::get('register', [RegisterController::class, 'register'])->name('register');
58 58
59 //создание пользователя 59 //создание пользователя
60 Route::post('register', [RegisterController::class, 'create'])->name('create'); 60 Route::post('register', [RegisterController::class, 'create'])->name('create');
61 61
62 //форма входа авторизации 62 //форма входа авторизации
63 Route::get('login', [LoginController::class, 'login'])->name('login'); 63 Route::get('login', [LoginController::class, 'login'])->name('login');
64 64
65 //аутентификация 65 //аутентификация
66 Route::post('login', [LoginController::class, 'authenticate'])->name('auth'); 66 Route::post('login', [LoginController::class, 'authenticate'])->name('auth');
67 67
68 //выход 68 //выход
69 Route::get('logout', [LoginController::class, 'logout'])->name('logout'); 69 Route::get('logout', [LoginController::class, 'logout'])->name('logout');
70 70
71 //форма ввода адреса почты 71 //форма ввода адреса почты
72 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form'); 72 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form');
73 73
74 //письмо на почту 74 //письмо на почту
75 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail'); 75 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail');
76 76
77 //форма восстановления пароля 77 //форма восстановления пароля
78 Route::get('reset-password/token/{token}/email/{email}', 78 Route::get('reset-password/token/{token}/email/{email}',
79 [ResetPasswordController::class, 'form'] 79 [ResetPasswordController::class, 'form']
80 )->name('reset-form'); 80 )->name('reset-form');
81 81
82 //восстановление пароля 82 //восстановление пароля
83 Route::post('reset-password', 83 Route::post('reset-password',
84 [ResetPasswordController::class, 'reset'] 84 [ResetPasswordController::class, 'reset']
85 )->name('reset-password'); 85 )->name('reset-password');
86 86
87 //сообщение о необходимости проверки адреса почты 87 //сообщение о необходимости проверки адреса почты
88 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message'); 88 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message');
89 89
90 //подтверждение адреса почты нового пользователя 90 //подтверждение адреса почты нового пользователя
91 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify']) 91 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify'])
92 ->where('token', '[a-f0-9]{32}') 92 ->where('token', '[a-f0-9]{32}')
93 ->where('id', '[0-9]+') 93 ->where('id', '[0-9]+')
94 ->name('verify-email'); 94 ->name('verify-email');
95 });*/ 95 });*/
96 96
97 //Личный кабинет пользователя 97 //Личный кабинет пользователя
98 Route::get('/home', [HomeController::class, 'index'])->name('home'); 98 Route::get('/home', [HomeController::class, 'index'])->name('home');
99 99
100 /* 100 /*
101 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { 101 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) {
102 $user = User::where('email',$request->input('email'))->first(); 102 $user = User::where('email',$request->input('email'))->first();
103 103
104 $user->sendEmailVerificationNotification(); 104 $user->sendEmailVerificationNotification();
105 105
106 return 'your response'; 106 return 'your response';
107 })->middleware('throttle:6,1')->name('verification.resend'); 107 })->middleware('throttle:6,1')->name('verification.resend');
108 */ 108 */
109 109
110 // Авторизация, регистрация в админку 110 // Авторизация, регистрация в админку
111 Route::group([ 111 Route::group([
112 'as' => 'admin.', // имя маршрута, например auth.index 112 'as' => 'admin.', // имя маршрута, например auth.index
113 'prefix' => 'admin', // префикс маршрута, например auth/index 113 'prefix' => 'admin', // префикс маршрута, например auth/index
114 'middleware' => ['guest'], 114 'middleware' => ['guest'],
115 ], function () { 115 ], function () {
116 // Форма регистрации 116 // Форма регистрации
117 Route::get('register', [AdminController::class, 'register'])->name('register'); 117 Route::get('register', [AdminController::class, 'register'])->name('register');
118 // Создание пользователя 118 // Создание пользователя
119 Route::post('register', [AdminController::class, 'create'])->name('create'); 119 Route::post('register', [AdminController::class, 'create'])->name('create');
120 120
121 //Форма входа 121 //Форма входа
122 Route::get('login', [AdminController::class, 'login'])->name('login'); 122 Route::get('login', [AdminController::class, 'login'])->name('login');
123 123
124 // аутентификация 124 // аутентификация
125 Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); 125 Route::post('login', [AdminController::class, 'autenticate'])->name('auth');
126 126
127 }); 127 });
128 128
129 // Личный кабинет админки 129 // Личный кабинет админки
130 Route::group([ 130 Route::group([
131 'as' => 'admin.', // имя маршрута, например auth.index 131 'as' => 'admin.', // имя маршрута, например auth.index
132 'prefix' => 'admin', // префикс маршрута, например auth/index 132 'prefix' => 'admin', // префикс маршрута, например auth/index
133 'middleware' => ['auth'], ['admin'], 133 'middleware' => ['auth'], ['admin'],
134 ], function() { 134 ], function() {
135 135
136 // выход 136 // выход
137 Route::get('logout', [AdminController::class, 'logout'])->name('logout'); 137 Route::get('logout', [AdminController::class, 'logout'])->name('logout');
138 138
139 // кабинет главная страница 139 // кабинет главная страница
140 Route::get('cabinet', [AdminController::class, 'index'])->name('index'); 140 Route::get('cabinet', [AdminController::class, 'index'])->name('index');
141 141
142 // кабинет профиль админа - форма 142 // кабинет профиль админа - форма
143 Route::get('profile', [AdminController::class, 'profile'])->name('profile'); 143 Route::get('profile', [AdminController::class, 'profile'])->name('profile');
144 // кабинет профиль админа - сохранение формы 144 // кабинет профиль админа - сохранение формы
145 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); 145 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile');
146 146
147 //кабинет сообщения админа 147 //кабинет сообщения админа
148 //Route::get('messages', [AdminController::class, 'profile'])->name('profile'); 148 //Route::get('messages', [AdminController::class, 'profile'])->name('profile');
149 149
150 150
151 // кабинет профиль - форма пароли 151 // кабинет профиль - форма пароли
152 Route::get('password', [AdminController::class, 'profile_password'])->name('password'); 152 Route::get('password', [AdminController::class, 'profile_password'])->name('password');
153 // кабинет профиль - сохранение формы пароля 153 // кабинет профиль - сохранение формы пароля
154 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); 154 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password');
155 155
156 156
157 // кабинет профиль пользователя - форма 157 // кабинет профиль пользователя - форма
158 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); 158 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile');
159 // кабинет профиль пользователя - сохранение формы 159 // кабинет профиль пользователя - сохранение формы
160 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); 160 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile');
161 161
162 // кабинет профиль работодатель - форма 162 // кабинет профиль работодатель - форма
163 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); 163 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile');
164 // кабинет профиль работодатель - сохранение формы 164 // кабинет профиль работодатель - сохранение формы
165 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); 165 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile');
166 // кабинет удаление профиль работодателя и юзера 166 // кабинет удаление профиль работодателя и юзера
167 Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer'); 167 Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer');
168 168
169 // кабинет профиль работник - форма 169 // кабинет профиль работник - форма
170 Route::get('worker-profile/add/{user}', [WorkersController::class, 'form_add_worker'])->name('worker-profile-add'); 170 Route::get('worker-profile/add/{user}', [WorkersController::class, 'form_add_worker'])->name('worker-profile-add');
171 Route::post('worker-profile/add/{user}', [WorkersController::class, 'form_store_worker'])->name('worker-profile-store'); 171 Route::post('worker-profile/add/{user}', [WorkersController::class, 'form_store_worker'])->name('worker-profile-store');
172 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit'); 172 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit');
173 // кабинет профиль работник - сохранение формы 173 // кабинет профиль работник - сохранение формы
174 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update'); 174 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update');
175 175
176 // Медиа 176 // Медиа
177 Route::get('media', [MediaController::class, 'index'])->name('media'); 177 Route::get('media', [MediaController::class, 'index'])->name('media');
178 Route::delete('media/{media}', [MediaController::class, 'delete'])->name('delete-media'); 178 Route::delete('media/{media}', [MediaController::class, 'delete'])->name('delete-media');
179 179
180 // кабинет настройки сайта - форма 180 // кабинет настройки сайта - форма
181 Route::get('config', [AdminController::class, 'config_form'])->name('config'); 181 Route::get('config', [AdminController::class, 'config_form'])->name('config');
182 // кабинет настройки сайта сохранение формы 182 // кабинет настройки сайта сохранение формы
183 Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); 183 Route::post('config', [AdminController::class, 'store_config'])->name('store_config');
184 184
185 // кабинет - пользователи 185 // кабинет - пользователи
186 Route::get('users', [UsersController::class, 'index'])->name('users'); 186 Route::get('users', [UsersController::class, 'index'])->name('users');
187 187
188 // кабинет - пользователи 188 // кабинет - пользователи
189 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); 189 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users');
190 190
191 // кабинет - работодатели 191 // кабинет - работодатели
192 Route::get('employers', [EmployersController::class, 'index'])->name('employers'); 192 Route::get('employers', [EmployersController::class, 'index'])->name('employers');
193 193
194 Route::get('employers/comment/{employer}', [EmployersController::class, 'comment_read'])->name('comment-employer'); 194 Route::get('employers/comment/{employer}', [EmployersController::class, 'comment_read'])->name('comment-employer');
195 195
196 // кабинет - соискатели 196 // кабинет - соискатели
197 Route::get('workers', [WorkersController::class, 'index'])->name('workers'); 197 Route::get('workers', [WorkersController::class, 'index'])->name('workers');
198 198
199 // кабинет - база данных 199 // кабинет - база данных
200 Route::get('basedata', [UsersController::class, 'index_bd'])->name('basedata'); 200 Route::get('basedata', [UsersController::class, 'index_bd'])->name('basedata');
201 Route::get('basedata/add', [UsersController::class, 'add_bd'])->name('add-basedata'); 201 Route::get('basedata/add', [UsersController::class, 'add_bd'])->name('add-basedata');
202 Route::post('basedata/add', [UsersController::class, 'add_store_bd'])->name('add-store-basedata'); 202 Route::post('basedata/add', [UsersController::class, 'add_store_bd'])->name('add-store-basedata');
203 Route::get('basedata/edit/{user}', [UsersController::class, 'edit_bd'])->name('edit-basedata'); 203 Route::get('basedata/edit/{user}', [UsersController::class, 'edit_bd'])->name('edit-basedata');
204 Route::put('basedata/edit/{user}', [UsersController::class, 'update_bd'])->name('update-basedata'); 204 Route::put('basedata/edit/{user}', [UsersController::class, 'update_bd'])->name('update-basedata');
205 Route::delete('basedata/delete/{user}', [UsersController::class, 'destroy_bd'])->name('delete-basedata'); 205 Route::delete('basedata/delete/{user}', [UsersController::class, 'destroy_bd'])->name('delete-basedata');
206 Route::get('basedata/doc/{user}', [UsersController::class, 'doc_bd'])->name('doc-basedata'); 206 Route::get('basedata/doc/{user}', [UsersController::class, 'doc_bd'])->name('doc-basedata');
207 207
208 // кабинет - вакансии 208 // кабинет - вакансии
209 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); 209 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers');
210 Route::get('ad-employers/add', [Ad_EmployersController::class, 'create'])->name('add-ad-employers'); 210 Route::get('ad-employers/add', [Ad_EmployersController::class, 'create'])->name('add-ad-employers');
211 Route::post('ad-employers/add', [Ad_EmployersController::class, 'store'])->name('store-ad-employers'); 211 Route::post('ad-employers/add', [Ad_EmployersController::class, 'store'])->name('store-ad-employers');
212 Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers'); 212 Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers');
213 Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers'); 213 Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers');
214 Route::delete('ad-employers/delete/{ad_employer}', [Ad_EmployersController::class, 'destroy'])->name('delete-ad-employer'); 214 Route::delete('ad-employers/delete/{ad_employer}', [Ad_EmployersController::class, 'destroy'])->name('delete-ad-employer');
215 215
216 // кабинет - категории 216 // кабинет - категории
217 //Route::get('categories', [AdminController::class, 'index'])->name('categories'); 217 //Route::get('categories', [AdminController::class, 'index'])->name('categories');
218 /* 218 /*
219 * CRUD-операции над Справочником Категории 219 * CRUD-операции над Справочником Категории
220 */ 220 */
221 Route::resource('categories', CategoryController::class, ['except' => ['show']]); 221 Route::resource('categories', CategoryController::class, ['except' => ['show']]);
222 222
223 // CRUD-операции над справочником Категории для работодателей 223 // CRUD-операции над справочником Категории для работодателей
224 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]); 224 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]);
225 225
226 // CRUD-операции над справочником Образование 226 // CRUD-операции над справочником Образование
227 Route::resource('education', EducationController::class, ['except' => ['show']]); 227 Route::resource('education', EducationController::class, ['except' => ['show']]);
228 228
229 Route::get('rename-program-education', [EducationController::class, 'rename_program'])->name('rename-program-education'); 229 Route::get('rename-program-education', [EducationController::class, 'rename_program'])->name('rename-program-education');
230 Route::get('program-education', [EducationController::class, 'add_program'])->name('add-program-education'); 230 Route::get('program-education', [EducationController::class, 'add_program'])->name('add-program-education');
231 Route::post('program-education', [EducationController::class, 'store_program'])->name('store-program-education'); 231 Route::post('program-education', [EducationController::class, 'store_program'])->name('store-program-education');
232 232
233 Route::get('program-education/edit/{program}/{education}', [EducationController::class, 'edit_program'])->name('edit-program-education'); 233 Route::get('program-education/edit/{program}/{education}', [EducationController::class, 'edit_program'])->name('edit-program-education');
234 Route::post('program-education/edit/{program}/{education}', [EducationController::class, 'update_program'])->name('update-program-education'); 234 Route::post('program-education/edit/{program}/{education}', [EducationController::class, 'update_program'])->name('update-program-education');
235 235
236 Route::get('program-education/delete/{program}/{education}', [EducationController::class, 'delete_program'])->name('delete-program-education'); 236 Route::get('program-education/delete/{program}/{education}', [EducationController::class, 'delete_program'])->name('delete-program-education');
237 237
238 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); 238 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');
239 /* 239 /*
240 * кабинет - CRUD-операции по справочнику должности 240 * кабинет - CRUD-операции по справочнику должности
241 * 241 *
242 */ 242 */
243 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); 243 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]);
244 244
245 // кабинет - сообщения (чтение чужих) 245 // кабинет - сообщения (чтение чужих)
246 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); 246 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages');
247 // кабинет - просмотр сообщения чужого (чтение) 247 // кабинет - просмотр сообщения чужого (чтение)
248 Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message'); 248 Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message');
249 249
250 // кабинет - сообщения (админские) 250 // кабинет - сообщения (админские)
251 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages'); 251 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages');
252 // кабинет - сообщения (админские) 252 // кабинет - сообщения (админские)
253 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post'); 253 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post');
254 // кабинет - sql - конструкция запросов 254 // кабинет - sql - конструкция запросов
255 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql'); 255 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql');
256 256
257 /* 257 /*
258 * Расписанный подход в описании каждой директорий групп пользователей. 258 * Расписанный подход в описании каждой директорий групп пользователей.
259 */ 259 */
260 // кабинет - группы пользователей 260 // кабинет - группы пользователей
261 Route::get('groups', [GroupsController::class, 'index'])->name('groups'); 261 Route::get('groups', [GroupsController::class, 'index'])->name('groups');
262 // кабинет - добавление форма группы пользователей 262 // кабинет - добавление форма группы пользователей
263 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); 263 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group');
264 // кабинет - сохранение формы группы пользователей 264 // кабинет - сохранение формы группы пользователей
265 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); 265 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store');
266 // кабинет - редактирование форма группы пользователей 266 // кабинет - редактирование форма группы пользователей
267 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); 267 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group');
268 // кабинет - сохранение редактированной формы группы пользователей 268 // кабинет - сохранение редактированной формы группы пользователей
269 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); 269 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group');
270 // кабинет - удаление группы пользователей 270 // кабинет - удаление группы пользователей
271 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); 271 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group');
272 272
273 273
274 // кабинет - список админов 274 // кабинет - список админов
275 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); 275 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin');
276 276
277 277
278 /////редактор////// кабинет - редактор сайта//////////////////////// 278 /////редактор////// кабинет - редактор сайта////////////////////////
279 Route::get('editor-site', function() { 279 Route::get('editor-site', function() {
280 return view('admin.editor.index'); 280 return view('admin.editor.index');
281 })->name('editor-site'); 281 })->name('editor-site');
282 282
283 283
284 // кабинет - редактор шапки-футера сайта 284 // кабинет - редактор шапки-футера сайта
285 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); 285 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks');
286 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); 286 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block');
287 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); 287 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store');
288 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); 288 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block');
289 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); 289 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block');
290 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); 290 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block');
291 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); 291 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block');
292 292
293 293
294 // кабинет - редактор должности на главной 294 // кабинет - редактор должности на главной
295 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); 295 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main');
296 296
297 // кабинет - редактор работодатели на главной 297 // кабинет - редактор работодатели на главной
298 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); 298 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main');
299 299
300 300
301 // кабинет - редактор seo-сайта 301 // кабинет - редактор seo-сайта
302 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); 302 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo');
303 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); 303 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo');
304 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); 304 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store');
305 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); 305 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo');
306 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); 306 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo');
307 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); 307 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo');
308 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); 308 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo');
309 309
310 310
311 // кабинет - редактор страниц 311 // кабинет - редактор страниц
312 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); 312 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages');
313 // кабинет - добавление страницы 313 // кабинет - добавление страницы
314 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); 314 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page');
315 // кабинет - сохранение формы страницы 315 // кабинет - сохранение формы страницы
316 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); 316 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store');
317 // кабинет - редактирование форма страницы 317 // кабинет - редактирование форма страницы
318 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); 318 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page');
319 // кабинет - сохранение редактированной формы страницы 319 // кабинет - сохранение редактированной формы страницы
320 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); 320 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page');
321 // кабинет - удаление страницы 321 // кабинет - удаление страницы
322 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); 322 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page');
323 323
324 324
325 // кабинет - реклама сайта 325 // кабинет - реклама сайта
326 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); 326 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames');
327 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); 327 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames');
328 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); 328 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store');
329 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); 329 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames');
330 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); 330 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames');
331 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); 331 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames');
332 //////////////////////////////////////////////////////////////////////// 332 ////////////////////////////////////////////////////////////////////////
333 333
334 334
335 // кабинет - отзывы о работодателе для модерации 335 // кабинет - отзывы о работодателе для модерации
336 Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); 336 Route::get('answers', [EmployersController::class, 'answers'])->name('answers');
337 337
338 // Общая страница статистики 338 // Общая страница статистики
339 Route::get('statics', function () { 339 Route::get('statics', function () {
340 return view('admin.static.index'); 340 return view('admin.static.index');
341 })->name('statics'); 341 })->name('statics');
342 342
343 // кабинет - статистика работников 343 // кабинет - статистика работников
344 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); 344 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers');
345 345
346 // кабинет - статистика вакансий работодателя 346 // кабинет - статистика вакансий работодателя
347 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); 347 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads');
348 348
349 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника 349 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника
350 /* 350 /*
351 * CRUD-операции над справочником дипломы и документы 351 * CRUD-операции над справочником дипломы и документы
352 */ 352 */
353 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); 353 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks');
354 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); 354 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]);
355 355
356 // кабинет - роли пользователя 356 // кабинет - роли пользователя
357 Route::get('roles', [UsersController::class, 'roles'])->name('roles'); 357 Route::get('roles', [UsersController::class, 'roles'])->name('roles');
358 358
359 Route::get('admin_roles', [UsersController::class, 'admin_roles'])->name('admin_roles');
360
359 Route::get('logs', function() { 361 Route::get('logs', function() {
360 $files = Storage::files('logs/laravel.log'); 362 $files = Storage::files('logs/laravel.log');
361 print_r($files); 363 print_r($files);
362 })->name('logs'); 364 })->name('logs');
363 365
364 }); 366 });
365 367
366 // Инструментальные страницы 368 // Инструментальные страницы
367 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); 369 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload');
368 370
369 Route::get('redis/', [PagesController::class, 'redis'])->name('redis'); 371 Route::get('redis/', [PagesController::class, 'redis'])->name('redis');
370 372
371 Route::get('excel/', [PagesController::class, 'excel'])->name('excel'); 373 Route::get('excel/', [PagesController::class, 'excel'])->name('excel');
372 374
373 // Страницы с произвольным контентом 375 // Страницы с произвольным контентом
374 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); 376 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page');
375 377
376 // Публичные страницы соискателя 378 // Публичные страницы соискателя
377 Route::get('workers/profile/{worker}', [WorkerController::class, 'profile'])->name('worker_page'); 379 Route::get('workers/profile/{worker}', [WorkerController::class, 'profile'])->name('worker_page');
378 380
379 //Страница вакансии 381 //Страница вакансии
380 Route::get('employer/ad/{ad_employer}', [AdEmployerController::class, 'ad_employer'])->name('ad-employer'); 382 Route::get('employer/ad/{ad_employer}', [AdEmployerController::class, 'ad_employer'])->name('ad-employer');
381 383