Commit 7571b20fd5c13ed6f79784db64504d6f9f64f2de

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

Коммит 13 марта 2024

Showing 29 changed files with 737 additions and 175 deletions Side-by-side Diff

app/Http/Controllers/Admin/Ad_EmployersController.php
... ... @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admin;
5 5 use App\Http\Controllers\Controller;
6 6 use App\Models\Ad_employer;
7 7 use App\Models\Ad_jobs;
  8 +use App\Models\Category;
8 9 use App\Models\Employer;
9 10 use App\Models\Job_title;
10 11 use App\Models\User;
... ... @@ -77,14 +78,11 @@ class Ad_EmployersController extends Controller
77 78 }
78 79 }
79 80  
80   - /**
81   - * Show the form for creating a new resource
82   - * @return \Illuminate\Http\Response
83   - */
84 81 public function create()
85 82 {
86 83 $job_titles = Job_title::query()->active()->get();
87   - return view('admin.ad_employers.add', compact('job_titles'));
  84 + $categories = Category::query()->get();
  85 + return view('admin.ad_employers.add', compact('job_titles', 'categories'));
88 86 }
89 87  
90 88 /**
... ... @@ -143,12 +141,12 @@ class Ad_EmployersController extends Controller
143 141 {
144 142 $sel = Array();
145 143 $job_titles = Job_title::active()->get();
146   -
  144 + $categories = Category::query()->get();
147 145 foreach ($ad_employer->jobs as $j) {
148 146 $sel[] = $j->id;
149 147 }
150 148  
151   - return view('admin.ad_employers.edit', compact('ad_employer', 'job_titles', 'sel'));
  149 + return view('admin.ad_employers.edit', compact('ad_employer', 'categories', 'job_titles', 'sel'));
152 150 }
153 151  
154 152 /**
app/Http/Controllers/EmployerController.php
... ... @@ -6,6 +6,7 @@ use App\Classes\RusDate;
6 6 use App\Classes\Tools;
7 7 use App\Http\Requests\FlotRequest;
8 8 use App\Http\Requests\MessagesRequiest;
  9 +use App\Http\Requests\VacancyRequestEdit;
9 10 use App\Http\Requests\VacansiaRequiest;
10 11 use App\Mail\MailSotrudnichestvo;
11 12 use App\Mail\SendAllMessages;
... ... @@ -108,17 +109,17 @@ class EmployerController extends Controller
108 109 public function cabinet_vacancie() {
109 110 $id = Auth()->user()->id;
110 111 $jobs = Job_title::query()->OrderBy('name')->get();
111   -
  112 + $categories = Category::query()->get();
112 113 $Employer = Employer::query()->with('users')->with('ads')->with('flots')->
113 114 WhereHas('users',
114 115 function (Builder $query) use ($id) {$query->Where('id', $id);
115 116 })->get();
116 117  
117   - return view('employers.add_vacancy', compact('Employer', 'jobs'));
  118 + return view('employers.add_vacancy', compact('Employer', 'jobs' , 'categories'));
118 119 }
119 120  
120 121 // Сохранение вакансии
121   - public function cabinet_vacancy_save1(VacansiaRequiest $request) {
  122 + public function cabinet_vacancy_save1(VacancyRequestEdit $request) {
122 123 $params = $request->all();
123 124 $jobs['min_salary'] = $params['min_salary'];
124 125 $jobs['max_salary'] = $params['max_salary'];
... ... @@ -157,9 +158,20 @@ class EmployerController extends Controller
157 158 public function vacancy_edit(Ad_employer $ad_employer) {
158 159 $id = Auth()->user()->id;
159 160 $jobs = Job_title::query()->OrderBy('name')->get();
160   - $Employer = Employer::query()->where('user_id', $id)->first();
  161 + $categories = Category::query()->get();
  162 + $Employer = Employer::query()->with('users')->with('ads')->with('flots')->
  163 + where('user_id', $id)->first();
  164 +
  165 + return view('employers.edit_vacancy', compact('ad_employer', 'categories','Employer', 'jobs'));
  166 + }
161 167  
162   - return view('employers.edit_vacancy', compact('ad_employer', 'Employer', 'jobs'));
  168 + // Сохранение-редактирование записи
  169 + public function vacancy_save_me(VacancyRequestEdit $request, Ad_employer $ad_employer) {
  170 + $all = $request->all();
  171 +
  172 + $ad_employer->update($all);
  173 +
  174 + return redirect()->route('employer.vacancy_list');
163 175 }
164 176  
165 177 // Сохранение карточки вакансии
app/Http/Controllers/MainController.php
... ... @@ -114,17 +114,24 @@ class MainController extends Controller
114 114  
115 115 $Query = $Query->OrderBy('updated_at')->paginate(3);
116 116  
117   - $Reclama = reclame::query()->limit(3)->get();
  117 + $Reclama = reclame::query()->get();
118 118  
119 119  
120 120  
121 121 if ($request->ajax()) {
122   - return view('ajax.list_vacancies', compact('Query',
123   - 'Query_count',
124   - 'Name_categori',
125   - 'Reclama',
126   - 'categories',
127   - 'uid'));
  122 + if ($request->has('title')) {
  123 + return view('ajax.list_category', compact(
  124 + 'Name_categori'
  125 + ));
  126 + } else {
  127 + return view('ajax.list_vacancies', compact('Query',
  128 + 'Query_count',
  129 + 'Name_categori',
  130 + 'Reclama',
  131 + 'categories',
  132 + 'Job_title',
  133 + 'uid'));
  134 + }
128 135 } else {
129 136 //Вернуть все
130 137 return view('list_vacancies', compact('Query',
... ... @@ -179,7 +186,7 @@ class MainController extends Controller
179 186  
180 187 $rules = [
181 188 'email' => 'required|string|email',
182   - 'password' => 'required|string',
  189 + 'password' => 'required|string|min:3|max:25',
183 190 ];
184 191  
185 192 $messages = [
app/Http/Controllers/WorkerController.php
... ... @@ -24,6 +24,7 @@ use Barryvdh\DomPDF\Facade\Pdf;
24 24 use Carbon\Carbon;
25 25 use Illuminate\Auth\Events\Registered;
26 26 use Illuminate\Database\Eloquent\Builder;
  27 +use Illuminate\Database\Eloquent\Model;
27 28 use Illuminate\Http\JsonResponse;
28 29 use Illuminate\Http\Request;
29 30 use Illuminate\Support\Facades\Auth;
... ... @@ -124,24 +125,53 @@ class WorkerController extends Controller
124 125 ->with('infobloks');
125 126 $Query = $Query->where('id', '=', $worker->id);
126 127 $Query = $Query->get();
  128 +
  129 + $get_date = date('Y.m');
  130 + $c = Static_worker::query()->where('year_month', '=', $get_date)
  131 + ->where('user_id', '=', $worker->id)
  132 + ->get();
  133 +
  134 + if ($c->count() > 0) {
  135 + $upd = Static_worker::find($c[0]->id);
  136 + $upd->lookin = $upd->lookin + 1;
  137 + $upd->save();
  138 + } else {
  139 + $crt = new Static_worker();
  140 + $crt->lookin = 1;
  141 + $crt->year_month = $get_date;
  142 + $crt->user_id = $worker->user_id;
  143 + $crt->save();
  144 + }
  145 +
  146 + $stat = Static_worker::query()->where('year_month', '=', $get_date)
  147 + ->where('user_id', '=', $worker->id)
  148 + ->get();
  149 +
127 150 return view('worker', compact('Query', 'status_work'));
128 151 }
129 152  
130 153 // скачать анкету соискателя
131 154 public function resume_download(Worker $worker)
132 155 {
133   - $arr_house = ['0' => '$1000000000000000000'];
  156 + $status_work = $this->status_work;
  157 + $Query = Worker::query()->with('users')->with('job_titles')
  158 + ->with('place_worker')->with('sertificate')->with('prev_company')
  159 + ->with('infobloks');
  160 + $Query = $Query->where('id', '=', $worker->id);
  161 + $Query = $Query->get()->toArray();
134 162  
135   - view()->share('house',$arr_house);
  163 + view()->share('Query',$Query);
136 164  
137   - $pdf = PDF::loadView('layout.pdf', $arr_house); //->setPaper('a4', 'landscape');
  165 + $pdf = PDF::loadView('layout.pdf', $Query); //->setPaper('a4', 'landscape');
138 166  
139 167 return $pdf->stream();
140 168 }
141 169  
142 170 // Кабинет работника
143   - public function cabinet()
  171 + public function cabinet(Request $request)
144 172 {
  173 + $get_date = date('Y.m');
  174 +
145 175 $id = Auth()->user()->id;
146 176 $Worker = Worker::query()->with('users')->with('sertificate')->with('prev_company')->
147 177 with('infobloks')->with('place_worker')->
... ... @@ -152,7 +182,39 @@ class WorkerController extends Controller
152 182 $Job_titles = Job_title::query()->OrderBy('name')->get();
153 183 $Infoblocks = infobloks::query()->OrderBy('name')->get();
154 184  
155   - return view('workers.cabinet', compact('Worker', 'Job_titles', 'Infoblocks'));
  185 + $stat = Static_worker::query()->where('year_month', '=', $get_date)
  186 + ->where('user_id', '=', $Worker[0]->id)
  187 + ->get();
  188 +
  189 + $persent = 10;
  190 + if ((!empty($Worker[0]->status_work)) && (!empty($Worker[0]->telephone)) &&
  191 + (!empty($Worker[0]->email)) && (!empty($Worker[0]->experience)) &&
  192 + (!empty($Worker[0]->city)) && (!empty($Worker[0]->old_year))) {
  193 + $persent = $persent + 40;
  194 + }
  195 +
  196 + if ($Worker[0]->sertificate->count() > 0) {
  197 + $persent = $persent + 15;
  198 + }
  199 +
  200 + if ($Worker[0]->infobloks->count() > 0) {
  201 + $persent = $persent + 20;
  202 + }
  203 +
  204 + if ($Worker[0]->prev_company->count() > 0) {
  205 + $persent = $persent + 10;
  206 + }
  207 +
  208 + if (!empty($Worker[0]->photo)) {
  209 + // 5%
  210 + $persent = $persent + 5;
  211 + }
  212 +
  213 + if ($request->has('print')) {
  214 + dd($Worker);
  215 + } else {
  216 + return view('workers.cabinet', compact('Worker', 'persent', 'Job_titles', 'Infoblocks', 'stat'));
  217 + }
156 218 }
157 219  
158 220 // Сохранение данных
app/Http/Requests/VacancyRequestEdit.php
... ... @@ -0,0 +1,116 @@
  1 +<?php
  2 +
  3 +namespace App\Http\Requests;
  4 +
  5 +use Illuminate\Foundation\Http\FormRequest;
  6 +
  7 +class VacancyRequestEdit extends FormRequest
  8 +{
  9 + public function authorize()
  10 + {
  11 + return true;
  12 + }
  13 +
  14 + /**
  15 + * Get the validation rules that apply to the request.
  16 + *
  17 + * @return array<string, mixed>
  18 + */
  19 +
  20 + public function rules()
  21 + {
  22 + $Arr = [
  23 + 'name' => [
  24 + 'required',
  25 + 'min:3',
  26 + 'max:255',
  27 + ],
  28 +
  29 + 'category_id' => [
  30 + 'numeric',
  31 + 'min:0',
  32 + 'max:9999999',
  33 + ],
  34 +
  35 + 'telephone' => [
  36 + 'min:3',
  37 + 'max:255',
  38 + ],
  39 +
  40 + 'email' => [
  41 + 'min:3',
  42 + 'max:255',
  43 + ],
  44 +
  45 + 'salary' => [
  46 + 'numeric',
  47 + 'min:3',
  48 + 'max:255',
  49 + ],
  50 +
  51 + 'min_salary' => [
  52 + 'numeric',
  53 + 'min:0',
  54 + 'max:9999999',
  55 + ],
  56 +
  57 + 'max_salary' => [
  58 + 'numeric',
  59 + 'min:0',
  60 + 'max:9999999',
  61 + ],
  62 +
  63 + 'city' => [
  64 + 'min:3',
  65 + 'max:255',
  66 + ],
  67 +
  68 + 'job_title_id' => [
  69 + 'numeric',
  70 + 'min:1',
  71 + 'max:9999999'
  72 + ]
  73 + ];
  74 +
  75 + return [
  76 + 'name' => [
  77 + 'required',
  78 + 'min:3',
  79 + 'max:255',
  80 + ],
  81 +
  82 + 'category_id' => [
  83 + 'numeric',
  84 + 'min:0',
  85 + 'max:9999999',
  86 + ],
  87 +
  88 + 'telephone' => [
  89 + 'min:3',
  90 + 'max:255',
  91 + ],
  92 +
  93 + 'email' => [
  94 + 'min:3',
  95 + 'max:255',
  96 + ],];
  97 + }
  98 +
  99 + public function messages() {
  100 + return [
  101 + 'required' => 'Поле «:attribute» обязательно для заполнения',
  102 + 'unique' => 'Такое значение поля «:attribute» уже используется',
  103 + 'min' => [
  104 + 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
  105 + 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
  106 + ],
  107 + 'max' => [
  108 + 'string' => 'Поле «:attribute» должно быть не больше :max символов',
  109 + 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
  110 + ],
  111 + 'mimes' => 'Файл «:attribute» должен иметь формат :values',
  112 + 'numeric' => 'В поле «:attribute» должно быть указано целое число от 0 до 9999999',
  113 + ];
  114 +
  115 + }
  116 +}
app/Http/Requests/VacansiaRequiest.php
... ... @@ -24,7 +24,7 @@ class VacansiaRequiest extends FormRequest
24 24  
25 25 public function rules()
26 26 {
27   - return [
  27 + $Arr = [
28 28 'name' => [
29 29 'required',
30 30 'min:3',
... ... @@ -76,6 +76,29 @@ class VacansiaRequiest extends FormRequest
76 76 'max:9999999'
77 77 ]
78 78 ];
  79 +
  80 + return [
  81 + 'name' => [
  82 + 'required',
  83 + 'min:3',
  84 + 'max:255',
  85 + ],
  86 +
  87 + 'category_id' => [
  88 + 'numeric',
  89 + 'min:0',
  90 + 'max:9999999',
  91 + ],
  92 +
  93 + 'telephone' => [
  94 + 'min:3',
  95 + 'max:255',
  96 + ],
  97 +
  98 + 'email' => [
  99 + 'min:3',
  100 + 'max:255',
  101 + ],];
79 102 }
80 103  
81 104 public function messages() {
resources/views/admin/ad_employers/add.blade.php
... ... @@ -18,7 +18,7 @@
18 18 placeholder="Название вакансии" value="{{ old('name') ?? '' }}"
19 19 />
20 20 @error('name')
21   - <span class="text-xs text-red-600 dark:text-red-400">
  21 + <span class="text-xs text-red-600">
22 22 {{ $message }}
23 23 </span>
24 24 @enderror
... ... @@ -41,6 +41,22 @@
41 41 </select>
42 42 </label><br>
43 43  
  44 + <label class="block mt-4 text-sm">
  45 + <span class="text-gray-700 dark:text-gray-400">
  46 + Категории локации
  47 + </span>
  48 + <select
  49 + 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"
  50 + name="category_id" id="category_id"
  51 + >
  52 + @foreach($categories as $it)
  53 + <option value="{{$it->id}}" @if (old('category_id') == $it->id) selected @endif >
  54 + {{ $it->name }} ({{$it->id}})
  55 + </option>
  56 + @endforeach
  57 + </select>
  58 + </label><br>
  59 +
44 60 <label class="block text-sm">
45 61 <span class="text-gray-700 dark:text-gray-400">Текст-описание вакансии</span>
46 62 <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="Описание вакансии (text/html)"
resources/views/admin/ad_employers/edit.blade.php
... ... @@ -41,6 +41,22 @@
41 41 </select>
42 42 </label><br>
43 43  
  44 + <label class="block mt-4 text-sm">
  45 + <span class="text-gray-700 dark:text-gray-400">
  46 + Категории локации
  47 + </span>
  48 + <select
  49 + 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"
  50 + name="category_id" id="category_id"
  51 + >
  52 + @foreach($categories as $it)
  53 + <option value="{{$it->id}}" @if (old('category_id') == $it->id) selected @endif >
  54 + {{ $it->name }} ({{$it->id}})
  55 + </option>
  56 + @endforeach
  57 + </select>
  58 + </label><br>
  59 +
44 60 <label class="block text-sm">
45 61 <span class="text-gray-700 dark:text-gray-400">Текст-описание вакансии</span>
46 62 <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="Описание вакансии (text/html)"
resources/views/admin/reclames/index.blade.php
... ... @@ -37,8 +37,8 @@
37 37 console.log('click button');
38 38 //let id = e.target.id;
39 39 let form = document.getElementById("form_modal_del");
40   - form.action = "<?=$_SERVER['APP_URL'];?>admin/reclames/delete/"+e.target.getAttribute('data-reclame');
41   - //document.getElementById("title_modal").innerHTML = id;
  40 + form.action = "{{ env('APP_URL') }}admin/reclames/delete/"+e.target.getAttribute('data-reclame');
  41 + document.getElementById("title_modal").innerHTML = id;
42 42 console.log(e.target.getAttribute('data-employer'));
43 43 console.log(e.target.getAttribute('data-user'));
44 44  
... ... @@ -61,9 +61,10 @@
61 61 Добавить рекламу
62 62 </a>
63 63 <br>
64   - <pre><? //print_r($_SERVER);?></pre>
  64 +
65 65 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
66 66  
  67 +
67 68 <div class="w-full overflow-x-auto">
68 69 <table class="w-full whitespace-no-wrap">
69 70 <thead>
resources/views/ajax/list_category.blade.php
... ... @@ -0,0 +1 @@
  1 +Категория: {{ $Name_categori[0]->name }}
resources/views/employers/add_vacancy.blade.php
... ... @@ -65,6 +65,31 @@
65 65 @endforeach
66 66 @endif
67 67 </select>
  68 + @error('job_title_id')
  69 + <span class="text-xs text-red-600 dark:text-red-400">
  70 + {{ $message }}
  71 + </span>
  72 + @enderror
  73 + </div>
  74 + </div>
  75 + </div>
  76 +
  77 + <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
  78 + <label class="form-group__label">Категория (локация)</label>
  79 + <div class="form-group__item">
  80 + <div class="select">
  81 + <select class="js-select2" name="category_id" id="category_id">
  82 + @php $i = 1 @endphp
  83 + @if ($categories->count())
  84 + @foreach($categories as $j)
  85 + @if ($i == 1) <option selected> Выберите категорию из списка</option>
  86 + @else
  87 + <option value="{{ $j->id }}">{{ $j->name }}</option>
  88 + @endif
  89 + @php $i++ @endphp
  90 + @endforeach
  91 + @endif
  92 + </select>
68 93 @error('category_id')
69 94 <span class="text-xs text-red-600 dark:text-red-400">
70 95 {{ $message }}
... ... @@ -73,6 +98,7 @@
73 98 </div>
74 99 </div>
75 100 </div>
  101 +
76 102 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
77 103 <label class="form-group__label">Телефон</label>
78 104 <div class="form-group__item">
... ... @@ -205,7 +231,7 @@
205 231 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
206 232 <label class="form-group__label">Описание вакансии</label>
207 233 <div class="form-group__item">
208   - <textarea class="textarea" name="text" id="text">{{ old('text') ?? $Employer[0]->text ?? '' }}</textarea>
  234 + <textarea class="textarea" name="text" id="text">{{ $Employer[0]->text ?? '' }}</textarea>
209 235 @error('text')
210 236 <span class="text-xs text-red-600">
211 237 {{ $message }}
... ... @@ -218,7 +244,7 @@
218 244 <label class="form-group__label">Дополнительная информация</label>
219 245 <div class="form-group__item">
220 246 <textarea class="textarea" name="description" id="description">{{ old('description') ?? '' }}</textarea>
221   - @error('text')
  247 + @error('description')
222 248 <span class="text-xs text-red-600">
223 249 {{ $message }}
224 250 </span>
resources/views/employers/edit_vacancy.blade.php
... ... @@ -27,7 +27,7 @@
27 27  
28 28 </div>
29 29  
30   - <form class="cabinet__body" action="{{ route('employer.vac_save') }}" method="POST">
  30 + <form class="cabinet__body" action="{{ route('employer.vacancy_save_me', ['ad_employer' => $ad_employer]) }}" method="POST">
31 31 @csrf
32 32 <input type="hidden" name="employer_id" value="{{ $Employer->id }}"/>
33 33 <div class="cabinet__body-item">
... ... @@ -74,6 +74,31 @@
74 74 </div>
75 75  
76 76 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
  77 + <label class="form-group__label">Категория (локация)</label>
  78 + <div class="form-group__item">
  79 + <div class="select">
  80 + <select class="js-select2" name="category_id" id="category_id">
  81 + @php $i = 1 @endphp
  82 + @if ($categories->count())
  83 + @foreach($categories as $j)
  84 + @if ($i == 1) <option selected> Выберите категорию из списка</option>
  85 + @else
  86 + <option value="{{ $j->id }}">{{ $j->name }}</option>
  87 + @endif
  88 + @php $i++ @endphp
  89 + @endforeach
  90 + @endif
  91 + </select>
  92 + @error('category_id')
  93 + <span class="text-xs text-red-600 dark:text-red-400">
  94 + {{ $message }}
  95 + </span>
  96 + @enderror
  97 + </div>
  98 + </div>
  99 + </div>
  100 +
  101 + <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
77 102 <label class="form-group__label">Телефон</label>
78 103 <div class="form-group__item">
79 104 <input type="text" class="input" name="telephone" id="telephone" value="{{ old('telephone') ?? $Employer->telephone ?? '' }}" placeholder="Свой телефон">
... ... @@ -97,10 +122,10 @@
97 122 </div>
98 123 </div>
99 124  
100   - <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
  125 + <!--<div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
101 126 <label class="form-group__label">Зарплата среднестатистическая</label>
102 127 <div class="form-group__item">
103   - <input type="text" class="input" name="salary" id="salary" value="{{ old('salary') ?? '' }}" placeholder="Среднестатистическая зарплата">
  128 + <input type="text" class="input" name="salary" id="salary" value="old('salary') ?? '' }}" placeholder="Среднестатистическая зарплата">
104 129 @error('salary')
105 130 <span class="text-xs text-red-600">
106 131 {{ $message }}
... ... @@ -112,7 +137,7 @@
112 137 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
113 138 <label class="form-group__label">Минимальная зарплата</label>
114 139 <div class="form-group__item">
115   - <input type="text" class="input" name="min_salary" id="min_salary" value="{{ old('min_salary') ?? '' }}" placeholder="Минимальная зарплата">
  140 + <input type="text" class="input" name="min_salary" id="min_salary" value=" old('min_salary') ?? '' }}" placeholder="Минимальная зарплата">
116 141 @error('min_salary')
117 142 <span class="text-xs text-red-600">
118 143 {{ $message }}
... ... @@ -124,7 +149,7 @@
124 149 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
125 150 <label class="form-group__label">Максимальная зарплата</label>
126 151 <div class="form-group__item">
127   - <input type="text" class="input" name="max_salary" id="max_salary" value="{{ old('max_salary') ?? '' }}" placeholder="Максимальная зарплата">
  152 + <input type="text" class="input" name="max_salary" id="max_salary" value=" old('max_salary') ?? '' }}" placeholder="Максимальная зарплата">
128 153 @error('salary')
129 154 <span class="text-xs text-red-600 dark:text-red-400">
130 155 {{ $message }}
... ... @@ -136,7 +161,7 @@
136 161 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
137 162 <label class="form-group__label">Город-регион</label>
138 163 <div class="form-group__item">
139   - <input type="text" class="input" name="city" id="city" value="{{ old('city') ?? $Employer[0]->city ?? '' }}" placeholder="Севастополь">
  164 + <input type="text" class="input" name="city" id="city" value=" old('city') ?? $Employer[0]->city ?? '' }}" placeholder="Севастополь">
140 165 @error('city')
141 166 <span class="text-xs text-red-600">
142 167 {{ $message }}
... ... @@ -148,7 +173,7 @@
148 173 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
149 174 <label class="form-group__label">Мощность</label>
150 175 <div class="form-group__item">
151   - <input type="text" class="input" name="power" id="power" value="{{ old('power') ?? '' }}" placeholder="POWER-45">
  176 + <input type="text" class="input" name="power" id="power" value=" old('power') ?? '' }}" placeholder="POWER-45">
152 177 @error('power')
153 178 <span class="text-xs text-red-600">
154 179 {{ $message }}
... ... @@ -160,7 +185,7 @@
160 185 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
161 186 <label class="form-group__label">Суточные выплаты</label>
162 187 <div class="form-group__item">
163   - <input type="text" class="input" name="sytki" id="sytki" value="{{ old('sytki') ?? '' }}" placeholder="2000">
  188 + <input type="text" class="input" name="sytki" id="sytki" value=" old('sytki') ?? '' }}" placeholder="2000">
164 189 @error('power')
165 190 <span class="text-xs text-red-600">
166 191 {{ $message }}
... ... @@ -172,21 +197,21 @@
172 197 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
173 198 <label class="form-group__label">Начало отплытия</label>
174 199 <div class="form-group__item">
175   - <input type="text" class="input" name="start" id="start" value="{{ old('start') ?? '' }}" placeholder="20 сентября 2024">
  200 + <input type="text" class="input" name="start" id="start" value=" old('start') ?? $Employer->ads->start ?? '' }}" placeholder="20 сентября 2024">
176 201 @error('power')
177 202 <span class="text-xs text-red-600">
178 203 {{ $message }}
179 204 </span>
180 205 @enderror
181 206 </div>
182   - </div>
  207 + </div>-->
183 208  
184 209 <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
185 210 <label class="form-group__label">Корабль для посадки</label>
186 211 <div class="form-group__item">
187 212 <div class="select">
188 213 <select class="js-select2" name="flot" id="flot">
189   - <option value="" selected> Не указан корабль</option>
  214 +
190 215 @if ($Employer->flots->count())
191 216 @foreach($Employer->flots as $j)
192 217 <option value="{{ $j->name }}">{{ $j->name }} ({{ $j->id }})</option>
... ... @@ -214,17 +239,17 @@
214 239 </div>
215 240 </div>
216 241  
217   - <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
  242 + <!--<div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group">
218 243 <label class="form-group__label">Дополнительная информация</label>
219 244 <div class="form-group__item">
220   - <textarea class="textarea" name="description" id="description">{{ old('description') ?? '' }}</textarea>
221   - @error('text')
  245 + <textarea class="textarea" name="description" id="description"> old('description') ?? '' }}</textarea>
  246 + @error('description')
222 247 <span class="text-xs text-red-600">
223 248 {{ $message }}
224 249 </span>
225 250 @enderror
226 251 </div>
227   - </div>
  252 + </div>-->
228 253 </div>
229 254 <a class="button cabinet__submit" href="{{ route('employer.vacancy_list') }}">Назад</a>
230 255 <button type="submit" class="button cabinet__submit">Опубликовать</button>
resources/views/employers/list_vacancy.blade.php
... ... @@ -101,10 +101,10 @@
101 101 </div>
102 102 @if ($vacancy_list->count())
103 103 <div class="table table_spoiler">
104   - <button type="button" class="table__button js-toggle js-parent-toggle button button_light button_more">
  104 + <!--<button type="button" class="table__button js-toggle js-parent-toggle button button_light button_more">
105 105 <span>Показать ещё</span>
106 106 <span>Свернуть</span>
107   - </button>
  107 + </button>-->
108 108 <div class="table__scroll">
109 109 <div class="table__body table__body_min-width">
110 110 <table>
resources/views/employers/menu.blade.php
... ... @@ -73,7 +73,7 @@
73 73 </i>
74 74 <span>База данных</span>
75 75 </a>
76   - <a href="{{ route('employer.bd-tupe') }}" class="cabinet__menu-item @if ($item==8) active @endif">
  76 + <a href="{{ route('bd_resume') }}" target="_blank" class="cabinet__menu-item @if ($item==8) active @endif">
77 77 <i>
78 78 <svg>
79 79 <use xlink:href="{{ asset('images/sprite.svg#cabinet-8') }}"></use>
resources/views/index.blade.php
... ... @@ -29,7 +29,11 @@
29 29 </svg>
30 30 </span>
31 31 </form>
  32 + @guest
  33 + <a data-fancybox data-src="#question2" data-options='{"touch":false,"autoFocus":false}' class="button work__search">Я ищу сотрудника</a>
  34 + @else
32 35 <a href="{{ route('bd_resume') }}" class="button work__search">Я ищу сотрудника</a>
  36 + @endguest
33 37 <div class="work__get">
34 38 <b>Скачать приложение</b>
35 39 <a href="">
... ... @@ -74,7 +78,7 @@
74 78 <div class="vacancies__list">
75 79 @if ($categories->count())
76 80 @foreach ($categories as $cat)
77   - <a href="#" class="vacancies__item">
  81 + <a href="{{ route('list-vacancies', ['categories' => $cat->id]) }}" class="vacancies__item">
78 82 <span style="border-color:#F4C4C2">
79 83 <b>{{ $cat->name }}</b>
80 84 <i>Вакансий: <span>{{ $cat->cnt }}</span></i>
resources/views/info_company_new.blade.php
... ... @@ -49,7 +49,6 @@
49 49 $(document).ready(function(){
50 50 var sel = $('#select2-sort_ajax-container');
51 51 var key = getUrlParameter('sort');
52   -
53 52 if (key !=='') {
54 53 console.log(key);
55 54 switch (key) {
... ... @@ -153,18 +152,22 @@
153 152 </span>
154 153 </div>
155 154 </div>
  155 +
156 156 <div class="main__employer-page-item">
157 157 <b>Описание</b>
158 158 <span>
159   - {{ $company[0]->text }}
  159 + {!! $company[0]->text !!}
160 160 </span>
161 161 </div>
  162 +
162 163 <div>
  164 +
163 165 <div class="main__employer-page-tabs">
164 166 <button type="button" class="main__employer-page-tabs-item active"
165 167 data-tab="1">Флот</button>
166 168 <button type="button" class="main__employer-page-tabs-item" data-tab="2">Вакансии</button>
167 169 </div>
  170 +
168 171 <div class="main__employer-page-body">
169 172 <div class="main__employer-page-body-item showed" data-body="1">
170 173 <div class="main__employer-page-one">
... ... @@ -180,6 +183,7 @@
180 183 </div>
181 184 </div>
182 185  
  186 +
183 187 <div class="main__employer-page-body-item" data-body="2">
184 188 <div class="main__employer-page-two">
185 189 @foreach ($company[0]->ads as $job)
resources/views/layout/frontend.blade.php
... ... @@ -44,15 +44,13 @@
44 44 @guest
45 45  
46 46 @else
47   - <button class="header__notifs header__notifs_actived">
  47 + <a href="@if ($UserId->is_worker) {{ route('worker.cabinet') }} @else {{ route('employer.cabinet') }} @endif" class="header__notifs header__notifs_actived">
48 48 <svg>
49 49 <use xlink:href="{{ asset('images/sprite.svg#ring') }}"></use>
50 50 </svg>
51 51 <span>Уведомления</span>
52   - </button>
53   - <a href="@if ($UserId->is_worker) {{ route('worker.cabinet') }} @else {{ route('employer.cabinet') }} @endif" class="header__notifs">
54   - Кабинет
55 52 </a>
  53 +
56 54 @endguest
57 55 <div class="header__right-line"></div>
58 56 <button class="header__burger">
... ... @@ -234,14 +232,16 @@
234 232  
235 233 <div hidden> <!-- BEGIN MODALS WRAPPER -->
236 234 <!-- Соискатель отправляет сообщение работодателю -->
237   - @include('modals.send_worker')
  235 + @include('modals.send_worker_new')
238 236  
239 237 <!-- Работодатель отправляет сообщение соискателю -->
240   - @include('modals.send_employer')
  238 + @include('modals.send_employer_new')
241 239  
242 240 <!-- Сообщение-предупреждение о том, что сообщения только можно отправить авторизованным пользователям -->
243 241 @include('modals.send_message_noaut')
244 242  
  243 + @include('modals.send_message_noaut2')
  244 +
245 245 <!-- Форма авторизации -->
246 246 @include('modals.send_login')
247 247  
resources/views/layout/pdf.blade.php
... ... @@ -8,7 +8,170 @@
8 8 <meta name="theme-color" content="#377D87">
9 9 <link rel="stylesheet" href="{{ asset('css/style.css') }}">
10 10 <style>
11   - body{font-family:'DejaVu Sans',sans-serif;background:#fff;font-size:1.6rem;font-weight:400;color:#363A3F}
  11 + body {
  12 + font-family:'DejaVu Sans',sans-serif;
  13 + background:#fff;
  14 + font-size:1.6rem;
  15 + font-weight:400;
  16 + color:#363A3F;
  17 + }
  18 +
  19 + .main {
  20 + padding: 30px 0;
  21 + }
  22 +
  23 + .thing {
  24 + color: #3a3b3c;
  25 + /* background-color: #f2f5fc; */
  26 + }
  27 +
  28 + .thing__profile {
  29 +
  30 + }
  31 +
  32 + .thing__profile-photo {
  33 + width: 200px;
  34 + border-radius: 8px;
  35 + float: left;
  36 + margin-right: 20px;
  37 + }
  38 +
  39 + .thing__profile-body {
  40 +
  41 + }
  42 +
  43 + .thing__title {
  44 + width: 100%;
  45 + font-size: 32px;
  46 + font-weight: 700;
  47 + line-height: 1.1;
  48 + margin: 0;
  49 + }
  50 +
  51 + .thing__text {
  52 + font-size: 14px;
  53 + line-height: 1.4;
  54 + margin: 15px 0 0 0;
  55 + }
  56 +
  57 + .main__spoiler {
  58 + margin: 0px 0px 32px 0px;
  59 + }
  60 +
  61 + .main__spoiler-body {
  62 +
  63 + }
  64 +
  65 + .main__table {
  66 + border-collapse: collapse;
  67 + table-layout: fixed;
  68 + font-size: 14px;
  69 + width: 100%;
  70 + background: #ffffff;
  71 + }
  72 +
  73 + .main__table thead {
  74 + color: #ffffff;
  75 + font-size: 16px;
  76 + background-color: #377d87;
  77 + }
  78 +
  79 + .main__table th {
  80 + padding: 8px 16px;
  81 + }
  82 +
  83 + .main__table td {
  84 + width: 40%;
  85 + padding: 8px 16px;
  86 + border: 1px solid #cecece;
  87 + }
  88 +
  89 + .main__table td b {
  90 + font-weight: 700;
  91 + }
  92 +
  93 + .main__table b {
  94 + display: block;
  95 + }
  96 +
  97 + .main__table a {
  98 + color: #377d87;
  99 + text-decoration: underline;
  100 + }
  101 +
  102 + .main__table td + td {
  103 + width: 60%;
  104 + }
  105 +
  106 + .main__table_three td {
  107 + width: 25% !important;
  108 + }
  109 +
  110 + .main__table_three td:last-child {
  111 + width: 50% !important;
  112 + }
  113 +
  114 + .main h2 {
  115 + margin: 0;
  116 + font-weight: 700;
  117 + font-size: 30px;
  118 + }
  119 +
  120 + .main p {
  121 + margin: 0;
  122 + font-size: 14px;
  123 + line-height: 1.4;
  124 + margin: 15px 0 0 0;
  125 + }
  126 +
  127 + .main__resume-profile-info {
  128 + margin: 30px 0px 0px 0px;
  129 + }
  130 +
  131 + .main__resume-profile-info-title {
  132 + margin-bottom: 20px !important;
  133 + color: #3a3b3c;
  134 + }
  135 +
  136 + .main__resume-profile-info-body-item {
  137 + margin: 0px 0px 20px 0px;
  138 + }
  139 +
  140 + .main__resume-profile-info-body-subtitle {
  141 + color: #4d88d9;
  142 + margin: 0px 0px 10px 0px;
  143 + font-weight: 700;
  144 + font-size: 22px;
  145 + }
  146 +
  147 + .main__resume-profile-info-body-inner {
  148 + margin: 0;
  149 + padding: 0;
  150 + font-size: 12px;
  151 + }
  152 +
  153 + .main__resume-profile-info-body-inner li {
  154 + list-style-type: none;
  155 + margin: 0px 0px 20px 0px;
  156 + }
  157 +
  158 + .main__resume-profile-info-body-inner b {
  159 + display: block;
  160 + margin: 0px 0px 6px 0px;
  161 + color: #377d87;
  162 + font-size: 14px;
  163 + }
  164 +
  165 + .main__resume-profile-info-body-inner span {
  166 + display: block;
  167 + }
  168 +
  169 + .main__resume-profile-info-body-inner a {
  170 + display: block;
  171 + text-decoration: none;
  172 + color: inherit;
  173 + }
  174 +
12 175 </style>
13 176 </head>
14 177  
... ... @@ -16,11 +179,11 @@
16 179 <section class="thing thing_pdf">
17 180 <div class="container">
18 181 <div class="thing__profile">
19   - <img src="{{ asset('images/face.jpg') }}" alt="" class="thing__profile-photo">
  182 + <img src="{{ asset(Storage::url($Query[0]['photo'])) }}" alt="" class="thing__profile-photo">
20 183 <div class="thing__profile-body">
21   - <h1 class="thing__title">Назаров Платон Фёдорович</h1>
22   - <p class="thing__text">Сложно сказать, почему ключевые особенности структуры проекта рассмотрены
23   - исключительно в разрезе маркетинговых и финансовых предпосылок.</p>
  184 + <h1 class="thing__title">{{ $Query[0]['users']['surname']." ".$Query[0]['users']['name_man']." ".$Query[0]['users']['surname2'] }}</h1>
  185 + <div style="clear:both;"></div>
  186 + <p class="thing__text">{{ $Query[0]['text'] }}</p>
24 187 </div>
25 188 </div>
26 189 </div>
... ... @@ -30,101 +193,112 @@
30 193 <div class="main__resume-profile">
31 194 <div class="main__content">
32 195 <div class="main__spoiler">
33   - <button type="button" class="main__spoiler-toper js-toggle active">Основная
34   - информация</button>
  196 + <!-- <button type="button" class="main__spoiler-toper js-toggle active">Основная
  197 + информация</button> -->
35 198 <div class="main__spoiler-body">
36 199 <table class="main__table">
  200 + <thead>
  201 + <tr>
  202 + <th colspan="2">Основная информация</th>
  203 + </tr>
  204 + </thead>
37 205 <tbody>
38 206 <tr>
39 207 <td>Имя:</td>
40   - <td><b>Оксана</b></td>
  208 + <td><b>{{ $Query[0]['users']['name_man'] }}</b></td>
41 209 </tr>
42 210 <tr>
43 211 <td>Должность:</td>
44   - <td><b>Повар</b></td>
  212 + <td>
  213 + @foreach ($Query[0]['job_titles'] as $it)
  214 + <b>{{ $it['name'] }}</b><br>
  215 + @endforeach
  216 + </td>
45 217 </tr>
46 218 <tr>
47 219 <td>Телефон:</td>
48   - <td><b><a href="#">+7 (000) 123 45 67</a></b></td>
  220 + <td><b><a>{{ $Query[0]['telephone'] }}</a></b>
  221 + <b><a>{{ $Query[0]['telephone2'] }}</a></b>
  222 + </td>
49 223 </tr>
50 224 <tr>
51 225 <td>E-mail:</td>
52   - <td><b><a href="#">info@rekamore.su</a></b></td>
  226 + <td><b><a>{{ $Query[0]['email'] }}</a></b></td>
53 227 </tr>
54 228 <tr>
55 229 <td>Возраст:</td>
56   - <td><b>30</b></td>
  230 + <td><b>{{ $Query[0]['old_year'] }}</b></td>
57 231 </tr>
58 232 <tr>
59 233 <td>Статус:</td>
60   - <td><b>Ищу работу</b></td>
  234 + <td>
  235 + @php $code = $Query[0]['status_work']; @endphp
  236 + <b>@if ($code == 0) Ищу работу @elseif($code == 1) Не указано @else Не ищу работу @endif</b></td>
61 237 </tr>
62 238 <tr>
63 239 <td>Город проживания:</td>
64   - <td><b>Петропавловск-камчатский</b></td>
  240 + <td><b>{{ $Query[0]['city'] }}</b></td>
65 241 </tr>
66 242 <tr>
67 243 <td>Уровень английского:</td>
68   - <td><b>Не указано</b></td>
  244 + <td><b>{{ $Query[0]['en_is'] }}</b></td>
69 245 </tr>
70 246 <tr>
71 247 <td>Опыт работы:</td>
72   - <td><b>1 год</b></td>
  248 + <td><b>{{ $Query[0]['old_year'] }}</b></td>
73 249 </tr>
74 250 </tbody>
75 251 </table>
76 252 </div>
77 253 </div>
78 254 <div class="main__spoiler">
79   - <button type="button" class="main__spoiler-toper js-toggle">Сертификаты / документы</button>
80 255 <div class="main__spoiler-body">
81 256 <table class="main__table">
82   - <tbody>
83   - <tr>
84   - <td>Среднее специальное образование</td>
85   - <td><a href="#">Ссылка на диплом</a></td>
86   - </tr>
  257 + <thead>
87 258 <tr>
88   - <td>Курсы повышения квалификации</td>
89   - <td><a href="#">Ссылка на диплом</a></td>
90   - </tr>
91   - <tr>
92   - <td>Прохождение переподготовки</td>
93   - <td><a href="#">Ссылка на сертификат</a></td>
  259 + <th colspan="2">Сертификаты / документы</th>
94 260 </tr>
  261 + </thead>
  262 + <tbody>
  263 + @if (count($Query[0]['sertificate']))
  264 + @foreach($Query[0]['sertificate'] as $it)
  265 + <tr>
  266 + <td>{{ $it['name']." ".$it['education'] }}</td>
  267 + <td><a>{{ date('d.m.Y H:i:s', strtotime($it['date_begin']))."-".date('d.m.Y H:i:s', strtotime($it['end_begin'])) }}</a></td>
  268 + </tr>
  269 + @endforeach
  270 + @else
  271 + <tr>
  272 + <td> - </td>
  273 + <td> - </td>
  274 + </tr>
  275 + @endif
95 276 </tbody>
96 277 </table>
97 278 </div>
98 279 </div>
99 280 <div class="main__spoiler">
100   - <button type="button" class="main__spoiler-toper js-toggle">Опыт работы</button>
101 281 <div class="main__spoiler-body">
102 282 <table class="main__table main__table_three">
103   - <tbody>
  283 + <thead>
104 284 <tr>
105   - <td>Июнь 2019 — по настоящее время
106   - <br>4 года 10 месяцев</td>
107   - <td><b>ООО "Невский мазут"</b>
108   - Санкт-Петербург</td>
109   - <td><b>Вахтенный механик (танкер)</b>
110   - Переведён на т/х " SULA " в должности Вахтенный механик. Полный комплект морских документов для работы на нефтеналивных судах ( диплом без ограничений ).</td>
111   - </tr>
112   - <tr>
113   - <td>Октябрь 2014 — по настоящее время
114   - <br>9 лет 6 месяцев</td>
115   - <td><b>ООО "Невский мазут"</b>
116   - Санкт-Петербург</td>
117   - <td><b>Сменный механик (танкер)</b>
118   - Ремонт и эксплуатация судовых энергетических установок . Работа с документами, топливными отчётами. Управление персоналом.</td>
119   - </tr>
120   - <tr>
121   - <td>Январь 2012 — октябрь 2014
122   - <br>2 года 10 месяцев</td>
123   - <td><b>ООО "Портовый флот"</b>
124   - Санкт-Петербург</td>
125   - <td><b>Моторист-матрос-котельный машинист.</b>
126   - Эксплуатация, ремонт судовых механизмов, несение вахты.</td>
  285 + <th colspan="3">Опыт работы</th>
127 286 </tr>
  287 + </thead>
  288 + <tbody>
  289 + @if (count($Query[0]['place_worker']) > 0)
  290 + @foreach($Query[0]['place_worker'] as $it)
  291 + <tr>
  292 + <td>{{ $it['begin_work']." - ".$it['end_work'] }}
  293 + </td>
  294 + <td><b>{{ $it['name_company'] }}</b>
  295 + </td>
  296 + <td><b>{{ $it['job_title'] }}</b>
  297 + Судно: {{ $it['teplohod'] }}
  298 + </td>
  299 + </tr>
  300 + @endforeach
  301 + @endif
128 302 </tbody>
129 303 </table>
130 304 </div>
... ... @@ -132,53 +306,36 @@
132 306 </div>
133 307 <div class="main__resume-profile-about">
134 308 <h2 class="main__resume-profile-about-title">О себе</h2>
135   - <p class="main__resume-profile-about-text">Привет! Меня зовут Саша, мне 41 год, женат, имею 3
136   - детей.Большой опыт на Азимутальных буксирах(ВРК). Большой опыт портовых работ:
137   - швартовки/отшвартовки, доставка/снятие лоцманов, доставка снабжения. Буксировка барж,
138   - плавкранов.Есть опыт морской буксировки.Знание ПК, офисных програм и т.д.Коммуникабелен,
139   - вредных привычек не имею, легко обучаем.</p>
140   - <div class="button main__resume-profile-about-button">Написать сообщение</div>
  309 + <p class="main__resume-profile-about-text">{{ $Query[0]['text'] }}</p>
  310 +
141 311 </div>
142 312 <div class="main__resume-profile-info">
143 313 <h2 class="main__resume-profile-info-title">Данные о прошлых компаниях</h2>
144 314 <div class="main__resume-profile-info-body">
145   - <div class="main__resume-profile-info-body-item">
146   - <h3 class="main__resume-profile-info-body-subtitle">Судоходное агентство “Транс-Флот”</h3>
147   - <ul class="main__resume-profile-info-body-inner">
148   - <li>
149   - <b>Руководитель</b>
150   - <span>Егоров Тимур Николаевич</span>
151   - </li>
152   - <li>
153   - <b>Телефон того, кто может дать рекомендацию</b>
154   - <span>
155   - <a href="#">+7 (000) 123 45 67</a>
156   - <a href="#">+7 (000) 123 45 67</a>
157   - </span>
158   - </li>
159   - </ul>
160   - </div>
161   - <div class="main__resume-profile-info-body-item">
162   - <h3 class="main__resume-profile-info-body-subtitle">Аквамарин Шип Менеджмент</h3>
163   - <ul class="main__resume-profile-info-body-inner">
164   - <li>
165   - <b>Руководитель</b>
166   - <span>Федотов Артём Никитич</span>
167   - </li>
168   - <li>
169   - <b>Телефон того, кто может дать рекомендацию</b>
170   - <span>
171   - <a href="#">+7 (000) 123 45 67</a>
172   - <a href="#">+7 (000) 123 45 67</a>
173   - </span>
174   - </li>
175   - </ul>
176   - </div>
  315 + @if ((isset($Query[0]['prev_company'])) && (count($Query[0]['prev_company']) > 0))
  316 + @foreach ($Query[0]['prev_company'] as $it)
  317 + <div class="main__resume-profile-info-body-item">
  318 + <h3 class="main__resume-profile-info-body-subtitle">{{ $it['name_company'] }}</h3>
  319 + <ul class="main__resume-profile-info-body-inner">
  320 + <li>
  321 + <b>Руководитель</b>
  322 + <span>{{ $it['direct'] }}</span>
  323 + </li>
  324 + <li>
  325 + <b>Телефон того, кто может дать рекомендацию</b>
  326 + <span>
  327 + <a>{{ $it['telephone'] }}</a>
  328 + <a>{{ $it['telephone2'] }}</a>
  329 + </span>
  330 + </li>
  331 + </ul>
  332 + </div>
  333 + @endforeach
  334 + @endif
177 335 </div>
178 336 </div>
179 337 </div>
180 338 </div>
181 339 </main>
182 340 </body>
183   -
184 341 </html>
resources/views/list_vacancies.blade.php
... ... @@ -10,6 +10,7 @@
10 10 $(document).on('change', '#jobs', function() {
11 11 var val = $(this).val();
12 12 var main_oskar = $('#main_ockar');
  13 + var ti_head = $('#title_head');
13 14  
14 15 console.log('Code='+val);
15 16 console.log('Click change...');
... ... @@ -19,9 +20,9 @@
19 20 data: "job="+val,
20 21 success: function (data) {
21 22 console.log('Выбор сделан!');
22   - console.log(data);
  23 +
23 24 main_oskar.html(data);
24   - history.pushState({}, '', "{{ route('education') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif");
  25 + history.pushState({}, '', "{{ route('list-vacancies', ['categories' => $categories->id]) }}?sort="+val+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif");
25 26 },
26 27 headers: {
27 28 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
... ... @@ -31,6 +32,30 @@
31 32 console.log('Error: ' + data);
32 33 }
33 34 });
  35 +
  36 + if ((val == '') || (val == '0')) {
  37 + title_head.html('Все категории');
  38 + } else {
  39 + $.ajax({
  40 + type: "GET",
  41 + url: "{{ route('list-vacancies', ['categories' => $categories->id]) }}",
  42 + data: "job=" + val +"&title=1",
  43 + success: function (data) {
  44 +
  45 + console.log(data);
  46 + },
  47 +
  48 + headers: {
  49 + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  50 + },
  51 +
  52 + error: function (data) {
  53 + data = JSON.stringify(data);
  54 + console.log('Error: ' + data);
  55 + }
  56 + });
  57 +
  58 + }
34 59 });
35 60  
36 61 $(document).on('click', '.js_send_it_button', function() {
... ... @@ -129,11 +154,11 @@
129 154 </section>
130 155 <main class="main">
131 156 <div class="container">
132   - <div class="main__vacancies">
133   - @if (isset($job))
134   - <h2 class="main__vacancies-title">Категория вакансий {{ $job }}</h2>
  157 + <div class="main__vacancies" >
  158 + @if (isset($Name_categori[0]->name))
  159 + <h2 class="main__vacancies-title">Категория вакансий {{ $Name_categori[0]->name }}</h2>
135 160 @else
136   - <h2 class="main__vacancies-title">Все категории</h2>
  161 + <h2 class="main__vacancies-title" id="title_head" name="title_head">Все категории</h2>
137 162 @endif
138 163 <div class="filters main__vacancies-filters">
139 164 <div class="filters__label" id="col-vo" name="col-vo">Показано @if ($Query_count < 3) {{$Query_count}} @else 3 @endif из @isset($Query_count) {{ $Query_count }} @else 0 @endisset результатов поиска</div>
... ... @@ -150,9 +175,26 @@
150 175 </div>
151 176 </div>
152 177  
153   - <div id="main_ockar" class="main__vacancies" name="main_ockar" style="width:100%;">
  178 + <div class="main__vacancies" style="width:100%;" id="main_ockar" name="main_oskar">
  179 + @php $i = ($Query->currentPage() * $Query->perPage() - $Query->count() - 1) @endphp
  180 +
154 181 @foreach ($Query as $Q)
  182 + @foreach ($Reclama as $Rec)
  183 + @if ($Rec->position == $i)
  184 + <div class="main__vacancies-thing">
  185 + <img src="{{ asset(Storage::url($Rec->image)) }}" alt="{{ $Rec->title }}" class="main__vacancies-thing-pic">
  186 + <div class="main__vacancies-thing-body">
  187 + <h2>{{ $Rec->title }}</h2>
  188 + <div>
  189 + {!! $Rec->text !!}
  190 + </div>
  191 + <a href="{{ $Rec->link }}" class="button">Узнать больше</a>
  192 + </div>
  193 + </div>
  194 + @endif
  195 + @endforeach
155 196 <div class="main__vacancies-item main__employer-page-two-item">
  197 +
156 198 <a href="{{ route('list-vacancies', ['categories' => $categories->id]) }}" class="back main__employer-page-two-item-back">
157 199 <svg>
158 200 <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use>
... ... @@ -161,12 +203,14 @@
161 203 Вернуться к списку вакансий
162 204 </span>
163 205 </a>
  206 +
164 207 <div class="main__employer-page-two-item-toper">
165 208 @if (isset($Q->employer))
166 209 <img src="{{ asset(Storage::url($Q->employer->logo)) }}" alt="{{ $Q->employer->name }}">
167 210 @endif
168 211 <span>@if (!empty($Q->name)) {{ $Q->name }} @endif</span>
169 212 </div>
  213 +
170 214 <div class="main__employer-page-two-item-text">
171 215 <div class="main__employer-page-two-item-text-name">Судоходная компания ведет набор
172 216 специалистов на следующие должности:</div>
... ... @@ -178,6 +222,7 @@
178 222 @endif
179 223 </div>
180 224 </div>
  225 +
181 226 <div class="main__employer-page-two-item-text">
182 227 <div class="main__employer-page-two-item-text-name">Мы предлагаем:</div>
183 228 <div class="main__employer-page-two-item-text-body">
... ... @@ -233,11 +278,12 @@
233 278 </button>
234 279 </div>
235 280 </div>
  281 + @php $i++ @endphp
236 282 @endforeach
237 283 <div style="margin-top: 20px">
238 284 {{ $Query->appends($_GET)->links('paginate') }}
239   - </div>
240   - </div><!-- конец -->
  285 + </div><!-- конец -->
  286 + </div>
241 287 </div>
242 288 </div>
243 289 </main>
resources/views/modals/send_admin.blade.php
1 1 <div id="send" class="modal">
2 2 <div class="modal__body">
3   - <div class="modal__title">Отправить сообщение "Наяда"</div>
  3 + <div class="modal__title">Отправить сообщение работодателю</div>
4 4 <div class="modal__text">Если у вас возникли вопросы насчет вакансии, вы можете задать их работодателю</div>
5 5 <form class="modal__form">
6 6 <div class="modal__form-item error">
resources/views/modals/send_employer_new.blade.php
... ... @@ -0,0 +1,17 @@
  1 +<script>
  2 + console.log('Сообщение работнику');
  3 + $(document).on('change', '#btn_send_file', function() {
  4 + var send_name = $('#send_name');
  5 + var send_name_val = send_name.val();
  6 + var this_final_name = $('#this_final_name');
  7 +
  8 + console.log(send_name_val);
  9 + this_final_name.html(send_name_val);
  10 +
  11 + });
  12 +</script>
  13 +<div id="send2" class="modal">
  14 + <div class="modal__body">
  15 + fghfghfghfghfgh
  16 + </div>
  17 +</div>
resources/views/modals/send_login.blade.php
... ... @@ -2,7 +2,7 @@
2 2 <div class="modal__body">
3 3 <div class="modal__title left">Войти</div>
4 4 <form class="modal__sign">
5   - <div id="message_error" name="message_error">
  5 + <div id="message_error" name="message_error" style="color: red">
6 6 </div>
7 7 <div class="modal__sign-item">
8 8 <input type="email" class="input" id="email_input" name="email" placeholder="E-mail" required>
resources/views/modals/send_message_noaut.blade.php
1 1 <div id="question" class="modal modal_bg">
2 2 <div class="modal__body">
3   - <div class="modal__title">Отправить сообщение "Наяда"</div>
  3 + <div class="modal__title">Отправить сообщение не получится сейчас</div>
4 4 <div class="modal__text">Вы должны быть авторизованы, чтобы отправить личное сообщение</div>
5 5 <div class="modal__buttons">
6 6 <a data-fancybox data-src="#sign" data-options='{"touch":false,"autoFocus":false}' class="button">Войти</a>
resources/views/modals/send_message_noaut2.blade.php
... ... @@ -0,0 +1,10 @@
  1 +<div id="question2" class="modal modal_bg">
  2 + <div class="modal__body">
  3 + <div class="modal__title">Чтобы искать сотрудников для своей компании</div>
  4 + <div class="modal__text">Вы должны быть авторизованы, чтобы посмотреть списки работников</div>
  5 + <div class="modal__buttons">
  6 + <a data-fancybox data-src="#sign" data-options='{"touch":false,"autoFocus":false}' class="button">Войти</a>
  7 + <a data-fancybox data-src="#reg" data-options='{"touch":false,"autoFocus":false}' class="button button_light">Зарегистрироваться</a>
  8 + </div>
  9 + </div>
  10 +</div>
resources/views/modals/send_worker_new.blade.php
... ... @@ -0,0 +1,26 @@
  1 +<script>
  2 + console.log('Сообщение работнику');
  3 + $("#form_worker" ).submit(function(event) {
  4 + var val = $(this).val();
  5 + var send_title = $('#send_title');
  6 + var send_title_val = send_title.val();
  7 +
  8 + console.log('Click form.');
  9 + });
  10 +
  11 + $(document).on('change', '#btn_send_file', function() {
  12 +
  13 + var send_name = $('#send_name');
  14 + var send_name_val = send_name.val();
  15 + var send_name_file = $('#send_name_file');
  16 +
  17 + console.log(send_name_val);
  18 + send_name_file.html(send_name_val);
  19 +
  20 + });
  21 +</script>
  22 +<div id="send" class="modal">
  23 + <div class="modal__body">
  24 + <div class="modal__title">fghfghfghfgh</div>
  25 + </div>
  26 +</div>
resources/views/vacancies.blade.php
... ... @@ -75,7 +75,8 @@
75 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   - <u>{{ $cat->min_salary }} &mdash; {{ $cat->max_salary }} ₽</u>
  78 + <u>@if (!empty($cat->min_salary)) {{ $cat->min_salary }} @else 0 @endif &mdash;
  79 + @if (!empty($cat->max_salary)) {{ $cat->max_salary }} @else 0 @endif ₽</u>
79 80 <i>Вакансий: <span>{{ $cat->cnt }}</span></i>
80 81 </span>
81 82 </a>
resources/views/worker.blade.php
... ... @@ -253,13 +253,6 @@
253 253 </div>
254 254 </div>
255 255  
256   -
257   -
258   -
259   -
260   -
261   -
262   -
263 256 <div class="main__resume-profile-review">
264 257 <form action="{{ route('stars_answer') }}" method="POST">
265 258 @csrf
resources/views/workers/cabinet.blade.php
... ... @@ -135,7 +135,7 @@
135 135 <h2 class="title cabinet__title">Моя анкета</h2>
136 136 <div class="cabinet__anketa-buttons">
137 137 <a href="{{ route('worker.up', ['worker' => $Worker[0]->id]) }}" class="button">Поднять резюме</a>
138   - <a href="{{ route('worker.download', ['worker' => $Worker[0]->id]) }}" class="button">
  138 + <a href="{{ route('resume_download', ['worker' => $Worker[0]->id]) }}" target="_blank" class="button">
139 139 <svg>
140 140 <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use>
141 141 </svg>
... ... @@ -153,19 +153,19 @@
153 153 <use xlink:href="{{ asset('images/sprite.svg#eye-3') }}"></use>
154 154 </svg>
155 155 <span>Просмотров:</span>
156   - <b>@if (isset($Worker[0]->users->static_user)) 1 @else 0 @endif</b>
  156 + <b>@if (isset($stat[0]->lookin)) {{ $stat[0]->lookin }} @else 0 @endif</b>
157 157 </div>
158 158 <div class="cabinet__stats-item">
159 159 <svg>
160 160 <use xlink:href="{{ asset('images/sprite.svg#warning') }}"></use>
161 161 </svg>
162 162 <span>Отзывов:</span>
163   - <b>@if (isset($Worker[0]->users->static_user)) 1 @else 0 @endif</b>
  163 + <b>@if (isset($stat[0]->message)) {{ $stat[0]->message }} @else 0 @endif</b>
164 164 </div>
165 165 </div>
166   - <div class="cabinet__stats-subtitle">Анкета заполнена на @if (!empty($Worker[0]->persent_anketa)) {{ $Worker[0]->persent_anketa }}% @else 0% @endif</div>
  166 + <div class="cabinet__stats-subtitle">Анкета заполнена на {{ $persent }}%</div>
167 167 <div class="cabinet__stats-line">
168   - <span style="width:@if (!empty($Worker[0]->persent_anketa)) {{ $Worker[0]->persent_anketa }}% @else 0% @endif"></span>
  168 + <span style="width:{{ $persent }}%"></span>
169 169 </div>
170 170 <div class="cabinet__stats-bottom">Заполните профиль, чтобы повысить процент анкеты на 80%</div>
171 171 </div>
... ... @@ -526,6 +526,7 @@ Route::group([
526 526 Route::get('cabinet/vacancy-up/{ad_employer}', [EmployerController::class, 'vacancy_up'])->name('vacancy_up');
527 527 Route::get('cabinet/vacancy-eye/{ad_employer}/{status}', [EmployerController::class, 'vacancy_eye'])->name('vacancy_eye');
528 528 Route::get('cabinet/vacancy-edit/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit');
  529 + Route::post('cabinet/vacancy-edit/{ad_employer}/', [EmployerController::class, 'vacancy_save_me'])->name('vacancy_save_me');
529 530  
530 531 // 4 страница - Отклики на вакансии
531 532 Route::get('cabinet/answers/{employer}', [EmployerController::class, 'answers'])->name('answers');