Commit f46e3cd1e4bc62fadc9ca3dd4b156b61f5ab7314

Authored by Андрей Ларионов
Exists in master

Коммит четверг

Showing 37 changed files 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
... ... @@ -58,16 +58,11 @@ class MainController extends Controller
58 58  
59 59 //категории и вакансии
60 60 if (($request->has('job')) && ($request->get('job') > 0)) {
61   - $categories = $categories->Where('job_title_id', '=', $request->get('job'))
62   - ->OrderByDesc('created_at')
63   - ->GroupBy('categories.id')
64   - ->get();
65   - } else {
66   - $categories = $categories->OrderByDesc('created_at')
67   - ->GroupBy('categories.id')
68   - ->get();
  61 + $categories = $categories->Where('job_title_id', '=', $request->get('job'));
69 62 }
70 63  
  64 + $categories = $categories->OrderByDesc('created_at')->GroupBy('categories.id')->get();
  65 +
71 66 if ($request->ajax()) {
72 67 return view('ajax.vacancies', compact('categories'));
73 68 } else {
... ... @@ -119,17 +114,24 @@ class MainController extends Controller
119 114  
120 115 $Query = $Query->OrderBy('updated_at')->paginate(3);
121 116  
122   - $Reclama = reclame::query()->limit(3)->get();
  117 + $Reclama = reclame::query()->get();
123 118  
124 119  
125 120  
126 121 if ($request->ajax()) {
127   - return view('ajax.list_vacancies', compact('Query',
128   - 'Query_count',
129   - 'Name_categori',
130   - 'Reclama',
131   - 'categories',
132   - '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 + }
133 135 } else {
134 136 //Вернуть все
135 137 return view('list_vacancies', compact('Query',
... ... @@ -184,7 +186,7 @@ class MainController extends Controller
184 186  
185 187 $rules = [
186 188 'email' => 'required|string|email',
187   - 'password' => 'required|string',
  189 + 'password' => 'required|string|min:3|max:25',
188 190 ];
189 191  
190 192 $messages = [
app/Http/Controllers/WorkerController.php
... ... @@ -14,6 +14,7 @@ use App\Models\Job_title;
14 14 use App\Models\Message;
15 15 use App\Models\place_works;
16 16 use App\Models\reclame;
  17 +use App\Models\ResponseWork;
17 18 use App\Models\sertification;
18 19 use App\Models\Static_worker;
19 20 use App\Models\User;
... ... @@ -23,6 +24,7 @@ use Barryvdh\DomPDF\Facade\Pdf;
23 24 use Carbon\Carbon;
24 25 use Illuminate\Auth\Events\Registered;
25 26 use Illuminate\Database\Eloquent\Builder;
  27 +use Illuminate\Database\Eloquent\Model;
26 28 use Illuminate\Http\JsonResponse;
27 29 use Illuminate\Http\Request;
28 30 use Illuminate\Support\Facades\Auth;
... ... @@ -123,24 +125,53 @@ class WorkerController extends Controller
123 125 ->with('infobloks');
124 126 $Query = $Query->where('id', '=', $worker->id);
125 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 +
126 150 return view('worker', compact('Query', 'status_work'));
127 151 }
128 152  
129 153 // скачать анкету соискателя
130 154 public function resume_download(Worker $worker)
131 155 {
132   - $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();
133 162  
134   - view()->share('house',$arr_house);
  163 + view()->share('Query',$Query);
135 164  
136   - $pdf = PDF::loadView('layout.pdf', $arr_house); //->setPaper('a4', 'landscape');
  165 + $pdf = PDF::loadView('layout.pdf', $Query); //->setPaper('a4', 'landscape');
137 166  
138 167 return $pdf->stream();
139 168 }
140 169  
141 170 // Кабинет работника
142   - public function cabinet()
  171 + public function cabinet(Request $request)
143 172 {
  173 + $get_date = date('Y.m');
  174 +
144 175 $id = Auth()->user()->id;
145 176 $Worker = Worker::query()->with('users')->with('sertificate')->with('prev_company')->
146 177 with('infobloks')->with('place_worker')->
... ... @@ -151,7 +182,39 @@ class WorkerController extends Controller
151 182 $Job_titles = Job_title::query()->OrderBy('name')->get();
152 183 $Infoblocks = infobloks::query()->OrderBy('name')->get();
153 184  
154   - 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 + }
155 218 }
156 219  
157 220 // Сохранение данных
... ... @@ -379,6 +442,31 @@ class WorkerController extends Controller
379 442 }
380 443 }
381 444  
  445 +
  446 + // Звездная оценка и ответ
  447 + public function stars_answer(Request $request) {
  448 + $params = $request->all();
  449 + $rules = [
  450 + 'message' => ['required', 'string', 'max:255'],
  451 + ];
  452 +
  453 + $messages = [
  454 + 'required' => 'Укажите обязательное поле',
  455 + 'min' => [
  456 + 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
  457 + 'integer' => 'Поле «:attribute» должно быть :min или больше',
  458 + 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
  459 + ],
  460 + 'max' => [
  461 + 'string' => 'Поле «:attribute» должно быть не больше :max символов',
  462 + 'integer' => 'Поле «:attribute» должно быть :max или меньше',
  463 + 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
  464 + ]
  465 + ];
  466 + $response_worker = ResponseWork::create($params);
  467 + return redirect()->route('resume_profile', ['worker' => $request->get('worker_id')])->with('success', 'Ваше сообщение было отправлено!');
  468 + }
  469 +
382 470 // Создание пользователя
383 471 protected function create(array $data)
384 472 {
... ... @@ -447,7 +535,7 @@ class WorkerController extends Controller
447 535  
448 536 }
449 537  
450   - //Переписка пись-пись-пись
  538 + //Переписка
451 539 public function dialog(User_Model $user1, User_Model $user2) {
452 540 if (isset($user2->id)) {
453 541 $companion = User_Model::query()->with('workers')->
... ... @@ -597,5 +685,6 @@ class WorkerController extends Controller
597 685 $ad_responce = ad_response::create($data);
598 686 return redirect()->route('worker.messages', ['type_message' => 'output']);
599 687 }
  688 +
600 689 }
601 690  
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() {
app/Models/ResponseWork.php
... ... @@ -0,0 +1,17 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Factories\HasFactory;
  6 +use Illuminate\Database\Eloquent\Model;
  7 +
  8 +class ResponseWork extends Model
  9 +{
  10 + use HasFactory;
  11 +
  12 + public $fillable = [
  13 + 'worker_id',
  14 + 'stars',
  15 + 'message'
  16 + ];
  17 +}
database/migrations/2024_03_11_141704_create_response_works_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::create('response_works', function (Blueprint $table) {
  17 + $table->id();
  18 + $table->bigInteger('worker_id')->nullable(false);
  19 + $table->integer('stars')->nullable(true);
  20 + $table->string('message', 255)->default('Без комментариев');
  21 + $table->timestamps();
  22 + });
  23 + }
  24 +
  25 + /**
  26 + * Reverse the migrations.
  27 + *
  28 + * @return void
  29 + */
  30 + public function down()
  31 + {
  32 + Schema::dropIfExists('response_works');
  33 + }
  34 +};
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/ajax/list_vacancies.blade.php
... ... @@ -63,7 +63,7 @@
63 63 <a href="{{ route('vacancie', ['vacancy' => $Q->id]) }}" class="button button_light main__employer-page-two-item-button">Подробнее</a>
64 64 </div>
65 65 <div class="main__employer-page-two-item-bottom">
66   - <div class="main__employer-page-two-item-bottom-date">{{ $Q->created_at }}</div>
  66 + <div class="main__employer-page-two-item-bottom-date">{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}</div>
67 67 <button type="button" data-val="{{ $Q->id }}" class="like main__employer-page-two-item-bottom-like js-toggle <?=App\Classes\Cookies_vacancy::selected_vacancy($Q->id);?>">
68 68 <svg>
69 69 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use>
resources/views/detail_new.blade.php
... ... @@ -57,7 +57,7 @@
57 57 <li><b>{{ $title }}</b></li>
58 58 </ul>
59 59 <img src="{{ asset(Storage::url($Query[0]->image)) }}" alt="{{ $title }}" class="thing__pic thing__pic_two">
60   - <time class="thing__date">{{ $Query[0]->created_at }}</time>
  60 + <time class="thing__date">{{ date('d.m.Y H:i:s', strtotime($Query[0]->created_at)) }}</time>
61 61 <h1 class="thing__title">{{ $title }}</h1>
62 62 <p class="thing__text">{{ mb_strimwidth($Query[0]->text, 0, 100, "...") }}</p>
63 63 </div>
... ... @@ -74,7 +74,6 @@
74 74 </div>
75 75 </div>
76 76 </div>
77   -
78 77 </main>
79 78 <section class="news">
80 79 <div class="container">
... ... @@ -101,7 +100,7 @@
101 100 <div class="news__item">
102 101 <img src="{{ asset(Storage::url($Q_item->image)) }}" alt="{{ $Q_item->title }}" class="news__item-pic">
103 102 <div class="news__item-body">
104   - <time datetime="2023-05-01" class="news__item-date">{{ $Q_item->created_at }}</time>
  103 + <time datetime="{{ date('d.m.Y H:i:s', strtotime($Q_item->created_at)) }}" class="news__item-date">{{ date('d.m.Y H:i:s', strtotime($Q_item->created_at)) }}</time>
105 104 <span class="news__item-title">{{ $Q_item->title }}</span>
106 105 <span class="news__item-text">{!! $Q_item->text !!}</span>
107 106 <a href="{{ route('detail_new', ['new' => $Q_item->id]) }}" class="news__item-more button button_light">Читать далее</a>
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/errors/404.blade.php
... ... @@ -0,0 +1,19 @@
  1 +@extends('layout.frontend', ['title' => 'Судоходные компании РекаМоре'])
  2 +
  3 +@section('scripts')
  4 +
  5 +@endsection
  6 +
  7 +@section('content')
  8 + <section class="page-404">
  9 + <div class="container">
  10 + <div class="page-404__body">
  11 + <div class="page-404__numb">404</div>
  12 + <div class="page-404__title">Упс! Страница не найдена</div>
  13 + <div class="page-404__subtitle">Такой страницы не существует. Воспользуйтесь меню или перейдите на главную.</div>
  14 + <a href="{{ route('index') }}" class="button page-404__button">Перейти на главную</a>
  15 + </div>
  16 + </div>
  17 + </section>
  18 +@endsection
  19 +
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>
... ... @@ -178,7 +182,7 @@
178 182 <div class="news__item">
179 183 <img src="{{ asset(Storage::url($new->image)) }}" alt="" class="news__item-pic">
180 184 <div class="news__item-body">
181   - <time datetime="2023-05-01" class="news__item-date">{{ $new->created_at }}</time>
  185 + <time datetime="{{ date('d.m.Y H:i:s', strtotime($new->created_at)) }}" class="news__item-date">{{ date('d.m.Y H:i:s', strtotime($new->created_at)) }}</time>
182 186 <span class="news__item-title">{{ $new->title }}</span>
183 187 <span class="news__item-text">{{ mb_strimwidth($new->text, 0, 100) }}</span>
184 188 <a href="{{ route('detail_new', ['new' => $new->id]) }}" class="news__item-more button button_light">Читать далее</a>
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)
... ... @@ -241,7 +245,7 @@
241 245 class="button button_light main__employer-page-two-item-button">Подробнее</a>-->
242 246 </div>
243 247 <div class="main__employer-page-two-item-bottom">
244   - <div class="main__employer-page-two-item-bottom-date">{{ $job->updated_at }}</div>
  248 + <div class="main__employer-page-two-item-bottom-date">{{ date('d.m.Y H:i:s', strtotime($job->updated_at)) }}</div>
245 249 <button type="button"
246 250 class="like main__employer-page-two-item-bottom-like js-toggle">
247 251 <svg>
resources/views/layout/frontend.blade.php
... ... @@ -9,6 +9,7 @@
9 9 <script src="{{ asset('js/jquery.js') }}"></script>
10 10 <script type="text/javascript" src="{{ asset('js/jquery.cookie.js') }}"></script>
11 11 <link rel="stylesheet" href="{{ asset('css/style_new.css') }}">
  12 + <link rel="stylesheet" href="{{ asset('css/star-rating.min.css') }}">
12 13 <style>
13 14 .err_red {
14 15 border: red 2px solid;
... ... @@ -43,15 +44,13 @@
43 44 @guest
44 45  
45 46 @else
46   - <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">
47 48 <svg>
48 49 <use xlink:href="{{ asset('images/sprite.svg#ring') }}"></use>
49 50 </svg>
50 51 <span>Уведомления</span>
51   - </button>
52   - <a href="@if ($UserId->is_worker) {{ route('worker.cabinet') }} @else {{ route('employer.cabinet') }} @endif" class="header__notifs">
53   - Кабинет
54 52 </a>
  53 +
55 54 @endguest
56 55 <div class="header__right-line"></div>
57 56 <button class="header__burger">
... ... @@ -233,14 +232,16 @@
233 232  
234 233 <div hidden> <!-- BEGIN MODALS WRAPPER -->
235 234 <!-- Соискатель отправляет сообщение работодателю -->
236   - @include('modals.send_worker')
  235 + @include('modals.send_worker_new')
237 236  
238 237 <!-- Работодатель отправляет сообщение соискателю -->
239   - @include('modals.send_employer')
  238 + @include('modals.send_employer_new')
240 239  
241 240 <!-- Сообщение-предупреждение о том, что сообщения только можно отправить авторизованным пользователям -->
242 241 @include('modals.send_message_noaut')
243 242  
  243 + @include('modals.send_message_noaut2')
  244 +
244 245 <!-- Форма авторизации -->
245 246 @include('modals.send_login')
246 247  
... ... @@ -276,6 +277,7 @@
276 277 <script src="{{ asset('js/jquery.select2.js') }}"></script>
277 278 <script src="{{ asset('js/swiper.js') }}"></script>
278 279 <script src="{{ asset('js/script.js') }}"></script>
  280 +<script src="{{ asset('js/star-rating.min.js') }}"></script>
279 281 <script>
280 282 var getUrlParameter = function getUrlParameter(sParam) {
281 283 var sPageURL = decodeURIComponent(window.location.search.substring(1)),
resources/views/layout/pdf.blade.php
... ... @@ -7,17 +7,183 @@
7 7 <meta name="viewport" content="width=device-width,initial-scale=1">
8 8 <meta name="theme-color" content="#377D87">
9 9 <link rel="stylesheet" href="{{ asset('css/style.css') }}">
  10 + <style>
  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 +
  175 + </style>
10 176 </head>
11 177  
12 178 <body id="body" class="pdf">
13 179 <section class="thing thing_pdf">
14 180 <div class="container">
15 181 <div class="thing__profile">
16   - <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">
17 183 <div class="thing__profile-body">
18   - <h1 class="thing__title">Назаров Платон Фёдорович</h1>
19   - <p class="thing__text">Сложно сказать, почему ключевые особенности структуры проекта рассмотрены
20   - исключительно в разрезе маркетинговых и финансовых предпосылок.</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>
21 187 </div>
22 188 </div>
23 189 </div>
... ... @@ -27,101 +193,112 @@
27 193 <div class="main__resume-profile">
28 194 <div class="main__content">
29 195 <div class="main__spoiler">
30   - <button type="button" class="main__spoiler-toper js-toggle active">Основная
31   - информация</button>
  196 + <!-- <button type="button" class="main__spoiler-toper js-toggle active">Основная
  197 + информация</button> -->
32 198 <div class="main__spoiler-body">
33 199 <table class="main__table">
  200 + <thead>
  201 + <tr>
  202 + <th colspan="2">Основная информация</th>
  203 + </tr>
  204 + </thead>
34 205 <tbody>
35 206 <tr>
36 207 <td>Имя:</td>
37   - <td><b>Оксана</b></td>
  208 + <td><b>{{ $Query[0]['users']['name_man'] }}</b></td>
38 209 </tr>
39 210 <tr>
40 211 <td>Должность:</td>
41   - <td><b>Повар</b></td>
  212 + <td>
  213 + @foreach ($Query[0]['job_titles'] as $it)
  214 + <b>{{ $it['name'] }}</b><br>
  215 + @endforeach
  216 + </td>
42 217 </tr>
43 218 <tr>
44 219 <td>Телефон:</td>
45   - <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>
46 223 </tr>
47 224 <tr>
48 225 <td>E-mail:</td>
49   - <td><b><a href="#">info@rekamore.su</a></b></td>
  226 + <td><b><a>{{ $Query[0]['email'] }}</a></b></td>
50 227 </tr>
51 228 <tr>
52 229 <td>Возраст:</td>
53   - <td><b>30</b></td>
  230 + <td><b>{{ $Query[0]['old_year'] }}</b></td>
54 231 </tr>
55 232 <tr>
56 233 <td>Статус:</td>
57   - <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>
58 237 </tr>
59 238 <tr>
60 239 <td>Город проживания:</td>
61   - <td><b>Петропавловск-камчатский</b></td>
  240 + <td><b>{{ $Query[0]['city'] }}</b></td>
62 241 </tr>
63 242 <tr>
64 243 <td>Уровень английского:</td>
65   - <td><b>Не указано</b></td>
  244 + <td><b>{{ $Query[0]['en_is'] }}</b></td>
66 245 </tr>
67 246 <tr>
68 247 <td>Опыт работы:</td>
69   - <td><b>1 год</b></td>
  248 + <td><b>{{ $Query[0]['old_year'] }}</b></td>
70 249 </tr>
71 250 </tbody>
72 251 </table>
73 252 </div>
74 253 </div>
75 254 <div class="main__spoiler">
76   - <button type="button" class="main__spoiler-toper js-toggle">Сертификаты / документы</button>
77 255 <div class="main__spoiler-body">
78 256 <table class="main__table">
79   - <tbody>
80   - <tr>
81   - <td>Среднее специальное образование</td>
82   - <td><a href="#">Ссылка на диплом</a></td>
83   - </tr>
  257 + <thead>
84 258 <tr>
85   - <td>Курсы повышения квалификации</td>
86   - <td><a href="#">Ссылка на диплом</a></td>
87   - </tr>
88   - <tr>
89   - <td>Прохождение переподготовки</td>
90   - <td><a href="#">Ссылка на сертификат</a></td>
  259 + <th colspan="2">Сертификаты / документы</th>
91 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
92 276 </tbody>
93 277 </table>
94 278 </div>
95 279 </div>
96 280 <div class="main__spoiler">
97   - <button type="button" class="main__spoiler-toper js-toggle">Опыт работы</button>
98 281 <div class="main__spoiler-body">
99 282 <table class="main__table main__table_three">
100   - <tbody>
  283 + <thead>
101 284 <tr>
102   - <td>Июнь 2019 — по настоящее время
103   - <br>4 года 10 месяцев</td>
104   - <td><b>ООО "Невский мазут"</b>
105   - Санкт-Петербург</td>
106   - <td><b>Вахтенный механик (танкер)</b>
107   - Переведён на т/х " SULA " в должности Вахтенный механик. Полный комплект морских документов для работы на нефтеналивных судах ( диплом без ограничений ).</td>
108   - </tr>
109   - <tr>
110   - <td>Октябрь 2014 — по настоящее время
111   - <br>9 лет 6 месяцев</td>
112   - <td><b>ООО "Невский мазут"</b>
113   - Санкт-Петербург</td>
114   - <td><b>Сменный механик (танкер)</b>
115   - Ремонт и эксплуатация судовых энергетических установок . Работа с документами, топливными отчётами. Управление персоналом.</td>
116   - </tr>
117   - <tr>
118   - <td>Январь 2012 — октябрь 2014
119   - <br>2 года 10 месяцев</td>
120   - <td><b>ООО "Портовый флот"</b>
121   - Санкт-Петербург</td>
122   - <td><b>Моторист-матрос-котельный машинист.</b>
123   - Эксплуатация, ремонт судовых механизмов, несение вахты.</td>
  285 + <th colspan="3">Опыт работы</th>
124 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
125 302 </tbody>
126 303 </table>
127 304 </div>
... ... @@ -129,60 +306,36 @@
129 306 </div>
130 307 <div class="main__resume-profile-about">
131 308 <h2 class="main__resume-profile-about-title">О себе</h2>
132   - <p class="main__resume-profile-about-text">Привет! Меня зовут Саша, мне 41 год, женат, имею 3
133   - детей.Большой опыт на Азимутальных буксирах(ВРК). Большой опыт портовых работ:
134   - швартовки/отшвартовки, доставка/снятие лоцманов, доставка снабжения. Буксировка барж,
135   - плавкранов.Есть опыт морской буксировки.Знание ПК, офисных програм и т.д.Коммуникабелен,
136   - вредных привычек не имею, легко обучаем.</p>
137   - <div class="button main__resume-profile-about-button">Написать сообщение</div>
  309 + <p class="main__resume-profile-about-text">{{ $Query[0]['text'] }}</p>
  310 +
138 311 </div>
139 312 <div class="main__resume-profile-info">
140 313 <h2 class="main__resume-profile-info-title">Данные о прошлых компаниях</h2>
141 314 <div class="main__resume-profile-info-body">
142   - <div class="main__resume-profile-info-body-item">
143   - <h3 class="main__resume-profile-info-body-subtitle">Судоходное агентство “Транс-Флот”</h3>
144   - <ul class="main__resume-profile-info-body-inner">
145   - <li>
146   - <b>Руководитель</b>
147   - <span>Егоров Тимур Николаевич</span>
148   - </li>
149   - <li>
150   - <b>Телефон того, кто может дать рекомендацию</b>
151   - <span>
152   - <a href="#">+7 (000) 123 45 67</a>
153   - <a href="#">+7 (000) 123 45 67</a>
154   - </span>
155   - </li>
156   - </ul>
157   - </div>
158   - <div class="main__resume-profile-info-body-item">
159   - <h3 class="main__resume-profile-info-body-subtitle">Аквамарин Шип Менеджмент</h3>
160   - <ul class="main__resume-profile-info-body-inner">
161   - <li>
162   - <b>Руководитель</b>
163   - <span>Федотов Артём Никитич</span>
164   - </li>
165   - <li>
166   - <b>Телефон того, кто может дать рекомендацию</b>
167   - <span>
168   - <a href="#">+7 (000) 123 45 67</a>
169   - <a href="#">+7 (000) 123 45 67</a>
170   - </span>
171   - </li>
172   - </ul>
173   - </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
174 335 </div>
175 336 </div>
176 337 </div>
177 338 </div>
178 339 </main>
179   -<script src="{{ asset('js/jquery.js') }}"></script>
180   -<script src="{{ asset('js/jquery.maskedinput.js') }}"></script>
181   -<script src="{{ asset('js/jquery.fancybox.js') }}"></script>
182   -<script src="{{ asset('js/jquery.select2.js') }}"></script>
183   -<script src="{{ asset('js/swiper.js') }}"></script>
184   -<script src="{{ asset('js/star-rating.min.js') }}"></script>
185   -<script src="{{ asset('js/script.js') }}"></script>
186 340 </body>
187   -
188 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">
... ... @@ -225,7 +270,7 @@
225 270 <a href="{{ route('vacancie', ['vacancy' => $Q->id]) }}" class="button button_light main__employer-page-two-item-button">Подробнее</a>
226 271 </div>
227 272 <div class="main__employer-page-two-item-bottom">
228   - <div class="main__employer-page-two-item-bottom-date">{{ $Q->created_at }}</div>
  273 + <div class="main__employer-page-two-item-bottom-date">{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}</div>
229 274 <button type="button" data-val="{{ $Q->id }}" class="like main__employer-page-two-item-bottom-like js-toggle js_vacancy_favorites <?=App\Classes\Cookies_vacancy::selected_vacancy($Q->id);?>">
230 275 <svg>
231 276 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use>
... ... @@ -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/news-list.blade.php
... ... @@ -144,16 +144,14 @@
144 144 <img src="{{ asset('images/8.jpg') }}" alt="{{ $Q->title }}" class="news__item-pic">
145 145 @endif
146 146 <div class="news__item-body">
147   - <time datetime="2023-05-01" class="news__item-date">{{ $Q->created_at }}</time>
  147 + <time datetime="{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}" class="news__item-date">{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}</time>
148 148 <span class="news__item-title">{{ $Q->title }}</span>
149 149 <span class="news__item-text">{!! $Q->text !!}</span>
150 150 <a href="{{ route('detail_new', ['new' => $Q->id]) }}" class="news__item-more button button_light">Читать далее</a>
151 151 </div>
152 152 </div>
153 153 @endforeach
154   -
155 154 </div>
156   -
157 155 {{ $Query->appends($_GET)->links('paginate') }}
158 156 @else
159 157 <div class="news__items">
resources/views/paginate.blade.php
1 1 @if ($paginator->hasPages())
2 2 <div class="pagination">
3 3 @if ($paginator->onFirstPage())
4   -
  4 + <a href="{{ $paginator->previousPageUrl() }}" class="pagination__nav pagination__nav_prev">
  5 + <svg>
  6 + <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use>
  7 + </svg>
  8 + </a>
5 9 @else
6 10 <a href="{{ $paginator->previousPageUrl() }}" class="pagination__nav pagination__nav_prev">
7 11 <svg>
... ... @@ -45,7 +49,11 @@
45 49 </svg>
46 50 </a>
47 51 @else
48   -
  52 + <a href="{{ $paginator->nextPageUrl() }}" class="pagination__nav pagination__nav_next">
  53 + <svg>
  54 + <use xlink:href="{{ asset('images/sprite.svg#arrow-bold') }}"></use>
  55 + </svg>
  56 + </a>
49 57 @endif
50 58 </div>
51 59 @endif
resources/views/vacance-item.blade.php
... ... @@ -109,7 +109,7 @@
109 109 <button type="button" class="button main__employer-page-two-item-button">Откликнуться</button>
110 110 </div>
111 111 <div class="main__employer-page-two-item-bottom">
112   - <div class="main__employer-page-two-item-bottom-date">{{ $Q->created_at }}</div>
  112 + <div class="main__employer-page-two-item-bottom-date">{{ date('d.m.Y H:i:s', strtotime($Q->created_at)) }}</div>
113 113 <button type="button" data-val="{{ $Q->id }}" class="like main__employer-page-two-item-bottom-like js_vacancy_favorites js-toggle <?=\App\Classes\RusDate::selected_vacancy($Q->id);?>">
114 114 <svg>
115 115 <use xlink:href="{{ asset('images/sprite.svg#heart') }}"></use>
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
... ... @@ -222,9 +222,7 @@
222 222 <div class="main__resume-profile-info">
223 223 <h2 class="main__resume-profile-info-title">Данные о прошлых компаниях</h2>
224 224 <div class="main__resume-profile-info-body">
225   -
226   - @if (isset($Query[0]->prev_company))
227   - @if ($Query[0]->prev_company->count())
  225 + @if ((isset($Query[0]->prev_company)) && ($Query[0]->prev_company->count()))
228 226 @foreach ($Query[0]->prev_company as $it)
229 227 <div class="main__resume-profile-info-body-item">
230 228 <h3 class="main__resume-profile-info-body-subtitle">{{ $it->name_company }}</h3>
... ... @@ -247,23 +245,37 @@
247 245 </ul>
248 246 </div>
249 247 @endforeach
250   - @endif
  248 + @else
  249 + <div class="main__resume-profile-info-body-item">
  250 + <h3 class="main__resume-profile-info-body-subtitle">Нету данных о компании</h3>
  251 + </div>
251 252 @endif
252 253 </div>
253 254 </div>
  255 +
254 256 <div class="main__resume-profile-review">
  257 + <form action="{{ route('stars_answer') }}" method="POST">
  258 + @csrf
255 259 <h2 class="main__resume-profile-review-title">Оставить отзыв о работнике</h2>
256 260 <div class="rate">
257 261 <div class="rate__label">Ваша оценка:</div>
258 262 <div class="rate__stars">
259   - <img src="{{ asset('images/stars.svg') }}" alt="">
  263 + <select name="stars" id="stars" class="star-rating js-stars">
  264 + <option value="5">5</option>
  265 + <option value="4">4</option>
  266 + <option value="3">3</option>
  267 + <option value="2">2</option>
  268 + <option value="1" selected>1</option>
  269 + </select>
260 270 </div>
261 271 </div>
  272 + <input type="hidden" name="worker_id" id="worker_id" value="{{ $Query[0]->id }}"/>
262 273 <div class="main__resume-profile-review-body">
263 274 <h3>Ваш отзыв</h3>
264   - <textarea class="textarea" placeholder="Текст отзыва&hellip;" required></textarea>
  275 + <textarea class="textarea" name="message" id="message" placeholder="Текст отзыва&hellip;" required></textarea>
265 276 <button type="submit" class="button">Оставить отзыв</button>
266 277 </div>
  278 + </form>
267 279 </div>
268 280 </div>
269 281 </div>
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>
... ... @@ -442,6 +442,8 @@ Route::get(&#39;register_employer&#39;, [EmployerController::class, &#39;register_employer&#39;]
442 442  
443 443 //восстановление пароля
444 444 Route::get('repair-password', [MainController::class, 'repair_password'])->name('repair_password');
  445 +// Звезда сообщения
  446 +Route::post('stars-answer', [WorkerController::class, 'stars_answer'])->name('stars_answer');
445 447  
446 448 // Борьба
447 449 Route::get('clear_cookie', function() {
... ... @@ -524,6 +526,7 @@ Route::group([
524 526 Route::get('cabinet/vacancy-up/{ad_employer}', [EmployerController::class, 'vacancy_up'])->name('vacancy_up');
525 527 Route::get('cabinet/vacancy-eye/{ad_employer}/{status}', [EmployerController::class, 'vacancy_eye'])->name('vacancy_eye');
526 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');
527 530  
528 531 // 4 страница - Отклики на вакансии
529 532 Route::get('cabinet/answers/{employer}', [EmployerController::class, 'answers'])->name('answers');