Commit 5d6e2f2f516355c46c65aab45480f49e8f949eaf
1 parent
7d97dde354
Exists in
master
task-132985 minor fixes
Showing 5 changed files with 6 additions and 6 deletions Inline Diff
app/Listeners/MessageAutoresponder.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Listeners; | 3 | namespace App\Listeners; |
4 | 4 | ||
5 | use App\Events\MessageSended; | 5 | use App\Events\MessageSended; |
6 | use App\Models\Message; | 6 | use App\Models\Message; |
7 | use App\Models\User; | 7 | use App\Models\User; |
8 | use Illuminate\Contracts\Queue\ShouldQueue; | 8 | use Illuminate\Contracts\Queue\ShouldQueue; |
9 | use Illuminate\Database\Query\Builder; | 9 | use Illuminate\Database\Query\Builder; |
10 | use Illuminate\Http\Request; | 10 | use Illuminate\Http\Request; |
11 | use Illuminate\Queue\InteractsWithQueue; | 11 | use Illuminate\Queue\InteractsWithQueue; |
12 | 12 | ||
13 | class MessageAutoresponder | 13 | class MessageAutoresponder |
14 | { | 14 | { |
15 | /** | 15 | /** |
16 | * Create the event listener. | 16 | * Create the event listener. |
17 | * | 17 | * |
18 | * @return void | 18 | * @return void |
19 | */ | 19 | */ |
20 | public function __construct() | 20 | public function __construct() |
21 | { | 21 | { |
22 | // | 22 | // |
23 | } | 23 | } |
24 | 24 | ||
25 | /** | 25 | /** |
26 | * Handle the event. | 26 | * Handle the event. |
27 | * | 27 | * |
28 | * @param \App\Events\MessageSended $event | 28 | * @param \App\Events\MessageSended $event |
29 | * @return void | 29 | * @return void |
30 | */ | 30 | */ |
31 | public function handle(MessageSended $event) | 31 | public function handle(MessageSended $event) |
32 | { | 32 | { |
33 | $message = $event->message; | 33 | $message = $event->message; |
34 | 34 | ||
35 | /** @var User $user */ | 35 | /** @var User $user */ |
36 | $user = User::find($message->to_user_id); | 36 | $user = User::find($message->to_user_id); |
37 | 37 | ||
38 | if ($user === null || !$user->autoresponder) { | 38 | if ($user === null || !$user->autoresponder) { |
39 | return; | 39 | return; |
40 | } | 40 | } |
41 | 41 | ||
42 | $recentAutoresponderMessage = Message::query() | 42 | $recentAutoresponderMessage = Message::query() |
43 | ->where('user_id', $message->to_user_id) | 43 | ->where('user_id', $message->to_user_id) |
44 | ->where('to_user_id', $message->user_id) | 44 | ->where('to_user_id', $message->user_id) |
45 | ->where('text', $user->autoresponder_message) | 45 | ->where('text', $user->autoresponder_message) |
46 | ->where('created_at', '>', now()->subDays(4)) | 46 | ->where('created_at', '>', now()->subDay()) |
47 | ->orWhereExists(function (Builder $query) use ($message) { | 47 | ->orWhereExists(function (Builder $query) use ($message) { |
48 | $query->from('messages', 'm2') | 48 | $query->from('messages', 'm2') |
49 | ->where('m2.created_at', '>', now()->subMinutes(5)) | 49 | ->where('m2.created_at', '>', now()->subMinutes(5)) |
50 | ->where('m2.chat_id_from', $message->chat_id_to); | 50 | ->where('m2.chat_id_from', $message->chat_id_to); |
51 | }) | 51 | }) |
52 | ->orderBy('id', 'desc') | 52 | ->orderBy('id', 'desc') |
53 | ->first(); | 53 | ->first(); |
54 | 54 | ||
55 | if ($recentAutoresponderMessage !== null) { | 55 | if ($recentAutoresponderMessage !== null) { |
56 | return; | 56 | return; |
57 | } | 57 | } |
58 | 58 | ||
59 | Message::add_message( | 59 | Message::add_message( |
60 | request: new Request(), | 60 | request: new Request(), |
61 | user_id: $message->to_user_id, | 61 | user_id: $message->to_user_id, |
62 | to_user_id: $message->user_id, | 62 | to_user_id: $message->user_id, |
63 | message_params: [ | 63 | message_params: [ |
64 | 'text' => $user->autoresponder_message, | 64 | 'text' => $user->autoresponder_message, |
65 | 'flag_new' => 1 | 65 | 'flag_new' => 1 |
66 | ] | 66 | ] |
67 | ); | 67 | ); |
68 | //dump('after listener'); | 68 | //dump('after listener'); |
69 | } | 69 | } |
70 | } | 70 | } |
71 | 71 |
resources/views/employers/dialog.blade.php
1 | @extends('layout.frontend', ['title' => 'Диалог-переписка - РекаМоре']) | 1 | @extends('layout.frontend', ['title' => 'Диалог-переписка - РекаМоре']) |
2 | 2 | ||
3 | @section('scripts') | 3 | @section('scripts') |
4 | <script> | 4 | <script> |
5 | $(function(){ | 5 | $(function(){ |
6 | var chatbox_div = $('.chatbox__list'); | 6 | var chatbox_div = $('.chatbox__list'); |
7 | chatbox_div.scrollTop(chatbox_div.prop("scrollHeight")); | 7 | chatbox_div.scrollTop(chatbox_div.prop("scrollHeight")); |
8 | 8 | ||
9 | $('form.chatbox__bottom [name="file"]').on('change', function() { | 9 | $('form.chatbox__bottom [name="file"]').on('change', function() { |
10 | var fileName = $(this).val().split('\\').pop(); | 10 | var fileName = $(this).val().split('\\').pop(); |
11 | $('.chatbox-file-name-wrap').text('Добавлен файл: ' + fileName); | 11 | $('.chatbox-file-name-wrap').text('Добавлен файл: ' + fileName); |
12 | }); | 12 | }); |
13 | }); | 13 | }); |
14 | 14 | ||
15 | $(document).on('change', '#send_btn', function() { | 15 | $(document).on('change', '#send_btn', function() { |
16 | var this_ = $(this); | 16 | var this_ = $(this); |
17 | var val_ = this_.val(); | 17 | var val_ = this_.val(); |
18 | console.log('sort items '+val_); | 18 | console.log('sort items '+val_); |
19 | 19 | ||
20 | $.ajax({ | 20 | $.ajax({ |
21 | type: "GET", | 21 | type: "GET", |
22 | url: "{{ route('shipping_companies') }}", | 22 | url: "{{ route('shipping_companies') }}", |
23 | data: "sort="+val_+"&block=1", | 23 | data: "sort="+val_+"&block=1", |
24 | success: function (data) { | 24 | success: function (data) { |
25 | console.log('Выбор сортировки'); | 25 | console.log('Выбор сортировки'); |
26 | console.log(data); | 26 | console.log(data); |
27 | $('#block_1').html(data); | 27 | $('#block_1').html(data); |
28 | }, | 28 | }, |
29 | headers: { | 29 | headers: { |
30 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 30 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
31 | }, | 31 | }, |
32 | error: function (data) { | 32 | error: function (data) { |
33 | data = JSON.stringify(data); | 33 | data = JSON.stringify(data); |
34 | console.log('Error: ' + data); | 34 | console.log('Error: ' + data); |
35 | } | 35 | } |
36 | }); | 36 | }); |
37 | 37 | ||
38 | $.ajax({ | 38 | $.ajax({ |
39 | type: "GET", | 39 | type: "GET", |
40 | url: "{{ route('shipping_companies') }}", | 40 | url: "{{ route('shipping_companies') }}", |
41 | data: "sort="+val_+"&block=2", | 41 | data: "sort="+val_+"&block=2", |
42 | success: function (data) { | 42 | success: function (data) { |
43 | console.log('Выбор сортировки2'); | 43 | console.log('Выбор сортировки2'); |
44 | console.log(data); | 44 | console.log(data); |
45 | history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); | 45 | history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); |
46 | $('#block_2').html(data); | 46 | $('#block_2').html(data); |
47 | }, | 47 | }, |
48 | headers: { | 48 | headers: { |
49 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 49 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
50 | }, | 50 | }, |
51 | error: function (data) { | 51 | error: function (data) { |
52 | data = JSON.stringify(data); | 52 | data = JSON.stringify(data); |
53 | console.log('Error: ' + data); | 53 | console.log('Error: ' + data); |
54 | } | 54 | } |
55 | }); | 55 | }); |
56 | }); | 56 | }); |
57 | </script> | 57 | </script> |
58 | @endsection | 58 | @endsection |
59 | 59 | ||
60 | @section('content') | 60 | @section('content') |
61 | <section class="cabinet"> | 61 | <section class="cabinet"> |
62 | <div class="container"> | 62 | <div class="container"> |
63 | <ul class="breadcrumbs cabinet__breadcrumbs"> | 63 | <ul class="breadcrumbs cabinet__breadcrumbs"> |
64 | <li><a href="{{ route('index') }}">Главная</a></li> | 64 | <li><a href="{{ route('index') }}">Главная</a></li> |
65 | <li><b>Личный кабинет</b></li> | 65 | <li><b>Личный кабинет</b></li> |
66 | </ul> | 66 | </ul> |
67 | <div class="cabinet__wrapper"> | 67 | <div class="cabinet__wrapper"> |
68 | <div class="cabinet__side"> | 68 | <div class="cabinet__side"> |
69 | <div class="cabinet__side-toper"> | 69 | <div class="cabinet__side-toper"> |
70 | @include('employers.emblema') | 70 | @include('employers.emblema') |
71 | </div> | 71 | </div> |
72 | @include('employers.menu', ['item' => 5]) | 72 | @include('employers.menu', ['item' => 5]) |
73 | </div> | 73 | </div> |
74 | <div class="cabinet__body"> | 74 | <div class="cabinet__body"> |
75 | <div class="cabinet__body-item"> | 75 | <div class="cabinet__body-item"> |
76 | <h2 class="title cabinet__title">Сообщения</h2> | 76 | <h2 class="title cabinet__title">Сообщения</h2> |
77 | </div> | 77 | </div> |
78 | <div class="cabinet__body-item"> | 78 | <div class="cabinet__body-item"> |
79 | <a href="{{ route('employer.messages', ['type_message' => 'input']) }}" class="back"> | 79 | <a href="{{ route('employer.messages', ['type_message' => 'input']) }}" class="back"> |
80 | <svg> | 80 | <svg> |
81 | <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> | 81 | <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> |
82 | </svg> | 82 | </svg> |
83 | <span> | 83 | <span> |
84 | К списку чатов | 84 | К списку чатов |
85 | </span> | 85 | </span> |
86 | </a> | 86 | </a> |
87 | <div class="chatbox"> | 87 | <div class="chatbox"> |
88 | <div class="chatbox__toper"> | 88 | <div class="chatbox__toper"> |
89 | @if ($companion->is_worker) | 89 | @if ($companion->is_worker) |
90 | <div class="chatbox__toper-info messages__item-info"> | 90 | <div class="chatbox__toper-info messages__item-info"> |
91 | <div class="messages__item-photo"> | 91 | <div class="messages__item-photo"> |
92 | <svg> | 92 | <svg> |
93 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> | 93 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> |
94 | </svg> | 94 | </svg> |
95 | @if ((isset($companion->workers[0]->photo)) && | 95 | @if ((isset($companion->workers[0]->photo)) && |
96 | (!empty($companion->workers[0]->photo))) | 96 | (!empty($companion->workers[0]->photo))) |
97 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->workers[0]->photo)) }}" alt=""> | 97 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->workers[0]->photo)) }}" alt=""> |
98 | @else | 98 | @else |
99 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 99 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
100 | @endif | 100 | @endif |
101 | </div> | 101 | </div> |
102 | <div class="messages__item-text"> | 102 | <div class="messages__item-text"> |
103 | <div>{{ $companion->surname." ".$companion->name_man." ".$companion->surname2." (".$companion->id.")" }} </div> | 103 | <div>{{ $companion->surname." ".$companion->name_man." ".$companion->surname2." (".$companion->id.")" }} </div> |
104 | </div> | 104 | </div> |
105 | </div> | 105 | </div> |
106 | @if (isset($companion->workers[0]->id)) | 106 | @if (isset($companion->workers[0]->id)) |
107 | <a href="{{ route('resume_profile', ['worker' => $companion->workers[0]->id]) }}" class="button chatbox__toper-button"> | 107 | <a href="{{ route('resume_profile', ['worker' => $companion->workers[0]->id]) }}" class="button chatbox__toper-button"> |
108 | <svg> | 108 | <svg> |
109 | <use xlink:href="{{ asset('images/sprite.svg#cabinet-1') }}"></use> | 109 | <use xlink:href="{{ asset('images/sprite.svg#cabinet-1') }}"></use> |
110 | </svg> | 110 | </svg> |
111 | Перейти в профиль | 111 | Перейти в профиль |
112 | </a> | 112 | </a> |
113 | @endif | 113 | @endif |
114 | @else | 114 | @else |
115 | <div class="chatbox__toper-info messages__item-info"> | 115 | <div class="chatbox__toper-info messages__item-info"> |
116 | <div class="messages__item-photo"> | 116 | <div class="messages__item-photo"> |
117 | <svg> | 117 | <svg> |
118 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> | 118 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> |
119 | </svg> | 119 | </svg> |
120 | @if ((isset($companion->employers[0]->logo)) && | 120 | @if ((isset($companion->employers[0]->logo)) && |
121 | (!empty($companion->employers[0]->logo))) | 121 | (!empty($companion->employers[0]->logo))) |
122 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->employers[0]->logo)) }}" alt=""> | 122 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->employers[0]->logo)) }}" alt=""> |
123 | @else | 123 | @else |
124 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 124 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
125 | @endif | 125 | @endif |
126 | </div> | 126 | </div> |
127 | <div class="messages__item-text"> | 127 | <div class="messages__item-text"> |
128 | <div>{{ $companion->surname." ".$companion->name_man." ".$companion->surname2." (".$companion->id.")" }} </div> | 128 | <div>{{ $companion->surname." ".$companion->name_man." ".$companion->surname2." (".$companion->id.")" }} </div> |
129 | <div><span>Статус:</span> Работодатель или Администратор</div> | 129 | <div><span>Статус:</span> Работодатель или Администратор</div> |
130 | </div> | 130 | </div> |
131 | </div> | 131 | </div> |
132 | @if (isset($companion->employer->id)) | 132 | @if (isset($companion->employer->id)) |
133 | <a href="" class="button chatbox__toper-button"> | 133 | <a href="" class="button chatbox__toper-button"> |
134 | <svg> | 134 | <svg> |
135 | <use xlink:href="{{ asset('images/sprite.svg#cabinet-1') }}"></use> | 135 | <use xlink:href="{{ asset('images/sprite.svg#cabinet-1') }}"></use> |
136 | </svg> | 136 | </svg> |
137 | Перейти в профиль | 137 | Перейти в профиль |
138 | </a> | 138 | </a> |
139 | @endif | 139 | @endif |
140 | @endif | 140 | @endif |
141 | </div> | 141 | </div> |
142 | 142 | ||
143 | @if ($errors->any()) | 143 | @if ($errors->any()) |
144 | <div class="red bold"> | 144 | <div class="red bold"> |
145 | <ul> | 145 | <ul> |
146 | @foreach ($errors->all() as $error) | 146 | @foreach ($errors->all() as $error) |
147 | <li>{{ $error }}</li> | 147 | <li>{{ $error }}</li> |
148 | @endforeach | 148 | @endforeach |
149 | </ul> | 149 | </ul> |
150 | </div> | 150 | </div> |
151 | @endif | 151 | @endif |
152 | 152 | ||
153 | <div class="chatbox__list" id="dialogs" name="dialogs"> | 153 | <div class="chatbox__list" id="dialogs" name="dialogs"> |
154 | @if ($Messages->count()) | 154 | @if ($Messages->count()) |
155 | @foreach ($Messages as $it) | 155 | @foreach ($Messages as $it) |
156 | @if ($it->user_id == $companion->id) | 156 | @if ($it->user_id == $companion->id) |
157 | <div class="chatbox__item"> | 157 | <div class="chatbox__item"> |
158 | <div class="chatbox__item-photo"> | 158 | <div class="chatbox__item-photo"> |
159 | <svg> | 159 | <svg> |
160 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> | 160 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> |
161 | </svg> | 161 | </svg> |
162 | 162 | ||
163 | @if ($companion->is_worker) | 163 | @if ($companion->is_worker) |
164 | @if ((isset($companion->workers[0]->photo)) && | 164 | @if ((isset($companion->workers[0]->photo)) && |
165 | (!empty($companion->workers[0]->photo))) | 165 | (!empty($companion->workers[0]->photo))) |
166 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->workers[0]->photo)) }}" alt=""> | 166 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->workers[0]->photo)) }}" alt=""> |
167 | @else | 167 | @else |
168 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 168 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
169 | @endif | 169 | @endif |
170 | @else | 170 | @else |
171 | @if ((isset($companion->employers[0]->logo)) && | 171 | @if ((isset($companion->employers[0]->logo)) && |
172 | (!empty($companion->employers[0]->logo))) | 172 | (!empty($companion->employers[0]->logo))) |
173 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->employers[0]->logo)) }}" alt=""> | 173 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->employers[0]->logo)) }}" alt=""> |
174 | @else | 174 | @else |
175 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 175 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
176 | @endif | 176 | @endif |
177 | @endif | 177 | @endif |
178 | </div> | 178 | </div> |
179 | <div class="chatbox__item-body"> | 179 | <div class="chatbox__item-body"> |
180 | @if($it->text || $it->reply_message_id || $it->ad_employer_id > 0) | 180 | @if($it->text || $it->reply_message_id || $it->ad_employer_id > 0) |
181 | <div class="chatbox__item-text"> | 181 | <div class="chatbox__item-text"> |
182 | @if($it->ad_employer_id > 0) | 182 | @if($it->ad_employer_id > 0) |
183 | <b>Отклик на вакансию</b> "{{ \App\Models\Ad_employer::find($it->ad_employer_id)?->name }}"<br> | 183 | <b>Отклик на вакансию</b> "{{ \App\Models\Ad_employer::find($it->ad_employer_id)?->name }}"<br> |
184 | @if($it->text) | 184 | @if($it->text) |
185 | <b>Комментарий:</b> {{ $it->text }} | 185 | <b>Комментарий:</b> {{ $it->text }} |
186 | @endif | 186 | @endif |
187 | @else | 187 | @else |
188 | @if($it->text) | 188 | @if($it->text) |
189 | {{ $it->text }} | 189 | {{ $it->text }} |
190 | @endif | 190 | @endif |
191 | @endif | 191 | @endif |
192 | 192 | ||
193 | @if($it->reply_message_id) | 193 | @if($it->reply_message_id) |
194 | <div class="reply-message"> | 194 | <div class="reply-message"> |
195 | {{ $it->reply_message->text }} | 195 | {{ $it->reply_message->text }} |
196 | </div> | 196 | </div> |
197 | @endif | 197 | @endif |
198 | </div> | 198 | </div> |
199 | @endif | 199 | @endif |
200 | @if ((isset($it->file)) && (!empty($it->file))) | 200 | @if ((isset($it->file)) && (!empty($it->file))) |
201 | <div class="chatbox__item-text chatbox__item-body-file-name-wrap"> | 201 | <div class="chatbox__item-text chatbox__item-body-file-name-wrap"> |
202 | <div class=""> | 202 | <div class=""> |
203 | @if($it->original_file_name) | 203 | @if($it->original_file_name) |
204 | {{ $it->original_file_name }} | 204 | {{ $it->original_file_name }} |
205 | @else | 205 | @else |
206 | <svg> | 206 | <svg> |
207 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> | 207 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> |
208 | </svg> | 208 | </svg> |
209 | @endif | 209 | @endif |
210 | </div> | 210 | </div> |
211 | <a href="{{ asset(Storage::url($it->file)) }}" class=""> | 211 | <a href="{{ asset(Storage::url($it->file)) }}" class=""> |
212 | Скачать | 212 | Скачать |
213 | </a> | 213 | </a> |
214 | </div> | 214 | </div> |
215 | @endif | 215 | @endif |
216 | </div> | 216 | </div> |
217 | <div class="chatbox__item-time">{{ $it->created_at }}</div> | 217 | <div class="chatbox__item-time">{{ $it->created_at }}</div> |
218 | </div> | 218 | </div> |
219 | @else | 219 | @else |
220 | <div class="chatbox__item chatbox__item_reverse"> | 220 | <div class="chatbox__item chatbox__item_reverse"> |
221 | <div class="chatbox__item-photo"> | 221 | <div class="chatbox__item-photo"> |
222 | <svg> | 222 | <svg> |
223 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> | 223 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> |
224 | </svg> | 224 | </svg> |
225 | 225 | ||
226 | @if ($sender->is_worker) | 226 | @if ($sender->is_worker) |
227 | @if ((isset($sender->workers[0]->photo)) && | 227 | @if ((isset($sender->workers[0]->photo)) && |
228 | (!empty($sender->workers[0]->photo))) | 228 | (!empty($sender->workers[0]->photo))) |
229 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($sender->workers[0]->photo)) }}" alt=""> | 229 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($sender->workers[0]->photo)) }}" alt=""> |
230 | @else | 230 | @else |
231 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 231 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
232 | @endif | 232 | @endif |
233 | @else | 233 | @else |
234 | @if ((isset($sender->employers[0]->logo)) && | 234 | @if ((isset($sender->employers[0]->logo)) && |
235 | (!empty($sender->employers[0]->logo))) | 235 | (!empty($sender->employers[0]->logo))) |
236 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($sender->employers[0]->logo)) }}" alt=""> | 236 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($sender->employers[0]->logo)) }}" alt=""> |
237 | @else | 237 | @else |
238 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 238 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
239 | @endif | 239 | @endif |
240 | @endif | 240 | @endif |
241 | 241 | ||
242 | </div> | 242 | </div> |
243 | <div class="chatbox__item-body"> | 243 | <div class="chatbox__item-body"> |
244 | @if($it->text) | 244 | @if($it->text) |
245 | <div class="chatbox__item-text"> | 245 | <div class="chatbox__item-text"> |
246 | @if($it->ad_employer_id > 0) | 246 | @if(\App\Models\Ad_employer::where('id', $it->ad_employer_id)->exists()) |
247 | <b>Отклик на вакансию</b> "{{ \App\Models\Ad_employer::find($it->ad_employer_id)->name }}"<br> | 247 | <b>Отклик на вакансию</b> "{{ \App\Models\Ad_employer::find($it->ad_employer_id)->name }}"<br> |
248 | @if($it->text) | 248 | @if($it->text) |
249 | <b>Комментарий:</b> {{ $it->text }} | 249 | <b>Комментарий:</b> {{ $it->text }} |
250 | @endif | 250 | @endif |
251 | @else | 251 | @else |
252 | @if($it->text) | 252 | @if($it->text) |
253 | {{ $it->text }} | 253 | {{ $it->text }} |
254 | @endif | 254 | @endif |
255 | @endif</div> | 255 | @endif</div> |
256 | @endif | 256 | @endif |
257 | @if ((isset($it->file)) && (!empty($it->file))) | 257 | @if ((isset($it->file)) && (!empty($it->file))) |
258 | <div class="chatbox__item-text chatbox__item-body-file-name-wrap"> | 258 | <div class="chatbox__item-text chatbox__item-body-file-name-wrap"> |
259 | <a href="{{ asset(Storage::url($it->file)) }}" class=""> | 259 | <a href="{{ asset(Storage::url($it->file)) }}" class=""> |
260 | Скачать | 260 | Скачать |
261 | </a> | 261 | </a> |
262 | <div class=""> | 262 | <div class=""> |
263 | @if($it->original_file_name) | 263 | @if($it->original_file_name) |
264 | {{ $it->original_file_name }} | 264 | {{ $it->original_file_name }} |
265 | @else | 265 | @else |
266 | <svg> | 266 | <svg> |
267 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> | 267 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> |
268 | </svg> | 268 | </svg> |
269 | @endif | 269 | @endif |
270 | </div> | 270 | </div> |
271 | </div> | 271 | </div> |
272 | @endif | 272 | @endif |
273 | </div> | 273 | </div> |
274 | <div class="chatbox__item-time">{{ $it->created_at }}</div> | 274 | <div class="chatbox__item-time">{{ $it->created_at }}</div> |
275 | </div> | 275 | </div> |
276 | @endif | 276 | @endif |
277 | 277 | ||
278 | @endforeach | 278 | @endforeach |
279 | @endif | 279 | @endif |
280 | </div> | 280 | </div> |
281 | <div> | 281 | <div> |
282 | <form action="{{ route('employer.test123') }}" class="chatbox__bottom" enctype="multipart/form-data" method="POST" > | 282 | <form action="{{ route('employer.test123') }}" class="chatbox__bottom" enctype="multipart/form-data" method="POST" > |
283 | @csrf | 283 | @csrf |
284 | <label class="chatbox__bottom-file"> | 284 | <label class="chatbox__bottom-file"> |
285 | <input id="file" name="file" type="file"> | 285 | <input id="file" name="file" type="file"> |
286 | <svg> | 286 | <svg> |
287 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> | 287 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> |
288 | </svg> | 288 | </svg> |
289 | </label> | 289 | </label> |
290 | <input type="hidden" name="_token" value="{{ csrf_token() }}"/> | 290 | <input type="hidden" name="_token" value="{{ csrf_token() }}"/> |
291 | <input type="hidden" id="user_id" name="user_id" value="{{ $sender->id }}"/> | 291 | <input type="hidden" id="user_id" name="user_id" value="{{ $sender->id }}"/> |
292 | <input type="hidden" id="to_user_id" name="to_user_id" value="{{ $companion->id }}"/> | 292 | <input type="hidden" id="to_user_id" name="to_user_id" value="{{ $companion->id }}"/> |
293 | <input type="hidden" id="ad_employer_id" name="ad_employer_id" value="{{ $ad_employer }}"/> | 293 | <input type="hidden" id="ad_employer_id" name="ad_employer_id" value="{{ $ad_employer }}"/> |
294 | <input type="hidden" id="ad_name" name="ad_name" value="@if (isset($_GET['ad_name'])){{ $_GET['ad_name'] }} @endif"/> | 294 | <input type="hidden" id="ad_name" name="ad_name" value="@if (isset($_GET['ad_name'])){{ $_GET['ad_name'] }} @endif"/> |
295 | <input id="text" name="text" type="text" class="input chatbox__bottom-text" placeholder="Ответить"> | 295 | <input id="text" name="text" type="text" class="input chatbox__bottom-text" placeholder="Ответить"> |
296 | <button type="submit" id="send_btn" name="send_btn" class="chatbox__bottom-send"> | 296 | <button type="submit" id="send_btn" name="send_btn" class="chatbox__bottom-send"> |
297 | <svg> | 297 | <svg> |
298 | <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> | 298 | <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> |
299 | </svg> | 299 | </svg> |
300 | </button> | 300 | </button> |
301 | </form> | 301 | </form> |
302 | <div class="chatbox-file-name-wrap mt-5 fw600"></div> | 302 | <div class="chatbox-file-name-wrap mt-5 fw600"></div> |
303 | </div> | 303 | </div> |
304 | </div> | 304 | </div> |
305 | </div> | 305 | </div> |
306 | </div> | 306 | </div> |
307 | </div> | 307 | </div> |
308 | </div> | 308 | </div> |
309 | </section> | 309 | </section> |
310 | </div> | 310 | </div> |
311 | @endsection | 311 | @endsection |
312 | 312 |
resources/views/employers/vacancy_autolift.blade.php
1 | @extends('layout.frontend', ['title' => 'Автоподнятие вакансий']) | 1 | @extends('layout.frontend', ['title' => 'Автоподнятие вакансий']) |
2 | @section('scripts') | 2 | @section('scripts') |
3 | <script> | 3 | <script> |
4 | $(document).on('click', '#submit', function () { | 4 | $(document).on('click', '#submit', function () { |
5 | let data = {}; | 5 | let data = {}; |
6 | data.is_enabled = $('[name="is_enabled"]').val(); | 6 | data.is_enabled = document.querySelector('.js_autoraise_toggle').checked; |
7 | data.times_per_day = $('[name="times_per_day"]').chosen().val(); | 7 | data.times_per_day = $('[name="times_per_day"]').chosen().val(); |
8 | data.days_repeat = $('[name="days_repeat"]').chosen().val(); | 8 | data.days_repeat = $('[name="days_repeat"]').chosen().val(); |
9 | data.time_send_first = $('[name="time_send_first"]').val(); | 9 | data.time_send_first = $('[name="time_send_first"]').val(); |
10 | data.time_send_second = $('[name="time_send_second"]').val(); | 10 | data.time_send_second = $('[name="time_send_second"]').val(); |
11 | data.time_send_third = $('[name="time_send_third"]').val(); | 11 | data.time_send_third = $('[name="time_send_third"]').val(); |
12 | data.time_send_tg = $('[name="time_send_tg"]').val(); | 12 | data.time_send_tg = $('[name="time_send_tg"]').val(); |
13 | 13 | ||
14 | data.vacancies = []; | 14 | data.vacancies = []; |
15 | 15 | ||
16 | document.getElementsByName('vacancy_table_row').forEach(function(field) { | 16 | document.getElementsByName('vacancy_table_row').forEach(function(field) { |
17 | data.vacancies.push({ | 17 | data.vacancies.push({ |
18 | 'id': field.dataset.id, | 18 | 'id': field.dataset.id, |
19 | 'autolift_site': field.querySelector('input[name="autolift_site"]').checked, | 19 | 'autolift_site': field.querySelector('input[name="autolift_site"]').checked, |
20 | 'autosend_tg': field.querySelector('input[name="autosend_tg"]').checked | 20 | 'autosend_tg': field.querySelector('input[name="autosend_tg"]').checked |
21 | }) | 21 | }) |
22 | }); | 22 | }); |
23 | 23 | ||
24 | $.ajax({ | 24 | $.ajax({ |
25 | url: '{{ route('employer.autolift_save') }}', | 25 | url: '{{ route('employer.autolift_save') }}', |
26 | type: 'POST', | 26 | type: 'POST', |
27 | data: data, | 27 | data: data, |
28 | headers: { | 28 | headers: { |
29 | 'X-CSRF-TOKEN': '{{ csrf_token() }}' | 29 | 'X-CSRF-TOKEN': '{{ csrf_token() }}' |
30 | }, | 30 | }, |
31 | success: function (result) { | 31 | success: function (result) { |
32 | location.reload(); | 32 | location.reload(); |
33 | }, | 33 | }, |
34 | error: function (result) { | 34 | error: function (result) { |
35 | //todo пульнуть какуюнить модалку | 35 | //todo пульнуть какуюнить модалку |
36 | }, | 36 | }, |
37 | }); | 37 | }); |
38 | }) | 38 | }) |
39 | </script> | 39 | </script> |
40 | @endsection | 40 | @endsection |
41 | @section('content') | 41 | @section('content') |
42 | <section class="cabinet"> | 42 | <section class="cabinet"> |
43 | <div class="container"> | 43 | <div class="container"> |
44 | <ul class="breadcrumbs cabinet__breadcrumbs"> | 44 | <ul class="breadcrumbs cabinet__breadcrumbs"> |
45 | <li><a href="{{ route('index') }}">Главная</a></li> | 45 | <li><a href="{{ route('index') }}">Главная</a></li> |
46 | <li><b>Личный кабинет</b></li> | 46 | <li><b>Личный кабинет</b></li> |
47 | </ul> | 47 | </ul> |
48 | <div class="cabinet__wrapper"> | 48 | <div class="cabinet__wrapper"> |
49 | <div class="cabinet__side"> | 49 | <div class="cabinet__side"> |
50 | <div class="cabinet__side-toper"> | 50 | <div class="cabinet__side-toper"> |
51 | @include('employers.emblema') | 51 | @include('employers.emblema') |
52 | </div> | 52 | </div> |
53 | @include('employers.menu', ['item' => 15]) | 53 | @include('employers.menu', ['item' => 15]) |
54 | </div> | 54 | </div> |
55 | <form class="cabinet__body"> | 55 | <form class="cabinet__body"> |
56 | @csrf | 56 | @csrf |
57 | <div class="cabinet__body-item"> | 57 | <div class="cabinet__body-item"> |
58 | <h2 class="title cabinet__title">Автоподнятие вакансий</h2> | 58 | <h2 class="title cabinet__title">Автоподнятие вакансий</h2> |
59 | <div class="cabinet__inputs"> | 59 | <div class="cabinet__inputs"> |
60 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth"> | 60 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth"> |
61 | <?php | 61 | <?php |
62 | $createdAtClone = isset($options->created_at) ? clone($options->created_at) : now(); | 62 | $createdAtClone = isset($options->created_at) ? clone($options->created_at) : now(); |
63 | $diff = $createdAtClone->addDays($options->days_repeat)->diffInDays($options->created_at); | 63 | $diff = $createdAtClone->addDays($options->days_repeat)->diffInDays($options->created_at); |
64 | ?> | 64 | ?> |
65 | <label class="toggle"> | 65 | <label class="toggle"> |
66 | <input type="checkbox" @if($options->is_enabled) checked disabled @endif class="toggle__input js_autoraise_toggle"> | 66 | <input name="is_enabled" type="checkbox" @if($options->is_enabled) checked disabled @endif class="toggle__input js_autoraise_toggle"> |
67 | <span class="toggle__icon"></span> | 67 | <span class="toggle__icon"></span> |
68 | <span class="toggle__text">Деактивировано</span> | 68 | <span class="toggle__text">Деактивировано</span> |
69 | <span class="toggle__text">Активировано</span> | 69 | <span class="toggle__text">Активировано</span> |
70 | </label> | 70 | </label> |
71 | <p class="mod js_autoraise_prompt @if($options->is_enabled === 1) hidden @endif">Срок действия автоподнятия вакансии истек. Желаете его возобновить?</p> | 71 | <p class="mod js_autoraise_prompt @if($options->is_enabled === 1) hidden @endif">Срок действия автоподнятия вакансии истек. Желаете его возобновить?</p> |
72 | <p class="mod js_autoraise_prompt @if($options->is_enabled === 0) hidden @endif">Автоподнятие вакансии продолжит действовать в течение следующих дней: <span>{{$diff}}</span></p> | 72 | <p class="mod js_autoraise_prompt @if($options->is_enabled === 0) hidden @endif">Автоподнятие вакансии продолжит действовать в течение следующих дней: <span>{{$diff}}</span></p> |
73 | </div> | 73 | </div> |
74 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> | 74 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> |
75 | <label class="form-group__label">Сколько раз в день необходимо обновлять | 75 | <label class="form-group__label">Сколько раз в день необходимо обновлять |
76 | вакансии?</label> | 76 | вакансии?</label> |
77 | <div class="form-group__item"> | 77 | <div class="form-group__item"> |
78 | <div class="select"> | 78 | <div class="select"> |
79 | <select name="times_per_day" class="js-select2 js_autoraise_select"> | 79 | <select name="times_per_day" class="js-select2 js_autoraise_select"> |
80 | <option @if($options['times_per_day'] === null) selected @endif disabled>Выберите вариант из списка</option> | 80 | <option @if($options['times_per_day'] === null) selected @endif disabled>Выберите вариант из списка</option> |
81 | <option @if($options['times_per_day'] === 1) selected @endif value="1">1 раз</option> | 81 | <option @if($options['times_per_day'] === 1) selected @endif value="1">1 раз</option> |
82 | <option @if($options['times_per_day'] === 2) selected @endif value="2">2 раза</option> | 82 | <option @if($options['times_per_day'] === 2) selected @endif value="2">2 раза</option> |
83 | <option @if($options['times_per_day'] === 3) selected @endif value="3">3 раза</option> | 83 | <option @if($options['times_per_day'] === 3) selected @endif value="3">3 раза</option> |
84 | </select> | 84 | </select> |
85 | </div> | 85 | </div> |
86 | </div> | 86 | </div> |
87 | </div> | 87 | </div> |
88 | <label class="cabinet__inputs-item form-group"> | 88 | <label class="cabinet__inputs-item form-group"> |
89 | <div class="form-group__label">Выберите первое время обновления (по | 89 | <div class="form-group__label">Выберите первое время обновления (по |
90 | МСК)</div> | 90 | МСК)</div> |
91 | <div class="form-group__item"> | 91 | <div class="form-group__item"> |
92 | <span class="form-group__item-icon"> | 92 | <span class="form-group__item-icon"> |
93 | <svg> | 93 | <svg> |
94 | <use xlink:href="images/sprite.svg#date"></use> | 94 | <use xlink:href="images/sprite.svg#date"></use> |
95 | </svg> | 95 | </svg> |
96 | </span> | 96 | </span> |
97 | <input | 97 | <input |
98 | name="time_send_first" | 98 | name="time_send_first" |
99 | type="text" | 99 | type="text" |
100 | class="input js-picker input-picker" | 100 | class="input js-picker input-picker" |
101 | placeholder="Время" | 101 | placeholder="Время" |
102 | value="{{ $options['time_send_first'] }}" | 102 | value="{{ $options['time_send_first'] }}" |
103 | > | 103 | > |
104 | </div> | 104 | </div> |
105 | </label> | 105 | </label> |
106 | <label class="cabinet__inputs-item form-group"> | 106 | <label class="cabinet__inputs-item form-group"> |
107 | <div class="form-group__label">Выберите второе время обновления (по | 107 | <div class="form-group__label">Выберите второе время обновления (по |
108 | МСК)</div> | 108 | МСК)</div> |
109 | <div class="form-group__item"> | 109 | <div class="form-group__item"> |
110 | <span class="form-group__item-icon"> | 110 | <span class="form-group__item-icon"> |
111 | <svg> | 111 | <svg> |
112 | <use xlink:href="images/sprite.svg#date"></use> | 112 | <use xlink:href="images/sprite.svg#date"></use> |
113 | </svg> | 113 | </svg> |
114 | </span> | 114 | </span> |
115 | <input | 115 | <input |
116 | name="time_send_second" | 116 | name="time_send_second" |
117 | type="text" | 117 | type="text" |
118 | class="input js-picker input-picker" | 118 | class="input js-picker input-picker" |
119 | placeholder="Время" | 119 | placeholder="Время" |
120 | value="{{ $options['time_send_second'] }}" | 120 | value="{{ $options['time_send_second'] }}" |
121 | @if($options['times_per_day'] < 2) disabled @endif | 121 | @if($options['times_per_day'] < 2) disabled @endif |
122 | > | 122 | > |
123 | </div> | 123 | </div> |
124 | </label> | 124 | </label> |
125 | <label class="cabinet__inputs-item form-group"> | 125 | <label class="cabinet__inputs-item form-group"> |
126 | <div class="form-group__label">Выберите третье время обновления (по МСК)</div> | 126 | <div class="form-group__label">Выберите третье время обновления (по МСК)</div> |
127 | <div class="form-group__item"> | 127 | <div class="form-group__item"> |
128 | <span class="form-group__item-icon"> | 128 | <span class="form-group__item-icon"> |
129 | <svg> | 129 | <svg> |
130 | <use xlink:href="images/sprite.svg#date"></use> | 130 | <use xlink:href="images/sprite.svg#date"></use> |
131 | </svg> | 131 | </svg> |
132 | </span> | 132 | </span> |
133 | <input | 133 | <input |
134 | name="time_send_third" | 134 | name="time_send_third" |
135 | type="text" | 135 | type="text" |
136 | class="input js-picker input-picker" | 136 | class="input js-picker input-picker" |
137 | placeholder="Время" | 137 | placeholder="Время" |
138 | value="{{ $options['time_send_third'] }}" | 138 | value="{{ $options['time_send_third'] }}" |
139 | @if($options['times_per_day'] < 3) disabled @endif | 139 | @if($options['times_per_day'] < 3) disabled @endif |
140 | > | 140 | > |
141 | </div> | 141 | </div> |
142 | </label> | 142 | </label> |
143 | <label class="cabinet__inputs-item form-group"> | 143 | <label class="cabinet__inputs-item form-group"> |
144 | <div class="form-group__label">Выберите время отправки в телеграм (по МСК)</div> | 144 | <div class="form-group__label">Выберите время отправки в телеграм (по МСК)</div> |
145 | <div class="form-group__item"> | 145 | <div class="form-group__item"> |
146 | <span class="form-group__item-icon"> | 146 | <span class="form-group__item-icon"> |
147 | <svg> | 147 | <svg> |
148 | <use xlink:href="images/sprite.svg#date"></use> | 148 | <use xlink:href="images/sprite.svg#date"></use> |
149 | </svg> | 149 | </svg> |
150 | </span> | 150 | </span> |
151 | <input | 151 | <input |
152 | name="time_send_tg" | 152 | name="time_send_tg" |
153 | type="text" | 153 | type="text" |
154 | class="input js-picker" | 154 | class="input js-picker" |
155 | placeholder="Время" | 155 | placeholder="Время" |
156 | value="{{ $options['time_send_tg'] }}" | 156 | value="{{ $options['time_send_tg'] }}" |
157 | > | 157 | > |
158 | </div> | 158 | </div> |
159 | </label> | 159 | </label> |
160 | <div class="cabinet__inputs-item form-group"> | 160 | <div class="cabinet__inputs-item form-group"> |
161 | <label class="form-group__label">Выполнять это действие на протяжении</label> | 161 | <label class="form-group__label">Выполнять это действие на протяжении</label> |
162 | <div class="form-group__item"> | 162 | <div class="form-group__item"> |
163 | <div class="select"> | 163 | <div class="select"> |
164 | <select name="days_repeat" class="js-select2"> | 164 | <select name="days_repeat" class="js-select2"> |
165 | <option @if($options['days_repeat'] === null) selected @endif disabled>Выполнять это действие на протяжении</option> | 165 | <option @if($options['days_repeat'] === null) selected @endif disabled>Выполнять это действие на протяжении</option> |
166 | <option @if($options['days_repeat'] === 1) selected @endif value="1">1 день</option> | 166 | <option @if($options['days_repeat'] === 1) selected @endif value="1">1 день</option> |
167 | <option @if($options['days_repeat'] === 3) selected @endif value="3">3 дня</option> | 167 | <option @if($options['days_repeat'] === 3) selected @endif value="3">3 дня</option> |
168 | <option @if($options['days_repeat'] === 5) selected @endif value="5">5 дней</option> | 168 | <option @if($options['days_repeat'] === 5) selected @endif value="5">5 дней</option> |
169 | <option @if($options['days_repeat'] === 7) selected @endif value="7">7 дней</option> | 169 | <option @if($options['days_repeat'] === 7) selected @endif value="7">7 дней</option> |
170 | <option @if($options['days_repeat'] === 10) selected @endif value="10">10 дней</option> | 170 | <option @if($options['days_repeat'] === 10) selected @endif value="10">10 дней</option> |
171 | <option @if($options['days_repeat'] === 15) selected @endif value="15">15 дней</option> | 171 | <option @if($options['days_repeat'] === 15) selected @endif value="15">15 дней</option> |
172 | <option @if($options['days_repeat'] === 30) selected @endif value="30">30 дней</option> | 172 | <option @if($options['days_repeat'] === 30) selected @endif value="30">30 дней</option> |
173 | </select> | 173 | </select> |
174 | </div> | 174 | </div> |
175 | </div> | 175 | </div> |
176 | </div> | 176 | </div> |
177 | </div> | 177 | </div> |
178 | <div class="table table_spoiler"> | 178 | <div class="table table_spoiler"> |
179 | <button type="button" | 179 | <button type="button" |
180 | class="table__button js-toggle js-parent-toggle button button_light button_more"> | 180 | class="table__button js-toggle js-parent-toggle button button_light button_more"> |
181 | <span>Показать ещё</span> | 181 | <span>Показать ещё</span> |
182 | <span>Свернуть</span> | 182 | <span>Свернуть</span> |
183 | </button> | 183 | </button> |
184 | <div class="table__scroll"> | 184 | <div class="table__scroll"> |
185 | <div class="table__body table__body_min-width"> | 185 | <div class="table__body table__body_min-width"> |
186 | <table> | 186 | <table> |
187 | <thead> | 187 | <thead> |
188 | <tr> | 188 | <tr> |
189 | <th>Название</th> | 189 | <th>Название</th> |
190 | <th>Обновлять на сайте</th> | 190 | <th>Обновлять на сайте</th> |
191 | <th>Отправлять в ТГ</th> | 191 | <th>Отправлять в ТГ</th> |
192 | </tr> | 192 | </tr> |
193 | </thead> | 193 | </thead> |
194 | <tbody> | 194 | <tbody> |
195 | @foreach($vacancies as $vacancy) | 195 | @foreach($vacancies as $vacancy) |
196 | <tr name="vacancy_table_row" data-id="{{ $vacancy->id }}"> | 196 | <tr name="vacancy_table_row" data-id="{{ $vacancy->id }}"> |
197 | <td>{{ $vacancy->name }}</td> | 197 | <td>{{ $vacancy->name }}</td> |
198 | <td > | 198 | <td > |
199 | <span class="checkbox-empty"> | 199 | <span class="checkbox-empty"> |
200 | <label class="checkbox"> | 200 | <label class="checkbox"> |
201 | <input | 201 | <input |
202 | type="checkbox" | 202 | type="checkbox" |
203 | class="checkbox__input" | 203 | class="checkbox__input" |
204 | @if($vacancy->autolift_site) checked @endif | 204 | @if($vacancy->autolift_site) checked @endif |
205 | name="autolift_site" | 205 | name="autolift_site" |
206 | > | 206 | > |
207 | <span class="checkbox__icon"> | 207 | <span class="checkbox__icon"> |
208 | <svg> | 208 | <svg> |
209 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | 209 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> |
210 | </svg> | 210 | </svg> |
211 | </span> | 211 | </span> |
212 | </label> | 212 | </label> |
213 | </span> | 213 | </span> |
214 | </td> | 214 | </td> |
215 | <td> | 215 | <td> |
216 | <span class="checkbox-empty"> | 216 | <span class="checkbox-empty"> |
217 | <label class="checkbox"> | 217 | <label class="checkbox"> |
218 | <input | 218 | <input |
219 | type="checkbox" | 219 | type="checkbox" |
220 | class="checkbox__input" | 220 | class="checkbox__input" |
221 | @if($vacancy->autosend_tg) checked @endif | 221 | @if($vacancy->autosend_tg) checked @endif |
222 | name="autosend_tg" | 222 | name="autosend_tg" |
223 | > | 223 | > |
224 | <span class="checkbox__icon"> | 224 | <span class="checkbox__icon"> |
225 | <svg> | 225 | <svg> |
226 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | 226 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> |
227 | </svg> | 227 | </svg> |
228 | </span> | 228 | </span> |
229 | </label> | 229 | </label> |
230 | </span> | 230 | </span> |
231 | </td> | 231 | </td> |
232 | </tr> | 232 | </tr> |
233 | @endforeach | 233 | @endforeach |
234 | </tbody> | 234 | </tbody> |
235 | </table> | 235 | </table> |
236 | </div> | 236 | </div> |
237 | </div> | 237 | </div> |
238 | <div class="mrg-wrapper" style="display: flex; justify-content: center; clear: both;"> | 238 | <div class="mrg-wrapper" style="display: flex; justify-content: center; clear: both;"> |
239 | <ins class="mrg-tag" data-ad-client="ad-595528" data-ad-slot="595528" style="display: flex; align-items: center; justify-content: center; width: 300px; z-index: 1;"> | 239 | <ins class="mrg-tag" data-ad-client="ad-595528" data-ad-slot="595528" style="display: flex; align-items: center; justify-content: center; width: 300px; z-index: 1;"> |
240 | 240 | ||
241 | </ins> | 241 | </ins> |
242 | </div> | 242 | </div> |
243 | </div> | 243 | </div> |
244 | <div class="cabinet__inputs"> | 244 | <div class="cabinet__inputs"> |
245 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth"> | 245 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth"> |
246 | <button id="submit" type="button" class="button">Сохранить</button> | 246 | <button id="submit" type="button" class="button">Сохранить</button> |
247 | </div> | 247 | </div> |
248 | </div> | 248 | </div> |
249 | </div> | 249 | </div> |
250 | </form> | 250 | </form> |
251 | </div> | 251 | </div> |
252 | </div> | 252 | </div> |
253 | </section> | 253 | </section> |
254 | </div> | 254 | </div> |
255 | @endsection | 255 | @endsection |
256 | 256 |
resources/views/workers/dialog.blade.php
1 | @extends('layout.frontend', ['title' => 'Диалог-переписка - РекаМоре']) | 1 | @extends('layout.frontend', ['title' => 'Диалог-переписка - РекаМоре']) |
2 | 2 | ||
3 | @section('scripts') | 3 | @section('scripts') |
4 | <script> | 4 | <script> |
5 | $(function(){ | 5 | $(function(){ |
6 | var chatbox_div = $('.chatbox__list'); | 6 | var chatbox_div = $('.chatbox__list'); |
7 | chatbox_div.scrollTop(chatbox_div.prop("scrollHeight")); | 7 | chatbox_div.scrollTop(chatbox_div.prop("scrollHeight")); |
8 | 8 | ||
9 | $('form.chatbox__bottom [name="file"]').on('change', function() { | 9 | $('form.chatbox__bottom [name="file"]').on('change', function() { |
10 | var fileName = $(this).val().split('\\').pop(); | 10 | var fileName = $(this).val().split('\\').pop(); |
11 | $('.chatbox-file-name-wrap').text('Добавлен файл: ' + fileName); | 11 | $('.chatbox-file-name-wrap').text('Добавлен файл: ' + fileName); |
12 | }); | 12 | }); |
13 | 13 | ||
14 | $('.admin-chat-answer').click(function(){ | 14 | $('.admin-chat-answer').click(function(){ |
15 | var modal = $('#answer_from_admin_chat_modal'); | 15 | var modal = $('#answer_from_admin_chat_modal'); |
16 | 16 | ||
17 | modal.data('to-user-id', $(this).data('to-user-id')); | 17 | modal.data('to-user-id', $(this).data('to-user-id')); |
18 | modal.data('message-id', $(this).data('message-id')); | 18 | modal.data('message-id', $(this).data('message-id')); |
19 | }); | 19 | }); |
20 | }); | 20 | }); |
21 | 21 | ||
22 | $(document).on('change', '#send_btn', function() { | 22 | $(document).on('change', '#send_btn', function() { |
23 | var this_ = $(this); | 23 | var this_ = $(this); |
24 | var val_ = this_.val(); | 24 | var val_ = this_.val(); |
25 | console.log('sort items '+val_); | 25 | console.log('sort items '+val_); |
26 | 26 | ||
27 | $.ajax({ | 27 | $.ajax({ |
28 | type: "GET", | 28 | type: "GET", |
29 | url: "{{ route('shipping_companies') }}", | 29 | url: "{{ route('shipping_companies') }}", |
30 | data: "sort="+val_+"&block=1", | 30 | data: "sort="+val_+"&block=1", |
31 | success: function (data) { | 31 | success: function (data) { |
32 | console.log('Выбор сортировки'); | 32 | console.log('Выбор сортировки'); |
33 | console.log(data); | 33 | console.log(data); |
34 | $('#block_1').html(data); | 34 | $('#block_1').html(data); |
35 | }, | 35 | }, |
36 | headers: { | 36 | headers: { |
37 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 37 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
38 | }, | 38 | }, |
39 | error: function (data) { | 39 | error: function (data) { |
40 | data = JSON.stringify(data); | 40 | data = JSON.stringify(data); |
41 | console.log('Error: ' + data); | 41 | console.log('Error: ' + data); |
42 | } | 42 | } |
43 | }); | 43 | }); |
44 | 44 | ||
45 | $.ajax({ | 45 | $.ajax({ |
46 | type: "GET", | 46 | type: "GET", |
47 | url: "{{ route('shipping_companies') }}", | 47 | url: "{{ route('shipping_companies') }}", |
48 | data: "sort="+val_+"&block=2", | 48 | data: "sort="+val_+"&block=2", |
49 | success: function (data) { | 49 | success: function (data) { |
50 | console.log('Выбор сортировки2'); | 50 | console.log('Выбор сортировки2'); |
51 | console.log(data); | 51 | console.log(data); |
52 | history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); | 52 | history.pushState({}, '', "{{ route('shipping_companies') }}?sort="+val_+"@if (isset($_GET['page']))&page={{ $_GET['page'] }}@endif"); |
53 | $('#block_2').html(data); | 53 | $('#block_2').html(data); |
54 | }, | 54 | }, |
55 | headers: { | 55 | headers: { |
56 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 56 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
57 | }, | 57 | }, |
58 | error: function (data) { | 58 | error: function (data) { |
59 | data = JSON.stringify(data); | 59 | data = JSON.stringify(data); |
60 | console.log('Error: ' + data); | 60 | console.log('Error: ' + data); |
61 | } | 61 | } |
62 | }); | 62 | }); |
63 | }); | 63 | }); |
64 | </script> | 64 | </script> |
65 | @endsection | 65 | @endsection |
66 | 66 | ||
67 | @section('content') | 67 | @section('content') |
68 | <section class="cabinet"> | 68 | <section class="cabinet"> |
69 | <div class="container"> | 69 | <div class="container"> |
70 | <ul class="breadcrumbs cabinet__breadcrumbs"> | 70 | <ul class="breadcrumbs cabinet__breadcrumbs"> |
71 | <li><a href="{{ route('index') }}">Главная</a></li> | 71 | <li><a href="{{ route('index') }}">Главная</a></li> |
72 | <li><b>Личный кабинет</b></li> | 72 | <li><b>Личный кабинет</b></li> |
73 | </ul> | 73 | </ul> |
74 | <div class="cabinet__wrapper"> | 74 | <div class="cabinet__wrapper"> |
75 | <div class="cabinet__side"> | 75 | <div class="cabinet__side"> |
76 | <div class="cabinet__side-toper"> | 76 | <div class="cabinet__side-toper"> |
77 | @include('workers.emblema') | 77 | @include('workers.emblema') |
78 | </div> | 78 | </div> |
79 | @include('workers.menu', ['item' => 2]) | 79 | @include('workers.menu', ['item' => 2]) |
80 | </div> | 80 | </div> |
81 | <div class="cabinet__body"> | 81 | <div class="cabinet__body"> |
82 | <div class="cabinet__body-item"> | 82 | <div class="cabinet__body-item"> |
83 | <h2 class="title cabinet__title">Сообщения</h2> | 83 | <h2 class="title cabinet__title">Сообщения</h2> |
84 | </div> | 84 | </div> |
85 | <div class="cabinet__body-item"> | 85 | <div class="cabinet__body-item"> |
86 | <a href="{{ route('worker.messages', ['type_message' => 'input']) }}" class="back"> | 86 | <a href="{{ route('worker.messages', ['type_message' => 'input']) }}" class="back"> |
87 | <svg> | 87 | <svg> |
88 | <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> | 88 | <use xlink:href="{{ asset('images/sprite.svg#back') }}"></use> |
89 | </svg> | 89 | </svg> |
90 | <span> | 90 | <span> |
91 | К списку чатов | 91 | К списку чатов |
92 | </span> | 92 | </span> |
93 | </a> | 93 | </a> |
94 | <div class="chatbox"> | 94 | <div class="chatbox"> |
95 | <div class="chatbox__toper"> | 95 | <div class="chatbox__toper"> |
96 | @if($chat->is_admin_chat) | 96 | @if($chat->is_admin_chat) |
97 | <div class="chatbox__toper-info messages__item-info"> | 97 | <div class="chatbox__toper-info messages__item-info"> |
98 | @include('svg.logo_icon') | 98 | @include('svg.logo_icon') |
99 | <div class="messages__item-text bold font20"> | 99 | <div class="messages__item-text bold font20"> |
100 | Администратор сайта | 100 | Администратор сайта |
101 | </div> | 101 | </div> |
102 | </div> | 102 | </div> |
103 | @elseif ($companion->is_worker) | 103 | @elseif ($companion->is_worker) |
104 | <div class="chatbox__toper-info messages__item-info"> | 104 | <div class="chatbox__toper-info messages__item-info"> |
105 | <div class="messages__item-photo"> | 105 | <div class="messages__item-photo"> |
106 | <svg> | 106 | <svg> |
107 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> | 107 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> |
108 | </svg> | 108 | </svg> |
109 | @if ((isset($companion->workers[0]->photo)) && | 109 | @if ((isset($companion->workers[0]->photo)) && |
110 | (!empty($companion->workers[0]->photo))) | 110 | (!empty($companion->workers[0]->photo))) |
111 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->workers[0]->photo)) }}" alt=""> | 111 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->workers[0]->photo)) }}" alt=""> |
112 | @else | 112 | @else |
113 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 113 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
114 | @endif | 114 | @endif |
115 | </div> | 115 | </div> |
116 | </div> | 116 | </div> |
117 | @if (isset($companion->workers[0]->id)) | 117 | @if (isset($companion->workers[0]->id)) |
118 | <a href="{{ route('resume_profile', ['worker' => $companion->workers[0]->id]) }}" class="button chatbox__toper-button"> | 118 | <a href="{{ route('resume_profile', ['worker' => $companion->workers[0]->id]) }}" class="button chatbox__toper-button"> |
119 | <svg> | 119 | <svg> |
120 | <use xlink:href="{{ asset('images/sprite.svg#cabinet-1') }}"></use> | 120 | <use xlink:href="{{ asset('images/sprite.svg#cabinet-1') }}"></use> |
121 | </svg> | 121 | </svg> |
122 | Перейти в профиль | 122 | Перейти в профиль |
123 | </a> | 123 | </a> |
124 | @endif | 124 | @endif |
125 | @else | 125 | @else |
126 | <div class="chatbox__toper-info messages__item-info"> | 126 | <div class="chatbox__toper-info messages__item-info"> |
127 | <div class="messages__item-photo"> | 127 | <div class="messages__item-photo"> |
128 | <svg> | 128 | <svg> |
129 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> | 129 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> |
130 | </svg> | 130 | </svg> |
131 | @if ((isset($companion->employers[0]->logo)) && | 131 | @if ((isset($companion->employers[0]->logo)) && |
132 | (!empty($companion->employers[0]->logo))) | 132 | (!empty($companion->employers[0]->logo))) |
133 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->employers[0]->logo)) }}" alt=""> | 133 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->employers[0]->logo)) }}" alt=""> |
134 | @else | 134 | @else |
135 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 135 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
136 | @endif | 136 | @endif |
137 | </div> | 137 | </div> |
138 | <div class="messages__item-text"> | 138 | <div class="messages__item-text"> |
139 | <div>{{ $companion->surname." ".$companion->name_man." ".$companion->surname2." (".$companion->id.")" }} </div> | 139 | <div>{{ $companion->surname." ".$companion->name_man." ".$companion->surname2." (".$companion->id.")" }} </div> |
140 | <div><span>Статус:</span> Работодатель или Администратор</div> | 140 | <div><span>Статус:</span> Работодатель или Администратор</div> |
141 | </div> | 141 | </div> |
142 | </div> | 142 | </div> |
143 | @if (isset($companion->employers[0]->id)) | 143 | @if (isset($companion->employers[0]->id)) |
144 | <a href="{{ route('info_company', ['company' => $companion->employers[0]->id]) }}" class="button chatbox__toper-button"> | 144 | <a href="{{ route('info_company', ['company' => $companion->employers[0]->id]) }}" class="button chatbox__toper-button"> |
145 | <svg> | 145 | <svg> |
146 | <use xlink:href="{{ asset('images/sprite.svg#cabinet-1') }}"></use> | 146 | <use xlink:href="{{ asset('images/sprite.svg#cabinet-1') }}"></use> |
147 | </svg> | 147 | </svg> |
148 | Перейти в профиль | 148 | Перейти в профиль |
149 | </a> | 149 | </a> |
150 | @endif | 150 | @endif |
151 | @endif | 151 | @endif |
152 | </div> | 152 | </div> |
153 | 153 | ||
154 | @if ($errors->any()) | 154 | @if ($errors->any()) |
155 | <div class="red bold"> | 155 | <div class="red bold"> |
156 | <ul> | 156 | <ul> |
157 | @foreach ($errors->all() as $error) | 157 | @foreach ($errors->all() as $error) |
158 | <li>{{ $error }}</li> | 158 | <li>{{ $error }}</li> |
159 | @endforeach | 159 | @endforeach |
160 | </ul> | 160 | </ul> |
161 | </div> | 161 | </div> |
162 | @endif | 162 | @endif |
163 | 163 | ||
164 | <div class="chatbox__list" id="dialogs" name="dialogs"> | 164 | <div class="chatbox__list" id="dialogs" name="dialogs"> |
165 | @if ($Messages->count()) | 165 | @if ($Messages->count()) |
166 | @foreach ($Messages as $it) | 166 | @foreach ($Messages as $it) |
167 | @if ($it->user_id == $companion->id) | 167 | @if ($it->user_id == $companion->id) |
168 | <div class="chatbox__item"> | 168 | <div class="chatbox__item"> |
169 | <div class="chatbox__item-photo"> | 169 | <div class="chatbox__item-photo"> |
170 | <svg> | 170 | <svg> |
171 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> | 171 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> |
172 | </svg> | 172 | </svg> |
173 | @if($companion->is_worker) | 173 | @if($companion->is_worker) |
174 | @if ((isset($companion->workers[0]->photo)) && | 174 | @if ((isset($companion->workers[0]->photo)) && |
175 | (!empty($companion->workers[0]->photo))) | 175 | (!empty($companion->workers[0]->photo))) |
176 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->workers[0]->photo)) }}" alt=""> | 176 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->workers[0]->photo)) }}" alt=""> |
177 | @else | 177 | @else |
178 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 178 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
179 | @endif | 179 | @endif |
180 | @else | 180 | @else |
181 | @if ((isset($companion->employers[0]->logo)) && | 181 | @if ((isset($companion->employers[0]->logo)) && |
182 | (!empty($companion->employers[0]->logo))) | 182 | (!empty($companion->employers[0]->logo))) |
183 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->employers[0]->logo)) }}" alt=""> | 183 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($companion->employers[0]->logo)) }}" alt=""> |
184 | @else | 184 | @else |
185 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 185 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
186 | @endif | 186 | @endif |
187 | @endif | 187 | @endif |
188 | </div> | 188 | </div> |
189 | <div class="chatbox__item-body"> | 189 | <div class="chatbox__item-body"> |
190 | @if($it->ad_employer_id > 0) | 190 | @if(\App\Models\Ad_employer::where('id', $it->ad_employer_id)->exists()) |
191 | <div class="chatbox__item-text"> | 191 | <div class="chatbox__item-text"> |
192 | Отклик на вакансию {{ \App\Models\Ad_employer::find($it->ad_employer_id)->name }} | 192 | Отклик на вакансию {{ \App\Models\Ad_employer::find($it->ad_employer_id)->name }} |
193 | @if($it->text) | 193 | @if($it->text) |
194 | Комментарий: {{ $it->text }} | 194 | Комментарий: {{ $it->text }} |
195 | @endif | 195 | @endif |
196 | </div> | 196 | </div> |
197 | @else | 197 | @else |
198 | @if($it->text) | 198 | @if($it->text) |
199 | {{ $it->text }} | 199 | {{ $it->text }} |
200 | @endif | 200 | @endif |
201 | @endif | 201 | @endif |
202 | @if ((isset($it->file)) && (!empty($it->file))) | 202 | @if ((isset($it->file)) && (!empty($it->file))) |
203 | <div class="chatbox__item-text chatbox__item-body-file-name-wrap"> | 203 | <div class="chatbox__item-text chatbox__item-body-file-name-wrap"> |
204 | <div class=""> | 204 | <div class=""> |
205 | @if($it->original_file_name) | 205 | @if($it->original_file_name) |
206 | {{ $it->original_file_name }} | 206 | {{ $it->original_file_name }} |
207 | @else | 207 | @else |
208 | <svg> | 208 | <svg> |
209 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> | 209 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> |
210 | </svg> | 210 | </svg> |
211 | @endif | 211 | @endif |
212 | </div> | 212 | </div> |
213 | <a href="{{ asset(Storage::url($it->file)) }}" class=""> | 213 | <a href="{{ asset(Storage::url($it->file)) }}" class=""> |
214 | Скачать | 214 | Скачать |
215 | </a> | 215 | </a> |
216 | </div> | 216 | </div> |
217 | @endif | 217 | @endif |
218 | </div> | 218 | </div> |
219 | <div class="chatbox__item-time">{{ $it->created_at }}</div> | 219 | <div class="chatbox__item-time">{{ $it->created_at }}</div> |
220 | </div> | 220 | </div> |
221 | @else | 221 | @else |
222 | <div class="chatbox__item chatbox__item_reverse"> | 222 | <div class="chatbox__item chatbox__item_reverse"> |
223 | <div class="@if(!$chat->is_admin_chat) chatbox__item-photo @endif"> | 223 | <div class="@if(!$chat->is_admin_chat) chatbox__item-photo @endif"> |
224 | @if($chat->is_admin_chat) | 224 | @if($chat->is_admin_chat) |
225 | @include('svg.logo_icon') | 225 | @include('svg.logo_icon') |
226 | @else | 226 | @else |
227 | @if ($sender->is_worker) | 227 | @if ($sender->is_worker) |
228 | @if ((isset($sender->workers[0]->photo)) && | 228 | @if ((isset($sender->workers[0]->photo)) && |
229 | (!empty($sender->workers[0]->photo))) | 229 | (!empty($sender->workers[0]->photo))) |
230 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($sender->workers[0]->photo)) }}" alt=""> | 230 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($sender->workers[0]->photo)) }}" alt=""> |
231 | @else | 231 | @else |
232 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 232 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
233 | @endif | 233 | @endif |
234 | @else | 234 | @else |
235 | <svg> | 235 | <svg> |
236 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> | 236 | <use xlink:href="{{ asset('images/sprite.svg#pic') }}"></use> |
237 | </svg> | 237 | </svg> |
238 | 238 | ||
239 | @if ((isset($sender->employers[0]->logo)) && | 239 | @if ((isset($sender->employers[0]->logo)) && |
240 | (!empty($sender->employers[0]->logo))) | 240 | (!empty($sender->employers[0]->logo))) |
241 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($sender->employers[0]->logo)) }}" alt=""> | 241 | <img src="{{ asset(\Illuminate\Support\Facades\Storage::url($sender->employers[0]->logo)) }}" alt=""> |
242 | @else | 242 | @else |
243 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> | 243 | <img src="{{ asset('images/default_man.jpg') }}" alt=""> |
244 | @endif | 244 | @endif |
245 | @endif | 245 | @endif |
246 | @endif | 246 | @endif |
247 | </div> | 247 | </div> |
248 | <div class="chatbox__item-body"> | 248 | <div class="chatbox__item-body"> |
249 | @if($chat->is_admin_chat || $it->text || $it->reply_message_id || $it->ad_employer_id > 0) | 249 | @if($chat->is_admin_chat || $it->text || $it->reply_message_id || $it->ad_employer_id > 0) |
250 | <div class="chatbox__item-text"> | 250 | <div class="chatbox__item-text"> |
251 | @if($chat->is_admin_chat) | 251 | @if($chat->is_admin_chat) |
252 | <button class="button admin-chat-answer" data-fancybox data-src="#answer_from_admin_chat_modal" | 252 | <button class="button admin-chat-answer" data-fancybox data-src="#answer_from_admin_chat_modal" |
253 | data-to-user-id="{{ $it->user_id }}" data-message-id="{{ $it->id }}" | 253 | data-to-user-id="{{ $it->user_id }}" data-message-id="{{ $it->id }}" |
254 | > | 254 | > |
255 | Ответить | 255 | Ответить |
256 | </button> | 256 | </button> |
257 | @endif | 257 | @endif |
258 | 258 | ||
259 | @if(\App\Models\Ad_employer::where('id', $it->ad_employer_id)->exists())) | 259 | @if(\App\Models\Ad_employer::where('id', $it->ad_employer_id)->exists())) |
260 | <b>Отклик на вакансию</b> "{{ \App\Models\Ad_employer::find($it->ad_employer_id)->name }}"<br> | 260 | <b>Отклик на вакансию</b> "{{ \App\Models\Ad_employer::find($it->ad_employer_id)->name }}"<br> |
261 | @if($it->text) | 261 | @if($it->text) |
262 | <b>Комментарий:</b> {{ $it->text }} | 262 | <b>Комментарий:</b> {{ $it->text }} |
263 | @endif | 263 | @endif |
264 | @else | 264 | @else |
265 | @if($it->text) | 265 | @if($it->text) |
266 | {{ $it->text }} | 266 | {{ $it->text }} |
267 | @endif | 267 | @endif |
268 | @endif | 268 | @endif |
269 | 269 | ||
270 | @if($it->reply_message_id) | 270 | @if($it->reply_message_id) |
271 | <div class="reply-message"> | 271 | <div class="reply-message"> |
272 | {{ $it->reply_message->text }} | 272 | {{ $it->reply_message->text }} |
273 | </div> | 273 | </div> |
274 | @endif | 274 | @endif |
275 | </div> | 275 | </div> |
276 | @endif | 276 | @endif |
277 | @if ((isset($it->file)) && (!empty($it->file))) | 277 | @if ((isset($it->file)) && (!empty($it->file))) |
278 | <div class="chatbox__item-text chatbox__item-body-file-name-wrap"> | 278 | <div class="chatbox__item-text chatbox__item-body-file-name-wrap"> |
279 | <a href="{{ asset(Storage::url($it->file)) }}" class=""> | 279 | <a href="{{ asset(Storage::url($it->file)) }}" class=""> |
280 | Скачать | 280 | Скачать |
281 | </a> | 281 | </a> |
282 | <div class=""> | 282 | <div class=""> |
283 | @if($it->original_file_name) | 283 | @if($it->original_file_name) |
284 | {{ $it->original_file_name }} | 284 | {{ $it->original_file_name }} |
285 | @else | 285 | @else |
286 | <svg> | 286 | <svg> |
287 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> | 287 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> |
288 | </svg> | 288 | </svg> |
289 | @endif | 289 | @endif |
290 | </div> | 290 | </div> |
291 | </div> | 291 | </div> |
292 | @endif | 292 | @endif |
293 | </div> | 293 | </div> |
294 | <div class="chatbox__item-time">{{ $it->created_at }}</div> | 294 | <div class="chatbox__item-time">{{ $it->created_at }}</div> |
295 | </div> | 295 | </div> |
296 | @endif | 296 | @endif |
297 | 297 | ||
298 | @endforeach | 298 | @endforeach |
299 | @endif | 299 | @endif |
300 | </div> | 300 | </div> |
301 | @if(!$chat->is_admin_chat) | 301 | @if(!$chat->is_admin_chat) |
302 | <div> | 302 | <div> |
303 | <form action="{{ route('worker.test123') }}" class="chatbox__bottom" enctype="multipart/form-data" method="POST" > | 303 | <form action="{{ route('worker.test123') }}" class="chatbox__bottom" enctype="multipart/form-data" method="POST" > |
304 | @csrf | 304 | @csrf |
305 | <label class="chatbox__bottom-file"> | 305 | <label class="chatbox__bottom-file"> |
306 | <input id="file" name="file" type="file"> | 306 | <input id="file" name="file" type="file"> |
307 | <svg> | 307 | <svg> |
308 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> | 308 | <use xlink:href="{{ asset('images/sprite.svg#clip') }}"></use> |
309 | </svg> | 309 | </svg> |
310 | </label> | 310 | </label> |
311 | <input type="hidden" name="_token" value="{{ csrf_token() }}"/> | 311 | <input type="hidden" name="_token" value="{{ csrf_token() }}"/> |
312 | <input type="hidden" id="user_id" name="user_id" value="{{ $sender->id }}"/> | 312 | <input type="hidden" id="user_id" name="user_id" value="{{ $sender->id }}"/> |
313 | <input type="hidden" id="to_user_id" name="to_user_id" value="{{ $companion->id }}"/> | 313 | <input type="hidden" id="to_user_id" name="to_user_id" value="{{ $companion->id }}"/> |
314 | <input type="hidden" id="ad_employer_id" name="ad_employer_id" value="{{ $ad_employer }}"/> | 314 | <input type="hidden" id="ad_employer_id" name="ad_employer_id" value="{{ $ad_employer }}"/> |
315 | <input type="hidden" id="ad_name" name="ad_name" value="@if (isset($_GET['ad_name'])){{ $_GET['ad_name'] }} @endif"/> | 315 | <input type="hidden" id="ad_name" name="ad_name" value="@if (isset($_GET['ad_name'])){{ $_GET['ad_name'] }} @endif"/> |
316 | <input id="text" name="text" type="text" class="input chatbox__bottom-text" placeholder="Ответить"> | 316 | <input id="text" name="text" type="text" class="input chatbox__bottom-text" placeholder="Ответить"> |
317 | <button type="submit" id="send_btn" name="send_btn" class="chatbox__bottom-send"> | 317 | <button type="submit" id="send_btn" name="send_btn" class="chatbox__bottom-send"> |
318 | <svg> | 318 | <svg> |
319 | <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> | 319 | <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> |
320 | </svg> | 320 | </svg> |
321 | </button> | 321 | </button> |
322 | </form> | 322 | </form> |
323 | <div class="chatbox-file-name-wrap mt-5 fw600"></div> | 323 | <div class="chatbox-file-name-wrap mt-5 fw600"></div> |
324 | </div> | 324 | </div> |
325 | @endif | 325 | @endif |
326 | </div> | 326 | </div> |
327 | </div> | 327 | </div> |
328 | </div> | 328 | </div> |
329 | </div> | 329 | </div> |
330 | </div> | 330 | </div> |
331 | </section> | 331 | </section> |
332 | </div> | 332 | </div> |
333 | 333 | ||
334 | @include('modals.chats.answer_from_admin_chat') | 334 | @include('modals.chats.answer_from_admin_chat') |
335 | @endsection | 335 | @endsection |
336 | 336 |
resources/views/workers/resume_autolift.blade.php
1 | @extends('layout.frontend', ['title' => 'Автоподнятие вакансий']) | 1 | @extends('layout.frontend', ['title' => 'Автоподнятие вакансий']) |
2 | @section('scripts') | 2 | @section('scripts') |
3 | <script> | 3 | <script> |
4 | $(document).on('click', '#submit', function () { | 4 | $(document).on('click', '#submit', function () { |
5 | let data = {}; | 5 | let data = {}; |
6 | data.is_enabled = $('[name="is_enabled"]').val(); | 6 | data.is_enabled = document.querySelector('.js_autoraise_toggle').checked; |
7 | data.times_per_day = $('[name="times_per_day"]').chosen().val(); | 7 | data.times_per_day = $('[name="times_per_day"]').chosen().val(); |
8 | data.days_repeat = $('[name="days_repeat"]').chosen().val(); | 8 | data.days_repeat = $('[name="days_repeat"]').chosen().val(); |
9 | data.time_send_first = $('[name="time_send_first"]').val(); | 9 | data.time_send_first = $('[name="time_send_first"]').val(); |
10 | data.time_send_second = $('[name="time_send_second"]').val(); | 10 | data.time_send_second = $('[name="time_send_second"]').val(); |
11 | data.time_send_third = $('[name="time_send_third"]').val(); | 11 | data.time_send_third = $('[name="time_send_third"]').val(); |
12 | data.autolift_site = $('[name="autolift_site"]').val(); | 12 | data.autolift_site = $('[name="autolift_site"]').val(); |
13 | 13 | ||
14 | $.ajax({ | 14 | $.ajax({ |
15 | url: '{{ route('worker.autolift_save') }}', | 15 | url: '{{ route('worker.autolift_save') }}', |
16 | type: 'POST', | 16 | type: 'POST', |
17 | data: data, | 17 | data: data, |
18 | headers: { | 18 | headers: { |
19 | 'X-CSRF-TOKEN': '{{ csrf_token() }}' | 19 | 'X-CSRF-TOKEN': '{{ csrf_token() }}' |
20 | }, | 20 | }, |
21 | success: function (result) { | 21 | success: function (result) { |
22 | location.reload(); | 22 | location.reload(); |
23 | }, | 23 | }, |
24 | error: function (result) { | 24 | error: function (result) { |
25 | //todo пульнуть какуюнить модалку | 25 | //todo пульнуть какуюнить модалку |
26 | }, | 26 | }, |
27 | }); | 27 | }); |
28 | }) | 28 | }) |
29 | </script> | 29 | </script> |
30 | @endsection | 30 | @endsection |
31 | @section('content') | 31 | @section('content') |
32 | <section class="cabinet"> | 32 | <section class="cabinet"> |
33 | <div class="container"> | 33 | <div class="container"> |
34 | <ul class="breadcrumbs cabinet__breadcrumbs"> | 34 | <ul class="breadcrumbs cabinet__breadcrumbs"> |
35 | <li><a href="{{ route('index') }}">Главная</a></li> | 35 | <li><a href="{{ route('index') }}">Главная</a></li> |
36 | <li><b>Личный кабинет</b></li> | 36 | <li><b>Личный кабинет</b></li> |
37 | </ul> | 37 | </ul> |
38 | <div class="cabinet__wrapper"> | 38 | <div class="cabinet__wrapper"> |
39 | <div class="cabinet__side"> | 39 | <div class="cabinet__side"> |
40 | <div class="cabinet__side-toper"> | 40 | <div class="cabinet__side-toper"> |
41 | @include('workers.emblema') | 41 | @include('workers.emblema') |
42 | </div> | 42 | </div> |
43 | @include('workers.menu', ['item' => 15]) | 43 | @include('workers.menu', ['item' => 15]) |
44 | </div> | 44 | </div> |
45 | <form class="cabinet__body"> | 45 | <form class="cabinet__body"> |
46 | @csrf | 46 | @csrf |
47 | <div class="cabinet__body-item"> | 47 | <div class="cabinet__body-item"> |
48 | <h2 class="title cabinet__title">Автоподнятие вакансий</h2> | 48 | <h2 class="title cabinet__title">Автоподнятие вакансий</h2> |
49 | <div class="cabinet__inputs"> | 49 | <div class="cabinet__inputs"> |
50 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth"> | 50 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth"> |
51 | <?php | 51 | <?php |
52 | $createdAtClone = isset($options->created_at) ? clone($options->created_at) : now(); | 52 | $createdAtClone = isset($options->created_at) ? clone($options->created_at) : now(); |
53 | $diff = $createdAtClone->addDays($options->days_repeat)->diffInDays($options->created_at); | 53 | $diff = $createdAtClone->addDays($options->days_repeat)->diffInDays($options->created_at); |
54 | ?> | 54 | ?> |
55 | <label class="toggle"> | 55 | <label class="toggle"> |
56 | <input name="is_enabled" type="checkbox" @if($options->is_enabled) checked disabled @endif class="toggle__input js_autoraise_toggle"> | 56 | <input name="is_enabled" type="checkbox" @if($options->is_enabled) checked disabled @endif class="toggle__input js_autoraise_toggle"> |
57 | <span class="toggle__icon"></span> | 57 | <span class="toggle__icon"></span> |
58 | <span class="toggle__text">Деактивировано</span> | 58 | <span class="toggle__text">Деактивировано</span> |
59 | <span class="toggle__text">Активировано</span> | 59 | <span class="toggle__text">Активировано</span> |
60 | </label> | 60 | </label> |
61 | <p class="mod js_autoraise_prompt @if($options->is_enabled === 1) hidden @endif">Срок действия автоподнятия резюме истек. Желаете его возобновить?</p> | 61 | <p class="mod js_autoraise_prompt @if($options->is_enabled === 1) hidden @endif">Срок действия автоподнятия резюме истек. Желаете его возобновить?</p> |
62 | <p class="mod js_autoraise_prompt @if($options->is_enabled === 0) hidden @endif">Автоподнятие резюме продолжит действовать в течение следующих дней: <span>{{$diff}}</span></p> | 62 | <p class="mod js_autoraise_prompt @if($options->is_enabled === 0) hidden @endif">Автоподнятие резюме продолжит действовать в течение следующих дней: <span>{{$diff}}</span></p> |
63 | </div> | 63 | </div> |
64 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> | 64 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth form-group"> |
65 | <label class="form-group__label">Сколько раз в день необходимо обновлять | 65 | <label class="form-group__label">Сколько раз в день необходимо обновлять |
66 | вакансии?</label> | 66 | вакансии?</label> |
67 | <div class="form-group__item"> | 67 | <div class="form-group__item"> |
68 | <div class="select"> | 68 | <div class="select"> |
69 | <select name="times_per_day" class="js-select2 js_autoraise_select"> | 69 | <select name="times_per_day" class="js-select2 js_autoraise_select"> |
70 | <option @if($options['times_per_day'] === null) selected @endif disabled>Выберите вариант из списка</option> | 70 | <option @if($options['times_per_day'] === null) selected @endif disabled>Выберите вариант из списка</option> |
71 | <option @if($options['times_per_day'] === 1) selected @endif value="1">1 раз</option> | 71 | <option @if($options['times_per_day'] === 1) selected @endif value="1">1 раз</option> |
72 | <option @if($options['times_per_day'] === 2) selected @endif value="2">2 раза</option> | 72 | <option @if($options['times_per_day'] === 2) selected @endif value="2">2 раза</option> |
73 | <option @if($options['times_per_day'] === 3) selected @endif value="3">3 раза</option> | 73 | <option @if($options['times_per_day'] === 3) selected @endif value="3">3 раза</option> |
74 | </select> | 74 | </select> |
75 | </div> | 75 | </div> |
76 | </div> | 76 | </div> |
77 | </div> | 77 | </div> |
78 | <label class="cabinet__inputs-item form-group"> | 78 | <label class="cabinet__inputs-item form-group"> |
79 | <div class="form-group__label">Выберите первое время обновления (по | 79 | <div class="form-group__label">Выберите первое время обновления (по |
80 | МСК)</div> | 80 | МСК)</div> |
81 | <div class="form-group__item"> | 81 | <div class="form-group__item"> |
82 | <span class="form-group__item-icon"> | 82 | <span class="form-group__item-icon"> |
83 | <svg> | 83 | <svg> |
84 | <use xlink:href="images/sprite.svg#date"></use> | 84 | <use xlink:href="images/sprite.svg#date"></use> |
85 | </svg> | 85 | </svg> |
86 | </span> | 86 | </span> |
87 | <input | 87 | <input |
88 | name="time_send_first" | 88 | name="time_send_first" |
89 | type="text" | 89 | type="text" |
90 | class="input js-picker input-picker" | 90 | class="input js-picker input-picker" |
91 | placeholder="Время" | 91 | placeholder="Время" |
92 | value="{{ $options['time_send_first'] }}" | 92 | value="{{ $options['time_send_first'] }}" |
93 | > | 93 | > |
94 | </div> | 94 | </div> |
95 | </label> | 95 | </label> |
96 | <label class="cabinet__inputs-item form-group"> | 96 | <label class="cabinet__inputs-item form-group"> |
97 | <div class="form-group__label">Выберите второе время обновления (по | 97 | <div class="form-group__label">Выберите второе время обновления (по |
98 | МСК)</div> | 98 | МСК)</div> |
99 | <div class="form-group__item"> | 99 | <div class="form-group__item"> |
100 | <span class="form-group__item-icon"> | 100 | <span class="form-group__item-icon"> |
101 | <svg> | 101 | <svg> |
102 | <use xlink:href="images/sprite.svg#date"></use> | 102 | <use xlink:href="images/sprite.svg#date"></use> |
103 | </svg> | 103 | </svg> |
104 | </span> | 104 | </span> |
105 | <input | 105 | <input |
106 | name="time_send_second" | 106 | name="time_send_second" |
107 | type="text" | 107 | type="text" |
108 | class="input js-picker input-picker" | 108 | class="input js-picker input-picker" |
109 | placeholder="Время" | 109 | placeholder="Время" |
110 | value="{{ $options['time_send_second'] }}" | 110 | value="{{ $options['time_send_second'] }}" |
111 | @if($options['times_per_day'] < 2) disabled @endif | 111 | @if($options['times_per_day'] < 2) disabled @endif |
112 | > | 112 | > |
113 | </div> | 113 | </div> |
114 | </label> | 114 | </label> |
115 | <label class="cabinet__inputs-item form-group"> | 115 | <label class="cabinet__inputs-item form-group"> |
116 | <div class="form-group__label">Выберите третье время обновления (по МСК)</div> | 116 | <div class="form-group__label">Выберите третье время обновления (по МСК)</div> |
117 | <div class="form-group__item"> | 117 | <div class="form-group__item"> |
118 | <span class="form-group__item-icon"> | 118 | <span class="form-group__item-icon"> |
119 | <svg> | 119 | <svg> |
120 | <use xlink:href="images/sprite.svg#date"></use> | 120 | <use xlink:href="images/sprite.svg#date"></use> |
121 | </svg> | 121 | </svg> |
122 | </span> | 122 | </span> |
123 | <input | 123 | <input |
124 | name="time_send_third" | 124 | name="time_send_third" |
125 | type="text" | 125 | type="text" |
126 | class="input js-picker input-picker" | 126 | class="input js-picker input-picker" |
127 | placeholder="Время" | 127 | placeholder="Время" |
128 | value="{{ $options['time_send_third'] }}" | 128 | value="{{ $options['time_send_third'] }}" |
129 | @if($options['times_per_day'] < 3) disabled @endif | 129 | @if($options['times_per_day'] < 3) disabled @endif |
130 | > | 130 | > |
131 | </div> | 131 | </div> |
132 | </label> | 132 | </label> |
133 | <div class="cabinet__inputs-item form-group"> | 133 | <div class="cabinet__inputs-item form-group"> |
134 | <label class="form-group__label">Выполнять это действие на протяжении</label> | 134 | <label class="form-group__label">Выполнять это действие на протяжении</label> |
135 | <div class="form-group__item"> | 135 | <div class="form-group__item"> |
136 | <div class="select"> | 136 | <div class="select"> |
137 | <select name="days_repeat" class="js-select2"> | 137 | <select name="days_repeat" class="js-select2"> |
138 | <option @if($options['days_repeat'] === null) selected @endif disabled>Выполнять это действие на протяжении</option> | 138 | <option @if($options['days_repeat'] === null) selected @endif disabled>Выполнять это действие на протяжении</option> |
139 | <option @if($options['days_repeat'] === 1) selected @endif value="1">1 день</option> | 139 | <option @if($options['days_repeat'] === 1) selected @endif value="1">1 день</option> |
140 | <option @if($options['days_repeat'] === 3) selected @endif value="3">3 дня</option> | 140 | <option @if($options['days_repeat'] === 3) selected @endif value="3">3 дня</option> |
141 | <option @if($options['days_repeat'] === 5) selected @endif value="5">5 дней</option> | 141 | <option @if($options['days_repeat'] === 5) selected @endif value="5">5 дней</option> |
142 | <option @if($options['days_repeat'] === 7) selected @endif value="7">7 дней</option> | 142 | <option @if($options['days_repeat'] === 7) selected @endif value="7">7 дней</option> |
143 | <option @if($options['days_repeat'] === 10) selected @endif value="10">10 дней</option> | 143 | <option @if($options['days_repeat'] === 10) selected @endif value="10">10 дней</option> |
144 | <option @if($options['days_repeat'] === 15) selected @endif value="15">15 дней</option> | 144 | <option @if($options['days_repeat'] === 15) selected @endif value="15">15 дней</option> |
145 | <option @if($options['days_repeat'] === 30) selected @endif value="30">30 дней</option> | 145 | <option @if($options['days_repeat'] === 30) selected @endif value="30">30 дней</option> |
146 | </select> | 146 | </select> |
147 | </div> | 147 | </div> |
148 | </div> | 148 | </div> |
149 | </div> | 149 | </div> |
150 | </div> | 150 | </div> |
151 | <div class="table table_spoiler"> | 151 | <div class="table table_spoiler"> |
152 | <div class="table__scroll"> | 152 | <div class="table__scroll"> |
153 | <div class="table__body table__body_min-width"> | 153 | <div class="table__body table__body_min-width"> |
154 | <table> | 154 | <table> |
155 | <thead> | 155 | <thead> |
156 | <tr> | 156 | <tr> |
157 | <th>Название</th> | 157 | <th>Название</th> |
158 | <th>Обновлять на сайте</th> | 158 | <th>Обновлять на сайте</th> |
159 | </tr> | 159 | </tr> |
160 | </thead> | 160 | </thead> |
161 | <tbody> | 161 | <tbody> |
162 | <tr name="resume_table_row" data-id="{{ $worker->id }}"> | 162 | <tr name="resume_table_row" data-id="{{ $worker->id }}"> |
163 | <td>Резюме</td> | 163 | <td>Резюме</td> |
164 | <td > | 164 | <td > |
165 | <span class="checkbox-empty"> | 165 | <span class="checkbox-empty"> |
166 | <label class="checkbox"> | 166 | <label class="checkbox"> |
167 | <input | 167 | <input |
168 | type="checkbox" | 168 | type="checkbox" |
169 | class="checkbox__input" | 169 | class="checkbox__input" |
170 | @if($options->autolift_site) checked @endif | 170 | @if($options->autolift_site) checked @endif |
171 | name="autolift_site" | 171 | name="autolift_site" |
172 | > | 172 | > |
173 | <span class="checkbox__icon"> | 173 | <span class="checkbox__icon"> |
174 | <svg> | 174 | <svg> |
175 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | 175 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> |
176 | </svg> | 176 | </svg> |
177 | </span> | 177 | </span> |
178 | </label> | 178 | </label> |
179 | </span> | 179 | </span> |
180 | </td> | 180 | </td> |
181 | </tr> | 181 | </tr> |
182 | </tbody> | 182 | </tbody> |
183 | </table> | 183 | </table> |
184 | </div> | 184 | </div> |
185 | </div> | 185 | </div> |
186 | <div class="mrg-wrapper" style="display: flex; justify-content: center; clear: both;"> | 186 | <div class="mrg-wrapper" style="display: flex; justify-content: center; clear: both;"> |
187 | <ins class="mrg-tag" data-ad-client="ad-595528" data-ad-slot="595528" style="display: flex; align-items: center; justify-content: center; width: 300px; z-index: 1;"> | 187 | <ins class="mrg-tag" data-ad-client="ad-595528" data-ad-slot="595528" style="display: flex; align-items: center; justify-content: center; width: 300px; z-index: 1;"> |
188 | 188 | ||
189 | </ins> | 189 | </ins> |
190 | </div> | 190 | </div> |
191 | </div> | 191 | </div> |
192 | <div class="cabinet__inputs"> | 192 | <div class="cabinet__inputs"> |
193 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth"> | 193 | <div class="cabinet__inputs-item cabinet__inputs-item_fullwidth"> |
194 | <button id="submit" type="button" class="button">Сохранить</button> | 194 | <button id="submit" type="button" class="button">Сохранить</button> |
195 | </div> | 195 | </div> |
196 | </div> | 196 | </div> |
197 | </div> | 197 | </div> |
198 | </form> | 198 | </form> |
199 | </div> | 199 | </div> |
200 | </div> | 200 | </div> |
201 | </section> | 201 | </section> |
202 | </div> | 202 | </div> |
203 | @endsection | 203 | @endsection |
204 | 204 |