Commit f64f4890ff41431894a83ea4705ddcd550249123

Authored by Андрей Ларионов
1 parent 586cff8470

Блейды и контроллеры для августовского аддона сайта

Showing 7 changed files with 110 additions and 62 deletions Inline Diff

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