Commit 6b9776dfb30a2a94a5ed700da5b2a8a509f45b23

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

Вторник работа над проектом 12.03.2024

Showing 17 changed files with 151 additions and 35 deletions Inline Diff

app/Http/Controllers/MainController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers; 3 namespace App\Http\Controllers;
4 4
5 use App\Classes\Tools; 5 use App\Classes\Tools;
6 use App\Mail\MailRegistration; 6 use App\Mail\MailRegistration;
7 use App\Mail\MailRepair; 7 use App\Mail\MailRepair;
8 use App\Models\Ad_employer; 8 use App\Models\Ad_employer;
9 use App\Models\Category; 9 use App\Models\Category;
10 use App\Models\Education; 10 use App\Models\Education;
11 use App\Models\Employer; 11 use App\Models\Employer;
12 use App\Models\Job_title; 12 use App\Models\Job_title;
13 use App\Models\News; 13 use App\Models\News;
14 use App\Models\reclame; 14 use App\Models\reclame;
15 use App\Models\User; 15 use App\Models\User;
16 use Illuminate\Http\Request; 16 use Illuminate\Http\Request;
17 use Illuminate\Support\Facades\Auth; 17 use Illuminate\Support\Facades\Auth;
18 use Illuminate\Support\Facades\Hash; 18 use Illuminate\Support\Facades\Hash;
19 use Illuminate\Support\Facades\Mail; 19 use Illuminate\Support\Facades\Mail;
20 use Illuminate\Support\Facades\Validator; 20 use Illuminate\Support\Facades\Validator;
21 use App\Classes\StatusUser; 21 use App\Classes\StatusUser;
22 22
23 class MainController extends Controller 23 class MainController extends Controller
24 { 24 {
25 // Главная страница публичной части 25 // Главная страница публичной части
26 public function index() { 26 public function index() {
27 $news = News::query()->orderBy('id')->limit(6)->get(); 27 $news = News::query()->orderBy('id')->limit(6)->get();
28 28
29 $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*') 29 $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*')
30 ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id') 30 ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id')
31 ->OrderByDesc('created_at') 31 ->OrderByDesc('created_at')
32 ->GroupBy('categories.id') 32 ->GroupBy('categories.id')
33 ->get(); 33 ->get();
34 34
35 $employers = Employer::query()->orderBy('id')->limit(20)->get(); 35 $employers = Employer::query()->orderBy('id')->limit(20)->get();
36 36
37 return view('index', compact('news', 'categories', 'employers')); 37 return view('index', compact('news', 'categories', 'employers'));
38 } 38 }
39 39
40 public function search_vacancies(Request $request) { 40 public function search_vacancies(Request $request) {
41 if ($request->has('search')) { 41 if ($request->has('search')) {
42 $search = $request->get('search'); 42 $search = $request->get('search');
43 $job_titles = Job_title::query()->where('name', 'LIKE', "%$search%")->first(); 43 $job_titles = Job_title::query()->where('name', 'LIKE', "%$search%")->first();
44 if (isset($job_titles->id)) 44 if (isset($job_titles->id))
45 if ($job_titles->id > 0) 45 if ($job_titles->id > 0)
46 return redirect()->route('vacancies', ['job' => $job_titles->id]); 46 return redirect()->route('vacancies', ['job' => $job_titles->id]);
47 } 47 }
48 } 48 }
49 49
50 public function vacancies(Request $request) { 50 public function vacancies(Request $request) {
51 //должности 51 //должности
52 $Job_title = Job_title::query()->orderBy('name')->get(); 52 $Job_title = Job_title::query()->orderBy('name')->get();
53 53
54 $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*') 54 $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*')
55 ->selectRaw('min(ad_employers.salary) as min_salary, max(ad_employers.salary) as max_salary') 55 ->selectRaw('min(ad_employers.salary) as min_salary, max(ad_employers.salary) as max_salary')
56 ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id') 56 ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id')
57 ->join('ad_jobs', 'ad_jobs.ad_employer_id', '=', 'ad_employers.id'); 57 ->join('ad_jobs', 'ad_jobs.ad_employer_id', '=', 'ad_employers.id');
58 58
59 //категории и вакансии 59 //категории и вакансии
60 if (($request->has('job')) && ($request->get('job') > 0)) { 60 if (($request->has('job')) && ($request->get('job') > 0)) {
61 $categories = $categories->Where('job_title_id', '=', $request->get('job')) 61 $categories = $categories->Where('job_title_id', '=', $request->get('job'));
62 ->OrderByDesc('created_at')
63 ->GroupBy('categories.id')
64 ->get();
65 } else {
66 $categories = $categories->OrderByDesc('created_at')
67 ->GroupBy('categories.id')
68 ->get();
69 } 62 }
70 63
64 $categories = $categories->OrderByDesc('created_at')->GroupBy('categories.id')->get();
65
71 if ($request->ajax()) { 66 if ($request->ajax()) {
72 return view('ajax.vacancies', compact('categories')); 67 return view('ajax.vacancies', compact('categories'));
73 } else { 68 } else {
74 return view('vacancies', compact('Job_title', 'categories')); 69 return view('vacancies', compact('Job_title', 'categories'));
75 } 70 }
76 } 71 }
77 72
78 //Вакансии категория детальная 73 //Вакансии категория детальная
79 public function list_vacancies(Category $categories, Request $request) { 74 public function list_vacancies(Category $categories, Request $request) {
80 if (isset(Auth()->user()->id)) 75 if (isset(Auth()->user()->id))
81 $uid = Auth()->user()->id; 76 $uid = Auth()->user()->id;
82 else 77 else
83 $uid = 0; 78 $uid = 0;
84 79
85 $Query = Ad_employer::with('jobs')-> 80 $Query = Ad_employer::with('jobs')->
86 with('cat')-> 81 with('cat')->
87 with('employer')-> 82 with('employer')->
88 whereHas('jobs_code', function ($query) use ($request) { 83 whereHas('jobs_code', function ($query) use ($request) {
89 if ($request->ajax()) { 84 if ($request->ajax()) {
90 if (null !== ($request->get('job')) && ($request->get('job') !== 0)) { 85 if (null !== ($request->get('job')) && ($request->get('job') !== 0)) {
91 $query->where('job_title_id', $request->get('job')); 86 $query->where('job_title_id', $request->get('job'));
92 } 87 }
93 } 88 }
94 }) 89 })
95 ->select('ad_employers.*'); 90 ->select('ad_employers.*');
96 91
97 92
98 93
99 if ($categories->id > 0) { 94 if ($categories->id > 0) {
100 $Query = $Query->where('category_id', '=', $categories->id); 95 $Query = $Query->where('category_id', '=', $categories->id);
101 $Name_categori = Category::query()->where('id', '=', $categories->id)->get(); 96 $Name_categori = Category::query()->where('id', '=', $categories->id)->get();
102 } 97 }
103 98
104 if ($request->get('sort')) { 99 if ($request->get('sort')) {
105 $sort = $request->get('sort'); 100 $sort = $request->get('sort');
106 switch ($sort) { 101 switch ($sort) {
107 case 'name_up': $Query = $Query->orderBy('name')->orderBy('id'); break; 102 case 'name_up': $Query = $Query->orderBy('name')->orderBy('id'); break;
108 case 'name_down': $Query = $Query->orderByDesc('name')->orderby('id'); break; 103 case 'name_down': $Query = $Query->orderByDesc('name')->orderby('id'); break;
109 case 'created_at_up': $Query = $Query->OrderBy('created_at')->orderBy('id'); break; 104 case 'created_at_up': $Query = $Query->OrderBy('created_at')->orderBy('id'); break;
110 case 'created_at_down': $Query = $Query->orderByDesc('created_at')->orderBy('id'); break; 105 case 'created_at_down': $Query = $Query->orderByDesc('created_at')->orderBy('id'); break;
111 case 'default': $Query = $Query->orderBy('id')->orderby('updated_at'); break; 106 case 'default': $Query = $Query->orderBy('id')->orderby('updated_at'); break;
112 default: $Query = $Query->orderBy('id')->orderby('updated_at'); break; 107 default: $Query = $Query->orderBy('id')->orderby('updated_at'); break;
113 } 108 }
114 } 109 }
115 110
116 $Job_title = Job_title::query()->OrderBy('name')->get(); 111 $Job_title = Job_title::query()->OrderBy('name')->get();
117 112
118 $Query_count = $Query->count(); 113 $Query_count = $Query->count();
119 114
120 $Query = $Query->OrderBy('updated_at')->paginate(3); 115 $Query = $Query->OrderBy('updated_at')->paginate(3);
121 116
122 $Reclama = reclame::query()->limit(3)->get(); 117 $Reclama = reclame::query()->limit(3)->get();
123 118
124 119
125 120
126 if ($request->ajax()) { 121 if ($request->ajax()) {
127 return view('ajax.list_vacancies', compact('Query', 122 return view('ajax.list_vacancies', compact('Query',
128 'Query_count', 123 'Query_count',
129 'Name_categori', 124 'Name_categori',
130 'Reclama', 125 'Reclama',
131 'categories', 126 'categories',
132 'uid')); 127 'uid'));
133 } else { 128 } else {
134 //Вернуть все 129 //Вернуть все
135 return view('list_vacancies', compact('Query', 130 return view('list_vacancies', compact('Query',
136 'Query_count', 131 'Query_count',
137 'Reclama', 132 'Reclama',
138 'Name_categori', 133 'Name_categori',
139 'categories', 134 'categories',
140 'Job_title', 135 'Job_title',
141 'uid')); 136 'uid'));
142 } 137 }
143 } 138 }
144 139
145 // Образование 140 // Образование
146 public function education(Request $request) { 141 public function education(Request $request) {
147 $educations = Education::query(); 142 $educations = Education::query();
148 if (($request->has('search')) && (!empty($request->get('search')))) { 143 if (($request->has('search')) && (!empty($request->get('search')))) {
149 $search = trim($request->get('search')); 144 $search = trim($request->get('search'));
150 $educations = $educations->where('name', 'LIKE', "%$search%"); 145 $educations = $educations->where('name', 'LIKE', "%$search%");
151 } 146 }
152 147
153 if ($request->get('sort')) { 148 if ($request->get('sort')) {
154 $sort = $request->get('sort'); 149 $sort = $request->get('sort');
155 switch ($sort) { 150 switch ($sort) {
156 case 'name_up': $educations = $educations->orderBy('name')->orderBy('id'); break; 151 case 'name_up': $educations = $educations->orderBy('name')->orderBy('id'); break;
157 case 'name_down': $educations = $educations->orderByDesc('name')->orderby('id'); break; 152 case 'name_down': $educations = $educations->orderByDesc('name')->orderby('id'); break;
158 case 'created_at_up': $educations = $educations->OrderBy('created_at')->orderBy('id'); break; 153 case 'created_at_up': $educations = $educations->OrderBy('created_at')->orderBy('id'); break;
159 case 'created_at_down': $educations = $educations->orderByDesc('created_at')->orderBy('id'); break; 154 case 'created_at_down': $educations = $educations->orderByDesc('created_at')->orderBy('id'); break;
160 case 'default': $educations = $educations->orderBy('id')->orderby('updated_at'); break; 155 case 'default': $educations = $educations->orderBy('id')->orderby('updated_at'); break;
161 default: $educations = $educations->orderBy('id')->orderby('updated_at'); break; 156 default: $educations = $educations->orderBy('id')->orderby('updated_at'); break;
162 } 157 }
163 } 158 }
164 159
165 $count_edu = $educations->count(); 160 $count_edu = $educations->count();
166 $educations = $educations->paginate(6); 161 $educations = $educations->paginate(6);
167 if ($request->ajax()) { 162 if ($request->ajax()) {
168 return view('ajax.education', compact('educations')); 163 return view('ajax.education', compact('educations'));
169 } else { 164 } else {
170 return view('education', compact('educations', 'count_edu')); 165 return view('education', compact('educations', 'count_edu'));
171 } 166 }
172 } 167 }
173 168
174 // Контакты 169 // Контакты
175 public function contacts() { 170 public function contacts() {
176 return view('contacts'); 171 return view('contacts');
177 } 172 }
178 173
179 // Вход в личный кабинет 174 // Вход в личный кабинет
180 public function input_login(Request $request) 175 public function input_login(Request $request)
181 { 176 {
182 $params = $request->all(); 177 $params = $request->all();
183 178
184 179
185 $rules = [ 180 $rules = [
186 'email' => 'required|string|email', 181 'email' => 'required|string|email',
187 'password' => 'required|string', 182 'password' => 'required|string',
188 ]; 183 ];
189 184
190 $messages = [ 185 $messages = [
191 'required' => 'Укажите обязательное поле «:attribute»', 186 'required' => 'Укажите обязательное поле «:attribute»',
192 'email' => 'Введите корректный email', 187 'email' => 'Введите корректный email',
193 'min' => [ 188 'min' => [
194 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 189 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
195 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 190 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
196 ], 191 ],
197 'max' => [ 192 'max' => [
198 'string' => 'Поле «:attribute» должно быть не больше :max символов', 193 'string' => 'Поле «:attribute» должно быть не больше :max символов',
199 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 194 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
200 ], 195 ],
201 ]; 196 ];
202 197
203 $validator = Validator::make($request->all(), $rules, $messages); 198 $validator = Validator::make($request->all(), $rules, $messages);
204 199
205 200
206 if ($validator->fails()) { 201 if ($validator->fails()) {
207 return redirect()->route('index')->with('Error', "Email или пароль невалидный"); 202 return redirect()->route('index')->with('Error', "Email или пароль невалидный");
208 } else { 203 } else {
209 $credentials = $request->only('email', 'password'); 204 $credentials = $request->only('email', 'password');
210 205
211 if (Auth::attempt($credentials, $request->has('remember'))) { 206 if (Auth::attempt($credentials, $request->has('remember'))) {
212 207
213 if (is_null(Auth::user()->email_verified_at)) { 208 if (is_null(Auth::user()->email_verified_at)) {
214 Auth::logout(); 209 Auth::logout();
215 return json_encode(Array("ERROR" => "Адрес почты не подтвержден")); 210 return json_encode(Array("ERROR" => "Адрес почты не подтвержден"));
216 } 211 }
217 212
218 if (Auth::user()->is_worker) { 213 if (Auth::user()->is_worker) {
219 return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl())); 214 return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl()));
220 } else { 215 } else {
221 return json_encode(Array("REDIRECT" => redirect()->route('employer.cabinet')->getTargetUrl())); 216 return json_encode(Array("REDIRECT" => redirect()->route('employer.cabinet')->getTargetUrl()));
222 } 217 }
223 218
224 return json_encode(Array("SUCCESS" => "Вы успешно вошли в личный кабинет")); 219 return json_encode(Array("SUCCESS" => "Вы успешно вошли в личный кабинет"));
225 //->route('index') 220 //->route('index')
226 //->with('success', 'Вы вошли в личный кабинет.'); 221 //->with('success', 'Вы вошли в личный кабинет.');
227 } else { 222 } else {
228 return json_encode(Array("ERROR" => "Неверный логин или пароль!")); 223 return json_encode(Array("ERROR" => "Неверный логин или пароль!"));
229 } 224 }
230 } 225 }
231 } 226 }
232 227
233 // Восстановление пароля 228 // Восстановление пароля
234 public function repair_password(Request $request) { 229 public function repair_password(Request $request) {
235 $rules = [ 230 $rules = [
236 'email' => 'required|string|email', 231 'email' => 'required|string|email',
237 ]; 232 ];
238 233
239 $messages = [ 234 $messages = [
240 'required' => 'Укажите обязательное поле «:attribute»', 235 'required' => 'Укажите обязательное поле «:attribute»',
241 'email' => 'Введите корректный email', 236 'email' => 'Введите корректный email',
242 'min' => [ 237 'min' => [
243 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 238 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
244 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 239 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
245 ], 240 ],
246 'max' => [ 241 'max' => [
247 'string' => 'Поле «:attribute» должно быть не больше :max символов', 242 'string' => 'Поле «:attribute» должно быть не больше :max символов',
248 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 243 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
249 ], 244 ],
250 ]; 245 ];
251 246
252 $validator = Validator::make($request->all(), $rules, $messages); 247 $validator = Validator::make($request->all(), $rules, $messages);
253 248
254 if ($validator->fails()) { 249 if ($validator->fails()) {
255 return redirect()->back()->with('Error', "Email невалидный"); 250 return redirect()->back()->with('Error', "Email невалидный");
256 } else { 251 } else {
257 $new_password = Tools::generator_id(10); 252 $new_password = Tools::generator_id(10);
258 $hash_password = Hash::make($new_password); 253 $hash_password = Hash::make($new_password);
259 $user = User::query()->where('email', $request->get('email'))->first(); 254 $user = User::query()->where('email', $request->get('email'))->first();
260 $EditRec = User::find($user->id); 255 $EditRec = User::find($user->id);
261 $EditRec->password = $hash_password; 256 $EditRec->password = $hash_password;
262 $EditRec->save(); 257 $EditRec->save();
263 258
264 foreach ([$request->get('email')] as $recipient) { 259 foreach ([$request->get('email')] as $recipient) {
265 Mail::to($recipient)->send(new MailRepair($new_password)); 260 Mail::to($recipient)->send(new MailRepair($new_password));
266 } 261 }
267 return redirect()->route('index'); 262 return redirect()->route('index');
268 263
269 } 264 }
270 265
271 } 266 }
272 267
273 // Вывод новостей 268 // Вывод новостей
274 public function news(Request $request) { 269 public function news(Request $request) {
275 $Query = News::query(); 270 $Query = News::query();
276 if ($request->has('search')) { 271 if ($request->has('search')) {
277 $search = $request->get('search'); 272 $search = $request->get('search');
278 $Query = $Query->where('title', 'LIKE', "%$search%")-> 273 $Query = $Query->where('title', 'LIKE', "%$search%")->
279 orWhere('text', 'LIKE', "%$search%"); 274 orWhere('text', 'LIKE', "%$search%");
280 } 275 }
281 276
282 if ($request->ajax()) { 277 if ($request->ajax()) {
283 if ($request->get('sort')) { 278 if ($request->get('sort')) {
284 $sort = $request->get('sort'); 279 $sort = $request->get('sort');
285 switch ($sort) { 280 switch ($sort) {
286 case 'name_up': $Query = $Query->orderBy('title')->orderBy('id'); break; 281 case 'name_up': $Query = $Query->orderBy('title')->orderBy('id'); break;
287 case 'name_down': $Query = $Query->orderByDesc('title')->orderby('id'); break; 282 case 'name_down': $Query = $Query->orderByDesc('title')->orderby('id'); break;
288 case 'created_at_up': $Query = $Query->OrderBy('created_at')->orderBy('id'); break; 283 case 'created_at_up': $Query = $Query->OrderBy('created_at')->orderBy('id'); break;
289 case 'created_at_down': $Query = $Query->orderByDesc('created_at')->orderBy('id'); break; 284 case 'created_at_down': $Query = $Query->orderByDesc('created_at')->orderBy('id'); break;
290 case 'default': $Query = $Query->orderBy('id')->orderby('updated_at'); break; 285 case 'default': $Query = $Query->orderBy('id')->orderby('updated_at'); break;
291 default: $Query = $Query->orderBy('id')->orderby('updated_at'); break; 286 default: $Query = $Query->orderBy('id')->orderby('updated_at'); break;
292 } 287 }
293 } 288 }
294 } 289 }
295 $Query_count = $Query->count(); 290 $Query_count = $Query->count();
296 $Query = $Query->paginate(6); 291 $Query = $Query->paginate(6);
297 292
298 if ($request->ajax()) { 293 if ($request->ajax()) {
299 return view('ajax.news-list', compact('Query', 'Query_count')); 294 return view('ajax.news-list', compact('Query', 'Query_count'));
300 } else { 295 } else {
301 return view('news-list', compact('Query', 'Query_count')); 296 return view('news-list', compact('Query', 'Query_count'));
302 } 297 }
303 } 298 }
304 299
305 //Детальная новость 300 //Детальная новость
306 public function detail_new(News $new) { 301 public function detail_new(News $new) {
307 // Выборка 302 // Выборка
308 $Query = News::query()->where('id', $new->id)->get(); 303 $Query = News::query()->where('id', $new->id)->get();
309 $title = $Query[0]->title; 304 $title = $Query[0]->title;
310 $All_Query = News::query()->paginate(8); 305 $All_Query = News::query()->paginate(8);
311 return view('detail_new', compact('Query', 'All_Query', 'title')); 306 return view('detail_new', compact('Query', 'All_Query', 'title'));
312 } 307 }
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\Http\Requests\DocumentsRequest; 6 use App\Http\Requests\DocumentsRequest;
7 use App\Models\Ad_employer; 7 use App\Models\Ad_employer;
8 use App\Models\ad_response; 8 use App\Models\ad_response;
9 use App\Models\Category; 9 use App\Models\Category;
10 use App\Models\Dop_info; 10 use App\Models\Dop_info;
11 use App\Models\Employer; 11 use App\Models\Employer;
12 use App\Models\infobloks; 12 use App\Models\infobloks;
13 use App\Models\Job_title; 13 use App\Models\Job_title;
14 use App\Models\Message; 14 use App\Models\Message;
15 use App\Models\place_works; 15 use App\Models\place_works;
16 use App\Models\reclame; 16 use App\Models\reclame;
17 use App\Models\ResponseWork;
17 use App\Models\sertification; 18 use App\Models\sertification;
18 use App\Models\Static_worker; 19 use App\Models\Static_worker;
19 use App\Models\User; 20 use App\Models\User;
20 use App\Models\User as User_Model; 21 use App\Models\User as User_Model;
21 use App\Models\Worker; 22 use App\Models\Worker;
22 use Barryvdh\DomPDF\Facade\Pdf; 23 use Barryvdh\DomPDF\Facade\Pdf;
23 use Carbon\Carbon; 24 use Carbon\Carbon;
24 use Illuminate\Auth\Events\Registered; 25 use Illuminate\Auth\Events\Registered;
25 use Illuminate\Database\Eloquent\Builder; 26 use Illuminate\Database\Eloquent\Builder;
26 use Illuminate\Http\JsonResponse; 27 use Illuminate\Http\JsonResponse;
27 use Illuminate\Http\Request; 28 use Illuminate\Http\Request;
28 use Illuminate\Support\Facades\Auth; 29 use Illuminate\Support\Facades\Auth;
29 use Illuminate\Support\Facades\Hash; 30 use Illuminate\Support\Facades\Hash;
30 use Illuminate\Support\Facades\Storage; 31 use Illuminate\Support\Facades\Storage;
31 use Illuminate\Support\Facades\Validator; 32 use Illuminate\Support\Facades\Validator;
32 33
33 class WorkerController extends Controller 34 class WorkerController extends Controller
34 { 35 {
35 public $status_work = array(0 => 'Ищу работу', 1 => 'Не указано', 2 => 'Не ищу работу'); 36 public $status_work = array(0 => 'Ищу работу', 1 => 'Не указано', 2 => 'Не ищу работу');
36 37
37 //профиль 38 //профиль
38 public function profile(Worker $worker) 39 public function profile(Worker $worker)
39 { 40 {
40 $get_date = date('Y.m'); 41 $get_date = date('Y.m');
41 42
42 $c = Static_worker::query()->where('year_month', '=', $get_date) 43 $c = Static_worker::query()->where('year_month', '=', $get_date)
43 ->where('user_id', '=', $worker->users->id) 44 ->where('user_id', '=', $worker->users->id)
44 ->get(); 45 ->get();
45 46
46 if ($c->count() > 0) { 47 if ($c->count() > 0) {
47 $upd = Static_worker::find($c[0]->id); 48 $upd = Static_worker::find($c[0]->id);
48 $upd->lookin = $upd->lookin + 1; 49 $upd->lookin = $upd->lookin + 1;
49 $upd->save(); 50 $upd->save();
50 } else { 51 } else {
51 $crt = new Static_worker(); 52 $crt = new Static_worker();
52 $crt->lookin = 1; 53 $crt->lookin = 1;
53 $crt->year_month = $get_date; 54 $crt->year_month = $get_date;
54 $crt->user_id = $worker->user_id; 55 $crt->user_id = $worker->user_id;
55 $crt->save(); 56 $crt->save();
56 } 57 }
57 58
58 $stat = Static_worker::query()->where('year_month', '=', $get_date) 59 $stat = Static_worker::query()->where('year_month', '=', $get_date)
59 ->where('user_id', '=', $worker->users->id) 60 ->where('user_id', '=', $worker->users->id)
60 ->get(); 61 ->get();
61 62
62 return view('public.workers.profile', compact('worker', 'stat')); 63 return view('public.workers.profile', compact('worker', 'stat'));
63 } 64 }
64 65
65 // лист база резюме 66 // лист база резюме
66 public function bd_resume(Request $request) 67 public function bd_resume(Request $request)
67 { 68 {
68 if (isset(Auth()->user()->id)) { 69 if (isset(Auth()->user()->id)) {
69 $idiot = Auth()->user()->id; 70 $idiot = Auth()->user()->id;
70 } else { 71 } else {
71 $idiot = 0; 72 $idiot = 0;
72 } 73 }
73 74
74 $status_work = $this->status_work; 75 $status_work = $this->status_work;
75 $resumes = Worker::query()->with('users')->with('job_titles'); 76 $resumes = Worker::query()->with('users')->with('job_titles');
76 $resumes = $resumes->whereHas('users', function (Builder $query) { 77 $resumes = $resumes->whereHas('users', function (Builder $query) {
77 $query->Where('is_worker', '=', '1') 78 $query->Where('is_worker', '=', '1')
78 ->Where('is_bd', '=', '0'); 79 ->Where('is_bd', '=', '0');
79 }); 80 });
80 81
81 if ($request->get('sort')) { 82 if ($request->get('sort')) {
82 $sort = $request->get('sort'); 83 $sort = $request->get('sort');
83 switch ($sort) { 84 switch ($sort) {
84 case 'name_up': 85 case 'name_up':
85 $resumes = $resumes->orderBy(User::select('surname') 86 $resumes = $resumes->orderBy(User::select('surname')
86 ->whereColumn('Workers.user_id', 'users.id') 87 ->whereColumn('Workers.user_id', 'users.id')
87 ); 88 );
88 break; 89 break;
89 case 'name_down': 90 case 'name_down':
90 $resumes = $resumes->orderByDesc(User::select('surname') 91 $resumes = $resumes->orderByDesc(User::select('surname')
91 ->whereColumn('Workers.user_id', 'users.id') 92 ->whereColumn('Workers.user_id', 'users.id')
92 ); 93 );
93 break; 94 break;
94 case 'created_at_up': $resumes = $resumes->OrderBy('created_at')->orderBy('id'); break; 95 case 'created_at_up': $resumes = $resumes->OrderBy('created_at')->orderBy('id'); break;
95 case 'created_at_down': $resumes = $resumes->orderByDesc('created_at')->orderBy('id'); break; 96 case 'created_at_down': $resumes = $resumes->orderByDesc('created_at')->orderBy('id'); break;
96 case 'default': $resumes = $resumes->orderBy('id')->orderby('updated_at'); break; 97 case 'default': $resumes = $resumes->orderBy('id')->orderby('updated_at'); break;
97 default: $resumes = $resumes->orderBy('id')->orderby('updated_at'); break; 98 default: $resumes = $resumes->orderBy('id')->orderby('updated_at'); break;
98 } 99 }
99 } 100 }
100 101
101 $res_count = $resumes->count(); 102 $res_count = $resumes->count();
102 $resumes = $resumes->paginate(6); 103 $resumes = $resumes->paginate(6);
103 if ($request->ajax()) { 104 if ($request->ajax()) {
104 // Условия обставлены 105 // Условия обставлены
105 if ($request->has('block') && ($request->get('block') == 1)) { 106 if ($request->has('block') && ($request->get('block') == 1)) {
106 return view('ajax.resume_1', compact('resumes', 'status_work', 'res_count', 'idiot')); 107 return view('ajax.resume_1', compact('resumes', 'status_work', 'res_count', 'idiot'));
107 } 108 }
108 109
109 if ($request->has('block') && ($request->get('block') == 2)) { 110 if ($request->has('block') && ($request->get('block') == 2)) {
110 return view('ajax.resume_2', compact('resumes', 'status_work', 'res_count', 'idiot')); 111 return view('ajax.resume_2', compact('resumes', 'status_work', 'res_count', 'idiot'));
111 } 112 }
112 } else { 113 } else {
113 return view('resume', compact('resumes', 'status_work', 'res_count', 'idiot')); 114 return view('resume', compact('resumes', 'status_work', 'res_count', 'idiot'));
114 } 115 }
115 } 116 }
116 117
117 // анкета соискателя 118 // анкета соискателя
118 public function resume_profile(Worker $worker) 119 public function resume_profile(Worker $worker)
119 { 120 {
120 $status_work = $this->status_work; 121 $status_work = $this->status_work;
121 $Query = Worker::query()->with('users')->with('job_titles') 122 $Query = Worker::query()->with('users')->with('job_titles')
122 ->with('place_worker')->with('sertificate')->with('prev_company') 123 ->with('place_worker')->with('sertificate')->with('prev_company')
123 ->with('infobloks'); 124 ->with('infobloks');
124 $Query = $Query->where('id', '=', $worker->id); 125 $Query = $Query->where('id', '=', $worker->id);
125 $Query = $Query->get(); 126 $Query = $Query->get();
126 return view('worker', compact('Query', 'status_work')); 127 return view('worker', compact('Query', 'status_work'));
127 } 128 }
128 129
129 // скачать анкету соискателя 130 // скачать анкету соискателя
130 public function resume_download(Worker $worker) 131 public function resume_download(Worker $worker)
131 { 132 {
132 $arr_house = ['0' => '$1000000000000000000']; 133 $arr_house = ['0' => '$1000000000000000000'];
133 134
134 view()->share('house',$arr_house); 135 view()->share('house',$arr_house);
135 136
136 $pdf = PDF::loadView('layout.pdf', $arr_house); //->setPaper('a4', 'landscape'); 137 $pdf = PDF::loadView('layout.pdf', $arr_house); //->setPaper('a4', 'landscape');
137 138
138 return $pdf->stream(); 139 return $pdf->stream();
139 } 140 }
140 141
141 // Кабинет работника 142 // Кабинет работника
142 public function cabinet() 143 public function cabinet()
143 { 144 {
144 $id = Auth()->user()->id; 145 $id = Auth()->user()->id;
145 $Worker = Worker::query()->with('users')->with('sertificate')->with('prev_company')-> 146 $Worker = Worker::query()->with('users')->with('sertificate')->with('prev_company')->
146 with('infobloks')->with('place_worker')-> 147 with('infobloks')->with('place_worker')->
147 WhereHas('users', 148 WhereHas('users',
148 function (Builder $query) use ($id) {$query->Where('id', $id); 149 function (Builder $query) use ($id) {$query->Where('id', $id);
149 })->get(); 150 })->get();
150 151
151 $Job_titles = Job_title::query()->OrderBy('name')->get(); 152 $Job_titles = Job_title::query()->OrderBy('name')->get();
152 $Infoblocks = infobloks::query()->OrderBy('name')->get(); 153 $Infoblocks = infobloks::query()->OrderBy('name')->get();
153 154
154 return view('workers.cabinet', compact('Worker', 'Job_titles', 'Infoblocks')); 155 return view('workers.cabinet', compact('Worker', 'Job_titles', 'Infoblocks'));
155 } 156 }
156 157
157 // Сохранение данных 158 // Сохранение данных
158 public function cabinet_save(Worker $worker, Request $request) 159 public function cabinet_save(Worker $worker, Request $request)
159 { 160 {
160 $id = $worker->id; 161 $id = $worker->id;
161 $params = $request->all(); 162 $params = $request->all();
162 163
163 $job_title_id = $request->get('job_title_id'); 164 $job_title_id = $request->get('job_title_id');
164 165
165 unset($params['new_diplom']); 166 unset($params['new_diplom']);
166 unset($params['new_data_begin']); 167 unset($params['new_data_begin']);
167 unset($params['new_data_end']); 168 unset($params['new_data_end']);
168 unset($params['new_job_title']); 169 unset($params['new_job_title']);
169 unset($params['new_teplohod']); 170 unset($params['new_teplohod']);
170 unset($params['new_GWT']); 171 unset($params['new_GWT']);
171 unset($params['new_KBT']); 172 unset($params['new_KBT']);
172 unset($params['new_Begin_work']); 173 unset($params['new_Begin_work']);
173 unset($params['new_End_work']); 174 unset($params['new_End_work']);
174 unset($params['new_name_company']); 175 unset($params['new_name_company']);
175 176
176 $rules = [ 177 $rules = [
177 'surname' => ['required', 'string', 'max:255'], 178 'surname' => ['required', 'string', 'max:255'],
178 'name_man' => ['required', 'string', 'max:255'], 179 'name_man' => ['required', 'string', 'max:255'],
179 'email' => ['required', 'string', 'email', 'max:255'], 180 'email' => ['required', 'string', 'email', 'max:255'],
180 181
181 ]; 182 ];
182 183
183 $messages = [ 184 $messages = [
184 'required' => 'Укажите обязательное поле', 185 'required' => 'Укажите обязательное поле',
185 'min' => [ 186 'min' => [
186 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 187 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
187 'integer' => 'Поле «:attribute» должно быть :min или больше', 188 'integer' => 'Поле «:attribute» должно быть :min или больше',
188 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 189 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
189 ], 190 ],
190 'max' => [ 191 'max' => [
191 'string' => 'Поле «:attribute» должно быть не больше :max символов', 192 'string' => 'Поле «:attribute» должно быть не больше :max символов',
192 'integer' => 'Поле «:attribute» должно быть :max или меньше', 193 'integer' => 'Поле «:attribute» должно быть :max или меньше',
193 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 194 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
194 ] 195 ]
195 ]; 196 ];
196 197
197 $validator = Validator::make($params, $rules, $messages); 198 $validator = Validator::make($params, $rules, $messages);
198 199
199 if ($validator->fails()) { 200 if ($validator->fails()) {
200 return redirect()->route('worker.cabinet')->withErrors($validator); 201 return redirect()->route('worker.cabinet')->withErrors($validator);
201 } else { 202 } else {
202 203
203 if ($request->has('photo')) { 204 if ($request->has('photo')) {
204 if (!empty($Worker->photo)) { 205 if (!empty($Worker->photo)) {
205 Storage::delete($Worker->photo); 206 Storage::delete($Worker->photo);
206 } 207 }
207 $params['photo'] = $request->file('photo')->store("worker/$id", 'public'); 208 $params['photo'] = $request->file('photo')->store("worker/$id", 'public');
208 } 209 }
209 210
210 if ($request->has('file')) { 211 if ($request->has('file')) {
211 if (!empty($Worker->file)) { 212 if (!empty($Worker->file)) {
212 Storage::delete($Worker->file); 213 Storage::delete($Worker->file);
213 } 214 }
214 $params['file'] = $request->file('file')->store("worker/$id", 'public'); 215 $params['file'] = $request->file('file')->store("worker/$id", 'public');
215 } 216 }
216 217
217 $id_wor = $worker->update($params); 218 $id_wor = $worker->update($params);
218 219
219 $use = User_Model::find($id_wor); 220 $use = User_Model::find($id_wor);
220 $use->surname = $request->get('surname'); 221 $use->surname = $request->get('surname');
221 $use->name_man = $request->get('name_man'); 222 $use->name_man = $request->get('name_man');
222 $use->surname2 = $request->get('surname2'); 223 $use->surname2 = $request->get('surname2');
223 224
224 $use->save(); 225 $use->save();
225 $worker->job_titles()->sync($job_title_id); 226 $worker->job_titles()->sync($job_title_id);
226 227
227 return redirect()->route('worker.cabinet')->with('success', 'Данные были успешно сохранены'); 228 return redirect()->route('worker.cabinet')->with('success', 'Данные были успешно сохранены');
228 } 229 }
229 } 230 }
230 231
231 // Сообщения данные 232 // Сообщения данные
232 public function messages($type_message) 233 public function messages($type_message)
233 { 234 {
234 $user_id = Auth()->user()->id; 235 $user_id = Auth()->user()->id;
235 236
236 $messages_input = Message::query()->with('vacancies')->with('user_from')-> 237 $messages_input = Message::query()->with('vacancies')->with('user_from')->
237 Where('to_user_id', $user_id)->OrderByDesc('created_at'); 238 Where('to_user_id', $user_id)->OrderByDesc('created_at');
238 239
239 $messages_output = Message::query()->with('vacancies')-> 240 $messages_output = Message::query()->with('vacancies')->
240 with('user_to')->where('user_id', $user_id)-> 241 with('user_to')->where('user_id', $user_id)->
241 OrderByDesc('created_at'); 242 OrderByDesc('created_at');
242 243
243 244
244 $count_input = $messages_input->count(); 245 $count_input = $messages_input->count();
245 $count_output = $messages_output->count(); 246 $count_output = $messages_output->count();
246 247
247 if ($type_message == 'input') { 248 if ($type_message == 'input') {
248 $messages = $messages_input->paginate(15); 249 $messages = $messages_input->paginate(15);
249 } 250 }
250 251
251 if ($type_message == 'output') { 252 if ($type_message == 'output') {
252 $messages = $messages_output->paginate(15); 253 $messages = $messages_output->paginate(15);
253 } 254 }
254 // Вернуть все 100% 255 // Вернуть все 100%
255 return view('workers.messages', compact('messages', 'count_input', 'count_output', 'type_message', 'user_id')); 256 return view('workers.messages', compact('messages', 'count_input', 'count_output', 'type_message', 'user_id'));
256 } 257 }
257 258
258 // Избранный 259 // Избранный
259 public function favorite() 260 public function favorite()
260 { 261 {
261 return view('workers.favorite'); 262 return view('workers.favorite');
262 } 263 }
263 264
264 // Сменить пароль 265 // Сменить пароль
265 public function new_password() 266 public function new_password()
266 { 267 {
267 $email = Auth()->user()->email; 268 $email = Auth()->user()->email;
268 return view('workers.new_password', compact('email')); 269 return view('workers.new_password', compact('email'));
269 } 270 }
270 271
271 // Обновление пароля 272 // Обновление пароля
272 public function save_new_password(Request $request) { 273 public function save_new_password(Request $request) {
273 $use = Auth()->user(); 274 $use = Auth()->user();
274 $request->validate([ 275 $request->validate([
275 'password' => 'required|string', 276 'password' => 'required|string',
276 'new_password' => 'required|string', 277 'new_password' => 'required|string',
277 'new_password2' => 'required|string' 278 'new_password2' => 'required|string'
278 ]); 279 ]);
279 280
280 if ($request->get('new_password') == $request->get('new_password2')) 281 if ($request->get('new_password') == $request->get('new_password2'))
281 if ($request->get('password') !== $request->get('new_password')) { 282 if ($request->get('password') !== $request->get('new_password')) {
282 $credentials = $request->only('email', 'password'); 283 $credentials = $request->only('email', 'password');
283 if (Auth::attempt($credentials, $request->has('save_me'))) { 284 if (Auth::attempt($credentials, $request->has('save_me'))) {
284 285
285 if (!is_null($use->email_verified_at)){ 286 if (!is_null($use->email_verified_at)){
286 287
287 $user_data = User_Model::find($use->id); 288 $user_data = User_Model::find($use->id);
288 $user_data->update([ 289 $user_data->update([
289 'password' => Hash::make($request->get('new_password')), 290 'password' => Hash::make($request->get('new_password')),
290 'pubpassword' => base64_encode($request->get('new_password')), 291 'pubpassword' => base64_encode($request->get('new_password')),
291 ]); 292 ]);
292 return redirect() 293 return redirect()
293 ->route('worker.new_password') 294 ->route('worker.new_password')
294 ->with('success', 'Поздравляю! Вы обновили свой пароль!'); 295 ->with('success', 'Поздравляю! Вы обновили свой пароль!');
295 } 296 }
296 297
297 return redirect() 298 return redirect()
298 ->route('worker.new_password') 299 ->route('worker.new_password')
299 ->withError('Данная учетная запись не было верифицированна!'); 300 ->withError('Данная учетная запись не было верифицированна!');
300 } 301 }
301 } 302 }
302 303
303 return redirect() 304 return redirect()
304 ->route('worker.new_password') 305 ->route('worker.new_password')
305 ->withErrors('Не совпадение данных, обновите пароли!'); 306 ->withErrors('Не совпадение данных, обновите пароли!');
306 } 307 }
307 308
308 // Удаление профиля форма 309 // Удаление профиля форма
309 public function delete_profile() 310 public function delete_profile()
310 { 311 {
311 $login = Auth()->user()->email; 312 $login = Auth()->user()->email;
312 return view('workers.delete_profile', compact('login')); 313 return view('workers.delete_profile', compact('login'));
313 } 314 }
314 315
315 // Удаление профиля код 316 // Удаление профиля код
316 public function delete_profile_result(Request $request) { 317 public function delete_profile_result(Request $request) {
317 $Answer = $request->all(); 318 $Answer = $request->all();
318 $user_id = Auth()->user()->id; 319 $user_id = Auth()->user()->id;
319 $request->validate([ 320 $request->validate([
320 'password' => 'required|string', 321 'password' => 'required|string',
321 ]); 322 ]);
322 323
323 $credentials = $request->only('email', 'password'); 324 $credentials = $request->only('email', 'password');
324 if (Auth::attempt($credentials)) { 325 if (Auth::attempt($credentials)) {
325 Auth::logout(); 326 Auth::logout();
326 $it = User_Model::find($user_id); 327 $it = User_Model::find($user_id);
327 //$it->delete(); 328 //$it->delete();
328 return redirect()->route('index')->with('success', 'Вы успешно удалили свой аккаунт'); 329 return redirect()->route('index')->with('success', 'Вы успешно удалили свой аккаунт');
329 } else { 330 } else {
330 return redirect()->route('worker.delete_profile') 331 return redirect()->route('worker.delete_profile')
331 ->withErrors( 'Неверный пароль! Нужен корректный пароль'); 332 ->withErrors( 'Неверный пароль! Нужен корректный пароль');
332 } 333 }
333 } 334 }
334 335
335 // Регистрация соискателя 336 // Регистрация соискателя
336 public function register_worker(Request $request) 337 public function register_worker(Request $request)
337 { 338 {
338 $params = $request->all(); 339 $params = $request->all();
339 340
340 $rules = [ 341 $rules = [
341 'surname' => ['required', 'string', 'max:255'], 342 'surname' => ['required', 'string', 'max:255'],
342 'name_man' => ['required', 'string', 'max:255'], 343 'name_man' => ['required', 'string', 'max:255'],
343 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 344 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
344 'password' => ['required', 'string', 'min:8'], 345 'password' => ['required', 'string', 'min:8'],
345 ]; 346 ];
346 347
347 $messages = [ 348 $messages = [
348 'required' => 'Укажите обязательное поле', 349 'required' => 'Укажите обязательное поле',
349 'min' => [ 350 'min' => [
350 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 351 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
351 'integer' => 'Поле «:attribute» должно быть :min или больше', 352 'integer' => 'Поле «:attribute» должно быть :min или больше',
352 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 353 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
353 ], 354 ],
354 'max' => [ 355 'max' => [
355 'string' => 'Поле «:attribute» должно быть не больше :max символов', 356 'string' => 'Поле «:attribute» должно быть не больше :max символов',
356 'integer' => 'Поле «:attribute» должно быть :max или меньше', 357 'integer' => 'Поле «:attribute» должно быть :max или меньше',
357 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 358 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
358 ] 359 ]
359 ]; 360 ];
360 361
361 if ($request->get('password') !== $request->get('confirmed')){ 362 if ($request->get('password') !== $request->get('confirmed')){
362 return json_encode(Array("ERROR" => "Error: Не совпадают пароль и подтверждение пароля")); 363 return json_encode(Array("ERROR" => "Error: Не совпадают пароль и подтверждение пароля"));
363 } 364 }
364 365
365 $validator = Validator::make($request->all(), $rules, $messages); 366 $validator = Validator::make($request->all(), $rules, $messages);
366 367
367 if ($validator->fails()) { 368 if ($validator->fails()) {
368 return json_encode(Array("ERROR" => "Error1: Регистрация оборвалась ошибкой! Не все обязательные поля заполнены. Либо вы уже были зарегистрированы в системе.")); 369 return json_encode(Array("ERROR" => "Error1: Регистрация оборвалась ошибкой! Не все обязательные поля заполнены. Либо вы уже были зарегистрированы в системе."));
369 } else { 370 } else {
370 $user = $this->create($params); 371 $user = $this->create($params);
371 event(new Registered($user)); 372 event(new Registered($user));
372 373
373 Auth::guard()->login($user); 374 Auth::guard()->login($user);
374 } 375 }
375 if ($user) { 376 if ($user) {
376 return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl()));; 377 return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl()));;
377 } else { 378 } else {
378 return json_encode(Array("ERROR" => "Error2: Данные были утеряны!")); 379 return json_encode(Array("ERROR" => "Error2: Данные были утеряны!"));
379 } 380 }
380 } 381 }
381 382
383
384 // Звездная оценка и ответ
385 public function stars_answer(Request $request) {
386 $params = $request->all();
387 $rules = [
388 'message' => ['required', 'string', 'max:255'],
389 ];
390
391 $messages = [
392 'required' => 'Укажите обязательное поле',
393 'min' => [
394 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
395 'integer' => 'Поле «:attribute» должно быть :min или больше',
396 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
397 ],
398 'max' => [
399 'string' => 'Поле «:attribute» должно быть не больше :max символов',
400 'integer' => 'Поле «:attribute» должно быть :max или меньше',
401 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
402 ]
403 ];
404 $response_worker = ResponseWork::create($params);
405 return redirect()->route('resume_profile', ['worker' => $request->get('worker_id')])->with('success', 'Ваше сообщение было отправлено!');
406 }
407
382 // Создание пользователя 408 // Создание пользователя
383 protected function create(array $data) 409 protected function create(array $data)
384 { 410 {
385 $Use = new User(); 411 $Use = new User();
386 $Code_user = $Use->create([ 412 $Code_user = $Use->create([
387 'name' => $data['surname']." ".$data['name_man'], 413 'name' => $data['surname']." ".$data['name_man'],
388 'name_man' => $data['name_man'], 414 'name_man' => $data['name_man'],
389 'surname' => $data['surname'], 415 'surname' => $data['surname'],
390 'surname2' => $data['surname2'], 416 'surname2' => $data['surname2'],
391 'subscribe_email' => $data['email'], 417 'subscribe_email' => $data['email'],
392 'email' => $data['email'], 418 'email' => $data['email'],
393 'telephone' => $data['telephone'], 419 'telephone' => $data['telephone'],
394 'password' => Hash::make($data['password']), 420 'password' => Hash::make($data['password']),
395 'pubpassword' => base64_encode($data['password']), 421 'pubpassword' => base64_encode($data['password']),
396 'email_verified_at' => Carbon::now() 422 'email_verified_at' => Carbon::now()
397 ]); 423 ]);
398 if ($Code_user->id > 0) { 424 if ($Code_user->id > 0) {
399 $Worker = new Worker(); 425 $Worker = new Worker();
400 $Worker->user_id = $Code_user->id; 426 $Worker->user_id = $Code_user->id;
401 $Worker->position_work = $data['job_titles']; 427 $Worker->position_work = $data['job_titles'];
402 $Worker->email = $data['email']; 428 $Worker->email = $data['email'];
403 $Worker->telephone = $data['telephone']; 429 $Worker->telephone = $data['telephone'];
404 $Worker->save(); 430 $Worker->save();
405 431
406 return $Code_user; 432 return $Code_user;
407 } 433 }
408 } 434 }
409 435
410 // Борьба против колорадских жуков, хотя жуков победил все таки 45. 436 // Борьба против колорадских жуков, хотя жуков победил все таки 45.
411 public function colorado(Request $request) { 437 public function colorado(Request $request) {
412 if (isset($_COOKIE['favorite_vac'])) { 438 if (isset($_COOKIE['favorite_vac'])) {
413 $items = RusDate::count_vacancy_fav(); 439 $items = RusDate::count_vacancy_fav();
414 $it = $_COOKIE['favorite_vac']; 440 $it = $_COOKIE['favorite_vac'];
415 $it = str_replace('"', "", $it); 441 $it = str_replace('"', "", $it);
416 $it = str_replace('[', "", $it); 442 $it = str_replace('[', "", $it);
417 $it = str_replace(']', "", $it); 443 $it = str_replace(']', "", $it);
418 $Arr = explode(",", $it); 444 $Arr = explode(",", $it);
419 } else { 445 } else {
420 $Arr = Array(); 446 $Arr = Array();
421 } 447 }
422 448
423 $Query = Ad_employer::Query(); 449 $Query = Ad_employer::Query();
424 if (count($Arr) > 0) { 450 if (count($Arr) > 0) {
425 $Query = $Query->whereIn('id', $Arr); 451 $Query = $Query->whereIn('id', $Arr);
426 } 452 }
427 $Query = $Query->with('jobs')-> 453 $Query = $Query->with('jobs')->
428 with('cat')-> 454 with('cat')->
429 with('employer')-> 455 with('employer')->
430 whereHas('jobs_code', function ($query) use ($request) { 456 whereHas('jobs_code', function ($query) use ($request) {
431 if ($request->ajax()) { 457 if ($request->ajax()) {
432 if (null !== ($request->get('job'))) { 458 if (null !== ($request->get('job'))) {
433 $query->where('job_title_id', $request->get('job')); 459 $query->where('job_title_id', $request->get('job'));
434 } 460 }
435 } 461 }
436 })->select('ad_employers.*'); 462 })->select('ad_employers.*');
437 463
438 $Job_title = Job_title::query()->OrderBy('name')->get(); 464 $Job_title = Job_title::query()->OrderBy('name')->get();
439 465
440 $Query_count = $Query->count(); 466 $Query_count = $Query->count();
441 467
442 $Query = $Query->OrderBy('updated_at')->paginate(3); 468 $Query = $Query->OrderBy('updated_at')->paginate(3);
443 469
444 return view('workers.favorite', compact('Query', 470 return view('workers.favorite', compact('Query',
445 'Query_count', 471 'Query_count',
446 'Job_title')); 472 'Job_title'));
447 473
448 } 474 }
449 475
450 //Переписка пись-пись-пись 476 //Переписка
451 public function dialog(User_Model $user1, User_Model $user2) { 477 public function dialog(User_Model $user1, User_Model $user2) {
452 if (isset($user2->id)) { 478 if (isset($user2->id)) {
453 $companion = User_Model::query()->with('workers')-> 479 $companion = User_Model::query()->with('workers')->
454 with('employers')-> 480 with('employers')->
455 where('id', $user2->id)->first(); 481 where('id', $user2->id)->first();
456 } 482 }
457 483
458 $Messages = Message::query()->with('response')->where(function($query) use ($user1, $user2) { 484 $Messages = Message::query()->with('response')->where(function($query) use ($user1, $user2) {
459 $query->where('user_id', $user1->id)->where('to_user_id', $user2->id); 485 $query->where('user_id', $user1->id)->where('to_user_id', $user2->id);
460 })->orWhere(function($query) use ($user1, $user2) { 486 })->orWhere(function($query) use ($user1, $user2) {
461 $query->where('user_id', $user2->id)->where('to_user_id', $user1->id); 487 $query->where('user_id', $user2->id)->where('to_user_id', $user1->id);
462 })->OrderBy('created_at')->get(); 488 })->OrderBy('created_at')->get();
463 489
464 $id_vac = null; 490 $id_vac = null;
465 foreach ($Messages as $it) { 491 foreach ($Messages as $it) {
466 if (isset($it->response)) { 492 if (isset($it->response)) {
467 foreach ($it->response as $r) { 493 foreach ($it->response as $r) {
468 if (isset($r->ad_employer_id)) { 494 if (isset($r->ad_employer_id)) {
469 $id_vac = $r->ad_employer_id; 495 $id_vac = $r->ad_employer_id;
470 break; 496 break;
471 } 497 }
472 } 498 }
473 } 499 }
474 if (!is_null($id_vac)) break; 500 if (!is_null($id_vac)) break;
475 } 501 }
476 502
477 $ad_employer = null; 503 $ad_employer = null;
478 if (!is_null($id_vac)) $ad_employer = Ad_employer::query()->where('id', $id_vac)->first(); 504 if (!is_null($id_vac)) $ad_employer = Ad_employer::query()->where('id', $id_vac)->first();
479 $sender = $user1; 505 $sender = $user1;
480 506
481 return view('workers.dialog', compact('companion', 'sender', 'Messages', 'ad_employer')); 507 return view('workers.dialog', compact('companion', 'sender', 'Messages', 'ad_employer'));
482 } 508 }
483 509
484 // Даунылоады 510 // Даунылоады
485 public function download(Worker $worker) { 511 public function download(Worker $worker) {
486 $arr_house = ['0' => 'Проверка, проверка, проверка, проверка, проверка...']; 512 $arr_house = ['0' => 'Проверка, проверка, проверка, проверка, проверка...'];
487 view()->share('house',$arr_house); 513 view()->share('house',$arr_house);
488 $pdf = PDF::loadView('layout.pdf', $arr_house)->setPaper('a4', 'landscape'); 514 $pdf = PDF::loadView('layout.pdf', $arr_house)->setPaper('a4', 'landscape');
489 return $pdf->stream(); 515 return $pdf->stream();
490 } 516 }
491 517
492 // Поднятие анкеты 518 // Поднятие анкеты
493 public function up(Worker $worker) { 519 public function up(Worker $worker) {
494 $worker->updated_at = Carbon::now(); 520 $worker->updated_at = Carbon::now();
495 $worker->save(); 521 $worker->save();
496 return redirect()->route('worker.cabinet')->with('success', 'Ваша анкета была поднята выше остальных'); 522 return redirect()->route('worker.cabinet')->with('success', 'Ваша анкета была поднята выше остальных');
497 } 523 }
498 524
499 // Добавление сертификата 525 // Добавление сертификата
500 public function add_serificate(Request $request) { 526 public function add_serificate(Request $request) {
501 $params = $request->all(); 527 $params = $request->all();
502 $params['date_begin'] = date('d.m.Y', strtotime($params['date_begin'])); 528 $params['date_begin'] = date('d.m.Y', strtotime($params['date_begin']));
503 $params['end_begin'] = date('d.m.Y', strtotime($params['end_begin'])); 529 $params['end_begin'] = date('d.m.Y', strtotime($params['end_begin']));
504 $Sertificate = new sertification(); 530 $Sertificate = new sertification();
505 $Sertificate->create($params); 531 $Sertificate->create($params);
506 $Docs = sertification::query()->where('worker_id', $request->get('worker_id'))->get(); 532 $Docs = sertification::query()->where('worker_id', $request->get('worker_id'))->get();
507 return view('ajax.documents', compact('Docs')); 533 return view('ajax.documents', compact('Docs'));
508 } 534 }
509 535
510 536
511 // Удалить сертификат 537 // Удалить сертификат
512 public function delete_sertificate(sertification $doc) { 538 public function delete_sertificate(sertification $doc) {
513 $doc->delete(); 539 $doc->delete();
514 540
515 return redirect()->route('worker.cabinet'); 541 return redirect()->route('worker.cabinet');
516 } 542 }
517 543
518 // Добавление диплома 544 // Добавление диплома
519 public function add_diplom_ajax(Request $request) { 545 public function add_diplom_ajax(Request $request) {
520 // конец 546 // конец
521 $params = $request->all(); 547 $params = $request->all();
522 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count(); 548 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count();
523 549
524 if ($count == 0) $dop_info = Dop_info::create($params); 550 if ($count == 0) $dop_info = Dop_info::create($params);
525 $Infoblocks = infobloks::query()->get(); 551 $Infoblocks = infobloks::query()->get();
526 $Worker = Worker::query()->where('id', $request->get('worker_id'))->get(); 552 $Worker = Worker::query()->where('id', $request->get('worker_id'))->get();
527 $data = Dop_info::query()->where('worker_id', $request->has('worker_id')); 553 $data = Dop_info::query()->where('worker_id', $request->has('worker_id'));
528 return view('ajax.dop_info', compact('data', 'Infoblocks', 'Worker')); 554 return view('ajax.dop_info', compact('data', 'Infoblocks', 'Worker'));
529 } 555 }
530 556
531 // Добавление диплома без ajax 557 // Добавление диплома без ajax
532 public function add_diplom(Worker $worker) { 558 public function add_diplom(Worker $worker) {
533 $worker_id = $worker->id; 559 $worker_id = $worker->id;
534 $Infoblocks = infobloks::query()->get(); 560 $Infoblocks = infobloks::query()->get();
535 return view('workers.dop_info', compact('worker_id', 'worker', 'Infoblocks')); 561 return view('workers.dop_info', compact('worker_id', 'worker', 'Infoblocks'));
536 } 562 }
537 // Сохранить 563 // Сохранить
538 // Сохраняю диплом 564 // Сохраняю диплом
539 public function add_diplom_save(Request $request) { 565 public function add_diplom_save(Request $request) {
540 $params = $request->all(); 566 $params = $request->all();
541 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count(); 567 $count = Dop_info::query()->where('worker_id', $request->get('worker_id'))->where('infoblok_id', $request->get('infoblok_id'))->count();
542 if ($count == 0) $dop_info = Dop_info::create($params); 568 if ($count == 0) $dop_info = Dop_info::create($params);
543 return redirect()->route('worker.cabinet'); 569 return redirect()->route('worker.cabinet');
544 } 570 }
545 571
546 // Добавление стандартного документа 572 // Добавление стандартного документа
547 public function add_document(Worker $worker) { 573 public function add_document(Worker $worker) {
548 return view('workers.docs', compact('worker')); 574 return view('workers.docs', compact('worker'));
549 } 575 }
550 576
551 //Сохранение стандартого документа 577 //Сохранение стандартого документа
552 public function add_document_save(DocumentsRequest $request) { 578 public function add_document_save(DocumentsRequest $request) {
553 $params = $request->all(); 579 $params = $request->all();
554 $place_work = place_works::create($params); 580 $place_work = place_works::create($params);
555 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно добавили запись!'); 581 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно добавили запись!');
556 } 582 }
557 583
558 // Редактирование документа 584 // Редактирование документа
559 public function edit_document(place_works $doc, Worker $worker) { 585 public function edit_document(place_works $doc, Worker $worker) {
560 return view('workers.docs-edit', compact('doc', 'worker')); 586 return view('workers.docs-edit', compact('doc', 'worker'));
561 } 587 }
562 588
563 //Сохранение отредактированного документа 589 //Сохранение отредактированного документа
564 public function edit_document_save(DocumentsRequest $request, place_works $doc) { 590 public function edit_document_save(DocumentsRequest $request, place_works $doc) {
565 $params = $request->all(); 591 $params = $request->all();
566 $doc->update($params); 592 $doc->update($params);
567 593
568 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно отредактировали запись!'); 594 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно отредактировали запись!');
569 } 595 }
570 596
571 // Удаление документа 597 // Удаление документа
572 public function delete_document(place_works $doc) { 598 public function delete_document(place_works $doc) {
573 $doc->delete(); 599 $doc->delete();
574 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно удалили запись!'); 600 return redirect()->route('worker.cabinet')->with('success', 'Вы успешно удалили запись!');
575 } 601 }
576 602
577 //Отправка нового сообщения 603 //Отправка нового сообщения
578 public function new_message(Request $request) { 604 public function new_message(Request $request) {
579 $params = $request->all(); 605 $params = $request->all();
580 606
581 $id = $params['send_user_id']; 607 $id = $params['send_user_id'];
582 $message = new Message(); 608 $message = new Message();
583 $message->user_id = $params['send_user_id']; 609 $message->user_id = $params['send_user_id'];
584 $message->to_user_id = $params['send_to_user_id']; 610 $message->to_user_id = $params['send_to_user_id'];
585 $message->title = $params['send_title']; 611 $message->title = $params['send_title'];
586 $message->text = $params['send_text']; 612 $message->text = $params['send_text'];
587 if ($request->has('send_file')) { 613 if ($request->has('send_file')) {
588 $message->file = $request->file('send_file')->store("worker/$id", 'public'); 614 $message->file = $request->file('send_file')->store("worker/$id", 'public');
589 } 615 }
590 $message->flag_new = 1; 616 $message->flag_new = 1;
591 $id_message = $message->save(); 617 $id_message = $message->save();
592 618
593 $data['message_id'] = $id_message; 619 $data['message_id'] = $id_message;
594 $data['ad_employer_id'] = $params['send_vacancy']; 620 $data['ad_employer_id'] = $params['send_vacancy'];
595 $data['job_title_id'] = $params['send_job_title_id']; 621 $data['job_title_id'] = $params['send_job_title_id'];
596 $data['flag'] = 1; 622 $data['flag'] = 1;
597 $ad_responce = ad_response::create($data); 623 $ad_responce = ad_response::create($data);
598 return redirect()->route('worker.messages', ['type_message' => 'output']); 624 return redirect()->route('worker.messages', ['type_message' => 'output']);
599 } 625 }
626
600 } 627 }
601 628
602 629
app/Models/ResponseWork.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 ResponseWork extends Model
9 {
10 use HasFactory;
11
12 public $fillable = [
13 'worker_id',
14 'stars',
15 'message'
16 ];
17 }
18
database/migrations/2024_03_11_141704_create_response_works_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('response_works', function (Blueprint $table) {
17 $table->id();
18 $table->bigInteger('worker_id')->nullable(false);
19 $table->integer('stars')->nullable(true);
20 $table->string('message', 255)->default('Без комментариев');
21 $table->timestamps();
22 });
23 }
24
25 /**
26 * Reverse the migrations.
27 *
28 * @return void
29 */
30 public function down()
31 {
32 Schema::dropIfExists('response_works');
33 }
34 };
35
resources/views/ajax/list_vacancies.blade.php
1 @if ($Query->count()) 1 @if ($Query->count())
2 @foreach ($Query as $Q) 2 @foreach ($Query as $Q)
3 <div class="main__vacancies-item main__employer-page-two-item"> 3 <div class="main__vacancies-item main__employer-page-two-item">
4 <a href="{{ route('list-vacancies', ['categories' => $categories->id]) }}" class="back main__employer-page-two-item-back"> 4 <a href="{{ route('list-vacancies', ['categories' => $categories->id]) }}" class="back main__employer-page-two-item-back">
5 <svg> 5 <svg>
6 <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> 6 <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use>
7 </svg> 7 </svg>
8 <span> 8 <span>
9 Вернуться к списку вакансий 9 Вернуться к списку вакансий
10 </span> 10 </span>
11 </a> 11 </a>
12 <div class="main__employer-page-two-item-toper"> 12 <div class="main__employer-page-two-item-toper">
13 @if (isset($Q->employer)) 13 @if (isset($Q->employer))
14 <img src="{{ asset(Storage::url($Q->employer->logo)) }}" alt="{{ $Q->employer->name }}"> 14 <img src="{{ asset(Storage::url($Q->employer->logo)) }}" alt="{{ $Q->employer->name }}">
15 @endif 15 @endif
16 <span>@if (!empty($Q->name)) {{ $Q->name }} @endif</span> 16 <span>@if (!empty($Q->name)) {{ $Q->name }} @endif</span>
17 </div> 17 </div>
18 <div class="main__employer-page-two-item-text"> 18 <div class="main__employer-page-two-item-text">
19 <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор 19 <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор
20 специалистов на следующие должности:</div> 20 специалистов на следующие должности:</div>
21 <div class="main__employer-page-two-item-text-links"> 21 <div class="main__employer-page-two-item-text-links">
22 @if (isset($Q->jobs)) 22 @if (isset($Q->jobs))
23 @foreach ($Q->jobs as $key => $j) 23 @foreach ($Q->jobs as $key => $j)
24 <a>“{{ $j->name }}” – з/п от @if (isset($Q->jobs_code[$key]->min_salary)) {{ $Q->jobs_code[$key]->min_salary }} @endif - @if (isset($Q->jobs_code[$key]->max_salary)) {{ $Q->jobs_code[$key]->max_salary }} @endif рублей (на руки)</a> 24 <a>“{{ $j->name }}” – з/п от @if (isset($Q->jobs_code[$key]->min_salary)) {{ $Q->jobs_code[$key]->min_salary }} @endif - @if (isset($Q->jobs_code[$key]->max_salary)) {{ $Q->jobs_code[$key]->max_salary }} @endif рублей (на руки)</a>
25 @endforeach 25 @endforeach
26 @endif 26 @endif
27 </div> 27 </div>
28 </div> 28 </div>
29 <div class="main__employer-page-two-item-text"> 29 <div class="main__employer-page-two-item-text">
30 <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div> 30 <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div>
31 <div class="main__employer-page-two-item-text-body"> 31 <div class="main__employer-page-two-item-text-body">
32 {!! $Q->text !!} 32 {!! $Q->text !!}
33 </div> 33 </div>
34 </div> 34 </div>
35 <div class="main__employer-page-two-item-text"> 35 <div class="main__employer-page-two-item-text">
36 <div class="main__employer-page-two-item-text-name">Наши ожидания:</div> 36 <div class="main__employer-page-two-item-text-name">Наши ожидания:</div>
37 <div class="main__employer-page-two-item-text-body"> 37 <div class="main__employer-page-two-item-text-body">
38 {!! $Q->description !!} 38 {!! $Q->description !!}
39 </div> 39 </div>
40 </div> 40 </div>
41 <div class="main__employer-page-two-item-text"> 41 <div class="main__employer-page-two-item-text">
42 <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div> 42 <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div>
43 <div class="main__employer-page-two-item-text-body"> 43 <div class="main__employer-page-two-item-text-body">
44 {!! $Q->contacts_emails !!} 44 {!! $Q->contacts_emails !!}
45 </div> 45 </div>
46 </div> 46 </div>
47 <div class="main__employer-page-two-item-text"> 47 <div class="main__employer-page-two-item-text">
48 <div class="main__employer-page-two-item-text-name">Или звоните:</div> 48 <div class="main__employer-page-two-item-text-name">Или звоните:</div>
49 <div class="main__employer-page-two-item-text-body"> 49 <div class="main__employer-page-two-item-text-body">
50 {!! $Q->contacts_telephones !!} 50 {!! $Q->contacts_telephones !!}
51 </div> 51 </div>
52 </div> 52 </div>
53 <div class="main__employer-page-two-item-tags"> 53 <div class="main__employer-page-two-item-tags">
54 @if (isset($Q->jobs)) 54 @if (isset($Q->jobs))
55 @foreach ($Q->jobs as $key => $j) 55 @foreach ($Q->jobs as $key => $j)
56 <span class="main__employer-page-two-item-tag">#{{ $j->name }}</span> 56 <span class="main__employer-page-two-item-tag">#{{ $j->name }}</span>
57 @endforeach 57 @endforeach
58 @endif 58 @endif
59 </div> 59 </div>
60 <div class="main__employer-page-two-item-buttons"> 60 <div class="main__employer-page-two-item-buttons">
61 <button type="button" 61 <button type="button"
62 class="button main__employer-page-two-item-button">Откликнуться</button> 62 class="button main__employer-page-two-item-button">Откликнуться</button>
63 <a href="{{ route('vacancie', ['vacancy' => $Q->id]) }}" class="button button_light main__employer-page-two-item-button">Подробнее</a> 63 <a href="{{ route('vacancie', ['vacancy' => $Q->id]) }}" class="button button_light main__employer-page-two-item-button">Подробнее</a>
64 </div> 64 </div>
65 <div class="main__employer-page-two-item-bottom"> 65 <div class="main__employer-page-two-item-bottom">
66 <div class="main__employer-page-two-item-bottom-date">{{ $Q->created_at }}</div> 66 <div class="main__employer-page-two-item-bottom-date">{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}</div>
67 <button type="button" data-val="{{ $Q->id }}" class="like main__employer-page-two-item-bottom-like js-toggle <?=App\Classes\Cookies_vacancy::selected_vacancy($Q->id);?>"> 67 <button type="button" data-val="{{ $Q->id }}" class="like main__employer-page-two-item-bottom-like js-toggle <?=App\Classes\Cookies_vacancy::selected_vacancy($Q->id);?>">
68 <svg> 68 <svg>
69 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use> 69 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use>
70 </svg> 70 </svg>
71 </button> 71 </button>
72 </div> 72 </div>
73 </div> 73 </div>
74 @endforeach 74 @endforeach
75 <div style="margin-top: 20px"> 75 <div style="margin-top: 20px">
76 {{ $Query->appends($_GET)->links('paginate') }} 76 {{ $Query->appends($_GET)->links('paginate') }}
77 </div> 77 </div>
78 @else 78 @else
79 <div class="main__vacancies-item main__employer-page-two-item"> 79 <div class="main__vacancies-item main__employer-page-two-item">
80 Нет вакансий по данному запросу 80 Нет вакансий по данному запросу
81 </div> 81 </div>
82 @endif 82 @endif
83 83
resources/views/detail_new.blade.php
1 @extends('layout.frontend', ['title' => $title.' - РекаМоре']) 1 @extends('layout.frontend', ['title' => $title.' - РекаМоре'])
2 @section('scripts') 2 @section('scripts')
3 <script> 3 <script>
4 console.log('Test system'); 4 console.log('Test system');
5 $(document).on('change', '#sort_ajax', function() { 5 $(document).on('change', '#sort_ajax', function() {
6 var this_ = $(this); 6 var this_ = $(this);
7 var val_ = this_.val(); 7 var val_ = this_.val();
8 console.log('sort items '+val_); 8 console.log('sort items '+val_);
9 9
10 $.ajax({ 10 $.ajax({
11 type: "GET", 11 type: "GET",
12 url: "{{ route('education') }}", 12 url: "{{ route('education') }}",
13 data: "sort="+val_+"&block=1", 13 data: "sort="+val_+"&block=1",
14 success: function (data) { 14 success: function (data) {
15 console.log('Выбор сортировки'); 15 console.log('Выбор сортировки');
16 console.log(data); 16 console.log(data);
17 $('#block').html(data); 17 $('#block').html(data);
18 history.pushState({}, '', "{{ route('education') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); 18 history.pushState({}, '', "{{ route('education') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif");
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 29
30 $(document).ready(function(){ 30 $(document).ready(function(){
31 var sel = $('#select2-sort_ajax-container'); 31 var sel = $('#select2-sort_ajax-container');
32 var key = getUrlParameter('sort'); 32 var key = getUrlParameter('sort');
33 console.log(sel); 33 console.log(sel);
34 console.log(key); 34 console.log(key);
35 35
36 if (key !=='') { 36 if (key !=='') {
37 console.log(key); 37 console.log(key);
38 switch (key) { 38 switch (key) {
39 case "default": sel.html('Сортировка (по умолчанию)'); break; 39 case "default": sel.html('Сортировка (по умолчанию)'); break;
40 case "name_up": sel.html('По имени (возрастание)'); break; 40 case "name_up": sel.html('По имени (возрастание)'); break;
41 case "name_down": sel.html('По дате (убывание)'); break; 41 case "name_down": sel.html('По дате (убывание)'); break;
42 case "created_at_up": sel.html('По дате (возрастание)'); break; 42 case "created_at_up": sel.html('По дате (возрастание)'); break;
43 case "created_at_down": sel.html('По дате (убывание)'); break; 43 case "created_at_down": sel.html('По дате (убывание)'); break;
44 } 44 }
45 45
46 } 46 }
47 }); 47 });
48 </script> 48 </script>
49 @endsection 49 @endsection
50 @section('content') 50 @section('content')
51 <section class="thing"> 51 <section class="thing">
52 <div class="container"> 52 <div class="container">
53 <div class="thing__body"> 53 <div class="thing__body">
54 <ul class="breadcrumbs thing__breadcrumbs"> 54 <ul class="breadcrumbs thing__breadcrumbs">
55 <li><a href="{{ route('index') }}">Главная</a></li> 55 <li><a href="{{ route('index') }}">Главная</a></li>
56 <li><a href="{{ route('news') }}">Новости и статьи</a></li> 56 <li><a href="{{ route('news') }}">Новости и статьи</a></li>
57 <li><b>{{ $title }}</b></li> 57 <li><b>{{ $title }}</b></li>
58 </ul> 58 </ul>
59 <img src="{{ asset(Storage::url($Query[0]->image)) }}" alt="{{ $title }}" class="thing__pic thing__pic_two"> 59 <img src="{{ asset(Storage::url($Query[0]->image)) }}" alt="{{ $title }}" class="thing__pic thing__pic_two">
60 <time class="thing__date">{{ $Query[0]->created_at }}</time> 60 <time class="thing__date">{{ date('d.m.Y H:i:s', strtotime($Query[0]->created_at)) }}</time>
61 <h1 class="thing__title">{{ $title }}</h1> 61 <h1 class="thing__title">{{ $title }}</h1>
62 <p class="thing__text">{{ mb_strimwidth($Query[0]->text, 0, 100, "...") }}</p> 62 <p class="thing__text">{{ mb_strimwidth($Query[0]->text, 0, 100, "...") }}</p>
63 </div> 63 </div>
64 </div> 64 </div>
65 </section> 65 </section>
66 66
67 67
68 <main class="main"> 68 <main class="main">
69 <div class="container"> 69 <div class="container">
70 <div class="main__content"> 70 <div class="main__content">
71 <div class="main__content-item"> 71 <div class="main__content-item">
72 <h2>{{ $Query[0]->title }}</h2> 72 <h2>{{ $Query[0]->title }}</h2>
73 <p>{!! $Query[0]->text !!}</p> 73 <p>{!! $Query[0]->text !!}</p>
74 </div> 74 </div>
75 </div> 75 </div>
76 </div> 76 </div>
77
78 </main> 77 </main>
79 <section class="news"> 78 <section class="news">
80 <div class="container"> 79 <div class="container">
81 <div class="news__toper"> 80 <div class="news__toper">
82 <div class="title">Новости и статьи</div> 81 <div class="title">Новости и статьи</div>
83 <div class="navs"> 82 <div class="navs">
84 <button class="js-news-swiper-button-prev"> 83 <button class="js-news-swiper-button-prev">
85 <svg class="rotate180"> 84 <svg class="rotate180">
86 <use xlink:href="images/sprite.svg#arrow"></use> 85 <use xlink:href="images/sprite.svg#arrow"></use>
87 </svg> 86 </svg>
88 </button> 87 </button>
89 <button class="js-news-swiper-button-next"> 88 <button class="js-news-swiper-button-next">
90 <svg> 89 <svg>
91 <use xlink:href="images/sprite.svg#arrow"></use> 90 <use xlink:href="images/sprite.svg#arrow"></use>
92 </svg> 91 </svg>
93 </button> 92 </button>
94 </div> 93 </div>
95 </div> 94 </div>
96 <div class="swiper js-news-swiper"> 95 <div class="swiper js-news-swiper">
97 <div class="swiper-wrapper"> 96 <div class="swiper-wrapper">
98 @if ($All_Query->count()) 97 @if ($All_Query->count())
99 @foreach($All_Query as $Q_item) 98 @foreach($All_Query as $Q_item)
100 <div class="swiper-slide"> 99 <div class="swiper-slide">
101 <div class="news__item"> 100 <div class="news__item">
102 <img src="{{ asset(Storage::url($Q_item->image)) }}" alt="{{ $Q_item->title }}" class="news__item-pic"> 101 <img src="{{ asset(Storage::url($Q_item->image)) }}" alt="{{ $Q_item->title }}" class="news__item-pic">
103 <div class="news__item-body"> 102 <div class="news__item-body">
104 <time datetime="2023-05-01" class="news__item-date">{{ $Q_item->created_at }}</time> 103 <time datetime="{{ date('d.m.Y H:i:s', strtotime($Q_item->created_at)) }}" class="news__item-date">{{ date('d.m.Y H:i:s', strtotime($Q_item->created_at)) }}</time>
105 <span class="news__item-title">{{ $Q_item->title }}</span> 104 <span class="news__item-title">{{ $Q_item->title }}</span>
106 <span class="news__item-text">{!! $Q_item->text !!}</span> 105 <span class="news__item-text">{!! $Q_item->text !!}</span>
107 <a href="{{ route('detail_new', ['new' => $Q_item->id]) }}" class="news__item-more button button_light">Читать далее</a> 106 <a href="{{ route('detail_new', ['new' => $Q_item->id]) }}" class="news__item-more button button_light">Читать далее</a>
108 </div> 107 </div>
109 </div> 108 </div>
110 </div> 109 </div>
111 @endforeach 110 @endforeach
112 @endif 111 @endif
113 </div> 112 </div>
114 <div class="swiper-pagination"></div> 113 <div class="swiper-pagination"></div>
115 </div> 114 </div>
116 <a href="{{ route('news') }}" class="news__all button button_light">Все новости</a> 115 <a href="{{ route('news') }}" class="news__all button button_light">Все новости</a>
117 </div> 116 </div>
118 </section> 117 </section>
119 </div> 118 </div>
120 @endsection 119 @endsection
121 120
resources/views/errors/404.blade.php
File was created 1 @extends('layout.frontend', ['title' => 'Судоходные компании РекаМоре'])
2
3 @section('scripts')
4
5 @endsection
6
7 @section('content')
8 <section class="page-404">
9 <div class="container">
10 <div class="page-404__body">
11 <div class="page-404__numb">404</div>
12 <div class="page-404__title">Упс! Страница не найдена</div>
13 <div class="page-404__subtitle">Такой страницы не существует. Воспользуйтесь меню или перейдите на главную.</div>
14 <a href="{{ route('index') }}" class="button page-404__button">Перейти на главную</a>
15 </div>
16 </div>
17 </section>
18 @endsection
19
20
resources/views/index.blade.php
1 @extends('layout.frontend', ['title' => 'Главная страница РекаМоре']) 1 @extends('layout.frontend', ['title' => 'Главная страница РекаМоре'])
2 2
3 @section('scripts') 3 @section('scripts')
4 4
5 @endsection 5 @endsection
6 6
7 @section('content') 7 @section('content')
8 <section class="work"> 8 <section class="work">
9 <div class="container"> 9 <div class="container">
10 <img src="{{ asset('images/1.png') }}" alt="" class="work__pic"> 10 <img src="{{ asset('images/1.png') }}" alt="" class="work__pic">
11 <div class="work__body"> 11 <div class="work__body">
12 <div class="work__title"> 12 <div class="work__title">
13 <h4>Работа в море / 13 <h4>Работа в море /
14 <span class="br">Работа на реке</span></h4> 14 <span class="br">Работа на реке</span></h4>
15 </div> 15 </div>
16 <div class="work__text">Профессиональная сеть морского сообщества «RekaMore.su» приветствует вас — 16 <div class="work__text">Профессиональная сеть морского сообщества «RekaMore.su» приветствует вас —
17 тех, кто не представляет себе жизнь без моря, тех, кто готов связать свою жизнь с работой в 17 тех, кто не представляет себе жизнь без моря, тех, кто готов связать свою жизнь с работой в
18 сложных, но очень интересных условиях. </div> 18 сложных, но очень интересных условиях. </div>
19 <div class="work__list"> 19 <div class="work__list">
20 <div>Тысячи соискателей увидят Ваше объявление</div> 20 <div>Тысячи соискателей увидят Ваше объявление</div>
21 <div>Десятки компаний выкладывают объявления каждый день</div> 21 <div>Десятки компаний выкладывают объявления каждый день</div>
22 </div> 22 </div>
23 <form class="search work__form" action="{{ route('search_vacancies') }}" method="GET"> 23 <form class="search work__form" action="{{ route('search_vacancies') }}" method="GET">
24 <input type="search" id="search" name="search" class="input" placeholder="Желаемая должность" required> 24 <input type="search" id="search" name="search" class="input" placeholder="Желаемая должность" required>
25 <button type="submit" class="button button_light">Посмотреть вакансии</button> 25 <button type="submit" class="button button_light">Посмотреть вакансии</button>
26 <span> 26 <span>
27 <svg> 27 <svg>
28 <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> 28 <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use>
29 </svg> 29 </svg>
30 </span> 30 </span>
31 </form> 31 </form>
32 <a href="{{ route('bd_resume') }}" class="button work__search">Я ищу сотрудника</a> 32 <a href="{{ route('bd_resume') }}" class="button work__search">Я ищу сотрудника</a>
33 <div class="work__get"> 33 <div class="work__get">
34 <b>Скачать приложение</b> 34 <b>Скачать приложение</b>
35 <a href=""> 35 <a href="">
36 <img src="{{ asset('images/google.svg') }}" alt=""> 36 <img src="{{ asset('images/google.svg') }}" alt="">
37 </a> 37 </a>
38 <a href=""> 38 <a href="">
39 <img src="{{ asset('images/apple.svg') }}" alt=""> 39 <img src="{{ asset('images/apple.svg') }}" alt="">
40 </a> 40 </a>
41 </div> 41 </div>
42 </div> 42 </div>
43 </div> 43 </div>
44 </section> 44 </section>
45 <section class="numbers"> 45 <section class="numbers">
46 <div class="container"> 46 <div class="container">
47 <div class="numbers__body"> 47 <div class="numbers__body">
48 <div class="numbers__item"> 48 <div class="numbers__item">
49 <b>500+</b> 49 <b>500+</b>
50 <span>Резюме</span> 50 <span>Резюме</span>
51 Банальные, но неопровержимые выводы, а также элементы политического процесса лишь добавляют 51 Банальные, но неопровержимые выводы, а также элементы политического процесса лишь добавляют
52 фракционных разногласий и призваны к ответу. 52 фракционных разногласий и призваны к ответу.
53 </div> 53 </div>
54 <div class="numbers__item"> 54 <div class="numbers__item">
55 <b>1 000+</b> 55 <b>1 000+</b>
56 <span>Вакансий</span> 56 <span>Вакансий</span>
57 В рамках спецификации современных стандартов, диаграммы связей заблокированы в рамках своих 57 В рамках спецификации современных стандартов, диаграммы связей заблокированы в рамках своих
58 собственных рациональных ограничений. 58 собственных рациональных ограничений.
59 </div> 59 </div>
60 <div class="numbers__item"> 60 <div class="numbers__item">
61 <b>265</b> 61 <b>265</b>
62 <span>Компаний</span> 62 <span>Компаний</span>
63 Но сторонники тоталитаризма в науке заблокированы в рамках своих собственных рациональных 63 Но сторонники тоталитаризма в науке заблокированы в рамках своих собственных рациональных
64 ограничений. 64 ограничений.
65 </div> 65 </div>
66 </div> 66 </div>
67 </div> 67 </div>
68 </section> 68 </section>
69 <section class="vacancies"> 69 <section class="vacancies">
70 <div class="container"> 70 <div class="container">
71 <div class="title"><h4>Новые вакансии</h4></div> 71 <div class="title"><h4>Новые вакансии</h4></div>
72 <div class="vacancies__body"> 72 <div class="vacancies__body">
73 <a class="vacancies__more button button_light js-parent-toggle" href="{{ route('vacancies') }}">Все должности</a> 73 <a class="vacancies__more button button_light js-parent-toggle" href="{{ route('vacancies') }}">Все должности</a>
74 <div class="vacancies__list"> 74 <div class="vacancies__list">
75 @if ($categories->count()) 75 @if ($categories->count())
76 @foreach ($categories as $cat) 76 @foreach ($categories as $cat)
77 <a href="#" class="vacancies__item"> 77 <a href="#" class="vacancies__item">
78 <span style="border-color:#F4C4C2"> 78 <span style="border-color:#F4C4C2">
79 <b>{{ $cat->name }}</b> 79 <b>{{ $cat->name }}</b>
80 <i>Вакансий: <span>{{ $cat->cnt }}</span></i> 80 <i>Вакансий: <span>{{ $cat->cnt }}</span></i>
81 </span> 81 </span>
82 </a> 82 </a>
83 @endforeach 83 @endforeach
84 @else 84 @else
85 Тут пока нет никаких вакансий 85 Тут пока нет никаких вакансий
86 @endif 86 @endif
87 </div> 87 </div>
88 </div> 88 </div>
89 </div> 89 </div>
90 </section> 90 </section>
91 <section class="employer"> 91 <section class="employer">
92 <div class="container"> 92 <div class="container">
93 <div class="title"><h4>Работодатели</h4></div> 93 <div class="title"><h4>Работодатели</h4></div>
94 <div class="swiper js-employer-swiper"> 94 <div class="swiper js-employer-swiper">
95 <div class="swiper-wrapper"> 95 <div class="swiper-wrapper">
96 96
97 @if ($employers->count()) 97 @if ($employers->count())
98 @php 98 @php
99 $rec = 0; 99 $rec = 0;
100 $count = $employers->count(); 100 $count = $employers->count();
101 @endphp 101 @endphp
102 @foreach($employers as $emp) 102 @foreach($employers as $emp)
103 @php $rec++ @endphp 103 @php $rec++ @endphp
104 @if (($rec==1) || ($rec==5) || ($rec==9) || ($rec==13) || ($rec==17)) 104 @if (($rec==1) || ($rec==5) || ($rec==9) || ($rec==13) || ($rec==17))
105 <div class="swiper-slide"> 105 <div class="swiper-slide">
106 <div class="employer__item"> 106 <div class="employer__item">
107 @endif 107 @endif
108 @if (!empty($emp->logo)) 108 @if (!empty($emp->logo))
109 <a href="{{ route('ad-employer', ['ad_employer' => $emp->id]) }}"> 109 <a href="{{ route('ad-employer', ['ad_employer' => $emp->id]) }}">
110 <img src="{{ asset(Storage::url($emp->logo)) }}" alt="{{ $emp->name_company }}"> 110 <img src="{{ asset(Storage::url($emp->logo)) }}" alt="{{ $emp->name_company }}">
111 </a> 111 </a>
112 @else 112 @else
113 <a href="{{ route('ad-employer', ['ad_employer' => $emp->id]) }}"> 113 <a href="{{ route('ad-employer', ['ad_employer' => $emp->id]) }}">
114 <img src="{{ asset('images/logo_emp.png') }}" alt="{{ $emp->name_company }}"> 114 <img src="{{ asset('images/logo_emp.png') }}" alt="{{ $emp->name_company }}">
115 </a> 115 </a>
116 @endif 116 @endif
117 @if (($rec==4) || ($rec==8) || ($rec==12) || ($rec==16) || ($rec==20) || ($rec == $count)) 117 @if (($rec==4) || ($rec==8) || ($rec==12) || ($rec==16) || ($rec==20) || ($rec == $count))
118 </div> 118 </div>
119 </div> 119 </div>
120 @endif 120 @endif
121 @endforeach 121 @endforeach
122 @else 122 @else
123 <h5>Тут нет никаких записей</h5> 123 <h5>Тут нет никаких записей</h5>
124 @endif 124 @endif
125 </div> 125 </div>
126 <div class="swiper-pagination"></div> 126 <div class="swiper-pagination"></div>
127 </div> 127 </div>
128 <a href="{{ route('shipping_companies') }}" class="employer__more button button_light">Все работодатели</a> 128 <a href="{{ route('shipping_companies') }}" class="employer__more button button_light">Все работодатели</a>
129 </div> 129 </div>
130 </section> 130 </section>
131 <section class="about"> 131 <section class="about">
132 <div class="container"> 132 <div class="container">
133 <div class="about__wrapper"> 133 <div class="about__wrapper">
134 <div class="title about__title"><h4>О нас</h4></div> 134 <div class="title about__title"><h4>О нас</h4></div>
135 <div class="about__body"> 135 <div class="about__body">
136 <div class="about__line"></div> 136 <div class="about__line"></div>
137 <div class="about__item"> 137 <div class="about__item">
138 <b>Для работодателей</b> 138 <b>Для работодателей</b>
139 <span>Наш ресурс позволит Вам за демократичную цену найти нужных специалистов в кратчайшие 139 <span>Наш ресурс позволит Вам за демократичную цену найти нужных специалистов в кратчайшие
140 сроки, подробнее об условиях можно узнать <a href="{{ route('page', ['pages' => 'Stoimost-razmescheniya']) }}">здесь</a>.</span> 140 сроки, подробнее об условиях можно узнать <a href="{{ route('page', ['pages' => 'Stoimost-razmescheniya']) }}">здесь</a>.</span>
141 <a class="about__button button button_whited" style="text-decoration: none" href="{{ route('bd_resume') }}">Поиск сотрудников</a> 141 <a class="about__button button button_whited" style="text-decoration: none" href="{{ route('bd_resume') }}">Поиск сотрудников</a>
142 </div> 142 </div>
143 <div class="about__item"> 143 <div class="about__item">
144 <b>Для сотрудников</b> 144 <b>Для сотрудников</b>
145 <span>Наше преимущество — это большой объем вакансий, более 70 судоходных компаний России и 145 <span>Наше преимущество — это большой объем вакансий, более 70 судоходных компаний России и
146 СНГ ищут сотрудников через наши ресурсы</span> 146 СНГ ищут сотрудников через наши ресурсы</span>
147 <a class="about__button button button_whited" style="text-decoration: none" href="{{ route('vacancies') }}">Ищу работу</a> 147 <a class="about__button button button_whited" style="text-decoration: none" href="{{ route('vacancies') }}">Ищу работу</a>
148 </div> 148 </div>
149 </div> 149 </div>
150 </div> 150 </div>
151 </div> 151 </div>
152 </section> 152 </section>
153 153
154 @if ($news->count()) 154 @if ($news->count())
155 <section class="news"> 155 <section class="news">
156 <div class="container"> 156 <div class="container">
157 <div class="news__toper"> 157 <div class="news__toper">
158 <div class="title"><h4>Новости и статьи</h4></div> 158 <div class="title"><h4>Новости и статьи</h4></div>
159 <div class="navs"> 159 <div class="navs">
160 <button class="js-news-swiper-button-prev"> 160 <button class="js-news-swiper-button-prev">
161 <svg class="rotate180"> 161 <svg class="rotate180">
162 <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> 162 <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use>
163 </svg> 163 </svg>
164 </button> 164 </button>
165 <button class="js-news-swiper-button-next"> 165 <button class="js-news-swiper-button-next">
166 <svg> 166 <svg>
167 <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> 167 <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use>
168 </svg> 168 </svg>
169 </button> 169 </button>
170 </div> 170 </div>
171 </div> 171 </div>
172 172
173 <div class="swiper js-news-swiper"> 173 <div class="swiper js-news-swiper">
174 <div class="swiper-wrapper"> 174 <div class="swiper-wrapper">
175 175
176 @foreach ($news as $new) 176 @foreach ($news as $new)
177 <div class="swiper-slide"> 177 <div class="swiper-slide">
178 <div class="news__item"> 178 <div class="news__item">
179 <img src="{{ asset(Storage::url($new->image)) }}" alt="" class="news__item-pic"> 179 <img src="{{ asset(Storage::url($new->image)) }}" alt="" class="news__item-pic">
180 <div class="news__item-body"> 180 <div class="news__item-body">
181 <time datetime="2023-05-01" class="news__item-date">{{ $new->created_at }}</time> 181 <time datetime="{{ date('d.m.Y H:i:s', strtotime($new->created_at)) }}" class="news__item-date">{{ date('d.m.Y H:i:s', strtotime($new->created_at)) }}</time>
182 <span class="news__item-title">{{ $new->title }}</span> 182 <span class="news__item-title">{{ $new->title }}</span>
183 <span class="news__item-text">{{ mb_strimwidth($new->text, 0, 100) }}</span> 183 <span class="news__item-text">{{ mb_strimwidth($new->text, 0, 100) }}</span>
184 <a href="{{ route('detail_new', ['new' => $new->id]) }}" class="news__item-more button button_light">Читать далее</a> 184 <a href="{{ route('detail_new', ['new' => $new->id]) }}" class="news__item-more button button_light">Читать далее</a>
185 </div> 185 </div>
186 </div> 186 </div>
187 </div> 187 </div>
188 @endforeach 188 @endforeach
189 189
190 </div> 190 </div>
191 <div class="swiper-pagination"></div> 191 <div class="swiper-pagination"></div>
192 </div> 192 </div>
193 <a href="{{ route('news') }}" class="news__all button button_light">Все новости</a> 193 <a href="{{ route('news') }}" class="news__all button button_light">Все новости</a>
194 194
195 </div> 195 </div>
196 </section> 196 </section>
197 @endif 197 @endif
198 198
199 <section class="info"> 199 <section class="info">
200 <div class="container"> 200 <div class="container">
201 <img src="images/5.png" alt="" class="info__pic"> 201 <img src="images/5.png" alt="" class="info__pic">
202 <div class="info__body"> 202 <div class="info__body">
203 <div class="title info__title"><h4>Мы в социальных сетях</h4></div> 203 <div class="title info__title"><h4>Мы в социальных сетях</h4></div>
204 <div class="info__item"> 204 <div class="info__item">
205 <div class="info__text">Телеграм — Подпишитесь на наш телеграм канал и получайте уведомления о 205 <div class="info__text">Телеграм — Подпишитесь на наш телеграм канал и получайте уведомления о
206 новых вакансиях прямо на свой смартфон</div> 206 новых вакансиях прямо на свой смартфон</div>
207 <a href="{{ $companies[0]->telegram }}" class="info__link" style="background:#20A0E1"> 207 <a href="{{ $companies[0]->telegram }}" class="info__link" style="background:#20A0E1">
208 <svg> 208 <svg>
209 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use> 209 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use>
210 </svg> 210 </svg>
211 Телеграм 211 Телеграм
212 </a> 212 </a>
213 </div> 213 </div>
214 <div class="info__item"> 214 <div class="info__item">
215 <div class="info__text">ВКонтакте — Лучшие вакансии за неделю выкладываем именно тут, информация 215 <div class="info__text">ВКонтакте — Лучшие вакансии за неделю выкладываем именно тут, информация
216 о судоходных компаниях, инструкции по работе с сайтом, конкурсы и многое другое</div> 216 о судоходных компаниях, инструкции по работе с сайтом, конкурсы и многое другое</div>
217 <a href="{{ $companies[0]->vkontact }}" class="info__link" style="background:#2787F5"> 217 <a href="{{ $companies[0]->vkontact }}" class="info__link" style="background:#2787F5">
218 <svg> 218 <svg>
219 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use> 219 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use>
220 </svg> 220 </svg>
221 ВКонтакте 221 ВКонтакте
222 </a> 222 </a>
223 </div> 223 </div>
224 </div> 224 </div>
225 </div> 225 </div>
226 </section> 226 </section>
227 @endsection 227 @endsection
228 228
resources/views/info_company_new.blade.php
1 @extends('layout.frontend', ['title' => 'Описание компании '.$title.'- РекаМоре']) 1 @extends('layout.frontend', ['title' => 'Описание компании '.$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 48
49 $(document).ready(function(){ 49 $(document).ready(function(){
50 var sel = $('#select2-sort_ajax-container'); 50 var sel = $('#select2-sort_ajax-container');
51 var key = getUrlParameter('sort'); 51 var key = getUrlParameter('sort');
52 52
53 if (key !=='') { 53 if (key !=='') {
54 console.log(key); 54 console.log(key);
55 switch (key) { 55 switch (key) {
56 case "default": sel.html('Сортировка (по умолчанию)'); break; 56 case "default": sel.html('Сортировка (по умолчанию)'); break;
57 case "name_up": sel.html('По имени (возрастание)'); break; 57 case "name_up": sel.html('По имени (возрастание)'); break;
58 case "name_down": sel.html('По дате (убывание)'); break; 58 case "name_down": sel.html('По дате (убывание)'); break;
59 case "created_at_up": sel.html('По дате (возрастание)'); break; 59 case "created_at_up": sel.html('По дате (возрастание)'); break;
60 case "created_at_down": sel.html('По дате (убывание)'); break; 60 case "created_at_down": sel.html('По дате (убывание)'); break;
61 } 61 }
62 62
63 } 63 }
64 }); 64 });
65 65
66 //end 66 //end
67 $(document).on('click', '.js_send_it_button', function() { 67 $(document).on('click', '.js_send_it_button', function() {
68 var this_ = $(this); 68 var this_ = $(this);
69 var code_user_id = this_.attr('data-uid'); 69 var code_user_id = this_.attr('data-uid');
70 var code_to_user_id = this_.attr('data-tuid'); 70 var code_to_user_id = this_.attr('data-tuid');
71 var code_vacancy = this_.attr('data-vacancy'); 71 var code_vacancy = this_.attr('data-vacancy');
72 var user_id = $('#send_user_id'); 72 var user_id = $('#send_user_id');
73 var to_user_id = $('#send_to_user_id'); 73 var to_user_id = $('#send_to_user_id');
74 var vacancy = $('#send_vacancy'); 74 var vacancy = $('#send_vacancy');
75 75
76 console.log('Клик на кнопки...'); 76 console.log('Клик на кнопки...');
77 77
78 user_id.val(code_user_id); 78 user_id.val(code_user_id);
79 to_user_id.val(code_to_user_id); 79 to_user_id.val(code_to_user_id);
80 vacancy.val(code_vacancy); 80 vacancy.val(code_vacancy);
81 }); 81 });
82 </script> 82 </script>
83 @endsection 83 @endsection
84 84
85 @section('content') 85 @section('content')
86 <section class="thing"> 86 <section class="thing">
87 <div class="container"> 87 <div class="container">
88 <div class="thing__body"> 88 <div class="thing__body">
89 <ul class="breadcrumbs thing__breadcrumbs"> 89 <ul class="breadcrumbs thing__breadcrumbs">
90 <li><a href="{{ route('index') }}">Главная</a></li> 90 <li><a href="{{ route('index') }}">Главная</a></li>
91 <li><a href="{{ route('shipping_companies') }}">Работодатели</a></li> 91 <li><a href="{{ route('shipping_companies') }}">Работодатели</a></li>
92 <li><b>@isset($title) {{ $title }} @else Не указано @endif</b></li> 92 <li><b>@isset($title) {{ $title }} @else Не указано @endif</b></li>
93 </ul> 93 </ul>
94 @if ($company[0]->oficial_status == 1) 94 @if ($company[0]->oficial_status == 1)
95 <div class="thing__badge"> 95 <div class="thing__badge">
96 <svg> 96 <svg>
97 <use xlink:href="{{ asset('images/sprite.svg#badge') }}"></use> 97 <use xlink:href="{{ asset('images/sprite.svg#badge') }}"></use>
98 </svg> 98 </svg>
99 Компания проверена 99 Компания проверена
100 </div> 100 </div>
101 @endif 101 @endif
102 102
103 <img src="{{ asset(Storage::url($company[0]->logo)) }}" alt="{{ $company[0]->name_company }}" class="thing__pic"> 103 <img src="{{ asset(Storage::url($company[0]->logo)) }}" alt="{{ $company[0]->name_company }}" class="thing__pic">
104 <h1 class="thing__title">{{ $company[0]->name_company }}</h1> 104 <h1 class="thing__title">{{ $company[0]->name_company }}</h1>
105 <p class="thing__text">{{ $company[0]->text }}</p> 105 <p class="thing__text">{{ $company[0]->text }}</p>
106 <div class="thing__buttons"> 106 <div class="thing__buttons">
107 <button type="button" class="button"> 107 <button type="button" class="button">
108 <svg> 108 <svg>
109 <use xlink:href="{{ asset('images/sprite.svg#grid-1') }}"></use> 109 <use xlink:href="{{ asset('images/sprite.svg#grid-1') }}"></use>
110 </svg> 110 </svg>
111 {{ $company[0]->ads->count() }} вакансии 111 {{ $company[0]->ads->count() }} вакансии
112 </button> 112 </button>
113 @if ($user_id == 0) 113 @if ($user_id == 0)
114 <a data-fancybox data-src="#question" data-options='{"touch":false,"autoFocus":false}' class="js_send_it_button button"> 114 <a data-fancybox data-src="#question" data-options='{"touch":false,"autoFocus":false}' class="js_send_it_button button">
115 Написать сообщение 115 Написать сообщение
116 </a> 116 </a>
117 @else 117 @else
118 <a data-fancybox data-src="#question" data-options='{"touch":false,"autoFocus":false}' class="js_send_it_button button"> 118 <a data-fancybox data-src="#question" data-options='{"touch":false,"autoFocus":false}' class="js_send_it_button button">
119 Написать сообщение 119 Написать сообщение
120 </a> 120 </a>
121 @endif 121 @endif
122 </div> 122 </div>
123 </div> 123 </div>
124 </div> 124 </div>
125 </section> 125 </section>
126 <main class="main"> 126 <main class="main">
127 <div class="container"> 127 <div class="container">
128 <div class="main__employer-page"> 128 <div class="main__employer-page">
129 <h2 class="main__employer-page-title">О компании</h2> 129 <h2 class="main__employer-page-title">О компании</h2>
130 <div class="main__employer-page-info"> 130 <div class="main__employer-page-info">
131 <div class="main__employer-page-item"> 131 <div class="main__employer-page-item">
132 <b>Адрес компании</b> 132 <b>Адрес компании</b>
133 <span> 133 <span>
134 {{ $company[0]->address }} 134 {{ $company[0]->address }}
135 </span> 135 </span>
136 </div> 136 </div>
137 <div class="main__employer-page-item"> 137 <div class="main__employer-page-item">
138 <b>Сайт</b> 138 <b>Сайт</b>
139 <span> 139 <span>
140 <a href="{{ $company[0]->site }}">{{ $company[0]->site }}</a> 140 <a href="{{ $company[0]->site }}">{{ $company[0]->site }}</a>
141 </span> 141 </span>
142 </div> 142 </div>
143 <div class="main__employer-page-item"> 143 <div class="main__employer-page-item">
144 <b>Почта</b> 144 <b>Почта</b>
145 <span> 145 <span>
146 <a href="mailto:">{{ $company[0]->email }}</a> 146 <a href="mailto:">{{ $company[0]->email }}</a>
147 </span> 147 </span>
148 </div> 148 </div>
149 <div class="main__employer-page-item"> 149 <div class="main__employer-page-item">
150 <b>Телефон</b> 150 <b>Телефон</b>
151 <span> 151 <span>
152 <a href="tel:{{ $company[0]->telephone }}">{{ $company[0]->telephone }}</a> 152 <a href="tel:{{ $company[0]->telephone }}">{{ $company[0]->telephone }}</a>
153 </span> 153 </span>
154 </div> 154 </div>
155 </div> 155 </div>
156 <div class="main__employer-page-item"> 156 <div class="main__employer-page-item">
157 <b>Описание</b> 157 <b>Описание</b>
158 <span> 158 <span>
159 {{ $company[0]->text }} 159 {{ $company[0]->text }}
160 </span> 160 </span>
161 </div> 161 </div>
162 <div> 162 <div>
163 <div class="main__employer-page-tabs"> 163 <div class="main__employer-page-tabs">
164 <button type="button" class="main__employer-page-tabs-item active" 164 <button type="button" class="main__employer-page-tabs-item active"
165 data-tab="1">Флот</button> 165 data-tab="1">Флот</button>
166 <button type="button" class="main__employer-page-tabs-item" data-tab="2">Вакансии</button> 166 <button type="button" class="main__employer-page-tabs-item" data-tab="2">Вакансии</button>
167 </div> 167 </div>
168 <div class="main__employer-page-body"> 168 <div class="main__employer-page-body">
169 <div class="main__employer-page-body-item showed" data-body="1"> 169 <div class="main__employer-page-body-item showed" data-body="1">
170 <div class="main__employer-page-one"> 170 <div class="main__employer-page-one">
171 @if ($company[0]->flots->count()) 171 @if ($company[0]->flots->count())
172 @foreach ($company[0]->flots as $flot) 172 @foreach ($company[0]->flots as $flot)
173 <a href="" class="main__employer-page-one-item"> 173 <a href="" class="main__employer-page-one-item">
174 <img src="{{ asset(Storage::url($flot->image)) }}" alt="{{ $flot->name }}"> 174 <img src="{{ asset(Storage::url($flot->image)) }}" alt="{{ $flot->name }}">
175 <b>{{ $flot->region }}</b> 175 <b>{{ $flot->region }}</b>
176 <span>{{ $flot->power }}</span> 176 <span>{{ $flot->power }}</span>
177 </a> 177 </a>
178 @endforeach 178 @endforeach
179 @endif 179 @endif
180 </div> 180 </div>
181 </div> 181 </div>
182 182
183 <div class="main__employer-page-body-item" data-body="2"> 183 <div class="main__employer-page-body-item" data-body="2">
184 <div class="main__employer-page-two"> 184 <div class="main__employer-page-two">
185 @foreach ($company[0]->ads as $job) 185 @foreach ($company[0]->ads as $job)
186 @foreach ($job->ad_job as $item) 186 @foreach ($job->ad_job as $item)
187 <div class="main__employer-page-two-item"> 187 <div class="main__employer-page-two-item">
188 <div class="main__employer-page-two-item-toper"> 188 <div class="main__employer-page-two-item-toper">
189 <!-- end --> 189 <!-- end -->
190 <img src="{{ asset(Storage::url($company[0]->logo)) }}" alt="{{ $job->name }}"> 190 <img src="{{ asset(Storage::url($company[0]->logo)) }}" alt="{{ $job->name }}">
191 <span>{{ $job->name }}</span> 191 <span>{{ $job->name }}</span>
192 </div> 192 </div>
193 <div class="main__employer-page-two-item-title">{{ $item->flot }}</div> 193 <div class="main__employer-page-two-item-title">{{ $item->flot }}</div>
194 <div class="main__employer-page-two-item-text"> 194 <div class="main__employer-page-two-item-text">
195 <div class="main__employer-page-two-item-text-name"> 195 <div class="main__employer-page-two-item-text-name">
196 {{ $item->job_title->name }} 196 {{ $item->job_title->name }}
197 </div> 197 </div>
198 <div class="main__employer-page-two-item-text-body"> 198 <div class="main__employer-page-two-item-text-body">
199 <p>Зарплата:{{ $item->min_salary }} - {{ $item->max_salary }}р + {{ $item->sytki }} суточные.</p> 199 <p>Зарплата:{{ $item->min_salary }} - {{ $item->max_salary }}р + {{ $item->sytki }} суточные.</p>
200 <p>Контракт: {{ $item->period }} мес.</p> 200 <p>Контракт: {{ $item->period }} мес.</p>
201 </div> 201 </div>
202 </div> 202 </div>
203 <div class="main__employer-page-two-item-text"> 203 <div class="main__employer-page-two-item-text">
204 <div class="main__employer-page-two-item-text-name">Район работы</div> 204 <div class="main__employer-page-two-item-text-name">Район работы</div>
205 <div class="main__employer-page-two-item-text-body"> 205 <div class="main__employer-page-two-item-text-body">
206 <p>{{ $item->region }}</p> 206 <p>{{ $item->region }}</p>
207 </div> 207 </div>
208 </div> 208 </div>
209 <div class="main__employer-page-two-item-text"> 209 <div class="main__employer-page-two-item-text">
210 <div class="main__employer-page-two-item-text-name">Посадка</div> 210 <div class="main__employer-page-two-item-text-name">Посадка</div>
211 <div class="main__employer-page-two-item-text-body"> 211 <div class="main__employer-page-two-item-text-body">
212 <p> {{ $item->start }}</p> 212 <p> {{ $item->start }}</p>
213 {!! $item->description !!} 213 {!! $item->description !!}
214 </div> 214 </div>
215 </div> 215 </div>
216 <div class="main__employer-page-two-item-text"> 216 <div class="main__employer-page-two-item-text">
217 <div class="main__employer-page-two-item-text-name">Звонить по вопросам на: 217 <div class="main__employer-page-two-item-text-name">Звонить по вопросам на:
218 </div> 218 </div>
219 <div class="main__employer-page-two-item-text-body"> 219 <div class="main__employer-page-two-item-text-body">
220 <a href="tel:{{ $job->telephone }}">{{ $job->telephone }}</a> 220 <a href="tel:{{ $job->telephone }}">{{ $job->telephone }}</a>
221 </div> 221 </div>
222 </div> 222 </div>
223 <div class="main__employer-page-two-item-text"> 223 <div class="main__employer-page-two-item-text">
224 <div class="main__employer-page-two-item-text-name">Анкеты присылать на 224 <div class="main__employer-page-two-item-text-name">Анкеты присылать на
225 почту: 225 почту:
226 </div> 226 </div>
227 <div class="main__employer-page-two-item-text-body"> 227 <div class="main__employer-page-two-item-text-body">
228 <a href="mailto: {{ $job->email }}">{{ $job->email }}</a> 228 <a href="mailto: {{ $job->email }}">{{ $job->email }}</a>
229 </div> 229 </div>
230 </div> 230 </div>
231 <div class="main__employer-page-two-item-tags"> 231 <div class="main__employer-page-two-item-tags">
232 <span class="main__employer-page-two-item-tag">#{{ $item->job_title->name }}</span> 232 <span class="main__employer-page-two-item-tag">#{{ $item->job_title->name }}</span>
233 </div> 233 </div>
234 <div class="main__employer-page-two-item-buttons"> 234 <div class="main__employer-page-two-item-buttons">
235 235
236 <button type="button" data-fancybox data-src="#send" data-vacancy="{{ $item->job_title->id }}" data-uid="{{ $user_id }}" data-tuid="{{ $company[0]->users->id }}" data-options='{"touch":false,"autoFocus":false}' 236 <button type="button" data-fancybox data-src="#send" data-vacancy="{{ $item->job_title->id }}" data-uid="{{ $user_id }}" data-tuid="{{ $company[0]->users->id }}" data-options='{"touch":false,"autoFocus":false}'
237 class="button main__employer-page-two-item-button js_send_it_button">Оставить 237 class="button main__employer-page-two-item-button js_send_it_button">Оставить
238 отклик...</button> 238 отклик...</button>
239 239
240 <!--<a href="#" 240 <!--<a href="#"
241 class="button button_light main__employer-page-two-item-button">Подробнее</a>--> 241 class="button button_light main__employer-page-two-item-button">Подробнее</a>-->
242 </div> 242 </div>
243 <div class="main__employer-page-two-item-bottom"> 243 <div class="main__employer-page-two-item-bottom">
244 <div class="main__employer-page-two-item-bottom-date">{{ $job->updated_at }}</div> 244 <div class="main__employer-page-two-item-bottom-date">{{ date('d.m.Y H:i:s', strtotime($job->updated_at)) }}</div>
245 <button type="button" 245 <button type="button"
246 class="like main__employer-page-two-item-bottom-like js-toggle"> 246 class="like main__employer-page-two-item-bottom-like js-toggle">
247 <svg> 247 <svg>
248 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use> 248 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use>
249 </svg> 249 </svg>
250 </button> 250 </button>
251 </div> 251 </div>
252 </div> 252 </div>
253 @endforeach 253 @endforeach
254 @endforeach 254 @endforeach
255 <!--<button type="button" class="button button_light button_more main__employer-page-two-more js-toggle js-parent-toggle"> 255 <!--<button type="button" class="button button_light button_more main__employer-page-two-more js-toggle js-parent-toggle">
256 <span>Показать ещё</span> 256 <span>Показать ещё</span>
257 <span>Скрыть</span> 257 <span>Скрыть</span>
258 </button>--> 258 </button>-->
259 </div> 259 </div>
260 </div> 260 </div>
261 </div> 261 </div>
262 </div> 262 </div>
263 </div> 263 </div>
264 </div> 264 </div>
265 </main> 265 </main>
266 @endsection 266 @endsection
267 267
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_new.css') }}"> 11 <link rel="stylesheet" href="{{ asset('css/style_new.css') }}">
12 <link rel="stylesheet" href="{{ asset('css/star-rating.min.css') }}">
12 <style> 13 <style>
13 .err_red { 14 .err_red {
14 border: red 2px solid; 15 border: red 2px solid;
15 } 16 }
16 </style> 17 </style>
17 </head> 18 </head>
18 19
19 <body id="body"> 20 <body id="body">
20 <a href="#body" class="to-top js-scroll-to"> 21 <a href="#body" class="to-top js-scroll-to">
21 <svg> 22 <svg>
22 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use> 23 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use>
23 </svg> 24 </svg>
24 </a> 25 </a>
25 26
26 <div> <!-- BEGIN TOP WRAPPER --> 27 <div> <!-- BEGIN TOP WRAPPER -->
27 <header class="header"> 28 <header class="header">
28 <div class="container"> 29 <div class="container">
29 <div class="header__body"> 30 <div class="header__body">
30 <div class="header__left"> 31 <div class="header__left">
31 <a href="{{ route('index') }}" class="header__logo"> 32 <a href="{{ route('index') }}" class="header__logo">
32 <svg> 33 <svg>
33 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use> 34 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use>
34 </svg> 35 </svg>
35 </a> 36 </a>
36 <nav class="header__menu"> 37 <nav class="header__menu">
37 <a href="{{ route('vacancies') }}" class="header__menu-item">Вакансии</a> 38 <a href="{{ route('vacancies') }}" class="header__menu-item">Вакансии</a>
38 <a href="{{ route('shipping_companies') }}" class="header__menu-item">Судоходные компании</a> 39 <a href="{{ route('shipping_companies') }}" class="header__menu-item">Судоходные компании</a>
39 <a href="{{ route('education') }}" class="header__menu-item">Образование</a> 40 <a href="{{ route('education') }}" class="header__menu-item">Образование</a>
40 </nav> 41 </nav>
41 </div> 42 </div>
42 <div class="header__right"> 43 <div class="header__right">
43 @guest 44 @guest
44 45
45 @else 46 @else
46 <button class="header__notifs header__notifs_actived"> 47 <button class="header__notifs header__notifs_actived">
47 <svg> 48 <svg>
48 <use xlink:href="{{ asset('images/sprite.svg#ring') }}"></use> 49 <use xlink:href="{{ asset('images/sprite.svg#ring') }}"></use>
49 </svg> 50 </svg>
50 <span>Уведомления</span> 51 <span>Уведомления</span>
51 </button> 52 </button>
52 <a href="@if ($UserId->is_worker) {{ route('worker.cabinet') }} @else {{ route('employer.cabinet') }} @endif" class="header__notifs"> 53 <a href="@if ($UserId->is_worker) {{ route('worker.cabinet') }} @else {{ route('employer.cabinet') }} @endif" class="header__notifs">
53 Кабинет 54 Кабинет
54 </a> 55 </a>
55 @endguest 56 @endguest
56 <div class="header__right-line"></div> 57 <div class="header__right-line"></div>
57 <button class="header__burger"> 58 <button class="header__burger">
58 <svg> 59 <svg>
59 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use> 60 <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use>
60 </svg> 61 </svg>
61 </button> 62 </button>
62 @guest 63 @guest
63 <a class="button header__sign" data-fancybox data-src="#sign" data-options='{"touch":false,"autoFocus":false}'>Войти</a> 64 <a class="button header__sign" data-fancybox data-src="#sign" data-options='{"touch":false,"autoFocus":false}'>Войти</a>
64 @else 65 @else
65 <a class="button header__sign" href="{{ route('logout') }}">Выйти</a> 66 <a class="button header__sign" href="{{ route('logout') }}">Выйти</a>
66 @endguest 67 @endguest
67 </div> 68 </div>
68 </div> 69 </div>
69 </div> 70 </div>
70 </header> 71 </header>
71 @yield('content') 72 @yield('content')
72 </div> <!-- END TOP WRAPPER --> 73 </div> <!-- END TOP WRAPPER -->
73 74
74 <div> <!-- BEGIN BOTTOM WRAPPER --> 75 <div> <!-- BEGIN BOTTOM WRAPPER -->
75 <footer class="footer"> 76 <footer class="footer">
76 <div class="container"> 77 <div class="container">
77 <div class="footer__mobile"> 78 <div class="footer__mobile">
78 79
79 <button class="footer__mobile-toper js-toggle active"> 80 <button class="footer__mobile-toper js-toggle active">
80 <a href="{{ route('index') }}"> 81 <a href="{{ route('index') }}">
81 <svg> 82 <svg>
82 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use> 83 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use>
83 </svg> 84 </svg>
84 </a> 85 </a>
85 <span> 86 <span>
86 <svg> 87 <svg>
87 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use> 88 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use>
88 </svg> 89 </svg>
89 </span> 90 </span>
90 </button> 91 </button>
91 <div class="footer__mobile-menu"> 92 <div class="footer__mobile-menu">
92 <div class="footer__mobile-menu-item"> 93 <div class="footer__mobile-menu-item">
93 <button class="js-toggle"> 94 <button class="js-toggle">
94 <b>Соискателям</b> 95 <b>Соискателям</b>
95 <span><svg> 96 <span><svg>
96 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use> 97 <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use>
97 </svg></span> 98 </svg></span>
98 </button> 99 </button>
99 <div> 100 <div>
100 <a href="{{ route('vacancies') }}">Вакансии</a> 101 <a href="{{ route('vacancies') }}">Вакансии</a>
101 <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a> 102 <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a>
102 <a href="{{ route('education') }}">Образование</a> 103 <a href="{{ route('education') }}">Образование</a>
103 <a href="{{ route('news') }}">Новости</a> 104 <a href="{{ route('news') }}">Новости</a>
104 <a href="{{ route('contacts') }}">Контакты</a> 105 <a href="{{ route('contacts') }}">Контакты</a>
105 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a> 106 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a>
106 </div> 107 </div>
107 </div> 108 </div>
108 <div class="footer__mobile-menu-item"> 109 <div class="footer__mobile-menu-item">
109 <button class="js-toggle"> 110 <button class="js-toggle">
110 <b>Работодателям</b> 111 <b>Работодателям</b>
111 <span><svg> 112 <span><svg>
112 <use xlink:href="{{asset('images/sprite.svg#arrow-top') }}"></use> 113 <use xlink:href="{{asset('images/sprite.svg#arrow-top') }}"></use>
113 </svg></span> 114 </svg></span>
114 </button> 115 </button>
115 <div> 116 <div>
116 <a href="{{ route('register') }}">Регистрация</a> 117 <a href="{{ route('register') }}">Регистрация</a>
117 <a href="{{ route('bd_resume') }}">База резюме</a> 118 <a href="{{ route('bd_resume') }}">База резюме</a>
118 <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a> 119 <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a>
119 <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a> 120 <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a>
120 <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a> 121 <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a>
121 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a> 122 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a>
122 </div> 123 </div>
123 </div> 124 </div>
124 </div> 125 </div>
125 <div class="footer__mobile-contacts"> 126 <div class="footer__mobile-contacts">
126 <b>Контакты</b> 127 <b>Контакты</b>
127 <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a> 128 <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a>
128 <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a> 129 <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a>
129 </div> 130 </div>
130 <div class="footer__mobile-bottom"> 131 <div class="footer__mobile-bottom">
131 <div class="socials"> 132 <div class="socials">
132 <a href="{{ $companies[0]->vkontact }}" target="_blank"> 133 <a href="{{ $companies[0]->vkontact }}" target="_blank">
133 <svg> 134 <svg>
134 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use> 135 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use>
135 </svg> 136 </svg>
136 </a> 137 </a>
137 <a href="{{ $companies[0]->telegram }}" target="_blank"> 138 <a href="{{ $companies[0]->telegram }}" target="_blank">
138 <svg> 139 <svg>
139 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use> 140 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use>
140 </svg> 141 </svg>
141 </a> 142 </a>
142 </div> 143 </div>
143 <nav class="footer__mobile-links"> 144 <nav class="footer__mobile-links">
144 <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a> 145 <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a>
145 <span></span> 146 <span></span>
146 <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a> 147 <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a>
147 </nav> 148 </nav>
148 &copy; 2023 &mdash; RekaMore.su 149 &copy; 2023 &mdash; RekaMore.su
149 <a href="{{ route('index') }}" class="nls" target="_blank"> 150 <a href="{{ route('index') }}" class="nls" target="_blank">
150 <svg> 151 <svg>
151 <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use> 152 <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use>
152 </svg> 153 </svg>
153 <span> 154 <span>
154 Дизайн и разработка: 155 Дизайн и разработка:
155 <b>NoLogoStudio.ru</b> 156 <b>NoLogoStudio.ru</b>
156 </span> 157 </span>
157 </a> 158 </a>
158 </div> 159 </div>
159 </div> 160 </div>
160 <div class="footer__main"> 161 <div class="footer__main">
161 <div class="footer__main-body"> 162 <div class="footer__main-body">
162 163
163 <a href="" class="footer__main-logo"> 164 <a href="" class="footer__main-logo">
164 <svg> 165 <svg>
165 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use> 166 <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use>
166 </svg> 167 </svg>
167 </a> 168 </a>
168 <div class="footer__main-col"> 169 <div class="footer__main-col">
169 <div class="footer__main-title">Соискателям</div> 170 <div class="footer__main-title">Соискателям</div>
170 <nav> 171 <nav>
171 <a href="{{ route('vacancies') }}">Вакансии</a> 172 <a href="{{ route('vacancies') }}">Вакансии</a>
172 <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a> 173 <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a>
173 <a href="{{ route('education') }}">Образование</a> 174 <a href="{{ route('education') }}">Образование</a>
174 <a href="{{ route('news') }}">Новости</a> 175 <a href="{{ route('news') }}">Новости</a>
175 <a href="{{ route('contacts') }}">Контакты</a> 176 <a href="{{ route('contacts') }}">Контакты</a>
176 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a> 177 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a>
177 </nav> 178 </nav>
178 </div> 179 </div>
179 <div class="footer__main-col"> 180 <div class="footer__main-col">
180 <div class="footer__main-title">Работодателям</div> 181 <div class="footer__main-title">Работодателям</div>
181 <nav> 182 <nav>
182 <a href="{{ route('register') }}">Регистрация</a> 183 <a href="{{ route('register') }}">Регистрация</a>
183 <a href="{{ route('bd_resume') }}">База резюме</a> 184 <a href="{{ route('bd_resume') }}">База резюме</a>
184 <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a> 185 <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a>
185 <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a> 186 <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a>
186 <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a> 187 <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a>
187 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a> 188 <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a>
188 </nav> 189 </nav>
189 </div> 190 </div>
190 191
191 <div class="footer__main-col"> 192 <div class="footer__main-col">
192 <div class="footer__main-title">Контакты</div> 193 <div class="footer__main-title">Контакты</div>
193 <div class="footer__main-contacts"> 194 <div class="footer__main-contacts">
194 <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a> 195 <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a>
195 <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a> 196 <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a>
196 </div> 197 </div>
197 <div class="socials"> 198 <div class="socials">
198 <a href="{{ $companies[0]->vkontact }}" target="_blank"> 199 <a href="{{ $companies[0]->vkontact }}" target="_blank">
199 <svg> 200 <svg>
200 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use> 201 <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use>
201 </svg> 202 </svg>
202 </a> 203 </a>
203 <a href="{{ $companies[0]->telegram }}" target="_blank"> 204 <a href="{{ $companies[0]->telegram }}" target="_blank">
204 <svg> 205 <svg>
205 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use> 206 <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use>
206 </svg> 207 </svg>
207 </a> 208 </a>
208 </div> 209 </div>
209 </div> 210 </div>
210 </div> 211 </div>
211 212
212 <div class="footer__main-copy"> 213 <div class="footer__main-copy">
213 <div>&copy; 2023 &mdash; RekaMore.su</div> 214 <div>&copy; 2023 &mdash; RekaMore.su</div>
214 <nav> 215 <nav>
215 <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a> 216 <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a>
216 <span></span> 217 <span></span>
217 <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a> 218 <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a>
218 </nav> 219 </nav>
219 <a href="{{ route('index') }}" class="nls" target="_blank"> 220 <a href="{{ route('index') }}" class="nls" target="_blank">
220 <svg> 221 <svg>
221 <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use> 222 <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use>
222 </svg> 223 </svg>
223 <span> 224 <span>
224 Дизайн и разработка: 225 Дизайн и разработка:
225 <b>NoLogoStudio.ru</b> 226 <b>NoLogoStudio.ru</b>
226 </span> 227 </span>
227 </a> 228 </a>
228 </div> 229 </div>
229 </div> 230 </div>
230 </div> 231 </div>
231 </footer> 232 </footer>
232 </div> <!-- END BOTTOM WRAPPER --> 233 </div> <!-- END BOTTOM WRAPPER -->
233 234
234 <div hidden> <!-- BEGIN MODALS WRAPPER --> 235 <div hidden> <!-- BEGIN MODALS WRAPPER -->
235 <!-- Соискатель отправляет сообщение работодателю --> 236 <!-- Соискатель отправляет сообщение работодателю -->
236 @include('modals.send_worker') 237 @include('modals.send_worker')
237 238
238 <!-- Работодатель отправляет сообщение соискателю --> 239 <!-- Работодатель отправляет сообщение соискателю -->
239 @include('modals.send_employer') 240 @include('modals.send_employer')
240 241
241 <!-- Сообщение-предупреждение о том, что сообщения только можно отправить авторизованным пользователям --> 242 <!-- Сообщение-предупреждение о том, что сообщения только можно отправить авторизованным пользователям -->
242 @include('modals.send_message_noaut') 243 @include('modals.send_message_noaut')
243 244
244 <!-- Форма авторизации --> 245 <!-- Форма авторизации -->
245 @include('modals.send_login') 246 @include('modals.send_login')
246 247
247 <!-- Сбросить пароль --> 248 <!-- Сбросить пароль -->
248 @include('modals.reset_password') 249 @include('modals.reset_password')
249 250
250 <!-- Регистрация --> 251 <!-- Регистрация -->
251 @include('modals.register') 252 @include('modals.register')
252 253
253 <!-- Благодарность по отправке сообщения работодателю --> 254 <!-- Благодарность по отправке сообщения работодателю -->
254 @include('modals.thank_you_send_employer') 255 @include('modals.thank_you_send_employer')
255 256
256 <!-- Благодарность по отправке сообщения менеджеру --> 257 <!-- Благодарность по отправке сообщения менеджеру -->
257 @include('modals.thank_you_send_manager') 258 @include('modals.thank_you_send_manager')
258 259
259 <!-- Благодарность после регистрации --> 260 <!-- Благодарность после регистрации -->
260 @include('modals.thank_you_send_for_employer') 261 @include('modals.thank_you_send_for_employer')
261 262
262 <!-- Благодарность после регистрации для работника --> 263 <!-- Благодарность после регистрации для работника -->
263 @include('modals.thank_you_send_for_worker') 264 @include('modals.thank_you_send_for_worker')
264 265
265 <!-- Подтверждение удаления профиля --> 266 <!-- Подтверждение удаления профиля -->
266 @include('modals.delete_profile') 267 @include('modals.delete_profile')
267 268
268 <!-- Подверждение об удалении профиля --> 269 <!-- Подверждение об удалении профиля -->
269 @include('modals.success_delete_profile') 270 @include('modals.success_delete_profile')
270 271
271 </div> <!-- END MODALS WRAPPER --> 272 </div> <!-- END MODALS WRAPPER -->
272 273
273 274
274 <script src="{{ asset('js/jquery.maskedinput.js') }}"></script> 275 <script src="{{ asset('js/jquery.maskedinput.js') }}"></script>
275 <script src="{{ asset('js/jquery.fancybox.js') }}"></script> 276 <script src="{{ asset('js/jquery.fancybox.js') }}"></script>
276 <script src="{{ asset('js/jquery.select2.js') }}"></script> 277 <script src="{{ asset('js/jquery.select2.js') }}"></script>
277 <script src="{{ asset('js/swiper.js') }}"></script> 278 <script src="{{ asset('js/swiper.js') }}"></script>
278 <script src="{{ asset('js/script.js') }}"></script> 279 <script src="{{ asset('js/script.js') }}"></script>
280 <script src="{{ asset('js/star-rating.min.js') }}"></script>
279 <script> 281 <script>
280 var getUrlParameter = function getUrlParameter(sParam) { 282 var getUrlParameter = function getUrlParameter(sParam) {
281 var sPageURL = decodeURIComponent(window.location.search.substring(1)), 283 var sPageURL = decodeURIComponent(window.location.search.substring(1)),
282 sURLVariables = sPageURL.split('&'), 284 sURLVariables = sPageURL.split('&'),
283 sParameterName, 285 sParameterName,
284 i; 286 i;
285 for (i = 0; i < sURLVariables.length; i++) { 287 for (i = 0; i < sURLVariables.length; i++) {
286 sParameterName = sURLVariables[i].split('='); 288 sParameterName = sURLVariables[i].split('=');
287 if (sParameterName[0] === sParam) { 289 if (sParameterName[0] === sParam) {
288 return sParameterName[1] === undefined ? true : sParameterName[1]; 290 return sParameterName[1] === undefined ? true : sParameterName[1];
289 } 291 }
290 } 292 }
291 }; 293 };
292 </script> 294 </script>
293 @yield('scripts') 295 @yield('scripts')
294 296
295 @include('js.modals') 297 @include('js.modals')
296 </body> 298 </body>
297 </html> 299 </html>
298 300
resources/views/layout/pdf.blade.php
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html lang="ru"> 2 <html lang="ru">
3 3
4 <head> 4 <head>
5 <meta charset="utf-8"> 5 <meta charset="utf-8">
6 <title>Резюме соискателя</title> 6 <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 <link rel="stylesheet" href="{{ asset('css/style.css') }}"> 9 <link rel="stylesheet" href="{{ asset('css/style.css') }}">
10 <style>
11 body{font-family:'DejaVu Sans',sans-serif;background:#fff;font-size:1.6rem;font-weight:400;color:#363A3F}
12 </style>
10 </head> 13 </head>
11 14
12 <body id="body" class="pdf"> 15 <body id="body" class="pdf">
13 <section class="thing thing_pdf"> 16 <section class="thing thing_pdf">
14 <div class="container"> 17 <div class="container">
15 <div class="thing__profile"> 18 <div class="thing__profile">
16 <img src="{{ asset('images/face.jpg') }}" alt="" class="thing__profile-photo"> 19 <img src="{{ asset('images/face.jpg') }}" alt="" class="thing__profile-photo">
17 <div class="thing__profile-body"> 20 <div class="thing__profile-body">
18 <h1 class="thing__title">Назаров Платон Фёдорович</h1> 21 <h1 class="thing__title">Назаров Платон Фёдорович</h1>
19 <p class="thing__text">Сложно сказать, почему ключевые особенности структуры проекта рассмотрены 22 <p class="thing__text">Сложно сказать, почему ключевые особенности структуры проекта рассмотрены
20 исключительно в разрезе маркетинговых и финансовых предпосылок.</p> 23 исключительно в разрезе маркетинговых и финансовых предпосылок.</p>
21 </div> 24 </div>
22 </div> 25 </div>
23 </div> 26 </div>
24 </section> 27 </section>
25 <main class="main"> 28 <main class="main">
26 <div class="container"> 29 <div class="container">
27 <div class="main__resume-profile"> 30 <div class="main__resume-profile">
28 <div class="main__content"> 31 <div class="main__content">
29 <div class="main__spoiler"> 32 <div class="main__spoiler">
30 <button type="button" class="main__spoiler-toper js-toggle active">Основная 33 <button type="button" class="main__spoiler-toper js-toggle active">Основная
31 информация</button> 34 информация</button>
32 <div class="main__spoiler-body"> 35 <div class="main__spoiler-body">
33 <table class="main__table"> 36 <table class="main__table">
34 <tbody> 37 <tbody>
35 <tr> 38 <tr>
36 <td>Имя:</td> 39 <td>Имя:</td>
37 <td><b>Оксана</b></td> 40 <td><b>Оксана</b></td>
38 </tr> 41 </tr>
39 <tr> 42 <tr>
40 <td>Должность:</td> 43 <td>Должность:</td>
41 <td><b>Повар</b></td> 44 <td><b>Повар</b></td>
42 </tr> 45 </tr>
43 <tr> 46 <tr>
44 <td>Телефон:</td> 47 <td>Телефон:</td>
45 <td><b><a href="#">+7 (000) 123 45 67</a></b></td> 48 <td><b><a href="#">+7 (000) 123 45 67</a></b></td>
46 </tr> 49 </tr>
47 <tr> 50 <tr>
48 <td>E-mail:</td> 51 <td>E-mail:</td>
49 <td><b><a href="#">info@rekamore.su</a></b></td> 52 <td><b><a href="#">info@rekamore.su</a></b></td>
50 </tr> 53 </tr>
51 <tr> 54 <tr>
52 <td>Возраст:</td> 55 <td>Возраст:</td>
53 <td><b>30</b></td> 56 <td><b>30</b></td>
54 </tr> 57 </tr>
55 <tr> 58 <tr>
56 <td>Статус:</td> 59 <td>Статус:</td>
57 <td><b>Ищу работу</b></td> 60 <td><b>Ищу работу</b></td>
58 </tr> 61 </tr>
59 <tr> 62 <tr>
60 <td>Город проживания:</td> 63 <td>Город проживания:</td>
61 <td><b>Петропавловск-камчатский</b></td> 64 <td><b>Петропавловск-камчатский</b></td>
62 </tr> 65 </tr>
63 <tr> 66 <tr>
64 <td>Уровень английского:</td> 67 <td>Уровень английского:</td>
65 <td><b>Не указано</b></td> 68 <td><b>Не указано</b></td>
66 </tr> 69 </tr>
67 <tr> 70 <tr>
68 <td>Опыт работы:</td> 71 <td>Опыт работы:</td>
69 <td><b>1 год</b></td> 72 <td><b>1 год</b></td>
70 </tr> 73 </tr>
71 </tbody> 74 </tbody>
72 </table> 75 </table>
73 </div> 76 </div>
74 </div> 77 </div>
75 <div class="main__spoiler"> 78 <div class="main__spoiler">
76 <button type="button" class="main__spoiler-toper js-toggle">Сертификаты / документы</button> 79 <button type="button" class="main__spoiler-toper js-toggle">Сертификаты / документы</button>
77 <div class="main__spoiler-body"> 80 <div class="main__spoiler-body">
78 <table class="main__table"> 81 <table class="main__table">
79 <tbody> 82 <tbody>
80 <tr> 83 <tr>
81 <td>Среднее специальное образование</td> 84 <td>Среднее специальное образование</td>
82 <td><a href="#">Ссылка на диплом</a></td> 85 <td><a href="#">Ссылка на диплом</a></td>
83 </tr> 86 </tr>
84 <tr> 87 <tr>
85 <td>Курсы повышения квалификации</td> 88 <td>Курсы повышения квалификации</td>
86 <td><a href="#">Ссылка на диплом</a></td> 89 <td><a href="#">Ссылка на диплом</a></td>
87 </tr> 90 </tr>
88 <tr> 91 <tr>
89 <td>Прохождение переподготовки</td> 92 <td>Прохождение переподготовки</td>
90 <td><a href="#">Ссылка на сертификат</a></td> 93 <td><a href="#">Ссылка на сертификат</a></td>
91 </tr> 94 </tr>
92 </tbody> 95 </tbody>
93 </table> 96 </table>
94 </div> 97 </div>
95 </div> 98 </div>
96 <div class="main__spoiler"> 99 <div class="main__spoiler">
97 <button type="button" class="main__spoiler-toper js-toggle">Опыт работы</button> 100 <button type="button" class="main__spoiler-toper js-toggle">Опыт работы</button>
98 <div class="main__spoiler-body"> 101 <div class="main__spoiler-body">
99 <table class="main__table main__table_three"> 102 <table class="main__table main__table_three">
100 <tbody> 103 <tbody>
101 <tr> 104 <tr>
102 <td>Июнь 2019 — по настоящее время 105 <td>Июнь 2019 — по настоящее время
103 <br>4 года 10 месяцев</td> 106 <br>4 года 10 месяцев</td>
104 <td><b>ООО "Невский мазут"</b> 107 <td><b>ООО "Невский мазут"</b>
105 Санкт-Петербург</td> 108 Санкт-Петербург</td>
106 <td><b>Вахтенный механик (танкер)</b> 109 <td><b>Вахтенный механик (танкер)</b>
107 Переведён на т/х " SULA " в должности Вахтенный механик. Полный комплект морских документов для работы на нефтеналивных судах ( диплом без ограничений ).</td> 110 Переведён на т/х " SULA " в должности Вахтенный механик. Полный комплект морских документов для работы на нефтеналивных судах ( диплом без ограничений ).</td>
108 </tr> 111 </tr>
109 <tr> 112 <tr>
110 <td>Октябрь 2014 — по настоящее время 113 <td>Октябрь 2014 — по настоящее время
111 <br>9 лет 6 месяцев</td> 114 <br>9 лет 6 месяцев</td>
112 <td><b>ООО "Невский мазут"</b> 115 <td><b>ООО "Невский мазут"</b>
113 Санкт-Петербург</td> 116 Санкт-Петербург</td>
114 <td><b>Сменный механик (танкер)</b> 117 <td><b>Сменный механик (танкер)</b>
115 Ремонт и эксплуатация судовых энергетических установок . Работа с документами, топливными отчётами. Управление персоналом.</td> 118 Ремонт и эксплуатация судовых энергетических установок . Работа с документами, топливными отчётами. Управление персоналом.</td>
116 </tr> 119 </tr>
117 <tr> 120 <tr>
118 <td>Январь 2012 — октябрь 2014 121 <td>Январь 2012 — октябрь 2014
119 <br>2 года 10 месяцев</td> 122 <br>2 года 10 месяцев</td>
120 <td><b>ООО "Портовый флот"</b> 123 <td><b>ООО "Портовый флот"</b>
121 Санкт-Петербург</td> 124 Санкт-Петербург</td>
122 <td><b>Моторист-матрос-котельный машинист.</b> 125 <td><b>Моторист-матрос-котельный машинист.</b>
123 Эксплуатация, ремонт судовых механизмов, несение вахты.</td> 126 Эксплуатация, ремонт судовых механизмов, несение вахты.</td>
124 </tr> 127 </tr>
125 </tbody> 128 </tbody>
126 </table> 129 </table>
127 </div> 130 </div>
128 </div> 131 </div>
129 </div> 132 </div>
130 <div class="main__resume-profile-about"> 133 <div class="main__resume-profile-about">
131 <h2 class="main__resume-profile-about-title">О себе</h2> 134 <h2 class="main__resume-profile-about-title">О себе</h2>
132 <p class="main__resume-profile-about-text">Привет! Меня зовут Саша, мне 41 год, женат, имею 3 135 <p class="main__resume-profile-about-text">Привет! Меня зовут Саша, мне 41 год, женат, имею 3
133 детей.Большой опыт на Азимутальных буксирах(ВРК). Большой опыт портовых работ: 136 детей.Большой опыт на Азимутальных буксирах(ВРК). Большой опыт портовых работ:
134 швартовки/отшвартовки, доставка/снятие лоцманов, доставка снабжения. Буксировка барж, 137 швартовки/отшвартовки, доставка/снятие лоцманов, доставка снабжения. Буксировка барж,
135 плавкранов.Есть опыт морской буксировки.Знание ПК, офисных програм и т.д.Коммуникабелен, 138 плавкранов.Есть опыт морской буксировки.Знание ПК, офисных програм и т.д.Коммуникабелен,
136 вредных привычек не имею, легко обучаем.</p> 139 вредных привычек не имею, легко обучаем.</p>
137 <div class="button main__resume-profile-about-button">Написать сообщение</div> 140 <div class="button main__resume-profile-about-button">Написать сообщение</div>
138 </div> 141 </div>
139 <div class="main__resume-profile-info"> 142 <div class="main__resume-profile-info">
140 <h2 class="main__resume-profile-info-title">Данные о прошлых компаниях</h2> 143 <h2 class="main__resume-profile-info-title">Данные о прошлых компаниях</h2>
141 <div class="main__resume-profile-info-body"> 144 <div class="main__resume-profile-info-body">
142 <div class="main__resume-profile-info-body-item"> 145 <div class="main__resume-profile-info-body-item">
143 <h3 class="main__resume-profile-info-body-subtitle">Судоходное агентство “Транс-Флот”</h3> 146 <h3 class="main__resume-profile-info-body-subtitle">Судоходное агентство “Транс-Флот”</h3>
144 <ul class="main__resume-profile-info-body-inner"> 147 <ul class="main__resume-profile-info-body-inner">
145 <li> 148 <li>
146 <b>Руководитель</b> 149 <b>Руководитель</b>
147 <span>Егоров Тимур Николаевич</span> 150 <span>Егоров Тимур Николаевич</span>
148 </li> 151 </li>
149 <li> 152 <li>
150 <b>Телефон того, кто может дать рекомендацию</b> 153 <b>Телефон того, кто может дать рекомендацию</b>
151 <span> 154 <span>
152 <a href="#">+7 (000) 123 45 67</a> 155 <a href="#">+7 (000) 123 45 67</a>
153 <a href="#">+7 (000) 123 45 67</a> 156 <a href="#">+7 (000) 123 45 67</a>
154 </span> 157 </span>
155 </li> 158 </li>
156 </ul> 159 </ul>
157 </div> 160 </div>
158 <div class="main__resume-profile-info-body-item"> 161 <div class="main__resume-profile-info-body-item">
159 <h3 class="main__resume-profile-info-body-subtitle">Аквамарин Шип Менеджмент</h3> 162 <h3 class="main__resume-profile-info-body-subtitle">Аквамарин Шип Менеджмент</h3>
160 <ul class="main__resume-profile-info-body-inner"> 163 <ul class="main__resume-profile-info-body-inner">
161 <li> 164 <li>
162 <b>Руководитель</b> 165 <b>Руководитель</b>
163 <span>Федотов Артём Никитич</span> 166 <span>Федотов Артём Никитич</span>
164 </li> 167 </li>
165 <li> 168 <li>
166 <b>Телефон того, кто может дать рекомендацию</b> 169 <b>Телефон того, кто может дать рекомендацию</b>
167 <span> 170 <span>
168 <a href="#">+7 (000) 123 45 67</a> 171 <a href="#">+7 (000) 123 45 67</a>
169 <a href="#">+7 (000) 123 45 67</a> 172 <a href="#">+7 (000) 123 45 67</a>
170 </span> 173 </span>
171 </li> 174 </li>
172 </ul> 175 </ul>
173 </div> 176 </div>
174 </div> 177 </div>
175 </div> 178 </div>
176 </div> 179 </div>
177 </div> 180 </div>
178 </main> 181 </main>
179 <script src="{{ asset('js/jquery.js') }}"></script>
180 <script src="{{ asset('js/jquery.maskedinput.js') }}"></script>
181 <script src="{{ asset('js/jquery.fancybox.js') }}"></script>
182 <script src="{{ asset('js/jquery.select2.js') }}"></script>
183 <script src="{{ asset('js/swiper.js') }}"></script>
184 <script src="{{ asset('js/star-rating.min.js') }}"></script>
185 <script src="{{ asset('js/script.js') }}"></script>
186 </body> 182 </body>
resources/views/list_vacancies.blade.php
1 @php 1 @php
2 use App\Classes\StatusUser; 2 use App\Classes\StatusUser;
3 @endphp 3 @endphp
4 4
5 @extends('layout.frontend', ['title' => 'Вакансии РекаМоре']) 5 @extends('layout.frontend', ['title' => 'Вакансии РекаМоре'])
6 6
7 @section('scripts') 7 @section('scripts')
8 <script> 8 <script>
9 console.log('Test system'); 9 console.log('Test system');
10 $(document).on('change', '#jobs', function() { 10 $(document).on('change', '#jobs', function() {
11 var val = $(this).val(); 11 var val = $(this).val();
12 var main_oskar = $('#main_ockar'); 12 var main_oskar = $('#main_ockar');
13 13
14 console.log('Code='+val); 14 console.log('Code='+val);
15 console.log('Click change...'); 15 console.log('Click change...');
16 $.ajax({ 16 $.ajax({
17 type: "GET", 17 type: "GET",
18 url: "{{ route('list-vacancies', ['categories' => $categories->id]) }}", 18 url: "{{ route('list-vacancies', ['categories' => $categories->id]) }}",
19 data: "job="+val, 19 data: "job="+val,
20 success: function (data) { 20 success: function (data) {
21 console.log('Выбор сделан!'); 21 console.log('Выбор сделан!');
22 console.log(data); 22 console.log(data);
23 main_oskar.html(data); 23 main_oskar.html(data);
24 history.pushState({}, '', "{{ route('education') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); 24 history.pushState({}, '', "{{ route('education') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif");
25 }, 25 },
26 headers: { 26 headers: {
27 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 27 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
28 }, 28 },
29 error: function (data) { 29 error: function (data) {
30 data = JSON.stringify(data); 30 data = JSON.stringify(data);
31 console.log('Error: ' + data); 31 console.log('Error: ' + data);
32 } 32 }
33 }); 33 });
34 }); 34 });
35 35
36 $(document).on('click', '.js_send_it_button', function() { 36 $(document).on('click', '.js_send_it_button', function() {
37 var this_ = $(this); 37 var this_ = $(this);
38 var code_user_id = this_.attr('data-uid'); 38 var code_user_id = this_.attr('data-uid');
39 var code_to_user_id = this_.attr('data-tuid'); 39 var code_to_user_id = this_.attr('data-tuid');
40 var code_vacancy = this_.attr('data-vacancy'); 40 var code_vacancy = this_.attr('data-vacancy');
41 var user_id = $('#_user_id'); 41 var user_id = $('#_user_id');
42 var to_user_id = $('#_to_user_id'); 42 var to_user_id = $('#_to_user_id');
43 var vacancy = $('#_vacancy'); 43 var vacancy = $('#_vacancy');
44 44
45 console.log('Клик на кнопки...'); 45 console.log('Клик на кнопки...');
46 46
47 user_id.val(code_user_id); 47 user_id.val(code_user_id);
48 to_user_id.val(code_to_user_id); 48 to_user_id.val(code_to_user_id);
49 vacancy.val(code_vacancy); 49 vacancy.val(code_vacancy);
50 }); 50 });
51 51
52 $(document).on('change', '#sort_ajax', function() { 52 $(document).on('change', '#sort_ajax', function() {
53 var this_ = $(this); 53 var this_ = $(this);
54 var val_ = this_.val(); 54 var val_ = this_.val();
55 console.log('sort items '+val_); 55 console.log('sort items '+val_);
56 56
57 $.ajax({ 57 $.ajax({
58 type: "GET", 58 type: "GET",
59 url: "{{ route('list-vacancies', ['categories' => $categories->id]) }}", 59 url: "{{ route('list-vacancies', ['categories' => $categories->id]) }}",
60 data: "sort="+val_+"&block=1", 60 data: "sort="+val_+"&block=1",
61 success: function (data) { 61 success: function (data) {
62 console.log('Выбор сортировки'); 62 console.log('Выбор сортировки');
63 console.log(data); 63 console.log(data);
64 $('#main_ockar').html(data); 64 $('#main_ockar').html(data);
65 history.pushState({}, '', "{{ route('list-vacancies', ['categories' => $categories->id]) }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); 65 history.pushState({}, '', "{{ route('list-vacancies', ['categories' => $categories->id]) }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif");
66 }, 66 },
67 headers: { 67 headers: {
68 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 68 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
69 }, 69 },
70 error: function (data) { 70 error: function (data) {
71 data = JSON.stringify(data); 71 data = JSON.stringify(data);
72 console.log('Error: ' + data); 72 console.log('Error: ' + data);
73 } 73 }
74 }); 74 });
75 }); 75 });
76 76
77 77
78 78
79 $(document).ready(function(){ 79 $(document).ready(function(){
80 var sel = $('#select2-sort_ajax-container'); 80 var sel = $('#select2-sort_ajax-container');
81 var key = getUrlParameter('sort'); 81 var key = getUrlParameter('sort');
82 console.log(sel); 82 console.log(sel);
83 console.log(key); 83 console.log(key);
84 84
85 if (key !=='') { 85 if (key !=='') {
86 console.log(key); 86 console.log(key);
87 switch (key) { 87 switch (key) {
88 case "default": sel.html('Сортировка (по умолчанию)'); break; 88 case "default": sel.html('Сортировка (по умолчанию)'); break;
89 case "name_up": sel.html('По имени (возрастание)'); break; 89 case "name_up": sel.html('По имени (возрастание)'); break;
90 case "name_down": sel.html('По дате (убывание)'); break; 90 case "name_down": sel.html('По дате (убывание)'); break;
91 case "created_at_up": sel.html('По дате (возрастание)'); break; 91 case "created_at_up": sel.html('По дате (возрастание)'); break;
92 case "created_at_down": sel.html('По дате (убывание)'); break; 92 case "created_at_down": sel.html('По дате (убывание)'); break;
93 } 93 }
94 94
95 } 95 }
96 }); 96 });
97 </script> 97 </script>
98 @include('js.favorite-vacancy') 98 @include('js.favorite-vacancy')
99 @endsection 99 @endsection
100 @section('content') 100 @section('content')
101 <section class="thing"> 101 <section class="thing">
102 <div class="container"> 102 <div class="container">
103 <form class="thing__body" action="{{ route('list-vacancies', ['categories' => $Name_categori[0]->id]) }}" method="POST"> 103 <form class="thing__body" action="{{ route('list-vacancies', ['categories' => $Name_categori[0]->id]) }}" method="POST">
104 <ul class="breadcrumbs thing__breadcrumbs"> 104 <ul class="breadcrumbs thing__breadcrumbs">
105 <li><a href="{{ route('index') }}">Главная</a></li> 105 <li><a href="{{ route('index') }}">Главная</a></li>
106 <li><a href="{{ route('vacancies') }}">Вакансии</a></li> 106 <li><a href="{{ route('vacancies') }}">Вакансии</a></li>
107 <li><b>{{ isset($Name_categori[0]) ? $Name_categori[0]->name : 'Все категории' }}</b></li> 107 <li><b>{{ isset($Name_categori[0]) ? $Name_categori[0]->name : 'Все категории' }}</b></li>
108 </ul> 108 </ul>
109 <h1 class="thing__title">Вакансии</h1> 109 <h1 class="thing__title">Вакансии</h1>
110 <p class="thing__text">С другой стороны, социально-экономическое развитие не оставляет шанса для 110 <p class="thing__text">С другой стороны, социально-экономическое развитие не оставляет шанса для
111 существующих финансовых и административных условий.</p> 111 существующих финансовых и административных условий.</p>
112 <div class="select select_search thing__select"> 112 <div class="select select_search thing__select">
113 <div class="select__icon"> 113 <div class="select__icon">
114 <svg> 114 <svg>
115 <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> 115 <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use>
116 </svg> 116 </svg>
117 </div> 117 </div>
118 <select class="js-select2" id="jobs" name="jobs"> 118 <select class="js-select2" id="jobs" name="jobs">
119 <option value="0" selected>Выберите должность</option> 119 <option value="0" selected>Выберите должность</option>
120 @if ($Job_title->count()) 120 @if ($Job_title->count())
121 @foreach($Job_title as $JT) 121 @foreach($Job_title as $JT)
122 <option value="{{ $JT->id }}">{{ $JT->name }}</option> 122 <option value="{{ $JT->id }}">{{ $JT->name }}</option>
123 @endforeach 123 @endforeach
124 @endif 124 @endif
125 </select> 125 </select>
126 </div> 126 </div>
127 </form> 127 </form>
128 </div> 128 </div>
129 </section> 129 </section>
130 <main class="main"> 130 <main class="main">
131 <div class="container"> 131 <div class="container">
132 <div class="main__vacancies"> 132 <div class="main__vacancies">
133 @if (isset($job)) 133 @if (isset($job))
134 <h2 class="main__vacancies-title">Категория вакансий {{ $job }}</h2> 134 <h2 class="main__vacancies-title">Категория вакансий {{ $job }}</h2>
135 @else 135 @else
136 <h2 class="main__vacancies-title">Все категории</h2> 136 <h2 class="main__vacancies-title">Все категории</h2>
137 @endif 137 @endif
138 <div class="filters main__vacancies-filters"> 138 <div class="filters main__vacancies-filters">
139 <div class="filters__label" id="col-vo" name="col-vo">Показано @if ($Query_count < 3) {{$Query_count}} @else 3 @endif из @isset($Query_count) {{ $Query_count }} @else 0 @endisset результатов поиска</div> 139 <div class="filters__label" id="col-vo" name="col-vo">Показано @if ($Query_count < 3) {{$Query_count}} @else 3 @endif из @isset($Query_count) {{ $Query_count }} @else 0 @endisset результатов поиска</div>
140 <div class="filters__body"> 140 <div class="filters__body">
141 <div class="select filters__select"> 141 <div class="select filters__select">
142 <select class="js-select2" id="sort_ajax" name="sort_ajax"> 142 <select class="js-select2" id="sort_ajax" name="sort_ajax">
143 <option value="default">Сортировка (по умолчанию)</option> 143 <option value="default">Сортировка (по умолчанию)</option>
144 <option value="name_up">По имени (возрастание)</option> 144 <option value="name_up">По имени (возрастание)</option>
145 <option value="name_down">По имени (убывание)</option> 145 <option value="name_down">По имени (убывание)</option>
146 <option value="created_at_up">По дате (возрастание)</option> 146 <option value="created_at_up">По дате (возрастание)</option>
147 <option value="created_at_down">По дате (убывание)</option> 147 <option value="created_at_down">По дате (убывание)</option>
148 </select> 148 </select>
149 </div> 149 </div>
150 </div> 150 </div>
151 </div> 151 </div>
152 152
153 <div id="main_ockar" class="main__vacancies" name="main_ockar" style="width:100%;"> 153 <div id="main_ockar" class="main__vacancies" name="main_ockar" style="width:100%;">
154 @foreach ($Query as $Q) 154 @foreach ($Query as $Q)
155 <div class="main__vacancies-item main__employer-page-two-item"> 155 <div class="main__vacancies-item main__employer-page-two-item">
156 <a href="{{ route('list-vacancies', ['categories' => $categories->id]) }}" class="back main__employer-page-two-item-back"> 156 <a href="{{ route('list-vacancies', ['categories' => $categories->id]) }}" class="back main__employer-page-two-item-back">
157 <svg> 157 <svg>
158 <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> 158 <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use>
159 </svg> 159 </svg>
160 <span> 160 <span>
161 Вернуться к списку вакансий 161 Вернуться к списку вакансий
162 </span> 162 </span>
163 </a> 163 </a>
164 <div class="main__employer-page-two-item-toper"> 164 <div class="main__employer-page-two-item-toper">
165 @if (isset($Q->employer)) 165 @if (isset($Q->employer))
166 <img src="{{ asset(Storage::url($Q->employer->logo)) }}" alt="{{ $Q->employer->name }}"> 166 <img src="{{ asset(Storage::url($Q->employer->logo)) }}" alt="{{ $Q->employer->name }}">
167 @endif 167 @endif
168 <span>@if (!empty($Q->name)) {{ $Q->name }} @endif</span> 168 <span>@if (!empty($Q->name)) {{ $Q->name }} @endif</span>
169 </div> 169 </div>
170 <div class="main__employer-page-two-item-text"> 170 <div class="main__employer-page-two-item-text">
171 <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор 171 <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор
172 специалистов на следующие должности:</div> 172 специалистов на следующие должности:</div>
173 <div class="main__employer-page-two-item-text-links"> 173 <div class="main__employer-page-two-item-text-links">
174 @if (isset($Q->jobs)) 174 @if (isset($Q->jobs))
175 @foreach ($Q->jobs as $key => $j) 175 @foreach ($Q->jobs as $key => $j)
176 <a>“{{ $j->name }}” – з/п от @if (isset($Q->jobs_code[$key]->min_salary)) {{ $Q->jobs_code[$key]->min_salary }} @endif - @if (isset($Q->jobs_code[$key]->max_salary)) {{ $Q->jobs_code[$key]->max_salary }} @endif рублей (на руки)</a> 176 <a>“{{ $j->name }}” – з/п от @if (isset($Q->jobs_code[$key]->min_salary)) {{ $Q->jobs_code[$key]->min_salary }} @endif - @if (isset($Q->jobs_code[$key]->max_salary)) {{ $Q->jobs_code[$key]->max_salary }} @endif рублей (на руки)</a>
177 @endforeach 177 @endforeach
178 @endif 178 @endif
179 </div> 179 </div>
180 </div> 180 </div>
181 <div class="main__employer-page-two-item-text"> 181 <div class="main__employer-page-two-item-text">
182 <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div> 182 <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div>
183 <div class="main__employer-page-two-item-text-body"> 183 <div class="main__employer-page-two-item-text-body">
184 {!! $Q->text !!} 184 {!! $Q->text !!}
185 </div> 185 </div>
186 </div> 186 </div>
187 <div class="main__employer-page-two-item-text"> 187 <div class="main__employer-page-two-item-text">
188 <div class="main__employer-page-two-item-text-name">Наши ожидания:</div> 188 <div class="main__employer-page-two-item-text-name">Наши ожидания:</div>
189 <div class="main__employer-page-two-item-text-body"> 189 <div class="main__employer-page-two-item-text-body">
190 {!! $Q->description !!} 190 {!! $Q->description !!}
191 </div> 191 </div>
192 </div> 192 </div>
193 <div class="main__employer-page-two-item-text"> 193 <div class="main__employer-page-two-item-text">
194 <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div> 194 <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div>
195 <div class="main__employer-page-two-item-text-body"> 195 <div class="main__employer-page-two-item-text-body">
196 {!! $Q->contacts_emails !!} 196 {!! $Q->contacts_emails !!}
197 </div> 197 </div>
198 </div> 198 </div>
199 <div class="main__employer-page-two-item-text"> 199 <div class="main__employer-page-two-item-text">
200 <div class="main__employer-page-two-item-text-name">Или звоните:</div> 200 <div class="main__employer-page-two-item-text-name">Или звоните:</div>
201 <div class="main__employer-page-two-item-text-body"> 201 <div class="main__employer-page-two-item-text-body">
202 {!! $Q->contacts_telephones !!} 202 {!! $Q->contacts_telephones !!}
203 </div> 203 </div>
204 </div> 204 </div>
205 <div class="main__employer-page-two-item-tags"> 205 <div class="main__employer-page-two-item-tags">
206 @if (isset($Q->jobs)) 206 @if (isset($Q->jobs))
207 @foreach ($Q->jobs as $key => $j) 207 @foreach ($Q->jobs as $key => $j)
208 <span class="main__employer-page-two-item-tag">#{{ $j->name }}</span> 208 <span class="main__employer-page-two-item-tag">#{{ $j->name }}</span>
209 @endforeach 209 @endforeach
210 @endif 210 @endif
211 </div> 211 </div>
212 <div class="main__employer-page-two-item-buttons"> 212 <div class="main__employer-page-two-item-buttons">
213 @guest 213 @guest
214 <button type="button" data-fancybox data-src="#question" data-options='{"touch":false,"autoFocus":false}' 214 <button type="button" data-fancybox data-src="#question" data-options='{"touch":false,"autoFocus":false}'
215 class="button main__employer-page-two-item-button">Откликнуться</button> 215 class="button main__employer-page-two-item-button">Откликнуться</button>
216 @else 216 @else
217 @if (App\Classes\StatusUser::Status()==1) 217 @if (App\Classes\StatusUser::Status()==1)
218 <button type="button" data-fancybox data-src="#send" data-vacancy="{{ $Q->id }}" data-uid="{{ $uid }}" data-tuid="{{ $Q->employer->user_id }}" data-options='{"touch":false,"autoFocus":false}' 218 <button type="button" data-fancybox data-src="#send" data-vacancy="{{ $Q->id }}" data-uid="{{ $uid }}" data-tuid="{{ $Q->employer->user_id }}" data-options='{"touch":false,"autoFocus":false}'
219 class="button main__employer-page-two-item-button js_send_it_button">Откликнуться</button> 219 class="button main__employer-page-two-item-button js_send_it_button">Откликнуться</button>
220 @else 220 @else
221 <button type="button" data-fancybox data-src="#send2" data-vacancy="{{ $Q->id }}" data-uid="{{ $uid }}" data-tuid="{{ $Q->employer->user_id }}" data-options='{"touch":false,"autoFocus":false}' 221 <button type="button" data-fancybox data-src="#send2" data-vacancy="{{ $Q->id }}" data-uid="{{ $uid }}" data-tuid="{{ $Q->employer->user_id }}" data-options='{"touch":false,"autoFocus":false}'
222 class="button main__employer-page-two-item-button js_send_it_button">Откликнуться</button> 222 class="button main__employer-page-two-item-button js_send_it_button">Откликнуться</button>
223 @endif 223 @endif
224 @endguest 224 @endguest
225 <a href="{{ route('vacancie', ['vacancy' => $Q->id]) }}" class="button button_light main__employer-page-two-item-button">Подробнее</a> 225 <a href="{{ route('vacancie', ['vacancy' => $Q->id]) }}" class="button button_light main__employer-page-two-item-button">Подробнее</a>
226 </div> 226 </div>
227 <div class="main__employer-page-two-item-bottom"> 227 <div class="main__employer-page-two-item-bottom">
228 <div class="main__employer-page-two-item-bottom-date">{{ $Q->created_at }}</div> 228 <div class="main__employer-page-two-item-bottom-date">{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}</div>
229 <button type="button" data-val="{{ $Q->id }}" class="like main__employer-page-two-item-bottom-like js-toggle js_vacancy_favorites <?=App\Classes\Cookies_vacancy::selected_vacancy($Q->id);?>"> 229 <button type="button" data-val="{{ $Q->id }}" class="like main__employer-page-two-item-bottom-like js-toggle js_vacancy_favorites <?=App\Classes\Cookies_vacancy::selected_vacancy($Q->id);?>">
230 <svg> 230 <svg>
231 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use> 231 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use>
232 </svg> 232 </svg>
233 </button> 233 </button>
234 </div> 234 </div>
235 </div> 235 </div>
236 @endforeach 236 @endforeach
237 <div style="margin-top: 20px"> 237 <div style="margin-top: 20px">
238 {{ $Query->appends($_GET)->links('paginate') }} 238 {{ $Query->appends($_GET)->links('paginate') }}
239 </div> 239 </div>
240 </div><!-- конец --> 240 </div><!-- конец -->
241 </div> 241 </div>
242 </div> 242 </div>
243 </main> 243 </main>
244 @endsection 244 @endsection
245 245
resources/views/news-list.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', '#jobs', function() { 6 $(document).on('change', '#jobs', function() {
7 var val = $(this).val(); 7 var val = $(this).val();
8 var main_oskar = $('#Main_Ajax'); 8 var main_oskar = $('#Main_Ajax');
9 9
10 console.log('Code='+val); 10 console.log('Code='+val);
11 console.log('Click change...'); 11 console.log('Click change...');
12 $.ajax({ 12 $.ajax({
13 type: "GET", 13 type: "GET",
14 url: "{{ route('news') }}", 14 url: "{{ route('news') }}",
15 data: "job="+val, 15 data: "job="+val,
16 success: function (data) { 16 success: function (data) {
17 console.log('Выбор сделан!'); 17 console.log('Выбор сделан!');
18 console.log(data); 18 console.log(data);
19 main_oskar.html(data); 19 main_oskar.html(data);
20 history.pushState({}, '', "{{ route('news') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); 20 history.pushState({}, '', "{{ route('news') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif");
21 }, 21 },
22 headers: { 22 headers: {
23 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 23 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
24 }, 24 },
25 error: function (data) { 25 error: function (data) {
26 data = JSON.stringify(data); 26 data = JSON.stringify(data);
27 console.log('Error: ' + data); 27 console.log('Error: ' + data);
28 } 28 }
29 }); 29 });
30 }); 30 });
31 31
32 $(document).on('click', '.js_send_it_button', function() { 32 $(document).on('click', '.js_send_it_button', function() {
33 var this_ = $(this); 33 var this_ = $(this);
34 var code_user_id = this_.attr('data-uid'); 34 var code_user_id = this_.attr('data-uid');
35 var code_to_user_id = this_.attr('data-tuid'); 35 var code_to_user_id = this_.attr('data-tuid');
36 var code_vacancy = this_.attr('data-vacancy'); 36 var code_vacancy = this_.attr('data-vacancy');
37 var user_id = $('#_user_id'); 37 var user_id = $('#_user_id');
38 var to_user_id = $('#_to_user_id'); 38 var to_user_id = $('#_to_user_id');
39 var vacancy = $('#_vacancy'); 39 var vacancy = $('#_vacancy');
40 40
41 console.log('Клик на кнопки...'); 41 console.log('Клик на кнопки...');
42 42
43 user_id.val(code_user_id); 43 user_id.val(code_user_id);
44 to_user_id.val(code_to_user_id); 44 to_user_id.val(code_to_user_id);
45 vacancy.val(code_vacancy); 45 vacancy.val(code_vacancy);
46 }); 46 });
47 47
48 $(document).on('change', '#sort_ajax', function() { 48 $(document).on('change', '#sort_ajax', function() {
49 var this_ = $(this); 49 var this_ = $(this);
50 var val_ = this_.val(); 50 var val_ = this_.val();
51 console.log('sort items '+val_); 51 console.log('sort items '+val_);
52 52
53 $.ajax({ 53 $.ajax({
54 type: "GET", 54 type: "GET",
55 url: "{{ route('news') }}", 55 url: "{{ route('news') }}",
56 data: "sort="+val_+"&block=1", 56 data: "sort="+val_+"&block=1",
57 success: function (data) { 57 success: function (data) {
58 console.log('Выбор сортировки'); 58 console.log('Выбор сортировки');
59 console.log(data); 59 console.log(data);
60 $('#main_ockar').html(data); 60 $('#main_ockar').html(data);
61 history.pushState({}, '', "{{ route('news') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); 61 history.pushState({}, '', "{{ route('news') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif");
62 }, 62 },
63 headers: { 63 headers: {
64 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 64 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
65 }, 65 },
66 error: function (data) { 66 error: function (data) {
67 data = JSON.stringify(data); 67 data = JSON.stringify(data);
68 console.log('Error: ' + data); 68 console.log('Error: ' + data);
69 } 69 }
70 }); 70 });
71 }); 71 });
72 72
73 $(document).ready(function(){ 73 $(document).ready(function(){
74 var sel = $('#select2-sort_ajax-container'); 74 var sel = $('#select2-sort_ajax-container');
75 var key = getUrlParameter('sort'); 75 var key = getUrlParameter('sort');
76 console.log(sel); 76 console.log(sel);
77 console.log(key); 77 console.log(key);
78 78
79 if (key !=='') { 79 if (key !=='') {
80 console.log(key); 80 console.log(key);
81 switch (key) { 81 switch (key) {
82 case "default": sel.html('Сортировка (по умолчанию)'); break; 82 case "default": sel.html('Сортировка (по умолчанию)'); break;
83 case "name_up": sel.html('По имени (возрастание)'); break; 83 case "name_up": sel.html('По имени (возрастание)'); break;
84 case "name_down": sel.html('По дате (убывание)'); break; 84 case "name_down": sel.html('По дате (убывание)'); break;
85 case "created_at_up": sel.html('По дате (возрастание)'); break; 85 case "created_at_up": sel.html('По дате (возрастание)'); break;
86 case "created_at_down": sel.html('По дате (убывание)'); break; 86 case "created_at_down": sel.html('По дате (убывание)'); break;
87 } 87 }
88 88
89 } 89 }
90 }); 90 });
91 </script> 91 </script>
92 @include('js.favorite-vacancy') 92 @include('js.favorite-vacancy')
93 @endsection 93 @endsection
94 @section('content') 94 @section('content')
95 <section class="thing"> 95 <section class="thing">
96 <div class="container"> 96 <div class="container">
97 <form class="thing__body" action="{{ route('news') }}" method="GET"> 97 <form class="thing__body" action="{{ route('news') }}" method="GET">
98 <ul class="breadcrumbs thing__breadcrumbs"> 98 <ul class="breadcrumbs thing__breadcrumbs">
99 <li><a href="{{ route('index') }}">Главная</a></li> 99 <li><a href="{{ route('index') }}">Главная</a></li>
100 <li><a href="{{ route('vacancies') }}">Вакансии</a></li> 100 <li><a href="{{ route('vacancies') }}">Вакансии</a></li>
101 <li><b>{{ isset($Name_categori[0]) ? $Name_categori[0]->name : 'Все категории' }}</b></li> 101 <li><b>{{ isset($Name_categori[0]) ? $Name_categori[0]->name : 'Все категории' }}</b></li>
102 </ul> 102 </ul>
103 <h1 class="thing__title">Вакансии</h1> 103 <h1 class="thing__title">Вакансии</h1>
104 <p class="thing__text">С другой стороны, социально-экономическое развитие не оставляет шанса для 104 <p class="thing__text">С другой стороны, социально-экономическое развитие не оставляет шанса для
105 существующих финансовых и административных условий.</p> 105 существующих финансовых и административных условий.</p>
106 <div class="search thing__search"> 106 <div class="search thing__search">
107 <input type="search" id="search" name="search" class="input" placeholder="Введите наименование статьи" value="@if (!empty($_GET['search'])) {{ $_GET['search'] }} @endif"> 107 <input type="search" id="search" name="search" class="input" placeholder="Введите наименование статьи" value="@if (!empty($_GET['search'])) {{ $_GET['search'] }} @endif">
108 <button type="submit" class="button">Найти</button> 108 <button type="submit" class="button">Найти</button>
109 <span> 109 <span>
110 <svg> 110 <svg>
111 <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> 111 <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use>
112 </svg> 112 </svg>
113 </span> 113 </span>
114 </div> 114 </div>
115 </form> 115 </form>
116 </div> 116 </div>
117 </section> 117 </section>
118 <main class="main"> 118 <main class="main">
119 <div class="container"> 119 <div class="container">
120 <div class="main__employers"> 120 <div class="main__employers">
121 <div class="filters"> 121 <div class="filters">
122 <div class="filters__label" id="col-vo" name="col-vo">Показано @if ($Query_count < 3) {{$Query_count}} @else 6 @endif из @isset($Query_count) {{ $Query_count }} @else 0 @endisset результатов поиска</div> 122 <div class="filters__label" id="col-vo" name="col-vo">Показано @if ($Query_count < 3) {{$Query_count}} @else 6 @endif из @isset($Query_count) {{ $Query_count }} @else 0 @endisset результатов поиска</div>
123 <div class="filters__body"> 123 <div class="filters__body">
124 <div class="select filters__select"> 124 <div class="select filters__select">
125 <select class="js-select2" id="sort_ajax" name="sort_ajax"> 125 <select class="js-select2" id="sort_ajax" name="sort_ajax">
126 <option value="default">Сортировка (по умолчанию)</option> 126 <option value="default">Сортировка (по умолчанию)</option>
127 <option value="name_up">По имени (возрастание)</option> 127 <option value="name_up">По имени (возрастание)</option>
128 <option value="name_down">По имени (убывание)</option> 128 <option value="name_down">По имени (убывание)</option>
129 <option value="created_at_up">По дате (возрастание)</option> 129 <option value="created_at_up">По дате (возрастание)</option>
130 <option value="created_at_down">По дате (убывание)</option> 130 <option value="created_at_down">По дате (убывание)</option>
131 </select> 131 </select>
132 </div> 132 </div>
133 </div> 133 </div>
134 </div> 134 </div>
135 <div id="Main_Ajax" name="Main_Ajax"> 135 <div id="Main_Ajax" name="Main_Ajax">
136 136
137 @if ($Query->count()) 137 @if ($Query->count())
138 <div class="news__items"> 138 <div class="news__items">
139 @foreach ($Query as $Q) 139 @foreach ($Query as $Q)
140 <div class="news__item"> 140 <div class="news__item">
141 @if (!empty(asset(Storage::url($Q->image)))) 141 @if (!empty(asset(Storage::url($Q->image))))
142 <img src="{{ asset(Storage::url($Q->image)) }}" alt="{{ $Q->title }}" class="news__item-pic"> 142 <img src="{{ asset(Storage::url($Q->image)) }}" alt="{{ $Q->title }}" class="news__item-pic">
143 @else 143 @else
144 <img src="{{ asset('images/8.jpg') }}" alt="{{ $Q->title }}" class="news__item-pic"> 144 <img src="{{ asset('images/8.jpg') }}" alt="{{ $Q->title }}" class="news__item-pic">
145 @endif 145 @endif
146 <div class="news__item-body"> 146 <div class="news__item-body">
147 <time datetime="2023-05-01" class="news__item-date">{{ $Q->created_at }}</time> 147 <time datetime="{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}" class="news__item-date">{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}</time>
148 <span class="news__item-title">{{ $Q->title }}</span> 148 <span class="news__item-title">{{ $Q->title }}</span>
149 <span class="news__item-text">{!! $Q->text !!}</span> 149 <span class="news__item-text">{!! $Q->text !!}</span>
150 <a href="{{ route('detail_new', ['new' => $Q->id]) }}" class="news__item-more button button_light">Читать далее</a> 150 <a href="{{ route('detail_new', ['new' => $Q->id]) }}" class="news__item-more button button_light">Читать далее</a>
151 </div> 151 </div>
152 </div> 152 </div>
153 @endforeach 153 @endforeach
154
155 </div> 154 </div>
156
157 {{ $Query->appends($_GET)->links('paginate') }} 155 {{ $Query->appends($_GET)->links('paginate') }}
158 @else 156 @else
159 <div class="news__items"> 157 <div class="news__items">
160 158
161 </div> 159 </div>
162 @endif 160 @endif
163 </div> 161 </div>
164 162
165 </div> 163 </div>
166 </div> 164 </div>
167 </main> 165 </main>
168 </div> 166 </div>
169 @endsection 167 @endsection
170 168
resources/views/paginate.blade.php
1 @if ($paginator->hasPages()) 1 @if ($paginator->hasPages())
2 <div class="pagination"> 2 <div class="pagination">
3 @if ($paginator->onFirstPage()) 3 @if ($paginator->onFirstPage())
4 4 <a href="{{ $paginator->previousPageUrl() }}" class="pagination__nav pagination__nav_prev">
5 <svg>
6 <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use>
7 </svg>
8 </a>
5 @else 9 @else
6 <a href="{{ $paginator->previousPageUrl() }}" class="pagination__nav pagination__nav_prev"> 10 <a href="{{ $paginator->previousPageUrl() }}" class="pagination__nav pagination__nav_prev">
7 <svg> 11 <svg>
8 <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use> 12 <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use>
9 </svg> 13 </svg>
10 </a> 14 </a>
11 @endif 15 @endif
12 16
13 @foreach ($elements as $element) 17 @foreach ($elements as $element)
14 @if (is_string($element)) 18 @if (is_string($element))
15 <span>{{ $element }}</span> 19 <span>{{ $element }}</span>
16 @endif 20 @endif
17 21
18 @if (is_array($element)) 22 @if (is_array($element))
19 @php $count_element = count($element); 23 @php $count_element = count($element);
20 $i = 0; 24 $i = 0;
21 @endphp 25 @endphp
22 @foreach ($element as $page => $url) 26 @foreach ($element as $page => $url)
23 @if ($page == $paginator->currentPage()) 27 @if ($page == $paginator->currentPage())
24 <span class="pagination__item active">{{ $page }}</span> 28 <span class="pagination__item active">{{ $page }}</span>
25 @else 29 @else
26 @if (($i == $count_element - 1) && ($count_element > 5)) 30 @if (($i == $count_element - 1) && ($count_element > 5))
27 <span class="pagination__dots"> 31 <span class="pagination__dots">
28 <svg> 32 <svg>
29 <use xlink:href="{{ asset('images/sprite.svg#dots') }}"></use> 33 <use xlink:href="{{ asset('images/sprite.svg#dots') }}"></use>
30 </svg> 34 </svg>
31 </span> 35 </span>
32 @endif 36 @endif
33 37
34 <a href="{{ $url }}" class="pagination__item">{{ $page }}</a> 38 <a href="{{ $url }}" class="pagination__item">{{ $page }}</a>
35 @endif 39 @endif
36 @php $i++; @endphp 40 @php $i++; @endphp
37 @endforeach 41 @endforeach
38 @endif 42 @endif
39 @endforeach 43 @endforeach
40 44
41 @if ($paginator->hasMorePages()) 45 @if ($paginator->hasMorePages())
42 <a href="{{ $paginator->nextPageUrl() }}" class="pagination__nav pagination__nav_next"> 46 <a href="{{ $paginator->nextPageUrl() }}" class="pagination__nav pagination__nav_next">
43 <svg> 47 <svg>
44 <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use> 48 <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use>
45 </svg> 49 </svg>
46 </a> 50 </a>
47 @else 51 @else
48 52 <a href="{{ $paginator->nextPageUrl() }}" class="pagination__nav pagination__nav_next">
53 <svg>
54 <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use>
55 </svg>
56 </a>
49 @endif 57 @endif
50 </div> 58 </div>
51 @endif 59 @endif
52 60
53 61
resources/views/vacance-item.blade.php
1 @extends('layout.frontend', ['title' => $title]) 1 @extends('layout.frontend', ['title' => $title])
2 2
3 @section('scripts') 3 @section('scripts')
4 @include('js.favorite-vacancy') 4 @include('js.favorite-vacancy')
5 @endsection 5 @endsection
6 6
7 @section('content') 7 @section('content')
8 <main class="main"> 8 <main class="main">
9 <div class="container"> 9 <div class="container">
10 <ul class="breadcrumbs main__breadcrumbs"> 10 <ul class="breadcrumbs main__breadcrumbs">
11 <li><a href="{{ route('index') }}">Главная</a></li> 11 <li><a href="{{ route('index') }}">Главная</a></li>
12 <li><a href="{{ route('vacancies') }}">Вакансии</a></li> 12 <li><a href="{{ route('vacancies') }}">Вакансии</a></li>
13 <li><b>{{ $title }}</b></li> 13 <li><b>{{ $title }}</b></li>
14 </ul> 14 </ul>
15 <div class="main__employer-page"> 15 <div class="main__employer-page">
16 16
17 @if (isset($Query[0]->employer)) 17 @if (isset($Query[0]->employer))
18 <h2 class="main__employer-page-title">О компании</h2> 18 <h2 class="main__employer-page-title">О компании</h2>
19 <div class="main__employer-page-two-item-toper"> 19 <div class="main__employer-page-two-item-toper">
20 <img src="{{ asset(Storage::url($Query[0]->employer->logo)) }}" alt="{{ $Query[0]->employer->name }}"> 20 <img src="{{ asset(Storage::url($Query[0]->employer->logo)) }}" alt="{{ $Query[0]->employer->name }}">
21 <span>{{ $Query[0]->employer->name_company }}</span> 21 <span>{{ $Query[0]->employer->name_company }}</span>
22 </div> 22 </div>
23 23
24 <div class="main__employer-page-info"> 24 <div class="main__employer-page-info">
25 <div class="main__employer-page-item"> 25 <div class="main__employer-page-item">
26 <b> Адрес компании</b> 26 <b> Адрес компании</b>
27 <span> 27 <span>
28 {{ $Query[0]->employer->address }} 28 {{ $Query[0]->employer->address }}
29 </span> 29 </span>
30 </div> 30 </div>
31 <div class="main__employer-page-item"> 31 <div class="main__employer-page-item">
32 <b>Сайт</b> 32 <b>Сайт</b>
33 <span> 33 <span>
34 <a href="{{ $Query[0]->employer->site }}">{{ $Query[0]->employer->site }}</a> 34 <a href="{{ $Query[0]->employer->site }}">{{ $Query[0]->employer->site }}</a>
35 </span> 35 </span>
36 </div> 36 </div>
37 <div class="main__employer-page-item"> 37 <div class="main__employer-page-item">
38 <b>Почта</b> 38 <b>Почта</b>
39 <span> 39 <span>
40 <a href="{{ $Query[0]->employer->email }}">{{ $Query[0]->employer->email }}</a> 40 <a href="{{ $Query[0]->employer->email }}">{{ $Query[0]->employer->email }}</a>
41 </span> 41 </span>
42 </div> 42 </div>
43 <div class="main__employer-page-item"> 43 <div class="main__employer-page-item">
44 <b>Телефон</b> 44 <b>Телефон</b>
45 <span> 45 <span>
46 <a href="tel:{{ $Query[0]->employer->telephone }}">{{ $Query[0]->employer->telephone }}</a> 46 <a href="tel:{{ $Query[0]->employer->telephone }}">{{ $Query[0]->employer->telephone }}</a>
47 </span> 47 </span>
48 </div> 48 </div>
49 </div> 49 </div>
50 @else 50 @else
51 <div class="main__employer-page-info"> 51 <div class="main__employer-page-info">
52 <div class="main__employer-page-item"> 52 <div class="main__employer-page-item">
53 <b>Ничего не найдено</b> 53 <b>Ничего не найдено</b>
54 <span> 54 <span>
55 Нет данных о компании 55 Нет данных о компании
56 </span> 56 </span>
57 </div> 57 </div>
58 </div> 58 </div>
59 @endif 59 @endif
60 <h2 class="main__employer-page-title">Описание вакансии</h2> 60 <h2 class="main__employer-page-title">Описание вакансии</h2>
61 61
62 </div> 62 </div>
63 63
64 @foreach ($Query as $Q) 64 @foreach ($Query as $Q)
65 <div class="main__vacancies-item-page main__employer-page-two-item"> 65 <div class="main__vacancies-item-page main__employer-page-two-item">
66 <div class="main__employer-page-two-item-text"> 66 <div class="main__employer-page-two-item-text">
67 <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор 67 <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор
68 специалистов на следующие должности:</div> 68 специалистов на следующие должности:</div>
69 <div class="main__employer-page-two-item-text-links"> 69 <div class="main__employer-page-two-item-text-links">
70 @if (isset($Q->jobs)) 70 @if (isset($Q->jobs))
71 @foreach ($Q->jobs as $key => $j) 71 @foreach ($Q->jobs as $key => $j)
72 <a>“{{ $j->name }}” – з/п от @if (isset($Q->jobs_code[$key]->min_salary)) {{ $Q->jobs_code[$key]->min_salary }} @endif - @if (isset($Q->jobs_code[$key]->max_salary)) {{ $Q->jobs_code[$key]->max_salary }} @endif рублей (на руки)</a> 72 <a>“{{ $j->name }}” – з/п от @if (isset($Q->jobs_code[$key]->min_salary)) {{ $Q->jobs_code[$key]->min_salary }} @endif - @if (isset($Q->jobs_code[$key]->max_salary)) {{ $Q->jobs_code[$key]->max_salary }} @endif рублей (на руки)</a>
73 @endforeach 73 @endforeach
74 @endif 74 @endif
75 </div> 75 </div>
76 </div> 76 </div>
77 <div class="main__employer-page-two-item-text"> 77 <div class="main__employer-page-two-item-text">
78 <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div> 78 <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div>
79 <div class="main__employer-page-two-item-text-body"> 79 <div class="main__employer-page-two-item-text-body">
80 {!! $Q->text !!} 80 {!! $Q->text !!}
81 </div> 81 </div>
82 </div> 82 </div>
83 <div class="main__employer-page-two-item-text"> 83 <div class="main__employer-page-two-item-text">
84 <div class="main__employer-page-two-item-text-name">Наши ожидания:</div> 84 <div class="main__employer-page-two-item-text-name">Наши ожидания:</div>
85 <div class="main__employer-page-two-item-text-body"> 85 <div class="main__employer-page-two-item-text-body">
86 {!! $Q->description !!} 86 {!! $Q->description !!}
87 </div> 87 </div>
88 </div> 88 </div>
89 <div class="main__employer-page-two-item-text"> 89 <div class="main__employer-page-two-item-text">
90 <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div> 90 <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div>
91 <div class="main__employer-page-two-item-text-body"> 91 <div class="main__employer-page-two-item-text-body">
92 {!! $Q->contacts_emails !!} 92 {!! $Q->contacts_emails !!}
93 </div> 93 </div>
94 <div class="main__employer-page-two-item-text"> 94 <div class="main__employer-page-two-item-text">
95 <div class="main__employer-page-two-item-text-name">Или звоните:</div> 95 <div class="main__employer-page-two-item-text-name">Или звоните:</div>
96 <div class="main__employer-page-two-item-text-body"> 96 <div class="main__employer-page-two-item-text-body">
97 {!! $Q->contacts_telephones !!} 97 {!! $Q->contacts_telephones !!}
98 </div> 98 </div>
99 </div> 99 </div>
100 <div class="main__employer-page-two-item-tags"> 100 <div class="main__employer-page-two-item-tags">
101 @if (isset($Q->jobs)) 101 @if (isset($Q->jobs))
102 @foreach ($Q->jobs as $key => $j) 102 @foreach ($Q->jobs as $key => $j)
103 <span class="main__employer-page-two-item-tag">#{{ $j->name }}</span> 103 <span class="main__employer-page-two-item-tag">#{{ $j->name }}</span>
104 @endforeach 104 @endforeach
105 @endif 105 @endif
106 </div> 106 </div>
107 <br> 107 <br>
108 <div class="main__employer-page-two-item-buttons"> 108 <div class="main__employer-page-two-item-buttons">
109 <button type="button" class="button main__employer-page-two-item-button">Откликнуться</button> 109 <button type="button" class="button main__employer-page-two-item-button">Откликнуться</button>
110 </div> 110 </div>
111 <div class="main__employer-page-two-item-bottom"> 111 <div class="main__employer-page-two-item-bottom">
112 <div class="main__employer-page-two-item-bottom-date">{{ $Q->created_at }}</div> 112 <div class="main__employer-page-two-item-bottom-date">{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}</div>
113 <button type="button" data-val="{{ $Q->id }}" class="like main__employer-page-two-item-bottom-like js_vacancy_favorites js-toggle <?=\App\Classes\RusDate::selected_vacancy($Q->id);?>"> 113 <button type="button" data-val="{{ $Q->id }}" class="like main__employer-page-two-item-bottom-like js_vacancy_favorites js-toggle <?=\App\Classes\RusDate::selected_vacancy($Q->id);?>">
114 <svg> 114 <svg>
115 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use> 115 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use>
116 </svg> 116 </svg>
117 </button> 117 </button>
118 </div> 118 </div>
119 119
120 </div> 120 </div>
121 121
122 @endforeach 122 @endforeach
123 123
124 </div> <a href="{{ redirect()->back()->getTargetUrl() }}" class="back"> 124 </div> <a href="{{ redirect()->back()->getTargetUrl() }}" class="back">
125 <svg> 125 <svg>
126 <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> 126 <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use>
127 </svg> 127 </svg>
128 <span> 128 <span>
129 Вернуться к списку вакансий 129 Вернуться к списку вакансий
130 </span> 130 </span>
131 </a> 131 </a>
132 </main> 132 </main>
133 </div> 133 </div>
134 @endsection 134 @endsection
135 135
resources/views/worker.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', '#jobs', function() { 6 $(document).on('change', '#jobs', function() {
7 var val = $(this).val(); 7 var val = $(this).val();
8 var main_oskar = $('#main_ockar'); 8 var main_oskar = $('#main_ockar');
9 9
10 console.log('Code='+val); 10 console.log('Code='+val);
11 console.log('Click change...'); 11 console.log('Click change...');
12 $.ajax({ 12 $.ajax({
13 type: "GET", 13 type: "GET",
14 url: "", 14 url: "",
15 data: "job="+val, 15 data: "job="+val,
16 success: function (data) { 16 success: function (data) {
17 console.log('Выбор сделан!'); 17 console.log('Выбор сделан!');
18 console.log(data); 18 console.log(data);
19 main_oskar.html(data); 19 main_oskar.html(data);
20 }, 20 },
21 headers: { 21 headers: {
22 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 22 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
23 }, 23 },
24 error: function (data) { 24 error: function (data) {
25 data = JSON.stringify(data); 25 data = JSON.stringify(data);
26 console.log('Error: ' + data); 26 console.log('Error: ' + data);
27 } 27 }
28 }); 28 });
29 }); 29 });
30 </script> 30 </script>
31 @endsection 31 @endsection
32 32
33 @section('content') 33 @section('content')
34 <section class="thing"> 34 <section class="thing">
35 <div class="container"> 35 <div class="container">
36 <ul class="breadcrumbs thing__breadcrumbs"> 36 <ul class="breadcrumbs thing__breadcrumbs">
37 <li><a href="{{ route('index') }}">Главная</a></li> 37 <li><a href="{{ route('index') }}">Главная</a></li>
38 <li><a href="{{ route('bd_resume') }}">База резюме</a></li> 38 <li><a href="{{ route('bd_resume') }}">База резюме</a></li>
39 <li><b>@if (isset($Query[0]->users)) {{ $Query[0]->users->surname." ".$Query[0]->users->name_man." ".$Query[0]->users->surname2 }} @else Неизвестно @endif</b></li> 39 <li><b>@if (isset($Query[0]->users)) {{ $Query[0]->users->surname." ".$Query[0]->users->name_man." ".$Query[0]->users->surname2 }} @else Неизвестно @endif</b></li>
40 </ul> 40 </ul>
41 <div class="thing__profile"> 41 <div class="thing__profile">
42 <img src="@isset($Query->photo) {{ asset(Storage::url($Query->photo)) }} @else {{ asset('images/default_man.jpg') }} @endif" alt="" class="thing__profile-photo"> 42 <img src="@isset($Query->photo) {{ asset(Storage::url($Query->photo)) }} @else {{ asset('images/default_man.jpg') }} @endif" alt="" class="thing__profile-photo">
43 <div class="thing__profile-body"> 43 <div class="thing__profile-body">
44 <h1 class="thing__title">@if (isset($Query[0]->users)) {{ $Query[0]->users->surname." ".$Query[0]->users->name_man." ".$Query[0]->users->surname2 }} @else Неизвестно @endif</h1> 44 <h1 class="thing__title">@if (isset($Query[0]->users)) {{ $Query[0]->users->surname." ".$Query[0]->users->name_man." ".$Query[0]->users->surname2 }} @else Неизвестно @endif</h1>
45 <p class="thing__text">Сложно сказать, почему ключевые особенности структуры проекта рассмотрены 45 <p class="thing__text">Сложно сказать, почему ключевые особенности структуры проекта рассмотрены
46 исключительно в разрезе маркетинговых и финансовых предпосылок.</p> 46 исключительно в разрезе маркетинговых и финансовых предпосылок.</p>
47 <div class="thing__bottom"> 47 <div class="thing__bottom">
48 <a class="button" href="{{ route('resume_download', ['worker' => $Query[0]->id]) }}"> 48 <a class="button" href="{{ route('resume_download', ['worker' => $Query[0]->id]) }}">
49 Скачать резюме 49 Скачать резюме
50 <svg> 50 <svg>
51 <use xlink:href="{{ asset('images/sprite.svg#download') }}"></use> 51 <use xlink:href="{{ asset('images/sprite.svg#download') }}"></use>
52 </svg> 52 </svg>
53 </a> 53 </a>
54 <button type="button" class="like js-toggle"> 54 <button type="button" class="like js-toggle">
55 <svg> 55 <svg>
56 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use> 56 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use>
57 </svg> 57 </svg>
58 </button> 58 </button>
59 </div> 59 </div>
60 </div> 60 </div>
61 </div> 61 </div>
62 </div> 62 </div>
63 </section> 63 </section>
64 <main class="main"> 64 <main class="main">
65 <div class="container"> 65 <div class="container">
66 <div class="main__resume-profile"> 66 <div class="main__resume-profile">
67 <div class="main__content"> 67 <div class="main__content">
68 <div class="main__spoiler"> 68 <div class="main__spoiler">
69 <button type="button" class="main__spoiler-toper js-toggle active"> 69 <button type="button" class="main__spoiler-toper js-toggle active">
70 Основная информация</button> 70 Основная информация</button>
71 71
72 <div class="main__spoiler-body"> 72 <div class="main__spoiler-body">
73 <table class="main__table"> 73 <table class="main__table">
74 <tbody> 74 <tbody>
75 <tr> 75 <tr>
76 <td>Имя:</td> 76 <td>Имя:</td>
77 <td><b>{{ $Query[0]->users->name_man }}</b></td> 77 <td><b>{{ $Query[0]->users->name_man }}</b></td>
78 </tr> 78 </tr>
79 <tr> 79 <tr>
80 <td>Должность:</td> 80 <td>Должность:</td>
81 <td><b>@if (isset($Query[0]->job_titles[0]->name)) {{ $Query[0]->job_titles[0]->name }} @else Не указано @endif</b></td> 81 <td><b>@if (isset($Query[0]->job_titles[0]->name)) {{ $Query[0]->job_titles[0]->name }} @else Не указано @endif</b></td>
82 </tr> 82 </tr>
83 <tr> 83 <tr>
84 <td>Телефон:</td> 84 <td>Телефон:</td>
85 <td><b><a href="tel:{{ $Query[0]->telephone }}">{{ $Query[0]->telephone }}</a></b></td> 85 <td><b><a href="tel:{{ $Query[0]->telephone }}">{{ $Query[0]->telephone }}</a></b></td>
86 </tr> 86 </tr>
87 <tr> 87 <tr>
88 <td>E-mail:</td> 88 <td>E-mail:</td>
89 <td><b><a href="emailto:{{ $Query[0]->email }}">{{ $Query[0]->email }}</a></b></td> 89 <td><b><a href="emailto:{{ $Query[0]->email }}">{{ $Query[0]->email }}</a></b></td>
90 </tr> 90 </tr>
91 <tr> 91 <tr>
92 <td>Возраст:</td> 92 <td>Возраст:</td>
93 <td><b>{{ $Query[0]->old_year }}</b></td> 93 <td><b>{{ $Query[0]->old_year }}</b></td>
94 </tr> 94 </tr>
95 <tr> 95 <tr>
96 <td>Статус:</td> 96 <td>Статус:</td>
97 <td><b>{{ $status_work[$Query[0]->status_work] }}</b></td> 97 <td><b>{{ $status_work[$Query[0]->status_work] }}</b></td>
98 </tr> 98 </tr>
99 <tr> 99 <tr>
100 <td>Город проживания:</td> 100 <td>Город проживания:</td>
101 <td><b>{{ $Query[0]->city }}</b></td> 101 <td><b>{{ $Query[0]->city }}</b></td>
102 </tr> 102 </tr>
103 <tr> 103 <tr>
104 <td>Уровень английского:</td> 104 <td>Уровень английского:</td>
105 <td><b>{{ $Query[0]->en_is }}</b></td> 105 <td><b>{{ $Query[0]->en_is }}</b></td>
106 </tr> 106 </tr>
107 <tr> 107 <tr>
108 <td>Опыт работы:</td> 108 <td>Опыт работы:</td>
109 <td><b>{{ $Query[0]->experience }}</b></td> 109 <td><b>{{ $Query[0]->experience }}</b></td>
110 </tr> 110 </tr>
111 </tbody> 111 </tbody>
112 </table> 112 </table>
113 </div> 113 </div>
114 </div> 114 </div>
115 <div class="main__spoiler"> 115 <div class="main__spoiler">
116 <button type="button" class="main__spoiler-toper js-toggle">Сертификаты / документы</button> 116 <button type="button" class="main__spoiler-toper js-toggle">Сертификаты / документы</button>
117 <div class="main__spoiler-body"> 117 <div class="main__spoiler-body">
118 118
119 @if (isset($Query[0]->sertificate)) 119 @if (isset($Query[0]->sertificate))
120 @if ($Query[0]->sertificate->count()) 120 @if ($Query[0]->sertificate->count())
121 @foreach($Query[0]->sertificate as $it) 121 @foreach($Query[0]->sertificate as $it)
122 <table class="main__table"> 122 <table class="main__table">
123 <tbody> 123 <tbody>
124 <tr> 124 <tr>
125 <td>Название сертификата:</td> 125 <td>Название сертификата:</td>
126 <td><b>{{ $it->name }}</b></td> 126 <td><b>{{ $it->name }}</b></td>
127 </tr> 127 </tr>
128 <tr> 128 <tr>
129 <td>Организация выдавшая документ:</td> 129 <td>Организация выдавшая документ:</td>
130 <td><b>{{ $it->education }}</b></td> 130 <td><b>{{ $it->education }}</b></td>
131 </tr> 131 </tr>
132 <tr> 132 <tr>
133 <td>Дата начала обучения:</td> 133 <td>Дата начала обучения:</td>
134 <td><b>{{ $it->date_begin }}</b></td> 134 <td><b>{{ $it->date_begin }}</b></td>
135 </tr> 135 </tr>
136 <tr> 136 <tr>
137 <td>Дата конца обучения:</td> 137 <td>Дата конца обучения:</td>
138 <td><b>{{ $it->end_begin }}</b></td> 138 <td><b>{{ $it->end_begin }}</b></td>
139 </tr> 139 </tr>
140 </tbody> 140 </tbody>
141 </table> 141 </table>
142 <br> 142 <br>
143 @endforeach 143 @endforeach
144 @endif 144 @endif
145 @endif 145 @endif
146 </div> 146 </div>
147 </div> 147 </div>
148 148
149 <div class="main__spoiler"> 149 <div class="main__spoiler">
150 <button type="button" class="main__spoiler-toper js-toggle">Опыт работы</button> 150 <button type="button" class="main__spoiler-toper js-toggle">Опыт работы</button>
151 <div class="main__spoiler-body"> 151 <div class="main__spoiler-body">
152 152
153 @if (isset($Query[0]->place_worker)) 153 @if (isset($Query[0]->place_worker))
154 @if ($Query[0]->place_worker->count()) 154 @if ($Query[0]->place_worker->count())
155 @foreach($Query[0]->place_worker as $it) 155 @foreach($Query[0]->place_worker as $it)
156 156
157 <table class="main__table"> 157 <table class="main__table">
158 <tbody> 158 <tbody>
159 <tr> 159 <tr>
160 <td>Должность:</td> 160 <td>Должность:</td>
161 <td><b>{{ $it->job_title }}</b></td> 161 <td><b>{{ $it->job_title }}</b></td>
162 </tr> 162 </tr>
163 <tr> 163 <tr>
164 <td>Опыт работы в танкерном флоте:</td> 164 <td>Опыт работы в танкерном флоте:</td>
165 <td><b>@if($it->tanker==1) Есть @else Нет @endif</b></td> 165 <td><b>@if($it->tanker==1) Есть @else Нет @endif</b></td>
166 </tr> 166 </tr>
167 <tr> 167 <tr>
168 <td>Дата начала работы:</td> 168 <td>Дата начала работы:</td>
169 <td><b>{{ $it->begin_work }}</b></td> 169 <td><b>{{ $it->begin_work }}</b></td>
170 </tr> 170 </tr>
171 <tr> 171 <tr>
172 <td>Дата конца работы:</td> 172 <td>Дата конца работы:</td>
173 <td><b>{{ $it->end_work }}</b></td> 173 <td><b>{{ $it->end_work }}</b></td>
174 </tr> 174 </tr>
175 <tr> 175 <tr>
176 <td>Название компании:</td> 176 <td>Название компании:</td>
177 <td><b>{{ $it->name_company }}</b></td> 177 <td><b>{{ $it->name_company }}</b></td>
178 </tr> 178 </tr>
179 <tr> 179 <tr>
180 <td>GWT тип</td> 180 <td>GWT тип</td>
181 <td><b>{{ $it->GWT }}</b></td> 181 <td><b>{{ $it->GWT }}</b></td>
182 </tr> 182 </tr>
183 <tr> 183 <tr>
184 <td>ГД:</td> 184 <td>ГД:</td>
185 <td><b>{{ $it->KBT }}</b></td> 185 <td><b>{{ $it->KBT }}</b></td>
186 </tr> 186 </tr>
187 </tbody> 187 </tbody>
188 </table> 188 </table>
189 <br> 189 <br>
190 @endforeach 190 @endforeach
191 @endif 191 @endif
192 @endif 192 @endif
193 </div> 193 </div>
194 </div> 194 </div>
195 195
196 <div class="main__spoiler"> 196 <div class="main__spoiler">
197 <button type="button" class="main__spoiler-toper js-toggle">Дополнительные документы</button> 197 <button type="button" class="main__spoiler-toper js-toggle">Дополнительные документы</button>
198 <div class="main__spoiler-body"> 198 <div class="main__spoiler-body">
199 199
200 @if (isset($Query[0]->infobloks)) 200 @if (isset($Query[0]->infobloks))
201 @if ($Query[0]->infobloks->count()) 201 @if ($Query[0]->infobloks->count())
202 <table class="main__table"> 202 <table class="main__table">
203 <tbody> 203 <tbody>
204 @foreach($Query[0]->infobloks as $it) 204 @foreach($Query[0]->infobloks as $it)
205 <tr> 205 <tr>
206 <td>Документ:</td> 206 <td>Документ:</td>
207 <td><b>{{ $it->name }}</b></td> 207 <td><b>{{ $it->name }}</b></td>
208 </tr> 208 </tr>
209 @endforeach 209 @endforeach
210 </tbody> 210 </tbody>
211 </table> 211 </table>
212 @endif 212 @endif
213 @endif 213 @endif
214 </div> 214 </div>
215 </div> 215 </div>
216 </div> 216 </div>
217 <div class="main__resume-profile-about"> 217 <div class="main__resume-profile-about">
218 <h2 class="main__resume-profile-about-title">О себе</h2> 218 <h2 class="main__resume-profile-about-title">О себе</h2>
219 <p class="main__resume-profile-about-text">{{ $Query[0]->text }}</p> 219 <p class="main__resume-profile-about-text">{{ $Query[0]->text }}</p>
220 <div class="button main__resume-profile-about-button" data-fancybox data-src="#send" data-options='{"touch":false,"autoFocus":false}'>Написать сообщение</div> 220 <div class="button main__resume-profile-about-button" data-fancybox data-src="#send" data-options='{"touch":false,"autoFocus":false}'>Написать сообщение</div>
221 </div> 221 </div>
222 <div class="main__resume-profile-info"> 222 <div class="main__resume-profile-info">
223 <h2 class="main__resume-profile-info-title">Данные о прошлых компаниях</h2> 223 <h2 class="main__resume-profile-info-title">Данные о прошлых компаниях</h2>
224 <div class="main__resume-profile-info-body"> 224 <div class="main__resume-profile-info-body">
225 225 @if ((isset($Query[0]->prev_company)) && ($Query[0]->prev_company->count()))
226 @if (isset($Query[0]->prev_company))
227 @if ($Query[0]->prev_company->count())
228 @foreach ($Query[0]->prev_company as $it) 226 @foreach ($Query[0]->prev_company as $it)
229 <div class="main__resume-profile-info-body-item"> 227 <div class="main__resume-profile-info-body-item">
230 <h3 class="main__resume-profile-info-body-subtitle">{{ $it->name_company }}</h3> 228 <h3 class="main__resume-profile-info-body-subtitle">{{ $it->name_company }}</h3>
231 <ul class="main__resume-profile-info-body-inner"> 229 <ul class="main__resume-profile-info-body-inner">
232 <li> 230 <li>
233 <b>Руководитель</b> 231 <b>Руководитель</b>
234 <span>{{ $it->direct }}</span> 232 <span>{{ $it->direct }}</span>
235 </li> 233 </li>
236 <li> 234 <li>
237 <b>Телефон того, кто может дать рекомендацию</b> 235 <b>Телефон того, кто может дать рекомендацию</b>
238 <span> 236 <span>
239 @if (!empty($it->telephone)) 237 @if (!empty($it->telephone))
240 <a href="tel:{{$it->telephone }}">{{ $it->telephone }}</a> 238 <a href="tel:{{$it->telephone }}">{{ $it->telephone }}</a>
241 @endif 239 @endif
242 @if (!empty($it->telephone2)) 240 @if (!empty($it->telephone2))
243 <a href="tel:{{$it->telephone2 }}">{{ $it->telephone2 }}</a> 241 <a href="tel:{{$it->telephone2 }}">{{ $it->telephone2 }}</a>
244 @endif 242 @endif
245 </span> 243 </span>
246 </li> 244 </li>
247 </ul> 245 </ul>
248 </div> 246 </div>
249 @endforeach 247 @endforeach
250 @endif 248 @else
249 <div class="main__resume-profile-info-body-item">
250 <h3 class="main__resume-profile-info-body-subtitle">Нету данных о компании</h3>
251 </div>
251 @endif 252 @endif
252 </div> 253 </div>
253 </div> 254 </div>
255
256
257
258
259
260
261
262
254 <div class="main__resume-profile-review"> 263 <div class="main__resume-profile-review">
264 <form action="{{ route('stars_answer') }}" method="POST">
265 @csrf
255 <h2 class="main__resume-profile-review-title">Оставить отзыв о работнике</h2> 266 <h2 class="main__resume-profile-review-title">Оставить отзыв о работнике</h2>
256 <div class="rate"> 267 <div class="rate">
257 <div class="rate__label">Ваша оценка:</div> 268 <div class="rate__label">Ваша оценка:</div>
258 <div class="rate__stars"> 269 <div class="rate__stars">
259 <img src="{{ asset('images/stars.svg') }}" alt=""> 270 <select name="stars" id="stars" class="star-rating js-stars">
271 <option value="5">5</option>
272 <option value="4">4</option>
273 <option value="3">3</option>
274 <option value="2">2</option>
275 <option value="1" selected>1</option>
276 </select>
260 </div> 277 </div>
261 </div> 278 </div>
279 <input type="hidden" name="worker_id" id="worker_id" value="{{ $Query[0]->id }}"/>
262 <div class="main__resume-profile-review-body"> 280 <div class="main__resume-profile-review-body">
263 <h3>Ваш отзыв</h3> 281 <h3>Ваш отзыв</h3>
264 <textarea class="textarea" placeholder="Текст отзыва&hellip;" required></textarea> 282 <textarea class="textarea" name="message" id="message" placeholder="Текст отзыва&hellip;" required></textarea>
265 <button type="submit" class="button">Оставить отзыв</button> 283 <button type="submit" class="button">Оставить отзыв</button>
266 </div> 284 </div>
285 </form>
267 </div> 286 </div>
268 </div> 287 </div>
269 </div> 288 </div>
270 </main> 289 </main>
271 </div> 290 </div>
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 49
50 Route::get('/', [MainController::class, 'index'])->name('index'); 50 Route::get('/', [MainController::class, 'index'])->name('index');
51 51
52 //Роуты авторизации, регистрации, восстановления, аутентификации 52 //Роуты авторизации, регистрации, восстановления, аутентификации
53 Auth::routes(['verify' => true]); 53 Auth::routes(['verify' => true]);
54 54
55 // роуты регистрации, авторизации, восстановления пароля, верификации почты 55 // роуты регистрации, авторизации, восстановления пароля, верификации почты
56 /*Route::group([ 56 /*Route::group([
57 'as' => 'auth.', //имя маршрута, например auth.index 57 'as' => 'auth.', //имя маршрута, например auth.index
58 'prefix' => 'auth', // префикс маршрута, например, auth/index 58 'prefix' => 'auth', // префикс маршрута, например, auth/index
59 ], function () { 59 ], function () {
60 //форма регистрации 60 //форма регистрации
61 Route::get('register', [RegisterController::class, 'register'])->name('register'); 61 Route::get('register', [RegisterController::class, 'register'])->name('register');
62 62
63 //создание пользователя 63 //создание пользователя
64 Route::post('register', [RegisterController::class, 'create'])->name('create'); 64 Route::post('register', [RegisterController::class, 'create'])->name('create');
65 65
66 //форма входа авторизации 66 //форма входа авторизации
67 Route::get('login', [LoginController::class, 'login'])->name('login'); 67 Route::get('login', [LoginController::class, 'login'])->name('login');
68 68
69 //аутентификация 69 //аутентификация
70 Route::post('login', [LoginController::class, 'authenticate'])->name('auth'); 70 Route::post('login', [LoginController::class, 'authenticate'])->name('auth');
71 71
72 //выход 72 //выход
73 Route::get('logout', [LoginController::class, 'logout'])->name('logout'); 73 Route::get('logout', [LoginController::class, 'logout'])->name('logout');
74 74
75 //форма ввода адреса почты 75 //форма ввода адреса почты
76 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form'); 76 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form');
77 77
78 //письмо на почту 78 //письмо на почту
79 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail'); 79 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail');
80 80
81 //форма восстановления пароля 81 //форма восстановления пароля
82 Route::get('reset-password/token/{token}/email/{email}', 82 Route::get('reset-password/token/{token}/email/{email}',
83 [ResetPasswordController::class, 'form'] 83 [ResetPasswordController::class, 'form']
84 )->name('reset-form'); 84 )->name('reset-form');
85 85
86 //восстановление пароля 86 //восстановление пароля
87 Route::post('reset-password', 87 Route::post('reset-password',
88 [ResetPasswordController::class, 'reset'] 88 [ResetPasswordController::class, 'reset']
89 )->name('reset-password'); 89 )->name('reset-password');
90 90
91 //сообщение о необходимости проверки адреса почты 91 //сообщение о необходимости проверки адреса почты
92 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message'); 92 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message');
93 93
94 //подтверждение адреса почты нового пользователя 94 //подтверждение адреса почты нового пользователя
95 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify']) 95 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify'])
96 ->where('token', '[a-f0-9]{32}') 96 ->where('token', '[a-f0-9]{32}')
97 ->where('id', '[0-9]+') 97 ->where('id', '[0-9]+')
98 ->name('verify-email'); 98 ->name('verify-email');
99 });*/ 99 });*/
100 100
101 //Личный кабинет пользователя 101 //Личный кабинет пользователя
102 Route::get('/home', [HomeController::class, 'index'])->name('home'); 102 Route::get('/home', [HomeController::class, 'index'])->name('home');
103 103
104 /* 104 /*
105 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { 105 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) {
106 $user = User::where('email',$request->input('email'))->first(); 106 $user = User::where('email',$request->input('email'))->first();
107 107
108 $user->sendEmailVerificationNotification(); 108 $user->sendEmailVerificationNotification();
109 109
110 return 'your response'; 110 return 'your response';
111 })->middleware('throttle:6,1')->name('verification.resend'); 111 })->middleware('throttle:6,1')->name('verification.resend');
112 */ 112 */
113 113
114 // Авторизация, регистрация в админку 114 // Авторизация, регистрация в админку
115 Route::group([ 115 Route::group([
116 'as' => 'admin.', // имя маршрута, например auth.index 116 'as' => 'admin.', // имя маршрута, например auth.index
117 'prefix' => 'admin', // префикс маршрута, например auth/index 117 'prefix' => 'admin', // префикс маршрута, например auth/index
118 'middleware' => ['guest'], 118 'middleware' => ['guest'],
119 ], function () { 119 ], function () {
120 // Форма регистрации 120 // Форма регистрации
121 Route::get('register', [AdminController::class, 'register'])->name('register'); 121 Route::get('register', [AdminController::class, 'register'])->name('register');
122 // Создание пользователя 122 // Создание пользователя
123 Route::post('register', [AdminController::class, 'create'])->name('create'); 123 Route::post('register', [AdminController::class, 'create'])->name('create');
124 124
125 //Форма входа 125 //Форма входа
126 Route::get('login', [AdminController::class, 'login'])->name('login'); 126 Route::get('login', [AdminController::class, 'login'])->name('login');
127 127
128 // аутентификация 128 // аутентификация
129 Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); 129 Route::post('login', [AdminController::class, 'autenticate'])->name('auth');
130 130
131 }); 131 });
132 132
133 // Личный кабинет админки 133 // Личный кабинет админки
134 Route::group([ 134 Route::group([
135 'as' => 'admin.', // имя маршрута, например auth.index 135 'as' => 'admin.', // имя маршрута, например auth.index
136 'prefix' => 'admin', // префикс маршрута, например auth/index 136 'prefix' => 'admin', // префикс маршрута, например auth/index
137 'middleware' => ['auth'], ['admin'], 137 'middleware' => ['auth'], ['admin'],
138 ], function() { 138 ], function() {
139 139
140 // выход 140 // выход
141 Route::get('logout', [AdminController::class, 'logout'])->name('logout'); 141 Route::get('logout', [AdminController::class, 'logout'])->name('logout');
142 142
143 // кабинет главная страница 143 // кабинет главная страница
144 Route::get('cabinet', [AdminController::class, 'index'])->name('index'); 144 Route::get('cabinet', [AdminController::class, 'index'])->name('index');
145 145
146 // кабинет профиль админа - форма 146 // кабинет профиль админа - форма
147 Route::get('profile', [AdminController::class, 'profile'])->name('profile'); 147 Route::get('profile', [AdminController::class, 'profile'])->name('profile');
148 // кабинет профиль админа - сохранение формы 148 // кабинет профиль админа - сохранение формы
149 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); 149 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile');
150 150
151 //кабинет сообщения админа 151 //кабинет сообщения админа
152 //Route::get('messages', [AdminController::class, 'profile'])->name('profile'); 152 //Route::get('messages', [AdminController::class, 'profile'])->name('profile');
153 153
154 154
155 // кабинет профиль - форма пароли 155 // кабинет профиль - форма пароли
156 Route::get('password', [AdminController::class, 'profile_password'])->name('password'); 156 Route::get('password', [AdminController::class, 'profile_password'])->name('password');
157 // кабинет профиль - сохранение формы пароля 157 // кабинет профиль - сохранение формы пароля
158 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); 158 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password');
159 159
160 160
161 // кабинет профиль пользователя - форма 161 // кабинет профиль пользователя - форма
162 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); 162 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile');
163 // кабинет профиль пользователя - сохранение формы 163 // кабинет профиль пользователя - сохранение формы
164 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); 164 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile');
165 165
166 // кабинет профиль работодатель - форма 166 // кабинет профиль работодатель - форма
167 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); 167 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile');
168 // кабинет профиль работодатель - сохранение формы 168 // кабинет профиль работодатель - сохранение формы
169 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); 169 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile');
170 // кабинет удаление профиль работодателя и юзера 170 // кабинет удаление профиль работодателя и юзера
171 Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer'); 171 Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer');
172 172
173 // кабинет профиль работник - форма 173 // кабинет профиль работник - форма
174 Route::get('worker-profile/add/{user}', [WorkersController::class, 'form_add_worker'])->name('worker-profile-add'); 174 Route::get('worker-profile/add/{user}', [WorkersController::class, 'form_add_worker'])->name('worker-profile-add');
175 Route::post('worker-profile/add/{user}', [WorkersController::class, 'form_store_worker'])->name('worker-profile-store'); 175 Route::post('worker-profile/add/{user}', [WorkersController::class, 'form_store_worker'])->name('worker-profile-store');
176 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit'); 176 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit');
177 // кабинет профиль работник - сохранение формы 177 // кабинет профиль работник - сохранение формы
178 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update'); 178 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update');
179 179
180 // Медиа 180 // Медиа
181 Route::get('media', [MediaController::class, 'index'])->name('media'); 181 Route::get('media', [MediaController::class, 'index'])->name('media');
182 Route::delete('media/{media}', [MediaController::class, 'delete'])->name('delete-media'); 182 Route::delete('media/{media}', [MediaController::class, 'delete'])->name('delete-media');
183 183
184 // кабинет настройки сайта - форма 184 // кабинет настройки сайта - форма
185 Route::get('config', [AdminController::class, 'config_form'])->name('config'); 185 Route::get('config', [AdminController::class, 'config_form'])->name('config');
186 // кабинет настройки сайта сохранение формы 186 // кабинет настройки сайта сохранение формы
187 Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); 187 Route::post('config', [AdminController::class, 'store_config'])->name('store_config');
188 188
189 // кабинет - пользователи 189 // кабинет - пользователи
190 Route::get('users', [UsersController::class, 'index'])->name('users'); 190 Route::get('users', [UsersController::class, 'index'])->name('users');
191 191
192 // кабинет - пользователи 192 // кабинет - пользователи
193 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); 193 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users');
194 194
195 // кабинет - работодатели 195 // кабинет - работодатели
196 Route::get('employers', [EmployersController::class, 'index'])->name('employers'); 196 Route::get('employers', [EmployersController::class, 'index'])->name('employers');
197 197
198 Route::get('employers/comment/{employer}', [EmployersController::class, 'comment_read'])->name('comment-employer'); 198 Route::get('employers/comment/{employer}', [EmployersController::class, 'comment_read'])->name('comment-employer');
199 199
200 Route::get('flot/add/{employer}', [EmployersController::class, 'add_flot'])->name('flot_add'); 200 Route::get('flot/add/{employer}', [EmployersController::class, 'add_flot'])->name('flot_add');
201 Route::post('flot/add', [EmployersController::class, 'save_add_flot'])->name('flot_add_save'); 201 Route::post('flot/add', [EmployersController::class, 'save_add_flot'])->name('flot_add_save');
202 Route::get('flot/{flot}/{employer}', [EmployersController::class, 'edit_flot'])->name('flot'); 202 Route::get('flot/{flot}/{employer}', [EmployersController::class, 'edit_flot'])->name('flot');
203 Route::put('flot/{flot}', [EmployersController::class, 'edit_save_flot'])->name('flot_edit'); 203 Route::put('flot/{flot}', [EmployersController::class, 'edit_save_flot'])->name('flot_edit');
204 Route::get('flot/{flot}/{employer_id}/delete', [EmployersController::class, 'delete_flot'])->name('flot_delete'); 204 Route::get('flot/{flot}/{employer_id}/delete', [EmployersController::class, 'delete_flot'])->name('flot_delete');
205 205
206 // кабинет - соискатели 206 // кабинет - соискатели
207 Route::get('workers', [WorkersController::class, 'index'])->name('workers'); 207 Route::get('workers', [WorkersController::class, 'index'])->name('workers');
208 208
209 // кабинет - база данных 209 // кабинет - база данных
210 Route::get('basedata', [UsersController::class, 'index_bd'])->name('basedata'); 210 Route::get('basedata', [UsersController::class, 'index_bd'])->name('basedata');
211 Route::get('basedata/add', [UsersController::class, 'add_bd'])->name('add-basedata'); 211 Route::get('basedata/add', [UsersController::class, 'add_bd'])->name('add-basedata');
212 Route::post('basedata/add', [UsersController::class, 'add_store_bd'])->name('add-store-basedata'); 212 Route::post('basedata/add', [UsersController::class, 'add_store_bd'])->name('add-store-basedata');
213 Route::get('basedata/edit/{user}', [UsersController::class, 'edit_bd'])->name('edit-basedata'); 213 Route::get('basedata/edit/{user}', [UsersController::class, 'edit_bd'])->name('edit-basedata');
214 Route::put('basedata/edit/{user}', [UsersController::class, 'update_bd'])->name('update-basedata'); 214 Route::put('basedata/edit/{user}', [UsersController::class, 'update_bd'])->name('update-basedata');
215 Route::delete('basedata/delete/{user}', [UsersController::class, 'destroy_bd'])->name('delete-basedata'); 215 Route::delete('basedata/delete/{user}', [UsersController::class, 'destroy_bd'])->name('delete-basedata');
216 Route::get('basedata/doc/{user}', [UsersController::class, 'doc_bd'])->name('doc-basedata'); 216 Route::get('basedata/doc/{user}', [UsersController::class, 'doc_bd'])->name('doc-basedata');
217 217
218 // кабинет - вакансии 218 // кабинет - вакансии
219 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); 219 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers');
220 Route::get('ad-employers/add', [Ad_EmployersController::class, 'create'])->name('add-ad-employers'); 220 Route::get('ad-employers/add', [Ad_EmployersController::class, 'create'])->name('add-ad-employers');
221 Route::post('ad-employers/add', [Ad_EmployersController::class, 'store'])->name('store-ad-employers'); 221 Route::post('ad-employers/add', [Ad_EmployersController::class, 'store'])->name('store-ad-employers');
222 Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers'); 222 Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers');
223 Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers'); 223 Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers');
224 Route::delete('ad-employers/delete/{ad_employer}', [Ad_EmployersController::class, 'destroy'])->name('delete-ad-employer'); 224 Route::delete('ad-employers/delete/{ad_employer}', [Ad_EmployersController::class, 'destroy'])->name('delete-ad-employer');
225 225
226 // Редактирование должности в вакансии 226 // Редактирование должности в вакансии
227 Route::put('update-jobs/{ad_jobs}', [Ad_EmployersController::class, 'update_ad_jobs'])->name('update_jobs'); 227 Route::put('update-jobs/{ad_jobs}', [Ad_EmployersController::class, 'update_ad_jobs'])->name('update_jobs');
228 Route::get('edit-jobs/{ad_jobs}', [Ad_EmployersController::class, 'edit_jobs'])->name('edit_jobs'); 228 Route::get('edit-jobs/{ad_jobs}', [Ad_EmployersController::class, 'edit_jobs'])->name('edit_jobs');
229 229
230 230
231 // кабинет - категории 231 // кабинет - категории
232 //Route::get('categories', [AdminController::class, 'index'])->name('categories'); 232 //Route::get('categories', [AdminController::class, 'index'])->name('categories');
233 /* 233 /*
234 * CRUD-операции над Справочником Категории 234 * CRUD-операции над Справочником Категории
235 */ 235 */
236 Route::resource('categories', CategoryController::class, ['except' => ['show']]); 236 Route::resource('categories', CategoryController::class, ['except' => ['show']]);
237 237
238 // CRUD-операции над справочником Категории для работодателей 238 // CRUD-операции над справочником Категории для работодателей
239 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]); 239 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]);
240 240
241 // CRUD-операции над справочником Образование 241 // CRUD-операции над справочником Образование
242 Route::resource('education', EducationController::class, ['except' => ['show']]); 242 Route::resource('education', EducationController::class, ['except' => ['show']]);
243 243
244 Route::get('rename-program-education', [EducationController::class, 'rename_program'])->name('rename-program-education'); 244 Route::get('rename-program-education', [EducationController::class, 'rename_program'])->name('rename-program-education');
245 Route::get('program-education', [EducationController::class, 'add_program'])->name('add-program-education'); 245 Route::get('program-education', [EducationController::class, 'add_program'])->name('add-program-education');
246 Route::post('program-education', [EducationController::class, 'store_program'])->name('store-program-education'); 246 Route::post('program-education', [EducationController::class, 'store_program'])->name('store-program-education');
247 247
248 Route::get('program-education/edit/{program}/{education}', [EducationController::class, 'edit_program'])->name('edit-program-education'); 248 Route::get('program-education/edit/{program}/{education}', [EducationController::class, 'edit_program'])->name('edit-program-education');
249 Route::post('program-education/edit/{program}/{education}', [EducationController::class, 'update_program'])->name('update-program-education'); 249 Route::post('program-education/edit/{program}/{education}', [EducationController::class, 'update_program'])->name('update-program-education');
250 250
251 Route::get('program-education/delete/{program}/{education}', [EducationController::class, 'delete_program'])->name('delete-program-education'); 251 Route::get('program-education/delete/{program}/{education}', [EducationController::class, 'delete_program'])->name('delete-program-education');
252 252
253 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); 253 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');
254 /* 254 /*
255 * кабинет - CRUD-операции по справочнику должности 255 * кабинет - CRUD-операции по справочнику должности
256 * 256 *
257 */ 257 */
258 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); 258 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]);
259 259
260 // кабинет - сообщения (чтение чужих) 260 // кабинет - сообщения (чтение чужих)
261 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); 261 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages');
262 // кабинет - просмотр сообщения чужого (чтение) 262 // кабинет - просмотр сообщения чужого (чтение)
263 Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message'); 263 Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message');
264 264
265 // кабинет - сообщения (админские) 265 // кабинет - сообщения (админские)
266 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages'); 266 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages');
267 // кабинет - сообщения (админские) 267 // кабинет - сообщения (админские)
268 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post'); 268 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post');
269 // кабинет - sql - конструкция запросов 269 // кабинет - sql - конструкция запросов
270 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql'); 270 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql');
271 271
272 /* 272 /*
273 * Расписанный подход в описании каждой директорий групп пользователей. 273 * Расписанный подход в описании каждой директорий групп пользователей.
274 */ 274 */
275 // кабинет - группы пользователей 275 // кабинет - группы пользователей
276 Route::get('groups', [GroupsController::class, 'index'])->name('groups'); 276 Route::get('groups', [GroupsController::class, 'index'])->name('groups');
277 // кабинет - добавление форма группы пользователей 277 // кабинет - добавление форма группы пользователей
278 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); 278 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group');
279 // кабинет - сохранение формы группы пользователей 279 // кабинет - сохранение формы группы пользователей
280 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); 280 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store');
281 // кабинет - редактирование форма группы пользователей 281 // кабинет - редактирование форма группы пользователей
282 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); 282 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group');
283 // кабинет - сохранение редактированной формы группы пользователей 283 // кабинет - сохранение редактированной формы группы пользователей
284 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); 284 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group');
285 // кабинет - удаление группы пользователей 285 // кабинет - удаление группы пользователей
286 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); 286 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group');
287 287
288 288
289 // кабинет - список админов 289 // кабинет - список админов
290 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); 290 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin');
291 291
292 292
293 /////редактор////// кабинет - редактор сайта//////////////////////// 293 /////редактор////// кабинет - редактор сайта////////////////////////
294 Route::get('editor-site', function() { 294 Route::get('editor-site', function() {
295 return view('admin.editor.index'); 295 return view('admin.editor.index');
296 })->name('editor-site'); 296 })->name('editor-site');
297 297
298 298
299 // кабинет - редактор шапки-футера сайта 299 // кабинет - редактор шапки-футера сайта
300 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); 300 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks');
301 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); 301 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block');
302 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); 302 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store');
303 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); 303 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block');
304 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); 304 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block');
305 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); 305 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block');
306 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); 306 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block');
307 307
308 308
309 // кабинет - редактор должности на главной 309 // кабинет - редактор должности на главной
310 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); 310 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main');
311 311
312 // кабинет - редактор работодатели на главной 312 // кабинет - редактор работодатели на главной
313 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); 313 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main');
314 314
315 315
316 // кабинет - редактор seo-сайта 316 // кабинет - редактор seo-сайта
317 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); 317 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo');
318 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); 318 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo');
319 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); 319 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store');
320 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); 320 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo');
321 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); 321 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo');
322 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); 322 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo');
323 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); 323 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo');
324 324
325 325
326 // кабинет - редактор страниц 326 // кабинет - редактор страниц
327 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); 327 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages');
328 // кабинет - добавление страницы 328 // кабинет - добавление страницы
329 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); 329 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page');
330 // кабинет - сохранение формы страницы 330 // кабинет - сохранение формы страницы
331 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); 331 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store');
332 // кабинет - редактирование форма страницы 332 // кабинет - редактирование форма страницы
333 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); 333 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page');
334 // кабинет - сохранение редактированной формы страницы 334 // кабинет - сохранение редактированной формы страницы
335 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); 335 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page');
336 // кабинет - удаление страницы 336 // кабинет - удаление страницы
337 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); 337 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page');
338 338
339 339
340 // кабинет - реклама сайта 340 // кабинет - реклама сайта
341 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); 341 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames');
342 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); 342 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames');
343 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); 343 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store');
344 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); 344 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames');
345 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); 345 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames');
346 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); 346 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames');
347 //////////////////////////////////////////////////////////////////////// 347 ////////////////////////////////////////////////////////////////////////
348 348
349 349
350 // кабинет - отзывы о работодателе для модерации 350 // кабинет - отзывы о работодателе для модерации
351 Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); 351 Route::get('answers', [EmployersController::class, 'answers'])->name('answers');
352 352
353 // Общая страница статистики 353 // Общая страница статистики
354 Route::get('statics', function () { 354 Route::get('statics', function () {
355 return view('admin.static.index'); 355 return view('admin.static.index');
356 })->name('statics'); 356 })->name('statics');
357 357
358 // кабинет - статистика работников 358 // кабинет - статистика работников
359 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); 359 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers');
360 360
361 // кабинет - статистика вакансий работодателя 361 // кабинет - статистика вакансий работодателя
362 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); 362 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads');
363 363
364 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника 364 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника
365 /* 365 /*
366 * CRUD-операции над справочником дипломы и документы 366 * CRUD-операции над справочником дипломы и документы
367 */ 367 */
368 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); 368 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks');
369 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); 369 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]);
370 370
371 // кабинет - роли пользователя 371 // кабинет - роли пользователя
372 Route::get('roles', [UsersController::class, 'roles'])->name('roles'); 372 Route::get('roles', [UsersController::class, 'roles'])->name('roles');
373 373
374 Route::get('admin_roles', [UsersController::class, 'admin_roles'])->name('admin_roles'); 374 Route::get('admin_roles', [UsersController::class, 'admin_roles'])->name('admin_roles');
375 375
376 Route::get('logs', function() { 376 Route::get('logs', function() {
377 $files = Storage::files('logs/laravel.log'); 377 $files = Storage::files('logs/laravel.log');
378 })->name('logs'); 378 })->name('logs');
379 }); 379 });
380 380
381 // Инструментальные страницы 381 // Инструментальные страницы
382 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); 382 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload');
383 383
384 Route::get('redis/', [PagesController::class, 'redis'])->name('redis'); 384 Route::get('redis/', [PagesController::class, 'redis'])->name('redis');
385 385
386 Route::get('excel/', [PagesController::class, 'excel'])->name('excel'); 386 Route::get('excel/', [PagesController::class, 'excel'])->name('excel');
387 387
388 // Страницы с произвольным контентом 388 // Страницы с произвольным контентом
389 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); 389 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page');
390 390
391 // Публичные страницы соискателя 391 // Публичные страницы соискателя
392 Route::get('workers/profile/{worker}', [WorkerController::class, 'profile'])->name('worker_page'); 392 Route::get('workers/profile/{worker}', [WorkerController::class, 'profile'])->name('worker_page');
393 393
394 //Страница вакансии 394 //Страница вакансии
395 Route::get('employer/ad/{ad_employer}', [AdEmployerController::class, 'ad_employer'])->name('ad-employer'); 395 Route::get('employer/ad/{ad_employer}', [AdEmployerController::class, 'ad_employer'])->name('ad-employer');
396 396
397 //Вакансии 397 //Вакансии
398 Route::get('vacancies', [MainController::class, 'vacancies'])->name('vacancies'); 398 Route::get('vacancies', [MainController::class, 'vacancies'])->name('vacancies');
399 399
400 //Вакансии поиск на главной 400 //Вакансии поиск на главной
401 Route::get('search-vacancies', [MainController::class, 'search_vacancies'])->name('search_vacancies'); 401 Route::get('search-vacancies', [MainController::class, 'search_vacancies'])->name('search_vacancies');
402 402
403 //Вакансии категория детальная 403 //Вакансии категория детальная
404 Route::get('list-vacancies/{categories}', [MainController::class, 'list_vacancies'])->name('list-vacancies'); 404 Route::get('list-vacancies/{categories}', [MainController::class, 'list_vacancies'])->name('list-vacancies');
405 405
406 //Детальная страница вакансии - работодателя 406 //Детальная страница вакансии - работодателя
407 Route::get('vacancie/{vacancy}', [FrontEmployersController::class, 'vacancie'])->name('vacancie'); 407 Route::get('vacancie/{vacancy}', [FrontEmployersController::class, 'vacancie'])->name('vacancie');
408 408
409 //Судоходные компании 409 //Судоходные компании
410 Route::get('shipping-companies', [FrontCompanyController::class, 'shipping_companies'])->name('shipping_companies'); 410 Route::get('shipping-companies', [FrontCompanyController::class, 'shipping_companies'])->name('shipping_companies');
411 411
412 //Детальная инфа о компании 412 //Детальная инфа о компании
413 Route::get('info-company/{company}', [FrontCompanyController::class, 'info_company'])->name('info_company'); 413 Route::get('info-company/{company}', [FrontCompanyController::class, 'info_company'])->name('info_company');
414 414
415 //Образование 415 //Образование
416 Route::get('education', [MainController::class, 'education'])->name('education'); 416 Route::get('education', [MainController::class, 'education'])->name('education');
417 417
418 //Новости 418 //Новости
419 Route::get('news', [MainController::class, 'news'])->name('news'); 419 Route::get('news', [MainController::class, 'news'])->name('news');
420 Route::get('detail-new/{new}', [MainController::class, 'detail_new'])->name('detail_new'); 420 Route::get('detail-new/{new}', [MainController::class, 'detail_new'])->name('detail_new');
421 421
422 //Контакты 422 //Контакты
423 Route::get('contacts', [MainController::class, 'contacts'])->name('contacts'); 423 Route::get('contacts', [MainController::class, 'contacts'])->name('contacts');
424 424
425 //База резюме 425 //База резюме
426 Route::get('bd-resume', [WorkerController::class, 'bd_resume'])->name('bd_resume'); 426 Route::get('bd-resume', [WorkerController::class, 'bd_resume'])->name('bd_resume');
427 427
428 //Анкета соискателя 428 //Анкета соискателя
429 Route::get('resume-profile/{worker}', [WorkerController::class, 'resume_profile'])->name('resume_profile'); 429 Route::get('resume-profile/{worker}', [WorkerController::class, 'resume_profile'])->name('resume_profile');
430 430
431 //Скачать резюме 431 //Скачать резюме
432 Route::get('resume-download/{worker}', [WorkerController::class, 'resume_download'])->name('resume_download'); 432 Route::get('resume-download/{worker}', [WorkerController::class, 'resume_download'])->name('resume_download');
433 433
434 //Вход в кабинет 434 //Вход в кабинет
435 Route::get('login', [MainController::class, 'input_login'])->name('login'); 435 Route::get('login', [MainController::class, 'input_login'])->name('login');
436 436
437 // Выход из кабинета 437 // Выход из кабинета
438 Route::get('logout', [EmployerController::class, 'logout'])->name('logout'); 438 Route::get('logout', [EmployerController::class, 'logout'])->name('logout');
439 439
440 Route::get( 'register_worker', [WorkerController::class, 'register_worker'])->name('register_worker'); 440 Route::get( 'register_worker', [WorkerController::class, 'register_worker'])->name('register_worker');
441 Route::get('register_employer', [EmployerController::class, 'register_employer'])->name('register_employer'); 441 Route::get('register_employer', [EmployerController::class, 'register_employer'])->name('register_employer');
442 442
443 //восстановление пароля 443 //восстановление пароля
444 Route::get('repair-password', [MainController::class, 'repair_password'])->name('repair_password'); 444 Route::get('repair-password', [MainController::class, 'repair_password'])->name('repair_password');
445 // Звезда сообщения
446 Route::post('stars-answer', [WorkerController::class, 'stars_answer'])->name('stars_answer');
445 447
446 // Борьба 448 // Борьба
447 Route::get('clear_cookie', function() { 449 Route::get('clear_cookie', function() {
448 \App\Classes\Cookies_vacancy::clear_vacancy(); 450 \App\Classes\Cookies_vacancy::clear_vacancy();
449 return redirect()->route('index'); 451 return redirect()->route('index');
450 })->name('clear_cookie'); 452 })->name('clear_cookie');
451 453
452 // Личный кабинет работника 454 // Личный кабинет работника
453 Route::group([ 455 Route::group([
454 'as' => 'worker.', // имя маршрута, например auth.index 456 'as' => 'worker.', // имя маршрута, например auth.index
455 'prefix' => 'worker', // префикс маршрута, например auth/index 457 'prefix' => 'worker', // префикс маршрута, например auth/index
456 'middleware' => ['auth'], ['is_worker'], 458 'middleware' => ['auth'], ['is_worker'],
457 ], function() { 459 ], function() {
458 // 1 страница - Моя анкета 460 // 1 страница - Моя анкета
459 Route::get('cabinet', [WorkerController::class, 'cabinet'])->name('cabinet'); 461 Route::get('cabinet', [WorkerController::class, 'cabinet'])->name('cabinet');
460 Route::post('cabinet/{worker}', [WorkerController::class, 'cabinet_save'])->name('cabinet_save'); 462 Route::post('cabinet/{worker}', [WorkerController::class, 'cabinet_save'])->name('cabinet_save');
461 463
462 // 2 страница - Сообщения 464 // 2 страница - Сообщения
463 Route::get('cabinet/messages/{type_message}', [WorkerController::class, 'messages'])->name('messages'); 465 Route::get('cabinet/messages/{type_message}', [WorkerController::class, 'messages'])->name('messages');
464 Route::get('cabinet/dialog/{user1}/{user2}', [WorkerController::class, 'dialog'])->name('dialog'); 466 Route::get('cabinet/dialog/{user1}/{user2}', [WorkerController::class, 'dialog'])->name('dialog');
465 // 3 страница - Избранные вакансии 467 // 3 страница - Избранные вакансии
466 Route::get('cabinet/favorite', [WorkerController::class, 'favorite'])->name('favorite'); 468 Route::get('cabinet/favorite', [WorkerController::class, 'favorite'])->name('favorite');
467 // Продолжение борьбы против колорадов - избранные вакансии 469 // Продолжение борьбы против колорадов - избранные вакансии
468 Route::get('кабинет/favorite', [WorkerController::class, 'colorado'])->name('colorado'); 470 Route::get('кабинет/favorite', [WorkerController::class, 'colorado'])->name('colorado');
469 471
470 // 4 страница - Сменить пароль 472 // 4 страница - Сменить пароль
471 Route::get('кабинет/new_password', [WorkerController::class, 'new_password'])->name('new_password'); 473 Route::get('кабинет/new_password', [WorkerController::class, 'new_password'])->name('new_password');
472 Route::post('кабинет/new_password/save', [WorkerController::class, 'save_new_password'])->name('save_new_password'); 474 Route::post('кабинет/new_password/save', [WorkerController::class, 'save_new_password'])->name('save_new_password');
473 475
474 // 5 страница - Удалить профиль 476 // 5 страница - Удалить профиль
475 Route::get('кабинет/delete_profile', [WorkerController::class, 'delete_profile'])->name('delete_profile'); 477 Route::get('кабинет/delete_profile', [WorkerController::class, 'delete_profile'])->name('delete_profile');
476 Route::post('кабинет/delete_profile/delete', [WorkerController::class, 'delete_profile_result'])->name('deleteprofile_result'); 478 Route::post('кабинет/delete_profile/delete', [WorkerController::class, 'delete_profile_result'])->name('deleteprofile_result');
477 479
478 // Резюме -pdf 480 // Резюме -pdf
479 Route::get('кабинет/download/{worker}', [WorkerController::class, 'download'])->name('download'); 481 Route::get('кабинет/download/{worker}', [WorkerController::class, 'download'])->name('download');
480 482
481 // Поднятие анкеты 483 // Поднятие анкеты
482 Route::get('кабинет/up/{worker}', [WorkerController::class, 'up'])->name('up'); 484 Route::get('кабинет/up/{worker}', [WorkerController::class, 'up'])->name('up');
483 485
484 // Добавление сертификата 486 // Добавление сертификата
485 Route::get('кабинет/add_sertificate', [WorkerController::class, 'add_serificate'])->name('add_serificate'); 487 Route::get('кабинет/add_sertificate', [WorkerController::class, 'add_serificate'])->name('add_serificate');
486 Route::get('кабинет/delete_sertificate/{doc}', [WorkerController::class, 'delete_sertificate'])->name('delete_sertificate'); 488 Route::get('кабинет/delete_sertificate/{doc}', [WorkerController::class, 'delete_sertificate'])->name('delete_sertificate');
487 489
488 // Добавление документа-диплома 490 // Добавление документа-диплома
489 Route::get('кабинет/add_diplom/{worker}', [WorkerController::class, 'add_diplom'])->name('add_diplom'); 491 Route::get('кабинет/add_diplom/{worker}', [WorkerController::class, 'add_diplom'])->name('add_diplom');
490 Route::post('кабинет/add_diplom', [WorkerController::class, 'add_diplom_save'])->name('dop_info_save'); 492 Route::post('кабинет/add_diplom', [WorkerController::class, 'add_diplom_save'])->name('dop_info_save');
491 493
492 // Добавление стандартного диплома 494 // Добавление стандартного диплома
493 Route::get('кабинет/add_document/{worker}', [WorkerController::class, 'add_document'])->name('add_document'); 495 Route::get('кабинет/add_document/{worker}', [WorkerController::class, 'add_document'])->name('add_document');
494 Route::post('кабинет/add_document/', [WorkerController::class, 'add_document_save'])->name('add_document_save'); 496 Route::post('кабинет/add_document/', [WorkerController::class, 'add_document_save'])->name('add_document_save');
495 Route::get('кабинет/edit_document/{doc}/{worker}', [WorkerController::class, 'edit_document'])->name('edit_document'); 497 Route::get('кабинет/edit_document/{doc}/{worker}', [WorkerController::class, 'edit_document'])->name('edit_document');
496 Route::post('кабинет/edit_document/{doc}', [WorkerController::class, 'edit_document_save'])->name('edit_document_save'); 498 Route::post('кабинет/edit_document/{doc}', [WorkerController::class, 'edit_document_save'])->name('edit_document_save');
497 Route::get('кабинет/delete_document/{doc}', [WorkerController::class, 'delete_document'])->name('delete_document'); 499 Route::get('кабинет/delete_document/{doc}', [WorkerController::class, 'delete_document'])->name('delete_document');
498 500
499 // Отправка сообщения работодателю от соискателя 501 // Отправка сообщения работодателю от соискателя
500 Route::post('сообщение/', [WorkerController::class, 'new_message'])->name('new_message'); 502 Route::post('сообщение/', [WorkerController::class, 'new_message'])->name('new_message');
501 }); 503 });
502 504
503 // Личный кабинет работодателя 505 // Личный кабинет работодателя
504 Route::group([ 506 Route::group([
505 'as' => 'employer.', // имя маршрута, например auth.index 507 'as' => 'employer.', // имя маршрута, например auth.index
506 'prefix' => 'employer', // префикс маршрута, например auth/index 508 'prefix' => 'employer', // префикс маршрута, например auth/index
507 'middleware' => ['auth'], !['is_worker'], 509 'middleware' => ['auth'], !['is_worker'],
508 ], function() { 510 ], function() {
509 // 1 страница - Профиль 511 // 1 страница - Профиль
510 Route::get('cabinet', [EmployerController::class, 'cabinet'])->name('cabinet'); 512 Route::get('cabinet', [EmployerController::class, 'cabinet'])->name('cabinet');
511 Route::post('cabinet/{Employer}', [EmployerController::class, 'cabinet_save'])->name('cabinet_save'); 513 Route::post('cabinet/{Employer}', [EmployerController::class, 'cabinet_save'])->name('cabinet_save');
512 Route::post('flot_add_ajax', [EmployerController::class, 'save_add_flot'])->name('save_add_flot'); 514 Route::post('flot_add_ajax', [EmployerController::class, 'save_add_flot'])->name('save_add_flot');
513 Route::get('flot_delete_ajax/{Flot}', [EmployerController::class, 'delete_flot'])->name('delete_flot'); 515 Route::get('flot_delete_ajax/{Flot}', [EmployerController::class, 'delete_flot'])->name('delete_flot');
514 516
515 // 2 страница - Добавление вакансий 517 // 2 страница - Добавление вакансий
516 Route::get('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancie'])->name('cabinet_vacancie'); 518 Route::get('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancie'])->name('cabinet_vacancie');
517 Route::post('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancy_save'])->name('vacancy_save'); 519 Route::post('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancy_save'])->name('vacancy_save');
518 Route::post('vacancie', [EmployerController::class, 'cabinet_vacancy_save1'])->name('vac_save'); 520 Route::post('vacancie', [EmployerController::class, 'cabinet_vacancy_save1'])->name('vac_save');
519 521
520 // 3 страница - Мои вакансии 522 // 3 страница - Мои вакансии
521 Route::get('cabinet/vacancy_list', [EmployerController::class, 'vacancy_list'])->name('vacancy_list'); 523 Route::get('cabinet/vacancy_list', [EmployerController::class, 'vacancy_list'])->name('vacancy_list');
522 Route::get('cabinet/vacancy/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit'); 524 Route::get('cabinet/vacancy/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit');
523 Route::get('cabinet/vacancy-delete/{ad_employer}', [EmployerController::class, 'vacancy_delete'])->name('vacancy_delete'); 525 Route::get('cabinet/vacancy-delete/{ad_employer}', [EmployerController::class, 'vacancy_delete'])->name('vacancy_delete');
524 Route::get('cabinet/vacancy-up/{ad_employer}', [EmployerController::class, 'vacancy_up'])->name('vacancy_up'); 526 Route::get('cabinet/vacancy-up/{ad_employer}', [EmployerController::class, 'vacancy_up'])->name('vacancy_up');
525 Route::get('cabinet/vacancy-eye/{ad_employer}/{status}', [EmployerController::class, 'vacancy_eye'])->name('vacancy_eye'); 527 Route::get('cabinet/vacancy-eye/{ad_employer}/{status}', [EmployerController::class, 'vacancy_eye'])->name('vacancy_eye');
526 Route::get('cabinet/vacancy-edit/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit'); 528 Route::get('cabinet/vacancy-edit/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit');
527 529
528 // 4 страница - Отклики на вакансии 530 // 4 страница - Отклики на вакансии
529 Route::get('cabinet/answers/{employer}', [EmployerController::class, 'answers'])->name('answers'); 531 Route::get('cabinet/answers/{employer}', [EmployerController::class, 'answers'])->name('answers');
530 Route::get('cabinet/status/{employer}', [EmployerController::class, 'supple_status2'])->name('supple'); 532 Route::get('cabinet/status/{employer}', [EmployerController::class, 'supple_status2'])->name('supple');
531 Route::get('status/{employer}/{ad_response}/{flag}', [EmployerController::class, 'supple_status'])->name('status_msg'); 533 Route::get('status/{employer}/{ad_response}/{flag}', [EmployerController::class, 'supple_status'])->name('status_msg');
532 534
533 // 5 страница - Сообщения 535 // 5 страница - Сообщения
534 Route::get('cabinet/messages/{type_message}', [EmployerController::class, 'messages'])->name('messages'); 536 Route::get('cabinet/messages/{type_message}', [EmployerController::class, 'messages'])->name('messages');
535 Route::get('cabinet/dialog/{user1}/{user2}', [EmployerController::class, 'dialog'])->name('dialog'); 537 Route::get('cabinet/dialog/{user1}/{user2}', [EmployerController::class, 'dialog'])->name('dialog');
536 Route::post('cabinet/send-message', [EmployerController::class, 'send_message'])->name('send_message'); 538 Route::post('cabinet/send-message', [EmployerController::class, 'send_message'])->name('send_message');
537 Route::post('test123', [EmployerController::class, 'test123'])->name('test123'); 539 Route::post('test123', [EmployerController::class, 'test123'])->name('test123');
538 540
539 // 6 страница - Избранный 541 // 6 страница - Избранный
540 Route::get('cabinet/favorites', [EmployerController::class, 'favorites'])->name('favorites'); 542 Route::get('cabinet/favorites', [EmployerController::class, 'favorites'])->name('favorites');
541 543
542 //7 страница - База данных 544 //7 страница - База данных
543 Route::get('cabinet/bd', [EmployerController::class, 'bd'])->name('bd'); 545 Route::get('cabinet/bd', [EmployerController::class, 'bd'])->name('bd');
544 546
545 //8 страница - База резюме 547 //8 страница - База резюме
546 Route::get('cabinet/bd-tupe', [EmployerController::class, 'bd_tupe'])->name('bd-tupe'); 548 Route::get('cabinet/bd-tupe', [EmployerController::class, 'bd_tupe'])->name('bd-tupe');
547 549
548 // 9 рассылка сообщений 550 // 9 рассылка сообщений
549 Route::get('cabinet/send-all-messages', [EmployerController::class, 'send_all_messages'])->name('send_all_messages'); 551 Route::get('cabinet/send-all-messages', [EmployerController::class, 'send_all_messages'])->name('send_all_messages');
550 Route::post('cabinet/send-all-messages/send', [EmployerController::class, 'send_all_post'])->name('send_all_post'); 552 Route::post('cabinet/send-all-messages/send', [EmployerController::class, 'send_all_post'])->name('send_all_post');
551 553
552 // 10 страница FAQ вопросы 554 // 10 страница FAQ вопросы
553 Route::get('cabinet/faq', [EmployerController::class, 'faq'])->name('faq'); 555 Route::get('cabinet/faq', [EmployerController::class, 'faq'])->name('faq');
554 556
555 // 11 страница - Настройка уведомлений 557 // 11 страница - Настройка уведомлений
556 Route::get('cabinet/subscribe', [EmployerController::class, 'subscribe'])->name('subscribe'); 558 Route::get('cabinet/subscribe', [EmployerController::class, 'subscribe'])->name('subscribe');
557 Route::get('cabinet/subscribe/save', [EmployerController::class, 'save_subscribe'])->name('save_subscribe'); 559 Route::get('cabinet/subscribe/save', [EmployerController::class, 'save_subscribe'])->name('save_subscribe');
558 560
559 // 12 страница - Сменить пароль 561 // 12 страница - Сменить пароль
560 Route::get('cabinet/password-reset', [EmployerController::class, 'password_reset'])->name('password_reset'); 562 Route::get('cabinet/password-reset', [EmployerController::class, 'password_reset'])->name('password_reset');
561 Route::get('cabinet/password-reset/new', [EmployerController::class, 'new_password'])->name('new_password'); 563 Route::get('cabinet/password-reset/new', [EmployerController::class, 'new_password'])->name('new_password');
562 564
563 // 13 страница - Удаление профиля 565 // 13 страница - Удаление профиля
564 Route::get('cabinet/delete-people', [EmployerController::class, 'delete_people'])->name('delete_people'); 566 Route::get('cabinet/delete-people', [EmployerController::class, 'delete_people'])->name('delete_people');
565 Route::get('cabinet/action-delete-people', [EmployerController::class, 'action_delete_user'])->name('action_delete_user'); 567 Route::get('cabinet/action-delete-people', [EmployerController::class, 'action_delete_user'])->name('action_delete_user');
566 568
567 // Отправил сообщение 569 // Отправил сообщение
568 Route::post('сообщение/', [EmployerController::class, 'new_message'])->name('new_message'); 570 Route::post('сообщение/', [EmployerController::class, 'new_message'])->name('new_message');
569 }); 571 });
570 572