Commit ccfcc0cbb395fab7e67d51a60244eddb405e79dd
Exists in
master
Merge branch 'master' of http://gitlab.nologostudio.ru/alarionov/rekamore-su
Showing 25 changed files Inline Diff
- app/Http/Controllers/Admin/AdminController.php
- app/Http/Controllers/Admin/WorkersController.php
- app/Http/Requests/CompanyRequest.php
- app/Models/Company.php
- app/Models/Worker.php
- database/migrations/2023_09_21_112115_alter_workers_table.php
- resources/views/admin/category/form.blade.php
- resources/views/admin/config.blade.php
- resources/views/admin/editbloks/form.blade.php
- resources/views/admin/employer/edit.blade.php
- resources/views/admin/infobloks/form.blade.php
- resources/views/admin/job_titles/form.blade.php
- resources/views/admin/pages/form.blade.php
- resources/views/admin/profile.blade.php
- resources/views/admin/reclames/add.blade.php
- resources/views/admin/reclames/edit.blade.php
- resources/views/admin/reclames/form.blade.php
- resources/views/admin/seo/form.blade.php
- resources/views/admin/users/index.blade.php
- resources/views/admin/users/profile.blade.php
- resources/views/admin/worker/edit.blade.php
- resources/views/admin/worker/index.blade.php
- resources/views/admin/worker/index_ajax.blade.php
- resources/views/layout/admin.blade.php
- routes/web.php
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 | $find_key = ''; | 158 | $find_key = ''; |
159 | $users = User::where('admin', '1'); | 159 | $users = User::where('admin', '1'); |
160 | if (isset($request->find)) { | 160 | if (isset($request->find)) { |
161 | $find_key = $request->find; | 161 | $find_key = $request->find; |
162 | $users = $users->where(function($query) use($find_key) { | 162 | $users = $users->where(function($query) use($find_key) { |
163 | $query->Where('name', 'LIKE', "%$find_key%") | 163 | $query->Where('name', 'LIKE', "%$find_key%") |
164 | ->orWhere('email', 'LIKE', "%$find_key%"); | 164 | ->orWhere('email', 'LIKE', "%$find_key%"); |
165 | }); | 165 | }); |
166 | } | 166 | } |
167 | $users = $users->paginate(15); | 167 | $users = $users->paginate(15); |
168 | 168 | ||
169 | if ($request->ajax()) { | 169 | if ($request->ajax()) { |
170 | return view('admin.users.index_ajax', compact('users', 'id_admin')); | 170 | return view('admin.users.index_ajax', compact('users', 'id_admin')); |
171 | } else { | 171 | } else { |
172 | return view('admin.users.index', compact('users', 'title', 'id_admin', 'find_key')); | 172 | return view('admin.users.index', compact('users', 'title', 'id_admin', 'find_key')); |
173 | } | 173 | } |
174 | } | 174 | } |
175 | 175 | ||
176 | //Страница профиль пользователя - форма | 176 | //Страница профиль пользователя - форма |
177 | public function profile_user(User $user) { | 177 | public function profile_user(User $user) { |
178 | $visible = false; | 178 | $visible = false; |
179 | if($user->is_worker) { | 179 | if($user->is_worker) { |
180 | $caption = "Карточка работника"; | 180 | $caption = "Карточка работника"; |
181 | if (isset($user->workers[0]->id)) { | 181 | if (isset($user->workers[0]->id)) { |
182 | $link = route('admin.worker-profile', ['worker' => $user->workers[0]->id]); | 182 | $link = route('admin.worker-profile-edit', ['worker' => $user->workers[0]->id]); |
183 | //$visible = true; | 183 | $visible = true; |
184 | } else { | 184 | } else { |
185 | $link = ""; | 185 | $link = ""; |
186 | } | 186 | } |
187 | 187 | ||
188 | } else { | 188 | } else { |
189 | $caption = "Карточка работодателя"; | 189 | $caption = "Карточка работодателя"; |
190 | if (isset($user->employers[0]->id)) { | 190 | if (isset($user->employers[0]->id)) { |
191 | 191 | ||
192 | $link = route('admin.employer-profile', ['employer' => $user->employers[0]->id]); | 192 | $link = route('admin.employer-profile', ['employer' => $user->employers[0]->id]); |
193 | //$visible = true; | 193 | $visible = true; |
194 | } else { | 194 | } else { |
195 | $link = ""; | 195 | $link = ""; |
196 | } | 196 | } |
197 | } | 197 | } |
198 | 198 | ||
199 | return view('admin.users.profile', compact('user', 'visible', 'link', 'caption')); | 199 | return view('admin.users.profile', compact('user', 'visible', 'link', 'caption')); |
200 | } | 200 | } |
201 | 201 | ||
202 | //Страница профиль пользователя - сохранение формы | 202 | //Страница профиль пользователя - сохранение формы |
203 | public function store_profile_user(User $user, Request $request) { | 203 | public function store_profile_user(User $user, Request $request) { |
204 | $rules = [ | 204 | $rules = [ |
205 | 'name' => 'required|min:3', | 205 | 'name' => 'required|min:3', |
206 | ]; | 206 | ]; |
207 | $messages = [ | 207 | $messages = [ |
208 | 'required' => 'Укажите обязательное поле', | 208 | 'required' => 'Укажите обязательное поле', |
209 | 'email' => 'Это поле должно быть определено, как Email' | 209 | 'email' => 'Это поле должно быть определено, как Email' |
210 | ]; | 210 | ]; |
211 | $validator = Validator::make($request->all(), $rules, $messages); | 211 | $validator = Validator::make($request->all(), $rules, $messages); |
212 | 212 | ||
213 | if ($validator->fails()) { | 213 | if ($validator->fails()) { |
214 | return redirect()->route('admin.user-profile', ['user' => $user->id]) | 214 | return redirect()->route('admin.user-profile', ['user' => $user->id]) |
215 | ->withErrors($validator); | 215 | ->withErrors($validator); |
216 | } else { | 216 | } else { |
217 | $user->update($request->all()); | 217 | $user->update($request->all()); |
218 | return redirect()->route('admin.user-profile', ['user' => $user->id]) | 218 | return redirect()->route('admin.user-profile', ['user' => $user->id]) |
219 | ->with('success', 'Данные были успешно сохранены'); | 219 | ->with('success', 'Данные были успешно сохранены'); |
220 | } | 220 | } |
221 | return redirect()->route('admin.user-profile', ['user' => $user->id]); | 221 | return redirect()->route('admin.user-profile', ['user' => $user->id]); |
222 | } | 222 | } |
223 | 223 | ||
224 | // Страница профиль админа - форма | 224 | // Страница профиль админа - форма |
225 | public function profile() { | 225 | public function profile() { |
226 | $id = Auth::user()->id; | 226 | $id = Auth::user()->id; |
227 | $user = User::find($id); | 227 | $user = User::find($id); |
228 | 228 | ||
229 | return view('admin.profile', compact('user')); | 229 | return view('admin.profile', compact('user')); |
230 | } | 230 | } |
231 | 231 | ||
232 | // Страница профиль админа - сохранение формы | 232 | // Страница профиль админа - сохранение формы |
233 | public function store_profile(Request $request) { | 233 | public function store_profile(Request $request) { |
234 | $id = Auth::user()->id; | 234 | $id = Auth::user()->id; |
235 | $user = User::find($id); | 235 | $user = User::find($id); |
236 | 236 | ||
237 | $rules = [ | 237 | $rules = [ |
238 | 'name' => 'required|min:3', | 238 | 'name' => 'required|min:3', |
239 | 'email' => 'required|email|min:3', | 239 | 'email' => 'required|email|min:3', |
240 | ]; | 240 | ]; |
241 | $messages = [ | 241 | $messages = [ |
242 | 'required' => 'Укажите обязательное поле', | 242 | 'required' => 'Укажите обязательное поле', |
243 | 'email' => 'Это поле должно быть определено, как Email' | 243 | 'email' => 'Это поле должно быть определено, как Email' |
244 | ]; | 244 | ]; |
245 | $validator = Validator::make($request->all(), $rules, $messages); | 245 | $validator = Validator::make($request->all(), $rules, $messages); |
246 | 246 | ||
247 | if ($validator->fails()) { | 247 | if ($validator->fails()) { |
248 | return redirect()->route('admin.profile') | 248 | return redirect()->route('admin.profile') |
249 | ->withErrors($validator); | 249 | ->withErrors($validator); |
250 | } else { | 250 | } else { |
251 | $user->update($request->all()); | 251 | $user->update($request->all()); |
252 | return redirect()->route('admin.profile') | 252 | return redirect()->route('admin.profile') |
253 | ->with('success', 'Данные были успешно сохранены'); | 253 | ->with('success', 'Данные были успешно сохранены'); |
254 | } | 254 | } |
255 | return redirect()->route('admin.profile'); | 255 | return redirect()->route('admin.profile'); |
256 | } | 256 | } |
257 | 257 | ||
258 | // Форма смены пароля администоратора | 258 | // Форма смены пароля администоратора |
259 | public function profile_password() { | 259 | public function profile_password() { |
260 | $id = Auth::user()->id; | 260 | $id = Auth::user()->id; |
261 | $user = User::find($id); | 261 | $user = User::find($id); |
262 | $username = $user->name; | 262 | $username = $user->name; |
263 | 263 | ||
264 | return view('admin.password', compact('username')); | 264 | return view('admin.password', compact('username')); |
265 | } | 265 | } |
266 | 266 | ||
267 | // Сохранение формы смены пароля администоратора | 267 | // Сохранение формы смены пароля администоратора |
268 | public function profile_password_new(Request $request) { | 268 | public function profile_password_new(Request $request) { |
269 | 269 | ||
270 | $rules = [ | 270 | $rules = [ |
271 | 'old_password' => 'required|min:6', //|current_password:api', | 271 | 'old_password' => 'required|min:6', //|current_password:api', |
272 | 'password' => 'required|min:6|confirmed', | 272 | 'password' => 'required|min:6|confirmed', |
273 | ]; | 273 | ]; |
274 | $messages = [ | 274 | $messages = [ |
275 | 'required' => 'Укажите обязательное поле', | 275 | 'required' => 'Укажите обязательное поле', |
276 | 'confirmed' => 'Пароли не совпадают' | 276 | 'confirmed' => 'Пароли не совпадают' |
277 | ]; | 277 | ]; |
278 | 278 | ||
279 | $validator = Validator::make($request->all(), $rules, $messages); | 279 | $validator = Validator::make($request->all(), $rules, $messages); |
280 | 280 | ||
281 | if (! Hash::check($request->old_password, $request->user()->password)) { | 281 | if (! Hash::check($request->old_password, $request->user()->password)) { |
282 | return back()->withErrors([ | 282 | return back()->withErrors([ |
283 | 'old_password' => ['Неверный предыдущий пароль'] | 283 | 'old_password' => ['Неверный предыдущий пароль'] |
284 | ]); | 284 | ]); |
285 | } | 285 | } |
286 | 286 | ||
287 | if ($validator->fails()) { | 287 | if ($validator->fails()) { |
288 | return redirect()->route('admin.password') | 288 | return redirect()->route('admin.password') |
289 | ->withErrors($validator); | 289 | ->withErrors($validator); |
290 | } else { | 290 | } else { |
291 | $params = $request->all(); | 291 | $params = $request->all(); |
292 | // устанавливаем новый пароль для пользователя | 292 | // устанавливаем новый пароль для пользователя |
293 | User::where('id', Auth::id()) | 293 | User::where('id', Auth::id()) |
294 | ->update(['password' => Hash::make($request->password)]); | 294 | ->update(['password' => Hash::make($request->password)]); |
295 | session()->flash('success', 'Успешно изменен пароль!'); | 295 | session()->flash('success', 'Успешно изменен пароль!'); |
296 | 296 | ||
297 | return redirect()->route('admin.password'); | 297 | return redirect()->route('admin.password'); |
298 | } | 298 | } |
299 | } | 299 | } |
300 | 300 | ||
301 | // Страница конфигурация сайта - форма | 301 | // Страница конфигурация сайта - форма |
302 | public function config_form() { | 302 | public function config_form() { |
303 | $config = Company::find(1); | 303 | $config = Company::find(1); |
304 | return view('admin.config', compact('config')); | 304 | return view('admin.config', compact('config')); |
305 | } | 305 | } |
306 | 306 | ||
307 | // Страница конфигурация сайта - сохранение формы | 307 | // Страница конфигурация сайта - сохранение формы |
308 | public function store_config(CompanyRequest $request) { | 308 | public function store_config(CompanyRequest $request) { |
309 | $config = Company::find(1); | 309 | $config = Company::find(1); |
310 | 310 | ||
311 | $params = $request->all(); | 311 | $params = $request->all(); |
312 | unset($params['logo']); | 312 | unset($params['logo']); |
313 | unset($params['image']); | 313 | unset($params['image']); |
314 | 314 | ||
315 | if ($request->has('logo')) { | 315 | if ($request->has('logo')) { |
316 | Storage::delete($config->logo); | 316 | Storage::delete($config->logo); |
317 | $params['logo'] = $request->file('logo')->store('config', 'public'); | 317 | $params['logo'] = $request->file('logo')->store('config', 'public'); |
318 | } | 318 | } |
319 | 319 | ||
320 | if ($request->has('image')) { | 320 | if ($request->has('image')) { |
321 | Storage::delete($config->image); | 321 | Storage::delete($config->image); |
322 | $params['image'] = $request->file('image')->store('config', 'public'); | 322 | $params['image'] = $request->file('image')->store('config', 'public'); |
323 | } | 323 | } |
324 | 324 | ||
325 | if (is_null($config)) { | 325 | if (is_null($config)) { |
326 | Company::create($params); | 326 | Company::create($params); |
327 | } else { | 327 | } else { |
328 | $config->update($params); | 328 | $config->update($params); |
329 | } | 329 | } |
330 | 330 | ||
331 | return redirect()->route('admin.config'); | 331 | return redirect()->route('admin.config'); |
332 | } | 332 | } |
333 | 333 | ||
334 | 334 | ||
335 | } | 335 | } |
336 | 336 |
app/Http/Controllers/Admin/WorkersController.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Http\Controllers\Admin; | 3 | namespace App\Http\Controllers\Admin; |
4 | 4 | ||
5 | use App\Http\Controllers\Controller; | 5 | use App\Http\Controllers\Controller; |
6 | use App\Models\Company; | ||
7 | use App\Models\Job_title; | ||
6 | use App\Models\Static_worker; | 8 | use App\Models\Static_worker; |
7 | use App\Models\User; | 9 | use App\Models\User; |
8 | use App\Models\Worker; | 10 | use App\Models\Worker; |
9 | use Illuminate\Http\Request; | 11 | use Illuminate\Http\Request; |
12 | use Illuminate\Support\Facades\Storage; | ||
13 | use Illuminate\Support\Facades\Validator; | ||
10 | 14 | ||
11 | class WorkersController extends Controller | 15 | class WorkersController extends Controller |
12 | { | 16 | { |
13 | public function index(Request $request) { | 17 | public function index(Request $request) { |
14 | if ($request->ajax()) { | 18 | if ($request->ajax()) { |
15 | $user = User::find($request->id); | 19 | $user = User::find($request->id); |
16 | $request->offsetUnset('id'); | 20 | $request->offsetUnset('id'); |
17 | $user->update($request->all()); | 21 | $user->update($request->all()); |
18 | } | 22 | } |
19 | 23 | ||
20 | $users = User::where('is_worker', '1'); | 24 | $users = User::where('is_worker', '1'); |
21 | $find_key = ""; | 25 | $find_key = ""; |
22 | if (isset($request->find)) { | 26 | if (isset($request->find)) { |
23 | $find_key = $request->find; | 27 | $find_key = $request->find; |
24 | $users = $users->where(function($query) use($find_key) { | 28 | $users = $users->where(function($query) use($find_key) { |
25 | $query->Where('name_man', 'LIKE', "%$find_key%") | 29 | $query->Where('name_man', 'LIKE', "%$find_key%") |
26 | ->orWhere('email', 'LIKE', "%$find_key%") | 30 | ->orWhere('email', 'LIKE', "%$find_key%") |
27 | ->orWhere('telephone', 'LIKE', "%$find_key%"); | 31 | ->orWhere('telephone', 'LIKE', "%$find_key%"); |
28 | }); | 32 | }); |
29 | } | 33 | } |
30 | 34 | ||
31 | $users = $users->paginate(15); | 35 | $users = $users->paginate(15); |
32 | 36 | ||
33 | if ($request->ajax()) { | 37 | if ($request->ajax()) { |
34 | return view('admin.worker.index_ajax', compact('users')); | 38 | return view('admin.worker.index_ajax', compact('users')); |
35 | } else { | 39 | } else { |
36 | return view('admin.worker.index', compact('users', 'find_key')); | 40 | return view('admin.worker.index', compact('users', 'find_key')); |
37 | } | 41 | } |
38 | } | 42 | } |
39 | 43 | ||
40 | public function form_update_worker(Worker $worker) { | 44 | public function form_edit_worker(Worker $worker) { |
41 | return view('admin.worker.edit'); | 45 | $job_titles = Job_title::query()->active()->orderBy('name')->get(); |
46 | |||
47 | $time_end_anketa = 'Бессрочно'; | ||
48 | if (!empty($worker->updated_at)) { | ||
49 | $long_days = Company::find(1)->time_resume; | ||
50 | $time_end_anketa = date("d.m.Y H:i:s", strtotime($worker->updated_at . "+$long_days days")); | ||
51 | } | ||
52 | return view('admin.worker.edit', compact('worker', 'job_titles', 'time_end_anketa')); | ||
53 | } | ||
54 | |||
55 | public function form_update_worker(Request $request, Worker $worker) | ||
56 | { | ||
57 | $params = $request->all(); | ||
58 | |||
59 | $rules = [ | ||
60 | 'email' => 'email|string|max:255', | ||
61 | //'photo' => 'mimes:jpeg,jpg,png|max:15000', | ||
62 | ]; | ||
63 | |||
64 | $messages = [ | ||
65 | 'required' => 'Укажите обязательное поле «:attribute»', | ||
66 | 'confirmed' => 'Пароли не совпадают', | ||
67 | 'email' => 'Введите корректный email', | ||
68 | 'min' => [ | ||
69 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | ||
70 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | ||
71 | ], | ||
72 | 'max' => [ | ||
73 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', | ||
74 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | ||
75 | ], | ||
76 | ]; | ||
77 | |||
78 | $validator = Validator::make($params, $rules, $messages); | ||
79 | |||
80 | if ($validator->fails()) { | ||
81 | return back()->withErrors($validator)->withInput(); | ||
82 | } else { | ||
83 | $user_id = $worker->user_id; | ||
84 | if ($request->has('photo')) { | ||
85 | if (!empty($worker->photo)) { | ||
86 | Storage::delete($worker->photo); | ||
87 | } | ||
88 | if (!empty($request->photo)) | ||
89 | $params['photo'] = $request->file('photo')->store("workers/$user_id", 'public'); | ||
90 | } | ||
91 | $worker->update($params); | ||
92 | |||
93 | return redirect()->route('admin.workers'); | ||
94 | } | ||
42 | } | 95 | } |
43 | 96 | ||
44 | // кабинет - статистика работников | 97 | // кабинет - статистика работников |
45 | public function static_workers(Request $request) { | 98 | public function static_workers(Request $request) { |
46 | $stat = Static_worker::with('users'); | 99 | $stat = Static_worker::with('users'); |
47 | //->join('users', 'users.id', '=', 'static_workers.user_id'); | 100 | //->join('users', 'users.id', '=', 'static_workers.user_id'); |
48 | $users = User::query()->active()->OrderBy('id')->get(); | 101 | $users = User::query()->active()->OrderBy('id')->get(); |
49 | $periods = Static_worker::query()->distinct('year_month')->select('year_month')->get(); | 102 | $periods = Static_worker::query()->distinct('year_month')->select('year_month')->get(); |
50 | if ($request->ajax()) { | 103 | if ($request->ajax()) { |
51 | if (isset($request->user_id)) | 104 | if (isset($request->user_id)) |
52 | if (!$request->user_id == "0") | 105 | if (!$request->user_id == "0") |
53 | $stat = $stat->Where('user_id', '=', $request->user_id); | 106 | $stat = $stat->Where('user_id', '=', $request->user_id); |
54 | if (isset($request->year_month)) { | 107 | if (isset($request->year_month)) { |
55 | if (!$request->year_month == "0") | 108 | if (!$request->year_month == "0") |
56 | $stat = $stat->Where('year_month', '=', $request->year_month); | 109 | $stat = $stat->Where('year_month', '=', $request->year_month); |
57 | } | 110 | } |
58 | } | 111 | } |
59 | 112 | ||
60 | $stat = $stat->OrderByDesc('year_month'); | 113 | $stat = $stat->OrderByDesc('year_month'); |
61 | //->OrderBy('users.name'); | 114 | //->OrderBy('users.name'); |
62 | //OrderBy('users.name')-> | 115 | //OrderBy('users.name')-> |
63 | /*$stat->implode() loadMissing(['users' => function (Builder $query) { | 116 | /*$stat->implode() loadMissing(['users' => function (Builder $query) { |
64 | $query->orderBy('name', 'asc'); | 117 | $query->orderBy('name', 'asc'); |
65 | }]);*/ | 118 | }]);*/ |
66 | 119 | ||
67 | $stat = $stat->paginate(15); | 120 | $stat = $stat->paginate(15); |
68 | 121 | ||
69 | if ($request->ajax()) | 122 | if ($request->ajax()) |
70 | return view('admin.static.index_workers_ajax', compact('stat')); | 123 | return view('admin.static.index_workers_ajax', compact('stat')); |
71 | else | 124 | else |
72 | return view('admin.static.index_workers', compact('stat', 'users', 'periods')); | 125 | return view('admin.static.index_workers', compact('stat', 'users', 'periods')); |
73 | 126 | ||
74 | } | 127 | } |
75 | 128 | ||
76 | } | 129 | } |
77 | 130 |
app/Http/Requests/CompanyRequest.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Http\Requests; | 3 | namespace App\Http\Requests; |
4 | 4 | ||
5 | use Illuminate\Foundation\Http\FormRequest; | 5 | use Illuminate\Foundation\Http\FormRequest; |
6 | 6 | ||
7 | class CompanyRequest extends FormRequest | 7 | class CompanyRequest extends FormRequest |
8 | { | 8 | { |
9 | /** | 9 | /** |
10 | * Determine if the user is authorized to make this request. | 10 | * Determine if the user is authorized to make this request. |
11 | * | 11 | * |
12 | * @return bool | 12 | * @return bool |
13 | */ | 13 | */ |
14 | public function authorize() | 14 | public function authorize() |
15 | { | 15 | { |
16 | return true; | 16 | return true; |
17 | } | 17 | } |
18 | 18 | ||
19 | /** | 19 | /** |
20 | * Get the validation rules that apply to the request. | 20 | * Get the validation rules that apply to the request. |
21 | * | 21 | * |
22 | * @return array<string, mixed> | 22 | * @return array<string, mixed> |
23 | */ | 23 | */ |
24 | public function rules() | 24 | public function rules() |
25 | { | 25 | { |
26 | return [ | 26 | return [ |
27 | 'name' => 'required|min:1|max:255', | 27 | 'name' => 'required|min:1|max:255', |
28 | 'email' => 'required|email|min:5', | 28 | 'email' => 'required|email|min:5', |
29 | 'logo' => [ | 29 | 'logo' => [ |
30 | 'mimes:jpeg,jpg,png,ico', | 30 | 'mimes:jpeg,jpg,png,ico', |
31 | 'max:10000' | 31 | 'max:10000' |
32 | ], | 32 | ], |
33 | 'image' => [ | 33 | 'image' => [ |
34 | 'mimes:jpeg,jpg,png', | 34 | 'mimes:jpeg,jpg,png', |
35 | 'max:10000' | 35 | 'max:10000' |
36 | ], | 36 | ], |
37 | 'time_mess' => 'required|numeric|min:0|max:365', | ||
38 | 'time_resume' => 'required|numeric|min:0|max:365', | ||
37 | ]; | 39 | ]; |
38 | } | 40 | } |
39 | 41 | ||
40 | public function messages() { | 42 | public function messages() { |
41 | return [ | 43 | return [ |
42 | 'required' => 'Поле :attribute обязательно для ввода', | 44 | 'required' => 'Поле :attribute обязательно для ввода', |
45 | 'numeric' => 'Поле :attribute должно быть целым числом', | ||
43 | 'min' => [ | 46 | 'min' => [ |
44 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | 47 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', |
45 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | 48 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт', |
49 | 'numeric' => 'Поле «:attribute» должно быть не меньше :min', | ||
46 | ], | 50 | ], |
47 | 'max' => [ | 51 | 'max' => [ |
48 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', | 52 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', |
49 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | 53 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт', |
54 | 'numeric' => 'Поле «:attribute» должно быть не больше :max', | ||
50 | ], | 55 | ], |
51 | 'email' => 'Это поле должно быть формата email', | 56 | 'email' => 'Это поле должно быть формата email', |
52 | ]; | 57 | ]; |
53 | } | 58 | } |
54 | } | 59 | } |
55 | 60 |
app/Models/Company.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class Company extends Model | 8 | class Company extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | 11 | ||
12 | protected $fillable = [ | 12 | protected $fillable = [ |
13 | 'name', | 13 | 'name', |
14 | 'address', | 14 | 'address', |
15 | 'fio_director', | 15 | 'fio_director', |
16 | 'email', | 16 | 'email', |
17 | 'telephone', | 17 | 'telephone', |
18 | 'site', | 18 | 'site', |
19 | 'telegram', | 19 | 'telegram', |
20 | 'vkontact', | 20 | 'vkontact', |
21 | 'logo', | 21 | 'logo', |
22 | 'image', | 22 | 'image', |
23 | 'map', | 23 | 'map', |
24 | 'text', | 24 | 'text', |
25 | 'time_mess', | ||
26 | 'time_resume' | ||
25 | ]; | 27 | ]; |
26 | } | 28 | } |
27 | 29 |
app/Models/Worker.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class Worker extends Model | 8 | class Worker extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | 11 | ||
12 | protected $fillable = [ | 12 | protected $fillable = [ |
13 | 'user_id', | 13 | 'user_id', |
14 | 'status_work', | 14 | 'status_work', |
15 | 'position_work', | 15 | 'position_work', |
16 | 'telephone', | 16 | 'telephone', |
17 | 'telephone2', | 17 | 'telephone2', |
18 | 'persent_anketa', | 18 | 'persent_anketa', |
19 | 'photo', | 19 | 'photo', |
20 | 'email_data', | 20 | 'email_data', |
21 | 'status_profile', | 21 | 'status_profile', |
22 | 'old_year', | 22 | 'old_year', |
23 | 'experience', | 23 | 'experience', |
24 | 'en_is', | 24 | 'en_is', |
25 | 'education', | 25 | 'education', |
26 | 'email', | 26 | 'email', |
27 | 'interpassport', | 27 | 'interpassport', |
28 | 'mk', | 28 | 'mk', |
29 | 'vvp', | 29 | 'vvp', |
30 | 'vlm', | 30 | 'vlm', |
31 | 'reka_diplom', | 31 | 'reka_diplom', |
32 | 'more_diplom', | 32 | 'more_diplom', |
33 | 'mpss', | 33 | 'mpss', |
34 | 'tanker', | 34 | 'tanker', |
35 | 'gmssb', | 35 | 'gmssb', |
36 | 'resume', | 36 | 'resume', |
37 | 'sort', | 37 | 'sort', |
38 | 'updated_at', | 38 | 'updated_at', |
39 | 'text', | 39 | 'text', |
40 | 'address', | 40 | 'address', |
41 | 'city', | 41 | 'city', |
42 | 'coord', | 42 | 'coord', |
43 | 'file', | 43 | 'file', |
44 | 'is_remove', | 44 | 'is_remove', |
45 | 'favorite_user', | ||
46 | 'sroch_user' | ||
45 | ]; | 47 | ]; |
46 | 48 | ||
47 | /* | 49 | /* |
48 | * Связь таблицы users с таблицей workers | 50 | * Связь таблицы users с таблицей workers |
49 | */ | 51 | */ |
50 | public function users() { | 52 | public function users() { |
51 | return $this->belongsTo(User::class, 'user_id'); | 53 | return $this->belongsTo(User::class, 'user_id'); |
52 | } | 54 | } |
53 | 55 | ||
54 | public function scopeActive($query) { | 56 | public function scopeActive($query) { |
55 | return $query->where('is_remove', '=', '0'); | 57 | return $query->where('is_remove', '=', '0'); |
56 | } | 58 | } |
57 | } | 59 | } |
58 | 60 |
database/migrations/2023_09_21_112115_alter_workers_table.php
File was created | 1 | <?php | |
2 | |||
3 | use Illuminate\Database\Migrations\Migration; | ||
4 | use Illuminate\Database\Schema\Blueprint; | ||
5 | use Illuminate\Support\Facades\Schema; | ||
6 | |||
7 | return new class extends Migration | ||
8 | { | ||
9 | /** | ||
10 | * Run the migrations. | ||
11 | * | ||
12 | * @return void | ||
13 | */ | ||
14 | public function up() | ||
15 | { | ||
16 | Schema::table('workers', function (Blueprint $table) { | ||
17 | $table->boolean('favorite_user')->default(false); | ||
18 | $table->boolean('sroch_user')->default(false); | ||
19 | |||
20 | }); | ||
21 | } | ||
22 | |||
23 | /** | ||
24 | * Reverse the migrations. | ||
25 | * | ||
26 | * @return void | ||
27 | */ | ||
28 | public function down() | ||
29 | { | ||
30 | Schema::table('workers', function (Blueprint $table) { | ||
31 | $table->dropColumn('favorite_user'); | ||
32 | $table->dropColumn('sroch_user'); | ||
33 | }); | ||
34 | } | ||
35 | }; | ||
36 |
resources/views/admin/category/form.blade.php
1 | @csrf | 1 | @csrf |
2 | 2 | ||
3 | @isset($category) | 3 | @isset($category) |
4 | @method('PUT') | 4 | @method('PUT') |
5 | @endisset | 5 | @endisset |
6 | 6 | ||
7 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 7 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
8 | <label class="block text-sm"> | 8 | <label class="block text-sm"> |
9 | <span class="text-gray-700 dark:text-gray-400">Имя категории</span> | 9 | <span class="text-gray-700 dark:text-gray-400">Имя категории</span> |
10 | <input name="name" id="name" | 10 | <input name="name" id="name" |
11 | 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" | 11 | 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" |
12 | placeholder="Имя категории" value="{{ old('name') ?? $category->name ?? '' }}" | 12 | placeholder="Имя категории" value="{{ old('name') ?? $category->name ?? '' }}" |
13 | /> | 13 | /> |
14 | @error('name') | 14 | @error('name') |
15 | <span class="text-xs text-red-600 dark:text-red-400"> | 15 | <span class="text-xs text-red-600 dark:text-red-400"> |
16 | {{ $message }} | 16 | {{ $message }} |
17 | </span> | 17 | </span> |
18 | @enderror | 18 | @enderror |
19 | </label><br> | 19 | </label><br> |
20 | 20 | ||
21 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 21 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
22 | <div> | 22 | <div> |
23 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 23 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
24 | Сохранить | 24 | Сохранить |
25 | </button> | 25 | </button> |
26 | <a href="{{ route('admin.categories.index') }}" | ||
27 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
28 | style="display: -webkit-inline-box; height: 30px!important;" | ||
29 | >Назад</a> | ||
26 | </div> | 30 | </div> |
27 | </div> | 31 | </div> |
28 | </div> | 32 | </div> |
29 | 33 |
resources/views/admin/config.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Настройки']) | 1 | @extends('layout.admin', ['title' => 'Админка - Настройки']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | 4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> |
5 | Реквизиты сайта (конфигурация) | 5 | Реквизиты сайта (конфигурация) |
6 | </h4> | 6 | </h4> |
7 | <form action="" method="POST" enctype="multipart/form-data"> | 7 | <form action="" method="POST" enctype="multipart/form-data"> |
8 | @csrf | 8 | @csrf |
9 | 9 | ||
10 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 10 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
11 | <label class="block text-sm"> | 11 | <label class="block text-sm"> |
12 | <span class="text-gray-700 dark:text-gray-400">Имя компании</span> | 12 | <span class="text-gray-700 dark:text-gray-400">Имя компании</span> |
13 | <input name="name" id="name" | 13 | <input name="name" id="name" |
14 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 14 | 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" |
15 | placeholder="Имя компании" value="{{ old('name') ?? $config->name ?? '' }}" | 15 | placeholder="Имя компании" value="{{ old('name') ?? $config->name ?? '' }}" |
16 | /> | 16 | /> |
17 | @error('name') | 17 | @error('name') |
18 | <span class="text-xs text-red-600 dark:text-red-400"> | 18 | <span class="text-xs text-red-600 dark:text-red-400"> |
19 | {{ $message }} | 19 | {{ $message }} |
20 | </span> | 20 | </span> |
21 | @enderror | 21 | @enderror |
22 | </label><br> | 22 | </label><br> |
23 | 23 | ||
24 | <label class="block text-sm"> | 24 | <label class="block text-sm"> |
25 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> | 25 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> |
26 | <input name="address" id="address" | 26 | <input name="address" id="address" |
27 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 27 | 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" |
28 | placeholder="Адрес" value="{{ old('address') ?? $config->address ?? '' }}" | 28 | placeholder="Адрес" value="{{ old('address') ?? $config->address ?? '' }}" |
29 | /> | 29 | /> |
30 | @error('address') | 30 | @error('address') |
31 | <span class="text-xs text-red-600 dark:text-red-400"> | 31 | <span class="text-xs text-red-600 dark:text-red-400"> |
32 | {{ $message }} | 32 | {{ $message }} |
33 | </span> | 33 | </span> |
34 | @enderror | 34 | @enderror |
35 | </label><br> | 35 | </label><br> |
36 | 36 | ||
37 | <label class="block text-sm"> | 37 | <label class="block text-sm"> |
38 | <span class="text-gray-700 dark:text-gray-400">ФИО директора компании</span> | 38 | <span class="text-gray-700 dark:text-gray-400">ФИО директора компании</span> |
39 | <input name="fio_director" id="fio_director" | 39 | <input name="fio_director" id="fio_director" |
40 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 40 | 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" |
41 | placeholder="ФИО директора" value="{{ old('fio_director') ?? $config->fio_director ?? '' }}" | 41 | placeholder="ФИО директора" value="{{ old('fio_director') ?? $config->fio_director ?? '' }}" |
42 | /> | 42 | /> |
43 | @error('fio_director') | 43 | @error('fio_director') |
44 | <span class="text-xs text-red-600 dark:text-red-400"> | 44 | <span class="text-xs text-red-600 dark:text-red-400"> |
45 | {{ $message }} | 45 | {{ $message }} |
46 | </span> | 46 | </span> |
47 | @enderror | 47 | @enderror |
48 | </label><br> | 48 | </label><br> |
49 | 49 | ||
50 | <label class="block text-sm"> | 50 | <label class="block text-sm"> |
51 | <span class="text-gray-700 dark:text-gray-400">Email</span> | 51 | <span class="text-gray-700 dark:text-gray-400">Email</span> |
52 | <input name="email" id="email" | 52 | <input name="email" id="email" |
53 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 53 | 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" |
54 | placeholder="Почта" value="{{ old('email') ?? $config->email ?? '' }}" | 54 | placeholder="Почта" value="{{ old('email') ?? $config->email ?? '' }}" |
55 | /> | 55 | /> |
56 | @error('email') | 56 | @error('email') |
57 | <span class="text-xs text-red-600 dark:text-red-400"> | 57 | <span class="text-xs text-red-600 dark:text-red-400"> |
58 | {{ $message }} | 58 | {{ $message }} |
59 | </span> | 59 | </span> |
60 | @enderror | 60 | @enderror |
61 | </label><br> | 61 | </label><br> |
62 | 62 | ||
63 | <label class="block text-sm"> | 63 | <label class="block text-sm"> |
64 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> | 64 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> |
65 | <input name="telephone" id="telephone" | 65 | <input name="telephone" id="telephone" |
66 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 66 | 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" |
67 | placeholder="Телефон" value="{{ old('telephone') ?? $config->telephone ?? '' }}" | 67 | placeholder="Телефон" value="{{ old('telephone') ?? $config->telephone ?? '' }}" |
68 | /> | 68 | /> |
69 | @error('telephone') | 69 | @error('telephone') |
70 | <span class="text-xs text-red-600 dark:text-red-400"> | 70 | <span class="text-xs text-red-600 dark:text-red-400"> |
71 | {{ $message }} | 71 | {{ $message }} |
72 | </span> | 72 | </span> |
73 | @enderror | 73 | @enderror |
74 | </label><br> | 74 | </label><br> |
75 | 75 | ||
76 | <label class="block text-sm"> | 76 | <label class="block text-sm"> |
77 | <span class="text-gray-700 dark:text-gray-400">Сайт</span> | 77 | <span class="text-gray-700 dark:text-gray-400">Сайт</span> |
78 | <input name="site" id="site" | 78 | <input name="site" id="site" |
79 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 79 | 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" |
80 | placeholder="Сайт" value="{{ old('site') ?? $config->site ?? '' }}" | 80 | placeholder="Сайт" value="{{ old('site') ?? $config->site ?? '' }}" |
81 | /> | 81 | /> |
82 | @error('site') | 82 | @error('site') |
83 | <span class="text-xs text-red-600 dark:text-red-400"> | 83 | <span class="text-xs text-red-600 dark:text-red-400"> |
84 | {{ $message }} | 84 | {{ $message }} |
85 | </span> | 85 | </span> |
86 | @enderror | 86 | @enderror |
87 | </label><br> | 87 | </label><br> |
88 | 88 | ||
89 | <label class="block text-sm"> | 89 | <label class="block text-sm"> |
90 | <span class="text-gray-700 dark:text-gray-400">Телеграм</span> | 90 | <span class="text-gray-700 dark:text-gray-400">Телеграм</span> |
91 | <input name="telegram" id="telegram" | 91 | <input name="telegram" id="telegram" |
92 | 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" | 92 | 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" |
93 | placeholder="Телеграм линк" value="{{ old('telegram') ?? $config->telegram ?? '' }}" | 93 | placeholder="Телеграм линк" value="{{ old('telegram') ?? $config->telegram ?? '' }}" |
94 | /> | 94 | /> |
95 | @error('telegram') | 95 | @error('telegram') |
96 | <span class="text-xs text-red-600 dark:text-red-400"> | 96 | <span class="text-xs text-red-600 dark:text-red-400"> |
97 | {{ $message }} | 97 | {{ $message }} |
98 | </span> | 98 | </span> |
99 | @enderror | 99 | @enderror |
100 | </label><br> | 100 | </label><br> |
101 | 101 | ||
102 | <label class="block text-sm"> | 102 | <label class="block text-sm"> |
103 | <span class="text-gray-700 dark:text-gray-400">Вконтакте</span> | 103 | <span class="text-gray-700 dark:text-gray-400">Вконтакте</span> |
104 | <input name="vkontact" id="vkontact" | 104 | <input name="vkontact" id="vkontact" |
105 | 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 | 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" |
106 | placeholder="Вконтакте линк" value="{{ old('vkontact') ?? $config->vkontact ?? '' }}" | 106 | placeholder="Вконтакте линк" value="{{ old('vkontact') ?? $config->vkontact ?? '' }}" |
107 | /> | 107 | /> |
108 | @error('vkontact') | 108 | @error('vkontact') |
109 | <span class="text-xs text-red-600 dark:text-red-400"> | 109 | <span class="text-xs text-red-600 dark:text-red-400"> |
110 | {{ $message }} | 110 | {{ $message }} |
111 | </span> | 111 | </span> |
112 | @enderror | 112 | @enderror |
113 | </label><br> | 113 | </label><br> |
114 | 114 | ||
115 | <label class="block text-sm"> | 115 | <label class="block text-sm"> |
116 | <span class="text-gray-700 dark:text-gray-400">Лого</span> | 116 | <span class="text-gray-700 dark:text-gray-400">Лого</span> |
117 | <input name="logo" id="logo" type="file" | 117 | <input name="logo" id="logo" type="file" |
118 | 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" | 118 | 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" |
119 | placeholder="Лого" value="{{ old('logo') ?? $config->logo ?? '' }}" | 119 | placeholder="Лого" value="{{ old('logo') ?? $config->logo ?? '' }}" |
120 | /> | 120 | /> |
121 | 121 | ||
122 | @if (isset($config->logo)) | 122 | @if (isset($config->logo)) |
123 | <img src="<?=asset(Storage::url($config->logo))?>" width="150"/> | 123 | <img src="<?=asset(Storage::url($config->logo))?>" width="150"/> |
124 | @endif | 124 | @endif |
125 | 125 | ||
126 | @error('logo') | 126 | @error('logo') |
127 | <span class="text-xs text-red-600 dark:text-red-400"> | 127 | <span class="text-xs text-red-600 dark:text-red-400"> |
128 | {{ $message }} | 128 | {{ $message }} |
129 | </span> | 129 | </span> |
130 | @enderror | 130 | @enderror |
131 | </label><br> | 131 | </label><br> |
132 | 132 | ||
133 | <label class="block text-sm"> | 133 | <label class="block text-sm"> |
134 | <span class="text-gray-700 dark:text-gray-400">Картинка</span> | 134 | <span class="text-gray-700 dark:text-gray-400">Картинка</span> |
135 | <input name="image" id="image" type="file" | 135 | <input name="image" id="image" type="file" |
136 | 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" | 136 | 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" |
137 | placeholder="Картинка" | 137 | placeholder="Картинка" |
138 | /> | 138 | /> |
139 | 139 | ||
140 | @if (isset($config->image)) | 140 | @if (isset($config->image)) |
141 | <img src="<?=asset(Storage::url($config->image))?>" width="150"/> | 141 | <img src="<?=asset(Storage::url($config->image))?>" width="150"/> |
142 | @endif | 142 | @endif |
143 | 143 | ||
144 | 144 | ||
145 | @error('image') | 145 | @error('image') |
146 | <span class="text-xs text-red-600 dark:text-red-400"> | 146 | <span class="text-xs text-red-600 dark:text-red-400"> |
147 | {{ $message }} | 147 | {{ $message }} |
148 | </span> | 148 | </span> |
149 | @enderror | 149 | @enderror |
150 | </label><br> | 150 | </label><br> |
151 | 151 | ||
152 | <label class="block text-sm"> | 152 | <label class="block text-sm"> |
153 | <span class="text-gray-700 dark:text-gray-400">Карта</span> | 153 | <span class="text-gray-700 dark:text-gray-400">Карта</span> |
154 | <input name="map" id="map" | 154 | <input name="map" id="map" |
155 | 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" | 155 | 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" |
156 | placeholder="Карта" value="{{ old('map') ?? $config->map ?? '' }}" | 156 | placeholder="Карта" value="{{ old('map') ?? $config->map ?? '' }}" |
157 | /> | 157 | /> |
158 | @error('map') | 158 | @error('map') |
159 | <span class="text-xs text-red-600 dark:text-red-400"> | 159 | <span class="text-xs text-red-600 dark:text-red-400"> |
160 | {{ $message }} | 160 | {{ $message }} |
161 | </span> | 161 | </span> |
162 | @enderror | 162 | @enderror |
163 | </label><br> | 163 | </label><br> |
164 | 164 | ||
165 | <label class="block text-sm"> | 165 | <label class="block text-sm"> |
166 | <span class="text-gray-700 dark:text-gray-400">Описание</span> | 166 | <span class="text-gray-700 dark:text-gray-400">Описание</span> |
167 | <textarea id="text" name="text" | 167 | <textarea id="text" name="text" |
168 | 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" | 168 | 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" |
169 | rows="3" | 169 | rows="3" |
170 | placeholder="Описание" | 170 | placeholder="Описание" |
171 | >{{ old('text') ?? $config->text ?? '' }}</textarea> | 171 | >{{ old('text') ?? $config->text ?? '' }}</textarea> |
172 | 172 | ||
173 | @error('text') | 173 | @error('text') |
174 | <span class="text-xs text-red-600 dark:text-red-400"> | 174 | <span class="text-xs text-red-600 dark:text-red-400"> |
175 | {{ $message }} | 175 | {{ $message }} |
176 | </span> | 176 | </span> |
177 | @enderror | 177 | @enderror |
178 | </label><br> | 178 | </label><br> |
179 | 179 | ||
180 | <label class="block text-sm"> | ||
181 | <span class="text-gray-700 dark:text-gray-400">Время повторного отклика для соискателя (в днях)</span> | ||
182 | <input name="time_mess" id="time_mess" | ||
183 | 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" | ||
184 | placeholder="Время отклика" value="{{ old('time_mess') ?? $config->time_mess ?? '' }}" | ||
185 | /> | ||
186 | @error('time_mess') | ||
187 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
188 | {{ $message }} | ||
189 | </span> | ||
190 | @enderror | ||
191 | </label><br> | ||
192 | |||
193 | <label class="block text-sm"> | ||
194 | <span class="text-gray-700 dark:text-gray-400">Время действия резюме (в днях)</span> | ||
195 | <input name="time_resume" id="time_resume" | ||
196 | 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" | ||
197 | placeholder="Время резюме" value="{{ old('time_resume') ?? $config->time_resume ?? '' }}" | ||
198 | /> | ||
199 | @error('time_resume') | ||
200 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
201 | {{ $message }} | ||
202 | </span> | ||
203 | @enderror | ||
204 | </label><br> | ||
205 | |||
180 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 206 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
181 | <div> | 207 | <div> |
182 | <button class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 208 | <button class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
183 | Сохранить | 209 | Сохранить |
184 | </button> | 210 | </button> |
185 | </div> | 211 | </div> |
186 | </div> | 212 | </div> |
187 | </div> | 213 | </div> |
188 | </form> | 214 | </form> |
189 | @endsection | 215 | @endsection |
190 | 216 |
resources/views/admin/editbloks/form.blade.php
1 | @csrf | 1 | @csrf |
2 | @isset($block) | 2 | @isset($block) |
3 | @method('PUT') | 3 | @method('PUT') |
4 | @endisset | 4 | @endisset |
5 | 5 | ||
6 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 6 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
7 | <label class="block text-sm"> | 7 | <label class="block text-sm"> |
8 | <span class="text-gray-700 dark:text-gray-400">Имя</span> | 8 | <span class="text-gray-700 dark:text-gray-400">Имя</span> |
9 | <input name="name" id="name" | 9 | <input name="name" id="name" |
10 | 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" | 10 | 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" |
11 | placeholder="Название пункта" value="{{ old('name') ?? $block->name ?? '' }}" | 11 | placeholder="Название пункта" value="{{ old('name') ?? $block->name ?? '' }}" |
12 | /> | 12 | /> |
13 | @error('name') | 13 | @error('name') |
14 | <span class="text-xs text-red-600 dark:text-red-400"> | 14 | <span class="text-xs text-red-600 dark:text-red-400"> |
15 | {{ $message }} | 15 | {{ $message }} |
16 | </span> | 16 | </span> |
17 | @enderror | 17 | @enderror |
18 | </label><br> | 18 | </label><br> |
19 | 19 | ||
20 | <label class="block text-sm"> | 20 | <label class="block text-sm"> |
21 | <span class="text-gray-700 dark:text-gray-400">Родитель</span> | 21 | <span class="text-gray-700 dark:text-gray-400">Родитель</span> |
22 | @php | 22 | @php |
23 | $parent_id = old('code_id') ?? $block->code_id ?? 0; | 23 | $parent_id = old('code_id') ?? $block->code_id ?? 0; |
24 | @endphp | 24 | @endphp |
25 | <select name="code_id" class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 25 | <select name="code_id" class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
26 | title="Родитель"> | 26 | title="Родитель"> |
27 | <option value="0">Без родителя</option> | 27 | <option value="0">Без родителя</option> |
28 | @include('admin.editbloks.parent_id', ['level' => -1, 'parent' => 0]) | 28 | @include('admin.editbloks.parent_id', ['level' => -1, 'parent' => 0]) |
29 | </select> | 29 | </select> |
30 | </label><br> | 30 | </label><br> |
31 | 31 | ||
32 | <label class="block text-sm"> | 32 | <label class="block text-sm"> |
33 | <span class="text-gray-700 dark:text-gray-400">Расположение</span> | 33 | <span class="text-gray-700 dark:text-gray-400">Расположение</span> |
34 | <select name="header" class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 34 | <select name="header" class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
35 | title="Расположение"> | 35 | title="Расположение"> |
36 | <option value="1" @isset($block) @if($block->header == 1) selected @endif @endisset>Шапка</option> | 36 | <option value="1" @isset($block) @if($block->header == 1) selected @endif @endisset>Шапка</option> |
37 | <option value="0" @isset($block) @if($block->header == 0) selected @endif @endisset>Футер</option> | 37 | <option value="0" @isset($block) @if($block->header == 0) selected @endif @endisset>Футер</option> |
38 | </select> | 38 | </select> |
39 | </label><br> | 39 | </label><br> |
40 | 40 | ||
41 | <label class="block text-sm"> | 41 | <label class="block text-sm"> |
42 | <span class="text-gray-700 dark:text-gray-400">Ссылка</span> | 42 | <span class="text-gray-700 dark:text-gray-400">Ссылка</span> |
43 | <input name="link" id="link" | 43 | <input name="link" id="link" |
44 | 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" | 44 | 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" |
45 | placeholder="Ссылка" value="{{ old('link') ?? $block->link ?? '' }}" | 45 | placeholder="Ссылка" value="{{ old('link') ?? $block->link ?? '' }}" |
46 | /> | 46 | /> |
47 | @error('link') | 47 | @error('link') |
48 | <span class="text-xs text-red-600 dark:text-red-400"> | 48 | <span class="text-xs text-red-600 dark:text-red-400"> |
49 | {{ $message }} | 49 | {{ $message }} |
50 | </span> | 50 | </span> |
51 | @enderror | 51 | @enderror |
52 | </label><br> | 52 | </label><br> |
53 | 53 | ||
54 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 54 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
55 | <div> | 55 | <div> |
56 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 56 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
57 | Сохранить | 57 | Сохранить |
58 | </button> | 58 | </button> |
59 | <a href="{{ route('admin.edit-blocks') }}" | ||
60 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
61 | style="display: -webkit-inline-box; height: 30px!important;" | ||
62 | >Назад</a> | ||
59 | </div> | 63 | </div> |
60 | </div> | 64 | </div> |
61 | </div> | 65 | </div> |
62 | 66 |
resources/views/admin/employer/edit.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Редактирование работодателя']) | 1 | @extends('layout.admin', ['title' => 'Админка - Редактирование работодателя']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | 4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> |
5 | Работодатель-пользователь: "{{$employer->users->name_man}} ({{$employer->user_id}})" | 5 | Работодатель-пользователь: "{{$employer->users->name_man}} ({{$employer->user_id}})" |
6 | </h4> | 6 | </h4> |
7 | <form method="POST" action="" enctype="multipart/form-data"> | 7 | <form method="POST" action="" enctype="multipart/form-data"> |
8 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 8 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
9 | @csrf | 9 | @csrf |
10 | <div class="tabs"> | 10 | <div class="tabs"> |
11 | <input type="radio" name="tab-btn" id="tab-btn-1" value="" checked> | 11 | <input type="radio" name="tab-btn" id="tab-btn-1" value="" checked> |
12 | <label for="tab-btn-1">Персональная информация</label> | 12 | <label for="tab-btn-1">Персональная информация</label> |
13 | <input type="radio" name="tab-btn" id="tab-btn-2" value=""> | 13 | <input type="radio" name="tab-btn" id="tab-btn-2" value=""> |
14 | <label for="tab-btn-2">Настройки</label> | 14 | <label for="tab-btn-2">Настройки</label> |
15 | <!--<input type="radio" name="tab-btn" id="tab-btn-3" value=""> | 15 | <!--<input type="radio" name="tab-btn" id="tab-btn-3" value=""> |
16 | <label for="tab-btn-3">Вкладка 3</label>--> | 16 | <label for="tab-btn-3">Вкладка 3</label>--> |
17 | <div id="content-1"> | 17 | <div id="content-1"> |
18 | 18 | ||
19 | <label class="block text-sm"> | 19 | <label class="block text-sm"> |
20 | <span class="text-gray-700 dark:text-gray-400">Имя компании</span> | 20 | <span class="text-gray-700 dark:text-gray-400">Имя компании</span> |
21 | <input name="name" id="name" | 21 | <input name="name" id="name" |
22 | 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" | 22 | 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" |
23 | placeholder="Имя компании" value="{{ old('name') ?? $employer->users->name ?? '' }}" | 23 | placeholder="Имя компании" value="{{ old('name') ?? $employer->users->name ?? '' }}" |
24 | /> | 24 | /> |
25 | @error('name') | 25 | @error('name') |
26 | <span class="text-xs text-red-600 dark:text-red-400"> | 26 | <span class="text-xs text-red-600 dark:text-red-400"> |
27 | {{ $message }} | 27 | {{ $message }} |
28 | </span> | 28 | </span> |
29 | @enderror | 29 | @enderror |
30 | </label><br> | 30 | </label><br> |
31 | 31 | ||
32 | <label class="block text-sm"> | 32 | <label class="block text-sm"> |
33 | <span class="text-gray-700 dark:text-gray-400">Email</span> | 33 | <span class="text-gray-700 dark:text-gray-400">Email</span> |
34 | <input name="email" id="email" | 34 | <input name="email" id="email" |
35 | 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" | 35 | 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" |
36 | placeholder="Почта" value="{{ old('email') ?? $employer->email ?? '' }}" | 36 | placeholder="Почта" value="{{ old('email') ?? $employer->email ?? '' }}" |
37 | /> | 37 | /> |
38 | @error('email') | 38 | @error('email') |
39 | <span class="text-xs text-red-600 dark:text-red-400"> | 39 | <span class="text-xs text-red-600 dark:text-red-400"> |
40 | {{ $message }} | 40 | {{ $message }} |
41 | </span> | 41 | </span> |
42 | @enderror | 42 | @enderror |
43 | </label><br> | 43 | </label><br> |
44 | 44 | ||
45 | <label class="block text-sm"> | 45 | <label class="block text-sm"> |
46 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> | 46 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> |
47 | <input name="telephone" id="telephone" | 47 | <input name="telephone" id="telephone" |
48 | 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" | 48 | 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" |
49 | placeholder="Телефон" value="{{ old('telephone') ?? $employer->telephone ?? '' }}" | 49 | placeholder="Телефон" value="{{ old('telephone') ?? $employer->telephone ?? '' }}" |
50 | /> | 50 | /> |
51 | @error('telephone') | 51 | @error('telephone') |
52 | <span class="text-xs text-red-600 dark:text-red-400"> | 52 | <span class="text-xs text-red-600 dark:text-red-400"> |
53 | {{ $message }} | 53 | {{ $message }} |
54 | </span> | 54 | </span> |
55 | @enderror | 55 | @enderror |
56 | </label><br> | 56 | </label><br> |
57 | 57 | ||
58 | <label class="block text-sm"> | 58 | <label class="block text-sm"> |
59 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> | 59 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> |
60 | <input name="address" id="address" | 60 | <input name="address" id="address" |
61 | 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" | 61 | 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" |
62 | placeholder="Адрес" value="{{ old('address') ?? $employer->address ?? '' }}" | 62 | placeholder="Адрес" value="{{ old('address') ?? $employer->address ?? '' }}" |
63 | /> | 63 | /> |
64 | @error('address') | 64 | @error('address') |
65 | <span class="text-xs text-red-600 dark:text-red-400"> | 65 | <span class="text-xs text-red-600 dark:text-red-400"> |
66 | {{ $message }} | 66 | {{ $message }} |
67 | </span> | 67 | </span> |
68 | @enderror | 68 | @enderror |
69 | </label><br> | 69 | </label><br> |
70 | 70 | ||
71 | <label class="block text-sm"> | 71 | <label class="block text-sm"> |
72 | <span class="text-gray-700 dark:text-gray-400">Сайт</span> | 72 | <span class="text-gray-700 dark:text-gray-400">Сайт</span> |
73 | <input name="site" id="site" | 73 | <input name="site" id="site" |
74 | 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" | 74 | 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" |
75 | placeholder="Сайт" value="{{ old('site') ?? $employer->site ?? '' }}" | 75 | placeholder="Сайт" value="{{ old('site') ?? $employer->site ?? '' }}" |
76 | /> | 76 | /> |
77 | @error('site') | 77 | @error('site') |
78 | <span class="text-xs text-red-600 dark:text-red-400"> | 78 | <span class="text-xs text-red-600 dark:text-red-400"> |
79 | {{ $message }} | 79 | {{ $message }} |
80 | </span> | 80 | </span> |
81 | @enderror | 81 | @enderror |
82 | </label><br> | 82 | </label><br> |
83 | 83 | ||
84 | <label class="block text-sm"> | 84 | <label class="block text-sm"> |
85 | <span class="text-gray-700 dark:text-gray-400">Лого</span> | 85 | <span class="text-gray-700 dark:text-gray-400">Лого</span> |
86 | 86 | ||
87 | <input name="logo" id="logo" type="file" | 87 | <input name="logo" id="logo" type="file" |
88 | 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" | 88 | 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" |
89 | placeholder="Лого" value="" | 89 | placeholder="Лого" value="" |
90 | /> | 90 | /> |
91 | @isset($employer->logo) | 91 | @isset($employer->logo) |
92 | <img src="<?=asset(Storage::url($employer->logo))?>" width="150"/> | 92 | <img src="<?=asset(Storage::url($employer->logo))?>" width="150"/> |
93 | @endisset | 93 | @endisset |
94 | @error('logo') | 94 | @error('logo') |
95 | <span class="text-xs text-red-600 dark:text-red-400"> | 95 | <span class="text-xs text-red-600 dark:text-red-400"> |
96 | {{ $message }} | 96 | {{ $message }} |
97 | </span> | 97 | </span> |
98 | @enderror | 98 | @enderror |
99 | </label><br> | 99 | </label><br> |
100 | 100 | ||
101 | <label class="block mt-4 text-sm"> | 101 | <label class="block mt-4 text-sm"> |
102 | <span class="text-gray-700 dark:text-gray-400">Описание</span> | 102 | <span class="text-gray-700 dark:text-gray-400">Описание</span> |
103 | <textarea name="text" id="text" | 103 | <textarea name="text" id="text" |
104 | 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" | 104 | 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" |
105 | rows="3" | 105 | rows="3" |
106 | placeholder="Описание компании" | 106 | placeholder="Описание компании" |
107 | >{{ old('text') ?? $employer->text ?? '' }}</textarea> | 107 | >{{ old('text') ?? $employer->text ?? '' }}</textarea> |
108 | </label> | 108 | </label> |
109 | 109 | ||
110 | </div> | 110 | </div> |
111 | <div id="content-2"> | 111 | <div id="content-2"> |
112 | <label class="block text-sm"> | 112 | <label class="block text-sm"> |
113 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | 113 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> |
114 | Права работодателя: | 114 | Права работодателя: |
115 | </h4> | 115 | </h4> |
116 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Просмотр базы резюме </p> | 116 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Просмотр базы резюме </p> |
117 | <input type="hidden" name="is_lookin" value="0" /> | 117 | <input type="hidden" name="is_lookin" value="0" /> |
118 | <input name="is_lookin" <? if ($employer->users->is_lookin) echo "checked";?> | 118 | <input name="is_lookin" <? if ($employer->users->is_lookin) echo "checked";?> |
119 | class="block 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 " | 119 | class="block 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 " |
120 | placeholder="" type="checkbox" value="1" | 120 | placeholder="" type="checkbox" value="1" |
121 | /><br> | 121 | /><br> |
122 | 122 | ||
123 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Отправка сообщений</p> | 123 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Отправка сообщений</p> |
124 | <input type="hidden" name="is_message" value="0" /> | 124 | <input type="hidden" name="is_message" value="0" /> |
125 | <input name="is_message" id="is_message" <? if ($employer->users->is_message) echo "checked";?> | 125 | <input name="is_message" id="is_message" <? if ($employer->users->is_message) echo "checked";?> |
126 | class="block 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 " | 126 | class="block 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 " |
127 | placeholder="" type="checkbox" value="1" | 127 | placeholder="" type="checkbox" value="1" |
128 | /><br> | 128 | /><br> |
129 | 129 | ||
130 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Публикация вакансий</p> | 130 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Публикация вакансий</p> |
131 | <input type="hidden" name="is_public" value="0" /> | 131 | <input type="hidden" name="is_public" value="0" /> |
132 | <input name="is_public" id="is_public" <? if ($employer->users->is_public) echo "checked";?> | 132 | <input name="is_public" id="is_public" <? if ($employer->users->is_public) echo "checked";?> |
133 | class="block 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 " | 133 | class="block 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 " |
134 | placeholder="" type="checkbox" value="1" | 134 | placeholder="" type="checkbox" value="1" |
135 | /><br> | 135 | /><br> |
136 | 136 | ||
137 | </label> | 137 | </label> |
138 | 138 | ||
139 | <label class="block text-sm"> | 139 | <label class="block text-sm"> |
140 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Работодатель скрыт </p> | 140 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Работодатель скрыт </p> |
141 | <input type="hidden" name="status_hidden" value="0" /> | 141 | <input type="hidden" name="status_hidden" value="0" /> |
142 | <input name="status_hidden" <? if ($employer->status_hidden) echo "checked";?> | 142 | <input name="status_hidden" <? if ($employer->status_hidden) echo "checked";?> |
143 | class="block 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 " | 143 | class="block 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 " |
144 | placeholder="" type="checkbox" value="1" | 144 | placeholder="" type="checkbox" value="1" |
145 | /> | 145 | /> |
146 | </label><br> | 146 | </label><br> |
147 | 147 | ||
148 | <label class="block text-sm"> | 148 | <label class="block text-sm"> |
149 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Компания подтверждена </p> | 149 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Компания подтверждена </p> |
150 | <input type="hidden" name="oficial_status" value="0" /> | 150 | <input type="hidden" name="oficial_status" value="0" /> |
151 | <input name="oficial_status" <? if ($employer->oficial_status) echo "checked";?> | 151 | <input name="oficial_status" <? if ($employer->oficial_status) echo "checked";?> |
152 | class="block 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 " | 152 | class="block 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 " |
153 | placeholder="" type="checkbox" value="1" | 153 | placeholder="" type="checkbox" value="1" |
154 | /> | 154 | /> |
155 | </label><br> | 155 | </label><br> |
156 | 156 | ||
157 | <label class="block text-sm"> | 157 | <label class="block text-sm"> |
158 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Разрешение публикации в соц.сетях </p> | 158 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Разрешение публикации в соц.сетях </p> |
159 | <input type="hidden" name="social_is" value="0" /> | 159 | <input type="hidden" name="social_is" value="0" /> |
160 | <input name="social_is" <? if ($employer->social_is) echo "checked";?> | 160 | <input name="social_is" <? if ($employer->social_is) echo "checked";?> |
161 | class="block 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 " | 161 | class="block 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 " |
162 | placeholder="" type="checkbox" value="1" | 162 | placeholder="" type="checkbox" value="1" |
163 | /> | 163 | /> |
164 | </label><br> | 164 | </label><br> |
165 | 165 | ||
166 | <label class="block text-sm"> | 166 | <label class="block text-sm"> |
167 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Рассылка </p> | 167 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Рассылка </p> |
168 | <input type="hidden" name="sending_is" value="0" /> | 168 | <input type="hidden" name="sending_is" value="0" /> |
169 | <input name="sending_is" <? if ($employer->sending_is) echo "checked";?> | 169 | <input name="sending_is" <? if ($employer->sending_is) echo "checked";?> |
170 | class="block 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 " | 170 | class="block 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 " |
171 | placeholder="" type="checkbox" value="1" | 171 | placeholder="" type="checkbox" value="1" |
172 | /> | 172 | /> |
173 | </label><br> | 173 | </label><br> |
174 | 174 | ||
175 | </div> | 175 | </div> |
176 | <div id="content-3"> | 176 | <div id="content-3"> |
177 | Содержимое 3... | 177 | Содержимое 3... |
178 | </div> | 178 | </div> |
179 | </div> | 179 | </div> |
180 | <br> | 180 | <br> |
181 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 181 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
182 | <div> | 182 | <div> |
183 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 183 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
184 | Сохранить | 184 | Сохранить |
185 | </button> | 185 | </button> |
186 | <a href="{{ route('admin.employers') }}" | ||
187 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
188 | style="display: -webkit-inline-box; height: 30px!important;" | ||
189 | >Назад</a> | ||
190 | |||
186 | </div> | 191 | </div> |
187 | <!--<div> | 192 | <!--<div> |
188 | <a href="">Флот</a> | 193 | <a href="">Флот</a> |
189 | </div> | 194 | </div> |
190 | <div> | 195 | <div> |
191 | <a href="">Вакансии</a> | 196 | <a href="">Вакансии</a> |
192 | </div> | 197 | </div> |
193 | <div> | 198 | <div> |
194 | <a href="">Контакты</a> | 199 | <a href="">Контакты</a> |
195 | </div>--> | 200 | </div>--> |
196 | </div> | 201 | </div> |
197 | </div> | 202 | </div> |
198 | </form> | 203 | </form> |
199 | <!-- | 204 | <!-- |
200 | <label class="block mt-4 text-sm"> | 205 | <label class="block mt-4 text-sm"> |
201 | <span class="text-gray-700 dark:text-gray-400"> | 206 | <span class="text-gray-700 dark:text-gray-400"> |
202 | Requested Limit | 207 | Requested Limit |
203 | </span> | 208 | </span> |
204 | <select | 209 | <select |
205 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 210 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
206 | > | 211 | > |
207 | <option>$1,000</option> | 212 | <option>$1,000</option> |
208 | <option>$5,000</option> | 213 | <option>$5,000</option> |
209 | <option>$10,000</option> | 214 | <option>$10,000</option> |
210 | <option>$25,000</option> | 215 | <option>$25,000</option> |
211 | </select> | 216 | </select> |
212 | </label> | 217 | </label> |
213 | 218 | ||
214 | <label class="block mt-4 text-sm"> | 219 | <label class="block mt-4 text-sm"> |
215 | <span class="text-gray-700 dark:text-gray-400"> | 220 | <span class="text-gray-700 dark:text-gray-400"> |
216 | Multiselect | 221 | Multiselect |
217 | </span> | 222 | </span> |
218 | <select | 223 | <select |
219 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 224 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
220 | multiple | 225 | multiple |
221 | > | 226 | > |
222 | <option>Option 1</option> | 227 | <option>Option 1</option> |
223 | <option>Option 2</option> | 228 | <option>Option 2</option> |
224 | <option>Option 3</option> | 229 | <option>Option 3</option> |
225 | <option>Option 4</option> | 230 | <option>Option 4</option> |
226 | <option>Option 5</option> | 231 | <option>Option 5</option> |
227 | </select> | 232 | </select> |
228 | </label> | 233 | </label> |
229 | 234 | ||
230 | <label class="block mt-4 text-sm"> | 235 | <label class="block mt-4 text-sm"> |
231 | <span class="text-gray-700 dark:text-gray-400">Message</span> | 236 | <span class="text-gray-700 dark:text-gray-400">Message</span> |
232 | <textarea | 237 | <textarea |
233 | 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" | 238 | 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" |
234 | rows="3" | 239 | rows="3" |
235 | placeholder="Enter some long form content." | 240 | placeholder="Enter some long form content." |
236 | ></textarea> | 241 | ></textarea> |
237 | </label> | 242 | </label> |
238 | 243 | ||
239 | <div class="flex mt-6 text-sm"> | 244 | <div class="flex mt-6 text-sm"> |
240 | <label class="flex items-center dark:text-gray-400"> | 245 | <label class="flex items-center dark:text-gray-400"> |
241 | <input | 246 | <input |
242 | type="checkbox" | 247 | type="checkbox" |
243 | class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 248 | class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
244 | /> | 249 | /> |
245 | <span class="ml-2"> | 250 | <span class="ml-2"> |
246 | I agree to the | 251 | I agree to the |
247 | <span class="underline">privacy policy</span> | 252 | <span class="underline">privacy policy</span> |
248 | </span> | 253 | </span> |
249 | </label> | 254 | </label> |
250 | </div> | 255 | </div> |
251 | </div> | 256 | </div> |
252 | 257 | ||
253 | <!-- Validation inputs --> | 258 | <!-- Validation inputs --> |
254 | <!--<h4 | 259 | <!--<h4 |
255 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 260 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
256 | > | 261 | > |
257 | Validation | 262 | Validation |
258 | </h4> | 263 | </h4> |
259 | <div | 264 | <div |
260 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 265 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
261 | > | 266 | > |
262 | <!-- Invalid input --> | 267 | <!-- Invalid input --> |
263 | <!--<label class="block text-sm"> | 268 | <!--<label class="block text-sm"> |
264 | <span class="text-gray-700 dark:text-gray-400"> | 269 | <span class="text-gray-700 dark:text-gray-400"> |
265 | Invalid input | 270 | Invalid input |
266 | </span> | 271 | </span> |
267 | <input | 272 | <input |
268 | class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" | 273 | class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" |
269 | placeholder="Jane Doe" | 274 | placeholder="Jane Doe" |
270 | /> | 275 | /> |
271 | <span class="text-xs text-red-600 dark:text-red-400"> | 276 | <span class="text-xs text-red-600 dark:text-red-400"> |
272 | Your password is too short. | 277 | Your password is too short. |
273 | </span> | 278 | </span> |
274 | </label> | 279 | </label> |
275 | 280 | ||
276 | <!-- Valid input --> | 281 | <!-- Valid input --> |
277 | <!--<label class="block mt-4 text-sm"> | 282 | <!--<label class="block mt-4 text-sm"> |
278 | <span class="text-gray-700 dark:text-gray-400"> | 283 | <span class="text-gray-700 dark:text-gray-400"> |
279 | Valid input | 284 | Valid input |
280 | </span> | 285 | </span> |
281 | <input | 286 | <input |
282 | class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" | 287 | class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" |
283 | placeholder="Jane Doe" | 288 | placeholder="Jane Doe" |
284 | /> | 289 | /> |
285 | <span class="text-xs text-green-600 dark:text-green-400"> | 290 | <span class="text-xs text-green-600 dark:text-green-400"> |
286 | Your password is strong. | 291 | Your password is strong. |
287 | </span> | 292 | </span> |
288 | </label> | 293 | </label> |
289 | 294 | ||
290 | <!-- Helper text --> | 295 | <!-- Helper text --> |
291 | <!--<label class="block mt-4 text-sm"> | 296 | <!--<label class="block mt-4 text-sm"> |
292 | <span class="text-gray-700 dark:text-gray-400"> | 297 | <span class="text-gray-700 dark:text-gray-400"> |
293 | Helper text | 298 | Helper text |
294 | </span> | 299 | </span> |
295 | <input | 300 | <input |
296 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 301 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
297 | placeholder="Jane Doe" | 302 | placeholder="Jane Doe" |
298 | /> | 303 | /> |
299 | <span class="text-xs text-gray-600 dark:text-gray-400"> | 304 | <span class="text-xs text-gray-600 dark:text-gray-400"> |
300 | Your password must be at least 6 characters long. | 305 | Your password must be at least 6 characters long. |
301 | </span> | 306 | </span> |
302 | </label> | 307 | </label> |
303 | </div> | 308 | </div> |
304 | 309 | ||
305 | <!-- Inputs with icons --> | 310 | <!-- Inputs with icons --> |
306 | <!--<h4 | 311 | <!--<h4 |
307 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 312 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
308 | > | 313 | > |
309 | Icons | 314 | Icons |
310 | </h4> | 315 | </h4> |
311 | <div | 316 | <div |
312 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 317 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
313 | > | 318 | > |
314 | <label class="block text-sm"> | 319 | <label class="block text-sm"> |
315 | <span class="text-gray-700 dark:text-gray-400">Icon left</span> | 320 | <span class="text-gray-700 dark:text-gray-400">Icon left</span> |
316 | <!-- focus-within sets the color for the icon when input is focused --> | 321 | <!-- focus-within sets the color for the icon when input is focused --> |
317 | <!--<div | 322 | <!--<div |
318 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | 323 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" |
319 | > | 324 | > |
320 | <input | 325 | <input |
321 | class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 326 | class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
322 | placeholder="Jane Doe" | 327 | placeholder="Jane Doe" |
323 | /> | 328 | /> |
324 | <div | 329 | <div |
325 | class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" | 330 | class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" |
326 | > | 331 | > |
327 | <svg | 332 | <svg |
328 | class="w-5 h-5" | 333 | class="w-5 h-5" |
329 | aria-hidden="true" | 334 | aria-hidden="true" |
330 | fill="none" | 335 | fill="none" |
331 | stroke-linecap="round" | 336 | stroke-linecap="round" |
332 | stroke-linejoin="round" | 337 | stroke-linejoin="round" |
333 | stroke-width="2" | 338 | stroke-width="2" |
334 | viewBox="0 0 24 24" | 339 | viewBox="0 0 24 24" |
335 | stroke="currentColor" | 340 | stroke="currentColor" |
336 | > | 341 | > |
337 | <path | 342 | <path |
338 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | 343 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" |
339 | ></path> | 344 | ></path> |
340 | </svg> | 345 | </svg> |
341 | </div> | 346 | </div> |
342 | </div> | 347 | </div> |
343 | </label> | 348 | </label> |
344 | 349 | ||
345 | <label class="block mt-4 text-sm"> | 350 | <label class="block mt-4 text-sm"> |
346 | <span class="text-gray-700 dark:text-gray-400">Icon right</span> | 351 | <span class="text-gray-700 dark:text-gray-400">Icon right</span> |
347 | <!-- focus-within sets the color for the icon when input is focused --> | 352 | <!-- focus-within sets the color for the icon when input is focused --> |
348 | <!--<div | 353 | <!--<div |
349 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | 354 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" |
350 | > | 355 | > |
351 | <input | 356 | <input |
352 | class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 357 | class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
353 | placeholder="Jane Doe" | 358 | placeholder="Jane Doe" |
354 | /> | 359 | /> |
355 | <div | 360 | <div |
356 | class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" | 361 | class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" |
357 | > | 362 | > |
358 | <svg | 363 | <svg |
359 | class="w-5 h-5" | 364 | class="w-5 h-5" |
360 | aria-hidden="true" | 365 | aria-hidden="true" |
361 | fill="none" | 366 | fill="none" |
362 | stroke-linecap="round" | 367 | stroke-linecap="round" |
363 | stroke-linejoin="round" | 368 | stroke-linejoin="round" |
364 | stroke-width="2" | 369 | stroke-width="2" |
365 | viewBox="0 0 24 24" | 370 | viewBox="0 0 24 24" |
366 | stroke="currentColor" | 371 | stroke="currentColor" |
367 | > | 372 | > |
368 | <path | 373 | <path |
369 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | 374 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" |
370 | ></path> | 375 | ></path> |
371 | </svg> | 376 | </svg> |
372 | </div> | 377 | </div> |
373 | </div> | 378 | </div> |
374 | </label> | 379 | </label> |
375 | </div> | 380 | </div> |
376 | 381 | ||
377 | <!-- Inputs with buttons --> | 382 | <!-- Inputs with buttons --> |
378 | <!--<h4 | 383 | <!--<h4 |
379 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 384 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
380 | > | 385 | > |
381 | Buttons | 386 | Buttons |
382 | </h4> | 387 | </h4> |
383 | <div | 388 | <div |
384 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 389 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
385 | > | 390 | > |
386 | <label class="block text-sm"> | 391 | <label class="block text-sm"> |
387 | <span class="text-gray-700 dark:text-gray-400"> | 392 | <span class="text-gray-700 dark:text-gray-400"> |
388 | Button left | 393 | Button left |
389 | </span> | 394 | </span> |
390 | <div class="relative"> | 395 | <div class="relative"> |
391 | <input | 396 | <input |
392 | class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 397 | class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
393 | placeholder="Jane Doe" | 398 | placeholder="Jane Doe" |
394 | /> | 399 | /> |
395 | <button | 400 | <button |
396 | class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 401 | class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
397 | > | 402 | > |
398 | Click | 403 | Click |
399 | </button> | 404 | </button> |
400 | </div> | 405 | </div> |
401 | </label> | 406 | </label> |
402 | 407 | ||
403 | <label class="block mt-4 text-sm"> | 408 | <label class="block mt-4 text-sm"> |
404 | <span class="text-gray-700 dark:text-gray-400"> | 409 | <span class="text-gray-700 dark:text-gray-400"> |
405 | Button right | 410 | Button right |
406 | </span> | 411 | </span> |
407 | <div | 412 | <div |
408 | class="relative text-gray-500 focus-within:text-purple-600" | 413 | class="relative text-gray-500 focus-within:text-purple-600" |
409 | > | 414 | > |
410 | <input | 415 | <input |
411 | class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 416 | class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
412 | placeholder="Jane Doe" | 417 | placeholder="Jane Doe" |
413 | /> | 418 | /> |
414 | <button | 419 | <button |
415 | class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | 420 | class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" |
416 | > | 421 | > |
417 | Click | 422 | Click |
418 | </button> | 423 | </button> |
419 | </div> | 424 | </div> |
420 | </label> | 425 | </label> |
421 | </div>--> | 426 | </div>--> |
422 | @endsection | 427 | @endsection |
423 | 428 |
resources/views/admin/infobloks/form.blade.php
1 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 1 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
2 | <label class="block text-sm"> | 2 | <label class="block text-sm"> |
3 | <span class="text-gray-700 dark:text-gray-400">Название документа-диплома</span> | 3 | <span class="text-gray-700 dark:text-gray-400">Название документа-диплома</span> |
4 | <input name="name" id="name" | 4 | <input name="name" id="name" |
5 | 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" | 5 | 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" |
6 | placeholder="Название документа-диплома" value="{{ old('name') ?? $infoblok->name ?? '' }}" | 6 | placeholder="Название документа-диплома" value="{{ old('name') ?? $infoblok->name ?? '' }}" |
7 | /> | 7 | /> |
8 | @error('name') | 8 | @error('name') |
9 | <span class="text-xs text-red-600 dark:text-red-400"> | 9 | <span class="text-xs text-red-600 dark:text-red-400"> |
10 | {{ $message }} | 10 | {{ $message }} |
11 | </span> | 11 | </span> |
12 | @enderror | 12 | @enderror |
13 | </label><br> | 13 | </label><br> |
14 | 14 | ||
15 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 15 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
16 | <div> | 16 | <div> |
17 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 17 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
18 | Сохранить | 18 | Сохранить |
19 | </button> | 19 | </button> |
20 | <a href="{{ route('admin.infobloks.index') }}" | ||
21 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
22 | style="display: -webkit-inline-box; height: 30px!important;" | ||
23 | >Назад</a> | ||
20 | </div> | 24 | </div> |
21 | </div> | 25 | </div> |
22 | </div> | 26 | </div> |
23 | 27 |
resources/views/admin/job_titles/form.blade.php
1 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 1 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
2 | <label class="block text-sm"> | 2 | <label class="block text-sm"> |
3 | <span class="text-gray-700 dark:text-gray-400">Название должности</span> | 3 | <span class="text-gray-700 dark:text-gray-400">Название должности</span> |
4 | <input name="name" id="name" | 4 | <input name="name" id="name" |
5 | 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" | 5 | 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" |
6 | placeholder="Название должности" value="{{ old('name') ?? $job_title->name ?? '' }}" | 6 | placeholder="Название должности" value="{{ old('name') ?? $job_title->name ?? '' }}" |
7 | /> | 7 | /> |
8 | @error('name') | 8 | @error('name') |
9 | <span class="text-xs text-red-600 dark:text-red-400"> | 9 | <span class="text-xs text-red-600 dark:text-red-400"> |
10 | {{ $message }} | 10 | {{ $message }} |
11 | </span> | 11 | </span> |
12 | @enderror | 12 | @enderror |
13 | </label><br> | 13 | </label><br> |
14 | 14 | ||
15 | <label class="block text-sm"> | 15 | <label class="block text-sm"> |
16 | <span class="text-gray-700 dark:text-gray-400">Родитель</span> | 16 | <span class="text-gray-700 dark:text-gray-400">Родитель</span> |
17 | 17 | ||
18 | @php | 18 | @php |
19 | $parent_id = old('parent_id') ?? $job_title->parent_id ?? 0; | 19 | $parent_id = old('parent_id') ?? $job_title->parent_id ?? 0; |
20 | @endphp | 20 | @endphp |
21 | <select name="parent_id" class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 21 | <select name="parent_id" class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
22 | title="Родитель"> | 22 | title="Родитель"> |
23 | <option value="0">Без родителя</option> | 23 | <option value="0">Без родителя</option> |
24 | @include('admin.job_titles.parent_id', ['level' => -1, 'parent' => 0]) | 24 | @include('admin.job_titles.parent_id', ['level' => -1, 'parent' => 0]) |
25 | </select> | 25 | </select> |
26 | </label><br> | 26 | </label><br> |
27 | 27 | ||
28 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 28 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
29 | <div> | 29 | <div> |
30 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 30 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
31 | Сохранить | 31 | Сохранить |
32 | </button> | 32 | </button> |
33 | |||
34 | <a href="{{ route('admin.job-titles.index') }}" | ||
35 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
36 | style="display: -webkit-inline-box; height: 30px!important;" | ||
37 | >Назад</a> | ||
33 | </div> | 38 | </div> |
34 | </div> | 39 | </div> |
35 | </div> | 40 | </div> |
36 | 41 |
resources/views/admin/pages/form.blade.php
1 | @csrf | 1 | @csrf |
2 | 2 | ||
3 | @isset($page) | 3 | @isset($page) |
4 | @method('PUT') | 4 | @method('PUT') |
5 | @endisset | 5 | @endisset |
6 | 6 | ||
7 | <script> | 7 | <script> |
8 | function translit(word){ | 8 | function translit(word){ |
9 | var answer = ''; | 9 | var answer = ''; |
10 | var converter = { | 10 | var converter = { |
11 | 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', | 11 | 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', |
12 | 'е': 'e', 'ё': 'e', 'ж': 'zh', 'з': 'z', 'и': 'i', | 12 | 'е': 'e', 'ё': 'e', 'ж': 'zh', 'з': 'z', 'и': 'i', |
13 | 'й': 'y', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', | 13 | 'й': 'y', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', |
14 | 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', | 14 | 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', |
15 | 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', | 15 | 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', |
16 | 'ш': 'sh', 'щ': 'sch', 'ь': '', 'ы': 'y', 'ъ': '', | 16 | 'ш': 'sh', 'щ': 'sch', 'ь': '', 'ы': 'y', 'ъ': '', |
17 | 'э': 'e', 'ю': 'yu', 'я': 'ya', | 17 | 'э': 'e', 'ю': 'yu', 'я': 'ya', |
18 | 18 | ||
19 | 'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', | 19 | 'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', |
20 | 'Е': 'E', 'Ё': 'E', 'Ж': 'Zh', 'З': 'Z', 'И': 'I', | 20 | 'Е': 'E', 'Ё': 'E', 'Ж': 'Zh', 'З': 'Z', 'И': 'I', |
21 | 'Й': 'Y', 'К': 'K', 'Л': 'L', 'М': 'M', 'Н': 'N', | 21 | 'Й': 'Y', 'К': 'K', 'Л': 'L', 'М': 'M', 'Н': 'N', |
22 | 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', | 22 | 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', |
23 | 'У': 'U', 'Ф': 'F', 'Х': 'H', 'Ц': 'C', 'Ч': 'Ch', | 23 | 'У': 'U', 'Ф': 'F', 'Х': 'H', 'Ц': 'C', 'Ч': 'Ch', |
24 | 'Ш': 'Sh', 'Щ': 'Sch', 'Ь': '', 'Ы': 'Y', 'Ъ': '', | 24 | 'Ш': 'Sh', 'Щ': 'Sch', 'Ь': '', 'Ы': 'Y', 'Ъ': '', |
25 | 'Э': 'E', 'Ю': 'Yu', 'Я': 'Ya', ' ': '-' | 25 | 'Э': 'E', 'Ю': 'Yu', 'Я': 'Ya', ' ': '-' |
26 | }; | 26 | }; |
27 | 27 | ||
28 | for (var i = 0; i < word.length; ++i ) { | 28 | for (var i = 0; i < word.length; ++i ) { |
29 | if (converter[word[i]] == undefined){ | 29 | if (converter[word[i]] == undefined){ |
30 | answer += word[i]; | 30 | answer += word[i]; |
31 | } else { | 31 | } else { |
32 | answer += converter[word[i]]; | 32 | answer += converter[word[i]]; |
33 | } | 33 | } |
34 | } | 34 | } |
35 | 35 | ||
36 | return answer; | 36 | return answer; |
37 | } | 37 | } |
38 | 38 | ||
39 | window.addEventListener("DOMContentLoaded", (event) => { | 39 | window.addEventListener("DOMContentLoaded", (event) => { |
40 | let title = document.querySelector('#name'); | 40 | let title = document.querySelector('#name'); |
41 | let text = document.querySelector('#slug'); | 41 | let text = document.querySelector('#slug'); |
42 | 42 | ||
43 | title.addEventListener('input', function() { | 43 | title.addEventListener('input', function() { |
44 | text.value = translit(this.value); | 44 | text.value = translit(this.value); |
45 | }); | 45 | }); |
46 | }); | 46 | }); |
47 | 47 | ||
48 | </script> | 48 | </script> |
49 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 49 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
50 | <label class="block text-sm"> | 50 | <label class="block text-sm"> |
51 | <span class="text-gray-700 dark:text-gray-400">Название страницы</span> | 51 | <span class="text-gray-700 dark:text-gray-400">Название страницы</span> |
52 | <input name="name" id="name" | 52 | <input name="name" id="name" |
53 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 53 | 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" |
54 | placeholder="Имя категории" value="{{ old('name') ?? $page->name ?? '' }}" | 54 | placeholder="Имя категории" value="{{ old('name') ?? $page->name ?? '' }}" |
55 | /> | 55 | /> |
56 | @error('name') | 56 | @error('name') |
57 | <span class="text-xs text-red-600 dark:text-red-400"> | 57 | <span class="text-xs text-red-600 dark:text-red-400"> |
58 | {{ $message }} | 58 | {{ $message }} |
59 | </span> | 59 | </span> |
60 | @enderror | 60 | @enderror |
61 | </label><br> | 61 | </label><br> |
62 | 62 | ||
63 | <label class="block text-sm"> | 63 | <label class="block text-sm"> |
64 | <span class="text-gray-700 dark:text-gray-400">Английский псевдоним страницы</span> | 64 | <span class="text-gray-700 dark:text-gray-400">Английский псевдоним страницы</span> |
65 | <input name="slug" id="slug" | 65 | <input name="slug" id="slug" |
66 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 66 | 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" |
67 | placeholder="Имя категории" value="{{ old('slug') ?? $page->slug ?? '' }}" | 67 | placeholder="Имя категории" value="{{ old('slug') ?? $page->slug ?? '' }}" |
68 | /> | 68 | /> |
69 | @error('slug') | 69 | @error('slug') |
70 | <span class="text-xs text-red-600 dark:text-red-400"> | 70 | <span class="text-xs text-red-600 dark:text-red-400"> |
71 | {{ $message }} | 71 | {{ $message }} |
72 | </span> | 72 | </span> |
73 | @enderror | 73 | @enderror |
74 | </label><br> | 74 | </label><br> |
75 | 75 | ||
76 | <label class="block text-sm"> | 76 | <label class="block text-sm"> |
77 | <span class="text-gray-700 dark:text-gray-400">Анонс</span> | 77 | <span class="text-gray-700 dark:text-gray-400">Анонс</span> |
78 | <textarea class="form-control ckeditor" name="anons" placeholder="Анонс (html)" required | 78 | <textarea class="form-control ckeditor" name="anons" placeholder="Анонс (html)" required |
79 | rows="10">{{ old('anons') ?? $page->anons ?? '' }}</textarea> | 79 | rows="10">{{ old('anons') ?? $page->anons ?? '' }}</textarea> |
80 | @error('anons') | 80 | @error('anons') |
81 | <span class="text-xs text-red-600 dark:text-red-400"> | 81 | <span class="text-xs text-red-600 dark:text-red-400"> |
82 | {{ $message }} | 82 | {{ $message }} |
83 | </span> | 83 | </span> |
84 | @enderror | 84 | @enderror |
85 | </label><br> | 85 | </label><br> |
86 | 86 | ||
87 | <label class="block text-sm"> | 87 | <label class="block text-sm"> |
88 | <span class="text-gray-700 dark:text-gray-400">Текст</span> | 88 | <span class="text-gray-700 dark:text-gray-400">Текст</span> |
89 | <textarea class="form-control ckeditor" name="text" placeholder="Текст (html)" required | 89 | <textarea class="form-control ckeditor" name="text" placeholder="Текст (html)" required |
90 | rows="10">{{ old('text') ?? $page->text ?? '' }}</textarea> | 90 | rows="10">{{ old('text') ?? $page->text ?? '' }}</textarea> |
91 | @error('text') | 91 | @error('text') |
92 | <span class="text-xs text-red-600 dark:text-red-400"> | 92 | <span class="text-xs text-red-600 dark:text-red-400"> |
93 | {{ $message }} | 93 | {{ $message }} |
94 | </span> | 94 | </span> |
95 | @enderror | 95 | @enderror |
96 | </label><br> | 96 | </label><br> |
97 | 97 | ||
98 | <label class="block text-sm"> | 98 | <label class="block text-sm"> |
99 | <span class="text-gray-700 dark:text-gray-400">Автор</span> | 99 | <span class="text-gray-700 dark:text-gray-400">Автор</span> |
100 | <input name="author" id="author" | 100 | <input name="author" id="author" |
101 | 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" | 101 | 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" |
102 | placeholder="Имя категории" value="{{ old('author') ?? $page->author ?? '' }}" | 102 | placeholder="Имя категории" value="{{ old('author') ?? $page->author ?? '' }}" |
103 | /> | 103 | /> |
104 | @error('author') | 104 | @error('author') |
105 | <span class="text-xs text-red-600 dark:text-red-400"> | 105 | <span class="text-xs text-red-600 dark:text-red-400"> |
106 | {{ $message }} | 106 | {{ $message }} |
107 | </span> | 107 | </span> |
108 | @enderror | 108 | @enderror |
109 | </label><br> | 109 | </label><br> |
110 | 110 | ||
111 | <label class="block text-sm"> | 111 | <label class="block text-sm"> |
112 | <span class="text-gray-700 dark:text-gray-400">Картинка</span> | 112 | <span class="text-gray-700 dark:text-gray-400">Картинка</span> |
113 | <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 | 113 | <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 |
114 | focus:border-purple-400 focus:outline-none focus:shadow-outline-purple | 114 | focus:border-purple-400 focus:outline-none focus:shadow-outline-purple |
115 | dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 115 | dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
116 | id="image" name="image" accept="image/png, image/jpeg"> | 116 | id="image" name="image" accept="image/png, image/jpeg"> |
117 | @error('image') | 117 | @error('image') |
118 | <span class="text-xs text-red-600 dark:text-red-400"> | 118 | <span class="text-xs text-red-600 dark:text-red-400"> |
119 | {{ $message }} | 119 | {{ $message }} |
120 | </span> | 120 | </span> |
121 | @enderror | 121 | @enderror |
122 | @isset($page->image) | 122 | @isset($page->image) |
123 | <img src="{{asset(Storage::url($page->image))}}" width="100px"/> | 123 | <img src="{{asset(Storage::url($page->image))}}" width="100px"/> |
124 | @endisset | 124 | @endisset |
125 | </label><br> | 125 | </label><br> |
126 | 126 | ||
127 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 127 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
128 | <div> | 128 | <div> |
129 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 129 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
130 | Сохранить | 130 | Сохранить |
131 | </button> | 131 | </button> |
132 | <a href="{{ route('admin.editor-pages') }}" | ||
133 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
134 | style="display: -webkit-inline-box; height: 30px!important;" | ||
135 | >Назад</a> | ||
132 | </div> | 136 | </div> |
133 | </div> | 137 | </div> |
134 | </div> | 138 | </div> |
135 | <script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> | 139 | <script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> |
136 | <script> | 140 | <script> |
137 | CKEDITOR.replace( 'anons'); | 141 | CKEDITOR.replace( 'anons'); |
138 | CKEDITOR.replace( 'text', { | 142 | CKEDITOR.replace( 'text', { |
139 | filebrowserUploadUrl: "{{route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | 143 | filebrowserUploadUrl: "{{route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", |
140 | filebrowserImageUploadUrl: "{{ route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | 144 | filebrowserImageUploadUrl: "{{ route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", |
141 | filebrowserUploadMethod: 'form' | 145 | filebrowserUploadMethod: 'form' |
142 | }); | 146 | }); |
143 | </script> | 147 | </script> |
144 | 148 |
resources/views/admin/profile.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Профиль']) | 1 | @extends('layout.admin', ['title' => 'Админка - Профиль']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | 4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> |
5 | Личные данные | 5 | Личные данные |
6 | </h4> | 6 | </h4> |
7 | <form method="POST" action=""> | 7 | <form method="POST" action=""> |
8 | @csrf | 8 | @csrf |
9 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 9 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
10 | <label class="block text-sm"> | 10 | <label class="block text-sm"> |
11 | <span class="text-gray-700 dark:text-gray-400">Имя/Псевдоним/Имя компании</span> | 11 | <span class="text-gray-700 dark:text-gray-400">Имя/Псевдоним/Имя компании</span> |
12 | <input name="name" id="name" | 12 | <input name="name" id="name" |
13 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 13 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
14 | placeholder="Псевдоним для админки" value="{{ old('name') ?? $user->name ?? '' }}" | 14 | placeholder="Псевдоним для админки" value="{{ old('name') ?? $user->name ?? '' }}" |
15 | /> | 15 | /> |
16 | @error('name') | 16 | @error('name') |
17 | <span class="text-xs text-red-600 dark:text-red-400"> | 17 | <span class="text-xs text-red-600 dark:text-red-400"> |
18 | {{ $message }} | 18 | {{ $message }} |
19 | </span> | 19 | </span> |
20 | @enderror | 20 | @enderror |
21 | </label><br> | 21 | </label><br> |
22 | 22 | ||
23 | <label class="block text-sm"> | 23 | <label class="block text-sm"> |
24 | <span class="text-gray-700 dark:text-gray-400">Email</span> | 24 | <span class="text-gray-700 dark:text-gray-400">Email</span> |
25 | <input name="email" id="email" | 25 | <input name="email" id="email" |
26 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 26 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
27 | placeholder="Почта" value="{{ old('email') ?? $user->email ?? '' }}" | 27 | placeholder="Почта" value="{{ old('email') ?? $user->email ?? '' }}" |
28 | /> | 28 | /> |
29 | @error('email') | 29 | @error('email') |
30 | <span class="text-xs text-red-600 dark:text-red-400"> | 30 | <span class="text-xs text-red-600 dark:text-red-400"> |
31 | {{ $message }} | 31 | {{ $message }} |
32 | </span> | 32 | </span> |
33 | @enderror | 33 | @enderror |
34 | </label><br> | 34 | </label><br> |
35 | 35 | ||
36 | <label class="block text-sm"> | 36 | <label class="block text-sm"> |
37 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> | 37 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> |
38 | <input name="telephone" id="telephone" | 38 | <input name="telephone" id="telephone" |
39 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 39 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
40 | placeholder="Телефон" value="{{ old('telephone') ?? $user->telephone ?? '' }}" | 40 | placeholder="Телефон" value="{{ old('telephone') ?? $user->telephone ?? '' }}" |
41 | /> | 41 | /> |
42 | @error('telephone') | 42 | @error('telephone') |
43 | <span class="text-xs text-red-600 dark:text-red-400"> | 43 | <span class="text-xs text-red-600 dark:text-red-400"> |
44 | {{ $message }} | 44 | {{ $message }} |
45 | </span> | 45 | </span> |
46 | @enderror | 46 | @enderror |
47 | </label><br> | 47 | </label><br> |
48 | 48 | ||
49 | <label class="block text-sm"> | 49 | <label class="block text-sm"> |
50 | <span class="text-gray-700 dark:text-gray-400">Фамилия</span> | 50 | <span class="text-gray-700 dark:text-gray-400">Фамилия</span> |
51 | <input name="surname" id="surname" | 51 | <input name="surname" id="surname" |
52 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 52 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
53 | placeholder="Фамилия" value="{{ old('surname') ?? $user->surname ?? '' }}" | 53 | placeholder="Фамилия" value="{{ old('surname') ?? $user->surname ?? '' }}" |
54 | /> | 54 | /> |
55 | @error('surname') | 55 | @error('surname') |
56 | <span class="text-xs text-red-600 dark:text-red-400"> | 56 | <span class="text-xs text-red-600 dark:text-red-400"> |
57 | {{ $message }} | 57 | {{ $message }} |
58 | </span> | 58 | </span> |
59 | @enderror | 59 | @enderror |
60 | </label><br> | 60 | </label><br> |
61 | 61 | ||
62 | <label class="block text-sm"> | 62 | <label class="block text-sm"> |
63 | <span class="text-gray-700 dark:text-gray-400">Имя человека</span> | 63 | <span class="text-gray-700 dark:text-gray-400">Имя человека</span> |
64 | <input name="name_man" id="name_man" | 64 | <input name="name_man" id="name_man" |
65 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 65 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
66 | placeholder="Имя человека" value="{{ old('name_man') ?? $user->name_man ?? '' }}" | 66 | placeholder="Имя человека" value="{{ old('name_man') ?? $user->name_man ?? '' }}" |
67 | /> | 67 | /> |
68 | @error('name_man') | 68 | @error('name_man') |
69 | <span class="text-xs text-red-600 dark:text-red-400"> | 69 | <span class="text-xs text-red-600 dark:text-red-400"> |
70 | {{ $message }} | 70 | {{ $message }} |
71 | </span> | 71 | </span> |
72 | @enderror | 72 | @enderror |
73 | </label><br> | 73 | </label><br> |
74 | 74 | ||
75 | <label class="block text-sm"> | 75 | <label class="block text-sm"> |
76 | <span class="text-gray-700 dark:text-gray-400">Отчество</span> | 76 | <span class="text-gray-700 dark:text-gray-400">Отчество</span> |
77 | <input name="surname2" id="surname2" | 77 | <input name="surname2" id="surname2" |
78 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 78 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
79 | placeholder="Отчество" value="{{ old('surname2') ?? $user->surname2 ?? '' }}" | 79 | placeholder="Отчество" value="{{ old('surname2') ?? $user->surname2 ?? '' }}" |
80 | /> | 80 | /> |
81 | @error('surname2') | 81 | @error('surname2') |
82 | <span class="text-xs text-red-600 dark:text-red-400"> | 82 | <span class="text-xs text-red-600 dark:text-red-400"> |
83 | {{ $message }} | 83 | {{ $message }} |
84 | </span> | 84 | </span> |
85 | @enderror | 85 | @enderror |
86 | </label><br> | 86 | </label><br> |
87 | 87 | ||
88 | <div class="mt-4 text-sm"> | 88 | <div class="mt-4 text-sm"> |
89 | <span class="text-gray-700 dark:text-gray-400"> | 89 | <span class="text-gray-700 dark:text-gray-400"> |
90 | Тип пользователя | 90 | Тип пользователя |
91 | </span> | 91 | </span> |
92 | <div class="mt-2"> | 92 | <div class="mt-2"> |
93 | <label class="inline-flex items-center text-gray-600 dark:text-gray-400"> | 93 | <label class="inline-flex items-center text-gray-600 dark:text-gray-400"> |
94 | <input | 94 | <input |
95 | type="radio" | 95 | type="radio" |
96 | class="text-purple-600 form-radio focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 96 | class="text-purple-600 form-radio focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
97 | name="is_worker" | 97 | name="is_worker" |
98 | value="1" | 98 | value="1" |
99 | <? if ($user->is_worker == 1) echo "checked"; ?> | 99 | <? if ($user->is_worker == 1) echo "checked"; ?> |
100 | /> | 100 | /> |
101 | <span class="ml-2">Работник</span> | 101 | <span class="ml-2">Работник</span> |
102 | </label> | 102 | </label> |
103 | <label class="inline-flex items-center ml-6 text-gray-600 dark:text-gray-400"> | 103 | <label class="inline-flex items-center ml-6 text-gray-600 dark:text-gray-400"> |
104 | <input | 104 | <input |
105 | type="radio" | 105 | type="radio" |
106 | class="text-purple-600 form-radio focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 106 | class="text-purple-600 form-radio focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
107 | name="is_worker" | 107 | name="is_worker" |
108 | value="0" | 108 | value="0" |
109 | <? if ($user->is_worker == 0) echo "checked"; ?> | 109 | <? if ($user->is_worker == 0) echo "checked"; ?> |
110 | /> | 110 | /> |
111 | <span class="ml-2">Работодатель</span> | 111 | <span class="ml-2">Работодатель</span> |
112 | </label> | 112 | </label> |
113 | </div> | 113 | </div> |
114 | </div><br> | 114 | </div><br> |
115 | 115 | ||
116 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 116 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
117 | <div> | 117 | <div> |
118 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 118 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
119 | Сохранить | 119 | Сохранить |
120 | </button> | 120 | </button> |
121 | <a href="{{ route('admin.password') }}" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 121 | <a href="{{ route('admin.password') }}" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" |
122 | Сменить пароль | 122 | style="display: -webkit-inline-box; height: 30px!important;"> |
123 | Сменить пароль | ||
123 | </a> | 124 | </a> |
124 | </div> | 125 | </div> |
125 | </div> | 126 | </div> |
126 | </div> | 127 | </div> |
127 | </form> | 128 | </form> |
128 | <!-- | 129 | <!-- |
129 | <label class="block mt-4 text-sm"> | 130 | <label class="block mt-4 text-sm"> |
130 | <span class="text-gray-700 dark:text-gray-400"> | 131 | <span class="text-gray-700 dark:text-gray-400"> |
131 | Requested Limit | 132 | Requested Limit |
132 | </span> | 133 | </span> |
133 | <select | 134 | <select |
134 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 135 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
135 | > | 136 | > |
136 | <option>$1,000</option> | 137 | <option>$1,000</option> |
137 | <option>$5,000</option> | 138 | <option>$5,000</option> |
138 | <option>$10,000</option> | 139 | <option>$10,000</option> |
139 | <option>$25,000</option> | 140 | <option>$25,000</option> |
140 | </select> | 141 | </select> |
141 | </label> | 142 | </label> |
142 | 143 | ||
143 | <label class="block mt-4 text-sm"> | 144 | <label class="block mt-4 text-sm"> |
144 | <span class="text-gray-700 dark:text-gray-400"> | 145 | <span class="text-gray-700 dark:text-gray-400"> |
145 | Multiselect | 146 | Multiselect |
146 | </span> | 147 | </span> |
147 | <select | 148 | <select |
148 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 149 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
149 | multiple | 150 | multiple |
150 | > | 151 | > |
151 | <option>Option 1</option> | 152 | <option>Option 1</option> |
152 | <option>Option 2</option> | 153 | <option>Option 2</option> |
153 | <option>Option 3</option> | 154 | <option>Option 3</option> |
154 | <option>Option 4</option> | 155 | <option>Option 4</option> |
155 | <option>Option 5</option> | 156 | <option>Option 5</option> |
156 | </select> | 157 | </select> |
157 | </label> | 158 | </label> |
158 | 159 | ||
159 | <label class="block mt-4 text-sm"> | 160 | <label class="block mt-4 text-sm"> |
160 | <span class="text-gray-700 dark:text-gray-400">Message</span> | 161 | <span class="text-gray-700 dark:text-gray-400">Message</span> |
161 | <textarea | 162 | <textarea |
162 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 163 | 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" |
163 | rows="3" | 164 | rows="3" |
164 | placeholder="Enter some long form content." | 165 | placeholder="Enter some long form content." |
165 | ></textarea> | 166 | ></textarea> |
166 | </label> | 167 | </label> |
167 | 168 | ||
168 | <div class="flex mt-6 text-sm"> | 169 | <div class="flex mt-6 text-sm"> |
169 | <label class="flex items-center dark:text-gray-400"> | 170 | <label class="flex items-center dark:text-gray-400"> |
170 | <input | 171 | <input |
171 | type="checkbox" | 172 | type="checkbox" |
172 | class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 173 | class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
173 | /> | 174 | /> |
174 | <span class="ml-2"> | 175 | <span class="ml-2"> |
175 | I agree to the | 176 | I agree to the |
176 | <span class="underline">privacy policy</span> | 177 | <span class="underline">privacy policy</span> |
177 | </span> | 178 | </span> |
178 | </label> | 179 | </label> |
179 | </div> | 180 | </div> |
180 | </div> | 181 | </div> |
181 | 182 | ||
182 | <!-- Validation inputs --> | 183 | <!-- Validation inputs --> |
183 | <!--<h4 | 184 | <!--<h4 |
184 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 185 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
185 | > | 186 | > |
186 | Validation | 187 | Validation |
187 | </h4> | 188 | </h4> |
188 | <div | 189 | <div |
189 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 190 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
190 | > | 191 | > |
191 | <!-- Invalid input --> | 192 | <!-- Invalid input --> |
192 | <!--<label class="block text-sm"> | 193 | <!--<label class="block text-sm"> |
193 | <span class="text-gray-700 dark:text-gray-400"> | 194 | <span class="text-gray-700 dark:text-gray-400"> |
194 | Invalid input | 195 | Invalid input |
195 | </span> | 196 | </span> |
196 | <input | 197 | <input |
197 | class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" | 198 | class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" |
198 | placeholder="Jane Doe" | 199 | placeholder="Jane Doe" |
199 | /> | 200 | /> |
200 | <span class="text-xs text-red-600 dark:text-red-400"> | 201 | <span class="text-xs text-red-600 dark:text-red-400"> |
201 | Your password is too short. | 202 | Your password is too short. |
202 | </span> | 203 | </span> |
203 | </label> | 204 | </label> |
204 | 205 | ||
205 | <!-- Valid input --> | 206 | <!-- Valid input --> |
206 | <!--<label class="block mt-4 text-sm"> | 207 | <!--<label class="block mt-4 text-sm"> |
207 | <span class="text-gray-700 dark:text-gray-400"> | 208 | <span class="text-gray-700 dark:text-gray-400"> |
208 | Valid input | 209 | Valid input |
209 | </span> | 210 | </span> |
210 | <input | 211 | <input |
211 | class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" | 212 | class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" |
212 | placeholder="Jane Doe" | 213 | placeholder="Jane Doe" |
213 | /> | 214 | /> |
214 | <span class="text-xs text-green-600 dark:text-green-400"> | 215 | <span class="text-xs text-green-600 dark:text-green-400"> |
215 | Your password is strong. | 216 | Your password is strong. |
216 | </span> | 217 | </span> |
217 | </label> | 218 | </label> |
218 | 219 | ||
219 | <!-- Helper text --> | 220 | <!-- Helper text --> |
220 | <!--<label class="block mt-4 text-sm"> | 221 | <!--<label class="block mt-4 text-sm"> |
221 | <span class="text-gray-700 dark:text-gray-400"> | 222 | <span class="text-gray-700 dark:text-gray-400"> |
222 | Helper text | 223 | Helper text |
223 | </span> | 224 | </span> |
224 | <input | 225 | <input |
225 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 226 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
226 | placeholder="Jane Doe" | 227 | placeholder="Jane Doe" |
227 | /> | 228 | /> |
228 | <span class="text-xs text-gray-600 dark:text-gray-400"> | 229 | <span class="text-xs text-gray-600 dark:text-gray-400"> |
229 | Your password must be at least 6 characters long. | 230 | Your password must be at least 6 characters long. |
230 | </span> | 231 | </span> |
231 | </label> | 232 | </label> |
232 | </div> | 233 | </div> |
233 | 234 | ||
234 | <!-- Inputs with icons --> | 235 | <!-- Inputs with icons --> |
235 | <!--<h4 | 236 | <!--<h4 |
236 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 237 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
237 | > | 238 | > |
238 | Icons | 239 | Icons |
239 | </h4> | 240 | </h4> |
240 | <div | 241 | <div |
241 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 242 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
242 | > | 243 | > |
243 | <label class="block text-sm"> | 244 | <label class="block text-sm"> |
244 | <span class="text-gray-700 dark:text-gray-400">Icon left</span> | 245 | <span class="text-gray-700 dark:text-gray-400">Icon left</span> |
245 | <!-- focus-within sets the color for the icon when input is focused --> | 246 | <!-- focus-within sets the color for the icon when input is focused --> |
246 | <!--<div | 247 | <!--<div |
247 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | 248 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" |
248 | > | 249 | > |
249 | <input | 250 | <input |
250 | class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 251 | class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
251 | placeholder="Jane Doe" | 252 | placeholder="Jane Doe" |
252 | /> | 253 | /> |
253 | <div | 254 | <div |
254 | class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" | 255 | class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" |
255 | > | 256 | > |
256 | <svg | 257 | <svg |
257 | class="w-5 h-5" | 258 | class="w-5 h-5" |
258 | aria-hidden="true" | 259 | aria-hidden="true" |
259 | fill="none" | 260 | fill="none" |
260 | stroke-linecap="round" | 261 | stroke-linecap="round" |
261 | stroke-linejoin="round" | 262 | stroke-linejoin="round" |
262 | stroke-width="2" | 263 | stroke-width="2" |
263 | viewBox="0 0 24 24" | 264 | viewBox="0 0 24 24" |
264 | stroke="currentColor" | 265 | stroke="currentColor" |
265 | > | 266 | > |
266 | <path | 267 | <path |
267 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | 268 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" |
268 | ></path> | 269 | ></path> |
269 | </svg> | 270 | </svg> |
270 | </div> | 271 | </div> |
271 | </div> | 272 | </div> |
272 | </label> | 273 | </label> |
273 | 274 | ||
274 | <label class="block mt-4 text-sm"> | 275 | <label class="block mt-4 text-sm"> |
275 | <span class="text-gray-700 dark:text-gray-400">Icon right</span> | 276 | <span class="text-gray-700 dark:text-gray-400">Icon right</span> |
276 | <!-- focus-within sets the color for the icon when input is focused --> | 277 | <!-- focus-within sets the color for the icon when input is focused --> |
277 | <!--<div | 278 | <!--<div |
278 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | 279 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" |
279 | > | 280 | > |
280 | <input | 281 | <input |
281 | class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 282 | class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
282 | placeholder="Jane Doe" | 283 | placeholder="Jane Doe" |
283 | /> | 284 | /> |
284 | <div | 285 | <div |
285 | class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" | 286 | class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" |
286 | > | 287 | > |
287 | <svg | 288 | <svg |
288 | class="w-5 h-5" | 289 | class="w-5 h-5" |
289 | aria-hidden="true" | 290 | aria-hidden="true" |
290 | fill="none" | 291 | fill="none" |
291 | stroke-linecap="round" | 292 | stroke-linecap="round" |
292 | stroke-linejoin="round" | 293 | stroke-linejoin="round" |
293 | stroke-width="2" | 294 | stroke-width="2" |
294 | viewBox="0 0 24 24" | 295 | viewBox="0 0 24 24" |
295 | stroke="currentColor" | 296 | stroke="currentColor" |
296 | > | 297 | > |
297 | <path | 298 | <path |
298 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | 299 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" |
299 | ></path> | 300 | ></path> |
300 | </svg> | 301 | </svg> |
301 | </div> | 302 | </div> |
302 | </div> | 303 | </div> |
303 | </label> | 304 | </label> |
304 | </div> | 305 | </div> |
305 | 306 | ||
306 | <!-- Inputs with buttons --> | 307 | <!-- Inputs with buttons --> |
307 | <!--<h4 | 308 | <!--<h4 |
308 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 309 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
309 | > | 310 | > |
310 | Buttons | 311 | Buttons |
311 | </h4> | 312 | </h4> |
312 | <div | 313 | <div |
313 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 314 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
314 | > | 315 | > |
315 | <label class="block text-sm"> | 316 | <label class="block text-sm"> |
316 | <span class="text-gray-700 dark:text-gray-400"> | 317 | <span class="text-gray-700 dark:text-gray-400"> |
317 | Button left | 318 | Button left |
318 | </span> | 319 | </span> |
319 | <div class="relative"> | 320 | <div class="relative"> |
320 | <input | 321 | <input |
321 | class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 322 | class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
322 | placeholder="Jane Doe" | 323 | placeholder="Jane Doe" |
323 | /> | 324 | /> |
324 | <button | 325 | <button |
325 | class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 326 | class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
326 | > | 327 | > |
327 | Click | 328 | Click |
328 | </button> | 329 | </button> |
329 | </div> | 330 | </div> |
330 | </label> | 331 | </label> |
331 | 332 | ||
332 | <label class="block mt-4 text-sm"> | 333 | <label class="block mt-4 text-sm"> |
333 | <span class="text-gray-700 dark:text-gray-400"> | 334 | <span class="text-gray-700 dark:text-gray-400"> |
334 | Button right | 335 | Button right |
335 | </span> | 336 | </span> |
336 | <div | 337 | <div |
337 | class="relative text-gray-500 focus-within:text-purple-600" | 338 | class="relative text-gray-500 focus-within:text-purple-600" |
338 | > | 339 | > |
339 | <input | 340 | <input |
340 | class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 341 | class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
341 | placeholder="Jane Doe" | 342 | placeholder="Jane Doe" |
342 | /> | 343 | /> |
343 | <button | 344 | <button |
344 | class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | 345 | class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" |
345 | > | 346 | > |
346 | Click | 347 | Click |
347 | </button> | 348 | </button> |
348 | </div> | 349 | </div> |
349 | </label> | 350 | </label> |
350 | </div>--> | 351 | </div>--> |
351 | @endsection | 352 | @endsection |
352 | 353 |
resources/views/admin/reclames/add.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Добавление рекламы']) | 1 | @extends('layout.admin', ['title' => 'Админка - Добавление рекламы']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <form method="POST" action="{{ route('admin.add-reclames-store') }}" enctype="multipart/form-data"> | 4 | <form method="POST" action="{{ route('admin.add-reclames-store') }}" enctype="multipart/form-data"> |
5 | @csrf | ||
5 | @include('admin.reclames.form') | 6 | @include('admin.reclames.form') |
6 | </form> | 7 | </form> |
7 | @endsection | 8 | @endsection |
8 | 9 |
resources/views/admin/reclames/edit.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Редактирование рекламы']) | 1 | @extends('layout.admin', ['title' => 'Админка - Редактирование рекламы']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <form method="POST" action="{{ route('admin.update-reclames', ['reclame' => $reclame->id]) }}" enctype="multipart/form-data"> | 4 | <form method="POST" action="{{ route('admin.update-reclames', ['reclame' => $reclame->id]) }}" enctype="multipart/form-data"> |
5 | @csrf | ||
6 | @isset($reclame) | ||
7 | @method('PUT') | ||
8 | @endisset | ||
5 | @include('admin.reclames.form') | 9 | @include('admin.reclames.form') |
6 | </form> | 10 | </form> |
7 | @endsection | 11 | @endsection |
8 | 12 |
resources/views/admin/reclames/form.blade.php
1 | @csrf | ||
2 | |||
3 | @isset($reclame) | ||
4 | @method('PUT') | ||
5 | @endisset | ||
6 | |||
7 | <script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> | 1 | <script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> |
8 | <script> | 2 | <script> |
9 | CKEDITOR.replace( 'text', { | 3 | CKEDITOR.replace( 'text', { |
10 | filebrowserUploadUrl: "{{route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | 4 | filebrowserUploadUrl: "{{route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", |
11 | filebrowserUploadMethod: 'form' | 5 | filebrowserUploadMethod: 'form' |
12 | }); | 6 | }); |
13 | </script> | 7 | </script> |
14 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 8 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
15 | <label class="block text-sm"> | 9 | <label class="block text-sm"> |
16 | <span class="text-gray-700 dark:text-gray-400">Заголовок рекламы</span> | 10 | <span class="text-gray-700 dark:text-gray-400">Заголовок рекламы</span> |
17 | <input name="title" id="title" | 11 | <input name="title" id="title" |
18 | 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" | 12 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
19 | placeholder="Заголовок рекламы" value="{{ old('title') ?? $reclame->title ?? '' }}" | 13 | placeholder="Заголовок рекламы" value="{{ old('title') ?? (isset($reclame->title)) ? $reclame->title : '' }}" |
20 | /> | 14 | /> |
21 | @error('title') | 15 | @error('title') |
22 | <span class="text-xs text-red-600 dark:text-red-400"> | 16 | <span class="text-xs text-red-600 dark:text-red-400"> |
23 | {{ $message }} | 17 | {{ $message }} |
24 | </span> | 18 | </span> |
25 | @enderror | 19 | @enderror |
26 | </label><br> | 20 | </label><br> |
27 | 21 | ||
28 | <label class="block text-sm"> | 22 | <label class="block text-sm"> |
29 | <span class="text-gray-700 dark:text-gray-400"> | 23 | <span class="text-gray-700 dark:text-gray-400"> |
30 | <input type="hidden" name="is_hidden" value="0" /> | 24 | <input type="hidden" name="is_hidden" value="0" /> |
31 | <input type="checkbox" value="1" name="is_hidden" id="is_hidden" {{ ($reclame->is_hidden) ? "checked" : "" }} /> | 25 | <input type="checkbox" value="1" name="is_hidden" id="is_hidden" {{ isset($reclame->is_hidden) ? ($reclame->is_hidden) ? "checked" : "" : "" }} /> |
32 | Скрыть рекламу</span> | 26 | Скрыть рекламу</span> |
33 | </label><br> | 27 | </label><br> |
34 | 28 | ||
35 | <label class="block text-sm"> | 29 | <label class="block text-sm"> |
36 | <span class="text-gray-700 dark:text-gray-400">Ссылка</span> | 30 | <span class="text-gray-700 dark:text-gray-400">Ссылка</span> |
37 | <input name="link" id="link" | 31 | <input name="link" id="link" |
38 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 32 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
39 | placeholder="Ссылка" value="{{ old('link') ?? $reclame->link ?? '' }}" | 33 | placeholder="Ссылка" value="{{ old('link') ?? $reclame->link ?? '' }}" |
40 | /> | 34 | /> |
41 | @error('link') | 35 | @error('link') |
42 | <span class="text-xs text-red-600 dark:text-red-400"> | 36 | <span class="text-xs text-red-600 dark:text-red-400"> |
43 | {{ $message }} | 37 | {{ $message }} |
44 | </span> | 38 | </span> |
45 | @enderror | 39 | @enderror |
46 | </label><br> | 40 | </label><br> |
47 | 41 | ||
48 | <label class="block text-sm"> | 42 | <label class="block text-sm"> |
49 | <span class="text-gray-700 dark:text-gray-400">Текст</span> | 43 | <span class="text-gray-700 dark:text-gray-400">Текст</span> |
50 | <textarea class="form-control ckeditor" name="text" id="text" placeholder="Текст (html)" required | 44 | <textarea class="form-control ckeditor" name="text" id="text" placeholder="Текст (html)" required |
51 | rows="10">{{ old('text') ?? $reclame->text ?? '' }}</textarea> | 45 | rows="10">{{ old('text') ?? $reclame->text ?? '' }}</textarea> |
52 | @error('text') | 46 | @error('text') |
53 | <span class="text-xs text-red-600 dark:text-red-400"> | 47 | <span class="text-xs text-red-600 dark:text-red-400"> |
54 | {{ $message }} | 48 | {{ $message }} |
55 | </span> | 49 | </span> |
56 | @enderror | 50 | @enderror |
57 | </label><br> | 51 | </label><br> |
58 | 52 | ||
59 | <label class="block text-sm"> | 53 | <label class="block text-sm"> |
60 | <span class="text-gray-700 dark:text-gray-400">Позиция (число)</span> | 54 | <span class="text-gray-700 dark:text-gray-400">Позиция (число)</span> |
61 | <input name="position" id="position" | 55 | <input name="position" id="position" |
62 | 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" | 56 | 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" |
63 | placeholder="Позиция" value="{{ old('position') ?? $reclame->position ?? '' }}" | 57 | placeholder="Позиция" value="{{ old('position') ?? $reclame->position ?? '' }}" |
64 | /> | 58 | /> |
65 | @error('position') | 59 | @error('position') |
66 | <span class="text-xs text-red-600 dark:text-red-400"> | 60 | <span class="text-xs text-red-600 dark:text-red-400"> |
67 | {{ $message }} | 61 | {{ $message }} |
68 | </span> | 62 | </span> |
69 | @enderror | 63 | @enderror |
70 | </label><br> | 64 | </label><br> |
71 | 65 | ||
72 | <label class="block text-sm"> | 66 | <label class="block text-sm"> |
73 | <span class="text-gray-700 dark:text-gray-400">Картинка</span> | 67 | <span class="text-gray-700 dark:text-gray-400">Картинка</span> |
74 | <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 | 68 | <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 |
75 | dark:bg-gray-700 focus:border-purple-400 | 69 | dark:bg-gray-700 focus:border-purple-400 |
76 | focus:outline-none focus:shadow-outline-purple | 70 | focus:outline-none focus:shadow-outline-purple |
77 | dark:text-gray-300 dark:focus:shadow-outline-gray | 71 | dark:text-gray-300 dark:focus:shadow-outline-gray |
78 | form-input" | 72 | form-input" |
79 | id="image" name="image" accept="image/png, image/jpeg"> | 73 | id="image" name="image" accept="image/png, image/jpeg"> |
80 | @error('image') | 74 | @error('image') |
81 | <span class="text-xs text-red-600 dark:text-red-400"> | 75 | <span class="text-xs text-red-600 dark:text-red-400"> |
82 | {{ $message }} | 76 | {{ $message }} |
83 | </span> | 77 | </span> |
84 | @enderror | 78 | @enderror |
85 | @isset($reclame->image) | 79 | @isset($reclame->image) |
86 | <img src="{{asset(Storage::url($reclame->image))}}" width="100px"/> | 80 | <img src="{{asset(Storage::url($reclame->image))}}" width="100px"/> |
87 | @endisset | 81 | @endisset |
88 | 82 | ||
89 | </label><br> | 83 | </label><br> |
90 | 84 | ||
91 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 85 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
92 | <div> | 86 | <div> |
93 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 87 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
94 | Сохранить | 88 | Сохранить |
95 | </button> | 89 | </button> |
90 | <a href="{{ route('admin.reclames') }}" | ||
91 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
92 | style="display: -webkit-inline-box; height: 30px!important;" | ||
93 | >Назад</a> |
resources/views/admin/seo/form.blade.php
1 | @csrf | 1 | @csrf |
2 | 2 | ||
3 | @isset($page) | 3 | @isset($page) |
4 | @method('PUT') | 4 | @method('PUT') |
5 | @endisset | 5 | @endisset |
6 | <script> | 6 | <script> |
7 | window.onload = function() { | 7 | window.onload = function() { |
8 | const MetaURLBtn = document.querySelector('#GetMetaData'); | 8 | const MetaURLBtn = document.querySelector('#GetMetaData'); |
9 | 9 | ||
10 | MetaURLBtn.addEventListener('click', (e) => { | 10 | MetaURLBtn.addEventListener('click', (e) => { |
11 | e.preventDefault(); | 11 | e.preventDefault(); |
12 | console.log('Click button for get info metadata'); | 12 | console.log('Click button for get info metadata'); |
13 | 13 | ||
14 | let url = document.querySelector('#url').value; | 14 | let url = document.querySelector('#url').value; |
15 | 15 | ||
16 | $.ajax({ | 16 | $.ajax({ |
17 | type: "GET", | 17 | type: "GET", |
18 | url: "{{ route('admin.ajax.seo') }}", | 18 | url: "{{ route('admin.ajax.seo') }}", |
19 | data: "url=" + url, | 19 | data: "url=" + url, |
20 | success: function (data) { | 20 | success: function (data) { |
21 | console.log('URL был передан '); | 21 | console.log('URL был передан '); |
22 | data = JSON.parse(data); | 22 | data = JSON.parse(data); |
23 | console.log(data); | 23 | console.log(data); |
24 | 24 | ||
25 | document.querySelector('#title').value = data['title']; | 25 | document.querySelector('#title').value = data['title']; |
26 | document.querySelector('#keywords').value = data['keywords']; | 26 | document.querySelector('#keywords').value = data['keywords']; |
27 | document.querySelector('#description').value = data['description']; | 27 | document.querySelector('#description').value = data['description']; |
28 | }, | 28 | }, |
29 | headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, | 29 | headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}, |
30 | error: function (data) { | 30 | error: function (data) { |
31 | console.log('Error: ' + data); | 31 | console.log('Error: ' + data); |
32 | } | 32 | } |
33 | }); | 33 | }); |
34 | 34 | ||
35 | }); | 35 | }); |
36 | } | 36 | } |
37 | 37 | ||
38 | </script> | 38 | </script> |
39 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 39 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
40 | 40 | ||
41 | <label class="block text-sm"> | 41 | <label class="block text-sm"> |
42 | <span class="text-gray-700 dark:text-gray-400">URL страницы</span> | 42 | <span class="text-gray-700 dark:text-gray-400">URL страницы</span> |
43 | <input name="url" id="url" | 43 | <input name="url" id="url" |
44 | 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" | 44 | 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" |
45 | placeholder="URL страницы" value="{{ old('url') ?? $page->url ?? '' }}" | 45 | placeholder="URL страницы" value="{{ old('url') ?? $page->url ?? '' }}" |
46 | /> | 46 | /> |
47 | @error('url') | 47 | @error('url') |
48 | <span class="text-xs text-red-600 dark:text-red-400"> | 48 | <span class="text-xs text-red-600 dark:text-red-400"> |
49 | {{ $message }} | 49 | {{ $message }} |
50 | </span> | 50 | </span> |
51 | @enderror | 51 | @enderror |
52 | </label> | 52 | </label> |
53 | <div style="margin-top: 10px;"> | 53 | <div style="margin-top: 10px;"> |
54 | <a id="GetMetaData" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" style="margin-top:10px;">Получить мета-данные</a><br><br> | 54 | <a id="GetMetaData" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" style="margin-top:10px;">Получить мета-данные</a><br><br> |
55 | </div> | 55 | </div> |
56 | <label class="block text-sm"> | 56 | <label class="block text-sm"> |
57 | <span class="text-gray-700 dark:text-gray-400">Заголовок страницы (meta title)</span> | 57 | <span class="text-gray-700 dark:text-gray-400">Заголовок страницы (meta title)</span> |
58 | <input name="title" id="title" | 58 | <input name="title" id="title" |
59 | 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" | 59 | 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" |
60 | placeholder="Заголовок страницы" value="{{ old('title') ?? $page->title ?? '' }}" | 60 | placeholder="Заголовок страницы" value="{{ old('title') ?? $page->title ?? '' }}" |
61 | /> | 61 | /> |
62 | @error('title') | 62 | @error('title') |
63 | <span class="text-xs text-red-600 dark:text-red-400"> | 63 | <span class="text-xs text-red-600 dark:text-red-400"> |
64 | {{ $message }} | 64 | {{ $message }} |
65 | </span> | 65 | </span> |
66 | @enderror | 66 | @enderror |
67 | </label><br> | 67 | </label><br> |
68 | 68 | ||
69 | <label class="block text-sm"> | 69 | <label class="block text-sm"> |
70 | <span class="text-gray-700 dark:text-gray-400">Описание (meta description)</span> | 70 | <span class="text-gray-700 dark:text-gray-400">Описание (meta description)</span> |
71 | <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" | 71 | <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" |
72 | name="description" id="description" placeholder="Описание" required | 72 | name="description" id="description" placeholder="Описание" required |
73 | rows="3">{{ old('description') ?? $page->description ?? '' }}</textarea> | 73 | rows="3">{{ old('description') ?? $page->description ?? '' }}</textarea> |
74 | @error('description') | 74 | @error('description') |
75 | <span class="text-xs text-red-600 dark:text-red-400"> | 75 | <span class="text-xs text-red-600 dark:text-red-400"> |
76 | {{ $message }} | 76 | {{ $message }} |
77 | </span> | 77 | </span> |
78 | @enderror | 78 | @enderror |
79 | </label><br> | 79 | </label><br> |
80 | 80 | ||
81 | <label class="block text-sm"> | 81 | <label class="block text-sm"> |
82 | <span class="text-gray-700 dark:text-gray-400">Ключевые слова (meta keywords)</span> | 82 | <span class="text-gray-700 dark:text-gray-400">Ключевые слова (meta keywords)</span> |
83 | <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" | 83 | <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" |
84 | name="keywords" id="keywords" placeholder="Описание" required | 84 | name="keywords" id="keywords" placeholder="Описание" required |
85 | rows="3">{{ old('keywords') ?? $page->keywords ?? '' }}</textarea> | 85 | rows="3">{{ old('keywords') ?? $page->keywords ?? '' }}</textarea> |
86 | @error('keywords') | 86 | @error('keywords') |
87 | <span class="text-xs text-red-600 dark:text-red-400"> | 87 | <span class="text-xs text-red-600 dark:text-red-400"> |
88 | {{ $message }} | 88 | {{ $message }} |
89 | </span> | 89 | </span> |
90 | @enderror | 90 | @enderror |
91 | </label><br> | 91 | </label><br> |
92 | 92 | ||
93 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 93 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
94 | <div> | 94 | <div> |
95 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 95 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
96 | Сохранить | 96 | Сохранить |
97 | </button> | 97 | </button> |
98 | <a href="{{ route('admin.editor-seo') }}" | ||
99 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
100 | style="display: -webkit-inline-box; height: 30px!important;" | ||
101 | >Назад</a> | ||
98 | </div> | 102 | </div> |
99 | </div> | 103 | </div> |
100 | </div> | 104 | </div> |
101 | 105 |
resources/views/admin/users/index.blade.php
1 | @extends('layout.admin', ['title' => $title]) | 1 | @extends('layout.admin', ['title' => $title]) |
2 | 2 | ||
3 | @section('script') | 3 | @section('script') |
4 | <script> | 4 | <script> |
5 | $(document).ready(function() { | 5 | $(document).ready(function() { |
6 | $(document).on('click', '.check_click', function () { | 6 | $(document).on('click', '.check_click', function () { |
7 | var this_ = $(this); | 7 | var this_ = $(this); |
8 | var value = this_.val(); | 8 | var value = this_.val(); |
9 | var field = this_.attr('data-field'); | 9 | var field = this_.attr('data-field'); |
10 | var ajax_block = $('#ajax_block'); | 10 | var ajax_block = $('#ajax_block'); |
11 | var bool = 0; | 11 | var bool = 0; |
12 | var str_get = ''; | 12 | var str_get = ''; |
13 | 13 | ||
14 | if(this.checked){ | 14 | if(this.checked){ |
15 | bool = 1; | 15 | bool = 1; |
16 | } else { | 16 | } else { |
17 | bool = 0; | 17 | bool = 0; |
18 | } | 18 | } |
19 | console.log(field); | 19 | console.log(field); |
20 | str_get = "id=" + value + "&" + field + "=" + bool; | 20 | str_get = "id=" + value + "&" + field + "=" + bool; |
21 | console.log(str_get); | 21 | console.log(str_get); |
22 | 22 | ||
23 | $.ajax({ | 23 | $.ajax({ |
24 | type: "GET", | 24 | type: "GET", |
25 | url: "{{ url()->full()}}", | 25 | url: "{{ url()->full()}}", |
26 | data: str_get, | 26 | data: str_get, |
27 | success: function (data) { | 27 | success: function (data) { |
28 | console.log('Обновление таблицы пользователей '); | 28 | console.log('Обновление таблицы пользователей '); |
29 | //data = JSON.parse(data); | 29 | //data = JSON.parse(data); |
30 | //console.log(data); | 30 | //console.log(data); |
31 | ajax_block.html(data); | 31 | ajax_block.html(data); |
32 | }, | 32 | }, |
33 | headers: { | 33 | headers: { |
34 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 34 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
35 | }, | 35 | }, |
36 | error: function (data) { | 36 | error: function (data) { |
37 | console.log('Error: ' + data); | 37 | console.log('Error: ' + data); |
38 | } | 38 | } |
39 | }); | 39 | }); |
40 | }); | 40 | }); |
41 | }); | 41 | }); |
42 | </script> | 42 | </script> |
43 | @endsection | 43 | @endsection |
44 | 44 | ||
45 | @section('search') | 45 | @section('search') |
46 | @include('admin.find') | 46 | @include('admin.find') |
47 | @endsection | 47 | @endsection |
48 | 48 | ||
49 | @section('content') | 49 | @section('content') |
50 | <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> | 50 | <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> |
51 | <div class="w-full overflow-x-auto"> | 51 | <div class="w-full overflow-x-auto"> |
52 | <table class="w-full whitespace-no-wrap"> | 52 | <table class="w-full whitespace-no-wrap"> |
53 | <thead> | 53 | <thead> |
54 | <tr | 54 | <tr |
55 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" | 55 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" |
56 | > | 56 | > |
57 | <th class="px-4 py-3">№</th> | 57 | <th class="px-4 py-3">№</th> |
58 | <th class="px-4 py-3">Имя</th> | 58 | <th class="px-4 py-3">Имя</th> |
59 | <th class="px-4 py-3">Email/логин</th> | 59 | <th class="px-4 py-3">Email/логин</th> |
60 | <th class="px-4 py-3">Работодатель/работник/администратор</th> | 60 | <th class="px-4 py-3">Работодатель/работник/администратор</th> |
61 | <th class="px-4 py-3">Бан</th> | 61 | <th class="px-4 py-3">Бан</th> |
62 | <th class="px-4 py-3">Новый</th> | 62 | <th class="px-4 py-3">Новый</th> |
63 | @if ($id_admin == 1) | 63 | @if ($id_admin == 1) |
64 | <th class="px-4 py-3">Админ</th> | 64 | <th class="px-4 py-3">Админ</th> |
65 | @endif | 65 | @endif |
66 | <th class="px-4 py-3">Дата регистрации</th> | 66 | <th class="px-4 py-3">Дата регистрации</th> |
67 | </tr> | 67 | </tr> |
68 | </thead> | 68 | </thead> |
69 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | 69 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> |
70 | @foreach($users as $user) | 70 | @foreach($users as $user) |
71 | <tr class="text-gray-700 dark:text-gray-400"> | 71 | <tr class="text-gray-700 dark:text-gray-400"> |
72 | <td class="px-4 py-3"> | 72 | <td class="px-4 py-3"> |
73 | {{$user->id}} | 73 | {{$user->id}} |
74 | </td> | 74 | </td> |
75 | <td class="px-4 py-3"> | 75 | <td class="px-4 py-3"> |
76 | <!--<div class="flex items-center text-sm"> | 76 | <!--<div class="flex items-center text-sm"> |
77 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 77 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
78 | <div | 78 | <div |
79 | class="absolute inset-0 rounded-full shadow-inner" | 79 | class="absolute inset-0 rounded-full shadow-inner" |
80 | aria-hidden="true" | 80 | aria-hidden="true" |
81 | ></div> | 81 | ></div> |
82 | </div> | 82 | </div> |
83 | <div> | 83 | <div> |
84 | <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p> | 84 | <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p> |
85 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 85 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
86 | Все пользователи сайта | 86 | Все пользователи сайта |
87 | </p> | 87 | </p> |
88 | </div> | 88 | </div> |
89 | </div> | 89 | </div> |
90 | --> | 90 | --> |
91 | {{ $user->name }} | 91 | <a style="text-decoration: underline;" href="{{ route('admin.user-profile', ['user' => $user->id]) }}">{{ $user->name }}</a> |
92 | </td> | 92 | </td> |
93 | <td class="px-4 py-3 text-sm"> | 93 | <td class="px-4 py-3 text-sm"> |
94 | {{ $user->email }} | 94 | {{ $user->email }} |
95 | </td> | 95 | </td> |
96 | <td class="px-4 py-3 text-xs"> | 96 | <td class="px-4 py-3 text-xs"> |
97 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 97 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
98 | @if ($user->is_worker) | 98 | @if ($user->is_worker) |
99 | Работник | 99 | Работник |
100 | @else | 100 | @else |
101 | Работодатель | 101 | Работодатель |
102 | @endif | 102 | @endif |
103 | </span> | 103 | </span> |
104 | @if ($user->admin) | 104 | @if ($user->admin) |
105 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> | 105 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> |
106 | Администратор | 106 | Администратор |
107 | </span> | 107 | </span> |
108 | @endif | 108 | @endif |
109 | </td> | 109 | </td> |
110 | <td class="px-4 py-3 text-sm"> | 110 | <td class="px-4 py-3 text-sm"> |
111 | @if ($user->id > 1) | 111 | @if ($user->id > 1) |
112 | <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_ban" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/> | 112 | <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_ban" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/> |
113 | @endif | 113 | @endif |
114 | </td> | 114 | </td> |
115 | 115 | ||
116 | <td class="px-4 py-3 text-sm"> | 116 | <td class="px-4 py-3 text-sm"> |
117 | <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_new" name="new_{{$user->id}}" {{ ($user->is_new) ? "checked" : "" }}/> | 117 | <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_new" name="new_{{$user->id}}" {{ ($user->is_new) ? "checked" : "" }}/> |
118 | </td> | 118 | </td> |
119 | 119 | ||
120 | @if ($id_admin == 1) | 120 | @if ($id_admin == 1) |
121 | <td class="px-4 py-3 text-sm"> | 121 | <td class="px-4 py-3 text-sm"> |
122 | @if ($user->id > 1) | 122 | @if ($user->id > 1) |
123 | <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="admin" name="admin_{{$user->id}}" {{ ($user->admin) ? "checked" : "" }}/> | 123 | <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="admin" name="admin_{{$user->id}}" {{ ($user->admin) ? "checked" : "" }}/> |
124 | @endif | 124 | @endif |
125 | </td> | 125 | </td> |
126 | @endif | 126 | @endif |
127 | 127 | ||
128 | <td class="px-4 py-3 text-sm"> | 128 | <td class="px-4 py-3 text-sm"> |
129 | {{ $user->created_at }} | 129 | {{ $user->created_at }} |
130 | </td> | 130 | </td> |
131 | </tr> | 131 | </tr> |
132 | @endforeach | 132 | @endforeach |
133 | </tbody> | 133 | </tbody> |
134 | </table> | 134 | </table> |
135 | </div> | 135 | </div> |
136 | 136 | ||
137 | <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"> | 137 | <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"> |
138 | <?//=$users->appends($_GET)->links('admin.pagginate'); ?> | 138 | <?//=$users->appends($_GET)->links('admin.pagginate'); ?> |
139 | <?=$users->links('admin.pagginate'); ?> | 139 | <?=$users->links('admin.pagginate'); ?> |
140 | </div> | 140 | </div> |
141 | 141 | ||
142 | 142 | ||
143 | <!--<div | 143 | <!--<div |
144 | 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" | 144 | class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800" |
145 | > | 145 | > |
146 | <span class="flex items-center col-span-3"> | 146 | <span class="flex items-center col-span-3"> |
147 | Showing 21-30 of 100 | 147 | Showing 21-30 of 100 |
148 | </span> | 148 | </span> |
149 | <span class="col-span-2"></span> | 149 | <span class="col-span-2"></span> |
150 | 150 | ||
151 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> | 151 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> |
152 | <nav aria-label="Table navigation"> | 152 | <nav aria-label="Table navigation"> |
153 | <ul class="inline-flex items-center"> | 153 | <ul class="inline-flex items-center"> |
154 | <li> | 154 | <li> |
155 | <button | 155 | <button |
156 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" | 156 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" |
157 | aria-label="Previous" | 157 | aria-label="Previous" |
158 | > | 158 | > |
159 | <svg | 159 | <svg |
160 | aria-hidden="true" | 160 | aria-hidden="true" |
161 | class="w-4 h-4 fill-current" | 161 | class="w-4 h-4 fill-current" |
162 | viewBox="0 0 20 20" | 162 | viewBox="0 0 20 20" |
163 | > | 163 | > |
164 | <path | 164 | <path |
165 | 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" | 165 | 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" |
166 | clip-rule="evenodd" | 166 | clip-rule="evenodd" |
167 | fill-rule="evenodd" | 167 | fill-rule="evenodd" |
168 | ></path> | 168 | ></path> |
169 | </svg> | 169 | </svg> |
170 | </button> | 170 | </button> |
171 | </li> | 171 | </li> |
172 | <li> | 172 | <li> |
173 | <button | 173 | <button |
174 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 174 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
175 | > | 175 | > |
176 | 1 | 176 | 1 |
177 | </button> | 177 | </button> |
178 | </li> | 178 | </li> |
179 | <li> | 179 | <li> |
180 | <button | 180 | <button |
181 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 181 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
182 | > | 182 | > |
183 | 2 | 183 | 2 |
184 | </button> | 184 | </button> |
185 | </li> | 185 | </li> |
186 | <li> | 186 | <li> |
187 | <button | 187 | <button |
188 | 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" | 188 | 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" |
189 | > | 189 | > |
190 | 3 | 190 | 3 |
191 | </button> | 191 | </button> |
192 | </li> | 192 | </li> |
193 | <li> | 193 | <li> |
194 | <button | 194 | <button |
195 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 195 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
196 | > | 196 | > |
197 | 4 | 197 | 4 |
198 | </button> | 198 | </button> |
199 | </li> | 199 | </li> |
200 | <li> | 200 | <li> |
201 | <span class="px-3 py-1">...</span> | 201 | <span class="px-3 py-1">...</span> |
202 | </li> | 202 | </li> |
203 | <li> | 203 | <li> |
204 | <button | 204 | <button |
205 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 205 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
206 | > | 206 | > |
207 | 8 | 207 | 8 |
208 | </button> | 208 | </button> |
209 | </li> | 209 | </li> |
210 | <li> | 210 | <li> |
211 | <button | 211 | <button |
212 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 212 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
213 | > | 213 | > |
214 | 9 | 214 | 9 |
215 | </button> | 215 | </button> |
216 | </li> | 216 | </li> |
217 | <li> | 217 | <li> |
218 | <button | 218 | <button |
219 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" | 219 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" |
220 | aria-label="Next" | 220 | aria-label="Next" |
221 | > | 221 | > |
222 | <svg | 222 | <svg |
223 | class="w-4 h-4 fill-current" | 223 | class="w-4 h-4 fill-current" |
224 | aria-hidden="true" | 224 | aria-hidden="true" |
225 | viewBox="0 0 20 20" | 225 | viewBox="0 0 20 20" |
226 | > | 226 | > |
227 | <path | 227 | <path |
228 | 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" | 228 | 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" |
229 | clip-rule="evenodd" | 229 | clip-rule="evenodd" |
230 | fill-rule="evenodd" | 230 | fill-rule="evenodd" |
231 | ></path> | 231 | ></path> |
232 | </svg> | 232 | </svg> |
233 | </button> | 233 | </button> |
234 | </li> | 234 | </li> |
235 | </ul> | 235 | </ul> |
236 | </nav> | 236 | </nav> |
237 | </span> | 237 | </span> |
238 | </div>--> | 238 | </div>--> |
239 | </div> | 239 | </div> |
240 | 240 | ||
241 | <?//=$users->appends($_GET)->links('catalogs.paginate'); ?> | 241 | <?//=$users->appends($_GET)->links('catalogs.paginate'); ?> |
242 | 242 | ||
243 | 243 | ||
244 | @endsection | 244 | @endsection |
245 | 245 |
resources/views/admin/users/profile.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Профиль '.$user->name]) | 1 | @extends('layout.admin', ['title' => 'Админка - Профиль '.$user->name]) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | 4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> |
5 | Личные данные пользователя "{{$user->name}} ({{$user->id}})" | 5 | Личные данные пользователя "{{$user->name}} ({{$user->id}})" |
6 | </h4> | 6 | </h4> |
7 | <form method="POST" action=""> | 7 | <form method="POST" action=""> |
8 | @csrf | 8 | @csrf |
9 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 9 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
10 | <label class="block text-sm"> | 10 | <label class="block text-sm"> |
11 | <span class="text-gray-700 dark:text-gray-400">Имя/Псевдоним/Имя компании</span> | 11 | <span class="text-gray-700 dark:text-gray-400">Имя/Псевдоним/Имя компании</span> |
12 | <input name="name" id="name" | 12 | <input name="name" id="name" |
13 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 13 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
14 | placeholder="Псевдоним для админки" value="{{ old('name') ?? $user->name ?? '' }}" | 14 | placeholder="Псевдоним для админки" value="{{ old('name') ?? $user->name ?? '' }}" |
15 | /> | 15 | /> |
16 | @error('name') | 16 | @error('name') |
17 | <span class="text-xs text-red-600 dark:text-red-400"> | 17 | <span class="text-xs text-red-600 dark:text-red-400"> |
18 | {{ $message }} | 18 | {{ $message }} |
19 | </span> | 19 | </span> |
20 | @enderror | 20 | @enderror |
21 | </label><br> | 21 | </label><br> |
22 | 22 | ||
23 | <!--<label class="block text-sm"> | 23 | <!--<label class="block text-sm"> |
24 | <span class="text-gray-700 dark:text-gray-400">Email</span> | 24 | <span class="text-gray-700 dark:text-gray-400">Email</span> |
25 | <input name="email" id="email" | 25 | <input name="email" id="email" |
26 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 26 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
27 | placeholder="Почта" value="{{ old('email') ?? $user->email ?? '' }}" | 27 | placeholder="Почта" value="{{ old('email') ?? $user->email ?? '' }}" |
28 | /> | 28 | /> |
29 | @error('email') | 29 | @error('email') |
30 | <span class="text-xs text-red-600 dark:text-red-400"> | 30 | <span class="text-xs text-red-600 dark:text-red-400"> |
31 | {{ $message }} | 31 | {{ $message }} |
32 | </span> | 32 | </span> |
33 | @enderror | 33 | @enderror |
34 | </label><br>--> | 34 | </label><br>--> |
35 | 35 | ||
36 | <label class="block text-sm"> | 36 | <label class="block text-sm"> |
37 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> | 37 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> |
38 | <input name="telephone" id="telephone" | 38 | <input name="telephone" id="telephone" |
39 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 39 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
40 | placeholder="Телефон" value="{{ old('telephone') ?? $user->telephone ?? '' }}" | 40 | placeholder="Телефон" value="{{ old('telephone') ?? $user->telephone ?? '' }}" |
41 | /> | 41 | /> |
42 | @error('telephone') | 42 | @error('telephone') |
43 | <span class="text-xs text-red-600 dark:text-red-400"> | 43 | <span class="text-xs text-red-600 dark:text-red-400"> |
44 | {{ $message }} | 44 | {{ $message }} |
45 | </span> | 45 | </span> |
46 | @enderror | 46 | @enderror |
47 | </label><br> | 47 | </label><br> |
48 | 48 | ||
49 | <label class="block text-sm"> | 49 | <label class="block text-sm"> |
50 | <span class="text-gray-700 dark:text-gray-400">Фамилия</span> | 50 | <span class="text-gray-700 dark:text-gray-400">Фамилия</span> |
51 | <input name="surname" id="surname" | 51 | <input name="surname" id="surname" |
52 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 52 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
53 | placeholder="Фамилия" value="{{ old('surname') ?? $user->surname ?? '' }}" | 53 | placeholder="Фамилия" value="{{ old('surname') ?? $user->surname ?? '' }}" |
54 | /> | 54 | /> |
55 | @error('surname') | 55 | @error('surname') |
56 | <span class="text-xs text-red-600 dark:text-red-400"> | 56 | <span class="text-xs text-red-600 dark:text-red-400"> |
57 | {{ $message }} | 57 | {{ $message }} |
58 | </span> | 58 | </span> |
59 | @enderror | 59 | @enderror |
60 | </label><br> | 60 | </label><br> |
61 | 61 | ||
62 | <label class="block text-sm"> | 62 | <label class="block text-sm"> |
63 | <span class="text-gray-700 dark:text-gray-400">Имя человека</span> | 63 | <span class="text-gray-700 dark:text-gray-400">Имя человека</span> |
64 | <input name="name_man" id="name_man" | 64 | <input name="name_man" id="name_man" |
65 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 65 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
66 | placeholder="Имя человека" value="{{ old('name_man') ?? $user->name_man ?? '' }}" | 66 | placeholder="Имя человека" value="{{ old('name_man') ?? $user->name_man ?? '' }}" |
67 | /> | 67 | /> |
68 | @error('name_man') | 68 | @error('name_man') |
69 | <span class="text-xs text-red-600 dark:text-red-400"> | 69 | <span class="text-xs text-red-600 dark:text-red-400"> |
70 | {{ $message }} | 70 | {{ $message }} |
71 | </span> | 71 | </span> |
72 | @enderror | 72 | @enderror |
73 | </label><br> | 73 | </label><br> |
74 | 74 | ||
75 | <label class="block text-sm"> | 75 | <label class="block text-sm"> |
76 | <span class="text-gray-700 dark:text-gray-400">Отчество</span> | 76 | <span class="text-gray-700 dark:text-gray-400">Отчество</span> |
77 | <input name="surname2" id="surname2" | 77 | <input name="surname2" id="surname2" |
78 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 78 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
79 | placeholder="Отчество" value="{{ old('surname2') ?? $user->surname2 ?? '' }}" | 79 | placeholder="Отчество" value="{{ old('surname2') ?? $user->surname2 ?? '' }}" |
80 | /> | 80 | /> |
81 | @error('surname2') | 81 | @error('surname2') |
82 | <span class="text-xs text-red-600 dark:text-red-400"> | 82 | <span class="text-xs text-red-600 dark:text-red-400"> |
83 | {{ $message }} | 83 | {{ $message }} |
84 | </span> | 84 | </span> |
85 | @enderror | 85 | @enderror |
86 | </label><br> | 86 | </label><br> |
87 | 87 | ||
88 | 88 | ||
89 | 89 | ||
90 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 90 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
91 | <div> | 91 | <div> |
92 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 92 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
93 | Сохранить | 93 | Сохранить |
94 | </button> | 94 | </button> |
95 | </div> | 95 | <a href="{{ route('admin.users') }}" |
96 | <div> | 96 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" |
97 | style="display: -webkit-inline-box; height: 30px!important;" | ||
98 | >Назад</a> | ||
97 | @if ($visible==true) | 99 | @if ($visible==true) |
98 | <a href="{{$link}}" style="padding-bottom: 15px"> | 100 | <a href="{{$link}}" |
99 | {{ $caption }} | 101 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" |
100 | </a> | 102 | style="display: -webkit-inline-box; height: 30px!important;"> |
103 | {{ $caption }} | ||
104 | </a> | ||
101 | @endif | 105 | @endif |
102 | </div> | 106 | </div> |
103 | </div> | 107 | </div> |
104 | </div> | 108 | </div> |
105 | </form> | 109 | </form> |
106 | @endsection | 110 | @endsection |
107 | 111 |
resources/views/admin/worker/edit.blade.php
1 | <?php | ||
2 | use Illuminate\Support\Facades\Storage; | ||
3 | ?> | ||
1 | @extends('layout.admin', ['title' => 'Админка - Редактирование соискателя']) | 4 | @extends('layout.admin', ['title' => 'Админка - Редактирование соискателя']) |
2 | 5 | ||
3 | @section('content') | 6 | @section('content') |
4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | 7 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> |
5 | Соискатель-пользователь: "{{$worker->users->name_man}} ({{$worker->user_id}})" | 8 | Соискатель-пользователь: "{{$worker->users->surname}} {{$worker->users->name_man}} {{$worker->users->surname2}} ({{$worker->user_id}})" |
6 | </h4> | 9 | </h4> |
7 | <form method="POST" action=""> | 10 | <form method="POST" action=""> |
8 | @csrf | 11 | @csrf |
9 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 12 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
10 | <label class="block text-sm"> | 13 | <div class="tabs"> |
11 | <span class="text-gray-700 dark:text-gray-400">Имя компании</span> | 14 | <input type="radio" name="tab-btn" id="tab-btn-1" value="" checked> |
12 | <input name="name_company" id="name_company" | 15 | <label for="tab-btn-1">Общие настройки</label> |
13 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 16 | <input type="radio" name="tab-btn" id="tab-btn-2" value=""> |
14 | placeholder="Имя компании" value="{{ old('name_company') ?? $employer->name_company ?? '' }}" | 17 | <label for="tab-btn-2">Анкета</label> |
15 | /> | 18 | <!--<input type="radio" name="tab-btn" id="tab-btn-3" value=""> |
16 | @error('name_company') | 19 | <label for="tab-btn-3">Вкладка 3</label>--> |
17 | <span class="text-xs text-red-600 dark:text-red-400"> | 20 | <div id="content-1"> |
18 | {{ $message }} | 21 | <label class="block text-sm"> |
19 | </span> | 22 | <span class="text-gray-700 dark:text-gray-400">Должность соискателя</span> |
20 | @enderror | 23 | <select name="position_work" id="position_work" class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"> |
21 | </label><br> | 24 | @foreach($job_titles as $job) |
25 | <option value="{{ $job->id }}" | ||
26 | @if($worker->position_work == $job->id) | ||
27 | selected | ||
28 | @endif | ||
29 | >{{ $job->name }} ({{ $job->id }})</option> | ||
30 | @endforeach | ||
31 | </select> | ||
32 | @error('position_work') | ||
33 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
34 | {{ $message }} | ||
35 | </span> | ||
36 | @enderror | ||
37 | </label><br> | ||
22 | 38 | ||
23 | <label class="block text-sm"> | 39 | <label class="block text-sm"> |
24 | <span class="text-gray-700 dark:text-gray-400">Email</span> | 40 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Избранный кандидат </p> |
25 | <input name="email" id="email" | 41 | <input type="hidden" name="favorite_user" value="0" /> |
26 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 42 | <input name="favorite_user" <? if ($worker->favorite_user) echo "checked";?> |
27 | placeholder="Почта" value="{{ old('email') ?? $worker->email ?? '' }}" | 43 | class="block 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 " |
28 | /> | 44 | placeholder="" type="checkbox" value="1" |
29 | @error('email') | 45 | /><br> |
30 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
31 | {{ $message }} | ||
32 | </span> | ||
33 | @enderror | ||
34 | </label><br> | ||
35 | 46 | ||
36 | <label class="block text-sm"> | 47 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Срочный кандидат</p> |
37 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> | 48 | <input type="hidden" name="sroch_user" value="0" /> |
38 | <input name="telephone" id="telephone" | 49 | <input name="sroch_user" id="sroch_user" <? if ($worker->sroch_user) echo "checked";?> |
39 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 50 | class="block 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 " |
40 | placeholder="Телефон" value="{{ old('telephone') ?? $worker->telephone ?? '' }}" | 51 | placeholder="" type="checkbox" value="1" |
41 | /> | 52 | /><br> |
42 | @error('telephone') | ||
43 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
44 | {{ $message }} | ||
45 | </span> | ||
46 | @enderror | ||
47 | </label><br> | ||
48 | 53 | ||
49 | <label class="block text-sm"> | 54 | </label> |
50 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> | ||
51 | <input name="address" id="address" | ||
52 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
53 | placeholder="Адрес" value="{{ old('address') ?? $worker->address ?? '' }}" | ||
54 | /> | ||
55 | @error('address') | ||
56 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
57 | {{ $message }} | ||
58 | </span> | ||
59 | @enderror | ||
60 | </label><br> | ||
61 | 55 | ||
62 | <label class="block text-sm"> | 56 | <label class="block text-sm"> |
63 | <span class="text-gray-700 dark:text-gray-400">Город</span> | 57 | <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Анкета действительна до <span style="color:#333">{{ $time_end_anketa }}</span></p> |
64 | <input name="city" id="city" | ||
65 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
66 | placeholder="Город" value="{{ old('city') ?? $worker->site ?? '' }}" | ||
67 | /> | ||
68 | @error('city') | ||
69 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
70 | {{ $message }} | ||
71 | </span> | ||
72 | @enderror | ||
73 | </label><br> | ||
74 | 58 | ||
75 | <label class="block text-sm"> | 59 | </label><br> |
76 | <span class="text-gray-700 dark:text-gray-400">Фото</span> | 60 | </div> |
61 | <div id="content-2"> | ||
62 | <label class="block text-sm"> | ||
63 | <span class="text-gray-700 dark:text-gray-400">Email</span> | ||
64 | <input name="email" id="email" | ||
65 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
66 | placeholder="Почта" value="{{ old('email') ?? $worker->email ?? '' }}" | ||
67 | /> | ||
68 | @error('email') | ||
69 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
70 | {{ $message }} | ||
71 | </span> | ||
72 | @enderror | ||
73 | </label><br> | ||
77 | 74 | ||
78 | <input name="photo" id="photo" type="file" | 75 | <label class="block text-sm"> |
79 | 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" | 76 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> |
80 | placeholder="Фото" value="" | 77 | <input name="telephone" id="telephone" |
81 | /> | 78 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
82 | @isset('photo') | 79 | placeholder="Телефон" value="{{ old('telephone') ?? $worker->telephone ?? '' }}" |
83 | <img src="<?=asset(Storage::url($worker->photo))?>" width="150"/> | 80 | /> |
84 | @endisset | 81 | @error('telephone') |
85 | @error('logo') | 82 | <span class="text-xs text-red-600 dark:text-red-400"> |
86 | <span class="text-xs text-red-600 dark:text-red-400"> | 83 | {{ $message }} |
87 | {{ $message }} | 84 | </span> |
88 | </span> | 85 | @enderror |
89 | @enderror | 86 | </label><br> |
90 | </label><br> | ||
91 | 87 | ||
92 | <label class="block text-sm"> | 88 | <label class="block text-sm"> |
93 | <span class="text-gray-700 dark:text-gray-400">Согласие на обработку данных</span> | 89 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> |
94 | <input name="email_data" id="email_data" <? if ($worker->email_data) echo "checked"; ?> | 90 | <input name="address" id="address" |
95 | 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" | 91 | 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" |
96 | placeholder="" | 92 | placeholder="Адрес" value="{{ old('address') ?? $worker->address ?? '' }}" |
97 | /> | 93 | /> |
98 | @error('email_data') | 94 | @error('address') |
99 | <span class="text-xs text-red-600 dark:text-red-400"> | 95 | <span class="text-xs text-red-600 dark:text-red-400"> |
100 | {{ $message }} | 96 | {{ $message }} |
101 | </span> | 97 | </span> |
102 | @enderror | 98 | @enderror |
103 | </label><br> | 99 | </label><br> |
100 | |||
101 | <label class="block text-sm"> | ||
102 | <span class="text-gray-700 dark:text-gray-400">Город</span> | ||
103 | <input name="city" id="city" | ||
104 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
105 | placeholder="Город" value="{{ old('city') ?? $worker->city ?? '' }}" | ||
106 | /> | ||
107 | @error('city') | ||
108 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
109 | {{ $message }} | ||
110 | </span> | ||
111 | @enderror | ||
112 | </label><br> | ||
104 | 113 | ||
105 | <label class="block mt-4 text-sm"> | 114 | <label class="block text-sm"> |
106 | <span class="text-gray-700 dark:text-gray-400">Описание</span> | 115 | <span class="text-gray-700 dark:text-gray-400">Фото</span> |
107 | <textarea name="text" id="text" | ||
108 | 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" | ||
109 | rows="3" | ||
110 | placeholder="Описание компании" | ||
111 | >{{ old('text') ?? $worker->text ?? '' }}</textarea> | ||
112 | </label> | ||
113 | 116 | ||
117 | <input name="photo" id="photo" type="file" | ||
118 | 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" | ||
119 | placeholder="Фото" value="" | ||
120 | /> | ||
121 | @isset($worker->photo) | ||
122 | <img src="<?=asset(Storage::url($worker->photo))?>" width="150"/> | ||
123 | @endisset | ||
124 | @error('logo') | ||
125 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
126 | {{ $message }} | ||
127 | </span> | ||
128 | @enderror | ||
129 | </label><br> | ||
130 | |||
131 | <label class="block text-sm"> | ||
132 | <span class="text-gray-700 dark:text-gray-400">Согласие на рассылку</span> | ||
133 | <input type="hidden" name="email_data" value="0" /> | ||
134 | <input name="email_data" id="email_data" @php if ($worker->email_data) echo "checked"; @endphp | ||
135 | placeholder="" | ||
136 | type="checkbox" | ||
137 | value="1" | ||
138 | /> | ||
139 | </label> | ||
140 | |||
141 | <label class="block mt-4 text-sm"> | ||
142 | <span class="text-gray-700 dark:text-gray-400">Об соискателе</span> | ||
143 | <textarea name="text" id="text" | ||
144 | 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" | ||
145 | rows="3" | ||
146 | placeholder="О соискателе" | ||
147 | >{{ old('text') ?? $worker->text ?? '' }}</textarea> | ||
148 | </label> | ||
149 | </div> | ||
150 | <div id="content-3"> | ||
151 | |||
152 | </div> | ||
153 | </div><br> | ||
114 | 154 | ||
115 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 155 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
116 | <div> | 156 | <div> |
117 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 157 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
118 | Сохранить | 158 | Сохранить |
119 | </button> | 159 | </button> |
160 | <a href="{{ route('admin.workers') }}" | ||
161 | class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
162 | style="display: -webkit-inline-box; height: 30px!important;" | ||
163 | >Назад</a> | ||
120 | </div> | 164 | </div> |
121 | </div> | 165 | </div> |
122 | </div> | 166 | </div> |
123 | </form> | 167 | </form> |
124 | <!-- | 168 | <!-- |
125 | <label class="block mt-4 text-sm"> | 169 | <label class="block mt-4 text-sm"> |
126 | <span class="text-gray-700 dark:text-gray-400"> | 170 | <span class="text-gray-700 dark:text-gray-400"> |
127 | Requested Limit | 171 | Requested Limit |
128 | </span> | 172 | </span> |
129 | <select | 173 | <select |
130 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 174 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
131 | > | 175 | > |
132 | <option>$1,000</option> | 176 | <option>$1,000</option> |
133 | <option>$5,000</option> | 177 | <option>$5,000</option> |
134 | <option>$10,000</option> | 178 | <option>$10,000</option> |
135 | <option>$25,000</option> | 179 | <option>$25,000</option> |
136 | </select> | 180 | </select> |
137 | </label> | 181 | </label> |
138 | 182 | ||
139 | <label class="block mt-4 text-sm"> | 183 | <label class="block mt-4 text-sm"> |
140 | <span class="text-gray-700 dark:text-gray-400"> | 184 | <span class="text-gray-700 dark:text-gray-400"> |
141 | Multiselect | 185 | Multiselect |
142 | </span> | 186 | </span> |
143 | <select | 187 | <select |
144 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 188 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
145 | multiple | 189 | multiple |
146 | > | 190 | > |
147 | <option>Option 1</option> | 191 | <option>Option 1</option> |
148 | <option>Option 2</option> | 192 | <option>Option 2</option> |
149 | <option>Option 3</option> | 193 | <option>Option 3</option> |
150 | <option>Option 4</option> | 194 | <option>Option 4</option> |
151 | <option>Option 5</option> | 195 | <option>Option 5</option> |
152 | </select> | 196 | </select> |
153 | </label> | 197 | </label> |
154 | 198 | ||
155 | <label class="block mt-4 text-sm"> | 199 | <label class="block mt-4 text-sm"> |
156 | <span class="text-gray-700 dark:text-gray-400">Message</span> | 200 | <span class="text-gray-700 dark:text-gray-400">Message</span> |
157 | <textarea | 201 | <textarea |
158 | 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" | 202 | 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" |
159 | rows="3" | 203 | rows="3" |
160 | placeholder="Enter some long form content." | 204 | placeholder="Enter some long form content." |
161 | ></textarea> | 205 | ></textarea> |
162 | </label> | 206 | </label> |
163 | 207 | ||
164 | <div class="flex mt-6 text-sm"> | 208 | <div class="flex mt-6 text-sm"> |
165 | <label class="flex items-center dark:text-gray-400"> | 209 | <label class="flex items-center dark:text-gray-400"> |
166 | <input | 210 | <input |
167 | type="checkbox" | 211 | type="checkbox" |
168 | class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 212 | class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
169 | /> | 213 | /> |
170 | <span class="ml-2"> | 214 | <span class="ml-2"> |
171 | I agree to the | 215 | I agree to the |
172 | <span class="underline">privacy policy</span> | 216 | <span class="underline">privacy policy</span> |
173 | </span> | 217 | </span> |
174 | </label> | 218 | </label> |
175 | </div> | 219 | </div> |
176 | </div> | 220 | </div> |
177 | 221 | ||
178 | <!-- Validation inputs --> | 222 | <!-- Validation inputs --> |
179 | <!--<h4 | 223 | <!--<h4 |
180 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 224 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
181 | > | 225 | > |
182 | Validation | 226 | Validation |
183 | </h4> | 227 | </h4> |
184 | <div | 228 | <div |
185 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 229 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
186 | > | 230 | > |
187 | <!-- Invalid input --> | 231 | <!-- Invalid input --> |
188 | <!--<label class="block text-sm"> | 232 | <!--<label class="block text-sm"> |
189 | <span class="text-gray-700 dark:text-gray-400"> | 233 | <span class="text-gray-700 dark:text-gray-400"> |
190 | Invalid input | 234 | Invalid input |
191 | </span> | 235 | </span> |
192 | <input | 236 | <input |
193 | class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" | 237 | class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" |
194 | placeholder="Jane Doe" | 238 | placeholder="Jane Doe" |
195 | /> | 239 | /> |
196 | <span class="text-xs text-red-600 dark:text-red-400"> | 240 | <span class="text-xs text-red-600 dark:text-red-400"> |
197 | Your password is too short. | 241 | Your password is too short. |
198 | </span> | 242 | </span> |
199 | </label> | 243 | </label> |
200 | 244 | ||
201 | <!-- Valid input --> | 245 | <!-- Valid input --> |
202 | <!--<label class="block mt-4 text-sm"> | 246 | <!--<label class="block mt-4 text-sm"> |
203 | <span class="text-gray-700 dark:text-gray-400"> | 247 | <span class="text-gray-700 dark:text-gray-400"> |
204 | Valid input | 248 | Valid input |
205 | </span> | 249 | </span> |
206 | <input | 250 | <input |
207 | class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" | 251 | class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" |
208 | placeholder="Jane Doe" | 252 | placeholder="Jane Doe" |
209 | /> | 253 | /> |
210 | <span class="text-xs text-green-600 dark:text-green-400"> | 254 | <span class="text-xs text-green-600 dark:text-green-400"> |
211 | Your password is strong. | 255 | Your password is strong. |
212 | </span> | 256 | </span> |
213 | </label> | 257 | </label> |
214 | 258 | ||
215 | <!-- Helper text --> | 259 | <!-- Helper text --> |
216 | <!--<label class="block mt-4 text-sm"> | 260 | <!--<label class="block mt-4 text-sm"> |
217 | <span class="text-gray-700 dark:text-gray-400"> | 261 | <span class="text-gray-700 dark:text-gray-400"> |
218 | Helper text | 262 | Helper text |
219 | </span> | 263 | </span> |
220 | <input | 264 | <input |
221 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 265 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
222 | placeholder="Jane Doe" | 266 | placeholder="Jane Doe" |
223 | /> | 267 | /> |
224 | <span class="text-xs text-gray-600 dark:text-gray-400"> | 268 | <span class="text-xs text-gray-600 dark:text-gray-400"> |
225 | Your password must be at least 6 characters long. | 269 | Your password must be at least 6 characters long. |
226 | </span> | 270 | </span> |
227 | </label> | 271 | </label> |
228 | </div> | 272 | </div> |
229 | 273 | ||
230 | <!-- Inputs with icons --> | 274 | <!-- Inputs with icons --> |
231 | <!--<h4 | 275 | <!--<h4 |
232 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 276 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
233 | > | 277 | > |
234 | Icons | 278 | Icons |
235 | </h4> | 279 | </h4> |
236 | <div | 280 | <div |
237 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 281 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
238 | > | 282 | > |
239 | <label class="block text-sm"> | 283 | <label class="block text-sm"> |
240 | <span class="text-gray-700 dark:text-gray-400">Icon left</span> | 284 | <span class="text-gray-700 dark:text-gray-400">Icon left</span> |
241 | <!-- focus-within sets the color for the icon when input is focused --> | 285 | <!-- focus-within sets the color for the icon when input is focused --> |
242 | <!--<div | 286 | <!--<div |
243 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | 287 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" |
244 | > | 288 | > |
245 | <input | 289 | <input |
246 | class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 290 | class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
247 | placeholder="Jane Doe" | 291 | placeholder="Jane Doe" |
248 | /> | 292 | /> |
249 | <div | 293 | <div |
250 | class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" | 294 | class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" |
251 | > | 295 | > |
252 | <svg | 296 | <svg |
253 | class="w-5 h-5" | 297 | class="w-5 h-5" |
254 | aria-hidden="true" | 298 | aria-hidden="true" |
255 | fill="none" | 299 | fill="none" |
256 | stroke-linecap="round" | 300 | stroke-linecap="round" |
257 | stroke-linejoin="round" | 301 | stroke-linejoin="round" |
258 | stroke-width="2" | 302 | stroke-width="2" |
259 | viewBox="0 0 24 24" | 303 | viewBox="0 0 24 24" |
260 | stroke="currentColor" | 304 | stroke="currentColor" |
261 | > | 305 | > |
262 | <path | 306 | <path |
263 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | 307 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" |
264 | ></path> | 308 | ></path> |
265 | </svg> | 309 | </svg> |
266 | </div> | 310 | </div> |
267 | </div> | 311 | </div> |
268 | </label> | 312 | </label> |
269 | 313 | ||
270 | <label class="block mt-4 text-sm"> | 314 | <label class="block mt-4 text-sm"> |
271 | <span class="text-gray-700 dark:text-gray-400">Icon right</span> | 315 | <span class="text-gray-700 dark:text-gray-400">Icon right</span> |
272 | <!-- focus-within sets the color for the icon when input is focused --> | 316 | <!-- focus-within sets the color for the icon when input is focused --> |
273 | <!--<div | 317 | <!--<div |
274 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | 318 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" |
275 | > | 319 | > |
276 | <input | 320 | <input |
277 | class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 321 | class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
278 | placeholder="Jane Doe" | 322 | placeholder="Jane Doe" |
279 | /> | 323 | /> |
280 | <div | 324 | <div |
281 | class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" | 325 | class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" |
282 | > | 326 | > |
283 | <svg | 327 | <svg |
284 | class="w-5 h-5" | 328 | class="w-5 h-5" |
285 | aria-hidden="true" | 329 | aria-hidden="true" |
286 | fill="none" | 330 | fill="none" |
287 | stroke-linecap="round" | 331 | stroke-linecap="round" |
288 | stroke-linejoin="round" | 332 | stroke-linejoin="round" |
289 | stroke-width="2" | 333 | stroke-width="2" |
290 | viewBox="0 0 24 24" | 334 | viewBox="0 0 24 24" |
291 | stroke="currentColor" | 335 | stroke="currentColor" |
292 | > | 336 | > |
293 | <path | 337 | <path |
294 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | 338 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" |
295 | ></path> | 339 | ></path> |
296 | </svg> | 340 | </svg> |
297 | </div> | 341 | </div> |
298 | </div> | 342 | </div> |
299 | </label> | 343 | </label> |
300 | </div> | 344 | </div> |
301 | 345 | ||
302 | <!-- Inputs with buttons --> | 346 | <!-- Inputs with buttons --> |
303 | <!--<h4 | 347 | <!--<h4 |
304 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 348 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
305 | > | 349 | > |
306 | Buttons | 350 | Buttons |
307 | </h4> | 351 | </h4> |
308 | <div | 352 | <div |
309 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 353 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
resources/views/admin/worker/index.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Работники']) | 1 | @extends('layout.admin', ['title' => 'Админка - Работники']) |
2 | 2 | ||
3 | @section('script') | 3 | @section('script') |
4 | <script> | 4 | <script> |
5 | $(document).ready(function() { | 5 | $(document).ready(function() { |
6 | $(document).on('click', '.checkban', function () { | 6 | $(document).on('click', '.checkban', function () { |
7 | var this_ = $(this); | 7 | var this_ = $(this); |
8 | var value = this_.val(); | 8 | var value = this_.val(); |
9 | var ajax_block = $('#ajax_block'); | 9 | var ajax_block = $('#ajax_block'); |
10 | var bool = 0; | 10 | var bool = 0; |
11 | 11 | ||
12 | if(this.checked){ | 12 | if(this.checked){ |
13 | bool = 1; | 13 | bool = 1; |
14 | } else { | 14 | } else { |
15 | bool = 0; | 15 | bool = 0; |
16 | } | 16 | } |
17 | 17 | ||
18 | $.ajax({ | 18 | $.ajax({ |
19 | type: "GET", | 19 | type: "GET", |
20 | url: "{{ url()->full()}}", | 20 | url: "{{ url()->full()}}", |
21 | data: "id=" + value + "&is_ban=" + bool, | 21 | data: "id=" + value + "&is_ban=" + bool, |
22 | success: function (data) { | 22 | success: function (data) { |
23 | console.log('Обновление таблицы работников '); | 23 | console.log('Обновление таблицы работников '); |
24 | //data = JSON.parse(data); | 24 | //data = JSON.parse(data); |
25 | console.log(data); | 25 | console.log(data); |
26 | ajax_block.html(data); | 26 | ajax_block.html(data); |
27 | }, | 27 | }, |
28 | headers: { | 28 | headers: { |
29 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 29 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
30 | }, | 30 | }, |
31 | error: function (data) { | 31 | error: function (data) { |
32 | console.log('Error: ' + data); | 32 | console.log('Error: ' + data); |
33 | } | 33 | } |
34 | }); | 34 | }); |
35 | }); | 35 | }); |
36 | 36 | ||
37 | }); | 37 | }); |
38 | </script> | 38 | </script> |
39 | @endsection | 39 | @endsection |
40 | 40 | ||
41 | @section('search') | 41 | @section('search') |
42 | @include('admin.find') | 42 | @include('admin.find') |
43 | @endsection | 43 | @endsection |
44 | 44 | ||
45 | @section('content') | 45 | @section('content') |
46 | <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"> |
47 | <div class="w-full overflow-x-auto"> | 47 | <div class="w-full overflow-x-auto"> |
48 | <table class="w-full whitespace-no-wrap"> | 48 | <table class="w-full whitespace-no-wrap"> |
49 | <thead> | 49 | <thead> |
50 | <tr | 50 | <tr |
51 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" | 51 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" |
52 | > | 52 | > |
53 | <th class="px-4 py-3">№</th> | 53 | <th class="px-4 py-3">№</th> |
54 | <th class="px-4 py-3">Имя</th> | 54 | <th class="px-4 py-3">Имя</th> |
55 | <th class="px-4 py-3">Email/Телефон</th> | 55 | <th class="px-4 py-3">Email/Телефон</th> |
56 | <th class="px-4 py-3">% заполнения анкеты</th> | 56 | <th class="px-4 py-3">% заполнения анкеты</th> |
57 | <th class="px-4 py-3">Дата регистрации</th> | 57 | <th class="px-4 py-3">Дата регистрации</th> |
58 | <th class="px-4 py-3">Изменить</th> | 58 | <th class="px-4 py-3">Изменить</th> |
59 | <th class="px-4 py-3">Бан</th> | 59 | <th class="px-4 py-3">Бан</th> |
60 | </tr> | 60 | </tr> |
61 | </thead> | 61 | </thead> |
62 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | 62 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> |
63 | @foreach($users as $user) | 63 | @foreach($users as $user) |
64 | <tr class="text-gray-700 dark:text-gray-400"> | 64 | <tr class="text-gray-700 dark:text-gray-400"> |
65 | <td class="px-4 py-3"> | 65 | <td class="px-4 py-3"> |
66 | {{$user->id}} | 66 | {{$user->id}} |
67 | </td> | 67 | </td> |
68 | <td class="px-4 py-3"> | 68 | <td class="px-4 py-3"> |
69 | {{ !empty($user->name_man) ? $user->name_man : $user->name }} | 69 | {{ !empty($user->name_man) ? $user->name_man : $user->name }} |
70 | </td> | 70 | </td> |
71 | <td class="px-4 py-3 text-sm"> | 71 | <td class="px-4 py-3 text-sm"> |
72 | <div class="flex items-center text-sm"> | 72 | <div class="flex items-center text-sm"> |
73 | <div> | 73 | <div> |
74 | <p class="font-semibold">{{ empty($user->workers->email) ? $user->email : $user->workers->email }}</p> | 74 | <p class="font-semibold">{{ empty($user->workers->email) ? $user->email : $user->workers->email }}</p> |
75 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 75 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
76 | {{ empty($user->workers->telephone) ? $user->telephone : $user->workers->telephone }} | 76 | {{ empty($user->workers->telephone) ? $user->telephone : $user->workers->telephone }} |
77 | </p> | 77 | </p> |
78 | </div> | 78 | </div> |
79 | </div> | 79 | </div> |
80 | </td> | 80 | </td> |
81 | <td class="px-4 py-3 text-xs"> | 81 | <td class="px-4 py-3 text-xs"> |
82 | @if (!empty($user->workers->persent_anketa)) | 82 | @if (!empty($user->workers->persent_anketa)) |
83 | @if ($user->workers->persent_anketa > 40) | 83 | @if ($user->workers->persent_anketa > 40) |
84 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 84 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
85 | {{$user->workers->persent_anketa}}% | 85 | {{$user->workers->persent_anketa}}% |
86 | </span> | 86 | </span> |
87 | @else | 87 | @else |
88 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> | 88 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> |
89 | {{$user->workers->persent_anketa}}% | 89 | {{$user->workers->persent_anketa}}% |
90 | </span> | 90 | </span> |
91 | @endif | 91 | @endif |
92 | @else | 92 | @else |
93 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> | 93 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> |
94 | 10% | 94 | 10% |
95 | </span> | 95 | </span> |
96 | @endif | 96 | @endif |
97 | </td> | 97 | </td> |
98 | <td class="px-4 py-3 text-sm"> | 98 | <td class="px-4 py-3 text-sm"> |
99 | {{ $user->created_at }} | 99 | {{ $user->created_at }} |
100 | </td> | 100 | </td> |
101 | <td class="px-4 py-3 text-sm"> | 101 | <td class="px-4 py-3 text-sm"> |
102 | @if ($user->id > 1) | 102 | @if ($user->id > 1) |
103 | <a href="{{ route('admin.user-profile', ['user' => $user->id]) }}">Изменить</a> | 103 | <a href="{{ route('admin.worker-profile-edit', ['worker' => $user->workers[0]->id]) }}">Изменить</a> |
104 | @endif | 104 | @endif |
105 | </td> | 105 | </td> |
106 | <td class="px-4 py-3 text-sm"> | 106 | <td class="px-4 py-3 text-sm"> |
107 | @if ($user->id > 1) | 107 | @if ($user->id > 1) |
108 | <input type="checkbox" class="checkban" value="{{$user->id}}" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/> | 108 | <input type="checkbox" class="checkban" value="{{$user->id}}" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/> |
109 | @endif | 109 | @endif |
110 | </td> | 110 | </td> |
111 | </tr> | 111 | </tr> |
112 | @endforeach | 112 | @endforeach |
113 | </tbody> | 113 | </tbody> |
114 | </table> | 114 | </table> |
115 | </div> | 115 | </div> |
116 | 116 | ||
117 | <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"> | 117 | <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"> |
118 | <?=$users->appends($_GET)->links('admin.pagginate'); ?> | 118 | <?=$users->appends($_GET)->links('admin.pagginate'); ?> |
119 | </div> | 119 | </div> |
120 | 120 | ||
121 | 121 | ||
122 | <!--<div | 122 | <!--<div |
123 | class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800" | 123 | class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800" |
124 | > | 124 | > |
125 | <span class="flex items-center col-span-3"> | 125 | <span class="flex items-center col-span-3"> |
126 | Showing 21-30 of 100 | 126 | Showing 21-30 of 100 |
127 | </span> | 127 | </span> |
128 | <span class="col-span-2"></span> | 128 | <span class="col-span-2"></span> |
129 | 129 | ||
130 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> | 130 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> |
131 | <nav aria-label="Table navigation"> | 131 | <nav aria-label="Table navigation"> |
132 | <ul class="inline-flex items-center"> | 132 | <ul class="inline-flex items-center"> |
133 | <li> | 133 | <li> |
134 | <button | 134 | <button |
135 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" | 135 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" |
136 | aria-label="Previous" | 136 | aria-label="Previous" |
137 | > | 137 | > |
138 | <svg | 138 | <svg |
139 | aria-hidden="true" | 139 | aria-hidden="true" |
140 | class="w-4 h-4 fill-current" | 140 | class="w-4 h-4 fill-current" |
141 | viewBox="0 0 20 20" | 141 | viewBox="0 0 20 20" |
142 | > | 142 | > |
143 | <path | 143 | <path |
144 | d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" | 144 | d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" |
145 | clip-rule="evenodd" | 145 | clip-rule="evenodd" |
146 | fill-rule="evenodd" | 146 | fill-rule="evenodd" |
147 | ></path> | 147 | ></path> |
148 | </svg> | 148 | </svg> |
149 | </button> | 149 | </button> |
150 | </li> | 150 | </li> |
151 | <li> | 151 | <li> |
152 | <button | 152 | <button |
153 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 153 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
154 | > | 154 | > |
155 | 1 | 155 | 1 |
156 | </button> | 156 | </button> |
157 | </li> | 157 | </li> |
158 | <li> | 158 | <li> |
159 | <button | 159 | <button |
160 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 160 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
161 | > | 161 | > |
162 | 2 | 162 | 2 |
163 | </button> | 163 | </button> |
164 | </li> | 164 | </li> |
165 | <li> | 165 | <li> |
166 | <button | 166 | <button |
167 | class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple" | 167 | class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple" |
168 | > | 168 | > |
169 | 3 | 169 | 3 |
170 | </button> | 170 | </button> |
171 | </li> | 171 | </li> |
172 | <li> | 172 | <li> |
173 | <button | 173 | <button |
174 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 174 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
175 | > | 175 | > |
176 | 4 | 176 | 4 |
177 | </button> | 177 | </button> |
178 | </li> | 178 | </li> |
179 | <li> | 179 | <li> |
180 | <span class="px-3 py-1">...</span> | 180 | <span class="px-3 py-1">...</span> |
181 | </li> | 181 | </li> |
182 | <li> | 182 | <li> |
183 | <button | 183 | <button |
184 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 184 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
185 | > | 185 | > |
186 | 8 | 186 | 8 |
187 | </button> | 187 | </button> |
188 | </li> | 188 | </li> |
189 | <li> | 189 | <li> |
190 | <button | 190 | <button |
191 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 191 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
192 | > | 192 | > |
193 | 9 | 193 | 9 |
194 | </button> | 194 | </button> |
195 | </li> | 195 | </li> |
196 | <li> | 196 | <li> |
197 | <button | 197 | <button |
198 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" | 198 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" |
199 | aria-label="Next" | 199 | aria-label="Next" |
200 | > | 200 | > |
201 | <svg | 201 | <svg |
202 | class="w-4 h-4 fill-current" | 202 | class="w-4 h-4 fill-current" |
203 | aria-hidden="true" | 203 | aria-hidden="true" |
204 | viewBox="0 0 20 20" | 204 | viewBox="0 0 20 20" |
205 | > | 205 | > |
206 | <path | 206 | <path |
207 | d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" | 207 | d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" |
208 | clip-rule="evenodd" | 208 | clip-rule="evenodd" |
209 | fill-rule="evenodd" | 209 | fill-rule="evenodd" |
210 | ></path> | 210 | ></path> |
211 | </svg> | 211 | </svg> |
212 | </button> | 212 | </button> |
213 | </li> | 213 | </li> |
214 | </ul> | 214 | </ul> |
215 | </nav> | 215 | </nav> |
216 | </span> | 216 | </span> |
217 | </div>--> | 217 | </div>--> |
218 | </div> | 218 | </div> |
219 | 219 | ||
220 | <?//=$users->appends($_GET)->links('catalogs.paginate'); ?> | 220 | <?//=$users->appends($_GET)->links('catalogs.paginate'); ?> |
221 | 221 | ||
222 | 222 | ||
223 | @endsection | 223 | @endsection |
224 | 224 |
resources/views/admin/worker/index_ajax.blade.php
1 | <div class="w-full overflow-x-auto"> | 1 | <div class="w-full overflow-x-auto"> |
2 | <table class="w-full whitespace-no-wrap"> | 2 | <table class="w-full whitespace-no-wrap"> |
3 | <thead> | 3 | <thead> |
4 | <tr | 4 | <tr |
5 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" | 5 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" |
6 | > | 6 | > |
7 | <th class="px-4 py-3">№</th> | 7 | <th class="px-4 py-3">№</th> |
8 | <th class="px-4 py-3">Имя</th> | 8 | <th class="px-4 py-3">Имя</th> |
9 | <th class="px-4 py-3">Email/Телефон</th> | 9 | <th class="px-4 py-3">Email/Телефон</th> |
10 | <th class="px-4 py-3">% заполнения анкеты</th> | 10 | <th class="px-4 py-3">% заполнения анкеты</th> |
11 | <th class="px-4 py-3">Дата регистрации</th> | 11 | <th class="px-4 py-3">Дата регистрации</th> |
12 | <th class="px-4 py-3">Изменить</th> | 12 | <th class="px-4 py-3">Изменить</th> |
13 | <th class="px-4 py-3">Бан</th> | 13 | <th class="px-4 py-3">Бан</th> |
14 | </tr> | 14 | </tr> |
15 | </thead> | 15 | </thead> |
16 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | 16 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> |
17 | @foreach($users as $user) | 17 | @foreach($users as $user) |
18 | <tr class="text-gray-700 dark:text-gray-400"> | 18 | <tr class="text-gray-700 dark:text-gray-400"> |
19 | <td class="px-4 py-3"> | 19 | <td class="px-4 py-3"> |
20 | {{$user->id}} | 20 | {{$user->id}} |
21 | </td> | 21 | </td> |
22 | <td class="px-4 py-3"> | 22 | <td class="px-4 py-3"> |
23 | {{ !empty($user->name_man) ? $user->name_man : $user->name }} | 23 | {{ !empty($user->name_man) ? $user->name_man : $user->name }} |
24 | </td> | 24 | </td> |
25 | <td class="px-4 py-3 text-sm"> | 25 | <td class="px-4 py-3 text-sm"> |
26 | <div class="flex items-center text-sm"> | 26 | <div class="flex items-center text-sm"> |
27 | <div> | 27 | <div> |
28 | <p class="font-semibold">{{ empty($user->workers->email) ? $user->email : $user->workers->email }}</p> | 28 | <p class="font-semibold">{{ empty($user->workers->email) ? $user->email : $user->workers->email }}</p> |
29 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 29 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
30 | {{ empty($user->workers->telephone) ? $user->telephone : $user->workers->telephone }} | 30 | {{ empty($user->workers->telephone) ? $user->telephone : $user->workers->telephone }} |
31 | </p> | 31 | </p> |
32 | </div> | 32 | </div> |
33 | </div> | 33 | </div> |
34 | </td> | 34 | </td> |
35 | <td class="px-4 py-3 text-xs"> | 35 | <td class="px-4 py-3 text-xs"> |
36 | @if (!empty($user->workers->persent_anketa)) | 36 | @if (!empty($user->workers->persent_anketa)) |
37 | @if ($user->workers->persent_anketa > 40) | 37 | @if ($user->workers->persent_anketa > 40) |
38 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 38 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
39 | {{$user->workers->persent_anketa}}% | 39 | {{$user->workers->persent_anketa}}% |
40 | </span> | 40 | </span> |
41 | @else | 41 | @else |
42 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> | 42 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> |
43 | {{$user->workers->persent_anketa}}% | 43 | {{$user->workers->persent_anketa}}% |
44 | </span> | 44 | </span> |
45 | @endif | 45 | @endif |
46 | @else | 46 | @else |
47 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> | 47 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> |
48 | 10% | 48 | 10% |
49 | </span> | 49 | </span> |
50 | @endif | 50 | @endif |
51 | </td> | 51 | </td> |
52 | <td class="px-4 py-3 text-sm"> | 52 | <td class="px-4 py-3 text-sm"> |
53 | {{ $user->created_at }} | 53 | {{ $user->created_at }} |
54 | </td> | 54 | </td> |
55 | <td class="px-4 py-3 text-sm"> | 55 | <td class="px-4 py-3 text-sm"> |
56 | @if ($user->id > 1) | 56 | @if ($user->id > 1) |
57 | <a href="{{ route('admin.user-profile', ['user' => $user->id]) }}">Изменить</a> | 57 | <a href="{{ route('admin.worker-profile-edit', ['worker' => $user->workers[0]->id]) }}">Изменить</a> |
58 | @endif | 58 | @endif |
59 | </td> | 59 | </td> |
60 | <td class="px-4 py-3 text-sm"> | 60 | <td class="px-4 py-3 text-sm"> |
61 | @if ($user->id > 1) | 61 | @if ($user->id > 1) |
62 | <input type="checkbox" class="checkban" value="{{$user->id}}" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/> | 62 | <input type="checkbox" class="checkban" value="{{$user->id}}" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/> |
63 | @endif | 63 | @endif |
64 | </td> | 64 | </td> |
65 | </tr> | 65 | </tr> |
66 | @endforeach | 66 | @endforeach |
67 | </tbody> | 67 | </tbody> |
68 | </table> | 68 | </table> |
69 | </div> | 69 | </div> |
70 | 70 | ||
71 | <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"> | 71 | <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"> |
72 | <?=$users->appends($_GET)->links('admin.pagginate'); ?> | 72 | <?=$users->appends($_GET)->links('admin.pagginate'); ?> |
73 | </div> | 73 | </div> |
74 | 74 |
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 | <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" /> | 12 | <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" /> |
13 | <script | 13 | <script |
14 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" | 14 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" |
15 | defer | 15 | defer |
16 | ></script> | 16 | ></script> |
17 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> | 17 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> |
18 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> | 18 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> |
19 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> | 19 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> |
20 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> | 20 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> |
21 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> | 21 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> |
22 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> | 22 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> |
23 | </head> | 23 | </head> |
24 | <body> | 24 | <body> |
25 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> | 25 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> |
26 | <!-- Desktop sidebar --> | 26 | <!-- Desktop sidebar --> |
27 | <aside | 27 | <aside |
28 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" | 28 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" |
29 | > | 29 | > |
30 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 30 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
31 | <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" | 31 | <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" |
32 | href="{{ route('admin.index') }}"> | 32 | href="{{ route('admin.index') }}"> |
33 | Админка | 33 | Админка |
34 | </a> | 34 | </a> |
35 | <ul class="mt-6"> | 35 | <ul class="mt-6"> |
36 | <li class="relative px-6 py-3"> | 36 | <li class="relative px-6 py-3"> |
37 | <span | 37 | <span |
38 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" | 38 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" |
39 | aria-hidden="true" | 39 | aria-hidden="true" |
40 | ></span> | 40 | ></span> |
41 | <a | 41 | <a |
42 | 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 | class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" |
43 | href="{{ route('admin.index') }}" | 43 | href="{{ route('admin.index') }}" |
44 | > | 44 | > |
45 | <svg | 45 | <svg |
46 | class="w-5 h-5" | 46 | class="w-5 h-5" |
47 | aria-hidden="true" | 47 | aria-hidden="true" |
48 | fill="none" | 48 | fill="none" |
49 | stroke-linecap="round" | 49 | stroke-linecap="round" |
50 | stroke-linejoin="round" | 50 | stroke-linejoin="round" |
51 | stroke-width="2" | 51 | stroke-width="2" |
52 | viewBox="0 0 24 24" | 52 | viewBox="0 0 24 24" |
53 | stroke="currentColor" | 53 | stroke="currentColor" |
54 | > | 54 | > |
55 | <path | 55 | <path |
56 | 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 | d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" |
57 | ></path> | 57 | ></path> |
58 | </svg> | 58 | </svg> |
59 | <span class="ml-4">Главная страница</span> | 59 | <span class="ml-4">Главная страница</span> |
60 | </a> | 60 | </a> |
61 | </li> | 61 | </li> |
62 | </ul> | 62 | </ul> |
63 | <ul> | 63 | <ul> |
64 | <li class="relative px-6 py-3"> | 64 | <li class="relative px-6 py-3"> |
65 | <a | 65 | <a |
66 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
67 | href="{{ route('admin.users') }}" | 67 | href="{{ route('admin.users') }}" |
68 | > | 68 | > |
69 | <svg | 69 | <svg |
70 | class="w-5 h-5" | 70 | class="w-5 h-5" |
71 | aria-hidden="true" | 71 | aria-hidden="true" |
72 | fill="none" | 72 | fill="none" |
73 | stroke-linecap="round" | 73 | stroke-linecap="round" |
74 | stroke-linejoin="round" | 74 | stroke-linejoin="round" |
75 | stroke-width="2" | 75 | stroke-width="2" |
76 | viewBox="0 0 24 24" | 76 | viewBox="0 0 24 24" |
77 | stroke="currentColor" | 77 | stroke="currentColor" |
78 | > | 78 | > |
79 | <path | 79 | <path |
80 | 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 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" |
81 | ></path> | 81 | ></path> |
82 | </svg> | 82 | </svg> |
83 | <span class="ml-4">Пользователи</span> | 83 | <span class="ml-4">Пользователи</span> |
84 | </a> | 84 | </a> |
85 | </li> | 85 | </li> |
86 | <li class="relative px-6 py-3"> | 86 | <li class="relative px-6 py-3"> |
87 | <a | 87 | <a |
88 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
89 | href="{{ route('admin.employers') }}" | 89 | href="{{ route('admin.employers') }}" |
90 | > | 90 | > |
91 | <svg | 91 | <svg |
92 | class="w-5 h-5" | 92 | class="w-5 h-5" |
93 | aria-hidden="true" | 93 | aria-hidden="true" |
94 | fill="none" | 94 | fill="none" |
95 | stroke-linecap="round" | 95 | stroke-linecap="round" |
96 | stroke-linejoin="round" | 96 | stroke-linejoin="round" |
97 | stroke-width="2" | 97 | stroke-width="2" |
98 | viewBox="0 0 24 24" | 98 | viewBox="0 0 24 24" |
99 | stroke="currentColor" | 99 | stroke="currentColor" |
100 | > | 100 | > |
101 | <path | 101 | <path |
102 | 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 | d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" |
103 | ></path> | 103 | ></path> |
104 | </svg> | 104 | </svg> |
105 | <span class="ml-4">Работодатели</span> | 105 | <span class="ml-4">Работодатели</span> |
106 | </a> | 106 | </a> |
107 | </li> | 107 | </li> |
108 | <li class="relative px-6 py-3"> | 108 | <li class="relative px-6 py-3"> |
109 | <a | 109 | <a |
110 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
111 | href="{{ route('admin.workers') }}" | 111 | href="{{ route('admin.workers') }}" |
112 | > | 112 | > |
113 | <svg | 113 | <svg |
114 | class="w-5 h-5" | 114 | class="w-5 h-5" |
115 | aria-hidden="true" | 115 | aria-hidden="true" |
116 | fill="none" | 116 | fill="none" |
117 | stroke-linecap="round" | 117 | stroke-linecap="round" |
118 | stroke-linejoin="round" | 118 | stroke-linejoin="round" |
119 | stroke-width="2" | 119 | stroke-width="2" |
120 | viewBox="0 0 24 24" | 120 | viewBox="0 0 24 24" |
121 | stroke="currentColor" | 121 | stroke="currentColor" |
122 | > | 122 | > |
123 | <path | 123 | <path |
124 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 124 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
125 | ></path> | 125 | ></path> |
126 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 126 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
127 | </svg> | 127 | </svg> |
128 | <span class="ml-4">Соискатели</span> | 128 | <span class="ml-4">Соискатели</span> |
129 | </a> | 129 | </a> |
130 | </li> | 130 | </li> |
131 | <li class="relative px-6 py-3"> | 131 | <li class="relative px-6 py-3"> |
132 | <a | 132 | <a |
133 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
134 | href="{{ route('admin.ad-employers') }}" | 134 | href="{{ route('admin.ad-employers') }}" |
135 | > | 135 | > |
136 | <svg | 136 | <svg |
137 | class="w-5 h-5" | 137 | class="w-5 h-5" |
138 | aria-hidden="true" | 138 | aria-hidden="true" |
139 | fill="none" | 139 | fill="none" |
140 | stroke-linecap="round" | 140 | stroke-linecap="round" |
141 | stroke-linejoin="round" | 141 | stroke-linejoin="round" |
142 | stroke-width="2" | 142 | stroke-width="2" |
143 | viewBox="0 0 24 24" | 143 | viewBox="0 0 24 24" |
144 | stroke="currentColor" | 144 | stroke="currentColor" |
145 | > | 145 | > |
146 | <path | 146 | <path |
147 | 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 | d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" |
148 | ></path> | 148 | ></path> |
149 | </svg> | 149 | </svg> |
150 | <span class="ml-4">Вакансии</span> | 150 | <span class="ml-4">Вакансии</span> |
151 | </a> | 151 | </a> |
152 | </li> | 152 | </li> |
153 | 153 | ||
154 | <li class="relative px-6 py-3"> | 154 | <li class="relative px-6 py-3"> |
155 | <a | 155 | <a |
156 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 156 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
157 | href="{{ route('admin.messages') }}" | 157 | href="{{ route('admin.messages') }}" |
158 | > | 158 | > |
159 | <svg | 159 | <svg |
160 | class="w-5 h-5" | 160 | class="w-5 h-5" |
161 | aria-hidden="true" | 161 | aria-hidden="true" |
162 | fill="none" | 162 | fill="none" |
163 | stroke-linecap="round" | 163 | stroke-linecap="round" |
164 | stroke-linejoin="round" | 164 | stroke-linejoin="round" |
165 | stroke-width="2" | 165 | stroke-width="2" |
166 | viewBox="0 0 24 24" | 166 | viewBox="0 0 24 24" |
167 | stroke="currentColor" | 167 | stroke="currentColor" |
168 | > | 168 | > |
169 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 169 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
170 | </svg> | 170 | </svg> |
171 | <span class="ml-4">Сообщения</span> | 171 | <span class="ml-4">Сообщения</span> |
172 | </a> | 172 | </a> |
173 | </li> | 173 | </li> |
174 | <li class="relative px-6 py-3"> | 174 | <li class="relative px-6 py-3"> |
175 | <a | 175 | <a |
176 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 176 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
177 | href="{{ route('admin.groups') }}" | 177 | href="{{ route('admin.groups') }}" |
178 | > | 178 | > |
179 | <svg | 179 | <svg |
180 | class="w-5 h-5" | 180 | class="w-5 h-5" |
181 | aria-hidden="true" | 181 | aria-hidden="true" |
182 | fill="none" | 182 | fill="none" |
183 | stroke-linecap="round" | 183 | stroke-linecap="round" |
184 | stroke-linejoin="round" | 184 | stroke-linejoin="round" |
185 | stroke-width="2" | 185 | stroke-width="2" |
186 | viewBox="0 0 24 24" | 186 | viewBox="0 0 24 24" |
187 | stroke="currentColor" | 187 | stroke="currentColor" |
188 | > | 188 | > |
189 | <path | 189 | <path |
190 | 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 | 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" |
191 | ></path> | 191 | ></path> |
192 | </svg> | 192 | </svg> |
193 | <span class="ml-4">Группы пользователей</span> | 193 | <span class="ml-4">Группы пользователей</span> |
194 | </a> | 194 | </a> |
195 | </li> | 195 | </li> |
196 | <li class="relative px-6 py-3"> | 196 | <li class="relative px-6 py-3"> |
197 | <a 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 | <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" |
198 | href="{{ route('admin.roles') }}"> | 198 | href="{{ route('admin.roles') }}"> |
199 | <svg | 199 | <svg |
200 | class="w-5 h-5" | 200 | class="w-5 h-5" |
201 | aria-hidden="true" | 201 | aria-hidden="true" |
202 | fill="none" | 202 | fill="none" |
203 | stroke-linecap="round" | 203 | stroke-linecap="round" |
204 | stroke-linejoin="round" | 204 | stroke-linejoin="round" |
205 | stroke-width="2" | 205 | stroke-width="2" |
206 | viewBox="0 0 24 24" | 206 | viewBox="0 0 24 24" |
207 | stroke="currentColor" | 207 | stroke="currentColor" |
208 | > | 208 | > |
209 | <path | 209 | <path |
210 | 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 | 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" |
211 | ></path> | 211 | ></path> |
212 | </svg> | 212 | </svg> |
213 | <span class="ml-4">Роли пользователей</span> | 213 | <span class="ml-4">Роли пользователей</span> |
214 | </a> | 214 | </a> |
215 | </li> | 215 | </li> |
216 | <li class="relative px-6 py-3"> | 216 | <li class="relative px-6 py-3"> |
217 | <a | 217 | <a |
218 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 218 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
219 | href="{{ route('admin.statics') }}" | 219 | href="{{ route('admin.statics') }}" |
220 | > | 220 | > |
221 | <svg | 221 | <svg |
222 | class="w-5 h-5" | 222 | class="w-5 h-5" |
223 | aria-hidden="true" | 223 | aria-hidden="true" |
224 | fill="none" | 224 | fill="none" |
225 | stroke-linecap="round" | 225 | stroke-linecap="round" |
226 | stroke-linejoin="round" | 226 | stroke-linejoin="round" |
227 | stroke-width="2" | 227 | stroke-width="2" |
228 | viewBox="0 0 24 24" | 228 | viewBox="0 0 24 24" |
229 | stroke="currentColor" | 229 | stroke="currentColor" |
230 | > | 230 | > |
231 | <path | 231 | <path |
232 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 232 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
233 | ></path> | 233 | ></path> |
234 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 234 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
235 | </svg> | 235 | </svg> |
236 | <span class="ml-4">Статистика</span> | 236 | <span class="ml-4">Статистика</span> |
237 | </a> | 237 | </a> |
238 | </li> | 238 | </li> |
239 | <li class="relative px-6 py-3"> | 239 | <li class="relative px-6 py-3"> |
240 | <a | 240 | <a |
241 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
242 | href="{{ route('admin.answers') }}" | 242 | href="{{ route('admin.answers') }}" |
243 | > | 243 | > |
244 | <svg | 244 | <svg |
245 | class="w-5 h-5" | 245 | class="w-5 h-5" |
246 | aria-hidden="true" | 246 | aria-hidden="true" |
247 | fill="none" | 247 | fill="none" |
248 | stroke-linecap="round" | 248 | stroke-linecap="round" |
249 | stroke-linejoin="round" | 249 | stroke-linejoin="round" |
250 | stroke-width="2" | 250 | stroke-width="2" |
251 | viewBox="0 0 24 24" | 251 | viewBox="0 0 24 24" |
252 | stroke="currentColor" | 252 | stroke="currentColor" |
253 | > | 253 | > |
254 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 254 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
255 | </svg> | 255 | </svg> |
256 | <span class="ml-4">Модерация</span> | 256 | <span class="ml-4">Модерация</span> |
257 | </a> | 257 | </a> |
258 | </li> | 258 | </li> |
259 | <!-- Справочники --> | 259 | <!-- Справочники --> |
260 | <li class="relative px-6 py-3" x-data="{ open1: false }"> | 260 | <li class="relative px-6 py-3" x-data="{ open1: false }"> |
261 | <button | 261 | <button |
262 | 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 | 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" |
263 | @click="open1=!open1" | 263 | @click="open1=!open1" |
264 | aria-haspopup="true"> | 264 | aria-haspopup="true"> |
265 | <span class="inline-flex items-center"> | 265 | <span class="inline-flex items-center"> |
266 | <svg | 266 | <svg |
267 | class="w-5 h-5" | 267 | class="w-5 h-5" |
268 | aria-hidden="true" | 268 | aria-hidden="true" |
269 | fill="none" | 269 | fill="none" |
270 | stroke-linecap="round" | 270 | stroke-linecap="round" |
271 | stroke-linejoin="round" | 271 | stroke-linejoin="round" |
272 | stroke-width="2" | 272 | stroke-width="2" |
273 | viewBox="0 0 24 24" | 273 | viewBox="0 0 24 24" |
274 | stroke="currentColor"> | 274 | stroke="currentColor"> |
275 | <path | 275 | <path |
276 | 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 | 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" |
277 | ></path> | 277 | ></path> |
278 | </svg> | 278 | </svg> |
279 | <span class="ml-4">Справочники</span> | 279 | <span class="ml-4">Справочники</span> |
280 | </span> | 280 | </span> |
281 | <svg | 281 | <svg |
282 | class="w-4 h-4" | 282 | class="w-4 h-4" |
283 | aria-hidden="true" | 283 | aria-hidden="true" |
284 | fill="currentColor" | 284 | fill="currentColor" |
285 | viewBox="0 0 20 20" | 285 | viewBox="0 0 20 20" |
286 | > | 286 | > |
287 | <path | 287 | <path |
288 | fill-rule="evenodd" | 288 | fill-rule="evenodd" |
289 | 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 | 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" |
290 | clip-rule="evenodd" | 290 | clip-rule="evenodd" |
291 | ></path> | 291 | ></path> |
292 | </svg> | 292 | </svg> |
293 | </button> | 293 | </button> |
294 | <template x-if="open1"> | 294 | <template x-if="open1"> |
295 | <ul | 295 | <ul |
296 | x-transition:enter="transition-all ease-in-out duration-300" | 296 | x-transition:enter="transition-all ease-in-out duration-300" |
297 | x-transition:enter-start="opacity-25 max-h-0" | 297 | x-transition:enter-start="opacity-25 max-h-0" |
298 | x-transition:enter-end="opacity-100 max-h-xl" | 298 | x-transition:enter-end="opacity-100 max-h-xl" |
299 | x-transition:leave="transition-all ease-in-out duration-300" | 299 | x-transition:leave="transition-all ease-in-out duration-300" |
300 | x-transition:leave-start="opacity-100 max-h-xl" | 300 | x-transition:leave-start="opacity-100 max-h-xl" |
301 | x-transition:leave-end="opacity-0 max-h-0" | 301 | x-transition:leave-end="opacity-0 max-h-0" |
302 | 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 | 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" |
303 | aria-label="submenu" | 303 | aria-label="submenu" |
304 | > | 304 | > |
305 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 305 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
306 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> | 306 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> |
307 | </li> | 307 | </li> |
308 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 308 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
309 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> | 309 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> |
310 | </li> | 310 | </li> |
311 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 311 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
312 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> | 312 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> |
313 | </li> | 313 | </li> |
314 | 314 | ||
315 | </ul> | 315 | </ul> |
316 | </template> | 316 | </template> |
317 | </li> | 317 | </li> |
318 | 318 | ||
319 | 319 | ||
320 | <!-- Редактор --> | 320 | <!-- Редактор --> |
321 | <li class="relative px-6 py-3"> | 321 | <li class="relative px-6 py-3"> |
322 | <button | 322 | <button |
323 | 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 | 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" |
324 | @click="togglePagesMenu" | 324 | @click="togglePagesMenu" |
325 | aria-haspopup="true"> | 325 | aria-haspopup="true"> |
326 | <span class="inline-flex items-center"> | 326 | <span class="inline-flex items-center"> |
327 | <svg | 327 | <svg |
328 | class="w-5 h-5" | 328 | class="w-5 h-5" |
329 | aria-hidden="true" | 329 | aria-hidden="true" |
330 | fill="none" | 330 | fill="none" |
331 | stroke-linecap="round" | 331 | stroke-linecap="round" |
332 | stroke-linejoin="round" | 332 | stroke-linejoin="round" |
333 | stroke-width="2" | 333 | stroke-width="2" |
334 | viewBox="0 0 24 24" | 334 | viewBox="0 0 24 24" |
335 | stroke="currentColor"> | 335 | stroke="currentColor"> |
336 | <path | 336 | <path |
337 | 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 | 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" |
338 | ></path> | 338 | ></path> |
339 | </svg> | 339 | </svg> |
340 | <span class="ml-4">Редактор</span> | 340 | <span class="ml-4">Редактор</span> |
341 | </span> | 341 | </span> |
342 | <svg | 342 | <svg |
343 | class="w-4 h-4" | 343 | class="w-4 h-4" |
344 | aria-hidden="true" | 344 | aria-hidden="true" |
345 | fill="currentColor" | 345 | fill="currentColor" |
346 | viewBox="0 0 20 20" | 346 | viewBox="0 0 20 20" |
347 | > | 347 | > |
348 | <path | 348 | <path |
349 | fill-rule="evenodd" | 349 | fill-rule="evenodd" |
350 | 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 | 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" |
351 | clip-rule="evenodd" | 351 | clip-rule="evenodd" |
352 | ></path> | 352 | ></path> |
353 | </svg> | 353 | </svg> |
354 | </button> | 354 | </button> |
355 | <template x-if="isPagesMenuOpen"> | 355 | <template x-if="isPagesMenuOpen"> |
356 | <ul | 356 | <ul |
357 | x-transition:enter="transition-all ease-in-out duration-300" | 357 | x-transition:enter="transition-all ease-in-out duration-300" |
358 | x-transition:enter-start="opacity-25 max-h-0" | 358 | x-transition:enter-start="opacity-25 max-h-0" |
359 | x-transition:enter-end="opacity-100 max-h-xl" | 359 | x-transition:enter-end="opacity-100 max-h-xl" |
360 | x-transition:leave="transition-all ease-in-out duration-300" | 360 | x-transition:leave="transition-all ease-in-out duration-300" |
361 | x-transition:leave-start="opacity-100 max-h-xl" | 361 | x-transition:leave-start="opacity-100 max-h-xl" |
362 | x-transition:leave-end="opacity-0 max-h-0" | 362 | x-transition:leave-end="opacity-0 max-h-0" |
363 | 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 | 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" |
364 | aria-label="submenu" | 364 | aria-label="submenu" |
365 | > | 365 | > |
366 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 366 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
367 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> | 367 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> |
368 | </li> | 368 | </li> |
369 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 369 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
370 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> | 370 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> |
371 | </li> | 371 | </li> |
372 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 372 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
373 | <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> | 373 | <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> |
374 | </li> | 374 | </li> |
375 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 375 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
376 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> | 376 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> |
377 | </li> | 377 | </li> |
378 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 378 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
379 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> | 379 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> |
380 | </li> | 380 | </li> |
381 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 381 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
382 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> | 382 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> |
383 | </li> | 383 | </li> |
384 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 384 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
385 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> | 385 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> |
386 | </li> | 386 | </li> |
387 | </ul> | 387 | </ul> |
388 | </template> | 388 | </template> |
389 | </li> | 389 | </li> |
390 | 390 | ||
391 | </ul> | 391 | </ul> |
392 | <!--<div class="px-6 my-6"> | 392 | <!--<div class="px-6 my-6"> |
393 | <button | 393 | <button |
394 | 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 | 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" |
395 | > | 395 | > |
396 | Create account | 396 | Create account |
397 | <span class="ml-2" aria-hidden="true">+</span> | 397 | <span class="ml-2" aria-hidden="true">+</span> |
398 | </button> | 398 | </button> |
399 | </div>--> | 399 | </div>--> |
400 | </div> | 400 | </div> |
401 | </aside> | 401 | </aside> |
402 | <!-- Mobile sidebar --> | 402 | <!-- Mobile sidebar --> |
403 | <!-- Backdrop --> | 403 | <!-- Backdrop --> |
404 | <div | 404 | <div |
405 | x-show="isSideMenuOpen" | 405 | x-show="isSideMenuOpen" |
406 | x-transition:enter="transition ease-in-out duration-150" | 406 | x-transition:enter="transition ease-in-out duration-150" |
407 | x-transition:enter-start="opacity-0" | 407 | x-transition:enter-start="opacity-0" |
408 | x-transition:enter-end="opacity-100" | 408 | x-transition:enter-end="opacity-100" |
409 | x-transition:leave="transition ease-in-out duration-150" | 409 | x-transition:leave="transition ease-in-out duration-150" |
410 | x-transition:leave-start="opacity-100" | 410 | x-transition:leave-start="opacity-100" |
411 | x-transition:leave-end="opacity-0" | 411 | x-transition:leave-end="opacity-0" |
412 | class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" | 412 | class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" |
413 | ></div> | 413 | ></div> |
414 | <aside | 414 | <aside |
415 | 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 | 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" |
416 | x-show="isSideMenuOpen" | 416 | x-show="isSideMenuOpen" |
417 | x-transition:enter="transition ease-in-out duration-150" | 417 | x-transition:enter="transition ease-in-out duration-150" |
418 | x-transition:enter-start="opacity-0 transform -translate-x-20" | 418 | x-transition:enter-start="opacity-0 transform -translate-x-20" |
419 | x-transition:enter-end="opacity-100" | 419 | x-transition:enter-end="opacity-100" |
420 | x-transition:leave="transition ease-in-out duration-150" | 420 | x-transition:leave="transition ease-in-out duration-150" |
421 | x-transition:leave-start="opacity-100" | 421 | x-transition:leave-start="opacity-100" |
422 | x-transition:leave-end="opacity-0 transform -translate-x-20" | 422 | x-transition:leave-end="opacity-0 transform -translate-x-20" |
423 | @click.away="closeSideMenu" | 423 | @click.away="closeSideMenu" |
424 | @keydown.escape="closeSideMenu" | 424 | @keydown.escape="closeSideMenu" |
425 | > | 425 | > |
426 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 426 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
427 | <a | 427 | <a |
428 | class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" | 428 | class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" |
429 | href="{{ route('admin.index') }}" | 429 | href="{{ route('admin.index') }}" |
430 | > | 430 | > |
431 | Админка | 431 | Админка |
432 | </a> | 432 | </a> |
433 | <ul class="mt-6"> | 433 | <ul class="mt-6"> |
434 | <li class="relative px-6 py-3"> | 434 | <li class="relative px-6 py-3"> |
435 | <span | 435 | <span |
436 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" | 436 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" |
437 | aria-hidden="true" | 437 | aria-hidden="true" |
438 | ></span> | 438 | ></span> |
439 | <a | 439 | <a |
440 | 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 | 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" |
441 | href="{{ route('admin.index') }}" | 441 | href="{{ route('admin.index') }}" |
442 | > | 442 | > |
443 | <svg | 443 | <svg |
444 | class="w-5 h-5" | 444 | class="w-5 h-5" |
445 | aria-hidden="true" | 445 | aria-hidden="true" |
446 | fill="none" | 446 | fill="none" |
447 | stroke-linecap="round" | 447 | stroke-linecap="round" |
448 | stroke-linejoin="round" | 448 | stroke-linejoin="round" |
449 | stroke-width="2" | 449 | stroke-width="2" |
450 | viewBox="0 0 24 24" | 450 | viewBox="0 0 24 24" |
451 | stroke="currentColor" | 451 | stroke="currentColor" |
452 | > | 452 | > |
453 | <path | 453 | <path |
454 | 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 | 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" |
455 | ></path> | 455 | ></path> |
456 | </svg> | 456 | </svg> |
457 | <span class="ml-4">Главная страница</span> | 457 | <span class="ml-4">Главная страница</span> |
458 | </a> | 458 | </a> |
459 | </li> | 459 | </li> |
460 | </ul> | 460 | </ul> |
461 | <ul> | 461 | <ul> |
462 | <li class="relative px-6 py-3"> | 462 | <li class="relative px-6 py-3"> |
463 | <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 | <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" |
464 | href="{{ route('admin.users') }}"> | 464 | href="{{ route('admin.users') }}"> |
465 | <svg | 465 | <svg |
466 | class="w-5 h-5" | 466 | class="w-5 h-5" |
467 | aria-hidden="true" | 467 | aria-hidden="true" |
468 | fill="none" | 468 | fill="none" |
469 | stroke-linecap="round" | 469 | stroke-linecap="round" |
470 | stroke-linejoin="round" | 470 | stroke-linejoin="round" |
471 | stroke-width="2" | 471 | stroke-width="2" |
472 | viewBox="0 0 24 24" | 472 | viewBox="0 0 24 24" |
473 | stroke="currentColor" | 473 | stroke="currentColor" |
474 | > | 474 | > |
475 | <path | 475 | <path |
476 | 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 | 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" |
477 | ></path> | 477 | ></path> |
478 | </svg> | 478 | </svg> |
479 | <span class="ml-4">Пользователи</span> | 479 | <span class="ml-4">Пользователи</span> |
480 | </a> | 480 | </a> |
481 | </li> | 481 | </li> |
482 | <li class="relative px-6 py-3"> | 482 | <li class="relative px-6 py-3"> |
483 | <a | 483 | <a |
484 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
485 | href="{{ route('admin.employers') }}" | 485 | href="{{ route('admin.employers') }}" |
486 | > | 486 | > |
487 | <svg | 487 | <svg |
488 | class="w-5 h-5" | 488 | class="w-5 h-5" |
489 | aria-hidden="true" | 489 | aria-hidden="true" |
490 | fill="none" | 490 | fill="none" |
491 | stroke-linecap="round" | 491 | stroke-linecap="round" |
492 | stroke-linejoin="round" | 492 | stroke-linejoin="round" |
493 | stroke-width="2" | 493 | stroke-width="2" |
494 | viewBox="0 0 24 24" | 494 | viewBox="0 0 24 24" |
495 | stroke="currentColor" | 495 | stroke="currentColor" |
496 | > | 496 | > |
497 | <path | 497 | <path |
498 | 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 | 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" |
499 | ></path> | 499 | ></path> |
500 | </svg> | 500 | </svg> |
501 | <span class="ml-4">Работодатели</span> | 501 | <span class="ml-4">Работодатели</span> |
502 | </a> | 502 | </a> |
503 | </li> | 503 | </li> |
504 | <li class="relative px-6 py-3"> | 504 | <li class="relative px-6 py-3"> |
505 | <a | 505 | <a |
506 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
507 | href="{{ route('admin.workers') }}" | 507 | href="{{ route('admin.workers') }}" |
508 | > | 508 | > |
509 | <svg | 509 | <svg |
510 | class="w-5 h-5" | 510 | class="w-5 h-5" |
511 | aria-hidden="true" | 511 | aria-hidden="true" |
512 | fill="none" | 512 | fill="none" |
513 | stroke-linecap="round" | 513 | stroke-linecap="round" |
514 | stroke-linejoin="round" | 514 | stroke-linejoin="round" |
515 | stroke-width="2" | 515 | stroke-width="2" |
516 | viewBox="0 0 24 24" | 516 | viewBox="0 0 24 24" |
517 | stroke="currentColor" | 517 | stroke="currentColor" |
518 | > | 518 | > |
519 | <path | 519 | <path |
520 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 520 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
521 | ></path> | 521 | ></path> |
522 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 522 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
523 | </svg> | 523 | </svg> |
524 | <span class="ml-4">Соискатели</span> | 524 | <span class="ml-4">Соискатели</span> |
525 | </a> | 525 | </a> |
526 | </li> | 526 | </li> |
527 | <li class="relative px-6 py-3"> | 527 | <li class="relative px-6 py-3"> |
528 | <a | 528 | <a |
529 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
530 | href="{{ route('admin.ad-employers') }}" | 530 | href="{{ route('admin.ad-employers') }}" |
531 | > | 531 | > |
532 | <svg | 532 | <svg |
533 | class="w-5 h-5" | 533 | class="w-5 h-5" |
534 | aria-hidden="true" | 534 | aria-hidden="true" |
535 | fill="none" | 535 | fill="none" |
536 | stroke-linecap="round" | 536 | stroke-linecap="round" |
537 | stroke-linejoin="round" | 537 | stroke-linejoin="round" |
538 | stroke-width="2" | 538 | stroke-width="2" |
539 | viewBox="0 0 24 24" | 539 | viewBox="0 0 24 24" |
540 | stroke="currentColor" | 540 | stroke="currentColor" |
541 | > | 541 | > |
542 | <path | 542 | <path |
543 | 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 | 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" |
544 | ></path> | 544 | ></path> |
545 | </svg> | 545 | </svg> |
546 | <span class="ml-4">Вакансии</span> | 546 | <span class="ml-4">Вакансии</span> |
547 | </a> | 547 | </a> |
548 | </li> | 548 | </li> |
549 | <li class="relative px-6 py-3"> | 549 | <li class="relative px-6 py-3"> |
550 | <a | 550 | <a |
551 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
552 | href="{{ route('admin.messages') }}" | 552 | href="{{ route('admin.messages') }}" |
553 | > | 553 | > |
554 | <svg | 554 | <svg |
555 | class="w-5 h-5" | 555 | class="w-5 h-5" |
556 | aria-hidden="true" | 556 | aria-hidden="true" |
557 | fill="none" | 557 | fill="none" |
558 | stroke-linecap="round" | 558 | stroke-linecap="round" |
559 | stroke-linejoin="round" | 559 | stroke-linejoin="round" |
560 | stroke-width="2" | 560 | stroke-width="2" |
561 | viewBox="0 0 24 24" | 561 | viewBox="0 0 24 24" |
562 | stroke="currentColor" | 562 | stroke="currentColor" |
563 | > | 563 | > |
564 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 564 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
565 | </svg> | 565 | </svg> |
566 | <span class="ml-4">Сообщения</span> | 566 | <span class="ml-4">Сообщения</span> |
567 | </a> | 567 | </a> |
568 | </li> | 568 | </li> |
569 | <li class="relative px-6 py-3"> | 569 | <li class="relative px-6 py-3"> |
570 | <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 | <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" |
571 | href="{{ route('admin.groups') }}"> | 571 | href="{{ route('admin.groups') }}"> |
572 | <svg | 572 | <svg |
573 | class="w-5 h-5" | 573 | class="w-5 h-5" |
574 | aria-hidden="true" | 574 | aria-hidden="true" |
575 | fill="none" | 575 | fill="none" |
576 | stroke-linecap="round" | 576 | stroke-linecap="round" |
577 | stroke-linejoin="round" | 577 | stroke-linejoin="round" |
578 | stroke-width="2" | 578 | stroke-width="2" |
579 | viewBox="0 0 24 24" | 579 | viewBox="0 0 24 24" |
580 | stroke="currentColor" | 580 | stroke="currentColor" |
581 | > | 581 | > |
582 | <path | 582 | <path |
583 | 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 | 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" |
584 | ></path> | 584 | ></path> |
585 | </svg> | 585 | </svg> |
586 | <span class="ml-4">Группы пользователей</span> | 586 | <span class="ml-4">Группы пользователей</span> |
587 | </a> | 587 | </a> |
588 | </li> | 588 | </li> |
589 | <li class="relative px-6 py-3"> | 589 | <li class="relative px-6 py-3"> |
590 | <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 | <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" |
591 | href="{{ route('admin.roles') }}"> | 591 | href="{{ route('admin.roles') }}"> |
592 | <svg | 592 | <svg |
593 | class="w-5 h-5" | 593 | class="w-5 h-5" |
594 | aria-hidden="true" | 594 | aria-hidden="true" |
595 | fill="none" | 595 | fill="none" |
596 | stroke-linecap="round" | 596 | stroke-linecap="round" |
597 | stroke-linejoin="round" | 597 | stroke-linejoin="round" |
598 | stroke-width="2" | 598 | stroke-width="2" |
599 | viewBox="0 0 24 24" | 599 | viewBox="0 0 24 24" |
600 | stroke="currentColor" | 600 | stroke="currentColor" |
601 | > | 601 | > |
602 | <path | 602 | <path |
603 | 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 | 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" |
604 | ></path> | 604 | ></path> |
605 | </svg> | 605 | </svg> |
606 | <span class="ml-4">Роли пользователей</span> | 606 | <span class="ml-4">Роли пользователей</span> |
607 | </a> | 607 | </a> |
608 | </li> | 608 | </li> |
609 | <li class="relative px-6 py-3"> | 609 | <li class="relative px-6 py-3"> |
610 | <a | 610 | <a |
611 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
612 | href="{{ route('admin.statics') }}" | 612 | href="{{ route('admin.statics') }}" |
613 | > | 613 | > |
614 | <svg | 614 | <svg |
615 | class="w-5 h-5" | 615 | class="w-5 h-5" |
616 | aria-hidden="true" | 616 | aria-hidden="true" |
617 | fill="none" | 617 | fill="none" |
618 | stroke-linecap="round" | 618 | stroke-linecap="round" |
619 | stroke-linejoin="round" | 619 | stroke-linejoin="round" |
620 | stroke-width="2" | 620 | stroke-width="2" |
621 | viewBox="0 0 24 24" | 621 | viewBox="0 0 24 24" |
622 | stroke="currentColor" | 622 | stroke="currentColor" |
623 | > | 623 | > |
624 | <path | 624 | <path |
625 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 625 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
626 | ></path> | 626 | ></path> |
627 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 627 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
628 | </svg> | 628 | </svg> |
629 | <span class="ml-4">Статистика</span> | 629 | <span class="ml-4">Статистика</span> |
630 | </a> | 630 | </a> |
631 | </li> | 631 | </li> |
632 | <li class="relative px-6 py-3"> | 632 | <li class="relative px-6 py-3"> |
633 | <a | 633 | <a |
634 | 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 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
635 | href="{{ route('admin.messages') }}" | 635 | href="{{ route('admin.messages') }}" |
636 | > | 636 | > |
637 | <svg | 637 | <svg |
638 | class="w-5 h-5" | 638 | class="w-5 h-5" |
639 | aria-hidden="true" | 639 | aria-hidden="true" |
640 | fill="none" | 640 | fill="none" |
641 | stroke-linecap="round" | 641 | stroke-linecap="round" |
642 | stroke-linejoin="round" | 642 | stroke-linejoin="round" |
643 | stroke-width="2" | 643 | stroke-width="2" |
644 | viewBox="0 0 24 24" | 644 | viewBox="0 0 24 24" |
645 | stroke="currentColor" | 645 | stroke="currentColor" |
646 | > | 646 | > |
647 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 647 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
648 | </svg> | 648 | </svg> |
649 | <span class="ml-4">Сообщения</span> | 649 | <span class="ml-4">Сообщения</span> |
650 | </a> | 650 | </a> |
651 | </li> | 651 | </li> |
652 | <!-- Справочники --> | 652 | <!-- Справочники --> |
653 | <li class="relative px-6 py-3" x-data="{ open2: false }"> | 653 | <li class="relative px-6 py-3" x-data="{ open2: false }"> |
654 | <button | 654 | <button |
655 | 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 | 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" |
656 | @click="open2=!open2" | 656 | @click="open2=!open2" |
657 | aria-haspopup="true"> | 657 | aria-haspopup="true"> |
658 | <span class="inline-flex items-center"> | 658 | <span class="inline-flex items-center"> |
659 | <svg | 659 | <svg |
660 | class="w-5 h-5" | 660 | class="w-5 h-5" |
661 | aria-hidden="true" | 661 | aria-hidden="true" |
662 | fill="none" | 662 | fill="none" |
663 | stroke-linecap="round" | 663 | stroke-linecap="round" |
664 | stroke-linejoin="round" | 664 | stroke-linejoin="round" |
665 | stroke-width="2" | 665 | stroke-width="2" |
666 | viewBox="0 0 24 24" | 666 | viewBox="0 0 24 24" |
667 | stroke="currentColor"> | 667 | stroke="currentColor"> |
668 | <path | 668 | <path |
669 | 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 | 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" |
670 | ></path> | 670 | ></path> |
671 | </svg> | 671 | </svg> |
672 | <span class="ml-4">Справочники</span> | 672 | <span class="ml-4">Справочники</span> |
673 | </span> | 673 | </span> |
674 | <svg | 674 | <svg |
675 | class="w-4 h-4" | 675 | class="w-4 h-4" |
676 | aria-hidden="true" | 676 | aria-hidden="true" |
677 | fill="currentColor" | 677 | fill="currentColor" |
678 | viewBox="0 0 20 20" | 678 | viewBox="0 0 20 20" |
679 | > | 679 | > |
680 | <path | 680 | <path |
681 | fill-rule="evenodd" | 681 | fill-rule="evenodd" |
682 | 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 | 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" |
683 | clip-rule="evenodd" | 683 | clip-rule="evenodd" |
684 | ></path> | 684 | ></path> |
685 | </svg> | 685 | </svg> |
686 | </button> | 686 | </button> |
687 | <template x-if="open2"> | 687 | <template x-if="open2"> |
688 | <ul | 688 | <ul |
689 | x-transition:enter="transition-all ease-in-out duration-300" | 689 | x-transition:enter="transition-all ease-in-out duration-300" |
690 | x-transition:enter-start="opacity-25 max-h-0" | 690 | x-transition:enter-start="opacity-25 max-h-0" |
691 | x-transition:enter-end="opacity-100 max-h-xl" | 691 | x-transition:enter-end="opacity-100 max-h-xl" |
692 | x-transition:leave="transition-all ease-in-out duration-300" | 692 | x-transition:leave="transition-all ease-in-out duration-300" |
693 | x-transition:leave-start="opacity-100 max-h-xl" | 693 | x-transition:leave-start="opacity-100 max-h-xl" |
694 | x-transition:leave-end="opacity-0 max-h-0" | 694 | x-transition:leave-end="opacity-0 max-h-0" |
695 | 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 | 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" |
696 | aria-label="submenu" | 696 | aria-label="submenu" |
697 | > | 697 | > |
698 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 698 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
699 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> | 699 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> |
700 | </li> | 700 | </li> |
701 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 701 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
702 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> | 702 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> |
703 | </li> | 703 | </li> |
704 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 704 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
705 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> | 705 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> |
706 | </li> | 706 | </li> |
707 | 707 | ||
708 | </ul> | 708 | </ul> |
709 | </template> | 709 | </template> |
710 | </li> | 710 | </li> |
711 | 711 | ||
712 | 712 | ||
713 | <!-- Редактор --> | 713 | <!-- Редактор --> |
714 | <li class="relative px-6 py-3"> | 714 | <li class="relative px-6 py-3"> |
715 | <button | 715 | <button |
716 | 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 | 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" |
717 | @click="togglePagesMenu" | 717 | @click="togglePagesMenu" |
718 | aria-haspopup="true" | 718 | aria-haspopup="true" |
719 | > | 719 | > |
720 | <span class="inline-flex items-center"> | 720 | <span class="inline-flex items-center"> |
721 | <svg | 721 | <svg |
722 | class="w-5 h-5" | 722 | class="w-5 h-5" |
723 | aria-hidden="true" | 723 | aria-hidden="true" |
724 | fill="none" | 724 | fill="none" |
725 | stroke-linecap="round" | 725 | stroke-linecap="round" |
726 | stroke-linejoin="round" | 726 | stroke-linejoin="round" |
727 | stroke-width="2" | 727 | stroke-width="2" |
728 | viewBox="0 0 24 24" | 728 | viewBox="0 0 24 24" |
729 | stroke="currentColor" | 729 | stroke="currentColor" |
730 | > | 730 | > |
731 | <path | 731 | <path |
732 | 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 | 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" |
733 | ></path> | 733 | ></path> |
734 | </svg> | 734 | </svg> |
735 | <span class="ml-4">Редактор</span> | 735 | <span class="ml-4">Редактор</span> |
736 | </span> | 736 | </span> |
737 | <svg | 737 | <svg |
738 | class="w-4 h-4" | 738 | class="w-4 h-4" |
739 | aria-hidden="true" | 739 | aria-hidden="true" |
740 | fill="currentColor" | 740 | fill="currentColor" |
741 | viewBox="0 0 20 20" | 741 | viewBox="0 0 20 20" |
742 | > | 742 | > |
743 | <path | 743 | <path |
744 | fill-rule="evenodd" | 744 | fill-rule="evenodd" |
745 | 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 | 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" |
746 | clip-rule="evenodd" | 746 | clip-rule="evenodd" |
747 | ></path> | 747 | ></path> |
748 | </svg> | 748 | </svg> |
749 | </button> | 749 | </button> |
750 | <template x-if="isPagesMenuOpen"> | 750 | <template x-if="isPagesMenuOpen"> |
751 | <ul | 751 | <ul |
752 | x-transition:enter="transition-all ease-in-out duration-300" | 752 | x-transition:enter="transition-all ease-in-out duration-300" |
753 | x-transition:enter-start="opacity-25 max-h-0" | 753 | x-transition:enter-start="opacity-25 max-h-0" |
754 | x-transition:enter-end="opacity-100 max-h-xl" | 754 | x-transition:enter-end="opacity-100 max-h-xl" |
755 | x-transition:leave="transition-all ease-in-out duration-300" | 755 | x-transition:leave="transition-all ease-in-out duration-300" |
756 | x-transition:leave-start="opacity-100 max-h-xl" | 756 | x-transition:leave-start="opacity-100 max-h-xl" |
757 | x-transition:leave-end="opacity-0 max-h-0" | 757 | x-transition:leave-end="opacity-0 max-h-0" |
758 | 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 | 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" |
759 | aria-label="submenu" | 759 | aria-label="submenu" |
760 | > | 760 | > |
761 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 761 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
762 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> | 762 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> |
763 | </li> | 763 | </li> |
764 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 764 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
765 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> | 765 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> |
766 | </li> | 766 | </li> |
767 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 767 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
768 | <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> | 768 | <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> |
769 | </li> | 769 | </li> |
770 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 770 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
771 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> | 771 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> |
772 | </li> | 772 | </li> |
773 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 773 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
774 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> | 774 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> |
775 | </li> | 775 | </li> |
776 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 776 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
777 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> | 777 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> |
778 | </li> | 778 | </li> |
779 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 779 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
780 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> | 780 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> |
781 | </li> | 781 | </li> |
782 | 782 | ||
783 | </ul> | 783 | </ul> |
784 | </template> | 784 | </template> |
785 | </li> | 785 | </li> |
786 | </ul> | 786 | </ul> |
787 | <!--<div class="px-6 my-6"> | 787 | <!--<div class="px-6 my-6"> |
788 | <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 | <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"> |
789 | Create account | 789 | Create account |
790 | <span class="ml-2" aria-hidden="true">+</span> | 790 | <span class="ml-2" aria-hidden="true">+</span> |
791 | </button> | 791 | </button> |
792 | </div>--> | 792 | </div>--> |
793 | </div> | 793 | </div> |
794 | </aside> | 794 | </aside> |
795 | <div class="flex flex-col flex-1 w-full"> | 795 | <div class="flex flex-col flex-1 w-full"> |
796 | <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> | 796 | <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> |
797 | <div | 797 | <div |
798 | class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" | 798 | class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" |
799 | > | 799 | > |
800 | <!-- Mobile hamburger --> | 800 | <!-- Mobile hamburger --> |
801 | <button | 801 | <button |
802 | class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" | 802 | class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" |
803 | @click="toggleSideMenu" | 803 | @click="toggleSideMenu" |
804 | aria-label="Menu" | 804 | aria-label="Menu" |
805 | > | 805 | > |
806 | <svg | 806 | <svg |
807 | class="w-6 h-6" | 807 | class="w-6 h-6" |
808 | aria-hidden="true" | 808 | aria-hidden="true" |
809 | fill="currentColor" | 809 | fill="currentColor" |
810 | viewBox="0 0 20 20" | 810 | viewBox="0 0 20 20" |
811 | > | 811 | > |
812 | <path | 812 | <path |
813 | fill-rule="evenodd" | 813 | fill-rule="evenodd" |
814 | 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 | 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" |
815 | clip-rule="evenodd" | 815 | clip-rule="evenodd" |
816 | ></path> | 816 | ></path> |
817 | </svg> | 817 | </svg> |
818 | </button> | 818 | </button> |
819 | <!-- Search input --> | 819 | <!-- Search input --> |
820 | <div class="flex justify-center flex-1 lg:mr-32"> | 820 | <div class="flex justify-center flex-1 lg:mr-32"> |
821 | <div | 821 | <div |
822 | class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" | 822 | class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" |
823 | > | 823 | > |
824 | 824 | ||
825 | @yield('search') | 825 | @yield('search') |
826 | </div> | 826 | </div> |
827 | </div> | 827 | </div> |
828 | <ul class="flex items-center flex-shrink-0 space-x-6"> | 828 | <ul class="flex items-center flex-shrink-0 space-x-6"> |
829 | <!-- Theme toggler --> | 829 | <!-- Theme toggler --> |
830 | <li class="flex"> | 830 | <li class="flex"> |
831 | <button | 831 | <button |
832 | class="rounded-md focus:outline-none focus:shadow-outline-purple" | 832 | class="rounded-md focus:outline-none focus:shadow-outline-purple" |
833 | @click="toggleTheme" | 833 | @click="toggleTheme" |
834 | aria-label="Toggle color mode" | 834 | aria-label="Toggle color mode" |
835 | > | 835 | > |
836 | <template x-if="!dark"> | 836 | <template x-if="!dark"> |
837 | <svg | 837 | <svg |
838 | class="w-5 h-5" | 838 | class="w-5 h-5" |
839 | aria-hidden="true" | 839 | aria-hidden="true" |
840 | fill="currentColor" | 840 | fill="currentColor" |
841 | viewBox="0 0 20 20" | 841 | viewBox="0 0 20 20" |
842 | > | 842 | > |
843 | <path | 843 | <path |
844 | d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" | 844 | d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" |
845 | ></path> | 845 | ></path> |
846 | </svg> | 846 | </svg> |
847 | </template> | 847 | </template> |
848 | <template x-if="dark"> | 848 | <template x-if="dark"> |
849 | <svg | 849 | <svg |
850 | class="w-5 h-5" | 850 | class="w-5 h-5" |
851 | aria-hidden="true" | 851 | aria-hidden="true" |
852 | fill="currentColor" | 852 | fill="currentColor" |
853 | viewBox="0 0 20 20" | 853 | viewBox="0 0 20 20" |
854 | > | 854 | > |
855 | <path | 855 | <path |
856 | fill-rule="evenodd" | 856 | fill-rule="evenodd" |
857 | 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 | 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" |
858 | clip-rule="evenodd" | 858 | clip-rule="evenodd" |
859 | ></path> | 859 | ></path> |
860 | </svg> | 860 | </svg> |
861 | </template> | 861 | </template> |
862 | </button> | 862 | </button> |
863 | </li> | 863 | </li> |
864 | <!-- Notifications menu --> | 864 | <!-- Notifications menu --> |
865 | <li class="relative"> | 865 | <li class="relative"> |
866 | <button | 866 | <button |
867 | class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" | 867 | class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" |
868 | @click="toggleNotificationsMenu" | 868 | @click="toggleNotificationsMenu" |
869 | @keydown.escape="closeNotificationsMenu" | 869 | @keydown.escape="closeNotificationsMenu" |
870 | aria-label="Notifications" | 870 | aria-label="Notifications" |
871 | aria-haspopup="true" | 871 | aria-haspopup="true" |
872 | > | 872 | > |
873 | <svg | 873 | <svg |
874 | class="w-5 h-5" | 874 | class="w-5 h-5" |
875 | aria-hidden="true" | 875 | aria-hidden="true" |
876 | fill="currentColor" | 876 | fill="currentColor" |
877 | viewBox="0 0 20 20" | 877 | viewBox="0 0 20 20" |
878 | > | 878 | > |
879 | <path | 879 | <path |
880 | 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 | 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" |
881 | ></path> | 881 | ></path> |
882 | </svg> | 882 | </svg> |
883 | <!-- Notification badge --> | 883 | <!-- Notification badge --> |
884 | <span | 884 | <span |
885 | aria-hidden="true" | 885 | aria-hidden="true" |
886 | 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 | 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" |
887 | ></span> | 887 | ></span> |
888 | </button> | 888 | </button> |
889 | <template x-if="isNotificationsMenuOpen"> | 889 | <template x-if="isNotificationsMenuOpen"> |
890 | <ul | 890 | <ul |
891 | x-transition:leave="transition ease-in duration-150" | 891 | x-transition:leave="transition ease-in duration-150" |
892 | x-transition:leave-start="opacity-100" | 892 | x-transition:leave-start="opacity-100" |
893 | x-transition:leave-end="opacity-0" | 893 | x-transition:leave-end="opacity-0" |
894 | @click.away="closeNotificationsMenu" | 894 | @click.away="closeNotificationsMenu" |
895 | @keydown.escape="closeNotificationsMenu" | 895 | @keydown.escape="closeNotificationsMenu" |
896 | 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 | 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" |
897 | > | 897 | > |
898 | <li class="flex"> | 898 | <li class="flex"> |
899 | <a | 899 | <a |
900 | 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 | 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" |
901 | href="{{ route('admin.admin-messages') }}" | 901 | href="{{ route('admin.admin-messages') }}" |
902 | > | 902 | > |
903 | <span>Сообщения</span> | 903 | <span>Сообщения</span> |
904 | @if($MsgCount > 0) | 904 | @if($MsgCount > 0) |
905 | <span | 905 | <span |
906 | 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" | 906 | 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" |
907 | > | 907 | > |
908 | 908 | ||
909 | {{ $MsgCount }} | 909 | {{ $MsgCount }} |
910 | </span> | 910 | </span> |
911 | @endif | 911 | @endif |
912 | </a> | 912 | </a> |
913 | </li> | 913 | </li> |
914 | <!--<li class="flex"> | 914 | <!--<li class="flex"> |
915 | <a | 915 | <a |
916 | 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" | 916 | 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" |
917 | href="#" | 917 | href="#" |
918 | > | 918 | > |
919 | <span>Логи</span> | 919 | <span>Логи</span> |
920 | </a> | 920 | </a> |
921 | </li>--> | 921 | </li>--> |
922 | </ul> | 922 | </ul> |
923 | </template> | 923 | </template> |
924 | </li> | 924 | </li> |
925 | <!-- Profile menu --> | 925 | <!-- Profile menu --> |
926 | <li class="relative"> | 926 | <li class="relative"> |
927 | <button | 927 | <button |
928 | class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" | 928 | class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" |
929 | @click="toggleProfileMenu" | 929 | @click="toggleProfileMenu" |
930 | @keydown.escape="closeProfileMenu" | 930 | @keydown.escape="closeProfileMenu" |
931 | aria-label="Account" | 931 | aria-label="Account" |
932 | aria-haspopup="true" | 932 | aria-haspopup="true" |
933 | > | 933 | > |
934 | <img | 934 | <img |
935 | class="object-cover w-8 h-8 rounded-full" | 935 | class="object-cover w-8 h-8 rounded-full" |
936 | src="{{ asset('assets/img/profile.jpg') }}" | 936 | src="{{ asset('assets/img/profile.jpg') }}" |
937 | alt="" | 937 | alt="" |
938 | aria-hidden="true" | 938 | aria-hidden="true" |
939 | /> | 939 | /> |
940 | </button> | 940 | </button> |
941 | <template x-if="isProfileMenuOpen"> | 941 | <template x-if="isProfileMenuOpen"> |
942 | <ul | 942 | <ul |
943 | x-transition:leave="transition ease-in duration-150" | 943 | x-transition:leave="transition ease-in duration-150" |
944 | x-transition:leave-start="opacity-100" | 944 | x-transition:leave-start="opacity-100" |
945 | x-transition:leave-end="opacity-0" | 945 | x-transition:leave-end="opacity-0" |
946 | @click.away="closeProfileMenu" | 946 | @click.away="closeProfileMenu" |
947 | @keydown.escape="closeProfileMenu" | 947 | @keydown.escape="closeProfileMenu" |
948 | 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" | 948 | 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" |
949 | aria-label="submenu" | 949 | aria-label="submenu" |
950 | > | 950 | > |
951 | <li class="flex"> | 951 | <li class="flex"> |
952 | <a | 952 | <a |
953 | 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" | 953 | 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" |
954 | href="{{ route('admin.profile') }}" | 954 | href="{{ route('admin.profile') }}" |
955 | > | 955 | > |
956 | <svg | 956 | <svg |
957 | class="w-4 h-4 mr-3" | 957 | class="w-4 h-4 mr-3" |
958 | aria-hidden="true" | 958 | aria-hidden="true" |
959 | fill="none" | 959 | fill="none" |
960 | stroke-linecap="round" | 960 | stroke-linecap="round" |
961 | stroke-linejoin="round" | 961 | stroke-linejoin="round" |
962 | stroke-width="2" | 962 | stroke-width="2" |
963 | viewBox="0 0 24 24" | 963 | viewBox="0 0 24 24" |
964 | stroke="currentColor" | 964 | stroke="currentColor" |
965 | > | 965 | > |
966 | <path | 966 | <path |
967 | d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" | 967 | d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" |
968 | ></path> | 968 | ></path> |
969 | </svg> | 969 | </svg> |
970 | <span>Профиль</span> | 970 | <span>Профиль</span> |
971 | </a> | 971 | </a> |
972 | </li> | 972 | </li> |
973 | <li class="flex"> | 973 | <li class="flex"> |
974 | <a | 974 | <a |
975 | 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" | 975 | 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" |
976 | href="{{ route('admin.config') }}" | 976 | href="{{ route('admin.config') }}" |
977 | > | 977 | > |
978 | <svg | 978 | <svg |
979 | class="w-4 h-4 mr-3" | 979 | class="w-4 h-4 mr-3" |
980 | aria-hidden="true" | 980 | aria-hidden="true" |
981 | fill="none" | 981 | fill="none" |
982 | stroke-linecap="round" | 982 | stroke-linecap="round" |
983 | stroke-linejoin="round" | 983 | stroke-linejoin="round" |
984 | stroke-width="2" | 984 | stroke-width="2" |
985 | viewBox="0 0 24 24" | 985 | viewBox="0 0 24 24" |
986 | stroke="currentColor" | 986 | stroke="currentColor" |
987 | > | 987 | > |
988 | <path | 988 | <path |
989 | 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" | 989 | 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" |
990 | ></path> | 990 | ></path> |
991 | <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> | 991 | <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> |
992 | </svg> | 992 | </svg> |
993 | <span>Настройки</span> | 993 | <span>Настройки</span> |
994 | </a> | 994 | </a> |
995 | </li> | 995 | </li> |
996 | <li class="flex"> | 996 | <li class="flex"> |
997 | <a | 997 | <a |
998 | 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" | 998 | 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" |
999 | href="{{ route('admin.logout') }}" | 999 | href="{{ route('admin.logout') }}" |
1000 | > | 1000 | > |
1001 | <svg | 1001 | <svg |
1002 | class="w-4 h-4 mr-3" | 1002 | class="w-4 h-4 mr-3" |
1003 | aria-hidden="true" | 1003 | aria-hidden="true" |
1004 | fill="none" | 1004 | fill="none" |
1005 | stroke-linecap="round" | 1005 | stroke-linecap="round" |
1006 | stroke-linejoin="round" | 1006 | stroke-linejoin="round" |
1007 | stroke-width="2" | 1007 | stroke-width="2" |
1008 | viewBox="0 0 24 24" | 1008 | viewBox="0 0 24 24" |
1009 | stroke="currentColor" | 1009 | stroke="currentColor" |
1010 | > | 1010 | > |
1011 | <path | 1011 | <path |
1012 | 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" | 1012 | 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" |
1013 | ></path> | 1013 | ></path> |
1014 | </svg> | 1014 | </svg> |
1015 | <span>Выход</span> | 1015 | <span>Выход</span> |
1016 | </a> | 1016 | </a> |
1017 | </li> | 1017 | </li> |
1018 | </ul> | 1018 | </ul> |
1019 | </template> | 1019 | </template> |
1020 | </li> | 1020 | </li> |
1021 | </ul> | 1021 | </ul> |
1022 | </div> | 1022 | </div> |
1023 | </header> | 1023 | </header> |
1024 | <main class="h-full overflow-y-auto"> | 1024 | <main class="h-full overflow-y-auto"> |
1025 | <div class="container px-6 mx-auto grid"> | 1025 | <div class="container px-6 mx-auto grid"> |
1026 | <h2 | 1026 | <h2 |
1027 | class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" | 1027 | class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" |
1028 | > | 1028 | > |
1029 | {{$title}} | 1029 | {{$title}} |
1030 | </h2> | 1030 | </h2> |
1031 | <!-- CTA --> | 1031 | <!-- CTA --> |
1032 | <a | 1032 | <a |
1033 | 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" | 1033 | 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" |
1034 | href="{{ route('admin.admin-users') }}" | 1034 | href="{{ route('admin.admin-users') }}" |
1035 | > | 1035 | > |
1036 | <div class="flex items-center"> | 1036 | <div class="flex items-center"> |
1037 | <svg | 1037 | <svg |
1038 | class="w-5 h-5 mr-2" | 1038 | class="w-5 h-5 mr-2" |
1039 | fill="currentColor" | 1039 | fill="currentColor" |
1040 | viewBox="0 0 20 20" | 1040 | viewBox="0 0 20 20" |
1041 | > | 1041 | > |
1042 | <path | 1042 | <path |
1043 | 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" | 1043 | 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" |
1044 | ></path> | 1044 | ></path> |
1045 | </svg> | 1045 | </svg> |
1046 | <span>Вход в админку только для пользователей-админов</span> | 1046 | <span>Контент для админов</span> |
1047 | </div> | 1047 | </div> |
1048 | <span>Список админов →</span> | 1048 | <span>Список админов →</span> |
1049 | </a> | 1049 | </a> |
1050 | 1050 | ||
1051 | @if ($message = Session::get('success')) | 1051 | @if ($message = Session::get('success')) |
1052 | <section> | 1052 | <section> |
1053 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> | 1053 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> |
1054 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 1054 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
1055 | <span aria-hidden="true">×</span> | 1055 | <span aria-hidden="true">×</span> |
1056 | </button> | 1056 | </button> |
1057 | {{ $message }} | 1057 | {{ $message }} |
1058 | </div> | 1058 | </div> |
1059 | </section> | 1059 | </section> |
1060 | @endif | 1060 | @endif |
1061 | 1061 | ||
1062 | @if ($errors->any()) | 1062 | @if ($errors->any()) |
1063 | <section> | 1063 | <section> |
1064 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> | 1064 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> |
1065 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 1065 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
1066 | <span aria-hidden="true">×</span> | 1066 | <span aria-hidden="true">×</span> |
1067 | </button> | 1067 | </button> |
1068 | <ul class="mb-0"> | 1068 | <ul class="mb-0"> |
1069 | @foreach ($errors->all() as $error) | 1069 | @foreach ($errors->all() as $error) |
1070 | <li>{{ $error }}</li> | 1070 | <li>{{ $error }}</li> |
1071 | @endforeach | 1071 | @endforeach |
1072 | </ul> | 1072 | </ul> |
1073 | </div> | 1073 | </div> |
1074 | </section> | 1074 | </section> |
1075 | @endif | 1075 | @endif |
1076 | 1076 | ||
1077 | @yield('content') | 1077 | @yield('content') |
1078 | 1078 | ||
1079 | <!-- Cards | 1079 | <!-- Cards |
1080 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> | 1080 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> |
1081 | 1081 | ||
1082 | <div | 1082 | <div |
1083 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1083 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1084 | > | 1084 | > |
1085 | <div | 1085 | <div |
1086 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" | 1086 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" |
1087 | > | 1087 | > |
1088 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1088 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1089 | <path | 1089 | <path |
1090 | 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" | 1090 | 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" |
1091 | ></path> | 1091 | ></path> |
1092 | </svg> | 1092 | </svg> |
1093 | </div> | 1093 | </div> |
1094 | <div> | 1094 | <div> |
1095 | <p | 1095 | <p |
1096 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1096 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1097 | > | 1097 | > |
1098 | Total clients | 1098 | Total clients |
1099 | </p> | 1099 | </p> |
1100 | <p | 1100 | <p |
1101 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1101 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1102 | > | 1102 | > |
1103 | 6389 | 1103 | 6389 |
1104 | </p> | 1104 | </p> |
1105 | </div> | 1105 | </div> |
1106 | </div> | 1106 | </div> |
1107 | 1107 | ||
1108 | <div | 1108 | <div |
1109 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1109 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1110 | > | 1110 | > |
1111 | <div | 1111 | <div |
1112 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" | 1112 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" |
1113 | > | 1113 | > |
1114 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1114 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1115 | <path | 1115 | <path |
1116 | fill-rule="evenodd" | 1116 | fill-rule="evenodd" |
1117 | 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" | 1117 | 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" |
1118 | clip-rule="evenodd" | 1118 | clip-rule="evenodd" |
1119 | ></path> | 1119 | ></path> |
1120 | </svg> | 1120 | </svg> |
1121 | </div> | 1121 | </div> |
1122 | <div> | 1122 | <div> |
1123 | <p | 1123 | <p |
1124 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1124 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1125 | > | 1125 | > |
1126 | Account balance | 1126 | Account balance |
1127 | </p> | 1127 | </p> |
1128 | <p | 1128 | <p |
1129 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1129 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1130 | > | 1130 | > |
1131 | $ 46,760.89 | 1131 | $ 46,760.89 |
1132 | </p> | 1132 | </p> |
1133 | </div> | 1133 | </div> |
1134 | </div> | 1134 | </div> |
1135 | 1135 | ||
1136 | <div | 1136 | <div |
1137 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1137 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1138 | > | 1138 | > |
1139 | <div | 1139 | <div |
1140 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" | 1140 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" |
1141 | > | 1141 | > |
1142 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1142 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1143 | <path | 1143 | <path |
1144 | 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" | 1144 | 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" |
1145 | ></path> | 1145 | ></path> |
1146 | </svg> | 1146 | </svg> |
1147 | </div> | 1147 | </div> |
1148 | <div> | 1148 | <div> |
1149 | <p | 1149 | <p |
1150 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1150 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1151 | > | 1151 | > |
1152 | New sales | 1152 | New sales |
1153 | </p> | 1153 | </p> |
1154 | <p | 1154 | <p |
1155 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1155 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1156 | > | 1156 | > |
1157 | 376 | 1157 | 376 |
1158 | </p> | 1158 | </p> |
1159 | </div> | 1159 | </div> |
1160 | </div> | 1160 | </div> |
1161 | 1161 | ||
1162 | <div | 1162 | <div |
1163 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1163 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1164 | > | 1164 | > |
1165 | <div | 1165 | <div |
1166 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" | 1166 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" |
1167 | > | 1167 | > |
1168 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1168 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1169 | <path | 1169 | <path |
1170 | fill-rule="evenodd" | 1170 | fill-rule="evenodd" |
1171 | 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" | 1171 | 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" |
1172 | clip-rule="evenodd" | 1172 | clip-rule="evenodd" |
1173 | ></path> | 1173 | ></path> |
1174 | </svg> | 1174 | </svg> |
1175 | </div> | 1175 | </div> |
1176 | <div> | 1176 | <div> |
1177 | <p | 1177 | <p |
1178 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1178 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1179 | > | 1179 | > |
1180 | Pending contacts | 1180 | Pending contacts |
1181 | </p> | 1181 | </p> |
1182 | <p | 1182 | <p |
1183 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1183 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1184 | > | 1184 | > |
1185 | 35 | 1185 | 35 |
1186 | </p> | 1186 | </p> |
1187 | </div> | 1187 | </div> |
1188 | </div> | 1188 | </div> |
1189 | </div> | 1189 | </div> |
1190 | --> | 1190 | --> |
1191 | <!-- New Table | 1191 | <!-- New Table |
1192 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> | 1192 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> |
1193 | <div class="w-full overflow-x-auto"> | 1193 | <div class="w-full overflow-x-auto"> |
1194 | <table class="w-full whitespace-no-wrap"> | 1194 | <table class="w-full whitespace-no-wrap"> |
1195 | <thead> | 1195 | <thead> |
1196 | <tr | 1196 | <tr |
1197 | 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" | 1197 | 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" |
1198 | > | 1198 | > |
1199 | <th class="px-4 py-3">Client</th> | 1199 | <th class="px-4 py-3">Client</th> |
1200 | <th class="px-4 py-3">Amount</th> | 1200 | <th class="px-4 py-3">Amount</th> |
1201 | <th class="px-4 py-3">Status</th> | 1201 | <th class="px-4 py-3">Status</th> |
1202 | <th class="px-4 py-3">Date</th> | 1202 | <th class="px-4 py-3">Date</th> |
1203 | </tr> | 1203 | </tr> |
1204 | </thead> | 1204 | </thead> |
1205 | <tbody | 1205 | <tbody |
1206 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" | 1206 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" |
1207 | > | 1207 | > |
1208 | <tr class="text-gray-700 dark:text-gray-400"> | 1208 | <tr class="text-gray-700 dark:text-gray-400"> |
1209 | <td class="px-4 py-3"> | 1209 | <td class="px-4 py-3"> |
1210 | <div class="flex items-center text-sm"> | 1210 | <div class="flex items-center text-sm"> |
1211 | 1211 | ||
1212 | <div | 1212 | <div |
1213 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1213 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1214 | > | 1214 | > |
1215 | <img | 1215 | <img |
1216 | class="object-cover w-full h-full rounded-full" | 1216 | class="object-cover w-full h-full rounded-full" |
1217 | 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" | 1217 | 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" |
1218 | alt="" | 1218 | alt="" |
1219 | loading="lazy" | 1219 | loading="lazy" |
1220 | /> | 1220 | /> |
1221 | <div | 1221 | <div |
1222 | class="absolute inset-0 rounded-full shadow-inner" | 1222 | class="absolute inset-0 rounded-full shadow-inner" |
1223 | aria-hidden="true" | 1223 | aria-hidden="true" |
1224 | ></div> | 1224 | ></div> |
1225 | </div> | 1225 | </div> |
1226 | <div> | 1226 | <div> |
1227 | <p class="font-semibold">Hans Burger</p> | 1227 | <p class="font-semibold">Hans Burger</p> |
1228 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1228 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1229 | 10x Developer | 1229 | 10x Developer |
1230 | </p> | 1230 | </p> |
1231 | </div> | 1231 | </div> |
1232 | </div> | 1232 | </div> |
1233 | </td> | 1233 | </td> |
1234 | <td class="px-4 py-3 text-sm"> | 1234 | <td class="px-4 py-3 text-sm"> |
1235 | $ 863.45 | 1235 | $ 863.45 |
1236 | </td> | 1236 | </td> |
1237 | <td class="px-4 py-3 text-xs"> | 1237 | <td class="px-4 py-3 text-xs"> |
1238 | <span | 1238 | <span |
1239 | 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" | 1239 | 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" |
1240 | > | 1240 | > |
1241 | Approved | 1241 | Approved |
1242 | </span> | 1242 | </span> |
1243 | </td> | 1243 | </td> |
1244 | <td class="px-4 py-3 text-sm"> | 1244 | <td class="px-4 py-3 text-sm"> |
1245 | 6/10/2020 | 1245 | 6/10/2020 |
1246 | </td> | 1246 | </td> |
1247 | </tr> | 1247 | </tr> |
1248 | 1248 | ||
1249 | <tr class="text-gray-700 dark:text-gray-400"> | 1249 | <tr class="text-gray-700 dark:text-gray-400"> |
1250 | <td class="px-4 py-3"> | 1250 | <td class="px-4 py-3"> |
1251 | <div class="flex items-center text-sm"> | 1251 | <div class="flex items-center text-sm"> |
1252 | 1252 | ||
1253 | <div | 1253 | <div |
1254 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1254 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1255 | > | 1255 | > |
1256 | <img | 1256 | <img |
1257 | class="object-cover w-full h-full rounded-full" | 1257 | class="object-cover w-full h-full rounded-full" |
1258 | 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" | 1258 | 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" |
1259 | alt="" | 1259 | alt="" |
1260 | loading="lazy" | 1260 | loading="lazy" |
1261 | /> | 1261 | /> |
1262 | <div | 1262 | <div |
1263 | class="absolute inset-0 rounded-full shadow-inner" | 1263 | class="absolute inset-0 rounded-full shadow-inner" |
1264 | aria-hidden="true" | 1264 | aria-hidden="true" |
1265 | ></div> | 1265 | ></div> |
1266 | </div> | 1266 | </div> |
1267 | <div> | 1267 | <div> |
1268 | <p class="font-semibold">Jolina Angelie</p> | 1268 | <p class="font-semibold">Jolina Angelie</p> |
1269 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1269 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1270 | Unemployed | 1270 | Unemployed |
1271 | </p> | 1271 | </p> |
1272 | </div> | 1272 | </div> |
1273 | </div> | 1273 | </div> |
1274 | </td> | 1274 | </td> |
1275 | <td class="px-4 py-3 text-sm"> | 1275 | <td class="px-4 py-3 text-sm"> |
1276 | $ 369.95 | 1276 | $ 369.95 |
1277 | </td> | 1277 | </td> |
1278 | <td class="px-4 py-3 text-xs"> | 1278 | <td class="px-4 py-3 text-xs"> |
1279 | <span | 1279 | <span |
1280 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" | 1280 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" |
1281 | > | 1281 | > |
1282 | Pending | 1282 | Pending |
1283 | </span> | 1283 | </span> |
1284 | </td> | 1284 | </td> |
1285 | <td class="px-4 py-3 text-sm"> | 1285 | <td class="px-4 py-3 text-sm"> |
1286 | 6/10/2020 | 1286 | 6/10/2020 |
1287 | </td> | 1287 | </td> |
1288 | </tr> | 1288 | </tr> |
1289 | 1289 | ||
1290 | <tr class="text-gray-700 dark:text-gray-400"> | 1290 | <tr class="text-gray-700 dark:text-gray-400"> |
1291 | <td class="px-4 py-3"> | 1291 | <td class="px-4 py-3"> |
1292 | <div class="flex items-center text-sm"> | 1292 | <div class="flex items-center text-sm"> |
1293 | 1293 | ||
1294 | <div | 1294 | <div |
1295 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1295 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1296 | > | 1296 | > |
1297 | <img | 1297 | <img |
1298 | class="object-cover w-full h-full rounded-full" | 1298 | class="object-cover w-full h-full rounded-full" |
1299 | 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" | 1299 | 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" |
1300 | alt="" | 1300 | alt="" |
1301 | loading="lazy" | 1301 | loading="lazy" |
1302 | /> | 1302 | /> |
1303 | <div | 1303 | <div |
1304 | class="absolute inset-0 rounded-full shadow-inner" | 1304 | class="absolute inset-0 rounded-full shadow-inner" |
1305 | aria-hidden="true" | 1305 | aria-hidden="true" |
1306 | ></div> | 1306 | ></div> |
1307 | </div> | 1307 | </div> |
1308 | <div> | 1308 | <div> |
1309 | <p class="font-semibold">Sarah Curry</p> | 1309 | <p class="font-semibold">Sarah Curry</p> |
1310 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1310 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1311 | Designer | 1311 | Designer |
1312 | </p> | 1312 | </p> |
1313 | </div> | 1313 | </div> |
1314 | </div> | 1314 | </div> |
1315 | </td> | 1315 | </td> |
1316 | <td class="px-4 py-3 text-sm"> | 1316 | <td class="px-4 py-3 text-sm"> |
1317 | $ 86.00 | 1317 | $ 86.00 |
1318 | </td> | 1318 | </td> |
1319 | <td class="px-4 py-3 text-xs"> | 1319 | <td class="px-4 py-3 text-xs"> |
1320 | <span | 1320 | <span |
1321 | 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" | 1321 | 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" |
1322 | > | 1322 | > |
1323 | Denied | 1323 | Denied |
1324 | </span> | 1324 | </span> |
1325 | </td> | 1325 | </td> |
1326 | <td class="px-4 py-3 text-sm"> | 1326 | <td class="px-4 py-3 text-sm"> |
1327 | 6/10/2020 | 1327 | 6/10/2020 |
1328 | </td> | 1328 | </td> |
1329 | </tr> | 1329 | </tr> |
1330 | 1330 | ||
1331 | <tr class="text-gray-700 dark:text-gray-400"> | 1331 | <tr class="text-gray-700 dark:text-gray-400"> |
1332 | <td class="px-4 py-3"> | 1332 | <td class="px-4 py-3"> |
1333 | <div class="flex items-center text-sm"> | 1333 | <div class="flex items-center text-sm"> |
1334 | 1334 | ||
1335 | <div | 1335 | <div |
1336 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1336 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1337 | > | 1337 | > |
1338 | <img | 1338 | <img |
1339 | class="object-cover w-full h-full rounded-full" | 1339 | class="object-cover w-full h-full rounded-full" |
1340 | 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" | 1340 | 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" |
1341 | alt="" | 1341 | alt="" |
1342 | loading="lazy" | 1342 | loading="lazy" |
1343 | /> | 1343 | /> |
1344 | <div | 1344 | <div |
1345 | class="absolute inset-0 rounded-full shadow-inner" | 1345 | class="absolute inset-0 rounded-full shadow-inner" |
1346 | aria-hidden="true" | 1346 | aria-hidden="true" |
1347 | ></div> | 1347 | ></div> |
1348 | </div> | 1348 | </div> |
1349 | <div> | 1349 | <div> |
1350 | <p class="font-semibold">Rulia Joberts</p> | 1350 | <p class="font-semibold">Rulia Joberts</p> |
1351 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1351 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1352 | Actress | 1352 | Actress |
1353 | </p> | 1353 | </p> |
1354 | </div> | 1354 | </div> |
1355 | </div> | 1355 | </div> |
1356 | </td> | 1356 | </td> |
1357 | <td class="px-4 py-3 text-sm"> | 1357 | <td class="px-4 py-3 text-sm"> |
1358 | $ 1276.45 | 1358 | $ 1276.45 |
1359 | </td> | 1359 | </td> |
1360 | <td class="px-4 py-3 text-xs"> | 1360 | <td class="px-4 py-3 text-xs"> |
1361 | <span | 1361 | <span |
1362 | 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" | 1362 | 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" |
1363 | > | 1363 | > |
1364 | Approved | 1364 | Approved |
1365 | </span> | 1365 | </span> |
1366 | </td> | 1366 | </td> |
1367 | <td class="px-4 py-3 text-sm"> | 1367 | <td class="px-4 py-3 text-sm"> |
1368 | 6/10/2020 | 1368 | 6/10/2020 |
1369 | </td> | 1369 | </td> |
1370 | </tr> | 1370 | </tr> |
1371 | 1371 | ||
1372 | <tr class="text-gray-700 dark:text-gray-400"> | 1372 | <tr class="text-gray-700 dark:text-gray-400"> |
1373 | <td class="px-4 py-3"> | 1373 | <td class="px-4 py-3"> |
1374 | <div class="flex items-center text-sm"> | 1374 | <div class="flex items-center text-sm"> |
1375 | 1375 | ||
1376 | <div | 1376 | <div |
1377 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1377 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1378 | > | 1378 | > |
1379 | <img | 1379 | <img |
1380 | class="object-cover w-full h-full rounded-full" | 1380 | class="object-cover w-full h-full rounded-full" |
1381 | 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" | 1381 | 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" |
1382 | alt="" | 1382 | alt="" |
1383 | loading="lazy" | 1383 | loading="lazy" |
1384 | /> | 1384 | /> |
1385 | <div | 1385 | <div |
1386 | class="absolute inset-0 rounded-full shadow-inner" | 1386 | class="absolute inset-0 rounded-full shadow-inner" |
1387 | aria-hidden="true" | 1387 | aria-hidden="true" |
1388 | ></div> | 1388 | ></div> |
1389 | </div> | 1389 | </div> |
1390 | <div> | 1390 | <div> |
1391 | <p class="font-semibold">Wenzel Dashington</p> | 1391 | <p class="font-semibold">Wenzel Dashington</p> |
1392 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1392 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1393 | Actor | 1393 | Actor |
1394 | </p> | 1394 | </p> |
1395 | </div> | 1395 | </div> |
1396 | </div> | 1396 | </div> |
1397 | </td> | 1397 | </td> |
1398 | <td class="px-4 py-3 text-sm"> | 1398 | <td class="px-4 py-3 text-sm"> |
1399 | $ 863.45 | 1399 | $ 863.45 |
1400 | </td> | 1400 | </td> |
1401 | <td class="px-4 py-3 text-xs"> | 1401 | <td class="px-4 py-3 text-xs"> |
1402 | <span | 1402 | <span |
1403 | 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" | 1403 | 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" |
1404 | > | 1404 | > |
1405 | Expired | 1405 | Expired |
1406 | </span> | 1406 | </span> |
1407 | </td> | 1407 | </td> |
1408 | <td class="px-4 py-3 text-sm"> | 1408 | <td class="px-4 py-3 text-sm"> |
1409 | 6/10/2020 | 1409 | 6/10/2020 |
1410 | </td> | 1410 | </td> |
1411 | </tr> | 1411 | </tr> |
1412 | 1412 | ||
1413 | <tr class="text-gray-700 dark:text-gray-400"> | 1413 | <tr class="text-gray-700 dark:text-gray-400"> |
1414 | <td class="px-4 py-3"> | 1414 | <td class="px-4 py-3"> |
1415 | <div class="flex items-center text-sm"> | 1415 | <div class="flex items-center text-sm"> |
1416 | 1416 | ||
1417 | <div | 1417 | <div |
1418 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1418 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1419 | > | 1419 | > |
1420 | <img | 1420 | <img |
1421 | class="object-cover w-full h-full rounded-full" | 1421 | class="object-cover w-full h-full rounded-full" |
1422 | 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" | 1422 | 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" |
1423 | alt="" | 1423 | alt="" |
1424 | loading="lazy" | 1424 | loading="lazy" |
1425 | /> | 1425 | /> |
1426 | <div | 1426 | <div |
1427 | class="absolute inset-0 rounded-full shadow-inner" | 1427 | class="absolute inset-0 rounded-full shadow-inner" |
1428 | aria-hidden="true" | 1428 | aria-hidden="true" |
1429 | ></div> | 1429 | ></div> |
1430 | </div> | 1430 | </div> |
1431 | <div> | 1431 | <div> |
1432 | <p class="font-semibold">Dave Li</p> | 1432 | <p class="font-semibold">Dave Li</p> |
1433 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1433 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1434 | Influencer | 1434 | Influencer |
1435 | </p> | 1435 | </p> |
1436 | </div> | 1436 | </div> |
1437 | </div> | 1437 | </div> |
1438 | </td> | 1438 | </td> |
1439 | <td class="px-4 py-3 text-sm"> | 1439 | <td class="px-4 py-3 text-sm"> |
1440 | $ 863.45 | 1440 | $ 863.45 |
1441 | </td> | 1441 | </td> |
1442 | <td class="px-4 py-3 text-xs"> | 1442 | <td class="px-4 py-3 text-xs"> |
1443 | <span | 1443 | <span |
1444 | 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" | 1444 | 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" |
1445 | > | 1445 | > |
1446 | Approved | 1446 | Approved |
1447 | </span> | 1447 | </span> |
1448 | </td> | 1448 | </td> |
1449 | <td class="px-4 py-3 text-sm"> | 1449 | <td class="px-4 py-3 text-sm"> |
1450 | 6/10/2020 | 1450 | 6/10/2020 |
1451 | </td> | 1451 | </td> |
1452 | </tr> | 1452 | </tr> |
1453 | 1453 | ||
1454 | <tr class="text-gray-700 dark:text-gray-400"> | 1454 | <tr class="text-gray-700 dark:text-gray-400"> |
1455 | <td class="px-4 py-3"> | 1455 | <td class="px-4 py-3"> |
1456 | <div class="flex items-center text-sm"> | 1456 | <div class="flex items-center text-sm"> |
1457 | 1457 | ||
1458 | <div | 1458 | <div |
1459 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1459 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1460 | > | 1460 | > |
1461 | <img | 1461 | <img |
1462 | class="object-cover w-full h-full rounded-full" | 1462 | class="object-cover w-full h-full rounded-full" |
1463 | 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" | 1463 | 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" |
1464 | alt="" | 1464 | alt="" |
1465 | loading="lazy" | 1465 | loading="lazy" |
1466 | /> | 1466 | /> |
1467 | <div | 1467 | <div |
1468 | class="absolute inset-0 rounded-full shadow-inner" | 1468 | class="absolute inset-0 rounded-full shadow-inner" |
1469 | aria-hidden="true" | 1469 | aria-hidden="true" |
1470 | ></div> | 1470 | ></div> |
1471 | </div> | 1471 | </div> |
1472 | <div> | 1472 | <div> |
1473 | <p class="font-semibold">Maria Ramovic</p> | 1473 | <p class="font-semibold">Maria Ramovic</p> |
1474 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1474 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1475 | Runner | 1475 | Runner |
1476 | </p> | 1476 | </p> |
1477 | </div> | 1477 | </div> |
1478 | </div> | 1478 | </div> |
1479 | </td> | 1479 | </td> |
1480 | <td class="px-4 py-3 text-sm"> | 1480 | <td class="px-4 py-3 text-sm"> |
1481 | $ 863.45 | 1481 | $ 863.45 |
1482 | </td> | 1482 | </td> |
1483 | <td class="px-4 py-3 text-xs"> | 1483 | <td class="px-4 py-3 text-xs"> |
1484 | <span | 1484 | <span |
1485 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 1485 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
1486 | > | 1486 | > |
1487 | Approved | 1487 | Approved |
1488 | </span> | 1488 | </span> |
1489 | </td> | 1489 | </td> |
1490 | <td class="px-4 py-3 text-sm"> | 1490 | <td class="px-4 py-3 text-sm"> |
1491 | 6/10/2020 | 1491 | 6/10/2020 |
1492 | </td> | 1492 | </td> |
1493 | </tr> | 1493 | </tr> |
1494 | 1494 | ||
1495 | <tr class="text-gray-700 dark:text-gray-400"> | 1495 | <tr class="text-gray-700 dark:text-gray-400"> |
1496 | <td class="px-4 py-3"> | 1496 | <td class="px-4 py-3"> |
1497 | <div class="flex items-center text-sm"> | 1497 | <div class="flex items-center text-sm"> |
1498 | 1498 | ||
1499 | <div | 1499 | <div |
1500 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1500 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1501 | > | 1501 | > |
1502 | <img | 1502 | <img |
1503 | class="object-cover w-full h-full rounded-full" | 1503 | class="object-cover w-full h-full rounded-full" |
1504 | 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" | 1504 | 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" |
1505 | alt="" | 1505 | alt="" |
1506 | loading="lazy" | 1506 | loading="lazy" |
1507 | /> | 1507 | /> |
1508 | <div | 1508 | <div |
1509 | class="absolute inset-0 rounded-full shadow-inner" | 1509 | class="absolute inset-0 rounded-full shadow-inner" |
1510 | aria-hidden="true" | 1510 | aria-hidden="true" |
1511 | ></div> | 1511 | ></div> |
1512 | </div> | 1512 | </div> |
1513 | <div> | 1513 | <div> |
1514 | <p class="font-semibold">Hitney Wouston</p> | 1514 | <p class="font-semibold">Hitney Wouston</p> |
1515 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1515 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1516 | Singer | 1516 | Singer |
1517 | </p> | 1517 | </p> |
1518 | </div> | 1518 | </div> |
1519 | </div> | 1519 | </div> |
1520 | </td> | 1520 | </td> |
1521 | <td class="px-4 py-3 text-sm"> | 1521 | <td class="px-4 py-3 text-sm"> |
1522 | $ 863.45 | 1522 | $ 863.45 |
1523 | </td> | 1523 | </td> |
1524 | <td class="px-4 py-3 text-xs"> | 1524 | <td class="px-4 py-3 text-xs"> |
1525 | <span | 1525 | <span |
1526 | 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" | 1526 | 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" |
1527 | > | 1527 | > |
1528 | Approved | 1528 | Approved |
1529 | </span> | 1529 | </span> |
1530 | </td> | 1530 | </td> |
1531 | <td class="px-4 py-3 text-sm"> | 1531 | <td class="px-4 py-3 text-sm"> |
1532 | 6/10/2020 | 1532 | 6/10/2020 |
1533 | </td> | 1533 | </td> |
1534 | </tr> | 1534 | </tr> |
1535 | 1535 | ||
1536 | <tr class="text-gray-700 dark:text-gray-400"> | 1536 | <tr class="text-gray-700 dark:text-gray-400"> |
1537 | <td class="px-4 py-3"> | 1537 | <td class="px-4 py-3"> |
1538 | <div class="flex items-center text-sm"> | 1538 | <div class="flex items-center text-sm"> |
1539 | 1539 | ||
1540 | <div | 1540 | <div |
1541 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1541 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1542 | > | 1542 | > |
1543 | <img | 1543 | <img |
1544 | class="object-cover w-full h-full rounded-full" | 1544 | class="object-cover w-full h-full rounded-full" |
1545 | 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" | 1545 | 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" |
1546 | alt="" | 1546 | alt="" |
1547 | loading="lazy" | 1547 | loading="lazy" |
1548 | /> | 1548 | /> |
1549 | <div | 1549 | <div |
1550 | class="absolute inset-0 rounded-full shadow-inner" | 1550 | class="absolute inset-0 rounded-full shadow-inner" |
1551 | aria-hidden="true" | 1551 | aria-hidden="true" |
1552 | ></div> | 1552 | ></div> |
1553 | </div> | 1553 | </div> |
1554 | <div> | 1554 | <div> |
1555 | <p class="font-semibold">Hans Burger</p> | 1555 | <p class="font-semibold">Hans Burger</p> |
1556 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1556 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1557 | 10x Developer | 1557 | 10x Developer |
1558 | </p> | 1558 | </p> |
1559 | </div> | 1559 | </div> |
1560 | </div> | 1560 | </div> |
1561 | </td> | 1561 | </td> |
1562 | <td class="px-4 py-3 text-sm"> | 1562 | <td class="px-4 py-3 text-sm"> |
1563 | $ 863.45 | 1563 | $ 863.45 |
1564 | </td> | 1564 | </td> |
1565 | <td class="px-4 py-3 text-xs"> | 1565 | <td class="px-4 py-3 text-xs"> |
1566 | <span | 1566 | <span |
1567 | 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" | 1567 | 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" |
1568 | > | 1568 | > |
1569 | Approved | 1569 | Approved |
1570 | </span> | 1570 | </span> |
1571 | </td> | 1571 | </td> |
1572 | <td class="px-4 py-3 text-sm"> | 1572 | <td class="px-4 py-3 text-sm"> |
1573 | 6/10/2020 | 1573 | 6/10/2020 |
1574 | </td> | 1574 | </td> |
1575 | </tr> | 1575 | </tr> |
1576 | </tbody> | 1576 | </tbody> |
1577 | </table> | 1577 | </table> |
1578 | </div> | 1578 | </div> |
1579 | <div | 1579 | <div |
1580 | 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" | 1580 | 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" |
1581 | > | 1581 | > |
1582 | <span class="flex items-center col-span-3"> | 1582 | <span class="flex items-center col-span-3"> |
1583 | Showing 21-30 of 100 | 1583 | Showing 21-30 of 100 |
1584 | </span> | 1584 | </span> |
1585 | <span class="col-span-2"></span> | 1585 | <span class="col-span-2"></span> |
1586 | 1586 | ||
1587 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> | 1587 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> |
1588 | <nav aria-label="Table navigation"> | 1588 | <nav aria-label="Table navigation"> |
1589 | <ul class="inline-flex items-center"> | 1589 | <ul class="inline-flex items-center"> |
1590 | <li> | 1590 | <li> |
1591 | <button | 1591 | <button |
1592 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" | 1592 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" |
1593 | aria-label="Previous" | 1593 | aria-label="Previous" |
1594 | > | 1594 | > |
1595 | <svg | 1595 | <svg |
1596 | aria-hidden="true" | 1596 | aria-hidden="true" |
1597 | class="w-4 h-4 fill-current" | 1597 | class="w-4 h-4 fill-current" |
1598 | viewBox="0 0 20 20" | 1598 | viewBox="0 0 20 20" |
1599 | > | 1599 | > |
1600 | <path | 1600 | <path |
1601 | 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" | 1601 | 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" |
1602 | clip-rule="evenodd" | 1602 | clip-rule="evenodd" |
1603 | fill-rule="evenodd" | 1603 | fill-rule="evenodd" |
1604 | ></path> | 1604 | ></path> |
1605 | </svg> | 1605 | </svg> |
1606 | </button> | 1606 | </button> |
1607 | </li> | 1607 | </li> |
1608 | <li> | 1608 | <li> |
1609 | <button | 1609 | <button |
1610 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1610 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1611 | > | 1611 | > |
1612 | 1 | 1612 | 1 |
1613 | </button> | 1613 | </button> |
1614 | </li> | 1614 | </li> |
1615 | <li> | 1615 | <li> |
1616 | <button | 1616 | <button |
1617 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1617 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1618 | > | 1618 | > |
1619 | 2 | 1619 | 2 |
1620 | </button> | 1620 | </button> |
1621 | </li> | 1621 | </li> |
1622 | <li> | 1622 | <li> |
1623 | <button | 1623 | <button |
1624 | 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" | 1624 | 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" |
1625 | > | 1625 | > |
1626 | 3 | 1626 | 3 |
1627 | </button> | 1627 | </button> |
1628 | </li> | 1628 | </li> |
1629 | <li> | 1629 | <li> |
1630 | <button | 1630 | <button |
1631 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1631 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1632 | > | 1632 | > |
1633 | 4 | 1633 | 4 |
1634 | </button> | 1634 | </button> |
1635 | </li> | 1635 | </li> |
1636 | <li> | 1636 | <li> |
1637 | <span class="px-3 py-1">...</span> | 1637 | <span class="px-3 py-1">...</span> |
1638 | </li> | 1638 | </li> |
1639 | <li> | 1639 | <li> |
1640 | <button | 1640 | <button |
1641 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1641 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1642 | > | 1642 | > |
1643 | 8 | 1643 | 8 |
1644 | </button> | 1644 | </button> |
1645 | </li> | 1645 | </li> |
1646 | <li> | 1646 | <li> |
1647 | <button | 1647 | <button |
1648 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1648 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1649 | > | 1649 | > |
1650 | 9 | 1650 | 9 |
1651 | </button> | 1651 | </button> |
1652 | </li> | 1652 | </li> |
1653 | <li> | 1653 | <li> |
1654 | <button | 1654 | <button |
1655 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" | 1655 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" |
1656 | aria-label="Next" | 1656 | aria-label="Next" |
1657 | > | 1657 | > |
1658 | <svg | 1658 | <svg |
1659 | class="w-4 h-4 fill-current" | 1659 | class="w-4 h-4 fill-current" |
1660 | aria-hidden="true" | 1660 | aria-hidden="true" |
1661 | viewBox="0 0 20 20" | 1661 | viewBox="0 0 20 20" |
1662 | > | 1662 | > |
1663 | <path | 1663 | <path |
1664 | 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" | 1664 | 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" |
1665 | clip-rule="evenodd" | 1665 | clip-rule="evenodd" |
1666 | fill-rule="evenodd" | 1666 | fill-rule="evenodd" |
1667 | ></path> | 1667 | ></path> |
1668 | </svg> | 1668 | </svg> |
1669 | </button> | 1669 | </button> |
1670 | </li> | 1670 | </li> |
1671 | </ul> | 1671 | </ul> |
1672 | </nav> | 1672 | </nav> |
1673 | </span> | 1673 | </span> |
1674 | </div> | 1674 | </div> |
1675 | </div> | 1675 | </div> |
1676 | --> | 1676 | --> |
1677 | <!-- Charts --> | 1677 | <!-- Charts --> |
1678 | <!-- | 1678 | <!-- |
1679 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> | 1679 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> |
1680 | Графики | 1680 | Графики |
1681 | </h2> | 1681 | </h2> |
1682 | <div class="grid gap-6 mb-8 md:grid-cols-2"> | 1682 | <div class="grid gap-6 mb-8 md:grid-cols-2"> |
1683 | <div | 1683 | <div |
1684 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1684 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1685 | > | 1685 | > |
1686 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 1686 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
1687 | Revenue | 1687 | Revenue |
1688 | </h4> | 1688 | </h4> |
1689 | <canvas id="pie"></canvas> | 1689 | <canvas id="pie"></canvas> |
1690 | <div | 1690 | <div |
1691 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 1691 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
1692 | > | 1692 | > |
1693 | 1693 | ||
1694 | <div class="flex items-center"> | 1694 | <div class="flex items-center"> |
1695 | <span | 1695 | <span |
1696 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" | 1696 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" |
1697 | ></span> | 1697 | ></span> |
1698 | <span>Shirts</span> | 1698 | <span>Shirts</span> |
1699 | </div> | 1699 | </div> |
1700 | <div class="flex items-center"> | 1700 | <div class="flex items-center"> |
1701 | <span | 1701 | <span |
1702 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 1702 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
1703 | ></span> | 1703 | ></span> |
1704 | <span>Shoes</span> | 1704 | <span>Shoes</span> |
1705 | </div> | 1705 | </div> |
1706 | <div class="flex items-center"> | 1706 | <div class="flex items-center"> |
1707 | <span | 1707 | <span |
1708 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 1708 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
1709 | ></span> | 1709 | ></span> |
1710 | <span>Bags</span> | 1710 | <span>Bags</span> |
1711 | </div> | 1711 | </div> |
1712 | </div> | 1712 | </div> |
1713 | </div> | 1713 | </div> |
1714 | <div | 1714 | <div |
1715 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1715 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1716 | > | 1716 | > |
1717 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 1717 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
1718 | Traffic | 1718 | Traffic |
1719 | </h4> | 1719 | </h4> |
1720 | <canvas id="line"></canvas> | 1720 | <canvas id="line"></canvas> |
1721 | <div | 1721 | <div |
1722 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 1722 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
1723 | > | 1723 | > |
1724 | 1724 | ||
1725 | <div class="flex items-center"> | 1725 | <div class="flex items-center"> |
1726 | <span | 1726 | <span |
1727 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 1727 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
1728 | ></span> | 1728 | ></span> |
1729 | <span>Organic</span> | 1729 | <span>Organic</span> |
1730 | </div> | 1730 | </div> |
1731 | <div class="flex items-center"> | 1731 | <div class="flex items-center"> |
1732 | <span | 1732 | <span |
1733 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 1733 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
1734 | ></span> | 1734 | ></span> |
1735 | <span>Paid</span> | 1735 | <span>Paid</span> |
1736 | </div> | 1736 | </div> |
1737 | </div> | 1737 | </div> |
1738 | </div> | 1738 | </div> |
1739 | </div> | 1739 | </div> |
1740 | --> | 1740 | --> |
1741 | </div> | 1741 | </div> |
1742 | </main> | 1742 | </main> |
1743 | </div> | 1743 | </div> |
1744 | </div> | 1744 | </div> |
1745 | </body> | 1745 | </body> |
1746 | @yield('script') | 1746 | @yield('script') |
1747 | </html> | 1747 | </html> |
1748 | 1748 |
routes/web.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use App\Http\Controllers\Admin\AdminController; | 3 | use App\Http\Controllers\Admin\AdminController; |
4 | use App\Http\Controllers\Admin\CategoryController; | 4 | use App\Http\Controllers\Admin\CategoryController; |
5 | use App\Http\Controllers\Admin\EmployersController; | 5 | use App\Http\Controllers\Admin\EmployersController; |
6 | use App\Http\Controllers\Admin\InfoBloksController; | 6 | use App\Http\Controllers\Admin\InfoBloksController; |
7 | use App\Http\Controllers\Admin\JobTitlesController; | 7 | use App\Http\Controllers\Admin\JobTitlesController; |
8 | use App\Http\Controllers\Admin\UsersController; | 8 | use App\Http\Controllers\Admin\UsersController; |
9 | use App\Http\Controllers\Admin\WorkersController; | 9 | use App\Http\Controllers\Admin\WorkersController; |
10 | use App\Http\Controllers\Auth\LoginController; | 10 | use App\Http\Controllers\Auth\LoginController; |
11 | use App\Http\Controllers\Auth\RegisterController; | 11 | use App\Http\Controllers\Auth\RegisterController; |
12 | use App\Http\Controllers\CKEditorController; | 12 | use App\Http\Controllers\CKEditorController; |
13 | use App\Models\User; | 13 | use App\Models\User; |
14 | use App\Http\Controllers\MainController; | 14 | use App\Http\Controllers\MainController; |
15 | use App\Http\Controllers\HomeController; | 15 | use App\Http\Controllers\HomeController; |
16 | use Illuminate\Support\Facades\Route; | 16 | use Illuminate\Support\Facades\Route; |
17 | use App\Http\Controllers\Admin\CompanyController; | 17 | use App\Http\Controllers\Admin\CompanyController; |
18 | use App\Http\Controllers\Admin\Ad_EmployersController; | 18 | use App\Http\Controllers\Admin\Ad_EmployersController; |
19 | use App\Http\Controllers\Admin\MsgAnswersController; | 19 | use App\Http\Controllers\Admin\MsgAnswersController; |
20 | use App\Http\Controllers\Admin\GroupsController; | 20 | use App\Http\Controllers\Admin\GroupsController; |
21 | use App\Http\Controllers\PagesController; | 21 | use App\Http\Controllers\PagesController; |
22 | use Illuminate\Support\Facades\Storage; | 22 | use Illuminate\Support\Facades\Storage; |
23 | 23 | ||
24 | 24 | ||
25 | /* | 25 | /* |
26 | |-------------------------------------------------------------------------- | 26 | |-------------------------------------------------------------------------- |
27 | | Web Routes | 27 | | Web Routes |
28 | |-------------------------------------------------------------------------- | 28 | |-------------------------------------------------------------------------- |
29 | | | 29 | | |
30 | | Here is where you can register web routes for your application. These | 30 | | Here is where you can register web routes for your application. These |
31 | | routes are loaded by the RouteServiceProvider within a group which | 31 | | routes are loaded by the RouteServiceProvider within a group which |
32 | | contains the "web" middleware group. Now create something great! | 32 | | contains the "web" middleware group. Now create something great! |
33 | | | 33 | | |
34 | */ | 34 | */ |
35 | /* | 35 | /* |
36 | Route::get('/', function () { | 36 | Route::get('/', function () { |
37 | return view('welcome'); | 37 | return view('welcome'); |
38 | })->name('index'); | 38 | })->name('index'); |
39 | */ | 39 | */ |
40 | Route::get('/', [MainController::class, 'index'])->name('index'); | 40 | Route::get('/', [MainController::class, 'index'])->name('index'); |
41 | 41 | ||
42 | //Роуты авторизации, регистрации, восстановления, аутентификации | 42 | //Роуты авторизации, регистрации, восстановления, аутентификации |
43 | Auth::routes(['verify' => true]); | 43 | Auth::routes(['verify' => true]); |
44 | //Личный кабинет пользователя | 44 | //Личный кабинет пользователя |
45 | Route::get('/home', [HomeController::class, 'index'])->name('home'); | 45 | Route::get('/home', [HomeController::class, 'index'])->name('home'); |
46 | 46 | ||
47 | /* | 47 | /* |
48 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { | 48 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { |
49 | $user = User::where('email',$request->input('email'))->first(); | 49 | $user = User::where('email',$request->input('email'))->first(); |
50 | 50 | ||
51 | $user->sendEmailVerificationNotification(); | 51 | $user->sendEmailVerificationNotification(); |
52 | 52 | ||
53 | return 'your response'; | 53 | return 'your response'; |
54 | })->middleware('throttle:6,1')->name('verification.resend'); | 54 | })->middleware('throttle:6,1')->name('verification.resend'); |
55 | */ | 55 | */ |
56 | 56 | ||
57 | // Авторизация, регистрация в админку | 57 | // Авторизация, регистрация в админку |
58 | Route::group([ | 58 | Route::group([ |
59 | 'as' => 'admin.', // имя маршрута, например auth.index | 59 | 'as' => 'admin.', // имя маршрута, например auth.index |
60 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 60 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
61 | 'middleware' => ['guest'], | 61 | 'middleware' => ['guest'], |
62 | ], function () { | 62 | ], function () { |
63 | // Форма регистрации | 63 | // Форма регистрации |
64 | Route::get('register', [AdminController::class, 'register'])->name('register'); | 64 | Route::get('register', [AdminController::class, 'register'])->name('register'); |
65 | 65 | ||
66 | // Создание пользователя | 66 | // Создание пользователя |
67 | Route::post('register', [AdminController::class, 'create'])->name('create'); | 67 | Route::post('register', [AdminController::class, 'create'])->name('create'); |
68 | //Форма входа | 68 | //Форма входа |
69 | Route::get('login', [AdminController::class, 'login'])->name('login'); | 69 | Route::get('login', [AdminController::class, 'login'])->name('login'); |
70 | 70 | ||
71 | // аутентификация | 71 | // аутентификация |
72 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); | 72 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); |
73 | 73 | ||
74 | }); | 74 | }); |
75 | 75 | ||
76 | // Личный кабинет админки | 76 | // Личный кабинет админки |
77 | Route::group([ | 77 | Route::group([ |
78 | 'as' => 'admin.', // имя маршрута, например auth.index | 78 | 'as' => 'admin.', // имя маршрута, например auth.index |
79 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 79 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
80 | 'middleware' => ['auth'], ['admin'], | 80 | 'middleware' => ['auth'], ['admin'], |
81 | ], function() { | 81 | ], function() { |
82 | 82 | ||
83 | // выход | 83 | // выход |
84 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); | 84 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); |
85 | 85 | ||
86 | // кабинет главная страница | 86 | // кабинет главная страница |
87 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); | 87 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); |
88 | 88 | ||
89 | // кабинет профиль админа - форма | 89 | // кабинет профиль админа - форма |
90 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); | 90 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); |
91 | // кабинет профиль админа - сохранение формы | 91 | // кабинет профиль админа - сохранение формы |
92 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); | 92 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); |
93 | 93 | ||
94 | //кабинет сообщения админа | 94 | //кабинет сообщения админа |
95 | //Route::get('messages', [AdminController::class, 'profile'])->name('profile'); | 95 | //Route::get('messages', [AdminController::class, 'profile'])->name('profile'); |
96 | 96 | ||
97 | 97 | ||
98 | // кабинет профиль - форма пароли | 98 | // кабинет профиль - форма пароли |
99 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); | 99 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); |
100 | // кабинет профиль - сохранение формы пароля | 100 | // кабинет профиль - сохранение формы пароля |
101 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); | 101 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); |
102 | 102 | ||
103 | 103 | ||
104 | // кабинет профиль пользователя - форма | 104 | // кабинет профиль пользователя - форма |
105 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); | 105 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); |
106 | // кабинет профиль пользователя - сохранение формы | 106 | // кабинет профиль пользователя - сохранение формы |
107 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); | 107 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); |
108 | 108 | ||
109 | // кабинет профиль работодатель - форма | 109 | // кабинет профиль работодатель - форма |
110 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); | 110 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); |
111 | // кабинет профиль работодатель - сохранение формы | 111 | // кабинет профиль работодатель - сохранение формы |
112 | Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); | 112 | Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); |
113 | 113 | ||
114 | // кабинет профиль работник - форма | 114 | // кабинет профиль работник - форма |
115 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile'); | 115 | Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit'); |
116 | // кабинет профиль работник - сохранение формы | ||
117 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update'); | ||
118 | |||
116 | 119 | ||
117 | // кабинет настройки сайта - форма | 120 | // кабинет настройки сайта - форма |
118 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); | 121 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); |
119 | // кабинет настройки сайта сохранение формы | 122 | // кабинет настройки сайта сохранение формы |
120 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); | 123 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); |
121 | 124 | ||
122 | // кабинет - пользователи | 125 | // кабинет - пользователи |
123 | Route::get('users', [UsersController::class, 'index'])->name('users'); | 126 | Route::get('users', [UsersController::class, 'index'])->name('users'); |
124 | 127 | ||
125 | // кабинет - пользователи | 128 | // кабинет - пользователи |
126 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); | 129 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); |
127 | 130 | ||
128 | // кабинет - работодатели | 131 | // кабинет - работодатели |
129 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); | 132 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); |
130 | 133 | ||
131 | // кабинет - соискатели | 134 | // кабинет - соискатели |
132 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); | 135 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); |
133 | 136 | ||
134 | // кабинет - вакансии | 137 | // кабинет - вакансии |
135 | Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); | 138 | Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); |
136 | 139 | ||
137 | // кабинет - категории | 140 | // кабинет - категории |
138 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); | 141 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); |
139 | /* | 142 | /* |
140 | * CRUD-операции над Справочником Категории | 143 | * CRUD-операции над Справочником Категории |
141 | */ | 144 | */ |
142 | Route::resource('categories', CategoryController::class, ['except' => ['show']]); | 145 | Route::resource('categories', CategoryController::class, ['except' => ['show']]); |
143 | 146 | ||
144 | 147 | ||
145 | //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); | 148 | //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); |
146 | /* | 149 | /* |
147 | * кабинет - CRUD-операции по справочнику должности | 150 | * кабинет - CRUD-операции по справочнику должности |
148 | * | 151 | * |
149 | */ | 152 | */ |
150 | Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); | 153 | Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); |
151 | 154 | ||
152 | // кабинет - сообщения (чтение чужих) | 155 | // кабинет - сообщения (чтение чужих) |
153 | Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); | 156 | Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); |
154 | // кабинет - сообщения (админские) | 157 | // кабинет - сообщения (админские) |
155 | Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages'); | 158 | Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages'); |
156 | // кабинет - сообщения (админские) | 159 | // кабинет - сообщения (админские) |
157 | Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post'); | 160 | Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post'); |
158 | // кабинет - sql - конструкция запросов | 161 | // кабинет - sql - конструкция запросов |
159 | Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql'); | 162 | Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql'); |
160 | 163 | ||
161 | /* | 164 | /* |
162 | * Расписанный подход в описании каждой директорий групп пользователей. | 165 | * Расписанный подход в описании каждой директорий групп пользователей. |
163 | */ | 166 | */ |
164 | // кабинет - группы пользователей | 167 | // кабинет - группы пользователей |
165 | Route::get('groups', [GroupsController::class, 'index'])->name('groups'); | 168 | Route::get('groups', [GroupsController::class, 'index'])->name('groups'); |
166 | // кабинет - добавление форма группы пользователей | 169 | // кабинет - добавление форма группы пользователей |
167 | Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); | 170 | Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); |
168 | // кабинет - сохранение формы группы пользователей | 171 | // кабинет - сохранение формы группы пользователей |
169 | Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); | 172 | Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); |
170 | // кабинет - редактирование форма группы пользователей | 173 | // кабинет - редактирование форма группы пользователей |
171 | Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); | 174 | Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); |
172 | // кабинет - сохранение редактированной формы группы пользователей | 175 | // кабинет - сохранение редактированной формы группы пользователей |
173 | Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); | 176 | Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); |
174 | // кабинет - удаление группы пользователей | 177 | // кабинет - удаление группы пользователей |
175 | Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); | 178 | Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); |
176 | 179 | ||
177 | 180 | ||
178 | // кабинет - список админов | 181 | // кабинет - список админов |
179 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); | 182 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); |
180 | 183 | ||
181 | 184 | ||
182 | /////редактор////// кабинет - редактор сайта//////////////////////// | 185 | /////редактор////// кабинет - редактор сайта//////////////////////// |
183 | Route::get('editor-site', function() { | 186 | Route::get('editor-site', function() { |
184 | return view('admin.editor.index'); | 187 | return view('admin.editor.index'); |
185 | })->name('editor-site'); | 188 | })->name('editor-site'); |
186 | 189 | ||
187 | 190 | ||
188 | // кабинет - редактор шапки-футера сайта | 191 | // кабинет - редактор шапки-футера сайта |
189 | Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); | 192 | Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); |
190 | Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); | 193 | Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); |
191 | Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); | 194 | Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); |
192 | Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); | 195 | Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); |
193 | Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); | 196 | Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); |
194 | Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); | 197 | Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); |
195 | Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); | 198 | Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); |
196 | 199 | ||
197 | 200 | ||
198 | // кабинет - редактор должности на главной | 201 | // кабинет - редактор должности на главной |
199 | Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); | 202 | Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); |
200 | 203 | ||
201 | // кабинет - редактор работодатели на главной | 204 | // кабинет - редактор работодатели на главной |
202 | Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); | 205 | Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); |
203 | 206 | ||
204 | 207 | ||
205 | // кабинет - редактор seo-сайта | 208 | // кабинет - редактор seo-сайта |
206 | Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); | 209 | Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); |
207 | Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); | 210 | Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); |
208 | Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); | 211 | Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); |
209 | Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); | 212 | Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); |
210 | Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); | 213 | Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); |
211 | Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); | 214 | Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); |
212 | Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); | 215 | Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); |
213 | 216 | ||
214 | 217 | ||
215 | // кабинет - редактор страниц | 218 | // кабинет - редактор страниц |
216 | Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); | 219 | Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); |
217 | // кабинет - добавление страницы | 220 | // кабинет - добавление страницы |
218 | Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); | 221 | Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); |
219 | // кабинет - сохранение формы страницы | 222 | // кабинет - сохранение формы страницы |
220 | Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); | 223 | Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); |
221 | // кабинет - редактирование форма страницы | 224 | // кабинет - редактирование форма страницы |
222 | Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); | 225 | Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); |
223 | // кабинет - сохранение редактированной формы страницы | 226 | // кабинет - сохранение редактированной формы страницы |
224 | Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); | 227 | Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); |
225 | // кабинет - удаление страницы | 228 | // кабинет - удаление страницы |
226 | Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); | 229 | Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); |
227 | 230 | ||
228 | 231 | ||
229 | // кабинет - реклама сайта | 232 | // кабинет - реклама сайта |
230 | Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); | 233 | Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); |
231 | Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); | 234 | Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); |
232 | Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); | 235 | Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); |
233 | Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); | 236 | Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); |
234 | Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); | 237 | Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); |
235 | Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); | 238 | Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); |
236 | //////////////////////////////////////////////////////////////////////// | 239 | //////////////////////////////////////////////////////////////////////// |
237 | 240 | ||
238 | 241 | ||
239 | // кабинет - отзывы о работодателе для модерации | 242 | // кабинет - отзывы о работодателе для модерации |
240 | Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); | 243 | Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); |
241 | 244 | ||
242 | // Общая страница статистики | 245 | // Общая страница статистики |
243 | Route::get('statics', function () { | 246 | Route::get('statics', function () { |
244 | return view('admin.static.index'); | 247 | return view('admin.static.index'); |
245 | })->name('statics'); | 248 | })->name('statics'); |
246 | 249 | ||
247 | // кабинет - статистика работников | 250 | // кабинет - статистика работников |
248 | Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); | 251 | Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); |
249 | 252 | ||
250 | // кабинет - статистика вакансий работодателя | 253 | // кабинет - статистика вакансий работодателя |
251 | Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); | 254 | Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); |
252 | 255 | ||
253 | // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника | 256 | // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника |
254 | /* | 257 | /* |
255 | * CRUD-операции над справочником дипломы и документы | 258 | * CRUD-операции над справочником дипломы и документы |
256 | */ | 259 | */ |
257 | //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); | 260 | //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); |
258 | Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); | 261 | Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); |
259 | 262 | ||
260 | // кабинет - роли пользователя | 263 | // кабинет - роли пользователя |
261 | Route::get('roles', [UsersController::class, 'roles'])->name('roles'); | 264 | Route::get('roles', [UsersController::class, 'roles'])->name('roles'); |
262 | 265 | ||
263 | Route::get('logs', function() { | 266 | Route::get('logs', function() { |
264 | $files = Storage::files('logs/laravel.log'); | 267 | $files = Storage::files('logs/laravel.log'); |
265 | print_r($files); | 268 | print_r($files); |
266 | })->name('logs'); | 269 | })->name('logs'); |
267 | 270 | ||
268 | }); | 271 | }); |
269 | 272 | ||
270 | Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); | 273 | Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); |
271 | 274 | ||
272 | Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); | 275 | Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); |
273 | 276 |