Commit c84db52439fd511a8a13a49ce2325b815f00dc7f

Authored by Андрей Ларионов
1 parent 7c1e052482

Форма редактирования работника и работодателя

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