Commit d152a3a68ea75a05369b83e08b3dfbd276998a38
1 parent
5b68533bb1
Exists in
master
and in
1 other branch
Создание основных страниц публичной части сайта
Showing 60 changed files with 2320 additions and 608 deletions Side-by-side Diff
- app/Http/Controllers/Admin/Ad_EmployersController.php
- app/Http/Controllers/Admin/EmployersController.php
- app/Http/Controllers/CompanyController.php
- app/Http/Controllers/EmployerController.php
- app/Http/Controllers/MainController.php
- app/Http/Controllers/PagesController.php
- app/Http/Requests/FlotRequest.php
- app/Http/Requests/PagesRequest.php
- app/Models/Ad_employer.php
- app/Models/Ad_jobs.php
- app/Models/Education.php
- app/Models/Employer.php
- app/Models/Flot.php
- database/migrations/2024_02_08_134941_alter_ad_job_table.php
- database/migrations/2024_02_08_144854_alter_ad_employer.php
- database/migrations/2024_02_16_062441_alter_table_ad_employers.php
- database/migrations/2024_02_19_101702_alter_table_flot.php
- public/images/12.jpg
- public/images/13.jpg
- public/images/14.jpg
- public/images/15.jpg
- public/images/16.jpg
- public/images/17.jpg
- public/images/18.jpg
- public/images/bg-3.svg
- public/images/bg-4.svg
- public/images/catpcha.jpg
- public/images/education.jpg
- public/images/stars.svg
- public/images/svg/1.svg
- public/images/svg/2.svg
- public/images/svg/3.svg
- public/images/svg/4.svg
- public/images/svg/5.svg
- public/images/svg/6.svg
- public/images/wysiwyg.jpg
- resources/views/admin/ad_employers/index.blade.php
- resources/views/admin/ad_jobs/edit.blade.php
- resources/views/admin/employer/edit.blade.php
- resources/views/admin/flot/add.blade.php
- resources/views/admin/flot/edit.blade.php
- resources/views/admin/flot/flot_add.blade.php
- resources/views/admin/flot/test.blade.php
- resources/views/ajax/companies.blade.php
- resources/views/ajax/companies2.blade.php
- resources/views/ajax/list_vacancies.blade.php
- resources/views/ajax/vacance-item.blade.php
- resources/views/ajax/vacancies.blade.php
- resources/views/companies.blade.php
- resources/views/contacts.blade.php
- resources/views/education.blade.php
- resources/views/info_company.blade.php
- resources/views/layout/frontend-page.blade.php
- resources/views/layout/frontend.blade.php
- resources/views/list_vacancies.blade.php
- resources/views/pages.blade.php
- resources/views/paginate.blade.php
- resources/views/vacance-item.blade.php
- resources/views/vacancies.blade.php
- routes/web.php
app/Http/Controllers/Admin/Ad_EmployersController.php
... | ... | @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin; |
4 | 4 | |
5 | 5 | use App\Http\Controllers\Controller; |
6 | 6 | use App\Models\Ad_employer; |
7 | +use App\Models\Ad_jobs; | |
7 | 8 | use App\Models\Employer; |
8 | 9 | use App\Models\Job_title; |
9 | 10 | use App\Models\User; |
... | ... | @@ -66,6 +67,7 @@ class Ad_EmployersController extends Controller |
66 | 67 | if ($request->ajax()) { |
67 | 68 | return view('admin.ad_employers.index_ajax', compact('ad_employers', 'params')); |
68 | 69 | } else { |
70 | + // конец | |
69 | 71 | return view('admin.ad_employers.index', compact('ad_employers', |
70 | 72 | 'title', |
71 | 73 | 'all_ad', |
... | ... | @@ -178,15 +180,10 @@ class Ad_EmployersController extends Controller |
178 | 180 | return redirect()->route('admin.ad-employers') |
179 | 181 | ->with('success', 'Данные были успешно сохранены'); |
180 | 182 | } |
183 | + | |
181 | 184 | return redirect()->route('admin.ad-employers'); |
182 | 185 | } |
183 | 186 | |
184 | - /** | |
185 | - * Remove the specified resource from storage. | |
186 | - * | |
187 | - * @param \App\Models\Ad_employer $ad_employer | |
188 | - * @return \Illuminate\Http\Response | |
189 | - */ | |
190 | 187 | public function destroy(Ad_employer $ad_employer) |
191 | 188 | { |
192 | 189 | $ad_employer->is_remove = 1; |
... | ... | @@ -194,4 +191,38 @@ class Ad_EmployersController extends Controller |
194 | 191 | |
195 | 192 | return redirect()->route('admin.ad-employers'); |
196 | 193 | } |
194 | + | |
195 | + | |
196 | + public function update_ad_jobs(Ad_jobs $ad_jobs, Request $request) { | |
197 | + $params = $request->all(); | |
198 | + | |
199 | + $rules = [ | |
200 | + 'min_salary' => 'required|integer|min:0|max:99999999', | |
201 | + 'max_salary' => 'required|integer|min:0|max:99999999', | |
202 | + | |
203 | + ]; | |
204 | + $messages = [ | |
205 | + 'required' => 'Укажите обязательное поле', | |
206 | + 'min' => 'Минимальное значение 0', | |
207 | + 'max' => 'Превышено максимальное значение', | |
208 | + 'integer' => 'Это должно быть числом' | |
209 | + ]; | |
210 | + | |
211 | + $validator = Validator::make($params, $rules, $messages); | |
212 | + | |
213 | + if ($validator->fails()) { | |
214 | + return redirect()->route('admin.edit_jobs', ['ad_jobs' => $ad_jobs->id]) | |
215 | + ->withErrors($validator); | |
216 | + } else { | |
217 | + $ad_jobs->update($params); | |
218 | + return redirect()->route('admin.ad-employers') | |
219 | + ->with('success', 'Данные были успешно сохранены'); | |
220 | + } | |
221 | + | |
222 | + return redirect()->route('admin.ad-employers'); | |
223 | + } | |
224 | + | |
225 | + public function edit_jobs(Ad_jobs $ad_jobs) { | |
226 | + return view('admin.ad_jobs.edit', compact('ad_jobs')); | |
227 | + } | |
197 | 228 | } |
app/Http/Controllers/Admin/EmployersController.php
... | ... | @@ -3,10 +3,12 @@ |
3 | 3 | namespace App\Http\Controllers\Admin; |
4 | 4 | |
5 | 5 | use App\Http\Controllers\Controller; |
6 | +use App\Http\Requests\FlotRequest; | |
6 | 7 | use App\Models\Ad_employer; |
7 | 8 | use App\Models\Answer; |
8 | 9 | use App\Models\CategoryEmp; |
9 | 10 | use App\Models\Employer; |
11 | +use App\Models\Flot; | |
10 | 12 | use App\Models\Static_ad; |
11 | 13 | use App\Models\User; |
12 | 14 | use Illuminate\Http\Request; |
... | ... | @@ -83,9 +85,54 @@ class EmployersController extends Controller |
83 | 85 | return view('admin.employer.comment', compact('employer')); |
84 | 86 | } |
85 | 87 | |
88 | + // Форма обновления | |
86 | 89 | public function form_update_employer(Employer $employer) { |
90 | + // данные | |
87 | 91 | $select_category = CategoryEmp::query()->active()->get(); |
88 | - return view('admin.employer.edit', compact('employer', 'select_category')); | |
92 | + $flots = Flot::query()->where('employer_id', '=', $employer->id)->get(); | |
93 | + return view('admin.employer.edit', compact('employer', 'select_category', 'flots')); | |
94 | + } | |
95 | + | |
96 | + public function edit_flot(Flot $flot, Employer $employer) { | |
97 | + return view('admin.flot.edit', compact('flot', 'employer')); | |
98 | + } | |
99 | + | |
100 | + public function add_flot(Employer $employer) { | |
101 | + return view('admin.flot.add', compact('employer')); | |
102 | + } | |
103 | + | |
104 | + public function save_add_flot(FlotRequest $request) { | |
105 | + $params = $request->all(); | |
106 | + $params['image'] = $request->file('image')->store("flot", 'public'); | |
107 | + Flot::create($params); | |
108 | + return redirect()->route('admin.employer-profile', ['employer' => $params['employer_id']]) | |
109 | + ->with('success', 'Данные были успешно сохранены'); | |
110 | + } | |
111 | + | |
112 | + public function delete_flot(Flot $flot, $employer_id) { | |
113 | + $flot->delete(); | |
114 | + return redirect()->route('admin.employer-profile', ['employer' => $employer_id]) | |
115 | + ->with('success', 'Данные были успешно сохранены'); | |
116 | + } | |
117 | + | |
118 | + | |
119 | + public function edit_save_flot(Flot $flot, FlotRequest $request) { | |
120 | + $params = $request->all(); | |
121 | + | |
122 | + if ($request->has('image')) { | |
123 | + if (!empty($flot->image)) { | |
124 | + Storage::delete($flot->image); | |
125 | + } | |
126 | + $params['image'] = $request->file('image')->store("flot", 'public'); | |
127 | + } else { | |
128 | + if (!empty($flot->image)) $params['image'] = $flot->image; | |
129 | + } | |
130 | + | |
131 | + $flot->update($params); | |
132 | + | |
133 | + return redirect()->route('admin.employer-profile', ['employer' => $params['employer_id']]) | |
134 | + ->with('success', 'Данные были успешно сохранены'); | |
135 | + | |
89 | 136 | } |
90 | 137 | |
91 | 138 | public function update_employer(Employer $employer, Request $request) |
... | ... | @@ -221,8 +268,5 @@ class EmployersController extends Controller |
221 | 268 | return view('admin.static.index_ads_ajax', compact('stat')); |
222 | 269 | else |
223 | 270 | return view('admin.static.index_ads', compact('stat', 'ads', 'periods')); |
224 | - | |
225 | 271 | } |
226 | - | |
227 | - | |
228 | 272 | } |
app/Http/Controllers/CompanyController.php
... | ... | @@ -2,9 +2,48 @@ |
2 | 2 | |
3 | 3 | namespace App\Http\Controllers; |
4 | 4 | |
5 | +use App\Models\Employer; | |
5 | 6 | use Illuminate\Http\Request; |
6 | 7 | |
7 | 8 | class CompanyController extends Controller |
8 | 9 | { |
9 | - // | |
10 | + public function shipping_companies(Request $request) { | |
11 | + $emps = Employer::query()->with('ads'); | |
12 | + if ($request->get('search')) { | |
13 | + $search = $request->get('search'); | |
14 | + $emps = $emps->where('name_company', 'LIKE', "%$search%"); | |
15 | + } | |
16 | + | |
17 | + $count_emps = $emps->count(); | |
18 | + | |
19 | + if ($request->get('sort')) { | |
20 | + $sort = $request->get('sort'); | |
21 | + switch ($sort) { | |
22 | + case 'name_up': $emps = $emps->orderBy('name_company')->orderBy('id'); break; | |
23 | + case 'name_down': $emps = $emps->orderByDesc('name_company')->orderby('id'); break; | |
24 | + case 'created_at_up': $emps = $emps->OrderBy('created_at')->orderBy('id'); break; | |
25 | + case 'created_at_down': $emps = $emps->orderByDesc('created_at')->orderBy('id'); break; | |
26 | + case 'default': $emps = $emps->orderBy('id')->orderby('updated_at'); break; | |
27 | + default: $emps = $emps->orderBy('id')->orderby('updated_at'); break; | |
28 | + } | |
29 | + } | |
30 | + | |
31 | + $emps = $emps->paginate(4); | |
32 | + | |
33 | + if ($request->ajax()) { | |
34 | + if ($request->get('block') == '1') | |
35 | + return view('ajax.companies', compact('emps', 'count_emps')); | |
36 | + else | |
37 | + return view('ajax.companies2', compact('emps', 'count_emps')); | |
38 | + } else { | |
39 | + return view('companies', compact('emps', 'count_emps')); | |
40 | + } | |
41 | + } | |
42 | + | |
43 | + public function info_company(Employer $company) { | |
44 | + $company = Employer::with('ads')->with('flots') | |
45 | + ->where('id', '=', $company->id)->get(); | |
46 | + $title = $company[0]->name_company; | |
47 | + return view('info_company', compact('company', 'title')); | |
48 | + } | |
10 | 49 | } |
app/Http/Controllers/EmployerController.php
... | ... | @@ -2,9 +2,27 @@ |
2 | 2 | |
3 | 3 | namespace App\Http\Controllers; |
4 | 4 | |
5 | +use App\Models\Ad_employer; | |
6 | +use App\Models\Category; | |
5 | 7 | use Illuminate\Http\Request; |
6 | 8 | |
7 | 9 | class EmployerController extends Controller |
8 | 10 | { |
9 | - // | |
11 | + public function vacancie($vacancy, Request $request) { | |
12 | + $title = 'Заголовок вакансии'; | |
13 | + | |
14 | + $Query = Ad_employer::with('jobs')-> | |
15 | + with('cat')-> | |
16 | + with('employer')-> | |
17 | + with('jobs_code')-> | |
18 | + select('ad_employers.*')-> | |
19 | + where('id', '=', $vacancy)->get(); | |
20 | + | |
21 | + $title = $Query[0]->name; | |
22 | + if ($request->ajax()) { | |
23 | + return view('ajax.vacance-item', compact('Query')); | |
24 | + } else { | |
25 | + return view('vacance-item', compact('title', 'Query')); | |
26 | + } | |
27 | + } | |
10 | 28 | } |
app/Http/Controllers/MainController.php
... | ... | @@ -2,7 +2,9 @@ |
2 | 2 | |
3 | 3 | namespace App\Http\Controllers; |
4 | 4 | |
5 | +use App\Models\Ad_employer; | |
5 | 6 | use App\Models\Category; |
7 | +use App\Models\Education; | |
6 | 8 | use App\Models\Employer; |
7 | 9 | use App\Models\Job_title; |
8 | 10 | use App\Models\News; |
... | ... | @@ -55,37 +57,62 @@ class MainController extends Controller |
55 | 57 | } |
56 | 58 | |
57 | 59 | //Вакансии категория детальная |
58 | - public function list_vacancies(Request $request) { | |
59 | - $data = $request->all(); | |
60 | - | |
61 | - if ($data['categories'] == 'all') { | |
62 | - $Categories_id = 0; | |
63 | - } else { | |
64 | - $Categories_id = $data['categories']; | |
60 | + public function list_vacancies(Category $categories, Request $request) { | |
61 | + | |
62 | + $Query = Ad_employer::with('jobs')-> | |
63 | + with('cat')-> | |
64 | + with('employer')-> | |
65 | + whereHas('jobs_code', function ($query) use ($request) { | |
66 | + if ($request->ajax()) { | |
67 | + if (null !== ($request->get('job'))) { | |
68 | + $query->where('job_title_id', $request->get('job')); | |
69 | + } | |
70 | + } | |
71 | + }) | |
72 | + ->select('ad_employers.*'); | |
73 | + | |
74 | + if ($categories->id > 0) { | |
75 | + $Query = $Query->where('category_id', '=', $categories->id); | |
76 | + $Name_categori = Category::query()->where('id', '=', $categories->id)->get(); | |
65 | 77 | } |
66 | 78 | |
67 | - if ($data['job_titles'] == 'all') { | |
68 | - $job_titles_id = 0; | |
69 | - } else { | |
70 | - $job_titles_id = $data['job_titles']; | |
71 | - } | |
79 | + $Job_title = Job_title::query()->OrderBy('name')->get(); | |
72 | 80 | |
73 | - $Query = Employer::with('jobs')->with('cat')->select('employers.*'); | |
74 | - if ($Categories_id > 0) { | |
75 | - $Query = $Query->where('category_id', '=', $Categories_id); | |
76 | - $Name_categori = Category::query()->where('id', '=', $Categories_id)->get(); | |
81 | + $Query_count = $Query->count(); | |
77 | 82 | |
78 | - } | |
83 | + $Query = $Query->OrderBy('updated_at')->paginate(3); | |
84 | + | |
85 | + $Reclama = reclame::query()->limit(3)->get(); | |
79 | 86 | |
80 | - if ($job_titles_id > 0) { | |
81 | - $Query = $Query->join('ad_jobs', 'job_title_id', '=', $job_titles_id); | |
87 | + | |
88 | + | |
89 | + if ($request->ajax()) { | |
90 | + return view('ajax.list_vacancies', compact('Query', 'Query_count', 'Name_categori', 'Reclama', 'categories')); | |
91 | + } else { | |
92 | + //Вернуть все | |
93 | + return view('list_vacancies', compact('Query', | |
94 | + 'Query_count', | |
95 | + 'Reclama', | |
96 | + 'Name_categori', | |
97 | + 'categories', | |
98 | + 'Job_title')); | |
82 | 99 | } |
100 | + } | |
83 | 101 | |
84 | - // Данные | |
85 | - $Job_title = Job_title::query()->get(); | |
86 | - $Query = $Query->OrderBy('updated_at')->paginate(15); | |
87 | - $Reclama = reclame::query()->limit(3)->get(); | |
102 | + // Образование | |
103 | + public function education(Request $request) { | |
104 | + $educations = Education::query(); | |
105 | + if ($request->has('search')) { | |
106 | + $search = trim($request->has('search')); | |
107 | + $educations = $educations->where('name', 'LIKE', "%$search%"); | |
108 | + } | |
109 | + $count_edu = $educations->count(); | |
110 | + $educations = $educations->paginate(6); | |
111 | + return view('education', compact('educations', 'count_edu')); | |
112 | + } | |
88 | 113 | |
89 | - return view('list_vacancies', compact('Query', 'Reclama', 'Name_categori', 'Job_title')); | |
114 | + // Контакты | |
115 | + public function contacts() { | |
116 | + return view('contacts'); | |
90 | 117 | } |
91 | 118 | } |
app/Http/Controllers/PagesController.php
... | ... | @@ -12,7 +12,8 @@ class PagesController extends Controller |
12 | 12 | { |
13 | 13 | public function pages(pages $pages) { |
14 | 14 | $page = pages::query()->where('slug', $pages->slug)->first(); |
15 | - print_r($page); | |
15 | + | |
16 | + return view('pages', compact('page')); | |
16 | 17 | } |
17 | 18 | |
18 | 19 | public function redis() { |
app/Http/Requests/FlotRequest.php
... | ... | @@ -0,0 +1,51 @@ |
1 | +<?php | |
2 | + | |
3 | +namespace App\Http\Requests; | |
4 | + | |
5 | +use Illuminate\Foundation\Http\FormRequest; | |
6 | + | |
7 | +class FlotRequest extends FormRequest | |
8 | +{ | |
9 | + /** | |
10 | + * Determine if the user is authorized to make this request. | |
11 | + * | |
12 | + * @return bool | |
13 | + */ | |
14 | + public function authorize() | |
15 | + { | |
16 | + return true; | |
17 | + } | |
18 | + | |
19 | + /** | |
20 | + * Get the validation rules that apply to the request. | |
21 | + * | |
22 | + * @return array<string, mixed> | |
23 | + */ | |
24 | + public function rules() | |
25 | + { | |
26 | + return [ | |
27 | + 'name' => 'required|min:3|max:255', | |
28 | + 'text' => 'required|min:5', | |
29 | + 'image' => [ | |
30 | + 'mimes:jpeg,jpg,png', | |
31 | + 'max:20000' | |
32 | + ], | |
33 | + ]; | |
34 | + } | |
35 | + | |
36 | + public function messages() { | |
37 | + return [ | |
38 | + 'required' => 'Поле :attribute обязательно для ввода', | |
39 | + 'min' => [ | |
40 | + 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | |
41 | + 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | |
42 | + ], | |
43 | + 'max' => [ | |
44 | + 'string' => 'Поле «:attribute» должно быть не больше :max символов', | |
45 | + 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | |
46 | + ], | |
47 | + 'email' => 'Введите корректный емайл' | |
48 | + | |
49 | + ]; | |
50 | + } | |
51 | +} |
app/Http/Requests/PagesRequest.php
app/Models/Ad_employer.php
... | ... | @@ -41,6 +41,11 @@ class Ad_employer extends Model |
41 | 41 | return $this->belongsToMany(Job_title::class, 'ad_jobs'); |
42 | 42 | } |
43 | 43 | |
44 | + // Связь модели Вакансии с моделью Коды должностей и вакансий | |
45 | + public function jobs_code() { | |
46 | + return $this->hasMany(Ad_jobs::class); | |
47 | + } | |
48 | + | |
44 | 49 | /* |
45 | 50 | * Связь модели Вакансия (Ad_employers) с моделью Отклик на Вакансию (Ad_response) |
46 | 51 | один-ко-многим |
... | ... | @@ -51,10 +56,15 @@ class Ad_employer extends Model |
51 | 56 | |
52 | 57 | // Связь модели Категории (Categories) с моделью Вакансии |
53 | 58 | public function cat() { |
54 | - return $this->hasMany(Category::class, 'categories_id'); | |
59 | + return $this->hasMany(Category::class, 'id'); | |
55 | 60 | } |
56 | 61 | |
57 | 62 | public function scopeActive($query) { |
58 | 63 | return $query->where('is_remove', '=', '0'); |
59 | 64 | } |
65 | + | |
66 | + // | |
67 | + public function ad_job() { | |
68 | + return $this->hasMany(Ad_jobs::class); | |
69 | + } | |
60 | 70 | } |
app/Models/Ad_jobs.php
... | ... | @@ -0,0 +1,29 @@ |
1 | +<?php | |
2 | + | |
3 | +namespace App\Models; | |
4 | + | |
5 | +use Illuminate\Database\Eloquent\Factories\HasFactory; | |
6 | +use Illuminate\Database\Eloquent\Model; | |
7 | + | |
8 | +class Ad_jobs extends Model | |
9 | +{ | |
10 | + use HasFactory; | |
11 | + | |
12 | + protected $table = 'ad_jobs'; | |
13 | + | |
14 | + public $fillable = [ | |
15 | + 'ad_employer_id', | |
16 | + 'job_title_id', | |
17 | + 'flot', | |
18 | + 'min_salary', | |
19 | + 'max_salary', | |
20 | + 'region', | |
21 | + 'sytki', | |
22 | + 'start', | |
23 | + 'description' | |
24 | + ]; | |
25 | + | |
26 | + public function job_title() { | |
27 | + return $this->belongsTo(Job_title::class, 'job_title_id'); | |
28 | + } | |
29 | +} |
app/Models/Education.php
app/Models/Employer.php
... | ... | @@ -47,6 +47,16 @@ class Employer extends Model |
47 | 47 | return $this->hasMany(Ad_employer::class); |
48 | 48 | } |
49 | 49 | |
50 | + // связь Работодателя с флотом | |
51 | + public function flots(){ | |
52 | + return $this->hasMany(Flot::class); | |
53 | + } | |
54 | + | |
55 | + // связь Работодателя с Должностями в Вакансиях | |
56 | + //public function ad_jobs() { | |
57 | + // return $this->belongsToMany(Ad_jobs::class, 'ad_employers'); | |
58 | + //} | |
59 | + | |
50 | 60 | public function scopeActive($query) { |
51 | 61 | return $query->where('is_remove', '=', '0'); |
52 | 62 | } |
app/Models/Flot.php
database/migrations/2024_02_08_134941_alter_ad_job_table.php
... | ... | @@ -0,0 +1,34 @@ |
1 | +<?php | |
2 | + | |
3 | +use Illuminate\Database\Migrations\Migration; | |
4 | +use Illuminate\Database\Schema\Blueprint; | |
5 | +use Illuminate\Support\Facades\Schema; | |
6 | + | |
7 | +return new class extends Migration | |
8 | +{ | |
9 | + /** | |
10 | + * Run the migrations. | |
11 | + * | |
12 | + * @return void | |
13 | + */ | |
14 | + public function up() | |
15 | + { | |
16 | + Schema::table('ad_jobs', function (Blueprint $table) { | |
17 | + $table->integer('min_salary')->default(0); | |
18 | + $table->integer('max_salary')->default(0); | |
19 | + }); | |
20 | + } | |
21 | + | |
22 | + /** | |
23 | + * Reverse the migrations. | |
24 | + * | |
25 | + * @return void | |
26 | + */ | |
27 | + public function down() | |
28 | + { | |
29 | + Schema::table('ad_jobs', function (Blueprint $table) { | |
30 | + $table->dropColumn('min_salary'); | |
31 | + $table->dropColumn('max_salary'); | |
32 | + }); | |
33 | + } | |
34 | +}; |
database/migrations/2024_02_08_144854_alter_ad_employer.php
... | ... | @@ -0,0 +1,36 @@ |
1 | +<?php | |
2 | + | |
3 | +use Illuminate\Database\Migrations\Migration; | |
4 | +use Illuminate\Database\Schema\Blueprint; | |
5 | +use Illuminate\Support\Facades\Schema; | |
6 | + | |
7 | +return new class extends Migration | |
8 | +{ | |
9 | + /** | |
10 | + * Run the migrations. | |
11 | + * | |
12 | + * @return void | |
13 | + */ | |
14 | + public function up() | |
15 | + { | |
16 | + Schema::table('ad_employers', function (Blueprint $table) { | |
17 | + $table->text('description')->nullable(true); | |
18 | + $table->text('contacts_emails')->nullable(true); | |
19 | + $table->text('contacts_telephones')->nullable(true); | |
20 | + }); | |
21 | + } | |
22 | + | |
23 | + /** | |
24 | + * Reverse the migrations. | |
25 | + * | |
26 | + * @return void | |
27 | + */ | |
28 | + public function down() | |
29 | + { | |
30 | + Schema::table('ad_employers', function (Blueprint $table) { | |
31 | + $table->dropColumn('description'); | |
32 | + $table->dropColumn('contacts_emails'); | |
33 | + $table->dropColumn('contacts_telephones'); | |
34 | + }); | |
35 | + } | |
36 | +}; |
database/migrations/2024_02_16_062441_alter_table_ad_employers.php
... | ... | @@ -0,0 +1,40 @@ |
1 | +<?php | |
2 | + | |
3 | +use Illuminate\Database\Migrations\Migration; | |
4 | +use Illuminate\Database\Schema\Blueprint; | |
5 | +use Illuminate\Support\Facades\Schema; | |
6 | + | |
7 | +return new class extends Migration | |
8 | +{ | |
9 | + /** | |
10 | + * Run the migrations. | |
11 | + * | |
12 | + * @return void | |
13 | + */ | |
14 | + public function up() | |
15 | + { | |
16 | + Schema::table('ad_jobs', function (Blueprint $table) { | |
17 | + $table->string('flot', 255)->nullable(true); | |
18 | + $table->string('region', 255)->nullable(true); | |
19 | + $table->integer('sytki')->default(0); | |
20 | + $table->string('start', '255')->nullable(true); | |
21 | + $table->text('description')->nullable(false); | |
22 | + }); | |
23 | + } | |
24 | + | |
25 | + /** | |
26 | + * Reverse the migrations. | |
27 | + * | |
28 | + * @return void | |
29 | + */ | |
30 | + public function down() | |
31 | + { | |
32 | + Schema::table('ad_jops', function (Blueprint $table) { | |
33 | + $table->dropColumn('flot'); | |
34 | + $table->dropColumn('region'); | |
35 | + $table->dropColumn('sytki'); | |
36 | + $table->dropColumn('start'); | |
37 | + $table->dropColumn('description'); | |
38 | + }); | |
39 | + } | |
40 | +}; |
database/migrations/2024_02_19_101702_alter_table_flot.php
... | ... | @@ -0,0 +1,34 @@ |
1 | +<?php | |
2 | + | |
3 | +use Illuminate\Database\Migrations\Migration; | |
4 | +use Illuminate\Database\Schema\Blueprint; | |
5 | +use Illuminate\Support\Facades\Schema; | |
6 | + | |
7 | +return new class extends Migration | |
8 | +{ | |
9 | + /** | |
10 | + * Run the migrations. | |
11 | + * | |
12 | + * @return void | |
13 | + */ | |
14 | + public function up() | |
15 | + { | |
16 | + Schema::table('flots', function (Blueprint $table) { | |
17 | + $table->string('region', 255)->nullable(false); | |
18 | + $table->string('power', 255)->nullable(false); | |
19 | + }); | |
20 | + } | |
21 | + | |
22 | + /** | |
23 | + * Reverse the migrations. | |
24 | + * | |
25 | + * @return void | |
26 | + */ | |
27 | + public function down() | |
28 | + { | |
29 | + Schema::table('flots', function (Blueprint $table) { | |
30 | + $table->dropColumn('region'); | |
31 | + $table->dropColumn('power'); | |
32 | + }); | |
33 | + } | |
34 | +}; |
public/images/12.jpg
6.66 KB
public/images/13.jpg
1.38 MB
public/images/14.jpg
1.02 MB
public/images/15.jpg
234 KB
public/images/16.jpg
138 KB
public/images/17.jpg
278 KB
public/images/18.jpg
7.31 KB
public/images/bg-3.svg
... | ... | @@ -0,0 +1,36 @@ |
1 | +<svg width="1280" height="698" viewBox="0 0 1280 698" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
2 | +<g clip-path="url(#clip0_941_12674)"> | |
3 | +<g opacity="0.4"> | |
4 | +<path d="M1327.92 -322C1181.04 -255.01 1091.59 -135.759 1016.54 -25.1295C988.509 15.7312 952.077 62.654 892.37 76.7468C816.837 94.1272 757.233 46.2576 681.96 52.1345C618.593 56.7266 562.438 96.5472 516.674 133.583C439.067 197.256 367.284 266.038 303.489 335.538C285.478 355.61 267.706 376.57 241.793 392.089C171.09 435.808 74.5124 424.525 0.557344 406.227C-73.3977 387.93 -158.373 365.915 -239.598 395.302C-288.286 413.112 -316.035 475.813 -367.667 486.789C-411.788 496.705 -474.247 483.903 -474.247 483.903C-474.247 483.903 -399.687 762.164 -375.389 852.844C-218.911 829.972 -82.7007 743.927 70.6155 700.94C183.405 668.813 300.635 657.411 415.634 641.843C786.524 592.011 1158.6 500.888 1514.44 374.098L1327.92 -322Z" fill="url(#paint0_linear_941_12674)"/> | |
5 | +<path d="M-350.218 534.27C-323.315 551.544 -280.824 564.642 -233.323 571.501C-218.24 573.755 -202.293 575.078 -181.675 573.051C-121.21 565.944 -69.8281 529.092 -45.1143 500.784C2.40976 445.379 20.6529 392.924 69.391 337.893C118.129 282.862 212.6 219.775 333.664 189.434C464.081 156.587 572.089 173.116 648.922 197.998C725.58 222.227 794.46 254.836 911.429 250.775C932.397 250.053 956.132 247.191 977.254 238.733C1004.26 227.3 1012.19 211.184 1035.56 198.627C1073.46 177.978 1131.69 174.969 1163.76 182.462C1195.84 189.956 1218.41 203.497 1261.73 203.081C1273.86 202.629 1287.89 200.967 1300.01 196.32C1312.13 191.674 1318.18 185.156 1325.62 179.665C1377.17 139.271 1497.02 108.557 1557.19 121.116L1601.43 286.24L-281.14 792.072L-350.218 534.27Z" fill="url(#paint1_linear_941_12674)"/> | |
6 | +<path d="M-350.218 534.27C-323.315 551.544 -280.824 564.642 -233.323 571.501C-218.24 573.755 -202.293 575.078 -181.675 573.051C-121.21 565.944 -69.8281 529.092 -45.1143 500.784C2.40976 445.379 20.6529 392.924 69.391 337.893C118.129 282.862 212.6 219.775 333.664 189.434C464.081 156.587 572.089 173.116 648.922 197.998C725.58 222.227 794.46 254.836 911.429 250.775C932.397 250.053 956.132 247.191 977.254 238.733C1004.26 227.3 1012.19 211.184 1035.56 198.627C1073.46 177.978 1131.69 174.969 1163.76 182.462C1195.84 189.956 1218.41 203.497 1261.73 203.081C1273.86 202.629 1287.89 200.967 1300.01 196.32C1312.13 191.674 1318.18 185.156 1325.62 179.665C1377.17 139.271 1497.02 108.557 1557.19 121.116L1601.43 286.24L-281.14 792.072L-350.218 534.27Z" fill="url(#paint2_linear_941_12674)"/> | |
7 | +<path d="M-261.454 550.3C-235.559 572.17 -210.067 596.69 -153.037 605.982C-96.0077 615.273 -2.0364 608.735 88.5043 581.085C163.679 558.4 222.579 524.824 265.69 494.631C308.801 464.439 344.854 436.985 390.445 403.586C442.458 365.076 507.02 298.632 725.462 270.605C799.872 261.682 856.69 270.182 902.487 279.094C948.073 287.215 984.947 300.212 1037.38 304.805C1114.99 311.971 1225.57 300.98 1339.83 274.602C1453.05 248.503 1567.86 207.572 1651.66 163.086L1800.56 718.783L-81.2049 1223L-261.454 550.3Z" fill="url(#paint3_linear_941_12674)"/> | |
8 | +<path d="M-261.454 550.3C-235.559 572.17 -210.067 596.69 -153.037 605.982C-96.0077 615.273 -2.0364 608.735 88.5043 581.085C163.679 558.4 222.579 524.824 265.69 494.631C308.801 464.439 344.854 436.985 390.445 403.586C442.458 365.076 507.02 298.632 725.462 270.605C799.872 261.682 856.69 270.182 902.487 279.094C948.073 287.215 984.947 300.212 1037.38 304.805C1114.99 311.971 1225.57 300.98 1339.83 274.602C1453.05 248.503 1567.86 207.572 1651.66 163.086L1800.56 718.783L-81.2049 1223L-261.454 550.3Z" fill="url(#paint4_linear_941_12674)"/> | |
9 | +</g> | |
10 | +</g> | |
11 | +<defs> | |
12 | +<linearGradient id="paint0_linear_941_12674" x1="287.797" y1="75.4214" x2="577.75" y2="643.513" gradientUnits="userSpaceOnUse"> | |
13 | +<stop stop-color="#F4F7FC"/> | |
14 | +<stop offset="1" stop-color="#8BA6DB"/> | |
15 | +</linearGradient> | |
16 | +<linearGradient id="paint1_linear_941_12674" x1="551.028" y1="131.273" x2="660.437" y2="539.594" gradientUnits="userSpaceOnUse"> | |
17 | +<stop offset="0.211458" stop-color="#A5D5DD"/> | |
18 | +<stop offset="1" stop-color="#0E5C69"/> | |
19 | +</linearGradient> | |
20 | +<linearGradient id="paint2_linear_941_12674" x1="551.015" y1="131.226" x2="611.559" y2="357.18" gradientUnits="userSpaceOnUse"> | |
21 | +<stop stop-color="#E7EDF9"/> | |
22 | +<stop offset="1" stop-color="#C5D1E8"/> | |
23 | +</linearGradient> | |
24 | +<linearGradient id="paint3_linear_941_12674" x1="673.406" y1="275.068" x2="776.518" y2="659.888" gradientUnits="userSpaceOnUse"> | |
25 | +<stop stop-color="#E7EDF9"/> | |
26 | +<stop offset="1" stop-color="#C5D1E8"/> | |
27 | +</linearGradient> | |
28 | +<linearGradient id="paint4_linear_941_12674" x1="673.427" y1="275.147" x2="859.762" y2="970.558" gradientUnits="userSpaceOnUse"> | |
29 | +<stop offset="0.211458" stop-color="#A5D5DD"/> | |
30 | +<stop offset="1" stop-color="#0E5C69"/> | |
31 | +</linearGradient> | |
32 | +<clipPath id="clip0_941_12674"> | |
33 | +<rect width="1280" height="698" fill="white"/> | |
34 | +</clipPath> | |
35 | +</defs> | |
36 | +</svg> |
public/images/bg-4.svg
... | ... | @@ -0,0 +1,21 @@ |
1 | +<svg width="706" height="448" viewBox="0 0 706 448" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
2 | +<g opacity="0.4"> | |
3 | +<path d="M1237.01 -83C1140.52 -38.9899 1081.75 39.354 1032.45 112.034C1014.03 138.878 990.098 169.704 950.873 178.963C901.25 190.381 862.093 158.933 812.64 162.794C771.01 165.81 734.119 191.971 704.054 216.303C653.068 258.134 605.909 303.321 563.998 348.98C552.166 362.166 540.49 375.937 523.466 386.132C477.017 414.854 413.568 407.441 364.982 395.42C316.396 383.4 260.571 368.937 207.208 388.243C175.222 399.944 156.992 441.136 123.071 448.347C94.0856 454.861 53.0522 446.451 53.0522 446.451C53.0522 446.451 102.036 629.259 117.998 688.832C220.799 673.806 310.285 617.278 411.008 589.037C485.107 567.93 562.123 560.44 637.673 550.212C881.336 517.474 1125.78 457.61 1359.55 374.313L1237.01 -83Z" fill="url(#paint0_linear_941_15331)"/> | |
4 | +<path d="M134.534 505.818C152.209 517.167 180.124 525.772 211.33 530.278C221.239 531.759 231.716 532.628 245.261 531.297C284.985 526.627 318.741 502.417 334.977 483.82C366.199 447.421 378.184 412.959 410.203 376.806C442.222 340.652 504.286 299.206 583.822 279.273C669.501 257.694 740.458 268.553 790.935 284.899C841.297 300.817 886.548 322.24 963.393 319.572C977.168 319.098 992.762 317.218 1006.64 311.661C1024.38 304.15 1029.59 293.562 1044.94 285.313C1069.84 271.747 1108.09 269.77 1129.17 274.693C1150.24 279.616 1165.07 288.512 1193.53 288.239C1201.5 287.942 1210.72 286.85 1218.68 283.797C1226.64 280.745 1230.62 276.463 1235.5 272.855C1269.37 246.318 1348.11 226.139 1387.63 234.39L1416.7 342.871L179.916 675.186L134.534 505.818Z" fill="url(#paint1_linear_941_15331)"/> | |
5 | +<path d="M192.849 536.059C209.861 550.427 226.609 566.536 264.075 572.64C301.542 578.744 363.278 574.449 422.76 556.284C472.147 541.38 510.843 519.322 539.165 499.487C567.487 479.651 591.173 461.615 621.124 439.673C655.295 414.373 697.711 370.722 841.219 352.309C890.104 346.446 927.432 352.031 957.519 357.886C987.467 363.221 1011.69 371.76 1046.14 374.777C1097.12 379.485 1169.78 372.265 1244.84 354.935C1319.22 337.788 1394.64 310.898 1449.7 281.673L1547.52 646.747L311.267 978L192.849 536.059Z" fill="url(#paint2_linear_941_15331)"/> | |
6 | +</g> | |
7 | +<defs> | |
8 | +<linearGradient id="paint0_linear_941_15331" x1="553.689" y1="178.092" x2="744.178" y2="551.309" gradientUnits="userSpaceOnUse"> | |
9 | +<stop stop-color="#F4F7FC"/> | |
10 | +<stop offset="1" stop-color="#8BA6DB"/> | |
11 | +</linearGradient> | |
12 | +<linearGradient id="paint1_linear_941_15331" x1="726.622" y1="241.063" x2="798.5" y2="509.317" gradientUnits="userSpaceOnUse"> | |
13 | +<stop offset="0.211458" stop-color="#A5D5DD"/> | |
14 | +<stop offset="1" stop-color="#0E5C69"/> | |
15 | +</linearGradient> | |
16 | +<linearGradient id="paint2_linear_941_15331" x1="807.02" y1="355.241" x2="874.761" y2="608.055" gradientUnits="userSpaceOnUse"> | |
17 | +<stop stop-color="#E7EDF9"/> | |
18 | +<stop offset="1" stop-color="#C5D1E8"/> | |
19 | +</linearGradient> | |
20 | +</defs> | |
21 | +</svg> |
public/images/catpcha.jpg
12.3 KB
public/images/education.jpg
49.1 KB
public/images/stars.svg
... | ... | @@ -0,0 +1,7 @@ |
1 | +<svg width="166" height="30" viewBox="0 0 166 30" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
2 | +<path d="M12.6804 8.28454C13.6637 5.83329 14.1553 4.60767 15.0007 4.60767C15.8461 4.60767 16.3378 5.83329 17.321 8.28454L17.3668 8.39868C17.9223 9.78352 18.2 10.4759 18.7661 10.8968C19.3322 11.3177 20.0752 11.3842 21.5614 11.5173L21.8301 11.5414C24.2623 11.7592 25.4785 11.8681 25.7387 12.6418C25.9989 13.4156 25.0957 14.2372 23.2894 15.8806L22.6866 16.4291C21.7722 17.261 21.315 17.6769 21.1019 18.2221C21.0622 18.3238 21.0291 18.428 21.003 18.534C20.8629 19.1023 20.9968 19.7057 21.2646 20.9125L21.3479 21.2882C21.84 23.5061 22.0861 24.6151 21.6565 25.0934C21.4959 25.2722 21.2873 25.4008 21.0555 25.4641C20.4353 25.6333 19.5547 24.9158 17.7935 23.4807C16.637 22.5383 16.0588 22.0671 15.3949 21.9611C15.1338 21.9194 14.8677 21.9194 14.6065 21.9611C13.9427 22.0671 13.3644 22.5383 12.208 23.4807C10.4468 24.9158 9.56618 25.6333 8.94593 25.4641C8.71416 25.4008 8.50552 25.2722 8.34499 25.0934C7.9154 24.6151 8.16144 23.5061 8.65353 21.2882L8.73688 20.9125C9.00464 19.7057 9.13852 19.1023 8.99845 18.534C8.97232 18.428 8.93928 18.3238 8.89953 18.2221C8.68644 17.6769 8.22924 17.261 7.31486 16.4291L6.71201 15.8806C4.90571 14.2372 4.00255 13.4156 4.26278 12.6418C4.523 11.8681 5.73913 11.7592 8.1714 11.5414L8.44007 11.5173C9.92622 11.3842 10.6693 11.3177 11.2354 10.8968C11.8014 10.4759 12.0792 9.78352 12.6347 8.39868L12.6804 8.28454Z" fill="#4D88D9" stroke="#4D88D9" stroke-width="1.4"/> | |
3 | +<path d="M46.6804 8.28454C47.6637 5.83329 48.1553 4.60767 49.0007 4.60767C49.8461 4.60767 50.3378 5.83329 51.321 8.28454L51.3668 8.39868C51.9223 9.78352 52.2 10.4759 52.7661 10.8968C53.3322 11.3177 54.0752 11.3842 55.5614 11.5173L55.8301 11.5414C58.2623 11.7592 59.4785 11.8681 59.7387 12.6418C59.9989 13.4156 59.0957 14.2372 57.2894 15.8806L56.6866 16.4291C55.7722 17.261 55.315 17.6769 55.1019 18.2221C55.0622 18.3238 55.0291 18.428 55.003 18.534C54.8629 19.1023 54.9968 19.7057 55.2646 20.9125L55.3479 21.2882C55.84 23.5061 56.0861 24.6151 55.6565 25.0934C55.4959 25.2722 55.2873 25.4008 55.0555 25.4641C54.4353 25.6333 53.5547 24.9158 51.7935 23.4807C50.637 22.5383 50.0588 22.0671 49.3949 21.9611C49.1338 21.9194 48.8677 21.9194 48.6065 21.9611C47.9427 22.0671 47.3644 22.5383 46.208 23.4807C44.4468 24.9158 43.5662 25.6333 42.9459 25.4641C42.7142 25.4008 42.5055 25.2722 42.345 25.0934C41.9154 24.6151 42.1614 23.5061 42.6535 21.2882L42.7369 20.9125C43.0046 19.7057 43.1385 19.1023 42.9985 18.534C42.9723 18.428 42.9393 18.3238 42.8995 18.2221C42.6864 17.6769 42.2292 17.261 41.3149 16.4291L40.712 15.8806C38.9057 14.2372 38.0026 13.4156 38.2628 12.6418C38.523 11.8681 39.7391 11.7592 42.1714 11.5414L42.4401 11.5173C43.9262 11.3842 44.6693 11.3177 45.2354 10.8968C45.8014 10.4759 46.0792 9.78352 46.6347 8.39868L46.6804 8.28454Z" fill="#4D88D9" stroke="#4D88D9" stroke-width="1.4"/> | |
4 | +<path d="M80.6804 8.28454C81.6637 5.83329 82.1553 4.60767 83.0007 4.60767C83.8461 4.60767 84.3378 5.83329 85.321 8.28454L85.3668 8.39868C85.9223 9.78352 86.2 10.4759 86.7661 10.8968C87.3322 11.3177 88.0752 11.3842 89.5614 11.5173L89.8301 11.5414C92.2623 11.7592 93.4785 11.8681 93.7387 12.6418C93.9989 13.4156 93.0957 14.2372 91.2894 15.8806L90.6866 16.4291C89.7722 17.261 89.315 17.6769 89.1019 18.2221C89.0622 18.3238 89.0291 18.428 89.003 18.534C88.8629 19.1023 88.9968 19.7057 89.2646 20.9125L89.3479 21.2882C89.84 23.5061 90.0861 24.6151 89.6565 25.0934C89.4959 25.2722 89.2873 25.4008 89.0555 25.4641C88.4353 25.6333 87.5547 24.9158 85.7935 23.4807C84.637 22.5383 84.0588 22.0671 83.3949 21.9611C83.1338 21.9194 82.8677 21.9194 82.6065 21.9611C81.9427 22.0671 81.3644 22.5383 80.208 23.4807C78.4468 24.9158 77.5662 25.6333 76.9459 25.4641C76.7142 25.4008 76.5055 25.2722 76.345 25.0934C75.9154 24.6151 76.1614 23.5061 76.6535 21.2882L76.7369 20.9125C77.0046 19.7057 77.1385 19.1023 76.9985 18.534C76.9723 18.428 76.9393 18.3238 76.8995 18.2221C76.6864 17.6769 76.2292 17.261 75.3149 16.4291L74.712 15.8806C72.9057 14.2372 72.0026 13.4156 72.2628 12.6418C72.523 11.8681 73.7391 11.7592 76.1714 11.5414L76.4401 11.5173C77.9262 11.3842 78.6693 11.3177 79.2354 10.8968C79.8014 10.4759 80.0792 9.78352 80.6347 8.39868L80.6804 8.28454Z" fill="#4D88D9" stroke="#4D88D9" stroke-width="1.4"/> | |
5 | +<path d="M114.68 8.28454C115.664 5.83329 116.155 4.60767 117.001 4.60767C117.846 4.60767 118.338 5.83329 119.321 8.28454L119.367 8.39868C119.922 9.78352 120.2 10.4759 120.766 10.8968C121.332 11.3177 122.075 11.3842 123.561 11.5173L123.83 11.5414C126.262 11.7592 127.478 11.8681 127.739 12.6418C127.999 13.4156 127.096 14.2372 125.289 15.8806L124.687 16.4291C123.772 17.261 123.315 17.6769 123.102 18.2221C123.062 18.3238 123.029 18.428 123.003 18.534C122.863 19.1023 122.997 19.7057 123.265 20.9125L123.348 21.2882C123.84 23.5061 124.086 24.6151 123.656 25.0934C123.496 25.2722 123.287 25.4008 123.056 25.4641C122.435 25.6333 121.555 24.9158 119.793 23.4807C118.637 22.5383 118.059 22.0671 117.395 21.9611C117.134 21.9194 116.868 21.9194 116.607 21.9611C115.943 22.0671 115.364 22.5383 114.208 23.4807C112.447 24.9158 111.566 25.6333 110.946 25.4641C110.714 25.4008 110.506 25.2722 110.345 25.0934C109.915 24.6151 110.161 23.5061 110.654 21.2882L110.737 20.9125C111.005 19.7057 111.139 19.1023 110.998 18.534C110.972 18.428 110.939 18.3238 110.9 18.2221C110.686 17.6769 110.229 17.261 109.315 16.4291L108.712 15.8806C106.906 14.2372 106.003 13.4156 106.263 12.6418C106.523 11.8681 107.739 11.7592 110.171 11.5414L110.44 11.5173C111.926 11.3842 112.669 11.3177 113.235 10.8968C113.801 10.4759 114.079 9.78352 114.635 8.39868L114.68 8.28454Z" fill="#4D88D9" stroke="#4D88D9" stroke-width="1.4"/> | |
6 | +<path d="M148.68 8.28454C149.664 5.83329 150.155 4.60767 151.001 4.60767C151.846 4.60767 152.338 5.83329 153.321 8.28454L153.367 8.39868C153.922 9.78352 154.2 10.4759 154.766 10.8968C155.332 11.3177 156.075 11.3842 157.561 11.5173L157.83 11.5414C160.262 11.7592 161.478 11.8681 161.739 12.6418C161.999 13.4156 161.096 14.2372 159.289 15.8806L158.687 16.4291C157.772 17.261 157.315 17.6769 157.102 18.2221C157.062 18.3238 157.029 18.428 157.003 18.534C156.863 19.1023 156.997 19.7057 157.265 20.9125L157.348 21.2882C157.84 23.5061 158.086 24.6151 157.656 25.0934C157.496 25.2722 157.287 25.4008 157.056 25.4641C156.435 25.6333 155.555 24.9158 153.793 23.4807C152.637 22.5383 152.059 22.0671 151.395 21.9611C151.134 21.9194 150.868 21.9194 150.607 21.9611C149.943 22.0671 149.364 22.5383 148.208 23.4807C146.447 24.9158 145.566 25.6333 144.946 25.4641C144.714 25.4008 144.506 25.2722 144.345 25.0934C143.915 24.6151 144.161 23.5061 144.654 21.2882L144.737 20.9125C145.005 19.7057 145.139 19.1023 144.998 18.534C144.972 18.428 144.939 18.3238 144.9 18.2221C144.686 17.6769 144.229 17.261 143.315 16.4291L142.712 15.8806C140.906 14.2372 140.003 13.4156 140.263 12.6418C140.523 11.8681 141.739 11.7592 144.171 11.5414L144.44 11.5173C145.926 11.3842 146.669 11.3177 147.235 10.8968C147.801 10.4759 148.079 9.78352 148.635 8.39868L148.68 8.28454Z" stroke="#4D88D9" stroke-width="1.4"/> | |
7 | +</svg> |
public/images/svg/1.svg
... | ... | @@ -0,0 +1,3 @@ |
1 | +<svg width="48" height="28" viewBox="0 0 48 28" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
2 | +<path fill-rule="evenodd" clip-rule="evenodd" d="M46.9 1.896C47.232 0.804 46.9 0 45.31 0H40.06C38.724 0 38.108 0.694 37.774 1.46C37.774 1.46 35.104 7.852 31.322 12.004C30.098 13.208 29.542 13.59 28.874 13.59C28.54 13.59 28.038 13.208 28.038 12.114V1.896C28.038 0.584 27.67 0 26.558 0H18.302C17.468 0 16.966 0.608 16.966 1.186C16.966 2.428 18.858 2.716 19.052 6.212V13.808C19.052 15.474 18.746 15.776 18.078 15.776C16.298 15.776 11.968 9.354 9.398 2.006C8.9 0.576 8.396 0 7.054 0H1.8C0.3 0 0 0.694 0 1.46C0 2.824 1.78 9.6 8.29 18.562C12.63 24.682 18.74 28 24.306 28C27.644 28 28.056 27.264 28.056 25.994V21.368C28.056 19.894 28.372 19.6 29.43 19.6C30.21 19.6 31.544 19.984 34.66 22.934C38.22 26.432 38.806 28 40.81 28H46.06C47.56 28 48.312 27.264 47.88 25.808C47.404 24.36 45.704 22.258 43.45 19.764C42.226 18.344 40.39 16.814 39.832 16.048C39.054 15.066 39.276 14.628 39.832 13.754C39.832 13.754 46.232 4.902 46.898 1.896H46.9Z" fill="#377D87"/> | |
3 | +</svg> |
public/images/svg/2.svg
... | ... | @@ -0,0 +1,3 @@ |
1 | +<svg width="41" height="35" viewBox="0 0 41 35" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
2 | +<path fill-rule="evenodd" clip-rule="evenodd" d="M36.5533 0.85993C37.0475 0.651912 37.5885 0.580168 38.1199 0.652165C38.6513 0.724161 39.1536 0.937267 39.5747 1.2693C39.9958 1.60133 40.3201 2.04016 40.514 2.5401C40.708 3.04003 40.7643 3.58281 40.6773 4.11193L36.1413 31.6259C35.7013 34.2799 32.7893 35.8019 30.3553 34.4799C28.3193 33.3739 25.2953 31.6699 22.5753 29.8919C21.2153 29.0019 17.0493 26.1519 17.5613 24.1239C18.0013 22.3899 25.0013 15.8739 29.0013 11.9999C30.5713 10.4779 29.8553 9.59993 28.0013 10.9999C23.3953 14.4759 16.0053 19.7619 13.5613 21.2499C11.4053 22.5619 10.2813 22.7859 8.93731 22.5619C6.48531 22.1539 4.21131 21.5219 2.35531 20.7519C-0.152693 19.7119 -0.0306929 16.2639 2.35331 15.2599L36.5533 0.85993Z" fill="#377D87"/> | |
3 | +</svg> |
public/images/svg/3.svg
... | ... | @@ -0,0 +1,3 @@ |
1 | +<svg width="50" height="54" viewBox="0 0 50 54" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
2 | +<path d="M5.66732 10.0832C5.66732 10.0783 5.66007 10.0373 5.7519 9.88742C5.85582 9.71826 6.06607 9.46692 6.45515 9.16C7.25265 8.53167 8.55765 7.85742 10.3847 7.25084C14.0145 6.03767 19.1813 5.24984 25.0006 5.24984C30.82 5.24984 35.9868 6.04009 39.6166 7.24842C41.4436 7.85742 42.7486 8.52925 43.5461 9.15759C43.9376 9.46692 44.1455 9.71826 44.247 9.88742C44.3437 10.0397 44.334 10.0808 44.334 10.0832C44.334 10.0904 44.3412 10.1315 44.2494 10.2789C44.1455 10.4481 43.9352 10.6994 43.5461 11.0063C42.7486 11.6347 41.4436 12.3089 39.6166 12.9155C35.9868 14.1287 30.82 14.9165 25.0006 14.9165C19.1813 14.9165 14.0145 14.1263 10.3847 12.9179C8.55765 12.3089 7.25265 11.6371 6.45515 11.0088C6.18174 10.8071 5.94472 10.5603 5.75432 10.2789C5.66007 10.1339 5.66732 10.0904 5.66732 10.0832ZM44.334 16.1901V26.9998C44.334 27.0023 44.334 27.0143 44.3267 27.0361C44.3078 27.0923 44.2818 27.1459 44.2494 27.1956C44.1455 27.3648 43.9352 27.6161 43.5461 27.923C42.7486 28.5513 41.4436 29.2256 39.6166 29.8322C35.9868 31.0429 30.82 31.8332 25.0006 31.8332C19.1813 31.8332 14.0145 31.0429 10.3847 29.8346C8.55765 29.2256 7.25265 28.5538 6.45515 27.9254C6.1817 27.7238 5.94469 27.477 5.75432 27.1956C5.72116 27.146 5.69437 27.0924 5.67457 27.0361C5.67053 27.0244 5.66809 27.0122 5.66732 26.9998V16.1901C6.69658 16.7061 7.76286 17.1448 8.85732 17.5023C13.0986 18.9161 18.8067 19.7498 25.0006 19.7498C31.1946 19.7498 36.9027 18.9161 41.144 17.5023C42.2386 17.1452 43.3049 16.7066 44.334 16.1901ZM44.334 33.1068V43.9165L44.3267 43.9528C44.3078 44.009 44.2818 44.0625 44.2494 44.1123C44.1455 44.2814 43.9352 44.5328 43.5461 44.8397C42.7486 45.468 41.4436 46.1423 39.6166 46.7488C35.9868 47.9596 30.82 48.7498 25.0006 48.7498C19.1813 48.7498 14.0145 47.9596 10.3847 46.7513C8.55765 46.1423 7.25265 45.4704 6.45515 44.8421C6.1817 44.6405 5.94469 44.3936 5.75432 44.1123C5.72116 44.0626 5.69437 44.009 5.67457 43.9528L5.66732 43.9165V33.1068C6.69635 33.6233 7.76268 34.0619 8.85732 34.419C13.0986 35.8328 18.8067 36.6665 25.0006 36.6665C31.1946 36.6665 36.9027 35.8328 41.144 34.419C42.2386 34.0619 43.3049 33.6233 44.334 33.1068ZM0.833984 43.9165C0.833984 45.9755 2.08823 47.5512 3.46332 48.6363C4.8674 49.7431 6.74998 50.6324 8.85732 51.3357C13.0986 52.7494 18.8067 53.5832 25.0006 53.5832C31.1946 53.5832 36.9027 52.7494 41.144 51.3357C43.2537 50.6348 45.1339 49.7407 46.538 48.6363C47.9155 47.5512 49.1673 45.9755 49.1673 43.9165V10.0832C49.1673 8.02417 47.9131 6.4485 46.538 5.36342C45.1339 4.25659 43.2513 3.36725 41.144 2.664C36.9027 1.25025 31.1946 0.416504 25.0006 0.416504C18.8067 0.416504 13.0986 1.25025 8.85732 2.664C6.74757 3.36484 4.8674 4.259 3.46332 5.36342C2.08582 6.4485 0.833984 8.02417 0.833984 10.0832V43.9165Z" fill="#377D87"/> | |
3 | +</svg> |
public/images/svg/4.svg
... | ... | @@ -0,0 +1,3 @@ |
1 | +<svg width="62" height="50" viewBox="0 0 62 50" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
2 | +<path d="M31 0.25L0.75 16.75L11.75 22.745V39.245L31 49.75L50.25 39.245V22.745L55.75 19.7475V38.75H61.25V16.75L31 0.25ZM49.755 16.75L31 26.98L12.245 16.75L31 6.52L49.755 16.75ZM44.75 36L31 43.48L17.25 36V25.7425L31 33.25L44.75 25.7425V36Z" fill="#377D87"/> | |
3 | +</svg> |
public/images/svg/5.svg
... | ... | @@ -0,0 +1,3 @@ |
1 | +<svg width="54" height="32" viewBox="0 0 54 32" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
2 | +<path d="M2.25 10.4998C9.07825 10.4998 14.1987 2.24976 14.1987 2.24976C14.1987 2.24976 19.3192 10.4998 26.1475 10.4998C32.973 10.4998 39.8013 2.24976 39.8013 2.24976C39.8013 2.24976 46.6295 10.4998 51.75 10.4998M2.25 29.7498C9.07825 29.7498 14.1987 21.4998 14.1987 21.4998C14.1987 21.4998 19.3192 29.7498 26.1475 29.7498C32.973 29.7498 39.8013 21.4998 39.8013 21.4998C39.8013 21.4998 46.6295 29.7498 51.75 29.7498" stroke="#377D87" stroke-width="4.125" stroke-linecap="round" stroke-linejoin="round"/> | |
3 | +</svg> |
public/images/svg/6.svg
... | ... | @@ -0,0 +1,4 @@ |
1 | +<svg width="54" height="60" viewBox="0 0 54 60" fill="none" xmlns="http://www.w3.org/2000/svg"> | |
2 | +<path d="M2.25 24.5C2.25 14.1298 2.25 8.94325 5.473 5.723C8.69325 2.5 13.8798 2.5 24.25 2.5H29.75C40.1202 2.5 45.3067 2.5 48.527 5.723C51.75 8.94325 51.75 14.1298 51.75 24.5V35.5C51.75 45.8702 51.75 51.0567 48.527 54.277C45.3067 57.5 40.1202 57.5 29.75 57.5H24.25C13.8798 57.5 8.69325 57.5 5.473 54.277C2.25 51.0567 2.25 45.8702 2.25 35.5V24.5Z" stroke="#377D87" stroke-width="4.125"/> | |
3 | +<path d="M16 24.5H38M16 35.5H29.75" stroke="#377D87" stroke-width="4.125" stroke-linecap="round"/> | |
4 | +</svg> |
public/images/wysiwyg.jpg
22.1 KB
resources/views/admin/ad_employers/index.blade.php
... | ... | @@ -131,9 +131,9 @@ |
131 | 131 | <?php $i = 0;?> |
132 | 132 | @foreach ($ad->jobs as $title) |
133 | 133 | <?php if ($i==0) {?> |
134 | - <p class="font-semibold text-xs">{{ mb_strimwidth($title->name, 0, 35, "...") }}</p> | |
134 | + <a href="{{ route('admin.edit_jobs', ['ad_jobs' => $title->id]) }}" class="font-semibold text-xs">{{ mb_strimwidth($title->name, 0, 35, "...") }}</a><br> | |
135 | 135 | <?php } else {?> |
136 | - <p class="font-semibold text-xs">/ {{ mb_strimwidth($title->name, 0, 35, "...") }}</p> | |
136 | + <a href="{{ route('admin.edit_jobs', ['ad_jobs' => $title->id]) }}" class="font-semibold text-xs">/ {{ mb_strimwidth($title->name, 0, 35, "...") }}</a><br> | |
137 | 137 | <?php } |
138 | 138 | $i++; |
139 | 139 | ?> |
resources/views/admin/ad_jobs/edit.blade.php
... | ... | @@ -0,0 +1,110 @@ |
1 | +@extends('layout.admin', ['title' => 'Админка - Редактирование должности в вакансии']) | |
2 | + | |
3 | +@section('content') | |
4 | + <form method="POST" action="{{ route('admin.update_jobs', ['ad_jobs' => $ad_jobs]) }}" enctype="multipart/form-data"> | |
5 | + @csrf | |
6 | + @method('PUT') | |
7 | + | |
8 | + <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | |
9 | + | |
10 | + <label class="block text-sm"> | |
11 | + <span class="text-gray-700 dark:text-gray-400">Минимальная зарплата</span> | |
12 | + <input name="min_salary" id="min_salary" | |
13 | + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | |
14 | + placeholder="Минимальная зарплата" value="{{ old('min_salary') ?? $ad_jobs->min_salary ?? '' }}" | |
15 | + /> | |
16 | + @error('min_salary') | |
17 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
18 | + {{ $message }} | |
19 | + </span> | |
20 | + @enderror | |
21 | + </label><br> | |
22 | + | |
23 | + <label class="block text-sm"> | |
24 | + <span class="text-gray-700 dark:text-gray-400">Максимальная зарплата</span> | |
25 | + <input name="max_salary" id="max_salary" | |
26 | + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | |
27 | + placeholder="Максимальная зарплата" value="{{ old('max_salary') ?? $ad_jobs->max_salary ?? '' }}" | |
28 | + /> | |
29 | + @error('max_salary') | |
30 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
31 | + {{ $message }} | |
32 | + </span> | |
33 | + @enderror | |
34 | + </label><br> | |
35 | + | |
36 | + <label class="block text-sm"> | |
37 | + <span class="text-gray-700 dark:text-gray-400">Регион</span> | |
38 | + <input name="region" id="region" | |
39 | + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | |
40 | + placeholder="Регион" value="{{ old('region') ?? $ad_jobs->region ?? '' }}" | |
41 | + /> | |
42 | + @error('region') | |
43 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
44 | + {{ $message }} | |
45 | + </span> | |
46 | + @enderror | |
47 | + </label><br> | |
48 | + | |
49 | + <label class="block text-sm"> | |
50 | + <span class="text-gray-700 dark:text-gray-400">Суточные</span> | |
51 | + <input name="sytki" id="sytki" | |
52 | + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | |
53 | + placeholder="Суточные" value="{{ old('sytki') ?? $ad_jobs->sytki ?? '' }}" | |
54 | + /> | |
55 | + @error('sytki') | |
56 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
57 | + {{ $message }} | |
58 | + </span> | |
59 | + @enderror | |
60 | + </label><br> | |
61 | + | |
62 | + <label class="block text-sm"> | |
63 | + <span class="text-gray-700 dark:text-gray-400">Посадка</span> | |
64 | + <input name="start" id="start" | |
65 | + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | |
66 | + placeholder="Посадка" value="{{ old('start') ?? $ad_jobs->start ?? '' }}" | |
67 | + /> | |
68 | + @error('start') | |
69 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
70 | + {{ $message }} | |
71 | + </span> | |
72 | + @enderror | |
73 | + </label><br> | |
74 | + | |
75 | + <label class="block text-sm"> | |
76 | + <span class="text-gray-700 dark:text-gray-400">Описание</span> | |
77 | + <textarea class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray ckeditor_" id="description" name="description" placeholder="Текст (html)" required | |
78 | + rows="10">{{ old('description') ?? $ad_jobs->description ?? '' }}</textarea> | |
79 | + @error('description') | |
80 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
81 | + {{ $message }} | |
82 | + </span> | |
83 | + @enderror | |
84 | + </label> | |
85 | + <br> | |
86 | + | |
87 | + <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | |
88 | + <div> | |
89 | + <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | |
90 | + Сохранить | |
91 | + </button> | |
92 | + <a href="{{ route('admin.ad-employers') }}" | |
93 | + class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | |
94 | + style="display: -webkit-inline-box; height: 30px!important;" | |
95 | + >Назад</a> | |
96 | + </div> | |
97 | + </div> | |
98 | + </div> | |
99 | + </form> | |
100 | + <script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> | |
101 | + | |
102 | + <!--<script src="{{ asset('./ckeditor/ckeditor.js') }}"></script>--> | |
103 | + <script> | |
104 | + CKEDITOR.replace( 'text', { | |
105 | + filebrowserUploadUrl: "{{route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | |
106 | + filebrowserImageUploadUrl: "{{ route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | |
107 | + filebrowserUploadMethod: 'form' | |
108 | + }); | |
109 | + </script> | |
110 | +@endsection |
resources/views/admin/employer/edit.blade.php
... | ... | @@ -12,8 +12,8 @@ |
12 | 12 | <label for="tab-btn-1">Персональная информация</label> |
13 | 13 | <input type="radio" name="tab-btn" id="tab-btn-2" value=""> |
14 | 14 | <label for="tab-btn-2">Настройки</label> |
15 | - <!--<input type="radio" name="tab-btn" id="tab-btn-3" value=""> | |
16 | - <label for="tab-btn-3">Вкладка 3</label>--> | |
15 | + <input type="radio" name="tab-btn" id="tab-btn-3" value=""> | |
16 | + <label for="tab-btn-3">Флот</label> | |
17 | 17 | <div id="content-1"> |
18 | 18 | |
19 | 19 | <label class="block text-sm"> |
... | ... | @@ -204,8 +204,77 @@ |
204 | 204 | </label><br> |
205 | 205 | |
206 | 206 | </div> |
207 | + | |
207 | 208 | <div id="content-3"> |
208 | - Содержимое 3... | |
209 | + <label class="block text-sm"> | |
210 | + <span class="text-gray-700 dark:text-gray-400">Флоты</span> | |
211 | + <a href="{{ route('admin.flot_add', ['employer' => $employer->id]) }}" | |
212 | + class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | |
213 | + style="display: -webkit-inline-box; height: 30px!important;" | |
214 | + >Новый корабль</a> | |
215 | + @if ($flots->count()) | |
216 | + <table class="w-full whitespace-no-wrap"> | |
217 | + <thead> | |
218 | + <tr class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"> | |
219 | + <th class="px-4 py-3">ID</th> | |
220 | + <th class="px-4 py-3">Название</th> | |
221 | + <th class="px-4 py-3">Картинка</th> | |
222 | + <th class="px-4 py-3">Дата регист.</th> | |
223 | + <th class="px-4 py-3">Редакт.</th> | |
224 | + </tr> | |
225 | + </thead> | |
226 | + <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | |
227 | + @foreach($flots as $flot) | |
228 | + <tr class="text-gray-700 dark:text-gray-400"> | |
229 | + <td class="px-4 py-3 text-xs"> | |
230 | + {{ $flot->id }} | |
231 | + </td> | |
232 | + <td class="px-4 py-3 text-xs"> | |
233 | + {{ $flot->name }} | |
234 | + </td> | |
235 | + <td class="px-4 py-3 text-xs"> | |
236 | + @if (isset($flot->image)) | |
237 | + <div class="flex items-center text-sm"> | |
238 | + <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | |
239 | + <img | |
240 | + class="object-cover w-full h-full rounded-full" | |
241 | + src="{{ asset(Storage::url($flot->image)) }}" | |
242 | + alt="{{ $flot->name }}" | |
243 | + loading="lazy" | |
244 | + /> | |
245 | + <div | |
246 | + class="absolute inset-0 rounded-full shadow-inner" | |
247 | + aria-hidden="true" | |
248 | + ></div> | |
249 | + </div> | |
250 | + </div> | |
251 | + @else | |
252 | + - | |
253 | + @endif | |
254 | + </td> | |
255 | + <td class="px-4 py-3 text-xs"> | |
256 | + {{ $flot->created_at }} | |
257 | + </td> | |
258 | + <td class="px-4 py-3 text-xs"> | |
259 | + <div class="flex items-center text-sm"> | |
260 | + <div> | |
261 | + <a href="{{ route('admin.flot', ['flot' => $flot->id, 'employer' => $flot->employer_id]) }}" class="text-xs text-gray-600 dark:text-gray-400"> | |
262 | + Редактировать | |
263 | + </a> | | |
264 | + <a href="{{ route('admin.flot_delete', ['flot' => $flot->id, 'employer_id' => $flot->employer_id]) }}" class="text-xs text-gray-600 dark:text-gray-400"> | |
265 | + Удалить | |
266 | + </a> | |
267 | + </div> | |
268 | + </div> | |
269 | + </td> | |
270 | + </tr> | |
271 | + @endforeach | |
272 | + </tbody> | |
273 | + </table> | |
274 | + @else | |
275 | + <h2>Нет данных</h2> | |
276 | + @endif | |
277 | + </label> | |
209 | 278 | </div> |
210 | 279 | </div> |
211 | 280 | <br> |
... | ... | @@ -220,239 +289,7 @@ |
220 | 289 | >Назад</a> |
221 | 290 | |
222 | 291 | </div> |
223 | - <!--<div> | |
224 | - <a href="">Флот</a> | |
225 | - </div> | |
226 | - <div> | |
227 | - <a href="">Вакансии</a> | |
228 | - </div> | |
229 | - <div> | |
230 | - <a href="">Контакты</a> | |
231 | - </div>--> | |
232 | 292 | </div> |
233 | 293 | </div> |
234 | 294 | </form> |
235 | - <!-- | |
236 | - <label class="block mt-4 text-sm"> | |
237 | - <span class="text-gray-700 dark:text-gray-400"> | |
238 | - Requested Limit | |
239 | - </span> | |
240 | - <select | |
241 | - 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" | |
242 | - > | |
243 | - <option>$1,000</option> | |
244 | - <option>$5,000</option> | |
245 | - <option>$10,000</option> | |
246 | - <option>$25,000</option> | |
247 | - </select> | |
248 | - </label> | |
249 | - | |
250 | - <label class="block mt-4 text-sm"> | |
251 | - <span class="text-gray-700 dark:text-gray-400"> | |
252 | - Multiselect | |
253 | - </span> | |
254 | - <select | |
255 | - class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | |
256 | - multiple | |
257 | - > | |
258 | - <option>Option 1</option> | |
259 | - <option>Option 2</option> | |
260 | - <option>Option 3</option> | |
261 | - <option>Option 4</option> | |
262 | - <option>Option 5</option> | |
263 | - </select> | |
264 | - </label> | |
265 | - | |
266 | - <label class="block mt-4 text-sm"> | |
267 | - <span class="text-gray-700 dark:text-gray-400">Message</span> | |
268 | - <textarea | |
269 | - class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | |
270 | - rows="3" | |
271 | - placeholder="Enter some long form content." | |
272 | - ></textarea> | |
273 | - </label> | |
274 | - | |
275 | - <div class="flex mt-6 text-sm"> | |
276 | - <label class="flex items-center dark:text-gray-400"> | |
277 | - <input | |
278 | - type="checkbox" | |
279 | - class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | |
280 | - /> | |
281 | - <span class="ml-2"> | |
282 | - I agree to the | |
283 | - <span class="underline">privacy policy</span> | |
284 | - </span> | |
285 | - </label> | |
286 | - </div> | |
287 | -</div> | |
288 | - | |
289 | -<!-- Validation inputs --> | |
290 | - <!--<h4 | |
291 | - class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | |
292 | - > | |
293 | - Validation | |
294 | - </h4> | |
295 | - <div | |
296 | - class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | |
297 | - > | |
298 | - <!-- Invalid input --> | |
299 | - <!--<label class="block text-sm"> | |
300 | - <span class="text-gray-700 dark:text-gray-400"> | |
301 | - Invalid input | |
302 | - </span> | |
303 | - <input | |
304 | - class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" | |
305 | - placeholder="Jane Doe" | |
306 | - /> | |
307 | - <span class="text-xs text-red-600 dark:text-red-400"> | |
308 | - Your password is too short. | |
309 | - </span> | |
310 | - </label> | |
311 | - | |
312 | - <!-- Valid input --> | |
313 | - <!--<label class="block mt-4 text-sm"> | |
314 | - <span class="text-gray-700 dark:text-gray-400"> | |
315 | - Valid input | |
316 | - </span> | |
317 | - <input | |
318 | - class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" | |
319 | - placeholder="Jane Doe" | |
320 | - /> | |
321 | - <span class="text-xs text-green-600 dark:text-green-400"> | |
322 | - Your password is strong. | |
323 | - </span> | |
324 | - </label> | |
325 | - | |
326 | - <!-- Helper text --> | |
327 | - <!--<label class="block mt-4 text-sm"> | |
328 | - <span class="text-gray-700 dark:text-gray-400"> | |
329 | - Helper text | |
330 | - </span> | |
331 | - <input | |
332 | - class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | |
333 | - placeholder="Jane Doe" | |
334 | - /> | |
335 | - <span class="text-xs text-gray-600 dark:text-gray-400"> | |
336 | - Your password must be at least 6 characters long. | |
337 | - </span> | |
338 | - </label> | |
339 | -</div> | |
340 | - | |
341 | -<!-- Inputs with icons --> | |
342 | - <!--<h4 | |
343 | - class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | |
344 | - > | |
345 | - Icons | |
346 | - </h4> | |
347 | - <div | |
348 | - class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | |
349 | - > | |
350 | - <label class="block text-sm"> | |
351 | - <span class="text-gray-700 dark:text-gray-400">Icon left</span> | |
352 | - <!-- focus-within sets the color for the icon when input is focused --> | |
353 | - <!--<div | |
354 | - class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | |
355 | - > | |
356 | - <input | |
357 | - class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | |
358 | - placeholder="Jane Doe" | |
359 | - /> | |
360 | - <div | |
361 | - class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" | |
362 | - > | |
363 | - <svg | |
364 | - class="w-5 h-5" | |
365 | - aria-hidden="true" | |
366 | - fill="none" | |
367 | - stroke-linecap="round" | |
368 | - stroke-linejoin="round" | |
369 | - stroke-width="2" | |
370 | - viewBox="0 0 24 24" | |
371 | - stroke="currentColor" | |
372 | - > | |
373 | - <path | |
374 | - d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | |
375 | - ></path> | |
376 | - </svg> | |
377 | - </div> | |
378 | - </div> | |
379 | -</label> | |
380 | - | |
381 | -<label class="block mt-4 text-sm"> | |
382 | - <span class="text-gray-700 dark:text-gray-400">Icon right</span> | |
383 | - <!-- focus-within sets the color for the icon when input is focused --> | |
384 | - <!--<div | |
385 | - class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | |
386 | - > | |
387 | - <input | |
388 | - class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | |
389 | - placeholder="Jane Doe" | |
390 | - /> | |
391 | - <div | |
392 | - class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" | |
393 | - > | |
394 | - <svg | |
395 | - class="w-5 h-5" | |
396 | - aria-hidden="true" | |
397 | - fill="none" | |
398 | - stroke-linecap="round" | |
399 | - stroke-linejoin="round" | |
400 | - stroke-width="2" | |
401 | - viewBox="0 0 24 24" | |
402 | - stroke="currentColor" | |
403 | - > | |
404 | - <path | |
405 | - d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | |
406 | - ></path> | |
407 | - </svg> | |
408 | - </div> | |
409 | - </div> | |
410 | -</label> | |
411 | -</div> | |
412 | - | |
413 | -<!-- Inputs with buttons --> | |
414 | - <!--<h4 | |
415 | - class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | |
416 | - > | |
417 | - Buttons | |
418 | - </h4> | |
419 | - <div | |
420 | - class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | |
421 | - > | |
422 | - <label class="block text-sm"> | |
423 | - <span class="text-gray-700 dark:text-gray-400"> | |
424 | - Button left | |
425 | - </span> | |
426 | - <div class="relative"> | |
427 | - <input | |
428 | - class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | |
429 | - placeholder="Jane Doe" | |
430 | - /> | |
431 | - <button | |
432 | - class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | |
433 | - > | |
434 | - Click | |
435 | - </button> | |
436 | - </div> | |
437 | - </label> | |
438 | - | |
439 | - <label class="block mt-4 text-sm"> | |
440 | - <span class="text-gray-700 dark:text-gray-400"> | |
441 | - Button right | |
442 | - </span> | |
443 | - <div | |
444 | - class="relative text-gray-500 focus-within:text-purple-600" | |
445 | - > | |
446 | - <input | |
447 | - class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | |
448 | - placeholder="Jane Doe" | |
449 | - /> | |
450 | - <button | |
451 | - class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | |
452 | - > | |
453 | - Click | |
454 | - </button> | |
455 | - </div> | |
456 | - </label> | |
457 | - </div>--> | |
458 | 295 | @endsection |
resources/views/admin/flot/add.blade.php
resources/views/admin/flot/edit.blade.php
... | ... | @@ -0,0 +1,7 @@ |
1 | +@extends('layout.admin', ['title' => 'Админка - Редактирование корабля']) | |
2 | + | |
3 | +@section('content') | |
4 | + <form method="POST" action="{{ route('admin.flot_edit', ['flot' => $flot]) }}" enctype="multipart/form-data"> | |
5 | + @include('admin.flot.test', ['flot' => $flot]) | |
6 | + </form> | |
7 | +@endsection |
resources/views/admin/flot/flot_add.blade.php
... | ... | @@ -0,0 +1,71 @@ |
1 | +@csrf | |
2 | + | |
3 | +@isset($flot) | |
4 | + @method('PUT') | |
5 | +@endisset | |
6 | + | |
7 | +<div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | |
8 | + <input type="hidden" id="id" name="id" value="{{ $flot->id }}"/> | |
9 | + <label class="block text-sm"> | |
10 | + <span class="text-gray-700 dark:text-gray-400">Название корабля</span> | |
11 | + <input name="name" id="name" | |
12 | + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | |
13 | + placeholder="Название учебного заведения" value="{{ old('name') ?? $flot->name ?? '' }}" | |
14 | + /> | |
15 | + @error('name') | |
16 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
17 | + {{ $message }} | |
18 | + </span> | |
19 | + @enderror | |
20 | + </label><br> | |
21 | + | |
22 | + <label class="block text-sm"> | |
23 | + <span class="text-gray-700 dark:text-gray-400">Текст</span> | |
24 | + <textarea class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray ckeditor_" name="text" placeholder="Текст (html)" required | |
25 | + rows="10">{{ old('text') ?? $flot->text ?? '' }}</textarea> | |
26 | + @error('text') | |
27 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
28 | + {{ $message }} | |
29 | + </span> | |
30 | + @enderror | |
31 | + </label><br> | |
32 | + | |
33 | + <label class="block text-sm"> | |
34 | + <span class="text-gray-700 dark:text-gray-400">Картинка</span> | |
35 | + <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 | |
36 | + focus:border-purple-400 focus:outline-none focus:shadow-outline-purple | |
37 | + dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | |
38 | + id="image" name="image" accept="image/png, image/jpeg"> | |
39 | + @error('image') | |
40 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
41 | + {{ $message }} | |
42 | + </span> | |
43 | + @enderror | |
44 | + @isset($education->image) | |
45 | + <img src="{{asset(Storage::url($education->image))}}" width="100px"/> | |
46 | + @endisset | |
47 | + </label><br> | |
48 | + | |
49 | + <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | |
50 | + <div> | |
51 | + <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | |
52 | + Сохранить | |
53 | + </button> | |
54 | + <a href="{{ route('admin.education.index') }}" | |
55 | + class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | |
56 | + style="display: -webkit-inline-box; height: 30px!important;" | |
57 | + >Назад</a> | |
58 | + </div> | |
59 | + </div> | |
60 | +</div> | |
61 | + | |
62 | +<script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> | |
63 | + | |
64 | +<!--<script src="{{ asset('./ckeditor/ckeditor.js') }}"></script>--> | |
65 | +<script> | |
66 | + CKEDITOR.replace( 'text', { | |
67 | + filebrowserUploadUrl: "{{route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | |
68 | + filebrowserImageUploadUrl: "{{ route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | |
69 | + filebrowserUploadMethod: 'form' | |
70 | + }); | |
71 | +</script> |
resources/views/admin/flot/test.blade.php
... | ... | @@ -0,0 +1,71 @@ |
1 | +@csrf | |
2 | + | |
3 | +@isset($flot) | |
4 | + @method('PUT') | |
5 | +@endisset | |
6 | + | |
7 | +<div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | |
8 | + <input type="hidden" id="employer_id" name="employer_id" value="@isset($flot->employer_id) {{$flot->employer_id }} @else {{ $employer->id }} @endif"/> | |
9 | + <label class="block text-sm"> | |
10 | + <span class="text-gray-700 dark:text-gray-400">Название корабля</span> | |
11 | + <input name="name" id="name" | |
12 | + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | |
13 | + placeholder="Название корабля" value="{{ old('name') ?? $flot->name ?? '' }}" | |
14 | + /> | |
15 | + @error('name') | |
16 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
17 | + {{ $message }} | |
18 | + </span> | |
19 | + @enderror | |
20 | + </label><br> | |
21 | + | |
22 | + <label class="block text-sm"> | |
23 | + <span class="text-gray-700 dark:text-gray-400">Текст</span> | |
24 | + <textarea class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray ckeditor_" name="text" placeholder="Текст (html)" required | |
25 | + rows="10">{{ old('text') ?? $flot->text ?? '' }}</textarea> | |
26 | + @error('text') | |
27 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
28 | + {{ $message }} | |
29 | + </span> | |
30 | + @enderror | |
31 | + </label><br> | |
32 | + | |
33 | + <label class="block text-sm"> | |
34 | + <span class="text-gray-700 dark:text-gray-400">Картинка</span> | |
35 | + <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 | |
36 | + focus:border-purple-400 focus:outline-none focus:shadow-outline-purple | |
37 | + dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | |
38 | + id="image" name="image" accept="image/png, image/jpeg"> | |
39 | + @error('image') | |
40 | + <span class="text-xs text-red-600 dark:text-red-400"> | |
41 | + {{ $message }} | |
42 | + </span> | |
43 | + @enderror | |
44 | + @isset($flot->image) | |
45 | + <img src="{{asset(Storage::url($flot->image))}}" width="100px"/> | |
46 | + @endisset | |
47 | + </label><br> | |
48 | + | |
49 | + <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | |
50 | + <div> | |
51 | + <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | |
52 | + Сохранить | |
53 | + </button> | |
54 | + <a href="{{ route('admin.education.index') }}" | |
55 | + class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | |
56 | + style="display: -webkit-inline-box; height: 30px!important;" | |
57 | + >Назад</a> | |
58 | + </div> | |
59 | + </div> | |
60 | +</div> | |
61 | + | |
62 | +<script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> | |
63 | + | |
64 | +<!--<script src="{{ asset('./ckeditor/ckeditor.js') }}"></script>--> | |
65 | +<script> | |
66 | + CKEDITOR.replace( 'text', { | |
67 | + filebrowserUploadUrl: "{{route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | |
68 | + filebrowserImageUploadUrl: "{{ route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | |
69 | + filebrowserUploadMethod: 'form' | |
70 | + }); | |
71 | +</script> |
resources/views/ajax/companies.blade.php
... | ... | @@ -0,0 +1,30 @@ |
1 | +<div class="main__employers-one"> | |
2 | +@if ($emps->count()) | |
3 | + @foreach($emps as $emp) | |
4 | + <div class="main__employers-item"> | |
5 | + <span class="main__employers-item-inner"> | |
6 | + <img src="{{ asset(Storage::url($emp->logo)) }}" alt="{{ $emp->name_company }}" class="main__employers-item-pic"> | |
7 | + <span class="main__employers-item-body"> | |
8 | + <b>{{ $emp->name_company }}</b> | |
9 | + <i>{{ $emp->ads->count() }} вакансия(ий)</i> | |
10 | + </span> | |
11 | + </span> | |
12 | + <a href="{{ route('info_company', ['company' => $emp->id]) }}" class="button button_light main__employers-item-more">Подробнее</a> | |
13 | + | |
14 | + @if ($emp->oficial_status == 1) | |
15 | + <span class="main__employers-item-label"> | |
16 | + <svg> | |
17 | + <use xlink:href="images/sprite.svg#v"></use> | |
18 | + </svg> | |
19 | + <span>Компания одобрена сервисом rekamore.su</span> | |
20 | + </span> | |
21 | + @endif | |
22 | + </div> | |
23 | + @endforeach | |
24 | +</div> | |
25 | + | |
26 | +{{ $emps->appends($_GET)->links('paginate') }} | |
27 | +@else | |
28 | + <H2>Нет данных</H2> | |
29 | +@endif | |
30 | + |
resources/views/ajax/companies2.blade.php
... | ... | @@ -0,0 +1,29 @@ |
1 | +@if ($emps->count()) | |
2 | + <div class="main__employers-two"> | |
3 | + @foreach($emps as $emp) | |
4 | + <div class="main__employers-item"> | |
5 | + <span class="main__employers-item-inner"> | |
6 | + <img src="{{ asset(Storage::url($emp->logo)) }}" alt="{{ $emp->name_company }}" class="main__employers-item-pic"> | |
7 | + <span class="main__employers-item-body"> | |
8 | + <b>{{ $emp->name_company }}</b> | |
9 | + <i>{{ $emp->ads->count() }} вакансия(ий)</i> | |
10 | + </span> | |
11 | + </span> | |
12 | + <a href="{{ route('info_company', ['company' => $emp->id]) }}" class="button button_light main__employers-item-more">Подробнее</a> | |
13 | + @if ($emp->oficial_status == 1) | |
14 | + <span class="main__employers-item-label"> | |
15 | + <svg> | |
16 | + <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | |
17 | + </svg> | |
18 | + <span>Компания одобрена сервисом rekamore.su</span> | |
19 | + </span> | |
20 | + @endif | |
21 | + </div> | |
22 | + @endforeach | |
23 | + </div> | |
24 | + {{ $emps->appends($_GET)->links('paginate') }} | |
25 | +@else | |
26 | + <H2>Нет данных</H2> | |
27 | +@endif | |
28 | + | |
29 | + |
resources/views/ajax/list_vacancies.blade.php
... | ... | @@ -0,0 +1,82 @@ |
1 | +@if ($Query->count()) | |
2 | +@foreach ($Query as $Q) | |
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"> | |
5 | + <svg> | |
6 | + <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> | |
7 | + </svg> | |
8 | + <span> | |
9 | + Вернуться к списку вакансий | |
10 | + </span> | |
11 | + </a> | |
12 | + <div class="main__employer-page-two-item-toper"> | |
13 | + @if (isset($Q->employer)) | |
14 | + <img src="{{ asset(Storage::url($Q->employer->logo)) }}" alt="{{ $Q->employer->name }}"> | |
15 | + @endif | |
16 | + <span>@if (!empty($Q->name)) {{ $Q->name }} @endif</span> | |
17 | + </div> | |
18 | + <div class="main__employer-page-two-item-text"> | |
19 | + <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор | |
20 | + специалистов на следующие должности:</div> | |
21 | + <div class="main__employer-page-two-item-text-links"> | |
22 | + @if (isset($Q->jobs)) | |
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> | |
25 | + @endforeach | |
26 | + @endif | |
27 | + </div> | |
28 | + </div> | |
29 | + <div class="main__employer-page-two-item-text"> | |
30 | + <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div> | |
31 | + <div class="main__employer-page-two-item-text-body"> | |
32 | + {!! $Q->text !!} | |
33 | + </div> | |
34 | + </div> | |
35 | + <div class="main__employer-page-two-item-text"> | |
36 | + <div class="main__employer-page-two-item-text-name">Наши ожидания:</div> | |
37 | + <div class="main__employer-page-two-item-text-body"> | |
38 | + {!! $Q->description !!} | |
39 | + </div> | |
40 | + </div> | |
41 | + <div class="main__employer-page-two-item-text"> | |
42 | + <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div> | |
43 | + <div class="main__employer-page-two-item-text-body"> | |
44 | + {!! $Q->contacts_emails !!} | |
45 | + </div> | |
46 | + </div> | |
47 | + <div class="main__employer-page-two-item-text"> | |
48 | + <div class="main__employer-page-two-item-text-name">Или звоните:</div> | |
49 | + <div class="main__employer-page-two-item-text-body"> | |
50 | + {!! $Q->contacts_telephones !!} | |
51 | + </div> | |
52 | + </div> | |
53 | + <div class="main__employer-page-two-item-tags"> | |
54 | + @if (isset($Q->jobs)) | |
55 | + @foreach ($Q->jobs as $key => $j) | |
56 | + <span class="main__employer-page-two-item-tag">#{{ $j->name }}</span> | |
57 | + @endforeach | |
58 | + @endif | |
59 | + </div> | |
60 | + <div class="main__employer-page-two-item-buttons"> | |
61 | + <button type="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> | |
64 | + </div> | |
65 | + <div class="main__employer-page-two-item-bottom"> | |
66 | + <div class="main__employer-page-two-item-bottom-date">{{ $Q->created_at }}</div> | |
67 | + <button type="button" class="like main__employer-page-two-item-bottom-like js-toggle"> | |
68 | + <svg> | |
69 | + <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use> | |
70 | + </svg> | |
71 | + </button> | |
72 | + </div> | |
73 | +</div> | |
74 | +@endforeach | |
75 | +<div style="margin-top: 20px"> | |
76 | + {{ $Query->appends($_GET)->links('paginate') }} | |
77 | +</div> | |
78 | +@else | |
79 | + <div class="main__vacancies-item main__employer-page-two-item"> | |
80 | + Нет вакансий по данному запросу | |
81 | + </div> | |
82 | +@endif |
resources/views/ajax/vacance-item.blade.php
resources/views/ajax/vacancies.blade.php
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 | @endphp |
4 | 4 | @if ($categories->count()) |
5 | 5 | @foreach ($categories as $cat) |
6 | - <a href="#" class="vacancies__item"> | |
6 | + <a href="{{ route('list-vacancies', ['categories' => $cat->id]) }}" class="vacancies__item"> | |
7 | 7 | <span style="border-color:{{$colors[$i]}}"> |
8 | 8 | <b>{{ $cat->name }}</b> |
9 | 9 | <u>{{ $cat->min_salary }} — {{ $cat->max_salary }} ₽</u> |
resources/views/companies.blade.php
... | ... | @@ -0,0 +1,182 @@ |
1 | +@extends('layout.frontend', ['title' => 'Судоходные компании РекаМоре']) | |
2 | + | |
3 | +@section('scripts') | |
4 | + <script> | |
5 | + console.log('Test system'); | |
6 | + $(document).on('change', '#sort_ajax', function() { | |
7 | + var this_ = $(this); | |
8 | + var val_ = this_.val(); | |
9 | + console.log('sort items '+val_); | |
10 | + | |
11 | + $.ajax({ | |
12 | + type: "GET", | |
13 | + url: "{{ route('shipping_companies') }}", | |
14 | + data: "sort="+val_+"&block=1", | |
15 | + success: function (data) { | |
16 | + console.log('Выбор сортировки'); | |
17 | + console.log(data); | |
18 | + $('#block_1').html(data); | |
19 | + }, | |
20 | + headers: { | |
21 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
22 | + }, | |
23 | + error: function (data) { | |
24 | + data = JSON.stringify(data); | |
25 | + console.log('Error: ' + data); | |
26 | + } | |
27 | + }); | |
28 | + | |
29 | + $.ajax({ | |
30 | + type: "GET", | |
31 | + url: "{{ route('shipping_companies') }}", | |
32 | + data: "sort="+val_+"&block=2", | |
33 | + success: function (data) { | |
34 | + console.log('Выбор сортировки2'); | |
35 | + console.log(data); | |
36 | + history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); | |
37 | + $('#block_2').html(data); | |
38 | + }, | |
39 | + headers: { | |
40 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
41 | + }, | |
42 | + error: function (data) { | |
43 | + data = JSON.stringify(data); | |
44 | + console.log('Error: ' + data); | |
45 | + } | |
46 | + }); | |
47 | + }); | |
48 | + | |
49 | + $(document).ready(function(){ | |
50 | + var sel = $('#select2-sort_ajax-container'); | |
51 | + var key = getUrlParameter('sort'); | |
52 | + | |
53 | + if (key !=='') { | |
54 | + console.log(key); | |
55 | + switch (key) { | |
56 | + case "default": sel.html('Сортировка (по умолчанию)'); break; | |
57 | + case "name_up": sel.html('По имени (возрастание)'); break; | |
58 | + case "name_down": sel.html('По дате (убывание)'); break; | |
59 | + case "created_at_up": sel.html('По дате (возрастание)'); break; | |
60 | + case "created_at_down": sel.html('По дате (убывание)'); break; | |
61 | + } | |
62 | + | |
63 | + } | |
64 | + }); | |
65 | + </script> | |
66 | +@endsection | |
67 | + | |
68 | +@section('content') | |
69 | +<section class="thing"> | |
70 | + <div class="container"> | |
71 | + <form class="thing__body"> | |
72 | + @csrf | |
73 | + <ul class="breadcrumbs thing__breadcrumbs"> | |
74 | + <li><a href="{{ route('index') }}">Главная</a></li> | |
75 | + <li><b>Работодатели</b></li> | |
76 | + </ul> | |
77 | + <h1 class="thing__title">Работодатели</h1> | |
78 | + <p class="thing__text">С другой стороны, социально-экономическое развитие не оставляет шанса для | |
79 | + существующих финансовых и административных условий.</p> | |
80 | + <div class="search thing__search"> | |
81 | + <input type="search" id="search" name="search" class="input" value="{{ (isset($_GET['search'])) ? $_GET['search'] : '' }}" placeholder="Введите наименование работодателя" required> | |
82 | + <button type="submit" class="button">Найти</button> | |
83 | + <span> | |
84 | + <svg> | |
85 | + <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> | |
86 | + </svg> | |
87 | + </span> | |
88 | + </div> | |
89 | + </form> | |
90 | + </div> | |
91 | +</section> | |
92 | +<main class="main"> | |
93 | + <div class="container"> | |
94 | + <div class="main__employers"> | |
95 | + <div class="filters"> | |
96 | + <div class="filters__label">Показано @if ($count_emps < 4) 1 - {{ $count_emps }} @else 1 – 4 @endif из {{ $count_emps }} результатов поиска</div> | |
97 | + <div class="filters__body"> | |
98 | + <div class="select filters__select"> | |
99 | + <select class="js-select2" id="sort_ajax" name="sort_ajax"> | |
100 | + <option value="default">Сортировка (по умолчанию)</option> | |
101 | + <option value="name_up">По имени (возрастание)</option> | |
102 | + <option value="name_down">По имени (убывание)</option> | |
103 | + <option value="created_at_up">По дате (возрастание)</option> | |
104 | + <option value="created_at_down">По дате (убывание)</option> | |
105 | + </select> | |
106 | + </div> | |
107 | + <button type="button" class="filters__item active" data-tab="1"> | |
108 | + <svg> | |
109 | + <use xlink:href="{{ asset('images/sprite.svg#grid-1') }}"></use> | |
110 | + </svg> | |
111 | + </button> | |
112 | + <button type="button" class="filters__item" data-tab="2"> | |
113 | + <svg> | |
114 | + <use xlink:href="{{ asset('images/sprite.svg#grid-2') }}"></use> | |
115 | + </svg> | |
116 | + </button> | |
117 | + </div> | |
118 | + </div> | |
119 | + <div class="main__employers-body showed" data-body="1" id="block_1" name="block_1"> | |
120 | + <div class="main__employers-one"> | |
121 | + @if ($emps->count()) | |
122 | + @foreach($emps as $emp) | |
123 | + <div class="main__employers-item"> | |
124 | + <span class="main__employers-item-inner"> | |
125 | + <img src="{{ asset(Storage::url($emp->logo)) }}" alt="{{ $emp->name_company }}" class="main__employers-item-pic"> | |
126 | + <span class="main__employers-item-body"> | |
127 | + <b>{{ $emp->name_company }}</b> | |
128 | + <i>{{ $emp->ads->count() }} вакансия(ий)</i> | |
129 | + </span> | |
130 | + </span> | |
131 | + <a href="{{ route('info_company', ['company' => $emp->id]) }}" class="button button_light main__employers-item-more">Подробнее</a> | |
132 | + | |
133 | + @if ($emp->oficial_status == 1) | |
134 | + <span class="main__employers-item-label"> | |
135 | + <svg> | |
136 | + <use xlink:href="images/sprite.svg#v"></use> | |
137 | + </svg> | |
138 | + <span>Компания одобрена сервисом rekamore.su</span> | |
139 | + </span> | |
140 | + @endif | |
141 | + </div> | |
142 | + @endforeach | |
143 | + </div> | |
144 | + | |
145 | + {{ $emps->appends($_GET)->links('paginate') }} | |
146 | + @else | |
147 | + <H2>Нет данных</H2> | |
148 | + @endif | |
149 | + </div> | |
150 | + <div class="main__employers-body" data-body="2" id="block_2" name="block_2"> | |
151 | + @if ($emps->count()) | |
152 | + <div class="main__employers-two"> | |
153 | + @foreach($emps as $emp) | |
154 | + <div class="main__employers-item"> | |
155 | + <span class="main__employers-item-inner"> | |
156 | + <img src="{{ asset(Storage::url($emp->logo)) }}" alt="{{ $emp->name_company }}" class="main__employers-item-pic"> | |
157 | + <span class="main__employers-item-body"> | |
158 | + <b>{{ $emp->name_company }}</b> | |
159 | + <i>{{ $emp->ads->count() }} вакансия(ий)</i> | |
160 | + </span> | |
161 | + </span> | |
162 | + <a href="{{ route('info_company', ['company' => $emp->id]) }}" class="button button_light main__employers-item-more">Подробнее</a> | |
163 | + @if ($emp->oficial_status == 1) | |
164 | + <span class="main__employers-item-label"> | |
165 | + <svg> | |
166 | + <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | |
167 | + </svg> | |
168 | + <span>Компания одобрена сервисом rekamore.su</span> | |
169 | + </span> | |
170 | + @endif | |
171 | + </div> | |
172 | + @endforeach | |
173 | + </div> | |
174 | + {{ $emps->appends($_GET)->links('paginate') }} | |
175 | + @else | |
176 | + <H2>Нет данных</H2> | |
177 | + @endif | |
178 | + </div> | |
179 | + </div> | |
180 | + </div> | |
181 | +</main> | |
182 | +@endsection |
resources/views/contacts.blade.php
... | ... | @@ -0,0 +1,140 @@ |
1 | +@extends('layout.frontend', ['title' => 'Образование и образовательные программы - РекаМоре']) | |
2 | + | |
3 | +@section('scripts') | |
4 | + <script> | |
5 | + console.log('Test system'); | |
6 | + $(document).on('change', '#sort_ajax', function() { | |
7 | + var this_ = $(this); | |
8 | + var val_ = this_.val(); | |
9 | + console.log('sort items '+val_); | |
10 | + | |
11 | + $.ajax({ | |
12 | + type: "GET", | |
13 | + url: "{{ route('shipping_companies') }}", | |
14 | + data: "sort="+val_+"&block=1", | |
15 | + success: function (data) { | |
16 | + console.log('Выбор сортировки'); | |
17 | + console.log(data); | |
18 | + $('#block_1').html(data); | |
19 | + }, | |
20 | + headers: { | |
21 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
22 | + }, | |
23 | + error: function (data) { | |
24 | + data = JSON.stringify(data); | |
25 | + console.log('Error: ' + data); | |
26 | + } | |
27 | + }); | |
28 | + | |
29 | + $.ajax({ | |
30 | + type: "GET", | |
31 | + url: "{{ route('shipping_companies') }}", | |
32 | + data: "sort="+val_+"&block=2", | |
33 | + success: function (data) { | |
34 | + console.log('Выбор сортировки2'); | |
35 | + console.log(data); | |
36 | + history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); | |
37 | + $('#block_2').html(data); | |
38 | + }, | |
39 | + headers: { | |
40 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
41 | + }, | |
42 | + error: function (data) { | |
43 | + data = JSON.stringify(data); | |
44 | + console.log('Error: ' + data); | |
45 | + } | |
46 | + }); | |
47 | + }); | |
48 | + </script> | |
49 | +@endsection | |
50 | + | |
51 | +@section('content') | |
52 | + <section class="thing"> | |
53 | + <div class="container"> | |
54 | + <div class="thing__body"> | |
55 | + <ul class="breadcrumbs thing__breadcrumbs"> | |
56 | + <li><a href="{{ route('index') }}">Главная</a></li> | |
57 | + <li><b>Контакты</b></li> | |
58 | + </ul> | |
59 | + <img src="{{ asset('images/14.jpg') }}" alt="" class="thing__pic thing__pic_two"> | |
60 | + <h1 class="thing__title">Мы специализированная доска объявлений для поиска плавсостава</h1> | |
61 | + <p class="thing__text">Нашим сервисом пользуются более 120 судоходных компаний России.</p> | |
62 | + <p class="thing__text">Со списком компаний Вы можете ознакомиться перейдя по кнопке ниже.</p> | |
63 | + <div class="thing__buttons"> | |
64 | + <a href="{{ route('shipping_companies') }}" class="button">Список компаний</a> | |
65 | + </div> | |
66 | + </div> | |
67 | + </div> | |
68 | + </section> | |
69 | + | |
70 | + <main class="main"> | |
71 | + <div class="container"> | |
72 | + <div class="main__cond"> | |
73 | + <div class="main__cond-label"> | |
74 | + На рынке мы с 2020 года. | |
75 | + <br>Мы молодая компания, которой важно сделать хороший и востребованный продукт! | |
76 | + </div> | |
77 | + <div> | |
78 | + <h3>За это время нам удалось:</h3> | |
79 | + <ul class="main__cond-icons"> | |
80 | + <li> | |
81 | + <span><img src="{{ asset('images/svg/1.svg') }}" alt=""></span> | |
82 | + Создать самое крупное сообщество Вконтакте по поиску работы на речноми морском флоте | |
83 | + </li> | |
84 | + <li> | |
85 | + <span><img src="{{ asset('images/svg/2.svg') }}" alt=""></span> | |
86 | + Создать самый крупный телеграм канал по поиску работы на речноми морском флоте | |
87 | + </li> | |
88 | + <li> | |
89 | + <span><img src="{{ asset('images/svg/3.svg') }}" alt=""></span> | |
90 | + Создать действительно эффективную и удобную базу анкет | |
91 | + </li> | |
92 | + <li> | |
93 | + <span><img src="{{ asset('images/svg/4.svg') }} " alt=""></span> | |
94 | + Разместить свою рекламу во многих учебных заведениях нашей страны. Колледжи,вузы, утц, медицинские центры охотно размещают нашу рекламу в своих заведениях | |
95 | + </li> | |
96 | + <li> | |
97 | + <span><img src="{{ asset('images/svg/5.svg') }}" alt=""></span> | |
98 | + Подключить к нашему сервису более 120 судоходных компаний России | |
99 | + </li> | |
100 | + <li> | |
101 | + <span><img src="{{ asset('images/svg/6.svg') }}" alt=""></span> | |
102 | + Оправдать доверие и ожидание, так как компании заключившие с нами договорв первый раз в 95% случаев остаются довольны сотрудничеством и продлевают договор | |
103 | + </li> | |
104 | + </ul> | |
105 | + </div> | |
106 | + <div> | |
107 | + <h3>Форма обратной связи</h3> | |
108 | + <p>Все поля обязательны для заполнения.</p> | |
109 | + <form class="callback main__cond-callback" action="" method="GET"> | |
110 | + <div class="callback__body"> | |
111 | + <input type="text" class="input" id="name" name="name" placeholder="Ваше имя" required> | |
112 | + <input type="text" class="input" id="company" name="company" placeholder="Название судоходной компании" required> | |
113 | + <input type="tel" class="input" id="telephone" name="telephone" placeholder="Телефон" required> | |
114 | + <input type="email" class="input" id="email" name="email" placeholder="Электронная почта" required> | |
115 | + </div> | |
116 | + <textarea class="textarea callback__textarea" id="text" name="text" placeholder="Текст сообщения" required></textarea> | |
117 | + <div class="callback__bottom"> | |
118 | + <label class="checkbox"> | |
119 | + <input type="checkbox" class="checkbox__input" id="box" name="box" required> | |
120 | + <span class="checkbox__icon"> | |
121 | + <svg> | |
122 | + <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | |
123 | + </svg> | |
124 | + </span> | |
125 | + <span class="checkbox__text"> | |
126 | + <span> | |
127 | + Я согласен(на) с | |
128 | + <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политикой конфиденциальности</a> | |
129 | + </span> | |
130 | + </span> | |
131 | + </label> | |
132 | + <button type="submit" class="button">Отправить</button> | |
133 | + </div> | |
134 | + </form> | |
135 | + </div> | |
136 | + </div> | |
137 | + </div> | |
138 | + </main> | |
139 | + </div> | |
140 | +@endsection |
resources/views/education.blade.php
... | ... | @@ -0,0 +1,157 @@ |
1 | +@extends('layout.frontend', ['title' => 'Образование и образовательные программы - РекаМоре']) | |
2 | + | |
3 | +@section('scripts') | |
4 | + <script> | |
5 | + console.log('Test system'); | |
6 | + $(document).on('change', '#sort_ajax', function() { | |
7 | + var this_ = $(this); | |
8 | + var val_ = this_.val(); | |
9 | + console.log('sort items '+val_); | |
10 | + | |
11 | + $.ajax({ | |
12 | + type: "GET", | |
13 | + url: "{{ route('shipping_companies') }}", | |
14 | + data: "sort="+val_+"&block=1", | |
15 | + success: function (data) { | |
16 | + console.log('Выбор сортировки'); | |
17 | + console.log(data); | |
18 | + $('#block_1').html(data); | |
19 | + }, | |
20 | + headers: { | |
21 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
22 | + }, | |
23 | + error: function (data) { | |
24 | + data = JSON.stringify(data); | |
25 | + console.log('Error: ' + data); | |
26 | + } | |
27 | + }); | |
28 | + | |
29 | + $.ajax({ | |
30 | + type: "GET", | |
31 | + url: "{{ route('shipping_companies') }}", | |
32 | + data: "sort="+val_+"&block=2", | |
33 | + success: function (data) { | |
34 | + console.log('Выбор сортировки2'); | |
35 | + console.log(data); | |
36 | + history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); | |
37 | + $('#block_2').html(data); | |
38 | + }, | |
39 | + headers: { | |
40 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
41 | + }, | |
42 | + error: function (data) { | |
43 | + data = JSON.stringify(data); | |
44 | + console.log('Error: ' + data); | |
45 | + } | |
46 | + }); | |
47 | + }); | |
48 | + | |
49 | + $(document).ready(function(){ | |
50 | + var sel = $('#select2-sort_ajax-container'); | |
51 | + var key = getUrlParameter('sort'); | |
52 | + | |
53 | + if (key !=='') { | |
54 | + console.log(key); | |
55 | + switch (key) { | |
56 | + case "default": sel.html('Сортировка (по умолчанию)'); break; | |
57 | + case "name_up": sel.html('По имени (возрастание)'); break; | |
58 | + case "name_down": sel.html('По дате (убывание)'); break; | |
59 | + case "created_at_up": sel.html('По дате (возрастание)'); break; | |
60 | + case "created_at_down": sel.html('По дате (убывание)'); break; | |
61 | + } | |
62 | + | |
63 | + } | |
64 | + }); | |
65 | + </script> | |
66 | +@endsection | |
67 | + | |
68 | +@section('content') | |
69 | + <section class="thing"> | |
70 | + <div class="container"> | |
71 | + <form class="thing__body" active="{{ route('education') }}"> | |
72 | + <ul class="breadcrumbs thing__breadcrumbs"> | |
73 | + <li><a href="{{ route('index') }}">Главная</a></li> | |
74 | + <li><b>Образование</b></li> | |
75 | + </ul> | |
76 | + <h1 class="thing__title">Образование</h1> | |
77 | + <p class="thing__text">Прежде всего, современная методология разработки представляет собой интересный эксперимент проверки направлений прогрессивного развития.</p> | |
78 | + <div class="search thing__search"> | |
79 | + <input type="search" class="input" id="search" name="search" placeholder="Введите наименование работодателя" value="@if (!empty($_GET['search'])) {{ $_GET['search'] }} @endif"> | |
80 | + <button type="submit" class="button">Найти</button> | |
81 | + <span> | |
82 | + <svg> | |
83 | + <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> | |
84 | + </svg> | |
85 | + </span> | |
86 | + </div> | |
87 | + </form> | |
88 | + </div> | |
89 | + </section> | |
90 | + <main class="main"> | |
91 | + <div class="container"> | |
92 | + <div class="filters"> | |
93 | + <div class="filters__label">Показано 1 – @if($count_edu < 6) {{ $count_edu }}@else 6 @endif из {{ $count_edu }} результатов поиска</div> | |
94 | + <div class="filters__body"> | |
95 | + <div class="select filters__select"> | |
96 | + <select class="js-select2" id="sort_ajax" name="sort_ajax"> | |
97 | + <option value="default">Сортировка (по умолчанию)</option> | |
98 | + <option value="name_up">По имени (возрастание)</option> | |
99 | + <option value="name_down">По имени (убывание)</option> | |
100 | + <option value="created_at_up">По дате (возрастание)</option> | |
101 | + <option value="created_at_down">По дате (убывание)</option> | |
102 | + </select> | |
103 | + </div> | |
104 | + </div> | |
105 | + </div> | |
106 | + @if ($educations->count()) | |
107 | + <div class="main__ads"> | |
108 | + @foreach($educations as $edu) | |
109 | + <div class="main__ads-item"> | |
110 | + <div class="main__ads-item-pic"> | |
111 | + <img src="@if (!empty($edu->image)) {{ asset(Storage::url($edu->image)) }} @else {{ asset('images/education.jpg') }} @endif" alt="{{ $edu->name }}"> | |
112 | + <span> | |
113 | + <svg> | |
114 | + <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | |
115 | + </svg> | |
116 | + </span> | |
117 | + </div> | |
118 | + <div class="main__ads-item-body"> | |
119 | + <b>{{ $edu->name }}</b> | |
120 | + <span>{{ $edu->program_education->count() }} учебных направлений</span> | |
121 | + <a href="" class="button button_light">Читать далее</a> | |
122 | + </div> | |
123 | + </div> | |
124 | + @endforeach | |
125 | + | |
126 | + </div> | |
127 | + {{ $educations->appends($_GET)->links('paginate') }} | |
128 | + @else | |
129 | + <H2>Нет данных</H2> | |
130 | + @endif | |
131 | + <!--<div class="pagination"> | |
132 | + <a href="#" class="pagination__nav pagination__nav_prev"> | |
133 | + <svg> | |
134 | + <use xlink:href="images/sprite.svg#arrow-bold"></use> | |
135 | + </svg> | |
136 | + </a> | |
137 | + <span class="pagination__item active">1</span> | |
138 | + <a href="#" class="pagination__item">2</a> | |
139 | + <a href="#" class="pagination__item">3</a> | |
140 | + <a href="#" class="pagination__item">4</a> | |
141 | + <a href="#" class="pagination__item">5</a> | |
142 | + <span class="pagination__dots"> | |
143 | + <svg> | |
144 | + <use xlink:href="images/sprite.svg#dots"></use> | |
145 | + </svg> | |
146 | + </span> | |
147 | + <a href="#" class="pagination__item">25</a> | |
148 | + <a href="#" class="pagination__nav pagination__nav_next"> | |
149 | + <svg> | |
150 | + <use xlink:href="images/sprite.svg#arrow-bold"></use> | |
151 | + </svg> | |
152 | + </a> | |
153 | + </div>--> | |
154 | + </div> | |
155 | + </main> | |
156 | + </div> | |
157 | +@endsection |
resources/views/info_company.blade.php
... | ... | @@ -0,0 +1,242 @@ |
1 | +@extends('layout.frontend', ['title' => 'Описание компании '.$title.'- РекаМоре']) | |
2 | + | |
3 | +@section('scripts') | |
4 | + <script> | |
5 | + console.log('Test system'); | |
6 | + $(document).on('change', '#sort_ajax', function() { | |
7 | + var this_ = $(this); | |
8 | + var val_ = this_.val(); | |
9 | + console.log('sort items '+val_); | |
10 | + | |
11 | + $.ajax({ | |
12 | + type: "GET", | |
13 | + url: "{{ route('shipping_companies') }}", | |
14 | + data: "sort="+val_+"&block=1", | |
15 | + success: function (data) { | |
16 | + console.log('Выбор сортировки'); | |
17 | + console.log(data); | |
18 | + $('#block_1').html(data); | |
19 | + }, | |
20 | + headers: { | |
21 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
22 | + }, | |
23 | + error: function (data) { | |
24 | + data = JSON.stringify(data); | |
25 | + console.log('Error: ' + data); | |
26 | + } | |
27 | + }); | |
28 | + | |
29 | + $.ajax({ | |
30 | + type: "GET", | |
31 | + url: "{{ route('shipping_companies') }}", | |
32 | + data: "sort="+val_+"&block=2", | |
33 | + success: function (data) { | |
34 | + console.log('Выбор сортировки2'); | |
35 | + console.log(data); | |
36 | + history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); | |
37 | + $('#block_2').html(data); | |
38 | + }, | |
39 | + headers: { | |
40 | + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | |
41 | + }, | |
42 | + error: function (data) { | |
43 | + data = JSON.stringify(data); | |
44 | + console.log('Error: ' + data); | |
45 | + } | |
46 | + }); | |
47 | + }); | |
48 | + | |
49 | + $(document).ready(function(){ | |
50 | + var sel = $('#select2-sort_ajax-container'); | |
51 | + var key = getUrlParameter('sort'); | |
52 | + | |
53 | + if (key !=='') { | |
54 | + console.log(key); | |
55 | + switch (key) { | |
56 | + case "default": sel.html('Сортировка (по умолчанию)'); break; | |
57 | + case "name_up": sel.html('По имени (возрастание)'); break; | |
58 | + case "name_down": sel.html('По дате (убывание)'); break; | |
59 | + case "created_at_up": sel.html('По дате (возрастание)'); break; | |
60 | + case "created_at_down": sel.html('По дате (убывание)'); break; | |
61 | + } | |
62 | + | |
63 | + } | |
64 | + }); | |
65 | + </script> | |
66 | +@endsection | |
67 | + | |
68 | +@section('content') | |
69 | + <section class="thing"> | |
70 | + <div class="container"> | |
71 | + <div class="thing__body"> | |
72 | + <ul class="breadcrumbs thing__breadcrumbs"> | |
73 | + <li><a href="{{ route('index') }}">Главная</a></li> | |
74 | + <li><a href="{{ route('shipping_companies') }}">Работодатели</a></li> | |
75 | + <li><b>@isset($title) {{ $title }} @else Не указано @endif</b></li> | |
76 | + </ul> | |
77 | + @if ($company[0]->oficial_status == 1) | |
78 | + <div class="thing__badge"> | |
79 | + <svg> | |
80 | + <use xlink:href="{{ asset('images/sprite.svg#badge') }}"></use> | |
81 | + </svg> | |
82 | + Компания проверена | |
83 | + </div> | |
84 | + @endif | |
85 | + | |
86 | + <img src="{{ asset(Storage::url($company[0]->logo)) }}" alt="{{ $company[0]->name_company }}" class="thing__pic"> | |
87 | + <h1 class="thing__title">{{ $company[0]->name_company }}</h1> | |
88 | + <p class="thing__text">{{ $company[0]->text }}</p> | |
89 | + <div class="thing__buttons"> | |
90 | + <button type="button" class="button"> | |
91 | + <svg> | |
92 | + <use xlink:href="{{ asset('images/sprite.svg#grid-1') }}"></use> | |
93 | + </svg> | |
94 | + {{ $company[0]->ads->count() }} вакансии | |
95 | + </button> | |
96 | + <a href="" class="button"> | |
97 | + Написать сообщение | |
98 | + </a> | |
99 | + </div> | |
100 | + </div> | |
101 | + </div> | |
102 | + </section> | |
103 | + <main class="main"> | |
104 | + <div class="container"> | |
105 | + <div class="main__employer-page"> | |
106 | + <h2 class="main__employer-page-title">О компании</h2> | |
107 | + <div class="main__employer-page-info"> | |
108 | + <div class="main__employer-page-item"> | |
109 | + <b>Адрес компании</b> | |
110 | + <span> | |
111 | + {{ $company[0]->address }} | |
112 | + </span> | |
113 | + </div> | |
114 | + <div class="main__employer-page-item"> | |
115 | + <b>Сайт</b> | |
116 | + <span> | |
117 | + <a href="{{ $company[0]->site }}">{{ $company[0]->site }}</a> | |
118 | + </span> | |
119 | + </div> | |
120 | + <div class="main__employer-page-item"> | |
121 | + <b>Почта</b> | |
122 | + <span> | |
123 | + <a href="mailto:">{{ $company[0]->email }}</a> | |
124 | + </span> | |
125 | + </div> | |
126 | + <div class="main__employer-page-item"> | |
127 | + <b>Телефон</b> | |
128 | + <span> | |
129 | + <a href="tel:{{ $company[0]->telephone }}">{{ $company[0]->telephone }}</a> | |
130 | + </span> | |
131 | + </div> | |
132 | + </div> | |
133 | + <div class="main__employer-page-item"> | |
134 | + <b>Описание</b> | |
135 | + <span> | |
136 | + {{ $company[0]->text }} | |
137 | + </span> | |
138 | + </div> | |
139 | + <div> | |
140 | + <div class="main__employer-page-tabs"> | |
141 | + <button type="button" class="main__employer-page-tabs-item active" | |
142 | + data-tab="1">Флот</button> | |
143 | + <button type="button" class="main__employer-page-tabs-item" data-tab="2">Вакансии</button> | |
144 | + </div> | |
145 | + <div class="main__employer-page-body"> | |
146 | + <div class="main__employer-page-body-item showed" data-body="1"> | |
147 | + <div class="main__employer-page-one"> | |
148 | + @if ($company[0]->flots->count()) | |
149 | + @foreach ($company[0]->flots as $flot) | |
150 | + <a href="" class="main__employer-page-one-item"> | |
151 | + <img src="{{ asset(Storage::url($flot->image)) }}" alt="{{ $flot->name }}"> | |
152 | + <b>{{ $flot->region }}</b> | |
153 | + <span>{{ $flot->power }}</span> | |
154 | + </a> | |
155 | + @endforeach | |
156 | + @endif | |
157 | + </div> | |
158 | + </div> | |
159 | + | |
160 | + <div class="main__employer-page-body-item" data-body="2"> | |
161 | + <div class="main__employer-page-two"> | |
162 | + @foreach ($company[0]->ads as $job) | |
163 | + @foreach ($job->ad_job as $item) | |
164 | + <div class="main__employer-page-two-item"> | |
165 | + <div class="main__employer-page-two-item-toper"> | |
166 | + <!-- end --> | |
167 | + <img src="{{ asset(Storage::url($company[0]->logo)) }}" alt="{{ $job->name }}"> | |
168 | + <span>{{ $job->name }}</span> | |
169 | + </div> | |
170 | + <div class="main__employer-page-two-item-title">{{ $item->flot }}</div> | |
171 | + <div class="main__employer-page-two-item-text"> | |
172 | + <div class="main__employer-page-two-item-text-name"> | |
173 | + {{ $item->job_title->name }} | |
174 | + </div> | |
175 | + <div class="main__employer-page-two-item-text-body"> | |
176 | + <p>Зарплата:{{ $item->min_salary }} - {{ $item->max_salary }}р + {{ $item->sytki }} суточные.</p> | |
177 | + <p>Контракт: {{ $item->period }} мес.</p> | |
178 | + </div> | |
179 | + </div> | |
180 | + <div class="main__employer-page-two-item-text"> | |
181 | + <div class="main__employer-page-two-item-text-name">Район работы</div> | |
182 | + <div class="main__employer-page-two-item-text-body"> | |
183 | + <p>{{ $item->region }}</p> | |
184 | + </div> | |
185 | + </div> | |
186 | + <div class="main__employer-page-two-item-text"> | |
187 | + <div class="main__employer-page-two-item-text-name">Посадка</div> | |
188 | + <div class="main__employer-page-two-item-text-body"> | |
189 | + <p> {{ $item->start }}</p> | |
190 | + {!! $item->description !!} | |
191 | + </div> | |
192 | + </div> | |
193 | + <div class="main__employer-page-two-item-text"> | |
194 | + <div class="main__employer-page-two-item-text-name">Звонить по вопросам на: | |
195 | + </div> | |
196 | + <div class="main__employer-page-two-item-text-body"> | |
197 | + <a href="tel:{{ $job->telephone }}">{{ $job->telephone }}</a> | |
198 | + </div> | |
199 | + </div> | |
200 | + <div class="main__employer-page-two-item-text"> | |
201 | + <div class="main__employer-page-two-item-text-name">Анкеты присылать на | |
202 | + почту: | |
203 | + </div> | |
204 | + <div class="main__employer-page-two-item-text-body"> | |
205 | + <a href="mailto: {{ $job->email }}">{{ $job->email }}</a> | |
206 | + </div> | |
207 | + </div> | |
208 | + <div class="main__employer-page-two-item-tags"> | |
209 | + <span class="main__employer-page-two-item-tag">#{{ $item->job_title->name }}</span> | |
210 | + </div> | |
211 | + <div class="main__employer-page-two-item-buttons"> | |
212 | + <button type="button" | |
213 | + class="button main__employer-page-two-item-button">Оставить | |
214 | + отклик</button> | |
215 | + <a href="#" | |
216 | + class="button button_light main__employer-page-two-item-button">Подробнее</a> | |
217 | + </div> | |
218 | + <div class="main__employer-page-two-item-bottom"> | |
219 | + <div class="main__employer-page-two-item-bottom-date">{{ $job->updated_at }}</div> | |
220 | + <button type="button" | |
221 | + class="like main__employer-page-two-item-bottom-like js-toggle"> | |
222 | + <svg> | |
223 | + <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use> | |
224 | + </svg> | |
225 | + </button> | |
226 | + </div> | |
227 | + </div> | |
228 | + @endforeach | |
229 | + @endforeach | |
230 | + <button type="button" | |
231 | + class="button button_light button_more main__employer-page-two-more js-toggle js-parent-toggle"> | |
232 | + <span>Показать ещё</span> | |
233 | + <span>Скрыть</span> | |
234 | + </button> | |
235 | + </div> | |
236 | + </div> | |
237 | + </div> | |
238 | + </div> | |
239 | + </div> | |
240 | + </div> | |
241 | + </main> | |
242 | +@endsection |
resources/views/layout/frontend-page.blade.php
... | ... | @@ -0,0 +1,261 @@ |
1 | +<!DOCTYPE html> | |
2 | +<html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> | |
3 | + | |
4 | +<head> | |
5 | + <meta charset="utf-8"> | |
6 | + <title>{{ $title }}</title> | |
7 | + <meta name="viewport" content="width=device-width,initial-scale=1"> | |
8 | + <meta name="theme-color" content="#377D87"> | |
9 | + <link rel="stylesheet" href="{{ asset('css/news/style.css') }}"> | |
10 | +</head> | |
11 | + | |
12 | +<body id="body"> | |
13 | +<a href="#body" class="to-top js-scroll-to"> | |
14 | + <svg> | |
15 | + <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use> | |
16 | + </svg> | |
17 | +</a> | |
18 | + | |
19 | +<div> <!-- BEGIN TOP WRAPPER --> | |
20 | + <header class="header"> | |
21 | + <div class="container"> | |
22 | + <div class="header__body"> | |
23 | + <div class="header__left"> | |
24 | + <a href="{{ route('index') }}" class="header__logo"> | |
25 | + <svg> | |
26 | + <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use> | |
27 | + </svg> | |
28 | + </a> | |
29 | + <nav class="header__menu"> | |
30 | + <a href="{{ route('vacancies') }}" class="header__menu-item">Вакансии</a> | |
31 | + <a href="{{ route('shipping_companies') }}" class="header__menu-item">Судоходные компании</a> | |
32 | + <a href="{{ route('education') }}" class="header__menu-item">Образование</a> | |
33 | + </nav> | |
34 | + </div> | |
35 | + <div class="header__right"> | |
36 | + <button class="header__notifs header__notifs_actived"> | |
37 | + <svg> | |
38 | + <use xlink:href="{{ asset('images/sprite.svg#ring') }}"></use> | |
39 | + </svg> | |
40 | + <span>Уведомления</span> | |
41 | + </button> | |
42 | + <div class="header__right-line"></div> | |
43 | + <button class="header__burger"> | |
44 | + <svg> | |
45 | + <use xlink:href="{{ asset('images/sprite.svg#burger') }}"></use> | |
46 | + </svg> | |
47 | + </button> | |
48 | + @guest | |
49 | + <a class="button header__sign" href="{{ route('login') }}">Войти</a> | |
50 | + @else | |
51 | + <a class="button header__sign" href="{{ route('logout') }}">Выйти</a> | |
52 | + @endguest | |
53 | + </div> | |
54 | + </div> | |
55 | + </div> | |
56 | + </header> | |
57 | + | |
58 | + <section class="thing"> | |
59 | + <div class="container"> | |
60 | + <div class="thing__body"> | |
61 | + <ul class="breadcrumbs thing__breadcrumbs"> | |
62 | + <li><a href="{{ route('index') }}">Главная</a></li> | |
63 | + <li><b>{{ $title }}</b></li> | |
64 | + </ul> | |
65 | + <img src="{{ asset('images/14.jpg') }}" alt="" class="thing__pic thing__pic_two"> | |
66 | + <h1 class="thing__title">{{ $title }}</h1> | |
67 | + <p class="thing__text">{{ $description }}</p> | |
68 | + </div> | |
69 | + </div> | |
70 | + </section> | |
71 | + | |
72 | + @yield('content') | |
73 | + | |
74 | +</div> <!-- END TOP WRAPPER --> | |
75 | + | |
76 | +<div> <!-- BEGIN BOTTOM WRAPPER --> | |
77 | + <footer class="footer"> | |
78 | + <div class="container"> | |
79 | + <div class="footer__mobile"> | |
80 | + <button class="footer__mobile-toper js-toggle active"> | |
81 | + <a href="{{ route('index') }}"> | |
82 | + <svg> | |
83 | + <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use> | |
84 | + </svg> | |
85 | + </a> | |
86 | + <span> | |
87 | + <svg> | |
88 | + <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use> | |
89 | + </svg> | |
90 | + </span> | |
91 | + </button> | |
92 | + <div class="footer__mobile-menu"> | |
93 | + <div class="footer__mobile-menu-item"> | |
94 | + <button class="js-toggle"> | |
95 | + <b>Соискателям</b> | |
96 | + <span><svg> | |
97 | + <use xlink:href="{{ asset('images/sprite.svg#arrow-top') }}"></use> | |
98 | + </svg></span> | |
99 | + </button> | |
100 | + <div> | |
101 | + <a href="{{ route('vacancies') }}">Вакансии</a> | |
102 | + <a href="{{ route('if_public') }}">Условия размещения</a> | |
103 | + <a href="{{ route('education') }}">Образование</a> | |
104 | + <a href="{{ route('news') }}">Новости</a> | |
105 | + <a href="{{ route('contacts') }}">Контакты</a> | |
106 | + <a href="{{ route('public_offer') }}">Публичная оферта</a> | |
107 | + </div> | |
108 | + </div> | |
109 | + <div class="footer__mobile-menu-item"> | |
110 | + <button class="js-toggle"> | |
111 | + <b>Работодателям</b> | |
112 | + <span><svg> | |
113 | + <use xlink:href="{{asset('images/sprite.svg#arrow-top') }}"></use> | |
114 | + </svg></span> | |
115 | + </button> | |
116 | + <div> | |
117 | + <a href="{{ route('register') }}">Регистрация</a> | |
118 | + <a href="{{ route('bd_resume') }}">База резюме</a> | |
119 | + <a href="{{ route('cost_public_employer') }}">Стоимость размещения</a> | |
120 | + <a href="{{ route('instruction') }}">Инструкции</a> | |
121 | + <a href="{{ route('effective_note') }}">Эффективность объявления</a> | |
122 | + <a href="{{ route('public_offer_emp') }}">Публичная оферта</a> | |
123 | + </div> | |
124 | + </div> | |
125 | + </div> | |
126 | + <div class="footer__mobile-contacts"> | |
127 | + <b>Контакты</b> | |
128 | + <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a> | |
129 | + <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a> | |
130 | + </div> | |
131 | + <div class="footer__mobile-bottom"> | |
132 | + <div class="socials"> | |
133 | + <a href="{{ $companies[0]->vkontact }}" target="_blank"> | |
134 | + <svg> | |
135 | + <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use> | |
136 | + </svg> | |
137 | + </a> | |
138 | + <a href="{{ $companies[0]->telegram }}" target="_blank"> | |
139 | + <svg> | |
140 | + <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use> | |
141 | + </svg> | |
142 | + </a> | |
143 | + </div> | |
144 | + <nav class="footer__mobile-links"> | |
145 | + <a href="{{ route('private_policy') }}">Политика конфиденциальности</a> | |
146 | + <span></span> | |
147 | + <a href="{{ route('terms_of_use') }}">Пользовательское соглашение</a> | |
148 | + </nav> | |
149 | + © 2023 — RekaMore.su | |
150 | + <a href="{{ route('index') }}" class="nls" target="_blank"> | |
151 | + <svg> | |
152 | + <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use> | |
153 | + </svg> | |
154 | + <span> | |
155 | + Дизайн и разработка: | |
156 | + <b>NoLogoStudio.ru</b> | |
157 | + </span> | |
158 | + </a> | |
159 | + </div> | |
160 | + </div> | |
161 | + <div class="footer__main"> | |
162 | + <div class="footer__main-body"> | |
163 | + <a href="" class="footer__main-logo"> | |
164 | + <svg> | |
165 | + <use xlink:href="{{ asset('images/sprite.svg#logo') }}"></use> | |
166 | + </svg> | |
167 | + </a> | |
168 | + <div class="footer__main-col"> | |
169 | + <div class="footer__main-title">Соискателям</div> | |
170 | + <nav> | |
171 | + <a href="{{ route('vacancies') }}">Вакансии</a> | |
172 | + <a href="{{ route('if_public') }}">Условия размещения</a> | |
173 | + <a href="{{ route('education') }}">Образование</a> | |
174 | + <a href="{{ route('news') }}">Новости</a> | |
175 | + <a href="{{ route('contacts') }}">Контакты</a> | |
176 | + <a href="{{ route('public_offer') }}">Публичная оферта</a> | |
177 | + </nav> | |
178 | + </div> | |
179 | + <div class="footer__main-col"> | |
180 | + <div class="footer__main-title">Работодателям</div> | |
181 | + <nav> | |
182 | + <a href="{{ route('register') }}">Регистрация</a> | |
183 | + <a href="{{ route('bd_resume') }}">База резюме</a> | |
184 | + <a href="{{ route('cost_public_employer') }}">Стоимость размещения</a> | |
185 | + <a href="{{ route('instruction') }}">Инструкции</a> | |
186 | + <a href="{{ route('effective_note') }}">Эффективность объявления</a> | |
187 | + <a href="{{ route('public_offer_emp') }}">Публичная оферта</a> | |
188 | + </nav> | |
189 | + </div> | |
190 | + | |
191 | + <div class="footer__main-col"> | |
192 | + <div class="footer__main-title">Контакты</div> | |
193 | + <div class="footer__main-contacts"> | |
194 | + <a href="tel:{{ $companies[0]->telephone }}">{{ $companies[0]->telephone }}</a> | |
195 | + <a href="mailto:{{ $companies[0]->email }}">{{ $companies[0]->email }}</a> | |
196 | + </div> | |
197 | + <div class="socials"> | |
198 | + <a href="{{ $companies[0]->vkontact }}" target="_blank"> | |
199 | + <svg> | |
200 | + <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use> | |
201 | + </svg> | |
202 | + </a> | |
203 | + <a href="{{ $companies[0]->telegram }}" target="_blank"> | |
204 | + <svg> | |
205 | + <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use> | |
206 | + </svg> | |
207 | + </a> | |
208 | + </div> | |
209 | + </div> | |
210 | + </div> | |
211 | + <div class="footer__main-copy"> | |
212 | + <div>© 2023 — RekaMore.su</div> | |
213 | + <nav> | |
214 | + <a href="{{ route('private_policy') }}">Политика конфиденциальности</a> | |
215 | + <span></span> | |
216 | + <a href="{{ route('terms_of_use') }}">Пользовательское соглашение</a> | |
217 | + </nav> | |
218 | + <a href="{{ route('index') }}" class="nls" target="_blank"> | |
219 | + <svg> | |
220 | + <use xlink:href="{{ asset('images/sprite.svg#nls') }}"></use> | |
221 | + </svg> | |
222 | + <span> | |
223 | + Дизайн и разработка: | |
224 | + <b>NoLogoStudio.ru</b> | |
225 | + </span> | |
226 | + </a> | |
227 | + </div> | |
228 | + </div> | |
229 | + </div> | |
230 | + </footer> | |
231 | +</div> <!-- END BOTTOM WRAPPER --> | |
232 | + | |
233 | +<div hidden> <!-- BEGIN MODALS WRAPPER --> | |
234 | + <div class="modal"> | |
235 | + modal | |
236 | + </div> | |
237 | +</div> <!-- END MODALS WRAPPER --> | |
238 | + | |
239 | +<script src="{{ asset('js/jquery.js') }}"></script> | |
240 | +<script src="{{ asset('js/jquery.maskedinput.js') }}"></script> | |
241 | +<script src="{{ asset('js/jquery.fancybox.js') }}"></script> | |
242 | +<script src="{{ asset('js/jquery.select2.js') }}"></script> | |
243 | +<script src="{{ asset('js/swiper.js') }}"></script> | |
244 | +<script src="{{ asset('js/script.js') }}"></script> | |
245 | +<script> | |
246 | + var getUrlParameter = function getUrlParameter(sParam) { | |
247 | + var sPageURL = decodeURIComponent(window.location.search.substring(1)), | |
248 | + sURLVariables = sPageURL.split('&'), | |
249 | + sParameterName, | |
250 | + i; | |
251 | + for (i = 0; i < sURLVariables.length; i++) { | |
252 | + sParameterName = sURLVariables[i].split('='); | |
253 | + if (sParameterName[0] === sParam) { | |
254 | + return sParameterName[1] === undefined ? true : sParameterName[1]; | |
255 | + } | |
256 | + } | |
257 | + }; | |
258 | +</script> | |
259 | +@yield('scripts') | |
260 | +</body> | |
261 | +</html> |
resources/views/layout/frontend.blade.php
... | ... | @@ -84,11 +84,11 @@ |
84 | 84 | </button> |
85 | 85 | <div> |
86 | 86 | <a href="{{ route('vacancies') }}">Вакансии</a> |
87 | - <a href="{{ route('if_public') }}">Условия размещения</a> | |
87 | + <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a> | |
88 | 88 | <a href="{{ route('education') }}">Образование</a> |
89 | 89 | <a href="{{ route('news') }}">Новости</a> |
90 | 90 | <a href="{{ route('contacts') }}">Контакты</a> |
91 | - <a href="{{ route('public_offer') }}">Публичная оферта</a> | |
91 | + <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a> | |
92 | 92 | </div> |
93 | 93 | </div> |
94 | 94 | <div class="footer__mobile-menu-item"> |
... | ... | @@ -101,10 +101,10 @@ |
101 | 101 | <div> |
102 | 102 | <a href="{{ route('register') }}">Регистрация</a> |
103 | 103 | <a href="{{ route('bd_resume') }}">База резюме</a> |
104 | - <a href="{{ route('cost_public_employer') }}">Стоимость размещения</a> | |
105 | - <a href="{{ route('instruction') }}">Инструкции</a> | |
106 | - <a href="{{ route('effective_note') }}">Эффективность объявления</a> | |
107 | - <a href="{{ route('public_offer_emp') }}">Публичная оферта</a> | |
104 | + <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a> | |
105 | + <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a> | |
106 | + <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a> | |
107 | + <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a> | |
108 | 108 | </div> |
109 | 109 | </div> |
110 | 110 | </div> |
... | ... | @@ -127,9 +127,9 @@ |
127 | 127 | </a> |
128 | 128 | </div> |
129 | 129 | <nav class="footer__mobile-links"> |
130 | - <a href="{{ route('private_policy') }}">Политика конфиденциальности</a> | |
130 | + <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a> | |
131 | 131 | <span></span> |
132 | - <a href="{{ route('terms_of_use') }}">Пользовательское соглашение</a> | |
132 | + <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a> | |
133 | 133 | </nav> |
134 | 134 | © 2023 — RekaMore.su |
135 | 135 | <a href="{{ route('index') }}" class="nls" target="_blank"> |
... | ... | @@ -154,11 +154,11 @@ |
154 | 154 | <div class="footer__main-title">Соискателям</div> |
155 | 155 | <nav> |
156 | 156 | <a href="{{ route('vacancies') }}">Вакансии</a> |
157 | - <a href="{{ route('if_public') }}">Условия размещения</a> | |
157 | + <a href="{{ route('page', ['pages' => "Usloviya-razmescheniya"]) }}">Условия размещения</a> | |
158 | 158 | <a href="{{ route('education') }}">Образование</a> |
159 | 159 | <a href="{{ route('news') }}">Новости</a> |
160 | 160 | <a href="{{ route('contacts') }}">Контакты</a> |
161 | - <a href="{{ route('public_offer') }}">Публичная оферта</a> | |
161 | + <a href="{{ route('page', ['pages' => "Publichnaya-oferta-soiskatelyam"]) }}">Публичная оферта</a> | |
162 | 162 | </nav> |
163 | 163 | </div> |
164 | 164 | <div class="footer__main-col"> |
... | ... | @@ -166,10 +166,10 @@ |
166 | 166 | <nav> |
167 | 167 | <a href="{{ route('register') }}">Регистрация</a> |
168 | 168 | <a href="{{ route('bd_resume') }}">База резюме</a> |
169 | - <a href="{{ route('cost_public_employer') }}">Стоимость размещения</a> | |
170 | - <a href="{{ route('instruction') }}">Инструкции</a> | |
171 | - <a href="{{ route('effective_note') }}">Эффективность объявления</a> | |
172 | - <a href="{{ route('public_offer_emp') }}">Публичная оферта</a> | |
169 | + <a href="{{ route('page', ['pages' => "Stoimost-razmescheniya"]) }}">Стоимость размещения</a> | |
170 | + <a href="{{ route('page', ['pages' => "Instrukcii"]) }}">Инструкции</a> | |
171 | + <a href="{{ route('page', ['pages' => "Effektivnost-obyavleniya"]) }}">Эффективность объявления</a> | |
172 | + <a href="{{ route('page', ['pages' => "Publichnaya-oferta-rabotodatelyam"]) }}">Публичная оферта</a> | |
173 | 173 | </nav> |
174 | 174 | </div> |
175 | 175 | |
... | ... | @@ -196,9 +196,9 @@ |
196 | 196 | <div class="footer__main-copy"> |
197 | 197 | <div>© 2023 — RekaMore.su</div> |
198 | 198 | <nav> |
199 | - <a href="{{ route('private_policy') }}">Политика конфиденциальности</a> | |
199 | + <a href="{{ route('page', ['pages' => "Politika-konfidencialnosti"]) }}">Политика конфиденциальности</a> | |
200 | 200 | <span></span> |
201 | - <a href="{{ route('terms_of_use') }}">Пользовательское соглашение</a> | |
201 | + <a href="{{ route('page', ['pages' => "Polzovatelskoe-soglashenie"]) }}">Пользовательское соглашение</a> | |
202 | 202 | </nav> |
203 | 203 | <a href="{{ route('index') }}" class="nls" target="_blank"> |
204 | 204 | <svg> |
... | ... | @@ -227,7 +227,20 @@ |
227 | 227 | <script src="{{ asset('js/jquery.select2.js') }}"></script> |
228 | 228 | <script src="{{ asset('js/swiper.js') }}"></script> |
229 | 229 | <script src="{{ asset('js/script.js') }}"></script> |
230 | - | |
230 | +<script> | |
231 | + var getUrlParameter = function getUrlParameter(sParam) { | |
232 | + var sPageURL = decodeURIComponent(window.location.search.substring(1)), | |
233 | + sURLVariables = sPageURL.split('&'), | |
234 | + sParameterName, | |
235 | + i; | |
236 | + for (i = 0; i < sURLVariables.length; i++) { | |
237 | + sParameterName = sURLVariables[i].split('='); | |
238 | + if (sParameterName[0] === sParam) { | |
239 | + return sParameterName[1] === undefined ? true : sParameterName[1]; | |
240 | + } | |
241 | + } | |
242 | + }; | |
243 | +</script> | |
231 | 244 | @yield('scripts') |
232 | 245 | </body> |
233 | 246 | </html> |
resources/views/list_vacancies.blade.php
... | ... | @@ -3,18 +3,20 @@ |
3 | 3 | @section('scripts') |
4 | 4 | <script> |
5 | 5 | console.log('Test system'); |
6 | - $(document).on('change', '.jobs', function() { | |
6 | + $(document).on('change', '#jobs', function() { | |
7 | 7 | var val = $(this).val(); |
8 | + var main_oskar = $('#main_ockar'); | |
8 | 9 | |
10 | + console.log('Code='+val); | |
9 | 11 | console.log('Click change...'); |
10 | 12 | $.ajax({ |
11 | 13 | type: "GET", |
12 | - url: "{{ route('vacancies') }}", | |
14 | + url: "{{ route('list-vacancies', ['categories' => $categories->id]) }}", | |
13 | 15 | data: "job="+val, |
14 | 16 | success: function (data) { |
15 | - console.log('Выбор должности'); | |
17 | + console.log('Выбор сделан!'); | |
16 | 18 | console.log(data); |
17 | - $('#block_ajax').html(data); | |
19 | + main_oskar.html(data); | |
18 | 20 | }, |
19 | 21 | headers: { |
20 | 22 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
... | ... | @@ -27,7 +29,6 @@ |
27 | 29 | }); |
28 | 30 | </script> |
29 | 31 | @endsection |
30 | - | |
31 | 32 | @section('content') |
32 | 33 | <section class="thing"> |
33 | 34 | <div class="container"> |
... | ... | @@ -35,7 +36,7 @@ |
35 | 36 | <ul class="breadcrumbs thing__breadcrumbs"> |
36 | 37 | <li><a href="{{ route('index') }}">Главная</a></li> |
37 | 38 | <li><a href="{{ route('vacancies') }}">Вакансии</a></li> |
38 | - <li><b>{{ isset($Name_categori) ? $Name_categori : 'Все категории' }}</b></li> | |
39 | + <li><b>{{ isset($Name_categori[0]) ? $Name_categori[0]->name : 'Все категории' }}</b></li> | |
39 | 40 | </ul> |
40 | 41 | <h1 class="thing__title">Вакансии</h1> |
41 | 42 | <p class="thing__text">С другой стороны, социально-экономическое развитие не оставляет шанса для |
... | ... | @@ -43,7 +44,7 @@ |
43 | 44 | <div class="select select_search thing__select"> |
44 | 45 | <div class="select__icon"> |
45 | 46 | <svg> |
46 | - <use xlink:href="images/sprite.svg#search"></use> | |
47 | + <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> | |
47 | 48 | </svg> |
48 | 49 | </div> |
49 | 50 | <select class="js-select2" id="jobs" name="jobs"> |
... | ... | @@ -61,339 +62,103 @@ |
61 | 62 | <main class="main"> |
62 | 63 | <div class="container"> |
63 | 64 | <div class="main__vacancies"> |
64 | - <h2 class="main__vacancies-title">Категория вакансий ВТОРОЙ МЕХАНИК</h2> | |
65 | + @if (isset($job)) | |
66 | + <h2 class="main__vacancies-title">Категория вакансий {{ $job }}</h2> | |
67 | + @else | |
68 | + <h2 class="main__vacancies-title">Все категории</h2> | |
69 | + @endif | |
65 | 70 | <div class="filters main__vacancies-filters"> |
66 | - <div class="filters__label">Показано 5 из 165 результатов поиска</div> | |
71 | + <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> | |
67 | 72 | <div class="filters__body"> |
68 | 73 | <div class="select filters__select"> |
69 | - <select class="js-select2"> | |
70 | - <option>Сортировка (по умолчанию)</option> | |
71 | - <option>Сортировка 1</option> | |
72 | - <option>Сортировка 2</option> | |
73 | - <option>Сортировка 3</option> | |
74 | - <option>Сортировка 4</option> | |
75 | - <option>Сортировка 5</option> | |
76 | - <option>Сортировка 6</option> | |
74 | + <select class="js-select2" id="sort_ajax" name="sort_ajax"> | |
75 | + <option value="default">Сортировка (по умолчанию)</option> | |
76 | + <option value="name (asc)">По имени (возрастание)</option> | |
77 | + <option value="name (desc)">По имени (убывание)</option> | |
78 | + <option value="created_at (asc)">По дате (возрастание)</option> | |
79 | + <option value="created_at (desc)">По дате (убывание)</option> | |
77 | 80 | </select> |
78 | 81 | </div> |
79 | 82 | </div> |
80 | 83 | </div> |
84 | + <div id="main_ockar" name="main_ockar" style="width:100%;"> | |
85 | + @foreach ($Query as $Q) | |
81 | 86 | <div class="main__vacancies-item main__employer-page-two-item"> |
82 | - <a href="#" class="back main__employer-page-two-item-back"> | |
87 | + <a href="{{ route('list-vacancies', ['categories' => $categories->id]) }}" class="back main__employer-page-two-item-back"> | |
83 | 88 | <svg> |
84 | - <use xlink:href="images/sprite.svg#back"></use> | |
89 | + <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> | |
85 | 90 | </svg> |
86 | 91 | <span> |
87 | 92 | Вернуться к списку вакансий |
88 | - </span> | |
93 | + </span> | |
89 | 94 | </a> |
90 | 95 | <div class="main__employer-page-two-item-toper"> |
91 | - <img src="images/12.jpg" alt=""> | |
92 | - <span>Наяда</span> | |
96 | + @if (isset($Q->employer)) | |
97 | + <img src="{{ asset(Storage::url($Q->employer->logo)) }}" alt="{{ $Q->employer->name }}"> | |
98 | + @endif | |
99 | + <span>@if (!empty($Q->name)) {{ $Q->name }} @endif</span> | |
93 | 100 | </div> |
94 | 101 | <div class="main__employer-page-two-item-text"> |
95 | 102 | <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор |
96 | 103 | специалистов на следующие должности:</div> |
97 | 104 | <div class="main__employer-page-two-item-text-links"> |
98 | - <a href="#">“Капитан” – з/п от 277 000 рублей (на руки)</a> | |
99 | - <a href="#">“Старший помощник капитана” – з/п от 216 000 рублей (на руки)</a> | |
100 | - <a href="#">“Второй помощник капитана”– з/п от 135 000 рублей (на руки)</a> | |
101 | - </div> | |
105 | + @if (isset($Q->jobs)) | |
106 | + @foreach ($Q->jobs as $key => $j) | |
107 | + <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> | |
108 | + @endforeach | |
109 | + @endif | |
110 | + </div> | |
102 | 111 | </div> |
103 | 112 | <div class="main__employer-page-two-item-text"> |
104 | 113 | <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div> |
105 | 114 | <div class="main__employer-page-two-item-text-body"> |
106 | - <ul> | |
107 | - <li><span>трудоустройство по ТК РФ;</span></li> | |
108 | - <li><span>достойный уровень оплаты труда (оклад + отпускные и премиальные + бонус в | |
109 | - размере оклада (за первый месяц работы) + оплата дней обучения и прохождения | |
110 | - мед. осмотра);</span></li> | |
111 | - <li><span>оплату проезда до судна и с судна до дома;</span></li> | |
112 | - <li><span>оплату проживания на время ожидания судна;</span></li> | |
113 | - <li><span>обучение и продление документов за счет компании;</span></li> | |
114 | - <li><span>компенсацию медицинской комиссии;</span></li> | |
115 | - <li><span>обеспечение спецодеждой;</span></li> | |
116 | - <li><span>коллективное питание;</span></li> | |
117 | - <li><span>пакет социальных льгот и гарантий:– расширенный ДМС со стоматологией;– | |
118 | - компенсация курортно-санаторного лечения;– компенсация путевок в детские | |
119 | - оздоровительные лагеря для детей сотрудников;</span></li> | |
120 | - <li><span>возможности профессионального развития с помощью корпоративных программ | |
121 | - обучения;</span></li> | |
122 | - <li><span>яркие корпоративные мероприятия и регулярные круглые столы с | |
123 | - представителями руководства компании.</span></li> | |
124 | - </ul> | |
115 | + {!! $Q->text !!} | |
125 | 116 | </div> |
126 | 117 | </div> |
127 | 118 | <div class="main__employer-page-two-item-text"> |
128 | 119 | <div class="main__employer-page-two-item-text-name">Наши ожидания:</div> |
129 | 120 | <div class="main__employer-page-two-item-text-body"> |
130 | - <ul> | |
131 | - <li><span>наличие действующих дипломов, соответствующих должности;</span></li> | |
132 | - <li><span>опыт работы в должности;</span></li> | |
133 | - <li><span>наличие речных документов (желательно);</span></li> | |
134 | - <li><span>знание английского языка.</span></li> | |
135 | - </ul> | |
121 | + {!! $Q->description !!} | |
136 | 122 | </div> |
137 | 123 | </div> |
138 | 124 | <div class="main__employer-page-two-item-text"> |
139 | 125 | <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div> |
140 | 126 | <div class="main__employer-page-two-item-text-body"> |
141 | - <ul> | |
142 | - <li><a href="#">hr@volgaflot.com</a></li> | |
143 | - <li><a href="#">D.Kornilova@volgaflot.com</a></li> | |
144 | - <li><a href="#">A.Ryabova@volgaflot.com</a></li> | |
145 | - </ul> | |
127 | + {!! $Q->contacts_emails !!} | |
146 | 128 | </div> |
147 | 129 | </div> |
148 | 130 | <div class="main__employer-page-two-item-text"> |
149 | 131 | <div class="main__employer-page-two-item-text-name">Или звоните:</div> |
150 | 132 | <div class="main__employer-page-two-item-text-body"> |
151 | - <ul> | |
152 | - <li><a href="#">+7 (987) 548-38-31 Дарья</a></li> | |
153 | - <li><a href="#">+7 (986) 742-23-04 Александра</a></li> | |
154 | - </ul> | |
133 | + {!! $Q->contacts_telephones !!} | |
155 | 134 | </div> |
156 | 135 | </div> |
157 | 136 | <div class="main__employer-page-two-item-tags"> |
158 | - <span class="main__employer-page-two-item-tag">#второй_механик</span> | |
159 | - <span class="main__employer-page-two-item-tag">#моторист</span> | |
137 | + @if (isset($Q->jobs)) | |
138 | + @foreach ($Q->jobs as $key => $j) | |
139 | + <span class="main__employer-page-two-item-tag">#{{ $j->name }}</span> | |
140 | + @endforeach | |
141 | + @endif | |
160 | 142 | </div> |
161 | 143 | <div class="main__employer-page-two-item-buttons"> |
162 | 144 | <button type="button" |
163 | 145 | class="button main__employer-page-two-item-button">Откликнуться</button> |
164 | - <a href="#" class="button button_light main__employer-page-two-item-button">Подробнее</a> | |
146 | + <a href="{{ route('vacancie', ['vacancy' => $Q->id]) }}" class="button button_light main__employer-page-two-item-button">Подробнее</a> | |
165 | 147 | </div> |
166 | 148 | <div class="main__employer-page-two-item-bottom"> |
167 | - <div class="main__employer-page-two-item-bottom-date">07.09.23 - 15:39</div> | |
149 | + <div class="main__employer-page-two-item-bottom-date">{{ $Q->created_at }}</div> | |
168 | 150 | <button type="button" class="like main__employer-page-two-item-bottom-like js-toggle"> |
169 | 151 | <svg> |
170 | - <use xlink:href="images/sprite.svg#heart"></use> | |
152 | + <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use> | |
171 | 153 | </svg> |
172 | 154 | </button> |
173 | 155 | </div> |
174 | 156 | </div> |
175 | - <div class="main__vacancies-thing"> | |
176 | - <img src="images/13.jpg" alt="" class="main__vacancies-thing-pic"> | |
177 | - <div class="main__vacancies-thing-body"> | |
178 | - <h2>ООО «Флот Эксперт»</h2> | |
179 | - <p><b>Приветствуем Вас коллеги!</b></p> | |
180 | - <p>Уведомления о новых вакансиях можно получать подписавшись на наш телеграм канал! | |
181 | - <br>Ссылка: <a href="#">https://t.me/rekamore_su</a></p> | |
182 | - <p>А еще это добавляет + 50 к карме, но это не точно)</p> | |
183 | - <a href="#" class="button">Узнать больше</a> | |
157 | + @endforeach | |
158 | + <div style="margin-top: 20px"> | |
159 | + {{ $Query->appends($_GET)->links('paginate') }} | |
184 | 160 | </div> |
185 | - </div> | |
186 | - <div class="main__vacancies-item main__employer-page-two-item"> | |
187 | - <a href="#" class="back main__employer-page-two-item-back"> | |
188 | - <svg> | |
189 | - <use xlink:href="images/sprite.svg#back"></use> | |
190 | - </svg> | |
191 | - <span> | |
192 | - Вернуться к списку вакансий | |
193 | - </span> | |
194 | - </a> | |
195 | - <div class="main__employer-page-two-item-toper"> | |
196 | - <img src="images/12.jpg" alt=""> | |
197 | - <span>Наяда</span> | |
198 | - </div> | |
199 | - <div class="main__employer-page-two-item-text"> | |
200 | - <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор | |
201 | - специалистов на следующие должности:</div> | |
202 | - <div class="main__employer-page-two-item-text-links"> | |
203 | - <a href="#">“Капитан” – з/п от 277 000 рублей (на руки)</a> | |
204 | - <a href="#">“Старший помощник капитана” – з/п от 216 000 рублей (на руки)</a> | |
205 | - <a href="#">“Второй помощник капитана”– з/п от 135 000 рублей (на руки)</a> | |
206 | - </div> | |
207 | - </div> | |
208 | - <div class="main__employer-page-two-item-text"> | |
209 | - <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div> | |
210 | - <div class="main__employer-page-two-item-text-body"> | |
211 | - <ul> | |
212 | - <li><span>трудоустройство по ТК РФ;</span></li> | |
213 | - <li><span>достойный уровень оплаты труда (оклад + отпускные и премиальные + бонус в | |
214 | - размере оклада (за первый месяц работы) + оплата дней обучения и прохождения | |
215 | - мед. осмотра);</span></li> | |
216 | - <li><span>оплату проезда до судна и с судна до дома;</span></li> | |
217 | - <li><span>оплату проживания на время ожидания судна;</span></li> | |
218 | - <li><span>обучение и продление документов за счет компании;</span></li> | |
219 | - <li><span>компенсацию медицинской комиссии;</span></li> | |
220 | - <li><span>обеспечение спецодеждой;</span></li> | |
221 | - <li><span>коллективное питание;</span></li> | |
222 | - <li><span>пакет социальных льгот и гарантий:– расширенный ДМС со стоматологией;– | |
223 | - компенсация курортно-санаторного лечения;– компенсация путевок в детские | |
224 | - оздоровительные лагеря для детей сотрудников;</span></li> | |
225 | - <li><span>возможности профессионального развития с помощью корпоративных программ | |
226 | - обучения;</span></li> | |
227 | - <li><span>яркие корпоративные мероприятия и регулярные круглые столы с | |
228 | - представителями руководства компании.</span></li> | |
229 | - </ul> | |
230 | - </div> | |
231 | - </div> | |
232 | - <div class="main__employer-page-two-item-text"> | |
233 | - <div class="main__employer-page-two-item-text-name">Наши ожидания:</div> | |
234 | - <div class="main__employer-page-two-item-text-body"> | |
235 | - <ul> | |
236 | - <li><span>наличие действующих дипломов, соответствующих должности;</span></li> | |
237 | - <li><span>опыт работы в должности;</span></li> | |
238 | - <li><span>наличие речных документов (желательно);</span></li> | |
239 | - <li><span>знание английского языка.</span></li> | |
240 | - </ul> | |
241 | - </div> | |
242 | - </div> | |
243 | - <div class="main__employer-page-two-item-text"> | |
244 | - <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div> | |
245 | - <div class="main__employer-page-two-item-text-body"> | |
246 | - <ul> | |
247 | - <li><a href="#">hr@volgaflot.com</a></li> | |
248 | - <li><a href="#">D.Kornilova@volgaflot.com</a></li> | |
249 | - <li><a href="#">A.Ryabova@volgaflot.com</a></li> | |
250 | - </ul> | |
251 | - </div> | |
252 | - </div> | |
253 | - <div class="main__employer-page-two-item-text"> | |
254 | - <div class="main__employer-page-two-item-text-name">Или звоните:</div> | |
255 | - <div class="main__employer-page-two-item-text-body"> | |
256 | - <ul> | |
257 | - <li><a href="#">+7 (987) 548-38-31 Дарья</a></li> | |
258 | - <li><a href="#">+7 (986) 742-23-04 Александра</a></li> | |
259 | - </ul> | |
260 | - </div> | |
261 | - </div> | |
262 | - <div class="main__employer-page-two-item-tags"> | |
263 | - <span class="main__employer-page-two-item-tag">#второй_механик</span> | |
264 | - <span class="main__employer-page-two-item-tag">#моторист</span> | |
265 | - </div> | |
266 | - <div class="main__employer-page-two-item-buttons"> | |
267 | - <button type="button" | |
268 | - class="button main__employer-page-two-item-button">Откликнуться</button> | |
269 | - <a href="#" class="button button_light main__employer-page-two-item-button">Подробнее</a> | |
270 | - </div> | |
271 | - <div class="main__employer-page-two-item-bottom"> | |
272 | - <div class="main__employer-page-two-item-bottom-date">07.09.23 - 15:39</div> | |
273 | - <button type="button" class="like main__employer-page-two-item-bottom-like js-toggle"> | |
274 | - <svg> | |
275 | - <use xlink:href="images/sprite.svg#heart"></use> | |
276 | - </svg> | |
277 | - </button> | |
278 | - </div> | |
279 | - </div> | |
280 | - <div class="main__vacancies-item main__employer-page-two-item"> | |
281 | - <a href="#" class="back main__employer-page-two-item-back"> | |
282 | - <svg> | |
283 | - <use xlink:href="images/sprite.svg#back"></use> | |
284 | - </svg> | |
285 | - <span> | |
286 | - Вернуться к списку вакансий | |
287 | - </span> | |
288 | - </a> | |
289 | - <div class="main__employer-page-two-item-toper"> | |
290 | - <img src="images/12.jpg" alt=""> | |
291 | - <span>Наяда</span> | |
292 | - </div> | |
293 | - <div class="main__employer-page-two-item-text"> | |
294 | - <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор | |
295 | - специалистов на следующие должности:</div> | |
296 | - <div class="main__employer-page-two-item-text-links"> | |
297 | - <a href="#">“Капитан” – з/п от 277 000 рублей (на руки)</a> | |
298 | - <a href="#">“Старший помощник капитана” – з/п от 216 000 рублей (на руки)</a> | |
299 | - <a href="#">“Второй помощник капитана”– з/п от 135 000 рублей (на руки)</a> | |
300 | - </div> | |
301 | - </div> | |
302 | - <div class="main__employer-page-two-item-text"> | |
303 | - <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div> | |
304 | - <div class="main__employer-page-two-item-text-body"> | |
305 | - <ul> | |
306 | - <li><span>трудоустройство по ТК РФ;</span></li> | |
307 | - <li><span>достойный уровень оплаты труда (оклад + отпускные и премиальные + бонус в | |
308 | - размере оклада (за первый месяц работы) + оплата дней обучения и прохождения | |
309 | - мед. осмотра);</span></li> | |
310 | - <li><span>оплату проезда до судна и с судна до дома;</span></li> | |
311 | - <li><span>оплату проживания на время ожидания судна;</span></li> | |
312 | - <li><span>обучение и продление документов за счет компании;</span></li> | |
313 | - <li><span>компенсацию медицинской комиссии;</span></li> | |
314 | - <li><span>обеспечение спецодеждой;</span></li> | |
315 | - <li><span>коллективное питание;</span></li> | |
316 | - <li><span>пакет социальных льгот и гарантий:– расширенный ДМС со стоматологией;– | |
317 | - компенсация курортно-санаторного лечения;– компенсация путевок в детские | |
318 | - оздоровительные лагеря для детей сотрудников;</span></li> | |
319 | - <li><span>возможности профессионального развития с помощью корпоративных программ | |
320 | - обучения;</span></li> | |
321 | - <li><span>яркие корпоративные мероприятия и регулярные круглые столы с | |
322 | - представителями руководства компании.</span></li> | |
323 | - </ul> | |
324 | - </div> | |
325 | - </div> | |
326 | - <div class="main__employer-page-two-item-text"> | |
327 | - <div class="main__employer-page-two-item-text-name">Наши ожидания:</div> | |
328 | - <div class="main__employer-page-two-item-text-body"> | |
329 | - <ul> | |
330 | - <li><span>наличие действующих дипломов, соответствующих должности;</span></li> | |
331 | - <li><span>опыт работы в должности;</span></li> | |
332 | - <li><span>наличие речных документов (желательно);</span></li> | |
333 | - <li><span>знание английского языка.</span></li> | |
334 | - </ul> | |
335 | - </div> | |
336 | - </div> | |
337 | - <div class="main__employer-page-two-item-text"> | |
338 | - <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div> | |
339 | - <div class="main__employer-page-two-item-text-body"> | |
340 | - <ul> | |
341 | - <li><a href="#">hr@volgaflot.com</a></li> | |
342 | - <li><a href="#">D.Kornilova@volgaflot.com</a></li> | |
343 | - <li><a href="#">A.Ryabova@volgaflot.com</a></li> | |
344 | - </ul> | |
345 | - </div> | |
346 | - </div> | |
347 | - <div class="main__employer-page-two-item-text"> | |
348 | - <div class="main__employer-page-two-item-text-name">Или звоните:</div> | |
349 | - <div class="main__employer-page-two-item-text-body"> | |
350 | - <ul> | |
351 | - <li><a href="#">+7 (987) 548-38-31 Дарья</a></li> | |
352 | - <li><a href="#">+7 (986) 742-23-04 Александра</a></li> | |
353 | - </ul> | |
354 | - </div> | |
355 | - </div> | |
356 | - <div class="main__employer-page-two-item-tags"> | |
357 | - <span class="main__employer-page-two-item-tag">#второй_механик</span> | |
358 | - <span class="main__employer-page-two-item-tag">#моторист</span> | |
359 | - </div> | |
360 | - <div class="main__employer-page-two-item-buttons"> | |
361 | - <button type="button" | |
362 | - class="button main__employer-page-two-item-button">Откликнуться</button> | |
363 | - <a href="#" class="button button_light main__employer-page-two-item-button">Подробнее</a> | |
364 | - </div> | |
365 | - <div class="main__employer-page-two-item-bottom"> | |
366 | - <div class="main__employer-page-two-item-bottom-date">07.09.23 - 15:39</div> | |
367 | - <button type="button" class="like main__employer-page-two-item-bottom-like js-toggle"> | |
368 | - <svg> | |
369 | - <use xlink:href="images/sprite.svg#heart"></use> | |
370 | - </svg> | |
371 | - </button> | |
372 | - </div> | |
373 | - </div> | |
374 | - <div class="pagination"> | |
375 | - <a href="#" class="pagination__nav pagination__nav_prev"> | |
376 | - <svg> | |
377 | - <use xlink:href="images/sprite.svg#arrow-bold"></use> | |
378 | - </svg> | |
379 | - </a> | |
380 | - <span class="pagination__item active">1</span> | |
381 | - <a href="#" class="pagination__item">2</a> | |
382 | - <a href="#" class="pagination__item">3</a> | |
383 | - <a href="#" class="pagination__item">4</a> | |
384 | - <a href="#" class="pagination__item">5</a> | |
385 | - <span class="pagination__dots"> | |
386 | - <svg> | |
387 | - <use xlink:href="images/sprite.svg#dots"></use> | |
388 | - </svg> | |
389 | - </span> | |
390 | - <a href="#" class="pagination__item">25</a> | |
391 | - <a href="#" class="pagination__nav pagination__nav_next"> | |
392 | - <svg> | |
393 | - <use xlink:href="images/sprite.svg#arrow-bold"></use> | |
394 | - </svg> | |
395 | - </a> | |
396 | - </div> | |
161 | + </div><!-- конец --> | |
397 | 162 | </div> |
398 | 163 | </div> |
399 | 164 | </main> |
resources/views/pages.blade.php
... | ... | @@ -0,0 +1,32 @@ |
1 | +@extends('layout.frontend', ['title' => $page->name.'- РекаМоре']) | |
2 | + | |
3 | +@section('scripts') | |
4 | +@endsection | |
5 | + | |
6 | +@section('content') | |
7 | + <section class="thing"> | |
8 | + <div class="container"> | |
9 | + <div class="thing__body"> | |
10 | + <ul class="breadcrumbs thing__breadcrumbs"> | |
11 | + <li><a href="{{ route('index') }}">Главная</a></li> | |
12 | + <li><b>{{ $page->name }}</b></li> | |
13 | + </ul> | |
14 | + @isset($page->image) | |
15 | + <img src=" {{ asset(Storage::url($page->image)) }}" alt="" class="thing__pic thing__pic_two"> | |
16 | + @endif | |
17 | + <h1 class="thing__title">{{ $page->name }}</h1> | |
18 | + <p class="thing__text">{!! $page->anons !!}</p> | |
19 | + </div> | |
20 | + </div> | |
21 | + </section> | |
22 | + <main class="main"> | |
23 | + <div class="container"> | |
24 | + <div class="main__content"> | |
25 | + <div class="main__content-item"> | |
26 | + {!! $page->text !!} | |
27 | + </div> | |
28 | + </div> | |
29 | + </div> | |
30 | + </main> | |
31 | + </div> | |
32 | +@endsection |
resources/views/paginate.blade.php
... | ... | @@ -0,0 +1,52 @@ |
1 | +@if ($paginator->hasPages()) | |
2 | +<div class="pagination"> | |
3 | + @if ($paginator->onFirstPage()) | |
4 | + | |
5 | + @else | |
6 | + <a href="{{ $paginator->previousPageUrl() }}" class="pagination__nav pagination__nav_prev"> | |
7 | + <svg> | |
8 | + <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use> | |
9 | + </svg> | |
10 | + </a> | |
11 | + @endif | |
12 | + | |
13 | + @foreach ($elements as $element) | |
14 | + @if (is_string($element)) | |
15 | + <span>{{ $element }}</span> | |
16 | + @endif | |
17 | + | |
18 | + @if (is_array($element)) | |
19 | + @php $count_element = count($element); | |
20 | + $i = 0; | |
21 | + @endphp | |
22 | + @foreach ($element as $page => $url) | |
23 | + @if ($page == $paginator->currentPage()) | |
24 | + <span class="pagination__item active">{{ $page }}</span> | |
25 | + @else | |
26 | + @if (($i == $count_element - 1) && ($count_element > 5)) | |
27 | + <span class="pagination__dots"> | |
28 | + <svg> | |
29 | + <use xlink:href="{{ asset('images/sprite.svg#dots') }}"></use> | |
30 | + </svg> | |
31 | + </span> | |
32 | + @endif | |
33 | + | |
34 | + <a href="{{ $url }}" class="pagination__item">{{ $page }}</a> | |
35 | + @endif | |
36 | + @php $i++; @endphp | |
37 | + @endforeach | |
38 | + @endif | |
39 | + @endforeach | |
40 | + | |
41 | + @if ($paginator->hasMorePages()) | |
42 | + <a href="{{ $paginator->nextPageUrl() }}" class="pagination__nav pagination__nav_next"> | |
43 | + <svg> | |
44 | + <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use> | |
45 | + </svg> | |
46 | + </a> | |
47 | + @else | |
48 | + | |
49 | + @endif | |
50 | +</div> | |
51 | +@endif | |
52 | + |
resources/views/vacance-item.blade.php
... | ... | @@ -0,0 +1,131 @@ |
1 | +@extends('layout.frontend', ['title' => $title]) | |
2 | + | |
3 | +@section('scripts') | |
4 | + | |
5 | +@endsection | |
6 | + | |
7 | +@section('content') | |
8 | + <main class="main"> | |
9 | + <div class="container"> | |
10 | + <ul class="breadcrumbs main__breadcrumbs"> | |
11 | + <li><a href="{{ route('index') }}">Главная</a></li> | |
12 | + <li><a href="{{ route('vacancies') }}">Вакансии</a></li> | |
13 | + <li><b>{{ $title }}</b></li> | |
14 | + </ul> | |
15 | + <div class="main__employer-page"> | |
16 | + | |
17 | + @if (isset($Query[0]->employer)) | |
18 | + <h2 class="main__employer-page-title">О компании</h2> | |
19 | + <div class="main__employer-page-two-item-toper"> | |
20 | + <img src="{{ asset(Storage::url($Query[0]->employer->logo)) }}" alt="{{ $Query[0]->employer->name }}"> | |
21 | + <span>{{ $Query[0]->employer->name_company }}</span> | |
22 | + </div> | |
23 | + | |
24 | + <div class="main__employer-page-info"> | |
25 | + <div class="main__employer-page-item"> | |
26 | + <b> Адрес компании</b> | |
27 | + <span> | |
28 | + {{ $Query[0]->employer->address }} | |
29 | + </span> | |
30 | + </div> | |
31 | + <div class="main__employer-page-item"> | |
32 | + <b>Сайт</b> | |
33 | + <span> | |
34 | + <a href="{{ $Query[0]->employer->site }}">{{ $Query[0]->employer->site }}</a> | |
35 | + </span> | |
36 | + </div> | |
37 | + <div class="main__employer-page-item"> | |
38 | + <b>Почта</b> | |
39 | + <span> | |
40 | + <a href="{{ $Query[0]->employer->email }}">{{ $Query[0]->employer->email }}</a> | |
41 | + </span> | |
42 | + </div> | |
43 | + <div class="main__employer-page-item"> | |
44 | + <b>Телефон</b> | |
45 | + <span> | |
46 | + <a href="tel:{{ $Query[0]->employer->telephone }}">{{ $Query[0]->employer->telephone }}</a> | |
47 | + </span> | |
48 | + </div> | |
49 | + </div> | |
50 | + @else | |
51 | + <div class="main__employer-page-info"> | |
52 | + <div class="main__employer-page-item"> | |
53 | + <b>Ничего не найдено</b> | |
54 | + <span> | |
55 | + Нет данных о компании | |
56 | + </span> | |
57 | + </div> | |
58 | + </div> | |
59 | + @endif | |
60 | + <h2 class="main__employer-page-title">Описание вакансии</h2> | |
61 | + </div> | |
62 | + | |
63 | + @foreach ($Query as $Q) | |
64 | + <div class="main__vacancies-item-page main__employer-page-two-item"> | |
65 | + <div class="main__employer-page-two-item-text"> | |
66 | + <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор | |
67 | + специалистов на следующие должности:</div> | |
68 | + <div class="main__employer-page-two-item-text-links"> | |
69 | + @if (isset($Q->jobs)) | |
70 | + @foreach ($Q->jobs as $key => $j) | |
71 | + <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 | + @endforeach | |
73 | + @endif | |
74 | + </div> | |
75 | + </div> | |
76 | + <div class="main__employer-page-two-item-text"> | |
77 | + <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div> | |
78 | + <div class="main__employer-page-two-item-text-body"> | |
79 | + {!! $Q->text !!} | |
80 | + </div> | |
81 | + </div> | |
82 | + <div class="main__employer-page-two-item-text"> | |
83 | + <div class="main__employer-page-two-item-text-name">Наши ожидания:</div> | |
84 | + <div class="main__employer-page-two-item-text-body"> | |
85 | + {!! $Q->description !!} | |
86 | + </div> | |
87 | + </div> | |
88 | + <div class="main__employer-page-two-item-text"> | |
89 | + <div class="main__employer-page-two-item-text-name">Резюме направляйте на почту:</div> | |
90 | + <div class="main__employer-page-two-item-text-body"> | |
91 | + {!! $Q->contacts_emails !!} | |
92 | + </div> | |
93 | + <div class="main__employer-page-two-item-text"> | |
94 | + <div class="main__employer-page-two-item-text-name">Или звоните:</div> | |
95 | + <div class="main__employer-page-two-item-text-body"> | |
96 | + {!! $Q->contacts_telephones !!} | |
97 | + </div> | |
98 | + </div> | |
99 | + <div class="main__employer-page-two-item-tags"> | |
100 | + @if (isset($Q->jobs)) | |
101 | + @foreach ($Q->jobs as $key => $j) | |
102 | + <span class="main__employer-page-two-item-tag">#{{ $j->name }}</span> | |
103 | + @endforeach | |
104 | + @endif | |
105 | + </div> | |
106 | + <div class="main__employer-page-two-item-buttons"> | |
107 | + <button type="button" class="button main__employer-page-two-item-button">Откликнуться</button> | |
108 | + </div> | |
109 | + <div class="main__employer-page-two-item-bottom"> | |
110 | + <div class="main__employer-page-two-item-bottom-date">{{ $Q->created_at }}</div> | |
111 | + <button type="button" class="like main__employer-page-two-item-bottom-like js-toggle"> | |
112 | + <svg> | |
113 | + <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use> | |
114 | + </svg> | |
115 | + </button> | |
116 | + </div> | |
117 | + </div> | |
118 | + | |
119 | + @endforeach | |
120 | + | |
121 | + </div> <a href="{{ redirect()->back()->getTargetUrl() }}" class="back"> | |
122 | + <svg> | |
123 | + <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> | |
124 | + </svg> | |
125 | + <span> | |
126 | + Вернуться к списку вакансий | |
127 | + </span> | |
128 | + </a> | |
129 | + </main> | |
130 | + </div> | |
131 | +@endsection |
resources/views/vacancies.blade.php
... | ... | @@ -72,7 +72,7 @@ |
72 | 72 | @endphp |
73 | 73 | @if ($categories->count()) |
74 | 74 | @foreach ($categories as $cat) |
75 | - <a href="{{ route('') }}" class="vacancies__item"> | |
75 | + <a href="{{ route('list-vacancies', ['categories' => $cat->id]) }}" class="vacancies__item"> | |
76 | 76 | <span style="border-color:{{$colors[$i]}}"> |
77 | 77 | <b>{{ $cat->name }}</b> |
78 | 78 | <u>{{ $cat->min_salary }} — {{ $cat->max_salary }} ₽</u> |
routes/web.php
... | ... | @@ -6,6 +6,7 @@ use App\Http\Controllers\Admin\CategoryController; |
6 | 6 | use App\Http\Controllers\Admin\CategoryEmpController; |
7 | 7 | use App\Http\Controllers\Admin\EducationController; |
8 | 8 | use App\Http\Controllers\Admin\EmployersController; |
9 | +use App\Http\Controllers\EmployerController as FrontEmployersController; | |
9 | 10 | use App\Http\Controllers\Admin\InfoBloksController; |
10 | 11 | use App\Http\Controllers\Admin\JobTitlesController; |
11 | 12 | use App\Http\Controllers\Admin\UsersController; |
... | ... | @@ -27,6 +28,7 @@ use App\Http\Controllers\Admin\GroupsController; |
27 | 28 | use App\Http\Controllers\PagesController; |
28 | 29 | use Illuminate\Support\Facades\Storage; |
29 | 30 | use App\Http\Controllers\EmployerController; |
31 | +use App\Http\Controllers\CompanyController as FrontCompanyController; | |
30 | 32 | |
31 | 33 | |
32 | 34 | /* |
... | ... | @@ -194,6 +196,12 @@ Route::group([ |
194 | 196 | |
195 | 197 | Route::get('employers/comment/{employer}', [EmployersController::class, 'comment_read'])->name('comment-employer'); |
196 | 198 | |
199 | + Route::get('flot/add/{employer}', [EmployersController::class, 'add_flot'])->name('flot_add'); | |
200 | + Route::post('flot/add', [EmployersController::class, 'save_add_flot'])->name('flot_add_save'); | |
201 | + Route::get('flot/{flot}/{employer}', [EmployersController::class, 'edit_flot'])->name('flot'); | |
202 | + Route::put('flot/{flot}', [EmployersController::class, 'edit_save_flot'])->name('flot_edit'); | |
203 | + Route::get('flot/{flot}/{employer_id}/delete', [EmployersController::class, 'delete_flot'])->name('flot_delete'); | |
204 | + | |
197 | 205 | // кабинет - соискатели |
198 | 206 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); |
199 | 207 | |
... | ... | @@ -214,6 +222,11 @@ Route::group([ |
214 | 222 | Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers'); |
215 | 223 | Route::delete('ad-employers/delete/{ad_employer}', [Ad_EmployersController::class, 'destroy'])->name('delete-ad-employer'); |
216 | 224 | |
225 | + // Редактирование должности в вакансии | |
226 | + Route::put('update-jobs/{ad_jobs}', [Ad_EmployersController::class, 'update_ad_jobs'])->name('update_jobs'); | |
227 | + Route::get('edit-jobs/{ad_jobs}', [Ad_EmployersController::class, 'edit_jobs'])->name('edit_jobs'); | |
228 | + | |
229 | + | |
217 | 230 | // кабинет - категории |
218 | 231 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); |
219 | 232 | /* |
... | ... | @@ -385,43 +398,25 @@ Route::get('employer/ad/{ad_employer}', [AdEmployerController::class, 'ad_employ |
385 | 398 | Route::get('vacancies', [MainController::class, 'vacancies'])->name('vacancies'); |
386 | 399 | |
387 | 400 | //Вакансии категория детальная |
388 | -Route::get('list-vacancies/{categories}/{job_titles?}', [MainController::class, 'list_vacancies'])->name('list-vacancies'); | |
401 | +Route::get('list-vacancies/{categories}', [MainController::class, 'list_vacancies'])->name('list-vacancies'); | |
402 | + | |
403 | +//Детальная страница вакансии - работодателя | |
404 | +Route::get('vacancie/{vacancy}', [FrontEmployersController::class, 'vacancie'])->name('vacancie'); | |
389 | 405 | |
390 | 406 | //Судоходные компании |
391 | -Route::get('shipping-companies', [MainController::class, 'shipping_companies'])->name('shipping_companies'); | |
407 | +Route::get('shipping-companies', [FrontCompanyController::class, 'shipping_companies'])->name('shipping_companies'); | |
408 | + | |
409 | +//Детальная инфа о компании | |
410 | +Route::get('info-company/{company}', [FrontCompanyController::class, 'info_company'])->name('info_company'); | |
392 | 411 | |
393 | 412 | //Образование |
394 | 413 | Route::get('education', [MainController::class, 'education'])->name('education'); |
395 | 414 | |
396 | -//Условия размещения для соискателей | |
397 | -Route::get('if-public', [MainController::class, 'if_public'])->name('if_public'); | |
398 | - | |
399 | 415 | //Новости |
400 | 416 | Route::get('news', [MainController::class, 'news'])->name('news'); |
401 | 417 | |
402 | 418 | //Контакты |
403 | 419 | Route::get('contacts', [MainController::class, 'contacts'])->name('contacts'); |
404 | 420 | |
405 | -//Публичная оферта | |
406 | -Route::get('public-offer', [WorkerController::class, 'public_offer'])->name('public_offer'); | |
407 | - | |
408 | 421 | //База резюме |
409 | 422 | Route::get('bd-resume', [MainController::class, 'bd_resume'])->name('bd_resume'); |
410 | - | |
411 | -//Стоимость размещения для работодателей | |
412 | -Route::get('cost-public-employer', [EmployerController::class, 'cost_public_employer'])->name('cost_public_employer'); | |
413 | - | |
414 | -//Политика конфиденциальности | |
415 | -Route::get('privacy-policy', [PagesController::class, 'private_policy'])->name('private_policy'); | |
416 | - | |
417 | -//Пользовательское соглашение | |
418 | -Route::get('terms-of-use', [PagesController::class, 'terms_of_use'])->name('terms_of_use'); | |
419 | - | |
420 | -//Инструкции | |
421 | -Route::get('instruction', [EmployersController::class, 'instruction'])->name('instruction'); | |
422 | - | |
423 | -//Эффективность объявления | |
424 | -Route::get('effective-note', [EmployersController::class, 'effective_note'])->name('effective_note'); | |
425 | - | |
426 | -//Публичная оферта | |
427 | -Route::get('public-offer-emp', [EmployersController::class, 'public_offer_emp'])->name('public_offer_emp'); |