Commit 99a41e7618f5ca8521f2d2fa8285be4e0f5bdac2

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

Личный кабинет пользователя, ajax-обработки

Showing 15 changed files with 707 additions and 290 deletions Inline Diff

app/Http/Controllers/WorkerController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers; 3 namespace App\Http\Controllers;
4 4
5 use App\Classes\RusDate; 5 use App\Classes\RusDate;
6 use App\Models\Ad_employer; 6 use App\Models\Ad_employer;
7 use App\Models\Category; 7 use App\Models\Category;
8 use App\Models\Dop_info;
8 use App\Models\Employer; 9 use App\Models\Employer;
10 use App\Models\infobloks;
9 use App\Models\Job_title; 11 use App\Models\Job_title;
10 use App\Models\Message; 12 use App\Models\Message;
11 use App\Models\reclame; 13 use App\Models\reclame;
14 use App\Models\sertification;
12 use App\Models\Static_worker; 15 use App\Models\Static_worker;
13 use App\Models\User; 16 use App\Models\User;
14 use App\Models\User as User_Model; 17 use App\Models\User as User_Model;
15 use App\Models\Worker; 18 use App\Models\Worker;
16 use Carbon\Carbon; 19 use Carbon\Carbon;
17 use Illuminate\Auth\Events\Registered; 20 use Illuminate\Auth\Events\Registered;
18 use Illuminate\Database\Eloquent\Builder; 21 use Illuminate\Database\Eloquent\Builder;
19 use Illuminate\Http\JsonResponse; 22 use Illuminate\Http\JsonResponse;
20 use Illuminate\Http\Request; 23 use Illuminate\Http\Request;
21 use Illuminate\Support\Facades\Auth; 24 use Illuminate\Support\Facades\Auth;
22 use Illuminate\Support\Facades\Hash; 25 use Illuminate\Support\Facades\Hash;
26 use Illuminate\Support\Facades\Storage;
23 use Illuminate\Support\Facades\Validator; 27 use Illuminate\Support\Facades\Validator;
24 28
25 class WorkerController extends Controller 29 class WorkerController extends Controller
26 { 30 {
27 public $status_work = array(0 => 'Ищу работу', 1 => 'Не указано', 2 => 'Не ищу работу'); 31 public $status_work = array(0 => 'Ищу работу', 1 => 'Не указано', 2 => 'Не ищу работу');
28 32
29 //профиль 33 //профиль
30 public function profile(Worker $worker) 34 public function profile(Worker $worker)
31 { 35 {
32 $get_date = date('Y.m'); 36 $get_date = date('Y.m');
33 37
34 $c = Static_worker::query()->where('year_month', '=', $get_date) 38 $c = Static_worker::query()->where('year_month', '=', $get_date)
35 ->where('user_id', '=', $worker->users->id) 39 ->where('user_id', '=', $worker->users->id)
36 ->get(); 40 ->get();
37 41
38 if ($c->count() > 0) { 42 if ($c->count() > 0) {
39 $upd = Static_worker::find($c[0]->id); 43 $upd = Static_worker::find($c[0]->id);
40 $upd->lookin = $upd->lookin + 1; 44 $upd->lookin = $upd->lookin + 1;
41 $upd->save(); 45 $upd->save();
42 } else { 46 } else {
43 $crt = new Static_worker(); 47 $crt = new Static_worker();
44 $crt->lookin = 1; 48 $crt->lookin = 1;
45 $crt->year_month = $get_date; 49 $crt->year_month = $get_date;
46 $crt->user_id = $worker->user_id; 50 $crt->user_id = $worker->user_id;
47 $crt->save(); 51 $crt->save();
48 } 52 }
49 53
50 $stat = Static_worker::query()->where('year_month', '=', $get_date) 54 $stat = Static_worker::query()->where('year_month', '=', $get_date)
51 ->where('user_id', '=', $worker->users->id) 55 ->where('user_id', '=', $worker->users->id)
52 ->get(); 56 ->get();
53 57
54 return view('public.workers.profile', compact('worker', 'stat')); 58 return view('public.workers.profile', compact('worker', 'stat'));
55 } 59 }
56 60
57 // лист база резюме 61 // лист база резюме
58 public function bd_resume() 62 public function bd_resume()
59 { 63 {
60 $status_work = $this->status_work; 64 $status_work = $this->status_work;
61 $resumes = Worker::query()->with('users')->with('job_titles'); 65 $resumes = Worker::query()->with('users')->with('job_titles');
62 66
63 $res_count = $resumes->count(); 67 $res_count = $resumes->count();
64 $resumes = $resumes->paginate(5); 68 $resumes = $resumes->paginate(5);
65 69
66 return view('resume', compact('resumes', 'status_work', 'res_count')); 70 return view('resume', compact('resumes', 'status_work', 'res_count'));
67 } 71 }
68 72
69 // анкета соискателя 73 // анкета соискателя
70 public function resume_profile(Worker $worker) 74 public function resume_profile(Worker $worker)
71 { 75 {
72 $status_work = $this->status_work; 76 $status_work = $this->status_work;
73 $Query = Worker::query()->with('users')->with('job_titles') 77 $Query = Worker::query()->with('users')->with('job_titles')
74 ->with('place_worker')->with('sertificate')->with('prev_company') 78 ->with('place_worker')->with('sertificate')->with('prev_company')
75 ->with('infobloks'); 79 ->with('infobloks');
76 $Query = $Query->where('id', '=', $worker->id); 80 $Query = $Query->where('id', '=', $worker->id);
77 $Query = $Query->get(); 81 $Query = $Query->get();
78 return view('worker', compact('Query', 'status_work')); 82 return view('worker', compact('Query', 'status_work'));
79 } 83 }
80 84
81 // скачать анкету соискателя 85 // скачать анкету соискателя
82 public function resume_download(Worker $worker) 86 public function resume_download(Worker $worker)
83 { 87 {
84 print_r('Резюме для скачивания'); 88 print_r('Резюме для скачивания');
85 } 89 }
86 90
87 // Кабинет работника 91 // Кабинет работника
88 public function cabinet() 92 public function cabinet()
89 { 93 {
90 $id = Auth()->user()->id; 94 $id = Auth()->user()->id;
91 $Worker = Worker::query()->with('sertificate')-> 95 $Worker = Worker::query()->with('users')->with('sertificate')->with('prev_company')->
92 with('infobloks')->with('place_worker')-> 96 with('infobloks')->with('place_worker')->
93 WhereHas('users', 97 WhereHas('users',
94 function (Builder $query) use ($id) {$query->Where('id', $id); 98 function (Builder $query) use ($id) {$query->Where('id', $id);
95 })->get(); 99 })->get();
96 dd($Worker); 100
97 return view('workers.cabinet', compact('Worker')); 101 $Job_titles = Job_title::query()->OrderBy('name')->get();
102 $Infoblocks = infobloks::query()->OrderBy('name')->get();
103
104 return view('workers.cabinet', compact('Worker', 'Job_titles', 'Infoblocks'));
98 } 105 }
99 106
100 // Сохранение данных 107 // Сохранение данных
101 public function cabinet_save(Worker $worker, Request $request) 108 public function cabinet_save(Worker $worker, Request $request)
102 { 109 {
110 $id = $worker->id;
111 $params = $request->all();
112
113 $job_title_id = $request->get('job_title_id');
114
115 unset($params['new_diplom']);
116 unset($params['new_data_begin']);
117 unset($params['new_data_end']);
118 unset($params['new_job_title']);
119 unset($params['new_teplohod']);
120 unset($params['new_GWT']);
121 unset($params['new_KBT']);
122 unset($params['new_Begin_work']);
123 unset($params['new_End_work']);
124 unset($params['new_name_company']);
125
126 $rules = [
127 'surname' => ['required', 'string', 'max:255'],
128 'name_man' => ['required', 'string', 'max:255'],
129 'email' => ['required', 'string', 'email', 'max:255'],
130
131 ];
132
133 $messages = [
134 'required' => 'Укажите обязательное поле',
135 'min' => [
136 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
137 'integer' => 'Поле «:attribute» должно быть :min или больше',
138 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
139 ],
140 'max' => [
141 'string' => 'Поле «:attribute» должно быть не больше :max символов',
142 'integer' => 'Поле «:attribute» должно быть :max или меньше',
143 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
144 ]
145 ];
146
147 $validator = Validator::make($params, $rules, $messages);
148
149 if ($validator->fails()) {
150 return redirect()->route('worker.cabinet')->withErrors($validator);
151 } else {
152
153 if ($request->has('photo')) {
154 if (!empty($Worker->photo)) {
155 Storage::delete($Worker->photo);
156 }
157 $params['photo'] = $request->file('photo')->store("worker/$id", 'public');
158 }
159
160 if ($request->has('file')) {
161 if (!empty($Worker->file)) {
162 Storage::delete($Worker->file);
163 }
164 $params['file'] = $request->file('file')->store("worker/$id", 'public');
165 }
166
167 $id_wor = $worker->update($params);
168
169 $use = User_Model::find($id_wor);
170 $use->surname = $request->get('surname');
171 $use->name_man = $request->get('name_man');
172 $use->surname2 = $request->get('surname2');
173
174 $use->save();
175 $worker->job_titles()->sync($job_title_id);
103 176
177 return redirect()->route('worker.cabinet')->with('success', 'Данные были успешно сохранены');
178 }
104 } 179 }
105 180
106 // Сообщения данные 181 // Сообщения данные
107 public function messages($type_message) 182 public function messages($type_message)
108 { 183 {
109 $user_id = Auth()->user()->id; 184 $user_id = Auth()->user()->id;
110 185
111 $messages_input = Message::query()->with('vacancies')->with('user_from')-> 186 $messages_input = Message::query()->with('vacancies')->with('user_from')->
112 Where('to_user_id', $user_id)->OrderByDesc('created_at'); 187 Where('to_user_id', $user_id)->OrderByDesc('created_at');
113 188
114 $messages_output = Message::query()->with('vacancies')-> 189 $messages_output = Message::query()->with('vacancies')->
115 with('user_to')->where('user_id', $user_id)-> 190 with('user_to')->where('user_id', $user_id)->
116 OrderByDesc('created_at'); 191 OrderByDesc('created_at');
117 192
118 193
119 $count_input = $messages_input->count(); 194 $count_input = $messages_input->count();
120 $count_output = $messages_output->count(); 195 $count_output = $messages_output->count();
121 196
122 if ($type_message == 'input') { 197 if ($type_message == 'input') {
123 $messages = $messages_input->paginate(15); 198 $messages = $messages_input->paginate(15);
124 } 199 }
125 200
126 if ($type_message == 'output') { 201 if ($type_message == 'output') {
127 $messages = $messages_output->paginate(15); 202 $messages = $messages_output->paginate(15);
128 } 203 }
129 // Вернуть все 100% 204 // Вернуть все 100%
130 return view('workers.messages', compact('messages', 'count_input', 'count_output', 'type_message', 'user_id')); 205 return view('workers.messages', compact('messages', 'count_input', 'count_output', 'type_message', 'user_id'));
131 } 206 }
132 207
133 // Избранный 208 // Избранный
134 public function favorite() 209 public function favorite()
135 { 210 {
136 dd('dgfghfghfgh');
137 return view('workers.favorite'); 211 return view('workers.favorite');
138 } 212 }
139 213
140
141 // Сменить пароль 214 // Сменить пароль
142 public function new_password() 215 public function new_password()
143 { 216 {
144 $email = Auth()->user()->email; 217 $email = Auth()->user()->email;
145 return view('workers.new_password', compact('email')); 218 return view('workers.new_password', compact('email'));
146 } 219 }
147 220
148 // Обновление пароля 221 // Обновление пароля
149 public function save_new_password(Request $request) { 222 public function save_new_password(Request $request) {
150 $use = Auth()->user(); 223 $use = Auth()->user();
151 $request->validate([ 224 $request->validate([
152 'password' => 'required|string', 225 'password' => 'required|string',
153 'new_password' => 'required|string', 226 'new_password' => 'required|string',
154 'new_password2' => 'required|string' 227 'new_password2' => 'required|string'
155 ]); 228 ]);
156 229
157 if ($request->get('new_password') == $request->get('new_password2')) 230 if ($request->get('new_password') == $request->get('new_password2'))
158 if ($request->get('password') !== $request->get('new_password')) { 231 if ($request->get('password') !== $request->get('new_password')) {
159 $credentials = $request->only('email', 'password'); 232 $credentials = $request->only('email', 'password');
160 if (Auth::attempt($credentials)) { 233 if (Auth::attempt($credentials)) {
161 234
162 if (!is_null($use->email_verified_at)){ 235 if (!is_null($use->email_verified_at)){
163 236
164 $user_data = User_Model::find($use->id); 237 $user_data = User_Model::find($use->id);
165 $user_data->update([ 238 $user_data->update([
166 'password' => Hash::make($request->get('new_password')), 239 'password' => Hash::make($request->get('new_password')),
167 'pubpassword' => base64_encode($request->get('new_password')), 240 'pubpassword' => base64_encode($request->get('new_password')),
168 ]); 241 ]);
169 return redirect() 242 return redirect()
170 ->route('worker.new_password') 243 ->route('worker.new_password')
171 ->with('success', 'Поздравляю! Вы обновили свой пароль!'); 244 ->with('success', 'Поздравляю! Вы обновили свой пароль!');
172 } 245 }
173 246
174 return redirect() 247 return redirect()
175 ->route('worker.new_password') 248 ->route('worker.new_password')
176 ->withError('Данная учетная запись не было верифицированна!'); 249 ->withError('Данная учетная запись не было верифицированна!');
177 } 250 }
178 } 251 }
179 252
180 return redirect() 253 return redirect()
181 ->route('worker.new_password') 254 ->route('worker.new_password')
182 ->withErrors('Не совпадение данных, обновите пароли!'); 255 ->withErrors('Не совпадение данных, обновите пароли!');
183 } 256 }
184 257
185 // Удаление профиля форма 258 // Удаление профиля форма
186 public function delete_profile() 259 public function delete_profile()
187 { 260 {
188 $login = Auth()->user()->email; 261 $login = Auth()->user()->email;
189 return view('workers.delete_profile', compact('login')); 262 return view('workers.delete_profile', compact('login'));
190 } 263 }
191 264
192 // Удаление профиля код 265 // Удаление профиля код
193 public function delete_profile_result(Request $request) { 266 public function delete_profile_result(Request $request) {
194 $Answer = $request->all(); 267 $Answer = $request->all();
195 $user_id = Auth()->user()->id; 268 $user_id = Auth()->user()->id;
196 $request->validate([ 269 $request->validate([
197 'password' => 'required|string', 270 'password' => 'required|string',
198 ]); 271 ]);
199 272
200 $credentials = $request->only('email', 'password'); 273 $credentials = $request->only('email', 'password');
201 if (Auth::attempt($credentials)) { 274 if (Auth::attempt($credentials)) {
202 Auth::logout(); 275 Auth::logout();
203 $it = User_Model::find($user_id); 276 $it = User_Model::find($user_id);
204 //$it->delete(); 277 //$it->delete();
205 return redirect()->route('index')->with('success', 'Вы успешно удалили свой аккаунт'); 278 return redirect()->route('index')->with('success', 'Вы успешно удалили свой аккаунт');
206 } else { 279 } else {
207 return redirect()->route('worker.delete_profile') 280 return redirect()->route('worker.delete_profile')
208 ->withErrors( 'Неверный пароль! Нужен корректный пароль'); 281 ->withErrors( 'Неверный пароль! Нужен корректный пароль');
209 } 282 }
210 } 283 }
211 284
212 // Регистрация соискателя 285 // Регистрация соискателя
213 public function register_worker(Request $request) 286 public function register_worker(Request $request)
214 { 287 {
215 $params = $request->all(); 288 $params = $request->all();
216 289
217 $rules = [ 290 $rules = [
218 'surname' => ['required', 'string', 'max:255'], 291 'surname' => ['required', 'string', 'max:255'],
219 'name_man' => ['required', 'string', 'max:255'], 292 'name_man' => ['required', 'string', 'max:255'],
220 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 293 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
221 'password' => ['required', 'string', 'min:8'], 294 'password' => ['required', 'string', 'min:8'],
222 ]; 295 ];
223 296
224 $messages = [ 297 $messages = [
225 'required' => 'Укажите обязательное поле', 298 'required' => 'Укажите обязательное поле',
226 'min' => [ 299 'min' => [
227 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 300 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
228 'integer' => 'Поле «:attribute» должно быть :min или больше', 301 'integer' => 'Поле «:attribute» должно быть :min или больше',
229 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 302 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
230 ], 303 ],
231 'max' => [ 304 'max' => [
232 'string' => 'Поле «:attribute» должно быть не больше :max символов', 305 'string' => 'Поле «:attribute» должно быть не больше :max символов',
233 'integer' => 'Поле «:attribute» должно быть :max или меньше', 306 'integer' => 'Поле «:attribute» должно быть :max или меньше',
234 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 307 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
235 ] 308 ]
236 ]; 309 ];
237 310
238 311
239 312
240 313
241 if ($request->get('password') !== $request->get('confirmed')){ 314 if ($request->get('password') !== $request->get('confirmed')){
242 return json_encode(Array("ERROR" => "Error: Не совпадают пароль и подтверждение пароля")); 315 return json_encode(Array("ERROR" => "Error: Не совпадают пароль и подтверждение пароля"));
243 } 316 }
244 317
245 $validator = Validator::make($request->all(), $rules, $messages); 318 $validator = Validator::make($request->all(), $rules, $messages);
246 319
247 if ($validator->fails()) { 320 if ($validator->fails()) {
248 return json_encode(Array("ERROR" => "Error1: Регистрация оборвалась ошибкой! Не все обязательные поля заполнены. Либо вы уже были зарегистрированы в системе.")); 321 return json_encode(Array("ERROR" => "Error1: Регистрация оборвалась ошибкой! Не все обязательные поля заполнены. Либо вы уже были зарегистрированы в системе."));
249 } else { 322 } else {
250 $user = $this->create($params); 323 $user = $this->create($params);
251 event(new Registered($user)); 324 event(new Registered($user));
252 325
253 Auth::guard()->login($user); 326 Auth::guard()->login($user);
254 } 327 }
255 if ($user) { 328 if ($user) {
256 return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl()));; 329 return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl()));;
257 } else { 330 } else {
258 return json_encode(Array("ERROR" => "Error2: Данные были утеряны!")); 331 return json_encode(Array("ERROR" => "Error2: Данные были утеряны!"));
259 } 332 }
260 } 333 }
261 334
262 // Создание пользователя 335 // Создание пользователя
263 protected function create(array $data) 336 protected function create(array $data)
264 { 337 {
265 $Use = new User(); 338 $Use = new User();
266 $Code_user = $Use->create([ 339 $Code_user = $Use->create([
267 'name' => $data['surname']." ".$data['name_man'], 340 'name' => $data['surname']." ".$data['name_man'],
268 'name_man' => $data['name_man'], 341 'name_man' => $data['name_man'],
269 'surname' => $data['surname'], 342 'surname' => $data['surname'],
270 'surname2' => $data['surname2'], 343 'surname2' => $data['surname2'],
271 'subscribe_email' => $data['email'], 344 'subscribe_email' => $data['email'],
272 'email' => $data['email'], 345 'email' => $data['email'],
273 'telephone' => $data['telephone'], 346 'telephone' => $data['telephone'],
274 'password' => Hash::make($data['password']), 347 'password' => Hash::make($data['password']),
275 'pubpassword' => base64_encode($data['password']), 348 'pubpassword' => base64_encode($data['password']),
276 'email_verified_at' => Carbon::now() 349 'email_verified_at' => Carbon::now()
277 ]); 350 ]);
278 if ($Code_user->id > 0) { 351 if ($Code_user->id > 0) {
279 $Worker = new Worker(); 352 $Worker = new Worker();
280 $Worker->user_id = $Code_user->id; 353 $Worker->user_id = $Code_user->id;
281 $Worker->position_work = $data['job_titles']; 354 $Worker->position_work = $data['job_titles'];
282 $Worker->email = $data['email']; 355 $Worker->email = $data['email'];
283 $Worker->telephone = $data['telephone']; 356 $Worker->telephone = $data['telephone'];
284 $Worker->save(); 357 $Worker->save();
285 358
286 return $Code_user; 359 return $Code_user;
287 } 360 }
288 } 361 }
289 362
290 // Борьба против колорадских жуков, хотя жуков победил все таки 45. 363 // Борьба против колорадских жуков, хотя жуков победил все таки 45.
291 public function colorado(Request $request) { 364 public function colorado(Request $request) {
292 if (isset($_COOKIE['favorite_vac'])) { 365 if (isset($_COOKIE['favorite_vac'])) {
293 $items = RusDate::count_vacancy_fav(); 366 $items = RusDate::count_vacancy_fav();
294 $it = $_COOKIE['favorite_vac']; 367 $it = $_COOKIE['favorite_vac'];
295 $it = str_replace('"', "", $it); 368 $it = str_replace('"', "", $it);
296 $it = str_replace('[', "", $it); 369 $it = str_replace('[', "", $it);
297 $it = str_replace(']', "", $it); 370 $it = str_replace(']', "", $it);
298 $Arr = explode(",", $it); 371 $Arr = explode(",", $it);
299 } else { 372 } else {
300 $Arr = Array(); 373 $Arr = Array();
301 } 374 }
302 375
303 $Query = Ad_employer::Query(); 376 $Query = Ad_employer::Query();
304 if (count($Arr) > 0) { 377 if (count($Arr) > 0) {
305 $Query = $Query->whereIn('id', $Arr); 378 $Query = $Query->whereIn('id', $Arr);
306 } 379 }
307 $Query = $Query->with('jobs')-> 380 $Query = $Query->with('jobs')->
308 with('cat')-> 381 with('cat')->
309 with('employer')-> 382 with('employer')->
310 whereHas('jobs_code', function ($query) use ($request) { 383 whereHas('jobs_code', function ($query) use ($request) {
311 if ($request->ajax()) { 384 if ($request->ajax()) {
312 if (null !== ($request->get('job'))) { 385 if (null !== ($request->get('job'))) {
313 $query->where('job_title_id', $request->get('job')); 386 $query->where('job_title_id', $request->get('job'));
314 } 387 }
315 } 388 }
316 })->select('ad_employers.*'); 389 })->select('ad_employers.*');
317 390
318 $Job_title = Job_title::query()->OrderBy('name')->get(); 391 $Job_title = Job_title::query()->OrderBy('name')->get();
319 392
320 $Query_count = $Query->count(); 393 $Query_count = $Query->count();
321 394
322 $Query = $Query->OrderBy('updated_at')->paginate(3); 395 $Query = $Query->OrderBy('updated_at')->paginate(3);
323 396
324 return view('workers.favorite', compact('Query', 397 return view('workers.favorite', compact('Query',
325 'Query_count', 398 'Query_count',
326 'Job_title')); 399 'Job_title'));
327 400
328 } 401 }
329 402
330 //Переписка пись-пись-пись 403 //Переписка пись-пись-пись
331 public function dialog(User_Model $user1, User_Model $user2) { 404 public function dialog(User_Model $user1, User_Model $user2) {
332 if (isset($user2->id)) { 405 if (isset($user2->id)) {
333 $companion = User_Model::query()->with('workers')-> 406 $companion = User_Model::query()->with('workers')->
334 with('employers')-> 407 with('employers')->
335 where('id', $user2->id)->first(); 408 where('id', $user2->id)->first();
336 } 409 }
337 410
338 $Messages = Message::query()->with('response')->where(function($query) use ($user1, $user2) { 411 $Messages = Message::query()->with('response')->where(function($query) use ($user1, $user2) {
339 $query->where('user_id', $user1->id)->where('to_user_id', $user2->id); 412 $query->where('user_id', $user1->id)->where('to_user_id', $user2->id);
340 })->orWhere(function($query) use ($user1, $user2) { 413 })->orWhere(function($query) use ($user1, $user2) {
341 $query->where('user_id', $user2->id)->where('to_user_id', $user1->id); 414 $query->where('user_id', $user2->id)->where('to_user_id', $user1->id);
342 })->OrderBy('created_at')->get(); 415 })->OrderBy('created_at')->get();
343 416
344 $id_vac = null; 417 $id_vac = null;
345 foreach ($Messages as $it) { 418 foreach ($Messages as $it) {
346 if (isset($it->response)) { 419 if (isset($it->response)) {
347 foreach ($it->response as $r) { 420 foreach ($it->response as $r) {
348 if (isset($r->ad_employer_id)) { 421 if (isset($r->ad_employer_id)) {
349 $id_vac = $r->ad_employer_id; 422 $id_vac = $r->ad_employer_id;
350 break; 423 break;
351 } 424 }
352 } 425 }
353 } 426 }
354 if (!is_null($id_vac)) break; 427 if (!is_null($id_vac)) break;
355 } 428 }
356 429
357 $ad_employer = null; 430 $ad_employer = null;
358 if (!is_null($id_vac)) $ad_employer = Ad_employer::query()->where('id', $id_vac)->first(); 431 if (!is_null($id_vac)) $ad_employer = Ad_employer::query()->where('id', $id_vac)->first();
359 $sender = $user1; 432 $sender = $user1;
360 433
361 return view('workers.dialog', compact('companion', 'sender', 'Messages', 'ad_employer')); 434 return view('workers.dialog', compact('companion', 'sender', 'Messages', 'ad_employer'));
362 } 435 }
436
437 // Даунлоады
438 public function download(Worker $worker) {
439
440 }
441
442 // Поднятие анкеты
443 public function up(Worker $worker) {
444 $worker->updated_at = Carbon::now();
445 $worker->save();
446 return redirect()->route('worker.cabinet')->with('success', 'Ваша анкета была поднята выше остальных');
447 }
448
449 // Добавление сертификата
450 public function add_serificate(Request $request) {
451 $params = $request->all();
452 $params['date_begin'] = date('d.m.Y', strtotime($params['date_begin']));
453 $params['end_begin'] = date('d.m.Y', strtotime($params['end_begin']));
454 $Sertificate = new sertification();
455 $Sertificate->create($params);
456 $Docs = sertification::query()->where('worker_id', $request->get('worker_id'))->get();
457 return view('ajax.documents', compact('Docs'));
458 }
459
460
461 // Удалить сертификат
462 public function delete_sertificate(sertification $doc) {
463 $doc->delete();
464
465 return redirect()->route('worker.cabinet');
466 }
467
468 // Добавление диплома
469 public function add_diplom_ajax(Request $request) {
470 // конец
471 $params = $request->all();
472 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count();
473
474 if ($count == 0) $dop_info = Dop_info::create($params);
475 $Infoblocks = infobloks::query()->get();
476 $Worker = Worker::query()->where('id', $request->get('worker_id'))->get();
477 $data = Dop_info::query()->where('worker_id', $request->has('worker_id'));
478 return view('ajax.dop_info', compact('data', 'Infoblocks', 'Worker'));
479 }
480
481 // Добавление диплома без ajax
482 public function add_diplom(Worker $worker) {
483 $worker_id = $worker->id;
484 $Infoblocks = infobloks::query()->get();
485 return view('workers.dop_info', compact('worker_id', 'worker', 'Infoblocks'));
486 }
487 // Сохранить
488 // Сохраняю диплом
489 public function add_diplom_save(Request $request) {
490 $params = $request->all();
491 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count();
492 if ($count == 0) $dop_info = Dop_info::create($params);
493 return redirect()->route('worker.cabinet');
494 }
363 } 495 }
app/Http/Requests/VacansiaRequiest.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 VacansiaRequiest extends FormRequest 7 class VacansiaRequiest 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 24
25 public function rules() 25 public function rules()
26 { 26 {
27 return [ 27 return [
28 'name' => [ 28 'name' => [
29 'required', 29 'required',
30 'min:3', 30 'min:3',
31 'max:255', 31 'max:255',
32 ], 32 ],
33 33
34 'category_id' => [ 34 'category_id' => [
35 'numeric', 35 'numeric',
36 'min:0', 36 'min:0',
37 'max:9999999', 37 'max:9999999',
38 ], 38 ],
39 39
40 'telephone' => [ 40 'telephone' => [
41 'min:3', 41 'min:3',
42 'max:255', 42 'max:255',
43 ], 43 ],
44 44
45 'email' => [ 45 'email' => [
46 'min:3', 46 'min:3',
47 'max:255', 47 'max:255',
48 ], 48 ],
49 49
50 'salary' => [ 50 'salary' => [
51 'numeric',
51 'min:3', 52 'min:3',
52 'max:255', 53 'max:255',
53 ], 54 ],
54 55
56 'min_salary' => [
57 'numeric',
58 'min:0',
59 'max:9999999',
60 ],
61
62 'max_salary' => [
63 'numeric',
64 'min:0',
65 'max:9999999',
66 ],
67
55 'city' => [ 68 'city' => [
56 'min:3', 69 'min:3',
57 'max:255', 70 'max:255',
58 ], 71 ],
72
73 'job_title_id' => [
74 'numeric',
75 'min:1',
76 'max:9999999'
77 ]
59 ]; 78 ];
60 } 79 }
61 80
62 public function messages() { 81 public function messages() {
63 return [ 82 return [
64 'required' => 'Поле «:attribute» обязательно для заполнения', 83 'required' => 'Поле «:attribute» обязательно для заполнения',
65 'unique' => 'Такое значение поля «:attribute» уже используется', 84 'unique' => 'Такое значение поля «:attribute» уже используется',
66 'min' => [ 85 'min' => [
67 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 86 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
68 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 87 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
69 ], 88 ],
70 'max' => [ 89 'max' => [
71 'string' => 'Поле «:attribute» должно быть не больше :max символов', 90 'string' => 'Поле «:attribute» должно быть не больше :max символов',
72 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 91 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
73 ], 92 ],
74 'mimes' => 'Файл «:attribute» должен иметь формат :values', 93 'mimes' => 'Файл «:attribute» должен иметь формат :values',
75 'numeric' => 'В поле «:attribute» должно быть указано целое число от 0 до 9999999', 94 'numeric' => 'В поле «:attribute» должно быть указано целое число от 0 до 9999999',
76 ]; 95 ];
77 96
78 } 97 }
79 } 98 }
80 99
app/Models/Dop_info.php
File was created 1 <?php
2
3 namespace App\Models;
4
5 use Illuminate\Database\Eloquent\Factories\HasFactory;
6 use Illuminate\Database\Eloquent\Model;
7
8 class Dop_info extends Model
9 {
10 use HasFactory;
11
12 public $table = 'dop_info';
13
14 public $fillable = [
15 'worker_id',
16 'infoblok_id',
17 'text'
18 ];
19 }
20
app/Models/Title_worker.php
File was created 1 <?php
2
3 namespace App\Models;
4
5 use Illuminate\Database\Eloquent\Factories\HasFactory;
6 use Illuminate\Database\Eloquent\Model;
7
8 class Title_worker extends Model
9 {
10 use HasFactory;
11 }
12
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 $table = 'Workers'; 12 protected $table = 'Workers';
13 13
14 protected $fillable = [ 14 protected $fillable = [
15 'user_id', 15 'user_id',
16 'status_work', 16 'status_work',
17 'position_work', 17 'position_work',
18 'telephone', 18 'telephone',
19 'telephone2', 19 'telephone2',
20 'persent_anketa', 20 'persent_anketa',
21 'photo', 21 'photo',
22 'email_data', 22 'email_data',
23 'status_profile', 23 'status_profile',
24 'old_year', 24 'old_year',
25 'experience', 25 'experience',
26 'en_is', 26 'en_is',
27 'education', 27 'education',
28 'email', 28 'email',
29 'interpassport', 29 'interpassport',
30 'mk', 30 'mk',
31 'vvp', 31 'vvp',
32 'vlm', 32 'vlm',
33 'reka_diplom', 33 'reka_diplom',
34 'more_diplom', 34 'more_diplom',
35 'mpss', 35 'mpss',
36 'tanker', 36 'tanker',
37 'gmssb', 37 'gmssb',
38 'resume', 38 'resume',
39 'sort', 39 'sort',
40 'updated_at', 40 'updated_at',
41 'text', 41 'text',
42 'address', 42 'address',
43 'city', 43 'city',
44 'coord', 44 'coord',
45 'file', 45 'file',
46 'is_remove', 46 'is_remove',
47 'favorite_user', 47 'favorite_user',
48 'sroch_user' 48 'sroch_user'
49 ]; 49 ];
50 50
51 /* 51 /*
52 * Связь таблицы users с таблицей workers 52 * Связь таблицы users с таблицей workers
53 */ 53 */
54 public function users() { 54 public function users() {
55 return $this->belongsTo(User::class, 'user_id'); 55 return $this->belongsTo(User::class, 'user_id');
56 } 56 }
57 57
58 // Связь Работника с сертификами (0-0 - 1) 58 // Связь Работника с сертификами (0-0 - 1)
59 public function sertificate() { 59 public function sertificate() {
60 return $this->hasMany(sertification::class); 60 return $this->hasMany(sertification::class);
61 } 61 }
62 62
63 // Связь Работника с должностями (0-0 - 1) 63 // Связь Работника с должностями (0-0 - 1)
64 public function job_titles() { 64 public function job_titles() {
65 return $this->hasMany(Job_title::class, 'id'); 65 return $this->belongsToMany(Job_title::class, 'title_workers');
66 } 66 }
67 67
68 //Связь Работника с опытом работы (1 - 0-0) 68 //Связь Работника с опытом работы (1 - 0-0)
69 public function place_worker() { 69 public function place_worker() {
70 return $this->hasMany(place_works::class); 70 return $this->hasMany(place_works::class);
71 } 71 }
72 72
73 public function scopeActive($query) { 73 public function scopeActive($query) {
74 return $query->where('is_remove', '=', '0'); 74 return $query->where('is_remove', '=', '0');
75 } 75 }
76 76
77 //Связь Работника с предыдущими компаниями 77 //Связь Работника с предыдущими компаниями
78 public function prev_company() { 78 public function prev_company() {
79 return $this->hasMany(PrevCompany::class); 79 return $this->hasMany(PrevCompany::class);
80 } 80 }
81 81
82 //Связь Работника с инфоблоками (0-0 - 0-0) 82 //Связь Работника с инфоблоками (0-0 - 0-0)
83 public function infobloks() { 83 public function infobloks() {
84 return $this->belongsToMany(infobloks::class,'dop_info', 'worker_id', 'infoblok_id'); 84 return $this->belongsToMany(infobloks::class,'dop_info', 'worker_id', 'infoblok_id');
85 } 85 }
86 86
87 } 87 }
88 88
app/Models/sertification.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 sertification extends Model 8 class sertification extends Model
9 { 9 {
10 use HasFactory; 10 use HasFactory;
11
12 protected $fillable = [
13 'date_begin',
14 'end_begin',
15 'worker_id',
16 'name',
17 'education'
18 ];
11 } 19 }
12 20
database/migrations/2024_03_05_100903_create_title_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::create('title_workers', function (Blueprint $table) {
17 $table->id();
18 $table->bigInteger('worker_id')->nullable(false);
19 $table->bigInteger('jib_title_id')->nullable(false);
20 $table->timestamps();
21 });
22 }
23
24 /**
25 * Reverse the migrations.
26 *
27 * @return void
28 */
29 public function down()
30 {
31 Schema::dropIfExists('title_workers');
32 }
33 };
34
resources/views/ajax/documents.blade.php
File was created 1 @if ($Docs->count())
2 @php $i = 0; @endphp
3 @foreach($Docs as $it)
4 <div style="margin-bottom: 20px" class="cabinet__body-item">
5 @if ($i == 0)
6 <h3 class="cabinet__subtitle">Сертификаты / документы</h3>
7 @endif
8 <h4 class="cabinet__h4">Сертификат {{ $i+1 }}</h4>
9 <div class="cabinet__inputs">
10 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
11 <label class="form-group__label">Название сертификата</label>
12 <div class="form-group__item">
13 <input type="text" class="input" value="{{ $it->name }}" disabled>
14 </div>
15 </div>
16 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
17 <label class="form-group__label">Название сертификата</label>
18 <div class="form-group__item">
19 <input type="text" class="input" value="{{ $it->date_begin }} - {{ $it->end_begin }}" disabled>
20 </div>
21 </div>
22 <button type="button" class="button button_light">
23 <svg>
24 <use xlink:href="{{ asset('images/sprite.svg#del') }}"></use>
25 </svg>
26 Удалить
27 </button>
28 </div>
29 </div>
30 @php $i++ @endphp
31 @endforeach
32 @else
33 <div style="margin-bottom: 20px" class="cabinet__body-item">
34 <h3 class="cabinet__subtitle">Сертификаты / документы</h3>
35 Нет сертификатов
36 </div>
37 @endif
38
resources/views/ajax/dop_info.blade.php
File was created 1 <h4 class="cabinet__h4">Дополнительная информация</h4>
2 <div class="cabinet__inputs">
3 <div class="cabinet__inputs-item form-group">
4 <label class="form-group__label">Верю</label>
5 <div class="form-group__item">
6 <div class="select">
7 <select class="js-select2 sertificates_js">
8 <option value="0">Нет</option>
9 <option value="1" selected>Да</option>
10 </select>
11 </div>
12 </div>
13 </div>
14 @if (isset($Worker[0]->infobloks))
15 @if ($Worker[0]->infobloks->count())
16 @php $i = 1; @endphp
17 @foreach ($Worker[0]->infobloks as $info)
18 <div class="cabinet__inputs-item form-group">
19 <label class="form-group__label">{{ $info->name }}</label>
20 <div class="form-group__item">
21 <div class="select">
22 <select class="js-select2 sertificates_js">
23 <option value="0">Нет</option>
24 <option value="1" selected>Да</option>
25 </select>
26 </div>
27 </div>
28 </div>
29 @php $i++; @endphp
30 @endforeach
31 @endif
32 @endif
33
34 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
35 <label class="form-group__label">Образцы дипломов и документов</label>
36 <div class="form-group__item">
37 <div class="select">
38 <select class="js-select2" id="documents" name="documents">
39 @if ($Infoblocks->count())
40 @foreach ($Infoblocks as $it)
41 <option value="{{ $it->id }}">{{ $it->name }}</option>
42 @endforeach
43 @endif
44 </select>
45 </div>
46 </div>
47 </div>
48 <div name="btn_new_diplom" data-val="{{ $Worker[0]->id }}" id="btn_new_diplom" class="button button_light">
49 Добавить документ
50 </div>
51 </div>
52
resources/views/employers/messages.blade.php
1 @extends('layout.frontend', ['title' => 'Сообщения от пользователей - РекаМоре']) 1 @extends('layout.frontend', ['title' => 'Сообщения от пользователей - РекаМоре'])
2 2
3 @section('scripts') 3 @section('scripts')
4 <script> 4 <script>
5 console.log('Test system'); 5 console.log('Test system');
6 $(document).on('change', '#sort_ajax', function() { 6 $(document).on('change', '#sort_ajax', function() {
7 var this_ = $(this); 7 var this_ = $(this);
8 var val_ = this_.val(); 8 var val_ = this_.val();
9 console.log('sort items '+val_); 9 console.log('sort items '+val_);
10 10
11 $.ajax({ 11 $.ajax({
12 type: "GET", 12 type: "GET",
13 url: "{{ route('shipping_companies') }}", 13 url: "{{ route('shipping_companies') }}",
14 data: "sort="+val_+"&block=1", 14 data: "sort="+val_+"&block=1",
15 success: function (data) { 15 success: function (data) {
16 console.log('Выбор сортировки'); 16 console.log('Выбор сортировки');
17 console.log(data); 17 console.log(data);
18 $('#block_1').html(data); 18 $('#block_1').html(data);
19 }, 19 },
20 headers: { 20 headers: {
21 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 21 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
22 }, 22 },
23 error: function (data) { 23 error: function (data) {
24 data = JSON.stringify(data); 24 data = JSON.stringify(data);
25 console.log('Error: ' + data); 25 console.log('Error: ' + data);
26 } 26 }
27 }); 27 });
28 28
29 $.ajax({ 29 $.ajax({
30 type: "GET", 30 type: "GET",
31 url: "{{ route('shipping_companies') }}", 31 url: "{{ route('shipping_companies') }}",
32 data: "sort="+val_+"&block=2", 32 data: "sort="+val_+"&block=2",
33 success: function (data) { 33 success: function (data) {
34 console.log('Выбор сортировки2'); 34 console.log('Выбор сортировки2');
35 console.log(data); 35 console.log(data);
36 history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); 36 history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif");
37 $('#block_2').html(data); 37 $('#block_2').html(data);
38 }, 38 },
39 headers: { 39 headers: {
40 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 40 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
41 }, 41 },
42 error: function (data) { 42 error: function (data) {
43 data = JSON.stringify(data); 43 data = JSON.stringify(data);
44 console.log('Error: ' + data); 44 console.log('Error: ' + data);
45 } 45 }
46 }); 46 });
47 }); 47 });
48 </script> 48 </script>
49 @endsection 49 @endsection
50 50
51 @section('content') 51 @section('content')
52 <section class="cabinet"> 52 <section class="cabinet">
53 <div class="container"> 53 <div class="container">
54 <ul class="breadcrumbs cabinet__breadcrumbs"> 54 <ul class="breadcrumbs cabinet__breadcrumbs">
55 <li><a href="{{ route('index') }}">Главная</a></li> 55 <li><a href="{{ route('index') }}">Главная</a></li>
56 <li><b>Личный кабинет</b></li> 56 <li><b>Личный кабинет</b></li>
57 </ul> 57 </ul>
58 <div class="cabinet__wrapper"> 58 <div class="cabinet__wrapper">
59 <div class="cabinet__side"> 59 <div class="cabinet__side">
60 <div class="cabinet__side-toper"> 60 <div class="cabinet__side-toper">
61 @include('employers.emblema') 61 @include('employers.emblema')
62 62
63 </div> 63 </div>
64 64
65 @include('employers.menu', ['item' => 5]) 65 @include('employers.menu', ['item' => 5])
66 </div> 66 </div>
67 67
68 <div class="cabinet__body"> 68 <div class="cabinet__body">
69 <div class="cabinet__body-item"> 69 <div class="cabinet__body-item">
70 <h2 class="title cabinet__title">Сообщения123</h2> 70 <h2 class="title cabinet__title">Сообщения</h2>
71 </div> 71 </div>
72 <div class="cabinet__body-item"> 72 <div class="cabinet__body-item">
73 <div class="cabinet__filters"> 73 <div class="cabinet__filters">
74 <div class="cabinet__filters-item"> 74 <div class="cabinet__filters-item">
75 <div class="cabinet__filters-buttons"> 75 <div class="cabinet__filters-buttons">
76 <a href="{{ route('employer.messages', ['type_message' => 'input']) }}" class="button button_light @if ($type_message == 'input') active @endif">Входящие ({{ $count_input }})</a> 76 <a href="{{ route('employer.messages', ['type_message' => 'input']) }}" class="button button_light @if ($type_message == 'input') active @endif">Входящие ({{ $count_input }})</a>
77 <a href="{{ route('employer.messages', ['type_message' => 'output']) }}" class="button button_light @if ($type_message == 'output') active @endif">Исходящие ({{ $count_output }})</a> 77 <a href="{{ route('employer.messages', ['type_message' => 'output']) }}" class="button button_light @if ($type_message == 'output') active @endif">Исходящие ({{ $count_output }})</a>
78 </div> 78 </div>
79 </div> 79 </div>
80 <div class="cabinet__filters-item"> 80 <div class="cabinet__filters-item">
81 <div class="select"> 81 <div class="select">
82 <select class="js-select2" id="sort_ajax" name="sort_ajax"> 82 <select class="js-select2" id="sort_ajax" name="sort_ajax">
83 <option value="default">Сортировка (по умолчанию)</option> 83 <option value="default">Сортировка (по умолчанию)</option>
84 <option value="name (asc)">По имени (возрастание)</option> 84 <option value="name (asc)">По имени (возрастание)</option>
85 <option value="name (desc)">По имени (убывание)</option> 85 <option value="name (desc)">По имени (убывание)</option>
86 <option value="created_at (asc)">По дате (возрастание)</option> 86 <option value="created_at (asc)">По дате (возрастание)</option>
87 <option value="created_at (desc)">По дате (убывание)</option> 87 <option value="created_at (desc)">По дате (убывание)</option>
88 </select> 88 </select>
89 </div> 89 </div>
90 </div> 90 </div>
91 </div> 91 </div>
92 <div class="messages"> 92 <div class="messages">
93 <!--<button type="button" class="messages__button js-toggle js-parent-toggle button button_light button_more"> 93 <!--<button type="button" class="messages__button js-toggle js-parent-toggle button button_light button_more">
94 <span>Показать ещё</span> 94 <span>Показать ещё</span>
95 <span>Скрыть</span> 95 <span>Скрыть</span>
96 </button>--> 96 </button>-->
97 <div class="messages__body"> 97 <div class="messages__body">
98 @if ($messages->count()) 98 @if ($messages->count())
99 @foreach($messages as $it) 99 @foreach($messages as $it)
100 <div class="messages__item"> 100 <div class="messages__item">
101 <div class="messages__item-info"> 101 <div class="messages__item-info">
102 <div class="messages__item-photo"> 102 <div class="messages__item-photo">
103 <svg> 103 <svg>
104 <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> 104 <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use>
105 </svg> 105 </svg>
106 106
107 @if ($type_message == 'input') 107 @if ($type_message == 'input')
108 @if ($it->user_to->is_worker) 108 @if ($it->user_to->is_worker)
109 @if (isset($it->user_to->workers->phote)) 109 @if (isset($it->user_to->workers->phote))
110 <img src="{{ asset(Storage::url($it->user_to->workers->phote)) }}" alt=""> 110 <img src="{{ asset(Storage::url($it->user_to->workers->phote)) }}" alt="">
111 @else 111 @else
112 <img src="{{ asset('images/default_man.jpg') }}" alt=""> 112 <img src="{{ asset('images/default_man.jpg') }}" alt="">
113 @endif 113 @endif
114 @else 114 @else
115 @if (isset($it->user_to->employers->logo)) 115 @if (isset($it->user_to->employers->logo))
116 <img src="{{ asset(Storage::url($it->user_to->employers->logo)) }}" alt=""> 116 <img src="{{ asset(Storage::url($it->user_to->employers->logo)) }}" alt="">
117 @else 117 @else
118 <img src="{{ asset('images/default_man.jpg') }}" alt=""> 118 <img src="{{ asset('images/default_man.jpg') }}" alt="">
119 @endif 119 @endif
120 @endif 120 @endif
121 @endif 121 @endif
122 122
123 @if ($type_message == 'output') 123 @if ($type_message == 'output')
124 @if ($it->user_from->is_worker) 124 @if ($it->user_from->is_worker)
125 @if (isset($it->user_from->workers->phote)) 125 @if (isset($it->user_from->workers->phote))
126 <img src="{{ asset(Storage::url($it->user_from->workers->phote)) }}" alt=""> 126 <img src="{{ asset(Storage::url($it->user_from->workers->phote)) }}" alt="">
127 @else 127 @else
128 <img src="{{ asset('images/default_man.jpg') }}" alt=""> 128 <img src="{{ asset('images/default_man.jpg') }}" alt="">
129 @endif 129 @endif
130 @else 130 @else
131 @if (isset($it->user_from->employers->logo)) 131 @if (isset($it->user_from->employers->logo))
132 <img src="{{ asset(Storage::url($it->user_from->employers->logo)) }}" alt=""> 132 <img src="{{ asset(Storage::url($it->user_from->employers->logo)) }}" alt="">
133 @else 133 @else
134 <img src="{{ asset('images/default_man.jpg') }}" alt=""> 134 <img src="{{ asset('images/default_man.jpg') }}" alt="">
135 @endif 135 @endif
136 @endif 136 @endif
137 @endif 137 @endif
138 </div> 138 </div>
139 <div class="messages__item-text"> 139 <div class="messages__item-text">
140 <div> 140 <div>
141 От: @if (isset($it->user_from)) 141 От: @if (isset($it->user_from))
142 @if ($it->user_from->id !== $user_id) 142 @if ($it->user_from->id !== $user_id)
143 <a href="{{ route('employer.dialog', ['user1' => $user_id, 'user2' => $it->user_from->id]) }}" style="text-decoration: underline"> 143 <a href="{{ route('employer.dialog', ['user1' => $user_id, 'user2' => $it->user_from->id]) }}" style="text-decoration: underline">
144 {{ $it->user_from->surname." ".$it->user_from->name_man." ".$it->user_from->surname2." (".$it->user_from->id.")" }} 144 {{ $it->user_from->surname." ".$it->user_from->name_man." ".$it->user_from->surname2." (".$it->user_from->id.")" }}
145 </a> 145 </a>
146 @else 146 @else
147 {{ $it->user_from->surname." ".$it->user_from->name_man." ".$it->user_from->surname2." (".$it->user_from->id.")" }} 147 {{ $it->user_from->surname." ".$it->user_from->name_man." ".$it->user_from->surname2." (".$it->user_from->id.")" }}
148 @endif 148 @endif
149 @else 149 @else
150 Удаленный пользователь 150 Удаленный пользователь
151 @endif 151 @endif
152 <br> 152 <br>
153 К: @if (isset($it->user_to)) 153 К: @if (isset($it->user_to))
154 @if ($it->user_to->id !== $user_id) 154 @if ($it->user_to->id !== $user_id)
155 <a href="{{ route('employer.dialog', ['user1' => $user_id, 'user2' => $it->user_to->id]) }}" style="text-decoration: underline"> 155 <a href="{{ route('employer.dialog', ['user1' => $user_id, 'user2' => $it->user_to->id]) }}" style="text-decoration: underline">
156 {{ $it->user_to->surname." ".$it->user_to->name_man." ".$it->user_to->surname2." (".$it->user_to->id.")" }} 156 {{ $it->user_to->surname." ".$it->user_to->name_man." ".$it->user_to->surname2." (".$it->user_to->id.")" }}
157 </a> 157 </a>
158 @else 158 @else
159 {{ $it->user_to->surname." ".$it->user_to->name_man." ".$it->user_to->surname2." (".$it->user_to->id.")" }} 159 {{ $it->user_to->surname." ".$it->user_to->name_man." ".$it->user_to->surname2." (".$it->user_to->id.")" }}
160 @endif 160 @endif
161 @else 161 @else
162 Удаленный пользователь 162 Удаленный пользователь
163 @endif 163 @endif
164 </div> 164 </div>
165 <div><span>Вакансия:</span>@if (isset($it->vacancies[0])) {{ $it->vacancies[0]->name." (".($it->vacancies[0]->id).")" }} @else Удалена @endif</div> 165 <div><span>Вакансия:</span>@if (isset($it->vacancies[0])) {{ $it->vacancies[0]->name." (".($it->vacancies[0]->id).")" }} @else Удалена @endif</div>
166 <div><span>Текст:</span>{{ $it->text }}</div> 166 <div><span>Текст:</span>{{ $it->text }}</div>
167 </div> 167 </div>
168 </div> 168 </div>
169 <div class="messages__item-date">{{ $it->created_at }}</div> 169 <div class="messages__item-date">{{ $it->created_at }}</div>
170 </div> 170 </div>
171 @endforeach 171 @endforeach
172 @endif 172 @endif
173 </div> 173 </div>
174 </div> 174 </div>
175 </div> 175 </div>
176 </div> 176 </div>
177 </div> 177 </div>
178 </div> 178 </div>
179 </section> 179 </section>
180 </div> 180 </div>
181 @endsection 181 @endsection
182 182
resources/views/index.blade.php
1 @extends('layout.frontend', ['title' => 'Главная страница РекаМоре']) 1 @extends('layout.frontend', ['title' => 'Главная страница РекаМоре'])
2 2
3 @section('scripts') 3 @section('scripts')
4 <script> 4 <script>
5 console.log('Test system'); 5 console.log('Test system');
6 $(document).on('click', '#button_send', function() { 6 $(document).on('click', '#button_send', function() {
7 var field_login = $('#email'); 7 var field_login = $('#email');
8 var field_pwd = $('#password'); 8 var field_pwd = $('#password');
9 var login_val = field_login.val(); 9 var login_val = field_login.val();
10 var pwd_val = field_pwd.val(); 10 var pwd_val = field_pwd.val();
11 11
12 console.log('login: '+login_val+' password: '+pwd_val); 12 console.log('login: '+login_val+' password: '+pwd_val);
13 13
14 $.ajax({ 14 $.ajax({
15 type: "GET", 15 type: "GET",
16 url: "{{ route('login') }}", 16 url: "{{ route('login') }}",
17 data: "email="+login_val+"&password="+pwd_val, 17 data: "email="+login_val+"&password="+pwd_val,
18 success: function (data) { 18 success: function (data) {
19 console.log('Вход в систему'); 19 console.log('Вход в систему');
20 let d = JSON.parse(data); 20 let d = JSON.parse(data);
21 if(typeof d['REDIRECT'] !== "undefined") { 21 if(typeof d['REDIRECT'] !== "undefined") {
22 location.href = d['REDIRECT']; 22 location.href = d['REDIRECT'];
23 console.log(d['REDIRECT']);
23 } 24 }
24 if (typeof d['ERROR'] !== "undefined") { 25 if (typeof d['ERROR'] !== "undefined") {
26 console.log(d['ERROR']);
25 $('#message_error').html(d['ERROR']); 27 $('#message_error').html(d['ERROR']);
26 } 28 }
27 console.log(d['REDIRECT']); 29 console.log(d['REDIRECT']);
28 //$('#block_1').html(data); 30 //$('#block_1').html(data);
29 }, 31 },
30 headers: { 32 headers: {
31 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 33 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
32 }, 34 },
33 error: function (data) { 35 error: function (data) {
34 data = JSON.stringify(data); 36 data = JSON.stringify(data);
35 console.log('Error: ' + data); 37 console.log('Error: ' + data);
36 } 38 }
37 }); 39 });
38 }); 40 });
39 41
40 $(document).on('click', '#button_reg_worker', function() { 42 $(document).on('click', '#button_reg_worker', function() {
41 var field_login = $('#email_worker'); 43 var field_login = $('#email_worker');
42 var field_pwd = $('#password_worker'); 44 var field_pwd = $('#password_worker');
43 var field_confirm_pwd = $('#password_confirmation_worker'); 45 var field_confirm_pwd = $('#password_confirmation_worker');
44 var field_politik_worker = $('#politik_worker'); 46 var field_politik_worker = $('#politik_worker');
45 var field_telephone_worker = $('#telephone_worker'); 47 var field_telephone_worker = $('#telephone_worker');
46 var field_job_titles_worker = $('#job_titles_worker'); 48 var field_job_titles_worker = $('#job_titles_worker');
47 var field_surname_worker = $('#surname_worker'); 49 var field_surname_worker = $('#surname_worker');
48 var field_name_man = $('#name_man_worker'); 50 var field_name_man = $('#name_man_worker');
49 var field_surname2_worker = $('#surname2_worker'); 51 var field_surname2_worker = $('#surname2_worker');
50 52
51 var login = field_login.val(); 53 var login = field_login.val();
52 var pwd = field_pwd.val(); 54 var pwd = field_pwd.val();
53 var confirm_pwd = field_confirm_pwd.val(); 55 var confirm_pwd = field_confirm_pwd.val();
54 var politik = field_politik_worker.val(); 56 var politik = field_politik_worker.val();
55 var telephone = field_telephone_worker.val(); 57 var telephone = field_telephone_worker.val();
56 var job_titles = field_job_titles_worker.val(); 58 var job_titles = field_job_titles_worker.val();
57 var surname = field_surname_worker.val(); 59 var surname = field_surname_worker.val();
58 var name_man = field_name_man.val(); 60 var name_man = field_name_man.val();
59 var surname2 = field_surname2_worker.val(); 61 var surname2 = field_surname2_worker.val();
60 62
61 63
62 console.log('login: '+login+' password: '+pwd); 64 console.log('login: '+login+' password: '+pwd);
63 65
64 $.ajax({ 66 $.ajax({
65 type: "GET", 67 type: "GET",
66 url: "{{ route('register_worker') }}", 68 url: "{{ route('register_worker') }}",
67 data: "email="+login+"&password="+pwd+"&confirmed="+confirm_pwd+"&politik="+politik+ 69 data: "email="+login+"&password="+pwd+"&confirmed="+confirm_pwd+"&politik="+politik+
68 "&telephone="+telephone+"&job_titles="+job_titles+"&surname="+surname+"&name_man="+name_man+ 70 "&telephone="+telephone+"&job_titles="+job_titles+"&surname="+surname+"&name_man="+name_man+
69 "&surname2="+surname2+"&subscribe_email="+login, 71 "&surname2="+surname2+"&subscribe_email="+login,
70 success: function (data) { 72 success: function (data) {
71 console.log('Вход в систему'); 73 console.log('Вход в систему');
72 let d = JSON.parse(data); 74 let d = JSON.parse(data);
73 if(typeof d['REDIRECT'] !== "undefined") { 75 if(typeof d['REDIRECT'] !== "undefined") {
74 console.log(d['REDIRECT']); 76 console.log(d['REDIRECT']);
75 location.href = d['REDIRECT']; 77 location.href = d['REDIRECT'];
76 } 78 }
77 if (typeof d['ERROR'] !== "undefined") { 79 if (typeof d['ERROR'] !== "undefined") {
78 console.log(d['ERROR']); 80 console.log(d['ERROR']);
79 $('#block-info').css({'display': 'block'}); 81 $('#block-info').css({'display': 'block'});
80 $('#messages_error_reg').html(d['ERROR']); 82 $('#messages_error_reg').html(d['ERROR']);
81 } 83 }
82 console.log(d['REDIRECT']); 84 console.log(d['REDIRECT']);
83 85
84 }, 86 },
85 headers: { 87 headers: {
86 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 88 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
87 }, 89 },
88 error: function (data) { 90 error: function (data) {
89 data = JSON.stringify(data); 91 data = JSON.stringify(data);
90 console.log('Error: ' + data); 92 console.log('Error: ' + data);
91 } 93 }
92 }); 94 });
93 95
94 return false; 96 return false;
95 }); 97 });
96 98
97 $(document).on('click', '#button_reg_employer', function() { 99 $(document).on('click', '#button_reg_employer', function() {
98 var field_login = $('#email_employer'); 100 var field_login = $('#email_employer');
99 var field_pwd = $('#password_employer'); 101 var field_pwd = $('#password_employer');
100 var field_confirm_pwd = $('#password_confirmation_employer'); 102 var field_confirm_pwd = $('#password_confirmation_employer');
101 var field_politik_employer = $('#politik_employer'); 103 var field_politik_employer = $('#politik_employer');
102 var field_telephone_employer = $('#telephone_employer'); 104 var field_telephone_employer = $('#telephone_employer');
103 var field_company_employer = $('#company_employer'); 105 var field_company_employer = $('#company_employer');
104 var field_surname_employer = $('#surname_employer'); 106 var field_surname_employer = $('#surname_employer');
105 var field_name_man_employer = $('#name_man_employer'); 107 var field_name_man_employer = $('#name_man_employer');
106 var field_surname2_employer = $('#surname2_employer'); 108 var field_surname2_employer = $('#surname2_employer');
107 109
108 var login = field_login.val(); 110 var login = field_login.val();
109 var pwd = field_pwd.val(); 111 var pwd = field_pwd.val();
110 var confirm_pwd = field_confirm_pwd.val(); 112 var confirm_pwd = field_confirm_pwd.val();
111 var politik = field_politik_employer.val(); 113 var politik = field_politik_employer.val();
112 var telephone = field_telephone_employer.val(); 114 var telephone = field_telephone_employer.val();
113 var company_employer = field_company_employer.val(); 115 var company_employer = field_company_employer.val();
114 var surname = field_surname_employer.val(); 116 var surname = field_surname_employer.val();
115 var name_man = field_name_man_employer.val(); 117 var name_man = field_name_man_employer.val();
116 var surname2 = field_surname2_employer.val(); 118 var surname2 = field_surname2_employer.val();
117 119
118 120
119 console.log('login: '+login+' password: '+pwd); 121 console.log('login: '+login+' password: '+pwd);
120 122
121 123
122 $.ajax({ 124 $.ajax({
123 type: "GET", 125 type: "GET",
124 url: "{{ route('register_employer') }}", 126 url: "{{ route('register_employer') }}",
125 data: "email="+login+"&password="+pwd+"&confirmed="+confirm_pwd+"&politik="+politik+ 127 data: "email="+login+"&password="+pwd+"&confirmed="+confirm_pwd+"&politik="+politik+
126 "&telephone="+telephone+"&name_company="+company_employer+"&surname="+surname+"&name_man="+name_man+ 128 "&telephone="+telephone+"&name_company="+company_employer+"&surname="+surname+"&name_man="+name_man+
127 "&surname2="+surname2+"&subscribe_email="+login, 129 "&surname2="+surname2+"&subscribe_email="+login,
128 success: function (data) { 130 success: function (data) {
129 console.log('Вход в систему'); 131 console.log('Вход в систему');
130 let d = JSON.parse(data); 132 let d = JSON.parse(data);
131 if(typeof d['REDIRECT'] !== "undefined") { 133 if(typeof d['REDIRECT'] !== "undefined") {
132 console.log(d['REDIRECT']); 134 console.log(d['REDIRECT']);
133 location.href = d['REDIRECT']; 135 location.href = d['REDIRECT'];
134 } 136 }
135 if (typeof d['ERROR'] !== "undefined") { 137 if (typeof d['ERROR'] !== "undefined") {
136 console.log(d['ERROR']); 138 console.log(d['ERROR']);
137 $('#block-info').css({'display': 'block'}); 139 $('#block-info').css({'display': 'block'});
138 $('#messages_error_reg').html(d['ERROR']); 140 $('#messages_error_reg').html(d['ERROR']);
139 } 141 }
140 console.log(d['REDIRECT']); 142 console.log(d['REDIRECT']);
141 143
142 }, 144 },
143 headers: { 145 headers: {
144 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 146 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
145 }, 147 },
146 error: function (data) { 148 error: function (data) {
147 data = JSON.stringify(data); 149 data = JSON.stringify(data);
148 console.log('Error: ' + data); 150 console.log('Error: ' + data);
149 } 151 }
150 }); 152 });
151 153
152 return false; 154 return false;
153 }); 155 });
154 </script> 156 </script>
155 @endsection 157 @endsection
156 158
157 @section('content') 159 @section('content')
158 <section class="work"> 160 <section class="work">
159 <div class="container"> 161 <div class="container">
160 <img src="{{ asset('images/1.png') }}" alt="" class="work__pic"> 162 <img src="{{ asset('images/1.png') }}" alt="" class="work__pic">
161 <div class="work__body"> 163 <div class="work__body">
162 <div class="work__title"> 164 <div class="work__title">
163 Работа в море / 165 Работа в море /
164 <span class="br">Работа на реке</span> 166 <span class="br">Работа на реке</span>
165 </div> 167 </div>
166 <div class="work__text">Профессиональная сеть морского сообщества «RekaMore.su» приветствует вас — 168 <div class="work__text">Профессиональная сеть морского сообщества «RekaMore.su» приветствует вас —
167 тех, кто не представляет себе жизнь без моря, тех, кто готов связать свою жизнь с работой в 169 тех, кто не представляет себе жизнь без моря, тех, кто готов связать свою жизнь с работой в
168 сложных, но очень интересных условиях. </div> 170 сложных, но очень интересных условиях. </div>
169 <div class="work__list"> 171 <div class="work__list">
170 <div>Тысячи соискателей увидят Ваше объявление</div> 172 <div>Тысячи соискателей увидят Ваше объявление</div>
171 <div>Десятки компаний выкладывают объявления каждый день</div> 173 <div>Десятки компаний выкладывают объявления каждый день</div>
172 </div> 174 </div>
173 <form class="search work__form" action="{{ route('search_vacancies') }}" method="GET"> 175 <form class="search work__form" action="{{ route('search_vacancies') }}" method="GET">
174 <input type="search" id="search" name="search" class="input" placeholder="Желаемая должность" required> 176 <input type="search" id="search" name="search" class="input" placeholder="Желаемая должность" required>
175 <button type="submit" class="button button_light">Посмотреть вакансии</button> 177 <button type="submit" class="button button_light">Посмотреть вакансии</button>
176 <span> 178 <span>
177 <svg> 179 <svg>
178 <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> 180 <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use>
179 </svg> 181 </svg>
180 </span> 182 </span>
181 </form> 183 </form>
182 <a href="{{ route('bd_resume') }}" class="button work__search">Я ищу сотрудника</a> 184 <a href="{{ route('bd_resume') }}" class="button work__search">Я ищу сотрудника</a>
183 <div class="work__get"> 185 <div class="work__get">
184 <b>Скачать приложение</b> 186 <b>Скачать приложение</b>
185 <a href=""> 187 <a href="">
186 <img src="{{ asset('images/google.svg') }}" alt=""> 188 <img src="{{ asset('images/google.svg') }}" alt="">
187 </a> 189 </a>
188 <a href=""> 190 <a href="">
189 <img src="{{ asset('images/apple.svg') }}" alt=""> 191 <img src="{{ asset('images/apple.svg') }}" alt="">
190 </a> 192 </a>
191 </div> 193 </div>
192 </div> 194 </div>
193 </div> 195 </div>
194 </section> 196 </section>
195 <section class="numbers"> 197 <section class="numbers">
196 <div class="container"> 198 <div class="container">
197 <div class="numbers__body"> 199 <div class="numbers__body">
198 <div class="numbers__item"> 200 <div class="numbers__item">
199 <b>500+</b> 201 <b>500+</b>
200 <span>Резюме</span> 202 <span>Резюме</span>
201 Банальные, но неопровержимые выводы, а также элементы политического процесса лишь добавляют 203 Банальные, но неопровержимые выводы, а также элементы политического процесса лишь добавляют
202 фракционных разногласий и призваны к ответу. 204 фракционных разногласий и призваны к ответу.
203 </div> 205 </div>
204 <div class="numbers__item"> 206 <div class="numbers__item">
205 <b>1 000+</b> 207 <b>1 000+</b>
206 <span>Вакансий</span> 208 <span>Вакансий</span>
207 В рамках спецификации современных стандартов, диаграммы связей заблокированы в рамках своих 209 В рамках спецификации современных стандартов, диаграммы связей заблокированы в рамках своих
208 собственных рациональных ограничений. 210 собственных рациональных ограничений.
209 </div> 211 </div>
210 <div class="numbers__item"> 212 <div class="numbers__item">
211 <b>265</b> 213 <b>265</b>
212 <span>Компаний</span> 214 <span>Компаний</span>
213 Но сторонники тоталитаризма в науке заблокированы в рамках своих собственных рациональных 215 Но сторонники тоталитаризма в науке заблокированы в рамках своих собственных рациональных
214 ограничений. 216 ограничений.
215 </div> 217 </div>
216 </div> 218 </div>
217 </div> 219 </div>
218 </section> 220 </section>
219 <section class="vacancies"> 221 <section class="vacancies">
220 <div class="container"> 222 <div class="container">
221 <div class="title">Новые вакансии</div> 223 <div class="title">Новые вакансии</div>
222 <div class="vacancies__body"> 224 <div class="vacancies__body">
223 <a class="vacancies__more button button_light js-parent-toggle" href="{{ route('vacancies') }}">Все должности</a> 225 <a class="vacancies__more button button_light js-parent-toggle" href="{{ route('vacancies') }}">Все должности</a>
224 <div class="vacancies__list"> 226 <div class="vacancies__list">
225 @if ($categories->count()) 227 @if ($categories->count())
226 @foreach ($categories as $cat) 228 @foreach ($categories as $cat)
227 <a href="#" class="vacancies__item"> 229 <a href="#" class="vacancies__item">
228 <span style="border-color:#F4C4C2"> 230 <span style="border-color:#F4C4C2">
229 <b>{{ $cat->name }}</b> 231 <b>{{ $cat->name }}</b>
230 <i>Вакансий: <span>{{ $cat->cnt }}</span></i> 232 <i>Вакансий: <span>{{ $cat->cnt }}</span></i>
231 </span> 233 </span>
232 </a> 234 </a>
233 @endforeach 235 @endforeach
234 @else 236 @else
235 Тут пока нет никаких вакансий 237 Тут пока нет никаких вакансий
236 @endif 238 @endif
237 </div> 239 </div>
238 </div> 240 </div>
239 </div> 241 </div>
240 </section> 242 </section>
241 <section class="employer"> 243 <section class="employer">
242 <div class="container"> 244 <div class="container">
243 <div class="title">Работодатели</div> 245 <div class="title">Работодатели</div>
244 <div class="swiper js-employer-swiper"> 246 <div class="swiper js-employer-swiper">
245 <div class="swiper-wrapper"> 247 <div class="swiper-wrapper">
246 248
247 @if ($employers->count()) 249 @if ($employers->count())
248 @php 250 @php
249 $rec = 0; 251 $rec = 0;
250 $count = $employers->count(); 252 $count = $employers->count();
251 @endphp 253 @endphp
252 @foreach($employers as $emp) 254 @foreach($employers as $emp)
253 @php $rec++ @endphp 255 @php $rec++ @endphp
254 @if (($rec==1) || ($rec==5) || ($rec==9) || ($rec==13) || ($rec==17)) 256 @if (($rec==1) || ($rec==5) || ($rec==9) || ($rec==13) || ($rec==17))
255 <div class="swiper-slide"> 257 <div class="swiper-slide">
256 <div class="employer__item"> 258 <div class="employer__item">
257 @endif 259 @endif
258 @if (!empty($emp->logo)) 260 @if (!empty($emp->logo))
259 <a href="{{ route('ad-employer', ['ad_employer' => $emp->id]) }}"> 261 <a href="{{ route('ad-employer', ['ad_employer' => $emp->id]) }}">
260 <img src="{{ asset(Storage::url($emp->logo)) }}" alt="{{ $emp->name_company }}"> 262 <img src="{{ asset(Storage::url($emp->logo)) }}" alt="{{ $emp->name_company }}">
261 </a> 263 </a>
262 @else 264 @else
263 <a href="{{ route('ad-employer', ['ad_employer' => $emp->id]) }}"> 265 <a href="{{ route('ad-employer', ['ad_employer' => $emp->id]) }}">
264 <img src="{{ asset('images/logo_emp.png') }}" alt="{{ $emp->name_company }}"> 266 <img src="{{ asset('images/logo_emp.png') }}" alt="{{ $emp->name_company }}">
265 </a> 267 </a>
266 @endif 268 @endif
267 @if (($rec==4) || ($rec==8) || ($rec==12) || ($rec==16) || ($rec==20) || ($rec == $count)) 269 @if (($rec==4) || ($rec==8) || ($rec==12) || ($rec==16) || ($rec==20) || ($rec == $count))
268 </div> 270 </div>
269 </div> 271 </div>
270 @endif 272 @endif
271 @endforeach 273 @endforeach
272 @else 274 @else
273 <h5>Тут нет никаких записей</h5> 275 <h5>Тут нет никаких записей</h5>
274 @endif 276 @endif
275 </div> 277 </div>
276 <div class="swiper-pagination"></div> 278 <div class="swiper-pagination"></div>
277 </div> 279 </div>
278 <a href="{{ route('shipping_companies') }}" class="employer__more button button_light">Все работодатели</a> 280 <a href="{{ route('shipping_companies') }}" class="employer__more button button_light">Все работодатели</a>
279 </div> 281 </div>
280 </section> 282 </section>
281 <section class="about"> 283 <section class="about">
282 <div class="container"> 284 <div class="container">
283 <div class="about__wrapper"> 285 <div class="about__wrapper">
284 <div class="title about__title">О нас</div> 286 <div class="title about__title">О нас</div>
285 <div class="about__body"> 287 <div class="about__body">
286 <div class="about__line"></div> 288 <div class="about__line"></div>
287 <div class="about__item"> 289 <div class="about__item">
288 <b>Для работодателей</b> 290 <b>Для работодателей</b>
289 <span>Наш ресурс позволит Вам за демократичную цену найти нужных специалистов в кратчайшие 291 <span>Наш ресурс позволит Вам за демократичную цену найти нужных специалистов в кратчайшие
290 сроки, подробнее об условиях можно узнать <a href="{{ route('page', ['pages' => 'Stoimost-razmescheniya']) }}">здесь</a>.</span> 292 сроки, подробнее об условиях можно узнать <a href="{{ route('page', ['pages' => 'Stoimost-razmescheniya']) }}">здесь</a>.</span>
291 <a class="about__button button button_whited" href="{{ route('bd_resume') }}">Поиск сотрудников</a> 293 <a class="about__button button button_whited" href="{{ route('bd_resume') }}">Поиск сотрудников</a>
292 </div> 294 </div>
293 <div class="about__item"> 295 <div class="about__item">
294 <b>Для сотрудников</b> 296 <b>Для сотрудников</b>
295 <span>Наше преимущество — это большой объем вакансий, более 70 судоходных компаний России и 297 <span>Наше преимущество — это большой объем вакансий, более 70 судоходных компаний России и
296 СНГ ищут сотрудников через наши ресурсы</span> 298 СНГ ищут сотрудников через наши ресурсы</span>
297 <a class="about__button button button_whited" href="{{ route('vacancies') }}">Посмотреть вакансии</a> 299 <a class="about__button button button_whited" href="{{ route('vacancies') }}">Посмотреть вакансии</a>
298 </div> 300 </div>
299 </div> 301 </div>
300 </div> 302 </div>
301 </div> 303 </div>
302 </section> 304 </section>
303 <section class="news"> 305 <section class="news">
304 <div class="container"> 306 <div class="container">
305 <div class="news__toper"> 307 <div class="news__toper">
306 <div class="title">Новости и статьи</div> 308 <div class="title">Новости и статьи</div>
307 <div class="navs"> 309 <div class="navs">
308 <button class="js-news-swiper-button-prev"> 310 <button class="js-news-swiper-button-prev">
309 <svg class="rotate180"> 311 <svg class="rotate180">
310 <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> 312 <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use>
311 </svg> 313 </svg>
312 </button> 314 </button>
313 <button class="js-news-swiper-button-next"> 315 <button class="js-news-swiper-button-next">
314 <svg> 316 <svg>
315 <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> 317 <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use>
316 </svg> 318 </svg>
317 </button> 319 </button>
318 </div> 320 </div>
319 </div> 321 </div>
320 <div class="swiper js-news-swiper"> 322 <div class="swiper js-news-swiper">
321 <div class="swiper-wrapper"> 323 <div class="swiper-wrapper">
322 @if ($news->count()) 324 @if ($news->count())
323 @foreach ($news as $new) 325 @foreach ($news as $new)
324 <div class="swiper-slide"> 326 <div class="swiper-slide">
325 <div class="news__item"> 327 <div class="news__item">
326 <img src="{{ asset(Storage::url($new->image)) }}" alt="" class="news__item-pic"> 328 <img src="{{ asset(Storage::url($new->image)) }}" alt="" class="news__item-pic">
327 <div class="news__item-body"> 329 <div class="news__item-body">
328 <time datetime="2023-05-01" class="news__item-date">{{ $new->created_at }}</time> 330 <time datetime="2023-05-01" class="news__item-date">{{ $new->created_at }}</time>
329 <span class="news__item-title">{{ $new->title }}</span> 331 <span class="news__item-title">{{ $new->title }}</span>
330 <span class="news__item-text">{{ mb_strimwidth($new->text, 0, 100) }}</span> 332 <span class="news__item-text">{{ mb_strimwidth($new->text, 0, 100) }}</span>
331 <a href="#" class="news__item-more button button_light">Читать далее</a> 333 <a href="#" class="news__item-more button button_light">Читать далее</a>
332 </div> 334 </div>
333 </div> 335 </div>
334 </div> 336 </div>
335 @endforeach 337 @endforeach
336 @endif 338 @endif
337 </div> 339 </div>
338 <div class="swiper-pagination"></div> 340 <div class="swiper-pagination"></div>
339 </div> 341 </div>
340 <div class="news__all button button_light">Все новости</div> 342 <div class="news__all button button_light">Все новости</div>
341 </div> 343 </div>
342 </section> 344 </section>
343 <section class="info"> 345 <section class="info">
344 <div class="container"> 346 <div class="container">
345 <img src="images/5.png" alt="" class="info__pic"> 347 <img src="images/5.png" alt="" class="info__pic">
346 <div class="info__body"> 348 <div class="info__body">
347 <div class="title info__title">Мы в социальных сетях</div> 349 <div class="title info__title">Мы в социальных сетях</div>
348 <div class="info__item"> 350 <div class="info__item">
349 <div class="info__text">Телеграм — Подпишитесь на наш телеграм канал и получайте уведомления о 351 <div class="info__text">Телеграм — Подпишитесь на наш телеграм канал и получайте уведомления о
350 новых вакансиях прямо на свой смартфон</div> 352 новых вакансиях прямо на свой смартфон</div>
351 <a href="#" class="info__link" style="background:#20A0E1"> 353 <a href="#" class="info__link" style="background:#20A0E1">
352 <svg> 354 <svg>
353 <use xlink:href="images/sprite.svg#tg"></use> 355 <use xlink:href="images/sprite.svg#tg"></use>
354 </svg> 356 </svg>
355 Телеграм 357 Телеграм
356 </a> 358 </a>
357 </div> 359 </div>
358 <div class="info__item"> 360 <div class="info__item">
359 <div class="info__text">ВКонтакте — Лучшие вакансии за неделю выкладываем именно тут, информация 361 <div class="info__text">ВКонтакте — Лучшие вакансии за неделю выкладываем именно тут, информация
360 о судоходных компаниях, инструкции по работе с сайтом, конкурсы и многое другое</div> 362 о судоходных компаниях, инструкции по работе с сайтом, конкурсы и многое другое</div>
361 <a href="#" class="info__link" style="background:#2787F5"> 363 <a href="#" class="info__link" style="background:#2787F5">
362 <svg> 364 <svg>
363 <use xlink:href="images/sprite.svg#vk"></use> 365 <use xlink:href="images/sprite.svg#vk"></use>
364 </svg> 366 </svg>
365 ВКонтакте 367 ВКонтакте
366 </a> 368 </a>
367 </div> 369 </div>
368 </div> 370 </div>
369 </div> 371 </div>
370 </section> 372 </section>
371 @endsection 373 @endsection
372 374
resources/views/layout/frontend.blade.php
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> 2 <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
3 3
4 <head> 4 <head>
5 <meta charset="utf-8"> 5 <meta charset="utf-8">
6 <title>{{ $title }}</title> 6 <title>{{ $title }}</title>
7 <meta name="viewport" content="width=device-width,initial-scale=1"> 7 <meta name="viewport" content="width=device-width,initial-scale=1">
8 <meta name="theme-color" content="#377D87"> 8 <meta name="theme-color" content="#377D87">
9 <script src="{{ asset('js/jquery.js') }}"></script> 9 <script src="{{ asset('js/jquery.js') }}"></script>
10 <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script> 10 <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script>
11 <link rel="stylesheet" href="{{ asset('css/style.css') }}"> 11 <link rel="stylesheet" href="{{ asset('css/style.css') }}">
12 <style>
13 .err_red {
14 border: red 2px solid;
15 }
16 </style>
12 </head> 17 </head>
13 18
14 <body id="body"> 19 <body id="body">
15 <a href="#body" class="to-top js-scroll-to"> 20 <a href="#body" class="to-top js-scroll-to">
16 <svg> 21 <svg>
17 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use> 22 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use>
18 </svg> 23 </svg>
19 </a> 24 </a>
20 25
21 <div> <!-- BEGIN TOP WRAPPER --> 26 <div> <!-- BEGIN TOP WRAPPER -->
22 <header class="header"> 27 <header class="header">
23 <div class="container"> 28 <div class="container">
24 <div class="header__body"> 29 <div class="header__body">
25 <div class="header__left"> 30 <div class="header__left">
26 <a href="{{ route('index') }}" class="header__logo"> 31 <a href="{{ route('index') }}" class="header__logo">
27 <svg> 32 <svg>
28 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use> 33 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use>
29 </svg> 34 </svg>
30 </a> 35 </a>
31 <nav class="header__menu"> 36 <nav class="header__menu">
32 <a href="{{ route('vacancies') }}" class="header__menu-item">Вакансии</a> 37 <a href="{{ route('vacancies') }}" class="header__menu-item">Вакансии</a>
33 <a href="{{ route('shipping_companies') }}" class="header__menu-item">Судоходные компании</a> 38 <a href="{{ route('shipping_companies') }}" class="header__menu-item">Судоходные компании</a>
34 <a href="{{ route('education') }}" class="header__menu-item">Образование</a> 39 <a href="{{ route('education') }}" class="header__menu-item">Образование</a>
35 </nav> 40 </nav>
36 </div> 41 </div>
37 <div class="header__right"> 42 <div class="header__right">
38 @guest 43 @guest
39 44
40 @else 45 @else
41 <button class="header__notifs header__notifs_actived"> 46 <button class="header__notifs header__notifs_actived">
42 <svg> 47 <svg>
43 <use xlink:href="{{ asset('images/sprite.svg#ring') }}"></use> 48 <use xlink:href="{{ asset('images/sprite.svg#ring') }}"></use>
44 </svg> 49 </svg>
45 <span>Уведомления</span> 50 <span>Уведомления</span>
46 </button> 51 </button>
47 <a href="@if ($UserId->is_worker) {{ route('worker.cabinet') }} @else {{ route('employer.cabinet') }} @endif" class="header__notifs"> 52 <a href="@if ($UserId->is_worker) {{ route('worker.cabinet') }} @else {{ route('employer.cabinet') }} @endif" class="header__notifs">
48 Кабинет 53 Кабинет
49 </a> 54 </a>
50 @endguest 55 @endguest
51 <div class="header__right-line"></div> 56 <div class="header__right-line"></div>
52 <button class="header__burger"> 57 <button class="header__burger">
53 <svg> 58 <svg>
54 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use> 59 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use>
55 </svg> 60 </svg>
56 </button> 61 </button>
57 @guest 62 @guest
58 <a class="button header__sign" data-fancybox data-src="#sign" data-options='{"touch":false,"autoFocus":false}'>Войти</a> 63 <a class="button header__sign" data-fancybox data-src="#sign" data-options='{"touch":false,"autoFocus":false}'>Войти</a>
59 @else 64 @else
60 <a class="button header__sign" href="{{ route('logout') }}">Выйти</a> 65 <a class="button header__sign" href="{{ route('logout') }}">Выйти</a>
61 @endguest 66 @endguest
62 </div> 67 </div>
63 </div> 68 </div>
64 </div> 69 </div>
65 </header> 70 </header>
66 @yield('content') 71 @yield('content')
67 </div> <!-- END TOP WRAPPER --> 72 </div> <!-- END TOP WRAPPER -->
68 73
69 <div> <!-- BEGIN BOTTOM WRAPPER --> 74 <div> <!-- BEGIN BOTTOM WRAPPER -->
70 <footer class="footer"> 75 <footer class="footer">
71 <div class="container"> 76 <div class="container">
72 <div class="footer__mobile"> 77 <div class="footer__mobile">
73 78
74 <button class="footer__mobile-toper js-toggle active"> 79 <button class="footer__mobile-toper js-toggle active">
75 <a href="{{ route('index') }}"> 80 <a href="{{ route('index') }}">
76 <svg> 81 <svg>
77 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use> 82 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use>
78 </svg> 83 </svg>
79 </a> 84 </a>
80 <span> 85 <span>
81 <svg> 86 <svg>
82 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use> 87 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use>
83 </svg> 88 </svg>
84 </span> 89 </span>
85 </button> 90 </button>
86 <div class="footer__mobile-menu"> 91 <div class="footer__mobile-menu">
87 <div class="footer__mobile-menu-item"> 92 <div class="footer__mobile-menu-item">
88 <button class="js-toggle"> 93 <button class="js-toggle">
89 <b>Соискателям</b> 94 <b>Соискателям</b>
90 <span><svg> 95 <span><svg>
91 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use> 96 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use>
92 </svg></span> 97 </svg></span>
93 </button> 98 </button>
94 <div> 99 <div>
95 <a href="{{ route('vacancies') }}">Вакансии</a> 100 <a href="{{ route('vacancies') }}">Вакансии</a>
96 <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a> 101 <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a>
97 <a href="{{ route('education') }}">Образование</a> 102 <a href="{{ route('education') }}">Образование</a>
98 <a href="{{ route('news') }}">Новости</a> 103 <a href="{{ route('news') }}">Новости</a>
99 <a href="{{ route('contacts') }}">Контакты</a> 104 <a href="{{ route('contacts') }}">Контакты</a>
100 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a> 105 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a>
101 </div> 106 </div>
102 </div> 107 </div>
103 <div class="footer__mobile-menu-item"> 108 <div class="footer__mobile-menu-item">
104 <button class="js-toggle"> 109 <button class="js-toggle">
105 <b>Работодателям</b> 110 <b>Работодателям</b>
106 <span><svg> 111 <span><svg>
107 <use xlink:href="{{asset('images/sprite.svg#arrow-top') }}"></use> 112 <use xlink:href="{{asset('images/sprite.svg#arrow-top') }}"></use>
108 </svg></span> 113 </svg></span>
109 </button> 114 </button>
110 <div> 115 <div>
111 <a href="{{ route('register') }}">Регистрация</a> 116 <a href="{{ route('register') }}">Регистрация</a>
112 <a href="{{ route('bd_resume') }}">База резюме</a> 117 <a href="{{ route('bd_resume') }}">База резюме</a>
113 <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a> 118 <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a>
114 <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a> 119 <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a>
115 <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a> 120 <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a>
116 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a> 121 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a>
117 </div> 122 </div>
118 </div> 123 </div>
119 </div> 124 </div>
120 <div class="footer__mobile-contacts"> 125 <div class="footer__mobile-contacts">
121 <b>Контакты</b> 126 <b>Контакты</b>
122 <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a> 127 <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a>
123 <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a> 128 <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a>
124 </div> 129 </div>
125 <div class="footer__mobile-bottom"> 130 <div class="footer__mobile-bottom">
126 <div class="socials"> 131 <div class="socials">
127 <a href="{{ $companies[0]->vkontact }}" target="_blank"> 132 <a href="{{ $companies[0]->vkontact }}" target="_blank">
128 <svg> 133 <svg>
129 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use> 134 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use>
130 </svg> 135 </svg>
131 </a> 136 </a>
132 <a href="{{ $companies[0]->telegram }}" target="_blank"> 137 <a href="{{ $companies[0]->telegram }}" target="_blank">
133 <svg> 138 <svg>
134 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use> 139 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use>
135 </svg> 140 </svg>
136 </a> 141 </a>
137 </div> 142 </div>
138 <nav class="footer__mobile-links"> 143 <nav class="footer__mobile-links">
139 <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a> 144 <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a>
140 <span></span> 145 <span></span>
141 <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a> 146 <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a>
142 </nav> 147 </nav>
143 &copy; 2023 &mdash; RekaMore.su 148 &copy; 2023 &mdash; RekaMore.su
144 <a href="{{ route('index') }}" class="nls" target="_blank"> 149 <a href="{{ route('index') }}" class="nls" target="_blank">
145 <svg> 150 <svg>
146 <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use> 151 <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use>
147 </svg> 152 </svg>
148 <span> 153 <span>
149 Дизайн и разработка: 154 Дизайн и разработка:
150 <b>NoLogoStudio.ru</b> 155 <b>NoLogoStudio.ru</b>
151 </span> 156 </span>
152 </a> 157 </a>
153 </div> 158 </div>
154 </div> 159 </div>
155 <div class="footer__main"> 160 <div class="footer__main">
156 <div class="footer__main-body"> 161 <div class="footer__main-body">
157 162
158 <a href="" class="footer__main-logo"> 163 <a href="" class="footer__main-logo">
159 <svg> 164 <svg>
160 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use> 165 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use>
161 </svg> 166 </svg>
162 </a> 167 </a>
163 <div class="footer__main-col"> 168 <div class="footer__main-col">
164 <div class="footer__main-title">Соискателям</div> 169 <div class="footer__main-title">Соискателям</div>
165 <nav> 170 <nav>
166 <a href="{{ route('vacancies') }}">Вакансии</a> 171 <a href="{{ route('vacancies') }}">Вакансии</a>
167 <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a> 172 <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a>
168 <a href="{{ route('education') }}">Образование</a> 173 <a href="{{ route('education') }}">Образование</a>
169 <a href="{{ route('news') }}">Новости</a> 174 <a href="{{ route('news') }}">Новости</a>
170 <a href="{{ route('contacts') }}">Контакты</a> 175 <a href="{{ route('contacts') }}">Контакты</a>
171 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a> 176 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a>
172 </nav> 177 </nav>
173 </div> 178 </div>
174 <div class="footer__main-col"> 179 <div class="footer__main-col">
175 <div class="footer__main-title">Работодателям</div> 180 <div class="footer__main-title">Работодателям</div>
176 <nav> 181 <nav>
177 <a href="{{ route('register') }}">Регистрация</a> 182 <a href="{{ route('register') }}">Регистрация</a>
178 <a href="{{ route('bd_resume') }}">База резюме</a> 183 <a href="{{ route('bd_resume') }}">База резюме</a>
179 <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a> 184 <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a>
180 <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a> 185 <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a>
181 <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a> 186 <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a>
182 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a> 187 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a>
183 </nav> 188 </nav>
184 </div> 189 </div>
185 190
186 <div class="footer__main-col"> 191 <div class="footer__main-col">
187 <div class="footer__main-title">Контакты</div> 192 <div class="footer__main-title">Контакты</div>
188 <div class="footer__main-contacts"> 193 <div class="footer__main-contacts">
189 <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a> 194 <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a>
190 <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a> 195 <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a>
191 </div> 196 </div>
192 <div class="socials"> 197 <div class="socials">
193 <a href="{{ $companies[0]->vkontact }}" target="_blank"> 198 <a href="{{ $companies[0]->vkontact }}" target="_blank">
194 <svg> 199 <svg>
195 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use> 200 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use>
196 </svg> 201 </svg>
197 </a> 202 </a>
198 <a href="{{ $companies[0]->telegram }}" target="_blank"> 203 <a href="{{ $companies[0]->telegram }}" target="_blank">
199 <svg> 204 <svg>
200 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use> 205 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use>
201 </svg> 206 </svg>
202 </a> 207 </a>
203 </div> 208 </div>
204 </div> 209 </div>
205 </div> 210 </div>
206 <pre>{{ print_r($_COOKIE) }}</pre> 211 <pre>{{ print_r($_COOKIE) }}</pre>
207 <div class="footer__main-copy"> 212 <div class="footer__main-copy">
208 <div>&copy; 2023 &mdash; RekaMore.su</div> 213 <div>&copy; 2023 &mdash; RekaMore.su</div>
209 <nav> 214 <nav>
210 <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a> 215 <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a>
211 <span></span> 216 <span></span>
212 <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a> 217 <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a>
213 </nav> 218 </nav>
214 <a href="{{ route('index') }}" class="nls" target="_blank"> 219 <a href="{{ route('index') }}" class="nls" target="_blank">
215 <svg> 220 <svg>
216 <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use> 221 <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use>
217 </svg> 222 </svg>
218 <span> 223 <span>
219 Дизайн и разработка: 224 Дизайн и разработка:
220 <b>NoLogoStudio.ru</b> 225 <b>NoLogoStudio.ru</b>
221 </span> 226 </span>
222 </a> 227 </a>
223 </div> 228 </div>
224 </div> 229 </div>
225 </div> 230 </div>
226 </footer> 231 </footer>
227 </div> <!-- END BOTTOM WRAPPER --> 232 </div> <!-- END BOTTOM WRAPPER -->
228 233
229 <div hidden> <!-- BEGIN MODALS WRAPPER --> 234 <div hidden> <!-- BEGIN MODALS WRAPPER -->
230 <!-- Отправить сообщение соискателю --> 235 <!-- Отправить сообщение соискателю -->
231 @include('modals.send_worker') 236 @include('modals.send_worker')
232 237
233 <!-- Сообщение-предупреждение о том, что сообщения только можно отправить авторизованным пользователям --> 238 <!-- Сообщение-предупреждение о том, что сообщения только можно отправить авторизованным пользователям -->
234 @include('modals.send_message_noaut') 239 @include('modals.send_message_noaut')
235 240
236 <!-- Форма авторизации --> 241 <!-- Форма авторизации -->
237 @include('modals.send_login') 242 @include('modals.send_login')
238 243
239 <!-- Сбросить пароль --> 244 <!-- Сбросить пароль -->
240 @include('modals.reset_password') 245 @include('modals.reset_password')
241 246
242 <!-- Регистрация --> 247 <!-- Регистрация -->
243 @include('modals.register') 248 @include('modals.register')
244 249
245 <!-- Благодарность по отправке сообщения работодателю --> 250 <!-- Благодарность по отправке сообщения работодателю -->
246 @include('modals.thank_you_send_employer') 251 @include('modals.thank_you_send_employer')
247 252
248 <!-- Благодарность по отправке сообщения менеджеру --> 253 <!-- Благодарность по отправке сообщения менеджеру -->
249 @include('modals.thank_you_send_manager') 254 @include('modals.thank_you_send_manager')
250 255
251 256
252 <div id="thanks-3" class="modal modal_bg"> 257 <div id="thanks-3" class="modal modal_bg">
253 <div class="modal__body"> 258 <div class="modal__body">
254 <div class="modal__title">Спасибо!</div> 259 <div class="modal__title">Спасибо!</div>
255 <div class="modal__text">Вы успешно зарегистрировались</div> 260 <div class="modal__text">Вы успешно зарегистрировались</div>
256 <div class="modal__text left"><span>Ваш аккаунт требует подтверждение администратора сайта. Администратор сайта должен изменить статус работодателя, чтобы вы смогли авторизоваться в системе.</span></div> 261 <div class="modal__text left"><span>Ваш аккаунт требует подтверждение администратора сайта. Администратор сайта должен изменить статус работодателя, чтобы вы смогли авторизоваться в системе.</span></div>
257 <div class="modal__text left"><span>После подтверждения администратором, вам прейдет сообщение на электронную почту, о подтверждении регистрации.</span></div> 262 <div class="modal__text left"><span>После подтверждения администратором, вам прейдет сообщение на электронную почту, о подтверждении регистрации.</span></div>
258 <a href="#" class="button button_light modal__button">Войти</a> 263 <a href="#" class="button button_light modal__button">Войти</a>
259 </div> 264 </div>
260 </div> 265 </div>
261 266
262 <div id="thanks-4" class="modal modal_bg"> 267 <div id="thanks-4" class="modal modal_bg">
263 <div class="modal__body"> 268 <div class="modal__body">
264 <div class="modal__title">Спасибо!</div> 269 <div class="modal__title">Спасибо!</div>
265 <div class="modal__text">Ваше сообщение успешно отправлено администратору сайта на подтверждение.</div> 270 <div class="modal__text">Ваше сообщение успешно отправлено администратору сайта на подтверждение.</div>
266 <a href="#" class="button button_light modal__button">На главную</a> 271 <a href="#" class="button button_light modal__button">На главную</a>
267 </div> 272 </div>
268 </div> 273 </div>
269 <div id="delete" class="modal modal_bg"> 274 <div id="delete" class="modal modal_bg">
270 <div class="modal__body"> 275 <div class="modal__body">
271 <div class="modal__title">Удалить профиль?</div> 276 <div class="modal__title">Удалить профиль?</div>
272 <div class="modal__text">Вы действительно хотите удалить свой профиль?</div> 277 <div class="modal__text">Вы действительно хотите удалить свой профиль?</div>
273 <div class="modal__buttons"> 278 <div class="modal__buttons">
274 <button href="button" class="button">Да</button> 279 <button href="button" class="button">Да</button>
275 <button href="button" class="button button_light">Нет</button> 280 <button href="button" class="button button_light">Нет</button>
276 </div> 281 </div>
277 </div> 282 </div>
278 </div> 283 </div>
279 <div id="is-deleted" class="modal modal_bg"> 284 <div id="is-deleted" class="modal modal_bg">
280 <div class="modal__body"> 285 <div class="modal__body">
281 <div class="modal__title">Профиль удален</div> 286 <div class="modal__title">Профиль удален</div>
282 <div class="modal__text">Вы успешно удалили свой профиль.</div> 287 <div class="modal__text">Вы успешно удалили свой профиль.</div>
283 <a href="#" class="button button_light modal__button">На главную</a> 288 <a href="#" class="button button_light modal__button">На главную</a>
284 </div> 289 </div>
285 </div> 290 </div>
286 </div> <!-- END MODALS WRAPPER --> 291 </div> <!-- END MODALS WRAPPER -->
287 292
288 293
289 <script src="{{ asset('js/jquery.maskedinput.js') }}"></script> 294 <script src="{{ asset('js/jquery.maskedinput.js') }}"></script>
290 <script src="{{ asset('js/jquery.fancybox.js') }}"></script> 295 <script src="{{ asset('js/jquery.fancybox.js') }}"></script>
291 <script src="{{ asset('js/jquery.select2.js') }}"></script> 296 <script src="{{ asset('js/jquery.select2.js') }}"></script>
292 <script src="{{ asset('js/swiper.js') }}"></script> 297 <script src="{{ asset('js/swiper.js') }}"></script>
293 <script src="{{ asset('js/script.js') }}"></script> 298 <script src="{{ asset('js/script.js') }}"></script>
294 <script> 299 <script>
295 var getUrlParameter = function getUrlParameter(sParam) { 300 var getUrlParameter = function getUrlParameter(sParam) {
296 var sPageURL = decodeURIComponent(window.location.search.substring(1)), 301 var sPageURL = decodeURIComponent(window.location.search.substring(1)),
297 sURLVariables = sPageURL.split('&'), 302 sURLVariables = sPageURL.split('&'),
298 sParameterName, 303 sParameterName,
299 i; 304 i;
300 for (i = 0; i < sURLVariables.length; i++) { 305 for (i = 0; i < sURLVariables.length; i++) {
301 sParameterName = sURLVariables[i].split('='); 306 sParameterName = sURLVariables[i].split('=');
302 if (sParameterName[0] === sParam) { 307 if (sParameterName[0] === sParam) {
303 return sParameterName[1] === undefined ? true : sParameterName[1]; 308 return sParameterName[1] === undefined ? true : sParameterName[1];
304 } 309 }
305 } 310 }
306 }; 311 };
307 </script> 312 </script>
308 @yield('scripts') 313 @yield('scripts')
309 </body> 314 </body>
310 </html> 315 </html>
311 316
resources/views/workers/cabinet.blade.php
1 @extends('layout.frontend', ['title' => 'Моя анкета - РекаМоре']) 1 @extends('layout.frontend', ['title' => 'Моя анкета - РекаМоре'])
2 2
3 @section('scripts') 3 @section('scripts')
4 <script>
5 console.log('Test system');
6 $(document).on('click', '#button_new_doc', function() {
7 var this_ = $(this);
8 var val_ = this_.attr('data-val');
9 var new_diplom = $('#new_diplom');
10 var new_diplom_val = new_diplom.val();
11 var new_data_begin = $('#new_data_begin');
12 var new_data_begin_val = new_data_begin.val();
13 var new_data_end = $('#new_data_end');
14 var new_data_end_val = new_data_end.val();
15 var education = $('#education');
16 var education_val = education.val();
17 var worker_id = $('#new_id');
18 var worker_val = worker_id.val();
4 19
20 console.log('sort items ' + val_);
21
22 if (new_diplom_val == '') {
23 new_diplom.addClass('err_red');
24 console.log('Border Up');
25 } else {
26 $.ajax({
27 type: "GET",
28 url: "{{ route('worker.add_serificate') }}",
29 data: "worker_id="+worker_val+"&date_begin="+new_data_begin_val + "&end_begin=" + new_data_end_val + "&name=" + new_diplom_val + "&education="+education_val,
30 success: function (data) {
31 console.log('Блокировка...');
32 console.log(data);
33 $('#sertificate').html(data);
34 if (new_diplom.hasClass('err_red')) new_diplom.removeClass('err_red');
35 },
36 headers: {
37 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
38 },
39 error: function (data) {
40 data = JSON.stringify(data);
41 console.log('Error: ' + data);
42 }
43 });
44 }
45 });
46
47 $(document).on('click', '#btn_new_diplom123', function() {
48 var this_ = $(this);
49 var val_ = this_.attr('data-val');
50 var documents = $('#documents');
51 var doc_val = documents.val();
52 var block = $('#ajax_dop_diplomi');
53
54 console.log('worker_id='+val_+'it_infoblock='+ doc_val);
55
56 $.ajax({
57 type: "GET",
58 url: "",
59 data: "worker_id="+val_+"&infoblok_id="+doc_val,
60 success: function (data) {
61 location.url = data;
62 console.log('Добавление документа-диплома');
63 console.log(data);
64 block.html(data);
65 },
66 headers: {
67 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
68 },
69 error: function (data) {
70 data = JSON.stringify(data);
71 console.log('Error: ' + data);
72 }
73 });
74 });
75
76 $(document).on('click', '#new_work', function() {
77 var this_ = $(this);
78 var val_ = this_.attr('data-val');
79 var new_diplom = $('#new_diplom').val();
80 var new_data_begin = $('#new_data_begin').val();
81 var new_data_end = $('#new_data_end').val();
82 var new_job_title = $('#new_job_title').val();
83 var new_teplohod = $('#new_teplohod').val();
84 var new_GWT = $('#new_GWT').val();
85 var new_KBT = $('#new_KBT').val();
86 var new_Begin_work = $('#new_Begin_work').val();
87 var new_End_work = $('#new_End_work').val();
88 var new_name_company = $('#new_name_company').val();
89
90 console.log('worker_id='+val_+'it_infoblock='+ doc_val);
91
92 $.ajax({
93 type: "GET",
94 url: "",
95 data: "worker_id="+val_+"&infoblok_id="+doc_val,
96 success: function (data) {
97 location.url = data;
98 console.log('Добавление документа-диплома');
99 console.log(data);
100 block.html(data);
101 },
102 headers: {
103 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
104 },
105 error: function (data) {
106 data = JSON.stringify(data);
107 console.log('Error: ' + data);
108 }
109 });
110 });
111 </script>
5 @endsection 112 @endsection
6 113
7 @section('content') 114 @section('content')
8 <section class="cabinet"> 115 <section class="cabinet">
9 <div class="container"> 116 <div class="container">
10 <ul class="breadcrumbs cabinet__breadcrumbs"> 117 <ul class="breadcrumbs cabinet__breadcrumbs">
11 <li><a href="{{ route('index') }}">Главная</a></li> 118 <li><a href="{{ route('index') }}">Главная</a></li>
12 <li><b>Личный кабинет</b></li> 119 <li><b>Личный кабинет</b></li>
13 </ul> 120 </ul>
14 <div class="cabinet__wrapper"> 121 <div class="cabinet__wrapper">
15 <div class="cabinet__side"> 122 <div class="cabinet__side">
16 <div class="cabinet__side-toper"> 123 <div class="cabinet__side-toper">
17 @include('workers.emblema') 124 @include('workers.emblema')
18 125
19 </div> 126 </div>
20 127
21 @include('workers.menu', ['item' => 1]) 128 @include('workers.menu', ['item' => 1])
22 </div> 129 </div>
23 <form class="cabinet__body"> 130 <form class="cabinet__body" action="{{ route('worker.cabinet_save', ['worker' => $Worker[0]->id]) }}" enctype="multipart/form-data" method="POST">
131 @csrf
132 @include('messages_error')
24 <div class="cabinet__body-item"> 133 <div class="cabinet__body-item">
25 <div class="cabinet__anketa"> 134 <div class="cabinet__anketa">
26 <h2 class="title cabinet__title">Моя анкета</h2> 135 <h2 class="title cabinet__title">Моя анкета</h2>
27 <div class="cabinet__anketa-buttons"> 136 <div class="cabinet__anketa-buttons">
28 <button type="button" class="button">Поднять резюме</button> 137 <a href="{{ route('worker.up', ['worker' => $Worker[0]->id]) }}" class="button">Поднять резюме</a>
29 <a href="#" class="button"> 138 <a href="{{ route('worker.download', ['worker' => $Worker[0]->id]) }}" class="button">
30 <svg> 139 <svg>
31 <use xlink:href="images/sprite.svg#share"></use> 140 <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use>
32 </svg> 141 </svg>
33 Скачать резюме 142 Скачать резюме
34 </a> 143 </a>
35 </div> 144 </div>
36 </div> 145 </div>
37 </div> 146 </div>
38 <div class="cabinet__body-item"> 147 <div class="cabinet__body-item">
39 <div class="cabinet__stats"> 148 <div class="cabinet__stats">
40 <h3 class="cabinet__subtitle cabinet__stats-title">Статистика</h3> 149 <h3 class="cabinet__subtitle cabinet__stats-title">Статистика</h3>
41 <div class="cabinet__stats-body"> 150 <div class="cabinet__stats-body">
42 <div class="cabinet__stats-item"> 151 <div class="cabinet__stats-item">
43 <svg> 152 <svg>
44 <use xlink:href="images/sprite.svg#eye-3"></use> 153 <use xlink:href="{{ asset('images/sprite.svg#eye-3') }}"></use>
45 </svg> 154 </svg>
46 <span>Просмотров:</span> 155 <span>Просмотров:</span>
47 <b>23</b> 156 <b>@if (isset($Worker[0]->users->static_user)) 1 @else 0 @endif</b>
48 </div> 157 </div>
49 <div class="cabinet__stats-item"> 158 <div class="cabinet__stats-item">
50 <svg> 159 <svg>
51 <use xlink:href="images/sprite.svg#warning"></use> 160 <use xlink:href="{{ asset('images/sprite.svg#warning') }}"></use>
52 </svg> 161 </svg>
53 <span>Отзывов:</span> 162 <span>Отзывов:</span>
54 <b>12</b> 163 <b>@if (isset($Worker[0]->users->static_user)) 1 @else 0 @endif</b>
55 </div> 164 </div>
56 </div> 165 </div>
57 <div class="cabinet__stats-subtitle">Анкета заполнена на 20%</div> 166 <div class="cabinet__stats-subtitle">Анкета заполнена на @if (!empty($Worker[0]->persent_anketa)) {{ $Worker[0]->persent_anketa }}% @else 0% @endif</div>
58 <div class="cabinet__stats-line"> 167 <div class="cabinet__stats-line">
59 <span style="width:20%"></span> 168 <span style="width:@if (!empty($Worker[0]->persent_anketa)) {{ $Worker[0]->persent_anketa }}% @else 0% @endif"></span>
60 </div> 169 </div>
61 <div class="cabinet__stats-bottom">Заполните профиль, чтобы повысить процент анкеты на 80%</div> 170 <div class="cabinet__stats-bottom">Заполните профиль, чтобы повысить процент анкеты на 80%</div>
62 </div> 171 </div>
63 </div> 172 </div>
64 <div class="cabinet__body-item"> 173 <div class="cabinet__body-item">
65 <h3 class="cabinet__subtitle">Профиль</h3> 174 <h3 class="cabinet__subtitle">Профиль</h3>
66 <div class="cabinet__avatar"> 175 <div class="cabinet__avatar">
67 <div class="cabinet__avatar-pic"> 176 <div class="cabinet__avatar-pic">
177
178 @if (!empty($Worker[0]->photo))
179 <img src="{{ asset(Storage::url($Worker[0]->photo)) }}"/>
180 @else
68 <svg> 181 <svg>
69 <use xlink:href="images/sprite.svg#pic"></use> 182 <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use>
70 </svg> 183 </svg>
184 @endif
71 </div> 185 </div>
72 <div class="cabinet__avatar-form"> 186 <div class="cabinet__avatar-form">
73 <label class="file"> 187 <label class="file">
74 <span class="file__input"> 188 <span class="file__input">
75 <input type="file"> 189 <input type="file" name="photo" id="photo">
190
76 <span class="button"> 191 <span class="button">
77 <svg> 192 <svg>
78 <use xlink:href="images/sprite.svg#plus"></use> 193 <use xlink:href="{{ asset('images/sprite.svg#plus') }}"></use>
79 </svg> 194 </svg>
80 Загрузить 195 Загрузить
81 </span> 196 </span>
82 </span> 197 </span>
83 </label> 198 </label>
84 <p class="cabinet__text">Загрузите фотографию в формате svg.</p> 199 <p class="cabinet__text">Загрузите фотографию в формате svg., jpg., jpeg., png.</p>
85 </div> 200 </div>
86 </div> 201 </div>
87 </div> 202 </div>
88 <div class="cabinet__body-item"> 203 <div class="cabinet__body-item">
89 <div class="cabinet__inputs"> 204 <div class="cabinet__inputs">
90 <div class="cabinet__inputs-item form-group"> 205 <div class="cabinet__inputs-item form-group">
91 <label class="form-group__label">Электронная почта *</label> 206 <label class="form-group__label">Электронная почта *</label>
92 <div class="form-group__item"> 207 <div class="form-group__item">
93 <input type="email" class="input" placeholder="info@rekamore.su" required> 208 <input type="email" name="email" id="email" value="{{ $Worker[0]->email }}" class="input" placeholder="info@rekamore.su" required>
94 </div> 209 </div>
95 </div> 210 </div>
96 <div class="cabinet__inputs-item form-group"> 211 <div class="cabinet__inputs-item form-group">
212 <label class="form-group__label">Статус</label>
213 <div class="form-group__item">
214 <div class="select">
215 <select class="js-select2" name="status_work" id="status_work">
216 <option value="1" @if ($Worker[0]->status_work == 1) selected @endif>Не указано</option>
217 <option value="2" @if ($Worker[0]->status_work == 2) selected @endif>Не ищу работу</option>
218 <option value="0" @if ($Worker[0]->status_work == 0) selected @endif>Ищу работу</option>
219 </select>
220 </div>
221 </div>
222 </div>
223 <!--<div class="cabinet__inputs-item form-group">
97 <label class="form-group__label">Статус *</label> 224 <label class="form-group__label">Статус *</label>
98 <div class="form-group__item"> 225 <div class="form-group__item">
99 <input type="text" class="input" required> 226 <input type="text" class="input" required>
100 </div> 227 </div>
228 </div>-->
229 @if (isset($Worker[0]->users))
230 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
231 <label class="form-group__label">Фамилия *</label>
232 <div class="form-group__item">
233 <input type="text" name="surname" id="surmane" class="input" value="{{ $Worker[0]->users->surname }}" placeholder="Филиппов" required>
234 </div>
101 </div> 235 </div>
102 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> 236 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
103 <label class="form-group__label">ФИО *</label> 237 <label class="form-group__label">Имя *</label>
104 <div class="form-group__item"> 238 <div class="form-group__item">
105 <input type="text" class="input" placeholder="Филиппов Егор Алексеевич" required> 239 <input type="text" name="name_man" id="name_man" class="input" value="{{ $Worker[0]->users->name_man }}" placeholder="Егор" required>
106 </div> 240 </div>
107 </div> 241 </div>
242 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
243 <label class="form-group__label">Отчество *</label>
244 <div class="form-group__item">
245 <input type="text" class="input" name="surname2" id="surmane2" value="{{ $Worker[0]->users->surname2 }}" placeholder="Алексеевич">
246 </div>
247 </div>
248 @endif
108 </div> 249 </div>
109 </div> 250 </div>
110 <div class="cabinet__body-item"> 251 <div class="cabinet__body-item">
111 <h3 class="cabinet__subtitle">Основная информация</h3> 252 <h3 class="cabinet__subtitle">Основная информация</h3>
112 <div class="cabinet__inputs"> 253 <div class="cabinet__inputs">
113 <div class="cabinet__inputs-item cabinet__inputs-item_min form-group"> 254 <div class="cabinet__inputs-item cabinet__inputs-item_min form-group">
114 <label class="form-group__label">Возраст</label> 255 <label class="form-group__label">Возраст</label>
115 <div class="form-group__item"> 256 <div class="form-group__item">
116 <input type="number" class="input" placeholder="0" required> 257 <input type="number" name="old_year" id="old_year" value="{{ $Worker[0]->old_year }}" class="input" placeholder="0" required>
117 </div> 258 </div>
118 </div> 259 </div>
119 <div class="cabinet__inputs-item cabinet__inputs-item_max form-group"> 260 <div class="cabinet__inputs-item cabinet__inputs-item_max form-group">
120 <label class="form-group__label">Возраст</label> 261 <label class="form-group__label">Желаемые вакансии</label>
121 <div class="form-group__item"> 262 <div class="form-group__item">
122 <div class="select"> 263 <div class="select">
123 <select class="js-select2" multiple="multiple"> 264 <select class="js-select2" name="job_title_id[]" id="job_title_id[]" multiple="multiple">
124 <option selected>Капитан</option> 265 @if ($Job_titles->count())
125 <option selected>Старший помощник капитана</option> 266 @foreach($Job_titles as $it)
126 <option>Сортировка 1</option> 267 @if (isset($Worker[0]->job_titles))
127 <option>Сортировка 2</option> 268 @if ($Worker[0]->job_titles->count())
128 <option>Сортировка 3</option> 269 @foreach($Worker[0]->job_titles as $select)
129 <option>Сортировка 4</option> 270 <option value="{{ $it->id }}" @if ($it->id == $select->id) selected @endif>{{ $it->name }}</option>
130 <option>Сортировка 5</option> 271 @endforeach
131 <option>Сортировка 6</option> 272 @else
273 <option value="{{ $it->id }}">{{ $it->name }} ({{ $it->id }})</option>
274 @endif
275 @else
276 <option value="{{ $it->id }}">{{ $it->name }} ({{ $it->id }})</option>
277 @endif
278 @endforeach
279 @endif
132 </select> 280 </select>
133 </div> 281 </div>
134 </div> 282 </div>
135 </div> 283 </div>
136 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> 284 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
137 <label class="form-group__label">ФИО *</label> 285 <label class="form-group__label">Город</label>
138 <div class="form-group__item"> 286 <div class="form-group__item">
139 <input type="text" class="input" placeholder="Челябинск" required> 287 <input type="text" name="city" id="city" value="{{ $Worker[0]->city }}" class="input" placeholder="Челябинск" required>
140 </div> 288 </div>
141 </div> 289 </div>
142 <div class="cabinet__inputs-item form-group"> 290 <div class="cabinet__inputs-item form-group">
143 <label class="form-group__label">Опыт работы</label> 291 <label class="form-group__label">Опыт работы</label>
144 <div class="form-group__item"> 292 <div class="form-group__item">
145 <div class="select"> 293 <div class="select">
146 <select class="js-select2"> 294 <select class="js-select2" id="experience" name="experience">
147 <option>1 год</option> 295 <option value="Не указано" @if (empty($Worker[0]->experience)) selected @endif>Не указано</option>
148 <option>Сортировка 1</option> 296 <option value="меньше 1 года" @if ($Worker[0]->experience == 'меньше 1 года') selected @endif>меньше 1 года</option>
149 <option>Сортировка 2</option> 297 <option value="от 1 года до 3 лет" @if ($Worker[0]->experience == 'от 1 года до 3 лет') selected @endif>от 1 года до 3 лет</option>
150 <option>Сортировка 3</option> 298 <option value="от 3 до 5 лет" @if ($Worker[0]->experience == 'от 3 до 5 лет') selected @endif>от 3 до 5 лет</option>
151 <option>Сортировка 4</option> 299 <option value="от 5 до 10 лет" @if ($Worker[0]->experience == 'от 5 до 10 лет') selected @endif>от 5 до 10 лет</option>
152 <option>Сортировка 5</option> 300 <option value="Больше 10 лет" @if ($Worker[0]->experience == 'Больше 10 лет') selected @endif>Больше 10 лет</option>
153 <option>Сортировка 6</option>
154 </select>
155 </div>
156 </div>
157 </div>
158 <div class="cabinet__inputs-item form-group">
159 <label class="form-group__label">Кому хотите отправить сообщение</label>
160 <div class="form-group__item">
161 <div class="select">
162 <select class="js-select2">
163 <option>Не указано</option>
164 <option>Сортировка 1</option>
165 <option>Сортировка 2</option>
166 <option>Сортировка 3</option>
167 <option>Сортировка 4</option>
168 <option>Сортировка 5</option>
169 <option>Сортировка 6</option>
170 </select> 301 </select>
171 </div> 302 </div>
172 </div> 303 </div>
173 </div> 304 </div>
305
174 <div class="cabinet__inputs-item form-group"> 306 <div class="cabinet__inputs-item form-group">
175 <label class="form-group__label">Электронная почта</label> 307 <label class="form-group__label">Номер телефона 1</label>
176 <div class="form-group__item"> 308 <div class="form-group__item">
177 <input type="email" class="input" placeholder="info@rekamore.su" required> 309 <input type="tel" name="telephone" id="telephone" value="{{ old('telephone') ?? $Worker[0]->telephone ?? '' }}" class="input" placeholder="+7 (___) ___-__-__" required>
178 </div> 310 </div>
179 </div> 311 </div>
180 <div class="cabinet__inputs-item form-group"> 312 <div class="cabinet__inputs-item form-group">
181 <label class="form-group__label">Номер телефона</label> 313 <label class="form-group__label">Номер телефона 2</label>
182 <div class="form-group__item"> 314 <div class="form-group__item">
183 <input type="tel" class="input" placeholder="+7 (___) ___-__-__" required> 315 <input type="tel" name="telephone2" id="telephon2" value="{{ old('telephone2') ?? $Worker[0]->telephone2 ?? '' }}" class="input" placeholder="+7 (___) ___-__-__">
184 </div> 316 </div>
185 </div> 317 </div>
186 </div> 318 </div>
187 </div> 319 </div>
188 <div class="cabinet__body-item"> 320
189 <h3 class="cabinet__subtitle">Сертификаты / документы</h3> 321 <div id="sertificate" name="sertificate">
190 <h4 class="cabinet__h4">Сертификат 1</h4> 322 @if ((isset($Worker[0]->sertificate)) && ($Worker[0]->sertificate->count() > 0))
191 <div class="cabinet__inputs"> 323 @php $i = 0; @endphp
192 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> 324 @foreach($Worker[0]->sertificate as $it)
193 <label class="form-group__label">Название сертификата</label> 325 <div style="margin-bottom: 20px" class="cabinet__body-item">
194 <div class="form-group__item"> 326 @if ($i == 0)
195 <input type="text" class="input" value="Сертификат 1 - Филиппов Егор Алексеевич" disabled> 327 <h3 class="cabinet__subtitle">Сертификаты / документы</h3>
328 @endif
329 <h4 class="cabinet__h4">Сертификат {{ $i+1 }}</h4>
330 <div class="cabinet__inputs">
331 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
332 <label class="form-group__label">Название сертификата</label>
333 <div class="form-group__item">
334 <input type="text" class="input" value="{{ $it->name }}" disabled>
335 </div>
336 </div>
337 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
338 <label class="form-group__label">Название сертификата</label>
339 <div class="form-group__item">
340 <input type="text" class="input" value="{{ $it->date_begin }} - {{ $it->end_begin }}" disabled>
341 </div>
342 </div>
343 <a href="{{ route('worker.delete_sertificate', ['doc' => $it->id]) }}" class="button button_light">
344 <svg>
345 <use xlink:href="{{ asset('images/sprite.svg#del') }}"></use>
346 </svg>
347 Удалить
348 </a>
196 </div> 349 </div>
197 </div> 350 </div>
198 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> 351 @php $i++ @endphp
199 <label class="form-group__label">Название сертификата</label> 352 @endforeach
200 <div class="form-group__item"> 353 @else
201 <input type="text" class="input" value="04.11.26" disabled> 354 <div style="margin-bottom: 20px" class="cabinet__body-item">
202 </div> 355 <h3 class="cabinet__subtitle">Сертификаты / документы</h3>
356 Нет сертификатов
203 </div> 357 </div>
204 <button type="button" class="button button_light"> 358 @endif
205 <svg>
206 <use xlink:href="images/sprite.svg#del"></use>
207 </svg>
208 Удалить
209 </button>
210 </div>
211 </div> 359 </div>
360
212 <div class="cabinet__body-item"> 361 <div class="cabinet__body-item">
213 <h4 class="cabinet__h4">Сертификат 2</h4> 362 <h4 class="cabinet__h4">Добавить сертификат</h4>
214 <div class="cabinet__inputs"> 363 <div class="cabinet__inputs">
215 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> 364 <input type="hidden" name="new_id" id="new_id" class="input" value="{{ $Worker[0]->id }}">
365 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
216 <label class="form-group__label">Название сертификата</label> 366 <label class="form-group__label">Название сертификата</label>
217 <div class="form-group__item"> 367 <div class="form-group__item">
218 <input type="text" class="input" value="Сертификат 1 - Филиппов Егор Алексеевич" disabled> 368 <input type="text" name="new_diplom" id="new_diplom" class="input" value="Диплом о дополнительном образовании">
219 </div> 369 </div>
220 </div> 370 </div>
221 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> 371 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
222 <label class="form-group__label">Название сертификата</label> 372 <label class="form-group__label">Дата поступления</label>
223 <div class="form-group__item"> 373 <div class="form-group__item">
224 <input type="text" class="input" value="04.11.26" disabled> 374 <input type="text" name="new_data_begin" id="new_data_begin" class="input" value="01.09.23">
225 </div> 375 </div>
226 </div> 376 </div>
227 <button type="button" class="button button_light">
228 <svg>
229 <use xlink:href="images/sprite.svg#del"></use>
230 </svg>
231 Удалить
232 </button>
233 </div>
234 </div>
235 <div class="cabinet__body-item">
236 <h4 class="cabinet__h4">Добавить сертификат</h4>
237 <div class="cabinet__inputs">
238 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> 377 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
239 <label class="form-group__label">Название сертификата</label> 378 <label class="form-group__label">Дата окончания</label>
240 <div class="form-group__item"> 379 <div class="form-group__item">
241 <input type="text" class="input" value="Сертификат 1 - Филиппов Егор Алексеевич"> 380 <input type="text" name="new_data_end" id="new_data_end" class="input" value="04.11.26">
242 </div> 381 </div>
243 </div> 382 </div>
244 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> 383 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
245 <label class="form-group__label">Название сертификата</label> 384 <label class="form-group__label">Дата окончания</label>
246 <div class="form-group__item"> 385 <div class="form-group__item">
247 <input type="text" class="input" value="04.11.26"> 386 <input type="text" name="education" id="education" class="input" value="Учебное заведение">
248 </div> 387 </div>
249 </div> 388 </div>
250 <button type="button" class="button button_light"> 389 <div class="button button_light" data-val="{{ $Worker[0]->id }}" id="button_new_doc" name="button_new_doc">
251 Добавить сертификат 390 Добавить сертификат
252 </button> 391 </div>
253 </div> 392 </div>
254 </div> 393 </div>
255 <div class="cabinet__body-item"> 394
395 <div class="cabinet__body-item" name="ajax_dop_diplomi" id="ajax_dop_diplomi">
256 <h4 class="cabinet__h4">Дополнительная информация</h4> 396 <h4 class="cabinet__h4">Дополнительная информация</h4>
257 <div class="cabinet__inputs"> 397 <div class="cabinet__inputs" >
258 <div class="cabinet__inputs-item form-group"> 398 @if (isset($Worker[0]->infobloks))
259 <label class="form-group__label">Загран паспорт</label> 399 @if ($Worker[0]->infobloks->count())
260 <div class="form-group__item"> 400 @php $i = 1; @endphp
261 <div class="select"> 401 @foreach ($Worker[0]->infobloks as $info)
262 <select class="js-select2"> 402 <div class="cabinet__inputs-item form-group">
263 <option>Не указано</option> 403 <label class="form-group__label">{{ $info->name }}</label>
264 <option>Сортировка 1</option> 404 <div class="form-group__item">
265 <option>Сортировка 2</option> 405 <div class="select">
266 <option>Сортировка 3</option> 406 <select class="js-select2 sertificates_js">
267 <option>Сортировка 4</option> 407 <option value="0">Нет</option>
268 <option>Сортировка 5</option> 408 <option value="1" selected>Да</option>
269 <option>Сортировка 6</option> 409 </select>
270 </select> 410 </div>
271 </div> 411 </div>
272 </div>
273 </div>
274 <div class="cabinet__inputs-item form-group">
275 <label class="form-group__label">МК</label>
276 <div class="form-group__item">
277 <div class="select">
278 <select class="js-select2">
279 <option>Не указано</option>
280 <option>Сортировка 1</option>
281 <option>Сортировка 2</option>
282 <option>Сортировка 3</option>
283 <option>Сортировка 4</option>
284 <option>Сортировка 5</option>
285 <option>Сортировка 6</option>
286 </select>
287 </div>
288 </div>
289 </div>
290 <div class="cabinet__inputs-item form-group">
291 <label class="form-group__label">ВВП</label>
292 <div class="form-group__item">
293 <div class="select">
294 <select class="js-select2">
295 <option>Не указано</option>
296 <option>Сортировка 1</option>
297 <option>Сортировка 2</option>
298 <option>Сортировка 3</option>
299 <option>Сортировка 4</option>
300 <option>Сортировка 5</option>
301 <option>Сортировка 6</option>
302 </select>
303 </div>
304 </div>
305 </div>
306 <div class="cabinet__inputs-item form-group">
307 <label class="form-group__label">УЛМ</label>
308 <div class="form-group__item">
309 <div class="select">
310 <select class="js-select2">
311 <option>Не указано</option>
312 <option>Сортировка 1</option>
313 <option>Сортировка 2</option>
314 <option>Сортировка 3</option>
315 <option>Сортировка 4</option>
316 <option>Сортировка 5</option>
317 <option>Сортировка 6</option>
318 </select>
319 </div>
320 </div>
321 </div>
322 <div class="cabinet__inputs-item form-group">
323 <label class="form-group__label">Речной диплом</label>
324 <div class="form-group__item">
325 <div class="select">
326 <select class="js-select2">
327 <option>Не указано</option>
328 <option>Сортировка 1</option>
329 <option>Сортировка 2</option>
330 <option>Сортировка 3</option>
331 <option>Сортировка 4</option>
332 <option>Сортировка 5</option>
333 <option>Сортировка 6</option>
334 </select>
335 </div>
336 </div>
337 </div>
338 <div class="cabinet__inputs-item form-group">
339 <label class="form-group__label">Морской диплом</label>
340 <div class="form-group__item">
341 <div class="select">
342 <select class="js-select2">
343 <option>Не указано</option>
344 <option>Сортировка 1</option>
345 <option>Сортировка 2</option>
346 <option>Сортировка 3</option>
347 <option>Сортировка 4</option>
348 <option>Сортировка 5</option>
349 <option>Сортировка 6</option>
350 </select>
351 </div>
352 </div>
353 </div>
354 <div class="cabinet__inputs-item form-group">
355 <label class="form-group__label">МПСС 72</label>
356 <div class="form-group__item">
357 <div class="select">
358 <select class="js-select2">
359 <option>Не указано</option>
360 <option>Сортировка 1</option>
361 <option>Сортировка 2</option>
362 <option>Сортировка 3</option>
363 <option>Сортировка 4</option>
364 <option>Сортировка 5</option>
365 <option>Сортировка 6</option>
366 </select>
367 </div>
368 </div>
369 </div>
370 <div class="cabinet__inputs-item form-group">
371 <label class="form-group__label">ГМССБ</label>
372 <div class="form-group__item">
373 <div class="select">
374 <select class="js-select2">
375 <option>Не указано</option>
376 <option>Сортировка 1</option>
377 <option>Сортировка 2</option>
378 <option>Сортировка 3</option>
379 <option>Сортировка 4</option>
380 <option>Сортировка 5</option>
381 <option>Сортировка 6</option>
382 </select>
383 </div> 412 </div>
384 </div> 413 @php $i++; @endphp
385 </div> 414 @endforeach
386 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> 415 @endif
387 <label class="form-group__label">Образование</label> 416 @endif
417
418 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
419 <label class="form-group__label">Образцы дипломов и документов</label>
388 <div class="form-group__item"> 420 <div class="form-group__item">
389 <div class="select"> 421 <div class="select">
390 <select class="js-select2"> 422 <select class="js-select2" id="documents" name="documents">
391 <option>Не указано</option> 423 @if ($Infoblocks->count())
392 <option>Сортировка 1</option> 424 @foreach ($Infoblocks as $it)
393 <option>Сортировка 2</option> 425 <option value="{{ $it->id }}">{{ $it->name }}</option>
394 <option>Сортировка 3</option> 426 @endforeach
395 <option>Сортировка 4</option> 427 @endif
396 <option>Сортировка 5</option>
397 <option>Сортировка 6</option>
398 </select> 428 </select>
399 </div> 429 </div>
400 </div> 430 </div>
401 </div> 431 </div>
402 <button type="button" class="button button_light"> 432 <a href="{{ route('worker.add_diplom', ['worker' => $Worker[0]->id]) }}" name="btn_new_diplom" data-val="{{ $Worker[0]->id }}" id="btn_new_diplom" class="button button_light">
403 Добавить сертификат 433 Добавить документ
404 </button> 434 </a>
405 </div> 435 </div>
406 </div> 436 </div>
407 <div class="cabinet__body-item"> 437 <div class="cabinet__body-item">
408 <div class="cabinet__works"> 438 <div class="cabinet__works">
439 @if (isset($Worker[0]->place_worker))
440 @php $i = 1; @endphp
441 @foreach($Worker[0]->place_worker as $company)
409 <div class="cabinet__works-item"> 442 <div class="cabinet__works-item">
410 <div class="cabinet__works-spoiler active"> 443 <div class="cabinet__works-spoiler active">
411 <div class="cabinet__works-spoiler-left"> 444 <div class="cabinet__works-spoiler-left">
412 <div class="cabinet__works-spoiler-buttons"> 445 <div class="cabinet__works-spoiler-buttons">
413 <button type="button" class="button button_light js-works-remove"> 446 <button type="button" class="button button_light js-works-remove">
414 <svg> 447 <svg>
415 <use xlink:href="images/sprite.svg#del"></use> 448 <use xlink:href="{{ asset('images/sprite.svg#del') }}"></use>
416 </svg> 449 </svg>
417 </button> 450 </button>
418 <button type="button" class="button button_light js-works-edit"> 451 <button type="button" class="button button_light js-works-edit">
419 <svg> 452 <svg>
420 <use xlink:href="images/sprite.svg#pencil"></use> 453 <use xlink:href="{{ asset('images/sprite.svg#pencil') }}"></use>
421 </svg> 454 </svg>
422 </button> 455 </button>
423 </div> 456 </div>
424 <div class="cabinet__works-spoiler-text">Место работы 1</div> 457 <div class="cabinet__works-spoiler-text">Место работы {{ $i }}</div>
425 </div> 458 </div>
426 <button type="button" class="cabinet__works-spoiler-right js-parent-toggle"> 459 <button type="button" class="cabinet__works-spoiler-right js-parent-toggle">
427 <svg> 460 <svg>
428 <use xlink:href="images/sprite.svg#arrow-bold"></use> 461 <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use>
429 </svg> 462 </svg>
430 </button> 463 </button>
431 </div> 464 </div>
432 <div class="cabinet__works-body"> 465 <div class="cabinet__works-body">
433 <div class="cabinet__inputs"> 466 <div class="cabinet__inputs">
resources/views/workers/dop_info.blade.php
File was created 1 @extends('layout.frontend', ['title' => 'Моя анкета - РекаМоре'])
2
3 @section('scripts')
4
5 @endsection
6
7 @section('content')
8 <section class="cabinet">
9 <div class="container">
10 <ul class="breadcrumbs cabinet__breadcrumbs">
11 <li><a href="{{ route('index') }}">Главная</a></li>
12 <li><b>Личный кабинет</b></li>
13 </ul>
14 <div class="cabinet__wrapper">
15 <div class="cabinet__side">
16 <div class="cabinet__side-toper">
17 @include('workers.emblema')
18
19 </div>
20
21 @include('workers.menu', ['item' => 1])
22 </div>
23 <form class="cabinet__body" action="{{ route('worker.dop_info_save') }}" method="POST">
24 @csrf
25 @include('messages_error')
26 <input type="hidden" id="worker_id" name="worker_id" value="{{ $worker_id }}"/>
27 <div class="cabinet__body-item">
28 <div class="cabinet__anketa">
29 <h2 class="title cabinet__title">Добавление диплома</h2>
30 </div>
31 </div>
32 <div class="form-group__item">
33 <div class="select">
34 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
35 <label class="form-group__label">Образцы дипломов и документов</label>
36 </div>
37 <select class="js-select2" id="infoblok_id" name="infoblok_id">
38 @if ($Infoblocks->count())
39 @foreach ($Infoblocks as $it)
40 <option value="{{ $it->id }}">{{ $it->name }}</option>
41 @endforeach
42 @endif
43 </select>
44 </div>
45 </div>
46 <div class="cabinet__body-item">
47 <h4 class="cabinet__h4">Описание-комментарий</h4>
48 <textarea class="textarea" name="text" id="text" placeholder="Не указано"></textarea>
49 <div class="cabinet__buttons">
50 <button type="submit" class="button">Сохранить</button>
51 </div>
52 </div>
53 </div>
54 </form>
55 </div>
56 </div>
57 </section>
58 </div>
59
60 @endsection
61
1 <?php 1 <?php
2 2
3 use App\Http\Controllers\AdEmployerController; 3 use App\Http\Controllers\AdEmployerController;
4 use App\Http\Controllers\Admin\AdminController; 4 use App\Http\Controllers\Admin\AdminController;
5 use App\Http\Controllers\Admin\CategoryController; 5 use App\Http\Controllers\Admin\CategoryController;
6 use App\Http\Controllers\Admin\CategoryEmpController; 6 use App\Http\Controllers\Admin\CategoryEmpController;
7 use App\Http\Controllers\Admin\EducationController; 7 use App\Http\Controllers\Admin\EducationController;
8 use App\Http\Controllers\Admin\EmployersController; 8 use App\Http\Controllers\Admin\EmployersController;
9 use App\Http\Controllers\EmployerController as FrontEmployersController; 9 use App\Http\Controllers\EmployerController as FrontEmployersController;
10 use App\Http\Controllers\Admin\InfoBloksController; 10 use App\Http\Controllers\Admin\InfoBloksController;
11 use App\Http\Controllers\Admin\JobTitlesController; 11 use App\Http\Controllers\Admin\JobTitlesController;
12 use App\Http\Controllers\Admin\UsersController; 12 use App\Http\Controllers\Admin\UsersController;
13 use App\Http\Controllers\Admin\WorkersController; 13 use App\Http\Controllers\Admin\WorkersController;
14 use App\Http\Controllers\Auth\ForgotPasswordController; 14 use App\Http\Controllers\Auth\ForgotPasswordController;
15 use App\Http\Controllers\Auth\LoginController; 15 use App\Http\Controllers\Auth\LoginController;
16 use App\Http\Controllers\Auth\RegisterController; 16 use App\Http\Controllers\Auth\RegisterController;
17 use App\Http\Controllers\CKEditorController; 17 use App\Http\Controllers\CKEditorController;
18 use App\Http\Controllers\MediaController; 18 use App\Http\Controllers\MediaController;
19 use App\Http\Controllers\WorkerController; 19 use App\Http\Controllers\WorkerController;
20 use App\Models\User; 20 use App\Models\User;
21 use App\Http\Controllers\MainController; 21 use App\Http\Controllers\MainController;
22 use App\Http\Controllers\HomeController; 22 use App\Http\Controllers\HomeController;
23 use Illuminate\Support\Facades\Route; 23 use Illuminate\Support\Facades\Route;
24 use App\Http\Controllers\Admin\CompanyController; 24 use App\Http\Controllers\Admin\CompanyController;
25 use App\Http\Controllers\Admin\Ad_EmployersController; 25 use App\Http\Controllers\Admin\Ad_EmployersController;
26 use App\Http\Controllers\Admin\MsgAnswersController; 26 use App\Http\Controllers\Admin\MsgAnswersController;
27 use App\Http\Controllers\Admin\GroupsController; 27 use App\Http\Controllers\Admin\GroupsController;
28 use App\Http\Controllers\PagesController; 28 use App\Http\Controllers\PagesController;
29 use Illuminate\Support\Facades\Storage; 29 use Illuminate\Support\Facades\Storage;
30 use App\Http\Controllers\EmployerController; 30 use App\Http\Controllers\EmployerController;
31 use App\Http\Controllers\CompanyController as FrontCompanyController; 31 use App\Http\Controllers\CompanyController as FrontCompanyController;
32 32
33 33
34 /* 34 /*
35 |-------------------------------------------------------------------------- 35 |--------------------------------------------------------------------------
36 | Web Routes 36 | Web Routes
37 |-------------------------------------------------------------------------- 37 |--------------------------------------------------------------------------
38 | 38 |
39 | Here is where you can register web routes for your application. These 39 | Here is where you can register web routes for your application. These
40 | routes are loaded by the RouteServiceProvider within a group which 40 | routes are loaded by the RouteServiceProvider within a group which
41 | contains the "web" middleware group. Now create something great! 41 | contains the "web" middleware group. Now create something great!
42 | 42 |
43 */ 43 */
44 /* 44 /*
45 Route::get('/', function () { 45 Route::get('/', function () {
46 return view('welcome'); 46 return view('welcome');
47 })->name('index'); 47 })->name('index');
48 */ 48 */
49 Route::get('/', [MainController::class, 'index'])->name('index'); 49 Route::get('/', [MainController::class, 'index'])->name('index');
50 50
51 //Роуты авторизации, регистрации, восстановления, аутентификации 51 //Роуты авторизации, регистрации, восстановления, аутентификации
52 Auth::routes(['verify' => true]); 52 Auth::routes(['verify' => true]);
53 53
54 // роуты регистрации, авторизации, восстановления пароля, верификации почты 54 // роуты регистрации, авторизации, восстановления пароля, верификации почты
55 /*Route::group([ 55 /*Route::group([
56 'as' => 'auth.', //имя маршрута, например auth.index 56 'as' => 'auth.', //имя маршрута, например auth.index
57 'prefix' => 'auth', // префикс маршрута, например, auth/index 57 'prefix' => 'auth', // префикс маршрута, например, auth/index
58 ], function () { 58 ], function () {
59 //форма регистрации 59 //форма регистрации
60 Route::get('register', [RegisterController::class, 'register'])->name('register'); 60 Route::get('register', [RegisterController::class, 'register'])->name('register');
61 61
62 //создание пользователя 62 //создание пользователя
63 Route::post('register', [RegisterController::class, 'create'])->name('create'); 63 Route::post('register', [RegisterController::class, 'create'])->name('create');
64 64
65 //форма входа авторизации 65 //форма входа авторизации
66 Route::get('login', [LoginController::class, 'login'])->name('login'); 66 Route::get('login', [LoginController::class, 'login'])->name('login');
67 67
68 //аутентификация 68 //аутентификация
69 Route::post('login', [LoginController::class, 'authenticate'])->name('auth'); 69 Route::post('login', [LoginController::class, 'authenticate'])->name('auth');
70 70
71 //выход 71 //выход
72 Route::get('logout', [LoginController::class, 'logout'])->name('logout'); 72 Route::get('logout', [LoginController::class, 'logout'])->name('logout');
73 73
74 //форма ввода адреса почты 74 //форма ввода адреса почты
75 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form'); 75 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form');
76 76
77 //письмо на почту 77 //письмо на почту
78 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail'); 78 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail');
79 79
80 //форма восстановления пароля 80 //форма восстановления пароля
81 Route::get('reset-password/token/{token}/email/{email}', 81 Route::get('reset-password/token/{token}/email/{email}',
82 [ResetPasswordController::class, 'form'] 82 [ResetPasswordController::class, 'form']
83 )->name('reset-form'); 83 )->name('reset-form');
84 84
85 //восстановление пароля 85 //восстановление пароля
86 Route::post('reset-password', 86 Route::post('reset-password',
87 [ResetPasswordController::class, 'reset'] 87 [ResetPasswordController::class, 'reset']
88 )->name('reset-password'); 88 )->name('reset-password');
89 89
90 //сообщение о необходимости проверки адреса почты 90 //сообщение о необходимости проверки адреса почты
91 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message'); 91 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message');
92 92
93 //подтверждение адреса почты нового пользователя 93 //подтверждение адреса почты нового пользователя
94 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify']) 94 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify'])
95 ->where('token', '[a-f0-9]{32}') 95 ->where('token', '[a-f0-9]{32}')
96 ->where('id', '[0-9]+') 96 ->where('id', '[0-9]+')
97 ->name('verify-email'); 97 ->name('verify-email');
98 });*/ 98 });*/
99 99
100 //Личный кабинет пользователя 100 //Личный кабинет пользователя
101 Route::get('/home', [HomeController::class, 'index'])->name('home'); 101 Route::get('/home', [HomeController::class, 'index'])->name('home');
102 102
103 /* 103 /*
104 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { 104 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) {
105 $user = User::where('email',$request->input('email'))->first(); 105 $user = User::where('email',$request->input('email'))->first();
106 106
107 $user->sendEmailVerificationNotification(); 107 $user->sendEmailVerificationNotification();
108 108
109 return 'your response'; 109 return 'your response';
110 })->middleware('throttle:6,1')->name('verification.resend'); 110 })->middleware('throttle:6,1')->name('verification.resend');
111 */ 111 */
112 112
113 // Авторизация, регистрация в админку 113 // Авторизация, регистрация в админку
114 Route::group([ 114 Route::group([
115 'as' => 'admin.', // имя маршрута, например auth.index 115 'as' => 'admin.', // имя маршрута, например auth.index
116 'prefix' => 'admin', // префикс маршрута, например auth/index 116 'prefix' => 'admin', // префикс маршрута, например auth/index
117 'middleware' => ['guest'], 117 'middleware' => ['guest'],
118 ], function () { 118 ], function () {
119 // Форма регистрации 119 // Форма регистрации
120 Route::get('register', [AdminController::class, 'register'])->name('register'); 120 Route::get('register', [AdminController::class, 'register'])->name('register');
121 // Создание пользователя 121 // Создание пользователя
122 Route::post('register', [AdminController::class, 'create'])->name('create'); 122 Route::post('register', [AdminController::class, 'create'])->name('create');
123 123
124 //Форма входа 124 //Форма входа
125 Route::get('login', [AdminController::class, 'login'])->name('login'); 125 Route::get('login', [AdminController::class, 'login'])->name('login');
126 126
127 // аутентификация 127 // аутентификация
128 Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); 128 Route::post('login', [AdminController::class, 'autenticate'])->name('auth');
129 129
130 }); 130 });
131 131
132 // Личный кабинет админки 132 // Личный кабинет админки
133 Route::group([ 133 Route::group([
134 'as' => 'admin.', // имя маршрута, например auth.index 134 'as' => 'admin.', // имя маршрута, например auth.index
135 'prefix' => 'admin', // префикс маршрута, например auth/index 135 'prefix' => 'admin', // префикс маршрута, например auth/index
136 'middleware' => ['auth'], ['admin'], 136 'middleware' => ['auth'], ['admin'],
137 ], function() { 137 ], function() {
138 138
139 // выход 139 // выход
140 Route::get('logout', [AdminController::class, 'logout'])->name('logout'); 140 Route::get('logout', [AdminController::class, 'logout'])->name('logout');
141 141
142 // кабинет главная страница 142 // кабинет главная страница
143 Route::get('cabinet', [AdminController::class, 'index'])->name('index'); 143 Route::get('cabinet', [AdminController::class, 'index'])->name('index');
144 144
145 // кабинет профиль админа - форма 145 // кабинет профиль админа - форма
146 Route::get('profile', [AdminController::class, 'profile'])->name('profile'); 146 Route::get('profile', [AdminController::class, 'profile'])->name('profile');
147 // кабинет профиль админа - сохранение формы 147 // кабинет профиль админа - сохранение формы
148 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); 148 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile');
149 149
150 //кабинет сообщения админа 150 //кабинет сообщения админа
151 //Route::get('messages', [AdminController::class, 'profile'])->name('profile'); 151 //Route::get('messages', [AdminController::class, 'profile'])->name('profile');
152 152
153 153
154 // кабинет профиль - форма пароли 154 // кабинет профиль - форма пароли
155 Route::get('password', [AdminController::class, 'profile_password'])->name('password'); 155 Route::get('password', [AdminController::class, 'profile_password'])->name('password');
156 // кабинет профиль - сохранение формы пароля 156 // кабинет профиль - сохранение формы пароля
157 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); 157 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password');
158 158
159 159
160 // кабинет профиль пользователя - форма 160 // кабинет профиль пользователя - форма
161 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); 161 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile');
162 // кабинет профиль пользователя - сохранение формы 162 // кабинет профиль пользователя - сохранение формы
163 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); 163 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile');
164 164
165 // кабинет профиль работодатель - форма 165 // кабинет профиль работодатель - форма
166 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); 166 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile');
167 // кабинет профиль работодатель - сохранение формы 167 // кабинет профиль работодатель - сохранение формы
168 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); 168 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile');
169 // кабинет удаление профиль работодателя и юзера 169 // кабинет удаление профиль работодателя и юзера
170 Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer'); 170 Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer');
171 171
172 // кабинет профиль работник - форма 172 // кабинет профиль работник - форма
173 Route::get('worker-profile/add/{user}', [WorkersController::class, 'form_add_worker'])->name('worker-profile-add'); 173 Route::get('worker-profile/add/{user}', [WorkersController::class, 'form_add_worker'])->name('worker-profile-add');
174 Route::post('worker-profile/add/{user}', [WorkersController::class, 'form_store_worker'])->name('worker-profile-store'); 174 Route::post('worker-profile/add/{user}', [WorkersController::class, 'form_store_worker'])->name('worker-profile-store');
175 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit'); 175 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit');
176 // кабинет профиль работник - сохранение формы 176 // кабинет профиль работник - сохранение формы
177 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update'); 177 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update');
178 178
179 // Медиа 179 // Медиа
180 Route::get('media', [MediaController::class, 'index'])->name('media'); 180 Route::get('media', [MediaController::class, 'index'])->name('media');
181 Route::delete('media/{media}', [MediaController::class, 'delete'])->name('delete-media'); 181 Route::delete('media/{media}', [MediaController::class, 'delete'])->name('delete-media');
182 182
183 // кабинет настройки сайта - форма 183 // кабинет настройки сайта - форма
184 Route::get('config', [AdminController::class, 'config_form'])->name('config'); 184 Route::get('config', [AdminController::class, 'config_form'])->name('config');
185 // кабинет настройки сайта сохранение формы 185 // кабинет настройки сайта сохранение формы
186 Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); 186 Route::post('config', [AdminController::class, 'store_config'])->name('store_config');
187 187
188 // кабинет - пользователи 188 // кабинет - пользователи
189 Route::get('users', [UsersController::class, 'index'])->name('users'); 189 Route::get('users', [UsersController::class, 'index'])->name('users');
190 190
191 // кабинет - пользователи 191 // кабинет - пользователи
192 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); 192 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users');
193 193
194 // кабинет - работодатели 194 // кабинет - работодатели
195 Route::get('employers', [EmployersController::class, 'index'])->name('employers'); 195 Route::get('employers', [EmployersController::class, 'index'])->name('employers');
196 196
197 Route::get('employers/comment/{employer}', [EmployersController::class, 'comment_read'])->name('comment-employer'); 197 Route::get('employers/comment/{employer}', [EmployersController::class, 'comment_read'])->name('comment-employer');
198 198
199 Route::get('flot/add/{employer}', [EmployersController::class, 'add_flot'])->name('flot_add'); 199 Route::get('flot/add/{employer}', [EmployersController::class, 'add_flot'])->name('flot_add');
200 Route::post('flot/add', [EmployersController::class, 'save_add_flot'])->name('flot_add_save'); 200 Route::post('flot/add', [EmployersController::class, 'save_add_flot'])->name('flot_add_save');
201 Route::get('flot/{flot}/{employer}', [EmployersController::class, 'edit_flot'])->name('flot'); 201 Route::get('flot/{flot}/{employer}', [EmployersController::class, 'edit_flot'])->name('flot');
202 Route::put('flot/{flot}', [EmployersController::class, 'edit_save_flot'])->name('flot_edit'); 202 Route::put('flot/{flot}', [EmployersController::class, 'edit_save_flot'])->name('flot_edit');
203 Route::get('flot/{flot}/{employer_id}/delete', [EmployersController::class, 'delete_flot'])->name('flot_delete'); 203 Route::get('flot/{flot}/{employer_id}/delete', [EmployersController::class, 'delete_flot'])->name('flot_delete');
204 204
205 // кабинет - соискатели 205 // кабинет - соискатели
206 Route::get('workers', [WorkersController::class, 'index'])->name('workers'); 206 Route::get('workers', [WorkersController::class, 'index'])->name('workers');
207 207
208 // кабинет - база данных 208 // кабинет - база данных
209 Route::get('basedata', [UsersController::class, 'index_bd'])->name('basedata'); 209 Route::get('basedata', [UsersController::class, 'index_bd'])->name('basedata');
210 Route::get('basedata/add', [UsersController::class, 'add_bd'])->name('add-basedata'); 210 Route::get('basedata/add', [UsersController::class, 'add_bd'])->name('add-basedata');
211 Route::post('basedata/add', [UsersController::class, 'add_store_bd'])->name('add-store-basedata'); 211 Route::post('basedata/add', [UsersController::class, 'add_store_bd'])->name('add-store-basedata');
212 Route::get('basedata/edit/{user}', [UsersController::class, 'edit_bd'])->name('edit-basedata'); 212 Route::get('basedata/edit/{user}', [UsersController::class, 'edit_bd'])->name('edit-basedata');
213 Route::put('basedata/edit/{user}', [UsersController::class, 'update_bd'])->name('update-basedata'); 213 Route::put('basedata/edit/{user}', [UsersController::class, 'update_bd'])->name('update-basedata');
214 Route::delete('basedata/delete/{user}', [UsersController::class, 'destroy_bd'])->name('delete-basedata'); 214 Route::delete('basedata/delete/{user}', [UsersController::class, 'destroy_bd'])->name('delete-basedata');
215 Route::get('basedata/doc/{user}', [UsersController::class, 'doc_bd'])->name('doc-basedata'); 215 Route::get('basedata/doc/{user}', [UsersController::class, 'doc_bd'])->name('doc-basedata');
216 216
217 // кабинет - вакансии 217 // кабинет - вакансии
218 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); 218 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers');
219 Route::get('ad-employers/add', [Ad_EmployersController::class, 'create'])->name('add-ad-employers'); 219 Route::get('ad-employers/add', [Ad_EmployersController::class, 'create'])->name('add-ad-employers');
220 Route::post('ad-employers/add', [Ad_EmployersController::class, 'store'])->name('store-ad-employers'); 220 Route::post('ad-employers/add', [Ad_EmployersController::class, 'store'])->name('store-ad-employers');
221 Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers'); 221 Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers');
222 Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers'); 222 Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers');
223 Route::delete('ad-employers/delete/{ad_employer}', [Ad_EmployersController::class, 'destroy'])->name('delete-ad-employer'); 223 Route::delete('ad-employers/delete/{ad_employer}', [Ad_EmployersController::class, 'destroy'])->name('delete-ad-employer');
224 224
225 // Редактирование должности в вакансии 225 // Редактирование должности в вакансии
226 Route::put('update-jobs/{ad_jobs}', [Ad_EmployersController::class, 'update_ad_jobs'])->name('update_jobs'); 226 Route::put('update-jobs/{ad_jobs}', [Ad_EmployersController::class, 'update_ad_jobs'])->name('update_jobs');
227 Route::get('edit-jobs/{ad_jobs}', [Ad_EmployersController::class, 'edit_jobs'])->name('edit_jobs'); 227 Route::get('edit-jobs/{ad_jobs}', [Ad_EmployersController::class, 'edit_jobs'])->name('edit_jobs');
228 228
229 229
230 // кабинет - категории 230 // кабинет - категории
231 //Route::get('categories', [AdminController::class, 'index'])->name('categories'); 231 //Route::get('categories', [AdminController::class, 'index'])->name('categories');
232 /* 232 /*
233 * CRUD-операции над Справочником Категории 233 * CRUD-операции над Справочником Категории
234 */ 234 */
235 Route::resource('categories', CategoryController::class, ['except' => ['show']]); 235 Route::resource('categories', CategoryController::class, ['except' => ['show']]);
236 236
237 // CRUD-операции над справочником Категории для работодателей 237 // CRUD-операции над справочником Категории для работодателей
238 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]); 238 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]);
239 239
240 // CRUD-операции над справочником Образование 240 // CRUD-операции над справочником Образование
241 Route::resource('education', EducationController::class, ['except' => ['show']]); 241 Route::resource('education', EducationController::class, ['except' => ['show']]);
242 242
243 Route::get('rename-program-education', [EducationController::class, 'rename_program'])->name('rename-program-education'); 243 Route::get('rename-program-education', [EducationController::class, 'rename_program'])->name('rename-program-education');
244 Route::get('program-education', [EducationController::class, 'add_program'])->name('add-program-education'); 244 Route::get('program-education', [EducationController::class, 'add_program'])->name('add-program-education');
245 Route::post('program-education', [EducationController::class, 'store_program'])->name('store-program-education'); 245 Route::post('program-education', [EducationController::class, 'store_program'])->name('store-program-education');
246 246
247 Route::get('program-education/edit/{program}/{education}', [EducationController::class, 'edit_program'])->name('edit-program-education'); 247 Route::get('program-education/edit/{program}/{education}', [EducationController::class, 'edit_program'])->name('edit-program-education');
248 Route::post('program-education/edit/{program}/{education}', [EducationController::class, 'update_program'])->name('update-program-education'); 248 Route::post('program-education/edit/{program}/{education}', [EducationController::class, 'update_program'])->name('update-program-education');
249 249
250 Route::get('program-education/delete/{program}/{education}', [EducationController::class, 'delete_program'])->name('delete-program-education'); 250 Route::get('program-education/delete/{program}/{education}', [EducationController::class, 'delete_program'])->name('delete-program-education');
251 251
252 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); 252 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');
253 /* 253 /*
254 * кабинет - CRUD-операции по справочнику должности 254 * кабинет - CRUD-операции по справочнику должности
255 * 255 *
256 */ 256 */
257 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); 257 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]);
258 258
259 // кабинет - сообщения (чтение чужих) 259 // кабинет - сообщения (чтение чужих)
260 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); 260 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages');
261 // кабинет - просмотр сообщения чужого (чтение) 261 // кабинет - просмотр сообщения чужого (чтение)
262 Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message'); 262 Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message');
263 263
264 // кабинет - сообщения (админские) 264 // кабинет - сообщения (админские)
265 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages'); 265 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages');
266 // кабинет - сообщения (админские) 266 // кабинет - сообщения (админские)
267 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post'); 267 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post');
268 // кабинет - sql - конструкция запросов 268 // кабинет - sql - конструкция запросов
269 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql'); 269 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql');
270 270
271 /* 271 /*
272 * Расписанный подход в описании каждой директорий групп пользователей. 272 * Расписанный подход в описании каждой директорий групп пользователей.
273 */ 273 */
274 // кабинет - группы пользователей 274 // кабинет - группы пользователей
275 Route::get('groups', [GroupsController::class, 'index'])->name('groups'); 275 Route::get('groups', [GroupsController::class, 'index'])->name('groups');
276 // кабинет - добавление форма группы пользователей 276 // кабинет - добавление форма группы пользователей
277 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); 277 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group');
278 // кабинет - сохранение формы группы пользователей 278 // кабинет - сохранение формы группы пользователей
279 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); 279 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store');
280 // кабинет - редактирование форма группы пользователей 280 // кабинет - редактирование форма группы пользователей
281 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); 281 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group');
282 // кабинет - сохранение редактированной формы группы пользователей 282 // кабинет - сохранение редактированной формы группы пользователей
283 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); 283 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group');
284 // кабинет - удаление группы пользователей 284 // кабинет - удаление группы пользователей
285 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); 285 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group');
286 286
287 287
288 // кабинет - список админов 288 // кабинет - список админов
289 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); 289 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin');
290 290
291 291
292 /////редактор////// кабинет - редактор сайта//////////////////////// 292 /////редактор////// кабинет - редактор сайта////////////////////////
293 Route::get('editor-site', function() { 293 Route::get('editor-site', function() {
294 return view('admin.editor.index'); 294 return view('admin.editor.index');
295 })->name('editor-site'); 295 })->name('editor-site');
296 296
297 297
298 // кабинет - редактор шапки-футера сайта 298 // кабинет - редактор шапки-футера сайта
299 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); 299 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks');
300 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); 300 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block');
301 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); 301 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store');
302 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); 302 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block');
303 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); 303 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block');
304 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); 304 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block');
305 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); 305 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block');
306 306
307 307
308 // кабинет - редактор должности на главной 308 // кабинет - редактор должности на главной
309 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); 309 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main');
310 310
311 // кабинет - редактор работодатели на главной 311 // кабинет - редактор работодатели на главной
312 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); 312 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main');
313 313
314 314
315 // кабинет - редактор seo-сайта 315 // кабинет - редактор seo-сайта
316 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); 316 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo');
317 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); 317 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo');
318 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); 318 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store');
319 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); 319 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo');
320 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); 320 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo');
321 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); 321 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo');
322 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); 322 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo');
323 323
324 324
325 // кабинет - редактор страниц 325 // кабинет - редактор страниц
326 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); 326 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages');
327 // кабинет - добавление страницы 327 // кабинет - добавление страницы
328 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); 328 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page');
329 // кабинет - сохранение формы страницы 329 // кабинет - сохранение формы страницы
330 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); 330 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store');
331 // кабинет - редактирование форма страницы 331 // кабинет - редактирование форма страницы
332 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); 332 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page');
333 // кабинет - сохранение редактированной формы страницы 333 // кабинет - сохранение редактированной формы страницы
334 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); 334 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page');
335 // кабинет - удаление страницы 335 // кабинет - удаление страницы
336 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); 336 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page');
337 337
338 338
339 // кабинет - реклама сайта 339 // кабинет - реклама сайта
340 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); 340 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames');
341 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); 341 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames');
342 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); 342 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store');
343 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); 343 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames');
344 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); 344 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames');
345 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); 345 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames');
346 //////////////////////////////////////////////////////////////////////// 346 ////////////////////////////////////////////////////////////////////////
347 347
348 348
349 // кабинет - отзывы о работодателе для модерации 349 // кабинет - отзывы о работодателе для модерации
350 Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); 350 Route::get('answers', [EmployersController::class, 'answers'])->name('answers');
351 351
352 // Общая страница статистики 352 // Общая страница статистики
353 Route::get('statics', function () { 353 Route::get('statics', function () {
354 return view('admin.static.index'); 354 return view('admin.static.index');
355 })->name('statics'); 355 })->name('statics');
356 356
357 // кабинет - статистика работников 357 // кабинет - статистика работников
358 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); 358 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers');
359 359
360 // кабинет - статистика вакансий работодателя 360 // кабинет - статистика вакансий работодателя
361 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); 361 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads');
362 362
363 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника 363 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника
364 /* 364 /*
365 * CRUD-операции над справочником дипломы и документы 365 * CRUD-операции над справочником дипломы и документы
366 */ 366 */
367 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); 367 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks');
368 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); 368 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]);
369 369
370 // кабинет - роли пользователя 370 // кабинет - роли пользователя
371 Route::get('roles', [UsersController::class, 'roles'])->name('roles'); 371 Route::get('roles', [UsersController::class, 'roles'])->name('roles');
372 372
373 Route::get('admin_roles', [UsersController::class, 'admin_roles'])->name('admin_roles'); 373 Route::get('admin_roles', [UsersController::class, 'admin_roles'])->name('admin_roles');
374 374
375 Route::get('logs', function() { 375 Route::get('logs', function() {
376 $files = Storage::files('logs/laravel.log'); 376 $files = Storage::files('logs/laravel.log');
377 })->name('logs'); 377 })->name('logs');
378 }); 378 });
379 379
380 // Инструментальные страницы 380 // Инструментальные страницы
381 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); 381 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload');
382 382
383 Route::get('redis/', [PagesController::class, 'redis'])->name('redis'); 383 Route::get('redis/', [PagesController::class, 'redis'])->name('redis');
384 384
385 Route::get('excel/', [PagesController::class, 'excel'])->name('excel'); 385 Route::get('excel/', [PagesController::class, 'excel'])->name('excel');
386 386
387 // Страницы с произвольным контентом 387 // Страницы с произвольным контентом
388 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); 388 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page');
389 389
390 // Публичные страницы соискателя 390 // Публичные страницы соискателя
391 Route::get('workers/profile/{worker}', [WorkerController::class, 'profile'])->name('worker_page'); 391 Route::get('workers/profile/{worker}', [WorkerController::class, 'profile'])->name('worker_page');
392 392
393 //Страница вакансии 393 //Страница вакансии
394 Route::get('employer/ad/{ad_employer}', [AdEmployerController::class, 'ad_employer'])->name('ad-employer'); 394 Route::get('employer/ad/{ad_employer}', [AdEmployerController::class, 'ad_employer'])->name('ad-employer');
395 395
396 //Вакансии 396 //Вакансии
397 Route::get('vacancies', [MainController::class, 'vacancies'])->name('vacancies'); 397 Route::get('vacancies', [MainController::class, 'vacancies'])->name('vacancies');
398 398
399 //Вакансии поиск на главной 399 //Вакансии поиск на главной
400 Route::get('search-vacancies', [MainController::class, 'search_vacancies'])->name('search_vacancies'); 400 Route::get('search-vacancies', [MainController::class, 'search_vacancies'])->name('search_vacancies');
401 401
402 //Вакансии категория детальная 402 //Вакансии категория детальная
403 Route::get('list-vacancies/{categories}', [MainController::class, 'list_vacancies'])->name('list-vacancies'); 403 Route::get('list-vacancies/{categories}', [MainController::class, 'list_vacancies'])->name('list-vacancies');
404 404
405 //Детальная страница вакансии - работодателя 405 //Детальная страница вакансии - работодателя
406 Route::get('vacancie/{vacancy}', [FrontEmployersController::class, 'vacancie'])->name('vacancie'); 406 Route::get('vacancie/{vacancy}', [FrontEmployersController::class, 'vacancie'])->name('vacancie');
407 407
408 //Судоходные компании 408 //Судоходные компании
409 Route::get('shipping-companies', [FrontCompanyController::class, 'shipping_companies'])->name('shipping_companies'); 409 Route::get('shipping-companies', [FrontCompanyController::class, 'shipping_companies'])->name('shipping_companies');
410 410
411 //Детальная инфа о компании 411 //Детальная инфа о компании
412 Route::get('info-company/{company}', [FrontCompanyController::class, 'info_company'])->name('info_company'); 412 Route::get('info-company/{company}', [FrontCompanyController::class, 'info_company'])->name('info_company');
413 413
414 //Образование 414 //Образование
415 Route::get('education', [MainController::class, 'education'])->name('education'); 415 Route::get('education', [MainController::class, 'education'])->name('education');
416 416
417 //Новости 417 //Новости
418 Route::get('news', [MainController::class, 'news'])->name('news'); 418 Route::get('news', [MainController::class, 'news'])->name('news');
419 419
420 //Контакты 420 //Контакты
421 Route::get('contacts', [MainController::class, 'contacts'])->name('contacts'); 421 Route::get('contacts', [MainController::class, 'contacts'])->name('contacts');
422 422
423 //База резюме 423 //База резюме
424 Route::get('bd-resume', [WorkerController::class, 'bd_resume'])->name('bd_resume'); 424 Route::get('bd-resume', [WorkerController::class, 'bd_resume'])->name('bd_resume');
425 425
426 //Анкета соискателя 426 //Анкета соискателя
427 Route::get('resume-profile/{worker}', [WorkerController::class, 'resume_profile'])->name('resume_profile'); 427 Route::get('resume-profile/{worker}', [WorkerController::class, 'resume_profile'])->name('resume_profile');
428 428
429 //Скачать резюме 429 //Скачать резюме
430 Route::get('resume-download/{worker}', [WorkerController::class, 'resume_download'])->name('resume_download'); 430 Route::get('resume-download/{worker}', [WorkerController::class, 'resume_download'])->name('resume_download');
431 431
432 //Вход в кабинет 432 //Вход в кабинет
433 Route::get('login', [MainController::class, 'input_login'])->name('login'); 433 Route::get('login', [MainController::class, 'input_login'])->name('login');
434 434
435 // Выход из кабинета 435 // Выход из кабинета
436 Route::get('logout', [EmployerController::class, 'logout'])->name('logout'); 436 Route::get('logout', [EmployerController::class, 'logout'])->name('logout');
437 437
438 Route::get( 'register_worker', [WorkerController::class, 'register_worker'])->name('register_worker'); 438 Route::get( 'register_worker', [WorkerController::class, 'register_worker'])->name('register_worker');
439 Route::get('register_employer', [EmployerController::class, 'register_employer'])->name('register_employer'); 439 Route::get('register_employer', [EmployerController::class, 'register_employer'])->name('register_employer');
440 440
441 // Борьба против колорадских жуков и их геориевской ленточки 441 // Борьба против колорадских жуков и их геориевской ленточки
442 Route::get('clear_cookie', function() { 442 Route::get('clear_cookie', function() {
443 \App\Classes\Cookies_vacancy::clear_vacancy(); 443 \App\Classes\Cookies_vacancy::clear_vacancy();
444 return redirect()->route('index'); 444 return redirect()->route('index');
445 })->name('clear_cookie'); 445 })->name('clear_cookie');
446 446
447 // Личный кабинет работника 447 // Личный кабинет работника
448 Route::group([ 448 Route::group([
449 'as' => 'worker.', // имя маршрута, например auth.index 449 'as' => 'worker.', // имя маршрута, например auth.index
450 'prefix' => 'worker', // префикс маршрута, например auth/index 450 'prefix' => 'worker', // префикс маршрута, например auth/index
451 'middleware' => ['auth'], ['is_worker'], 451 'middleware' => ['auth'], ['is_worker'],
452 ], function() { 452 ], function() {
453 // 1 страница - Моя анкета 453 // 1 страница - Моя анкета
454 Route::get('cabinet', [WorkerController::class, 'cabinet'])->name('cabinet'); 454 Route::get('cabinet', [WorkerController::class, 'cabinet'])->name('cabinet');
455 Route::get('cabinet/{worker}', [WorkerController::class, 'cabinet_save'])->name('cabinet_save'); 455 Route::post('cabinet/{worker}', [WorkerController::class, 'cabinet_save'])->name('cabinet_save');
456 456
457 // 2 страница - Сообщения 457 // 2 страница - Сообщения
458 Route::get('cabinet/messages/{type_message}', [WorkerController::class, 'messages'])->name('messages'); 458 Route::get('cabinet/messages/{type_message}', [WorkerController::class, 'messages'])->name('messages');
459 Route::get('cabinet/dialog/{user1}/{user2}', [WorkerController::class, 'dialog'])->name('dialog'); 459 Route::get('cabinet/dialog/{user1}/{user2}', [WorkerController::class, 'dialog'])->name('dialog');
460 // 3 страница - Избранные вакансии 460 // 3 страница - Избранные вакансии
461 Route::get('cabinet/favorite', [WorkerController::class, 'favorite'])->name('favorite'); 461 Route::get('cabinet/favorite', [WorkerController::class, 'favorite'])->name('favorite');
462 // Продолжение борьбы против колорадов - избранные вакансии 462 // Продолжение борьбы против колорадов - избранные вакансии
463 Route::get('кабинет/favorite', [WorkerController::class, 'colorado'])->name('colorado'); 463 Route::get('кабинет/favorite', [WorkerController::class, 'colorado'])->name('colorado');
464 464
465 // 4 страница - Сменить пароль 465 // 4 страница - Сменить пароль
466 Route::get('кабинет/new_password', [WorkerController::class, 'new_password'])->name('new_password'); 466 Route::get('кабинет/new_password', [WorkerController::class, 'new_password'])->name('new_password');
467 Route::post('кабинет/new_password/save', [WorkerController::class, 'save_new_password'])->name('save_new_password'); 467 Route::post('кабинет/new_password/save', [WorkerController::class, 'save_new_password'])->name('save_new_password');
468 468
469 // 5 страница - Удалить профиль 469 // 5 страница - Удалить профиль
470 Route::get('кабинет/delete_profile', [WorkerController::class, 'delete_profile'])->name('delete_profile'); 470 Route::get('кабинет/delete_profile', [WorkerController::class, 'delete_profile'])->name('delete_profile');
471 Route::post('кабинет/delete_profile/delete', [WorkerController::class, 'delete_profile_result'])->name('deleteprofile_result'); 471 Route::post('кабинет/delete_profile/delete', [WorkerController::class, 'delete_profile_result'])->name('deleteprofile_result');
472 472
473 // 6 страница - Выход 473 // Резюме -pdf
474 Route::get('кабинет/download/{worker}', [WorkerController::class, 'download'])->name('download');
474 475
476 // Поднятие анкеты
477 Route::get('кабинет/up/{worker}', [WorkerController::class, 'up'])->name('up');
478
479 // Добавление сертификата
480 Route::get('кабинет/add_sertificate', [WorkerController::class, 'add_serificate'])->name('add_serificate');
481 Route::get('кабинет/delete_sertificate/{doc}', [WorkerController::class, 'delete_sertificate'])->name('delete_sertificate');
482
483 // Добавление документа-диплома
484 Route::get('кабинет/add_diplom/{worker}', [WorkerController::class, 'add_diplom'])->name('add_diplom');
485 Route::post('кабинет/add_diplom', [WorkerController::class, 'add_diplom_save'])->name('dop_info_save');
475 }); 486 });
476 487
477 // Личный кабинет работодателя 488 // Личный кабинет работодателя
478 Route::group([ 489 Route::group([
479 'as' => 'employer.', // имя маршрута, например auth.index 490 'as' => 'employer.', // имя маршрута, например auth.index
480 'prefix' => 'employer', // префикс маршрута, например auth/index 491 'prefix' => 'employer', // префикс маршрута, например auth/index
481 'middleware' => ['auth'], !['is_worker'], 492 'middleware' => ['auth'], !['is_worker'],
482 ], function() { 493 ], function() {
483 // 1 страница - Профиль 494 // 1 страница - Профиль
484 Route::get('cabinet', [EmployerController::class, 'cabinet'])->name('cabinet'); 495 Route::get('cabinet', [EmployerController::class, 'cabinet'])->name('cabinet');
485 Route::post('cabinet/{Employer}', [EmployerController::class, 'cabinet_save'])->name('cabinet_save'); 496 Route::post('cabinet/{Employer}', [EmployerController::class, 'cabinet_save'])->name('cabinet_save');
486 Route::post('flot_add_ajax', [EmployerController::class, 'save_add_flot'])->name('save_add_flot'); 497 Route::post('flot_add_ajax', [EmployerController::class, 'save_add_flot'])->name('save_add_flot');
487 Route::get('flot_delete_ajax/{Flot}', [EmployerController::class, 'delete_flot'])->name('delete_flot'); 498 Route::get('flot_delete_ajax/{Flot}', [EmployerController::class, 'delete_flot'])->name('delete_flot');
488 499
489 // 2 страница - Добавление вакансий 500 // 2 страница - Добавление вакансий
490 Route::get('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancie'])->name('cabinet_vacancie'); 501 Route::get('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancie'])->name('cabinet_vacancie');
491 Route::post('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancy_save'])->name('vacancy_save'); 502 Route::post('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancy_save'])->name('vacancy_save');
492 Route::post('vacancie', [EmployerController::class, 'cabinet_vacancy_save1'])->name('vac_save'); 503 Route::post('vacancie', [EmployerController::class, 'cabinet_vacancy_save1'])->name('vac_save');
493 504
494 // 3 страница - Мои вакансии 505 // 3 страница - Мои вакансии
495 Route::get('cabinet/vacancy_list', [EmployerController::class, 'vacancy_list'])->name('vacancy_list'); 506 Route::get('cabinet/vacancy_list', [EmployerController::class, 'vacancy_list'])->name('vacancy_list');
496 Route::get('cabinet/vacancy/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit'); 507 Route::get('cabinet/vacancy/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit');
497 Route::get('cabinet/vacancy-delete/{ad_employer}', [EmployerController::class, 'vacancy_delete'])->name('vacancy_delete'); 508 Route::get('cabinet/vacancy-delete/{ad_employer}', [EmployerController::class, 'vacancy_delete'])->name('vacancy_delete');
498 Route::get('cabinet/vacancy-up/{ad_employer}', [EmployerController::class, 'vacancy_up'])->name('vacancy_up'); 509 Route::get('cabinet/vacancy-up/{ad_employer}', [EmployerController::class, 'vacancy_up'])->name('vacancy_up');
499 Route::get('cabinet/vacancy-eye/{ad_employer}/{status}', [EmployerController::class, 'vacancy_eye'])->name('vacancy_eye'); 510 Route::get('cabinet/vacancy-eye/{ad_employer}/{status}', [EmployerController::class, 'vacancy_eye'])->name('vacancy_eye');
500 Route::get('cabinet/vacancy-edit/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit'); 511 Route::get('cabinet/vacancy-edit/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit');
501 512
502 // 4 страница - Отклики на вакансии 513 // 4 страница - Отклики на вакансии
503 Route::get('cabinet/answers/{employer}', [EmployerController::class, 'answers'])->name('answers'); 514 Route::get('cabinet/answers/{employer}', [EmployerController::class, 'answers'])->name('answers');
504 Route::get('cabinet/status/{employer}', [EmployerController::class, 'supple_status2'])->name('supple'); 515 Route::get('cabinet/status/{employer}', [EmployerController::class, 'supple_status2'])->name('supple');
505 Route::get('status/{employer}/{ad_response}/{flag}', [EmployerController::class, 'supple_status'])->name('status_msg'); 516 Route::get('status/{employer}/{ad_response}/{flag}', [EmployerController::class, 'supple_status'])->name('status_msg');
506 517
507 // 5 страница - Сообщения 518 // 5 страница - Сообщения
508 Route::get('cabinet/messages/{type_message}', [EmployerController::class, 'messages'])->name('messages'); 519 Route::get('cabinet/messages/{type_message}', [EmployerController::class, 'messages'])->name('messages');
509 Route::get('cabinet/dialog/{user1}/{user2}', [EmployerController::class, 'dialog'])->name('dialog'); 520 Route::get('cabinet/dialog/{user1}/{user2}', [EmployerController::class, 'dialog'])->name('dialog');
510 Route::post('cabinet/send-message', [EmployerController::class, 'send_message'])->name('send_message'); 521 Route::post('cabinet/send-message', [EmployerController::class, 'send_message'])->name('send_message');
511 Route::post('test123', [EmployerController::class, 'test123'])->name('test123'); 522 Route::post('test123', [EmployerController::class, 'test123'])->name('test123');
512 523
513 // 6 страница - Избранный 524 // 6 страница - Избранный
514 Route::get('cabinet/favorites', [EmployerController::class, 'favorites'])->name('favorites'); 525 Route::get('cabinet/favorites', [EmployerController::class, 'favorites'])->name('favorites');
515 526
516 //7 страница - База данных 527 //7 страница - База данных
517 Route::get('cabinet/bd', [EmployerController::class, 'bd'])->name('bd'); 528 Route::get('cabinet/bd', [EmployerController::class, 'bd'])->name('bd');
518 529
519 //8 страница - База резюме 530 //8 страница - База резюме
520 Route::get('cabinet/bd-tupe', [EmployerController::class, 'bd_tupe'])->name('bd-tupe'); 531 Route::get('cabinet/bd-tupe', [EmployerController::class, 'bd_tupe'])->name('bd-tupe');
521 532
522 // 9 рассылка сообщений 533 // 9 рассылка сообщений
523 Route::get('cabinet/send-all-messages', [EmployerController::class, 'send_all_messages'])->name('send_all_messages'); 534 Route::get('cabinet/send-all-messages', [EmployerController::class, 'send_all_messages'])->name('send_all_messages');
524 Route::post('cabinet/send-all-messages/send', [EmployerController::class, 'send_all_post'])->name('send_all_post'); 535 Route::post('cabinet/send-all-messages/send', [EmployerController::class, 'send_all_post'])->name('send_all_post');
525 536
526 // 10 страница FAQ вопросы 537 // 10 страница FAQ вопросы
527 Route::get('cabinet/faq', [EmployerController::class, 'faq'])->name('faq'); 538 Route::get('cabinet/faq', [EmployerController::class, 'faq'])->name('faq');
528 539
529 // 11 страница - Настройка уведомлений 540 // 11 страница - Настройка уведомлений
530 Route::get('cabinet/subscribe', [EmployerController::class, 'subscribe'])->name('subscribe'); 541 Route::get('cabinet/subscribe', [EmployerController::class, 'subscribe'])->name('subscribe');
531 Route::get('cabinet/subscribe/save', [EmployerController::class, 'save_subscribe'])->name('save_subscribe'); 542 Route::get('cabinet/subscribe/save', [EmployerController::class, 'save_subscribe'])->name('save_subscribe');
532 543
533 // 12 страница - Сменить пароль 544 // 12 страница - Сменить пароль
534 Route::get('cabinet/password-reset', [EmployerController::class, 'password_reset'])->name('password_reset'); 545 Route::get('cabinet/password-reset', [EmployerController::class, 'password_reset'])->name('password_reset');
535 Route::get('cabinet/password-reset/new', [EmployerController::class, 'new_password'])->name('new_password'); 546 Route::get('cabinet/password-reset/new', [EmployerController::class, 'new_password'])->name('new_password');
536 547
537 // 13 страница - Удаление профиля 548 // 13 страница - Удаление профиля
538 Route::get('cabinet/delete-people', [EmployerController::class, 'delete_people'])->name('delete_people'); 549 Route::get('cabinet/delete-people', [EmployerController::class, 'delete_people'])->name('delete_people');
539 Route::get('cabinet/action-delete-people', [EmployerController::class, 'action_delete_user'])->name('action_delete_user'); 550 Route::get('cabinet/action-delete-people', [EmployerController::class, 'action_delete_user'])->name('action_delete_user');
540 }); 551 });
541 552