Commit 31fe4e458f11e29b92941359f4cd44a8f37c58a1
1 parent
df4edc01dc
Exists in
master
and in
1 other branch
Показ проекта заказчику
Showing 28 changed files with 615 additions and 242 deletions Side-by-side Diff
- app/Http/Controllers/Admin/JobTitlesController.php
- app/Http/Controllers/CompanyController.php
- app/Http/Controllers/EmployerController.php
- app/Http/Controllers/MainController.php
- app/Http/Controllers/WorkerController.php
- app/Models/Ad_jobs.php
- app/Models/Job_title.php
- database/migrations/2023_09_08_084707_alter_job_titles3_table.php
- public/js/script-vc.js
- public/js/script.js
- public/js/script0.js
- resources/views/admin/job_titles/form.blade.php
- resources/views/admin/positions/position.blade.php
- resources/views/block_real.blade.php
- resources/views/companies.blade.php
- resources/views/education.blade.php
- resources/views/employers/add_vacancy.blade.php
- resources/views/employers/ajax/list_vacancy.blade.php
- resources/views/employers/edit_vacancy.blade.php
- resources/views/employers/list_vacancy.blade.php
- resources/views/favorite_people.blade.php
- resources/views/index.blade.php
- resources/views/js/modals.blade.php
- resources/views/layout/frontend.blade.php
- resources/views/list_vacancies.blade.php
- resources/views/news-list.blade.php
- resources/views/resume.blade.php
- routes/web.php
app/Http/Controllers/Admin/JobTitlesController.php
... | ... | @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admin; |
5 | 5 | use App\Http\Controllers\Controller; |
6 | 6 | use App\Http\Requests\JobTitlesRequest; |
7 | 7 | use App\Models\Job_title; |
8 | +use App\Models\Positions; | |
8 | 9 | use Illuminate\Http\Request; |
9 | 10 | |
10 | 11 | class JobTitlesController extends Controller |
... | ... | @@ -32,8 +33,9 @@ class JobTitlesController extends Controller |
32 | 33 | orderBy('name')-> |
33 | 34 | active()-> |
34 | 35 | get();*/ |
36 | + $position = Positions::query()->get(); | |
35 | 37 | |
36 | - return view('admin.job_titles.add'); | |
38 | + return view('admin.job_titles.add', compact('position')); | |
37 | 39 | } |
38 | 40 | |
39 | 41 | /** |
... | ... | @@ -67,7 +69,8 @@ class JobTitlesController extends Controller |
67 | 69 | */ |
68 | 70 | public function edit(Job_title $job_title) |
69 | 71 | { |
70 | - return view('admin.job_titles.edit', compact('job_title')); | |
72 | + $position = Positions::query()->get(); | |
73 | + return view('admin.job_titles.edit', compact('job_title', 'position')); | |
71 | 74 | } |
72 | 75 | |
73 | 76 | /** |
app/Http/Controllers/CompanyController.php
app/Http/Controllers/EmployerController.php
... | ... | @@ -114,9 +114,15 @@ class EmployerController extends Controller |
114 | 114 | // Форма добавления вакансий |
115 | 115 | public function cabinet_vacancie() { |
116 | 116 | $id = Auth()->user()->id; |
117 | - $jobs = Job_title::query()->OrderBy('name')->get(); | |
117 | + | |
118 | 118 | $categories = Category::query()->get(); |
119 | 119 | $Positions = Positions::query()->get(); |
120 | + if ($Positions->count()) { | |
121 | + $jobs = Job_title::query()->OrderBy('name')->where('position_id', $Positions[0]->id)->get(); | |
122 | + } else { | |
123 | + $jobs = Job_title::query()->OrderBy('name')->where('position_id', 0)->get(); | |
124 | + } | |
125 | + | |
120 | 126 | $Employer = Employer::query()->with('users')->with('ads')->with('flots')-> |
121 | 127 | WhereHas('users', |
122 | 128 | function (Builder $query) use ($id) {$query->Where('id', $id); |
... | ... | @@ -137,7 +143,7 @@ class EmployerController extends Controller |
137 | 143 | $jobs['job_title_id'] = $params['job_title_id']; |
138 | 144 | $jobs['description'] = $params['description']; |
139 | 145 | $jobs['region'] = $params['city']; |
140 | - $jobs['position_ship'] = $params['position_ship']; | |
146 | + //$titles['position_id'] = $params['position_id']; | |
141 | 147 | unset($params['min_salary']); |
142 | 148 | unset($params['max_salary']); |
143 | 149 | unset($params['flot']); |
... | ... | @@ -148,7 +154,8 @@ class EmployerController extends Controller |
148 | 154 | |
149 | 155 | $id = Ad_employer::create($params)->id; |
150 | 156 | $jobs['ad_employer_id'] = $id; |
151 | - Ad_jobs::create($jobs); | |
157 | + $ad_jobs = Ad_jobs::create($jobs); | |
158 | + | |
152 | 159 | return redirect()->route('employer.vacancy_list'); |
153 | 160 | } |
154 | 161 | |
... | ... | @@ -169,7 +176,8 @@ class EmployerController extends Controller |
169 | 176 | default: $vacancy_list = $vacancy_list->orderBy('id')->orderby('updated_at'); break; |
170 | 177 | } |
171 | 178 | } |
172 | - $vacancy_list = $vacancy_list->get(); | |
179 | + $vacancy_list = $vacancy_list->paginate(4); | |
180 | + | |
173 | 181 | |
174 | 182 | //ajax |
175 | 183 | if ($request->ajax()) { |
... | ... | @@ -182,19 +190,36 @@ class EmployerController extends Controller |
182 | 190 | // Карточка вакансии |
183 | 191 | public function vacancy_edit(Ad_employer $ad_employer) { |
184 | 192 | $id = Auth()->user()->id; |
185 | - $jobs = Job_title::query()->OrderBy('name')->get(); | |
193 | + | |
194 | + $Positions = Positions::query()->get(); | |
195 | + if ($Positions->count()) { | |
196 | + $jobs = Job_title::query()->OrderBy('name')->where('position_id', $Positions[0]->id)->get(); | |
197 | + } else { | |
198 | + $jobs = Job_title::query()->OrderBy('name')->where('position_id', 0)->get(); | |
199 | + } | |
200 | + | |
186 | 201 | $categories = Category::query()->get(); |
187 | 202 | $Employer = Employer::query()->with('users')->with('ads')->with('flots')-> |
188 | 203 | where('user_id', $id)->first(); |
189 | 204 | |
190 | - return view('employers.edit_vacancy', compact('ad_employer', 'categories','Employer', 'jobs')); | |
205 | + return view('employers.edit_vacancy', compact('ad_employer', 'Positions', 'categories','Employer', 'jobs')); | |
191 | 206 | } |
192 | 207 | |
193 | 208 | // Сохранение-редактирование записи |
194 | 209 | public function vacancy_save_me(VacancyRequestEdit $request, Ad_employer $ad_employer) { |
195 | - $all = $request->all(); | |
210 | + $params = $request->all(); | |
196 | 211 | |
197 | - $ad_employer->update($all); | |
212 | + //$jobs['flot'] = $params['flot']; | |
213 | + $jobs['job_title_id'] = $params['job_title_id']; | |
214 | + //$titles['position_id'] = $params['position_id']; | |
215 | + unset($params['job_title_id']); | |
216 | + | |
217 | + $ad_employer->update($params); | |
218 | + | |
219 | + $job_ = Ad_jobs::query()->where('job_title_id', $jobs['job_title_id'])-> | |
220 | + where('ad_employer_id', $ad_employer->id)->first(); | |
221 | + $data = Ad_jobs::find($job_->id); | |
222 | + $ad_jobs = $data->update($jobs); | |
198 | 223 | |
199 | 224 | return redirect()->route('employer.vacancy_list'); |
200 | 225 | } |
... | ... | @@ -680,7 +705,13 @@ class EmployerController extends Controller |
680 | 705 | // Восстановление пароля |
681 | 706 | public function repair_password(Request $request) { |
682 | 707 | $params = $request->get('email'); |
708 | + } | |
683 | 709 | |
710 | + // Избранные люди на корабль | |
711 | + public function selected_people(Request $request) { | |
712 | + $id = $request->get('id'); | |
713 | + $favorite_people = Job_title::query()->where('position_id', $id)->get(); | |
684 | 714 | |
715 | + return view('favorite_people', compact('favorite_people')); | |
685 | 716 | } |
686 | 717 | } |
app/Http/Controllers/MainController.php
... | ... | @@ -41,7 +41,7 @@ class MainController extends Controller |
41 | 41 | |
42 | 42 | $Position = Positions::query()->get(); |
43 | 43 | |
44 | - $BigFlot = Array(); | |
44 | + /*$BigFlot = Array(); | |
45 | 45 | foreach ($Position as $position) { |
46 | 46 | $BigFlot[] = DB::table('ad_jobs')->selectRaw('name, job_titles.id as id_title, count(`ad_jobs`.`id`) as cnt, ad_jobs.position_ship')-> |
47 | 47 | orderBy('job_titles.sort')-> |
... | ... | @@ -51,6 +51,30 @@ class MainController extends Controller |
51 | 51 | get(); |
52 | 52 | } |
53 | 53 | |
54 | + $BigFlot = Array(); | |
55 | + | |
56 | + foreach ($Position as $position) { | |
57 | + | |
58 | + $BigFlot[] = Ad_jobs::query()->with(['job_title' => function($query) { | |
59 | + $query->OrderBy('sort'); | |
60 | + }])->whereHas('job_title', function ($query) use ($position) { | |
61 | + $query->where('position_id', $position->id); | |
62 | + })-> | |
63 | + distinct('job_title_id')-> | |
64 | + get(); | |
65 | + }*/ | |
66 | + | |
67 | + $BigFlot = Array(); | |
68 | + foreach ($Position as $position) { | |
69 | + $BigFlot[] = DB::table('ad_jobs')-> | |
70 | + selectRaw('name, count(`ad_jobs`.`id`) as cnt, job_title_id, job_titles.name')-> | |
71 | + orderByDesc('job_titles.sort')-> | |
72 | + join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> | |
73 | + where('job_titles.position_id', $position->id)-> | |
74 | + groupby('job_title_id')-> | |
75 | + get(); | |
76 | + } | |
77 | + | |
54 | 78 | $employers = employers_main::query()->with('employer')->orderBy('id')->limit(8)->get(); |
55 | 79 | $vacancy = Ad_jobs::query()->with('job_title')->orderBy('position_ship')->get(); |
56 | 80 | return view('index', compact('news', 'categories', 'employers', 'vacancy', 'BigFlot', 'Position')); |
... | ... | @@ -127,7 +151,7 @@ class MainController extends Controller |
127 | 151 | |
128 | 152 | $Position = Positions::query()->get(); |
129 | 153 | |
130 | - $BigFlot = Array(); | |
154 | + /*$BigFlot = Array(); | |
131 | 155 | foreach ($Position as $position) { |
132 | 156 | $War_flot = DB::table('ad_jobs')->selectRaw('name, job_titles.id as id_title, count(`ad_jobs`.`id`) as cnt, ad_jobs.position_ship')-> |
133 | 157 | orderBy('job_titles.sort')-> |
... | ... | @@ -138,6 +162,20 @@ class MainController extends Controller |
138 | 162 | } |
139 | 163 | $War_flot = $War_flot->groupby('job_title_id','position_ship')->get(); |
140 | 164 | $BigFlot[] = $War_flot; |
165 | + }*/ | |
166 | + | |
167 | + $BigFlot = Array(); | |
168 | + foreach ($Position as $position) { | |
169 | + $WarFlot = DB::table('ad_jobs')-> | |
170 | + selectRaw('name, count(`ad_jobs`.`id`) as cnt, job_title_id, job_titles.name')-> | |
171 | + orderByDesc('job_titles.sort')-> | |
172 | + join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> | |
173 | + where('job_titles.position_id', $position->id); | |
174 | + if (($request->has('job')) && ($request->get('job') > 0)) { | |
175 | + $WarFlot = $WarFlot->where('job_title_id', $request->get('job')); | |
176 | + } | |
177 | + $WarFlot = $WarFlot->groupby('job_title_id')->get(); | |
178 | + $BigFlot[] = $WarFlot; | |
141 | 179 | } |
142 | 180 | |
143 | 181 | if ($request->ajax()) { |
app/Http/Controllers/WorkerController.php
... | ... | @@ -103,7 +103,7 @@ class WorkerController extends Controller |
103 | 103 | } |
104 | 104 | |
105 | 105 | $res_count = $resumes->count(); |
106 | - $resumes = $resumes->paginate(6); | |
106 | + $resumes = $resumes->paginate(4); | |
107 | 107 | if ($request->ajax()) { |
108 | 108 | // Условия обставлены |
109 | 109 | if ($request->has('block') && ($request->get('block') == 1)) { |
... | ... | @@ -412,9 +412,7 @@ class WorkerController extends Controller |
412 | 412 | public function register_worker(Request $request) |
413 | 413 | { |
414 | 414 | $params = $request->all(); |
415 | - | |
416 | - | |
417 | - dd($params); | |
415 | + $params['is_worker'] = 1; | |
418 | 416 | |
419 | 417 | $rules = [ |
420 | 418 | 'surname' => ['required', 'string', 'max:255'], |
... | ... | @@ -441,6 +439,30 @@ class WorkerController extends Controller |
441 | 439 | return json_encode(Array("ERROR" => "Error: Не совпадают пароль и подтверждение пароля")); |
442 | 440 | } |
443 | 441 | |
442 | + $haystack = $request->get('password'); | |
443 | + | |
444 | + $specsumbol = Array('!','~', '#', '$', '%', '^', '&', '*', '(', ')', '-', '=', ';', ':', '<', '>', '?'); | |
445 | + $alpha = Array('Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', | |
446 | + 'X', 'C', 'V', 'B', 'N', 'M'); | |
447 | + $spec_bool = false; | |
448 | + $alpha_bool = false; | |
449 | + | |
450 | + foreach ($specsumbol as $it) { | |
451 | + if (strpos($haystack, $it) !== false) { | |
452 | + $spec_bool = true; | |
453 | + } | |
454 | + } | |
455 | + | |
456 | + foreach ($alpha as $it) { | |
457 | + if (strpos($haystack, $it) !== false) { | |
458 | + $alpha_bool = true; | |
459 | + } | |
460 | + } | |
461 | + | |
462 | + if ((!$spec_bool) || (!$alpha_bool)) { | |
463 | + return json_encode(Array("ERROR" => "Error: Нет спецсимволов в пароле, латинские буквы заглавные, а также один из символов: !~#$%^&*()-=;,:<>?")); | |
464 | + } | |
465 | + | |
444 | 466 | if (($request->has('politik')) && ($request->get('politik') == 1)) { |
445 | 467 | $validator = Validator::make($request->all(), $rules, $messages); |
446 | 468 | |
... | ... | @@ -449,10 +471,8 @@ class WorkerController extends Controller |
449 | 471 | } else { |
450 | 472 | $user = $this->create($params); |
451 | 473 | event(new Registered($user)); |
452 | - | |
453 | 474 | Auth::guard()->login($user); |
454 | 475 | } |
455 | - | |
456 | 476 | if ($user) { |
457 | 477 | return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl()));; |
458 | 478 | } else { |
... | ... | @@ -462,11 +482,8 @@ class WorkerController extends Controller |
462 | 482 | } else { |
463 | 483 | return json_encode(Array("ERROR" => "Error3: Вы не согласились с политикой конфидициальности!")); |
464 | 484 | } |
465 | - | |
466 | - | |
467 | 485 | } |
468 | 486 | |
469 | - | |
470 | 487 | // Звездная оценка и ответ |
471 | 488 | public function stars_answer(Request $request) { |
472 | 489 | $params = $request->all(); |
... | ... | @@ -604,6 +621,7 @@ class WorkerController extends Controller |
604 | 621 | public function up(Worker $worker) { |
605 | 622 | $worker->updated_at = Carbon::now(); |
606 | 623 | $worker->save(); |
624 | + // 0 | |
607 | 625 | return redirect()->route('worker.cabinet')->with('success', 'Ваша анкета была поднята выше остальных'); |
608 | 626 | } |
609 | 627 |
app/Models/Ad_jobs.php
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | |
3 | 3 | namespace App\Models; |
4 | 4 | |
5 | +use Filament\Tables\Actions\Position; | |
5 | 6 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | 7 | use Illuminate\Database\Eloquent\Model; |
7 | 8 | |
... | ... | @@ -27,4 +28,8 @@ class Ad_jobs extends Model |
27 | 28 | public function job_title() { |
28 | 29 | return $this->belongsTo(Job_title::class, 'job_title_id'); |
29 | 30 | } |
31 | + | |
32 | + public function positions() { | |
33 | + return $this->belongsToMany(Positions::class, 'job_titles'); | |
34 | + } | |
30 | 35 | } |
app/Models/Job_title.php
database/migrations/2023_09_08_084707_alter_job_titles3_table.php
... | ... | @@ -15,6 +15,7 @@ return new class extends Migration |
15 | 15 | { |
16 | 16 | Schema::table('job_titles', function (Blueprint $table) { |
17 | 17 | $table->integer('sort')->default(100); |
18 | + $table->integer('position_id')->nullable(false); | |
18 | 19 | }); |
19 | 20 | } |
20 | 21 | |
... | ... | @@ -27,6 +28,7 @@ return new class extends Migration |
27 | 28 | { |
28 | 29 | Schema::table('job_titles', function (Blueprint $table) { |
29 | 30 | $table->dropColumn('sort'); |
31 | + $table->dropColumn('position_id'); | |
30 | 32 | }); |
31 | 33 | } |
32 | 34 | }; |
public/js/script-vc.js
... | ... | @@ -0,0 +1,164 @@ |
1 | +let scripts = function () { | |
2 | + | |
3 | + $('.js-toggle').on('click', function () { | |
4 | + $(this).toggleClass('active'); | |
5 | + }); | |
6 | + $('.js-parent-toggle').on('click', function () { | |
7 | + $(this).parent().toggleClass('active'); | |
8 | + }); | |
9 | + $('.js-parent-remove').on('click', function () { | |
10 | + $(this).parent().remove(); | |
11 | + }); | |
12 | + $('.js-menu-toggle').on('click', function () { | |
13 | + window.scrollTo(0, 0); | |
14 | + $('#body').toggleClass('menu-is-actived'); | |
15 | + }); | |
16 | + $('.js-cookies-close').on('click', function () { | |
17 | + $('#body').removeClass('cookies-is-actived'); | |
18 | + }); | |
19 | + $('.js-works-edit').on('click', function () { | |
20 | + $(this).parent().parent().parent().addClass('active'); | |
21 | + }); | |
22 | + $('.js-works-remove').on('click', function () { | |
23 | + $(this).parent().parent().parent().parent().remove(); | |
24 | + }); | |
25 | + | |
26 | + $('[data-tab]').on('click', function () { | |
27 | + $('[data-tab]').removeClass('active'); | |
28 | + $('[data-body]').removeClass('showed'); | |
29 | + $(this).addClass('active'); | |
30 | + var id = $(this).data('tab'); | |
31 | + $('[data-body=' + id + ']').addClass('showed'); | |
32 | + }); | |
33 | + | |
34 | + $('.js-password-show').on('click', function () { | |
35 | + $(this).parent().addClass('active'); | |
36 | + $(this).parent().parent().find('input').attr('type', 'text'); | |
37 | + }); | |
38 | + | |
39 | + $('.js-password-hide').on('click', function () { | |
40 | + $(this).parent().removeClass('active'); | |
41 | + $(this).parent().parent().find('input').attr('type', 'password'); | |
42 | + }); | |
43 | + | |
44 | + let checkScrollTop = function () { | |
45 | + if ($(document).scrollTop() == 0) { | |
46 | + $('#body').removeClass('begin'); | |
47 | + } else { | |
48 | + $('#body').addClass('begin'); | |
49 | + } | |
50 | + } | |
51 | + checkScrollTop(); | |
52 | + $(document).on('scroll', function () { | |
53 | + checkScrollTop(); | |
54 | + }); | |
55 | + | |
56 | + let closeAll = function () { | |
57 | + $('.js-toggle').removeClass('active'); | |
58 | + $('.js-parent-toggle').parent().removeClass('active'); | |
59 | + $('#body').removeClass('menu-is-actived'); | |
60 | + $('#body').removeClass('cookies-is-actived'); | |
61 | + } | |
62 | + | |
63 | + $(document).keyup(function (e) { | |
64 | + if (e.key === "Escape") { | |
65 | + closeAll(); | |
66 | + } | |
67 | + }); | |
68 | + | |
69 | + $('.js-scroll-to').bind('click', function (e) { | |
70 | + let anchor = $(this); | |
71 | + $('html,body').stop().animate({ | |
72 | + scrollTop: $(anchor.attr('href')).offset().top | |
73 | + }, 300); | |
74 | + e.preventDefault(); | |
75 | + }); | |
76 | + | |
77 | + if ($('[type=tel]').is('[type=tel]')) { | |
78 | + $('[type=tel]').mask('+7 (999) 999-99-99'); | |
79 | + } | |
80 | + | |
81 | + if ($('.js-select2').is('.js-select2')) { | |
82 | + $('.js-select2').select2(); | |
83 | + } | |
84 | + | |
85 | + const starRating = document.querySelectorAll(".js-stars"); | |
86 | + if (starRating.length) { | |
87 | + starRating.forEach(item => { | |
88 | + new StarRating(item); | |
89 | + }); | |
90 | + } | |
91 | + | |
92 | + const checkboxes = document.querySelectorAll(".checkbox"); | |
93 | + if (checkboxes.length) { | |
94 | + checkboxes.forEach(checkbox => { | |
95 | + const input = checkbox.querySelector("input"); | |
96 | + checkbox.addEventListener("input", () => { | |
97 | + if (input.checked) { | |
98 | + input.setAttribute("checked", ""); | |
99 | + } else { | |
100 | + input.removeAttribute("checked"); | |
101 | + } | |
102 | + }); | |
103 | + }); | |
104 | + } | |
105 | + | |
106 | +}; | |
107 | + | |
108 | +let swipers = function () { | |
109 | + | |
110 | + if ($('.js-employer-swiper').is('.js-employer-swiper')) { | |
111 | + let slider = new Swiper('.js-employer-swiper', { | |
112 | + autoplay: { | |
113 | + delay: 5000, | |
114 | + }, | |
115 | + pagination: { | |
116 | + el: '.swiper-pagination', | |
117 | + clickable: true | |
118 | + }, | |
119 | + breakpoints: { | |
120 | + 768: { | |
121 | + slidesPerView: 2, | |
122 | + }, | |
123 | + 992: { | |
124 | + slidesPerView: 3, | |
125 | + }, | |
126 | + 1280: { | |
127 | + slidesPerView: 4, | |
128 | + }, | |
129 | + } | |
130 | + }); | |
131 | + } | |
132 | + | |
133 | + if ($('.js-news-swiper').is('.js-news-swiper')) { | |
134 | + let slider = new Swiper('.js-news-swiper', { | |
135 | + spaceBetween: 20, | |
136 | + pagination: { | |
137 | + el: '.swiper-pagination', | |
138 | + clickable: true | |
139 | + }, | |
140 | + navigation: { | |
141 | + prevEl: '.js-news-swiper-button-prev', | |
142 | + nextEl: '.js-news-swiper-button-next', | |
143 | + }, | |
144 | + breakpoints: { | |
145 | + 768: { | |
146 | + slidesPerView: 2, | |
147 | + }, | |
148 | + 992: { | |
149 | + slidesPerView: 3, | |
150 | + }, | |
151 | + } | |
152 | + }); | |
153 | + } | |
154 | + | |
155 | +}; | |
156 | + | |
157 | +document.addEventListener("DOMContentLoaded", () => { | |
158 | + scripts(); | |
159 | + swipers(); | |
160 | +}); | |
161 | + | |
162 | +$(window).resize(function () { | |
163 | + swipers(); | |
164 | +}); |
public/js/script.js
... | ... | @@ -1,173 +0,0 @@ |
1 | -let scripts = function () { | |
2 | - | |
3 | - $('.js-toggle').on('click', function () { | |
4 | - $(this).toggleClass('active'); | |
5 | - }); | |
6 | - $('.js-parent-toggle').on('click', function () { | |
7 | - $(this).parent().toggleClass('active'); | |
8 | - }); | |
9 | - $('.js-parent-remove').on('click', function () { | |
10 | - $(this).parent().remove(); | |
11 | - }); | |
12 | - $('.js-menu-toggle').on('click', function () { | |
13 | - window.scrollTo(0, 0); | |
14 | - $('#body').toggleClass('menu-is-actived'); | |
15 | - }); | |
16 | - $('.js-cookies-close').on('click', function () { | |
17 | - $('#body').removeClass('cookies-is-actived'); | |
18 | - }); | |
19 | - $('.js-works-edit').on('click', function () { | |
20 | - $(this).parent().parent().parent().addClass('active'); | |
21 | - }); | |
22 | - $('.js-works-remove').on('click', function () { | |
23 | - $(this).parent().parent().parent().parent().remove(); | |
24 | - }); | |
25 | - | |
26 | - $('[data-tab]').on('click', function () { | |
27 | - $('[data-tab]').removeClass('active'); | |
28 | - $('[data-body]').removeClass('showed'); | |
29 | - $(this).addClass('active'); | |
30 | - var id = $(this).data('tab'); | |
31 | - $('[data-body=' + id + ']').addClass('showed'); | |
32 | - }); | |
33 | - | |
34 | - $('.js-password-show').on('click', function () { | |
35 | - $(this).parent().addClass('active'); | |
36 | - $(this).parent().parent().find('input').attr('type', 'text'); | |
37 | - }); | |
38 | - | |
39 | - $('.js-password-hide').on('click', function () { | |
40 | - $(this).parent().removeClass('active'); | |
41 | - $(this).parent().parent().find('input').attr('type', 'password'); | |
42 | - }); | |
43 | - | |
44 | - let checkScrollTop = function () { | |
45 | - if ($(document).scrollTop() == 0) { | |
46 | - $('#body').removeClass('begin'); | |
47 | - } else { | |
48 | - $('#body').addClass('begin'); | |
49 | - } | |
50 | - } | |
51 | - checkScrollTop(); | |
52 | - $(document).on('scroll', function () { | |
53 | - checkScrollTop(); | |
54 | - }); | |
55 | - | |
56 | - let closeAll = function () { | |
57 | - $('.js-toggle').removeClass('active'); | |
58 | - $('.js-parent-toggle').parent().removeClass('active'); | |
59 | - $('#body').removeClass('menu-is-actived'); | |
60 | - $('#body').removeClass('cookies-is-actived'); | |
61 | - } | |
62 | - | |
63 | - $(document).keyup(function (e) { | |
64 | - if (e.key === "Escape") { | |
65 | - closeAll(); | |
66 | - } | |
67 | - }); | |
68 | - | |
69 | - $('.js-scroll-to').bind('click', function (e) { | |
70 | - let anchor = $(this); | |
71 | - $('html,body').stop().animate({ | |
72 | - scrollTop: $(anchor.attr('href')).offset().top | |
73 | - }, 300); | |
74 | - e.preventDefault(); | |
75 | - }); | |
76 | - | |
77 | - if ($('[type=tel]').is('[type=tel]')) { | |
78 | - $('[type=tel]').mask('+7 (999) 999-99-99'); | |
79 | - } | |
80 | - | |
81 | - if ($('.js-select2').is('.js-select2')) { | |
82 | - $('.js-select2').select2(); | |
83 | - } | |
84 | - | |
85 | - const starRating = document.querySelectorAll(".js-stars"); | |
86 | - if (starRating.length) { | |
87 | - starRating.forEach(item => { | |
88 | - new StarRating(item); | |
89 | - }); | |
90 | - } | |
91 | - | |
92 | - // cookies | |
93 | - const cookieItems = document.querySelectorAll(".js-ck"); | |
94 | - if (cookieItems.length) { | |
95 | - cookieItems.forEach(item => { | |
96 | - const id = item.dataset.id; | |
97 | - const like = item.querySelector(".like"); | |
98 | - const checkLike = function () { | |
99 | - if (like.classList.contains("active")) { | |
100 | - Cookies.set('favor_vacan-'+id, id); | |
101 | - } else { | |
102 | - Cookies.remove(id); | |
103 | - } | |
104 | - } | |
105 | - like.addEventListener("click", () => { | |
106 | - checkLike(); | |
107 | - }); | |
108 | - if (Cookies.get('favor_vacan-'+id) == id) { | |
109 | - like.classList.add("active"); | |
110 | - } | |
111 | - }); | |
112 | - } | |
113 | - console.log(Cookies.get()); | |
114 | - | |
115 | -}; | |
116 | - | |
117 | -let swipers = function () { | |
118 | - | |
119 | - if ($('.js-employer-swiper').is('.js-employer-swiper')) { | |
120 | - let slider = new Swiper('.js-employer-swiper', { | |
121 | - autoplay: { | |
122 | - delay: 5000, | |
123 | - }, | |
124 | - pagination: { | |
125 | - el: '.swiper-pagination', | |
126 | - clickable: true | |
127 | - }, | |
128 | - breakpoints: { | |
129 | - 768: { | |
130 | - slidesPerView: 2, | |
131 | - }, | |
132 | - 992: { | |
133 | - slidesPerView: 3, | |
134 | - }, | |
135 | - 1280: { | |
136 | - slidesPerView: 4, | |
137 | - }, | |
138 | - } | |
139 | - }); | |
140 | - } | |
141 | - | |
142 | - if ($('.js-news-swiper').is('.js-news-swiper')) { | |
143 | - let slider = new Swiper('.js-news-swiper', { | |
144 | - spaceBetween: 20, | |
145 | - pagination: { | |
146 | - el: '.swiper-pagination', | |
147 | - clickable: true | |
148 | - }, | |
149 | - navigation: { | |
150 | - prevEl: '.js-news-swiper-button-prev', | |
151 | - nextEl: '.js-news-swiper-button-next', | |
152 | - }, | |
153 | - breakpoints: { | |
154 | - 768: { | |
155 | - slidesPerView: 2, | |
156 | - }, | |
157 | - 992: { | |
158 | - slidesPerView: 3, | |
159 | - }, | |
160 | - } | |
161 | - }); | |
162 | - } | |
163 | - | |
164 | -}; | |
165 | - | |
166 | -document.addEventListener("DOMContentLoaded", () => { | |
167 | - scripts(); | |
168 | - swipers(); | |
169 | -}); | |
170 | - | |
171 | -$(window).resize(function () { | |
172 | - swipers(); | |
173 | -}); |
public/js/script0.js
... | ... | @@ -0,0 +1,173 @@ |
1 | +let scripts = function () { | |
2 | + | |
3 | + $('.js-toggle').on('click', function () { | |
4 | + $(this).toggleClass('active'); | |
5 | + }); | |
6 | + $('.js-parent-toggle').on('click', function () { | |
7 | + $(this).parent().toggleClass('active'); | |
8 | + }); | |
9 | + $('.js-parent-remove').on('click', function () { | |
10 | + $(this).parent().remove(); | |
11 | + }); | |
12 | + $('.js-menu-toggle').on('click', function () { | |
13 | + window.scrollTo(0, 0); | |
14 | + $('#body').toggleClass('menu-is-actived'); | |
15 | + }); | |
16 | + $('.js-cookies-close').on('click', function () { | |
17 | + $('#body').removeClass('cookies-is-actived'); | |
18 | + }); | |
19 | + $('.js-works-edit').on('click', function () { | |
20 | + $(this).parent().parent().parent().addClass('active'); | |
21 | + }); | |
22 | + $('.js-works-remove').on('click', function () { | |
23 | + $(this).parent().parent().parent().parent().remove(); | |
24 | + }); | |
25 | + | |
26 | + $('[data-tab]').on('click', function () { | |
27 | + $('[data-tab]').removeClass('active'); | |
28 | + $('[data-body]').removeClass('showed'); | |
29 | + $(this).addClass('active'); | |
30 | + var id = $(this).data('tab'); | |
31 | + $('[data-body=' + id + ']').addClass('showed'); | |
32 | + }); | |
33 | + | |
34 | + $('.js-password-show').on('click', function () { | |
35 | + $(this).parent().addClass('active'); | |
36 | + $(this).parent().parent().find('input').attr('type', 'text'); | |
37 | + }); | |
38 | + | |
39 | + $('.js-password-hide').on('click', function () { | |
40 | + $(this).parent().removeClass('active'); | |
41 | + $(this).parent().parent().find('input').attr('type', 'password'); | |
42 | + }); | |
43 | + | |
44 | + let checkScrollTop = function () { | |
45 | + if ($(document).scrollTop() == 0) { | |
46 | + $('#body').removeClass('begin'); | |
47 | + } else { | |
48 | + $('#body').addClass('begin'); | |
49 | + } | |
50 | + } | |
51 | + checkScrollTop(); | |
52 | + $(document).on('scroll', function () { | |
53 | + checkScrollTop(); | |
54 | + }); | |
55 | + | |
56 | + let closeAll = function () { | |
57 | + $('.js-toggle').removeClass('active'); | |
58 | + $('.js-parent-toggle').parent().removeClass('active'); | |
59 | + $('#body').removeClass('menu-is-actived'); | |
60 | + $('#body').removeClass('cookies-is-actived'); | |
61 | + } | |
62 | + | |
63 | + $(document).keyup(function (e) { | |
64 | + if (e.key === "Escape") { | |
65 | + closeAll(); | |
66 | + } | |
67 | + }); | |
68 | + | |
69 | + $('.js-scroll-to').bind('click', function (e) { | |
70 | + let anchor = $(this); | |
71 | + $('html,body').stop().animate({ | |
72 | + scrollTop: $(anchor.attr('href')).offset().top | |
73 | + }, 300); | |
74 | + e.preventDefault(); | |
75 | + }); | |
76 | + | |
77 | + if ($('[type=tel]').is('[type=tel]')) { | |
78 | + $('[type=tel]').mask('+7 (999) 999-99-99'); | |
79 | + } | |
80 | + | |
81 | + if ($('.js-select2').is('.js-select2')) { | |
82 | + $('.js-select2').select2(); | |
83 | + } | |
84 | + | |
85 | + const starRating = document.querySelectorAll(".js-stars"); | |
86 | + if (starRating.length) { | |
87 | + starRating.forEach(item => { | |
88 | + new StarRating(item); | |
89 | + }); | |
90 | + } | |
91 | + | |
92 | + // cookies | |
93 | + const cookieItems = document.querySelectorAll(".js-ck"); | |
94 | + if (cookieItems.length) { | |
95 | + cookieItems.forEach(item => { | |
96 | + const id = item.dataset.id; | |
97 | + const like = item.querySelector(".like"); | |
98 | + const checkLike = function () { | |
99 | + if (like.classList.contains("active")) { | |
100 | + Cookies.set('favor_vacan-'+id, id); | |
101 | + } else { | |
102 | + Cookies.remove(id); | |
103 | + } | |
104 | + } | |
105 | + like.addEventListener("click", () => { | |
106 | + checkLike(); | |
107 | + }); | |
108 | + if (Cookies.get('favor_vacan-'+id) == id) { | |
109 | + like.classList.add("active"); | |
110 | + } | |
111 | + }); | |
112 | + } | |
113 | + console.log(Cookies.get()); | |
114 | + | |
115 | +}; | |
116 | + | |
117 | +let swipers = function () { | |
118 | + | |
119 | + if ($('.js-employer-swiper').is('.js-employer-swiper')) { | |
120 | + let slider = new Swiper('.js-employer-swiper', { | |
121 | + autoplay: { | |
122 | + delay: 5000, | |
123 | + }, | |
124 | + pagination: { | |
125 | + el: '.swiper-pagination', | |
126 | + clickable: true | |
127 | + }, | |
128 | + breakpoints: { | |
129 | + 768: { | |
130 | + slidesPerView: 2, | |
131 | + }, | |
132 | + 992: { | |
133 | + slidesPerView: 3, | |
134 | + }, | |
135 | + 1280: { | |
136 | + slidesPerView: 4, | |
137 | + }, | |
138 | + } | |
139 | + }); | |
140 | + } | |
141 | + | |
142 | + if ($('.js-news-swiper').is('.js-news-swiper')) { | |
143 | + let slider = new Swiper('.js-news-swiper', { | |
144 | + spaceBetween: 20, | |
145 | + pagination: { | |
146 | + el: '.swiper-pagination', | |
147 | + clickable: true | |
148 | + }, | |
149 | + navigation: { | |
150 | + prevEl: '.js-news-swiper-button-prev', | |
151 | + nextEl: '.js-news-swiper-button-next', | |
152 | + }, | |
153 | + breakpoints: { | |
154 | + 768: { | |
155 | + slidesPerView: 2, | |
156 | + }, | |
157 | + 992: { | |
158 | + slidesPerView: 3, | |
159 | + }, | |
160 | + } | |
161 | + }); | |
162 | + } | |
163 | + | |
164 | +}; | |
165 | + | |
166 | +document.addEventListener("DOMContentLoaded", () => { | |
167 | + scripts(); | |
168 | + swipers(); | |
169 | +}); | |
170 | + | |
171 | +$(window).resize(function () { | |
172 | + swipers(); | |
173 | +}); |
resources/views/admin/job_titles/form.blade.php
... | ... | @@ -26,6 +26,21 @@ |
26 | 26 | </label><br> |
27 | 27 | |
28 | 28 | <label class="block text-sm"> |
29 | + <span class="text-gray-700 dark:text-gray-400">Папка</span> | |
30 | + | |
31 | + @php | |
32 | + $position_id = old('position_id') ?? $job_title->position_id ?? 0; | |
33 | + @endphp | |
34 | + <select name="position_id" class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | |
35 | + title="Родитель"> | |
36 | + <option value="">Без родителя</option> | |
37 | + @foreach ($position as $it) | |
38 | + <option value="{{ $it->id }}" @if ($it->id == $position_id) selected @endif>{{ $it->name }}</option> | |
39 | + @endforeach | |
40 | + </select> | |
41 | + </label><br> | |
42 | + | |
43 | + <label class="block text-sm"> | |
29 | 44 | <span class="text-gray-700 dark:text-gray-400">Сортировка</span> |
30 | 45 | @php |
31 | 46 | $sort_num = 100; |
resources/views/admin/positions/position.blade.php
resources/views/block_real.blade.php
... | ... | @@ -5,14 +5,15 @@ |
5 | 5 | @if ($flot->count()) |
6 | 6 | @foreach ($flot as $key => $cat) |
7 | 7 | @if ($k == 0) |
8 | - <div class="vacancies__list-label">{{ $cat->position_ship }}</div> | |
8 | + <div class="vacancies__list-label">{{ $position->name }}</div> | |
9 | 9 | @endif |
10 | - <a href="{{ route('list-vacancies', ['job' => $cat->id_title]) }}" class="vacancies__item"> | |
11 | - <span style="border-color:{{$colors[$i]}}"> | |
12 | - <b>{{ $cat->name }}</b> | |
13 | - <i>Вакансий: <span>{{ $cat->cnt }}</span></i> | |
14 | - </span> | |
15 | - </a> | |
10 | + | |
11 | + <a href="{{ route('list-vacancies', ['job' => $cat->job_title_id]) }}" class="vacancies__item"> | |
12 | + <span style="border-color:{{$colors[$i]}}"> | |
13 | + <b>{{ $cat->name }}</b> | |
14 | + <i>Вакансий: <span>{{ $cat->cnt }}</span></i> | |
15 | + </span> | |
16 | + </a> | |
16 | 17 | |
17 | 18 | @php |
18 | 19 | $i++; |
resources/views/companies.blade.php
... | ... | @@ -93,7 +93,7 @@ |
93 | 93 | <div class="container"> |
94 | 94 | <div class="main__employers"> |
95 | 95 | <div class="filters"> |
96 | - <div class="filters__label">Показано @if ($count_emps < 4) 1 - {{ $count_emps }} @else 1 – 4 @endif из {{ $count_emps }} результатов поиска</div> | |
96 | + <div class="filters__label">Показано {{ $emps->firstItem() }} – {{ $emps->lastItem() }} из {{ $count_emps }} результатов поиска</div> | |
97 | 97 | <div class="filters__body"> |
98 | 98 | <div class="select filters__select"> |
99 | 99 | <select class="js-select2" id="sort_ajax" name="sort_ajax"> |
... | ... | @@ -151,9 +151,11 @@ |
151 | 151 | </div> |
152 | 152 | |
153 | 153 | {{ $emps->appends($_GET)->links('paginate') }} |
154 | + | |
154 | 155 | @else |
155 | 156 | <H2>Нет данных</H2> |
156 | 157 | @endif |
158 | + | |
157 | 159 | </div> |
158 | 160 | <div class="main__employers-body" data-body="2" id="block_2" name="block_2"> |
159 | 161 | @if ($emps->count()) |
resources/views/education.blade.php
... | ... | @@ -74,7 +74,7 @@ |
74 | 74 | <main class="main"> |
75 | 75 | <div class="container"> |
76 | 76 | <div class="filters"> |
77 | - <div class="filters__label">Показано 1 – @if($count_edu < 6) {{ $count_edu }}@else 6 @endif из {{ $count_edu }} результатов поиска</div> | |
77 | + <div class="filters__label">Показано {{ $educations->firstItem() }} – {{ $educations->lastItem() }} из {{ $count_edu }} результатов поиска</div> | |
78 | 78 | <div class="filters__body"> |
79 | 79 | <div class="select filters__select"> |
80 | 80 | <select class="js-select2" id="sort_ajax" name="sort_ajax"> |
... | ... | @@ -88,7 +88,6 @@ |
88 | 88 | </div> |
89 | 89 | </div> |
90 | 90 | |
91 | - | |
92 | 91 | <div class="main__ads" id="block" name="block"> |
93 | 92 | @if ($educations->count()) |
94 | 93 | @foreach($educations as $edu) |
resources/views/employers/add_vacancy.blade.php
1 | 1 | @extends('layout.frontend', ['title' => 'Добавление вакансии РекаМоре']) |
2 | 2 | |
3 | 3 | @section('scripts') |
4 | + <script> | |
5 | + console.log('Приближаемся к системе, нас рой тут...'); | |
6 | + $(document).on('change', '#position_id', function() { | |
7 | + var this_ = $(this); | |
8 | + var val_ = this_.val(); | |
9 | + var ajax_ = $('#job_title_id'); | |
10 | + | |
11 | + console.log('Создания списка людей, которые поднимутся на корабль...'); | |
12 | + | |
13 | + $.ajax({ | |
14 | + type: "GET", | |
15 | + url: "{{ route('employer.selected_people') }}", | |
16 | + data: "id="+val_, | |
17 | + success: function (data) { | |
18 | + console.log('Ответка пришла'); | |
19 | + console.log('Список избранных людей создан'); | |
20 | + ajax_.html(data); | |
21 | + }, | |
22 | + headers: { | |
23 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
24 | + }, | |
25 | + error: function (data) { | |
26 | + console.log('Обрыв связи'); | |
27 | + console.log('Error: ' + data); | |
28 | + } | |
29 | + }); | |
30 | + }); | |
31 | + </script> | |
4 | 32 | @endsection |
5 | 33 | @section('content') |
6 | 34 | <section class="cabinet"> |
... | ... | @@ -44,6 +72,25 @@ |
44 | 72 | @enderror |
45 | 73 | </div> |
46 | 74 | </div> |
75 | + | |
76 | + <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> | |
77 | + <label class="form-group__label">Позиция на корабле</label> | |
78 | + <div class="form-group__item"> | |
79 | + <div class="select"> | |
80 | + <select class="js-select2" name="position_id" id="position_id"> | |
81 | + @foreach ($Positions as $it) | |
82 | + <option value="{{ $it->id }}">{{ $it->name }}</option> | |
83 | + @endforeach | |
84 | + </select> | |
85 | + @error('postion_id') | |
86 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
87 | + {{ $message }} | |
88 | + </span> | |
89 | + @enderror | |
90 | + </div> | |
91 | + </div> | |
92 | + </div> | |
93 | + | |
47 | 94 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> |
48 | 95 | <label class="form-group__label">Должность соискателя</label> |
49 | 96 | <div class="form-group__item"> |
... | ... | @@ -95,24 +142,6 @@ |
95 | 142 | </div> |
96 | 143 | |
97 | 144 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> |
98 | - <label class="form-group__label">Позиция на корабле</label> | |
99 | - <div class="form-group__item"> | |
100 | - <div class="select"> | |
101 | - <select class="js-select2" name="position_ship" id="position_ship"> | |
102 | - @foreach ($Positions as $it) | |
103 | - <option value="{{ $it->name }}">{{ $it->name }}</option> | |
104 | - @endforeach | |
105 | - </select> | |
106 | - @error('postion_ship') | |
107 | - <span class="text-xs text-red-600 dark:text-red-400"> | |
108 | - {{ $message }} | |
109 | - </span> | |
110 | - @enderror | |
111 | - </div> | |
112 | - </div> | |
113 | - </div> | |
114 | - | |
115 | - <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> | |
116 | 145 | <label class="form-group__label">Телефон</label> |
117 | 146 | <div class="form-group__item"> |
118 | 147 | <input type="text" class="input" name="telephone" id="telephone" value="{{ old('telephone') ?? $Employer[0]->telephone ?? '' }}" placeholder="Свой телефон"> |
resources/views/employers/ajax/list_vacancy.blade.php
resources/views/employers/edit_vacancy.blade.php
1 | 1 | @extends('layout.frontend', ['title' => 'Редактирование вакансии РекаМоре']) |
2 | 2 | |
3 | 3 | @section('scripts') |
4 | + <script> | |
5 | + console.log('Приближаемся к системе, нас рой тут...'); | |
6 | + $(document).on('change', '#position_id', function() { | |
7 | + var this_ = $(this); | |
8 | + var val_ = this_.val(); | |
9 | + var ajax_ = $('#job_title_id'); | |
4 | 10 | |
11 | + console.log('Создания списка людей, которые поднимутся на корабль...'); | |
12 | + | |
13 | + $.ajax({ | |
14 | + type: "GET", | |
15 | + url: "{{ route('employer.selected_people') }}", | |
16 | + data: "id="+val_, | |
17 | + success: function (data) { | |
18 | + console.log('Ответка пришла'); | |
19 | + console.log('Список избранных людей создан'); | |
20 | + ajax_.html(data); | |
21 | + }, | |
22 | + headers: { | |
23 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
24 | + }, | |
25 | + error: function (data) { | |
26 | + console.log('Обрыв связи'); | |
27 | + console.log('Error: ' + data); | |
28 | + } | |
29 | + }); | |
30 | + }); | |
31 | + </script> | |
5 | 32 | @endsection |
6 | 33 | @section('content') |
7 | 34 | <section class="cabinet"> |
... | ... | @@ -47,6 +74,24 @@ |
47 | 74 | </div> |
48 | 75 | |
49 | 76 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> |
77 | + <label class="form-group__label">Позиция на корабле</label> | |
78 | + <div class="form-group__item"> | |
79 | + <div class="select"> | |
80 | + <select class="js-select2" name="position_id" id="position_id"> | |
81 | + @foreach ($Positions as $it) | |
82 | + <option value="{{ $it->id }}">{{ $it->name }}</option> | |
83 | + @endforeach | |
84 | + </select> | |
85 | + @error('postion_id') | |
86 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
87 | + {{ $message }} | |
88 | + </span> | |
89 | + @enderror | |
90 | + </div> | |
91 | + </div> | |
92 | + </div> | |
93 | + | |
94 | + <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> | |
50 | 95 | <label class="form-group__label">Должность соискателя</label> |
51 | 96 | <div class="form-group__item"> |
52 | 97 | <div class="select"> |
resources/views/employers/list_vacancy.blade.php
resources/views/favorite_people.blade.php
resources/views/index.blade.php
... | ... | @@ -103,10 +103,8 @@ |
103 | 103 | <span>Скрыть</span> |
104 | 104 | </button>--> |
105 | 105 | <div class="vacancies__list" id="block_ajax" name="block_ajax"> |
106 | - | |
107 | 106 | @foreach ($BigFlot as $key => $flot) |
108 | 107 | <div class="vacancies__list-col"> |
109 | - | |
110 | 108 | @include('block_real', ['flot' => $flot, 'position' => $Position[$key]]) |
111 | 109 | </div> |
112 | 110 | @endforeach |
resources/views/js/modals.blade.php
... | ... | @@ -41,7 +41,7 @@ |
41 | 41 | var field_login = $('#email_worker'); |
42 | 42 | var field_pwd = $('#password_worker'); |
43 | 43 | var field_confirm_pwd = $('#password_confirmation_worker'); |
44 | - var field_politik_worker = $('#politik_worker'); | |
44 | + var field_politik_worker = $('#politik'); | |
45 | 45 | var field_telephone_worker = $('#telephone_worker'); |
46 | 46 | var field_job_titles_worker = $('#job_titles_worker'); |
47 | 47 | var field_surname_worker = $('#surname_worker'); |
... | ... | @@ -59,6 +59,14 @@ |
59 | 59 | var surname2 = field_surname2_worker.val(); |
60 | 60 | |
61 | 61 | |
62 | + if (field_politik_worker.attr('checked')) { | |
63 | + console.log('politik=1'); | |
64 | + politik = 1; | |
65 | + } else { | |
66 | + politik = 0; | |
67 | + console.log('politik=0'); | |
68 | + } | |
69 | + | |
62 | 70 | console.log('login: '+login+' password: '+pwd); |
63 | 71 | |
64 | 72 | $.ajax({ |
... | ... | @@ -118,7 +126,13 @@ |
118 | 126 | |
119 | 127 | console.log('login: '+login+' password: '+pwd); |
120 | 128 | |
121 | - | |
129 | + if (field_politik_employer.attr('checked')) { | |
130 | + console.log('politik=1'); | |
131 | + politik = 1; | |
132 | + } else { | |
133 | + politik = 0; | |
134 | + console.log('politik=0'); | |
135 | + } | |
122 | 136 | $.ajax({ |
123 | 137 | type: "GET", |
124 | 138 | url: "{{ route('register_employer') }}", |
... | ... | @@ -138,7 +152,6 @@ |
138 | 152 | $('#messages_error_reg').html(d['ERROR']); |
139 | 153 | } |
140 | 154 | console.log(d['REDIRECT']); |
141 | - | |
142 | 155 | }, |
143 | 156 | headers: { |
144 | 157 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
resources/views/layout/frontend.blade.php
... | ... | @@ -277,7 +277,7 @@ |
277 | 277 | <script src="{{ asset('js/jquery.fancybox.js') }}"></script> |
278 | 278 | <script src="{{ asset('js/jquery.select2.js') }}"></script> |
279 | 279 | <script src="{{ asset('js/swiper.js') }}"></script> |
280 | -<script src="{{ asset('js/script145.js') }}"></script> | |
280 | +<script src="{{ asset('js/script-vc.js') }}"></script> | |
281 | 281 | <script src="{{ asset('js/star-rating.min.js') }}"></script> |
282 | 282 | <script> |
283 | 283 | var getUrlParameter = function getUrlParameter(sParam) { |
resources/views/list_vacancies.blade.php
... | ... | @@ -161,7 +161,7 @@ |
161 | 161 | <h2 class="main__vacancies-title" id="title_head" name="title_head">Все категории</h2> |
162 | 162 | @endif |
163 | 163 | <div class="filters main__vacancies-filters"> |
164 | - <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> | |
164 | + <div class="filters__label" id="col-vo" name="col-vo">Показано {{ $Query->firstItem() }} – {{ $Query->lastItem() }} из @isset($Query_count) {{ $Query_count }} @else 0 @endisset результатов поиска</div> | |
165 | 165 | <div class="filters__body"> |
166 | 166 | <div class="select filters__select"> |
167 | 167 | <select class="js-select2" id="sort_ajax" name="sort_ajax"> |
resources/views/news-list.blade.php
... | ... | @@ -97,12 +97,10 @@ |
97 | 97 | <form class="thing__body" action="{{ route('news') }}" method="GET"> |
98 | 98 | <ul class="breadcrumbs thing__breadcrumbs"> |
99 | 99 | <li><a href="{{ route('index') }}">Главная</a></li> |
100 | - <li><a href="{{ route('vacancies') }}">Вакансии</a></li> | |
101 | - <li><b>{{ isset($Name_categori[0]) ? $Name_categori[0]->name : 'Все категории' }}</b></li> | |
100 | + <li><b>Новости</b></li> | |
102 | 101 | </ul> |
103 | - <h1 class="thing__title">Вакансии</h1> | |
104 | - <p class="thing__text">С другой стороны, социально-экономическое развитие не оставляет шанса для | |
105 | - существующих финансовых и административных условий.</p> | |
102 | + <h1 class="thing__title">Новости</h1> | |
103 | + <p class="thing__text">Информационные блоки и новости о компании и событиях в мире</p> | |
106 | 104 | <div class="search thing__search"> |
107 | 105 | <input type="search" id="search" name="search" class="input" placeholder="Введите наименование статьи" value="@if (!empty($_GET['search'])) {{ $_GET['search'] }} @endif"> |
108 | 106 | <button type="submit" class="button">Найти</button> |
... | ... | @@ -115,11 +113,11 @@ |
115 | 113 | </form> |
116 | 114 | </div> |
117 | 115 | </section> |
118 | - <main class="main"> | |
116 | + <main class="main rus"> | |
119 | 117 | <div class="container"> |
120 | 118 | <div class="main__employers"> |
121 | 119 | <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> | |
120 | + <div class="filters__label" id="col-vo" name="col-vo">Показано {{ $Query->firstItem() }} – {{ $Query->lastItem() }} из @isset($Query_count) {{ $Query_count }} @else 0 @endisset результатов поиска</div> | |
123 | 121 | <div class="filters__body"> |
124 | 122 | <div class="select filters__select"> |
125 | 123 | <select class="js-select2" id="sort_ajax" name="sort_ajax"> |
... | ... | @@ -155,7 +153,7 @@ |
155 | 153 | {{ $Query->appends($_GET)->links('paginate') }} |
156 | 154 | @else |
157 | 155 | <div class="news__items"> |
158 | - | |
156 | + Нет никакой информации | |
159 | 157 | </div> |
160 | 158 | @endif |
161 | 159 | </div> |
... | ... | @@ -164,4 +162,5 @@ |
164 | 162 | </div> |
165 | 163 | </main> |
166 | 164 | </div> |
165 | + | |
167 | 166 | @endsection |
resources/views/resume.blade.php
... | ... | @@ -235,7 +235,7 @@ |
235 | 235 | <div class="main__resume-base"> |
236 | 236 | <h2>Резюме работников</h2> |
237 | 237 | <div class="filters"> |
238 | - <div class="filters__label">Показано @if ($res_count > 0) 1 @else 0 @endif – @if($res_count < 5) {{ $res_count }} @else 5 @endif из {{ $res_count }} результатов поиска</div> | |
238 | + <div class="filters__label">Показано {{ $resumes->firstItem() }} – {{ $resumes->lastItem() }} из {{ $res_count }} результатов поиска</div> | |
239 | 239 | <div class="filters__body"> |
240 | 240 | <div class="select filters__select"> |
241 | 241 | <select class="js-select2" id="sort_ajax" name="sort_ajax"> |
routes/web.php
... | ... | @@ -537,6 +537,8 @@ Route::group([ |
537 | 537 | Route::get('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancie'])->name('cabinet_vacancie'); |
538 | 538 | Route::post('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancy_save'])->name('vacancy_save'); |
539 | 539 | Route::post('vacancie', [EmployerController::class, 'cabinet_vacancy_save1'])->name('vac_save'); |
540 | + Route::get('selected_people', [EmployerController::class, 'selected_people'])->name('selected_people'); | |
541 | + | |
540 | 542 | |
541 | 543 | // 3 страница - Мои вакансии |
542 | 544 | Route::get('cabinet/vacancy_list', [EmployerController::class, 'vacancy_list'])->name('vacancy_list'); |