Commit f060aa75b26e4219843abdd286118db933005718

Authored by Андрей Ларионов
1 parent 93a3f79f0c

Счетчик сообщений, метки непрочитанных сообщений администратора

Showing 6 changed files with 137 additions and 33 deletions Inline Diff

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