Commit a0821e650099390adc0d758f4b4e2482a64b3f66
1 parent
a41edafc
test
Showing
1 changed file
with
133 additions
and
87 deletions
Show diff stats
frontend/views/accounts/_vacancy_form.php
1 | <?php | 1 | <?php |
2 | /** | 2 | /** |
3 | - * @var Vacancy $vacancy | ||
4 | - * @var Employment[] $employment | ||
5 | - * @var string[] $currencies | 3 | + * @var Vacancy $vacancy |
4 | + * @var Employment[] $employment | ||
5 | + * @var string[] $currencies | ||
6 | * @var Specialization[] $specializations | 6 | * @var Specialization[] $specializations |
7 | - * @var User $user | 7 | + * @var User $user |
8 | */ | 8 | */ |
9 | use common\components\Request; | 9 | use common\components\Request; |
10 | use common\models\Employment; | 10 | use common\models\Employment; |
@@ -30,47 +30,70 @@ | @@ -30,47 +30,70 @@ | ||
30 | <div class="input-blocks-wrapper"> | 30 | <div class="input-blocks-wrapper"> |
31 | <div class="input-blocks"> | 31 | <div class="input-blocks"> |
32 | <?= $form->field($vacancy, 'name') | 32 | <?= $form->field($vacancy, 'name') |
33 | - ->textInput (['class'=> 'custom-input-2']); ?> | 33 | + ->textInput([ 'class' => 'custom-input-2' ]); ?> |
34 | </div> | 34 | </div> |
35 | </div> | 35 | </div> |
36 | 36 | ||
37 | 37 | ||
38 | - | ||
39 | <div class="input-blocks-wrapper"> | 38 | <div class="input-blocks-wrapper"> |
40 | <div class="input-blocks"> | 39 | <div class="input-blocks"> |
41 | <?= $form->field($vacancy, 'user_name') | 40 | <?= $form->field($vacancy, 'user_name') |
42 | - ->textInput (['class'=> 'custom-input-2']); ?> | ||
43 | - <span class="admin-hint-vacancy-contact form_auto_data" data-value="<?=$user->firstname.' '.$user->lastname?>">Вы</span> | 41 | + ->textInput([ 'class' => 'custom-input-2' ]); ?> |
42 | + <?php | ||
43 | + if(!empty( $user->firstname ) && !empty( $user->lastname )) { | ||
44 | + echo Html::tag('span', 'Вы', [ | ||
45 | + 'class' => 'admin-hint-vacancy-contact form_auto_data', | ||
46 | + 'data-value' => $user->firstname . ' ' . $user->lastname, | ||
47 | + 'title' => 'Вставить данные с Вашего личного кабинета', | ||
48 | + ]); | ||
49 | + } | ||
50 | + ?> | ||
44 | </div> | 51 | </div> |
45 | </div> | 52 | </div> |
46 | - | ||
47 | <div class="input-blocks-wrapper"> | 53 | <div class="input-blocks-wrapper"> |
48 | <div class="input-blocks"> | 54 | <div class="input-blocks"> |
49 | <?= $form->field($vacancy, 'phone') | 55 | <?= $form->field($vacancy, 'phone') |
50 | - ->textInput (['class'=> 'custom-input-2']); ?> | 56 | + ->textInput([ 'class' => 'custom-input-2' ]); ?> |
57 | + <?php | ||
58 | + if(!empty($user->getPhones()[1]['phone'])) { | ||
59 | + echo Html::tag('span', 'Вы', [ | ||
60 | + 'class' => 'admin-hint-vacancy-contact form_auto_data', | ||
61 | + 'data-value' => $user->getPhones()[1]['phone'], | ||
62 | + 'title' => 'Вставить данные с Вашего личного кабинета', | ||
63 | + ]); | ||
64 | + } | ||
65 | + ?> | ||
51 | </div> | 66 | </div> |
52 | </div> | 67 | </div> |
53 | 68 | ||
54 | <div class="input-blocks-wrapper"> | 69 | <div class="input-blocks-wrapper"> |
55 | <div class="input-blocks"> | 70 | <div class="input-blocks"> |
56 | - <?= | ||
57 | - $form->field($vacancy, 'city')->widget(Select2::classname(), [ | ||
58 | - 'options' => ['placeholder' => 'Выбор города ...'], | ||
59 | - 'pluginOptions' => [ | ||
60 | - 'allowClear' => true, | ||
61 | - 'minimumInputLength' => 3, | ||
62 | - 'ajax' => [ | ||
63 | - 'url' => \yii\helpers\Url::to(['site/city']), | ||
64 | - 'dataType' => 'json', | ||
65 | - 'data' => new JsExpression('function(params) { return {q:params.term}; }') | ||
66 | - ], | ||
67 | - 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'), | ||
68 | - 'templateResult' => new JsExpression('function(city) { return city.text; }'), | ||
69 | - 'templateSelection' => new JsExpression('function (city) { return city.text; }'), | ||
70 | - ], | ||
71 | - ]); | 71 | + <?= $form->field($vacancy, 'city') |
72 | + ->hint('Город, в котором предлагается работа', ['tag' => 'span']) | ||
73 | + ->widget(Select2::classname(), [ | ||
74 | + 'options' => [ 'placeholder' => 'Выбор города ...' ], | ||
75 | + 'pluginOptions' => [ | ||
76 | + 'allowClear' => true, | ||
77 | + 'minimumInputLength' => 3, | ||
78 | + 'ajax' => [ | ||
79 | + 'url' => \yii\helpers\Url::to([ 'site/city' ]), | ||
80 | + 'dataType' => 'json', | ||
81 | + 'data' => new JsExpression('function(params) { return {q:params.term}; }'), | ||
82 | + ], | ||
83 | + 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'), | ||
84 | + 'templateResult' => new JsExpression('function(city) { return city.text; }'), | ||
85 | + 'templateSelection' => new JsExpression('function (city) { return city.text; }'), | ||
86 | + ], | ||
87 | + ]); ?> | ||
88 | + <?php | ||
89 | + if(!empty( $user->userInfo->city )) { | ||
90 | + echo Html::tag('span', 'Ваш', [ | ||
91 | + 'class' => 'admin-hint-vacancy-contact form_auto_data', | ||
92 | + 'data-value' => $user->userInfo->city, | ||
93 | + 'title' => 'Вставить данные с Вашего личного кабинета', | ||
94 | + ]); | ||
95 | + } | ||
72 | ?> | 96 | ?> |
73 | - <span class="admin-hint-vacancy-contact form_auto_data" data-value="<?=$user->userInfo->city?>">Ваш</span> | ||
74 | </div> | 97 | </div> |
75 | </div> | 98 | </div> |
76 | 99 | ||
@@ -80,18 +103,19 @@ | @@ -80,18 +103,19 @@ | ||
80 | 'template' => "{label}<br /><span class='admn-input-txt'>от</span>{input}\n{hint}\n{error}", | 103 | 'template' => "{label}<br /><span class='admn-input-txt'>от</span>{input}\n{hint}\n{error}", |
81 | 'options' => [ 'class' => 'form-inline' ], | 104 | 'options' => [ 'class' => 'form-inline' ], |
82 | ]) | 105 | ]) |
83 | - ->label('Заработная плата') | ||
84 | - ->textInput (['class'=> 'custom-input-2 custom-input-2-date','type'=>'number', 'min' => 0]); | ||
85 | - ?> | 106 | + ->label('Заработная плата') |
107 | + ->textInput([ | ||
108 | + 'class' => 'custom-input-2 custom-input-2-date', | ||
109 | + 'type' => 'number', | ||
110 | + 'min' => 0, | ||
111 | + ]); ?> | ||
86 | </div> | 112 | </div> |
87 | <div class="input-blocks admin-currency-second"> | 113 | <div class="input-blocks admin-currency-second"> |
88 | - <?= | ||
89 | - $form->field($vacancy, 'salary_currency', [ | 114 | + <?= $form->field($vacancy, 'salary_currency', [ |
90 | 'template' => "{input}\n{hint}\n{error}", | 115 | 'template' => "{input}\n{hint}\n{error}", |
91 | ]) | 116 | ]) |
92 | - ->label(false) | ||
93 | - ->dropDownList($currencies) | ||
94 | - ?> | 117 | + ->label(false) |
118 | + ->dropDownList($currencies) ?> | ||
95 | </div> | 119 | </div> |
96 | </div> | 120 | </div> |
97 | 121 | ||
@@ -119,15 +143,15 @@ | @@ -119,15 +143,15 @@ | ||
119 | <li> | 143 | <li> |
120 | <a href="#" title="<?= $child_second->specialization_name ?>"> | 144 | <a href="#" title="<?= $child_second->specialization_name ?>"> |
121 | <?= $form->field($vacancy, "specializationInput[{$child_second->specialization_id}]", [ | 145 | <?= $form->field($vacancy, "specializationInput[{$child_second->specialization_id}]", [ |
122 | - 'template' => '{input}{label}{hint}{error}', | 146 | + 'template' => '{input}{label}{hint}{error}', |
123 | ]) | 147 | ]) |
124 | - ->label('<span></span>' . $child_second->specialization_name) | ||
125 | - ->checkbox([ | ||
126 | - 'value' => $child_second->specialization_id, | ||
127 | - 'label' => NULL, | ||
128 | - 'uncheck' => NULL, | ||
129 | - 'class' => 'custom-check', | ||
130 | - ], false) ?> | 148 | + ->label('<span></span>' . $child_second->specialization_name) |
149 | + ->checkbox([ | ||
150 | + 'value' => $child_second->specialization_id, | ||
151 | + 'label' => NULL, | ||
152 | + 'uncheck' => NULL, | ||
153 | + 'class' => 'custom-check', | ||
154 | + ], false) ?> | ||
131 | </a> | 155 | </a> |
132 | </li> | 156 | </li> |
133 | <?php endif; ?> | 157 | <?php endif; ?> |
@@ -148,65 +172,67 @@ | @@ -148,65 +172,67 @@ | ||
148 | </div> | 172 | </div> |
149 | </div> | 173 | </div> |
150 | 174 | ||
151 | -<div class="admin-specialization-selected style"><ul></ul></div> | 175 | +<div class="admin-specialization-selected style"> |
176 | + <ul></ul> | ||
177 | +</div> | ||
152 | 178 | ||
153 | <div class="input-blocks-wrapper admin-vacancy-check admin-vacancy-check-fx-marg" style="margin-top: 19px"> | 179 | <div class="input-blocks-wrapper admin-vacancy-check admin-vacancy-check-fx-marg" style="margin-top: 19px"> |
154 | <div class="input-blocks"> | 180 | <div class="input-blocks"> |
155 | <?= $form->field($vacancy, 'employmentInput') | 181 | <?= $form->field($vacancy, 'employmentInput') |
156 | - ->checkboxList($employment, | ||
157 | - [ | ||
158 | - 'item' => function($index, $label, $name, $checked, $value) { | ||
159 | - $return = '<div class="admin-who-check-payment">'; | ||
160 | - $return .= '<input class="custom-check" id="select_admin_payment'.$value.'" type="checkbox" name="' . $name . '" value="' . $value . '" '.($checked ? "checked" :"").' >'; | ||
161 | - $return .= '<label for="select_admin_payment'.$value.'" >'; | ||
162 | - $return .= '<span></span>' . ucwords($label); | ||
163 | - $return .= '</label>'; | ||
164 | - $return .= '</div>'; | ||
165 | - return $return; | ||
166 | - } | ||
167 | - ] | ||
168 | - ) ?> | 182 | + ->checkboxList($employment, [ |
183 | + 'item' => function($index, $label, $name, $checked, $value) { | ||
184 | + $return = '<div class="admin-who-check-payment">'; | ||
185 | + $return .= '<input class="custom-check" id="select_admin_payment' . $value . '" type="checkbox" name="' . $name . '" value="' . $value . '" ' . ( $checked ? "checked" : "" ) . ' >'; | ||
186 | + $return .= '<label for="select_admin_payment' . $value . '" >'; | ||
187 | + $return .= '<span></span>' . ucwords($label); | ||
188 | + $return .= '</label>'; | ||
189 | + $return .= '</div>'; | ||
190 | + return $return; | ||
191 | + }, | ||
192 | + ]) ?> | ||
169 | </div> | 193 | </div> |
170 | </div> | 194 | </div> |
171 | 195 | ||
172 | <div class="skills-admin-wrapper style"> | 196 | <div class="skills-admin-wrapper style"> |
173 | <div class="input-blocks-wrapper skills-programs"> | 197 | <div class="input-blocks-wrapper skills-programs"> |
174 | <div class="input-blocks"> | 198 | <div class="input-blocks"> |
175 | - <?= FieldEditor::widget ( | ||
176 | - [ | ||
177 | - 'template' => 'requirements', 'item_id' => $vacancy->vacancy_id, 'model' => 'common\models\Vacancy', 'language' => 'ru', | ||
178 | - ] | ||
179 | - ); ?> | 199 | + <?= FieldEditor::widget([ |
200 | + 'template' => 'requirements', | ||
201 | + 'item_id' => $vacancy->vacancy_id, | ||
202 | + 'model' => 'common\models\Vacancy', | ||
203 | + 'language' => 'ru', | ||
204 | + ]); ?> | ||
180 | </div> | 205 | </div> |
181 | </div> | 206 | </div> |
182 | </div> | 207 | </div> |
183 | 208 | ||
184 | <div class="input-blocks-wrapper full-blocks admin-editor-bl"> | 209 | <div class="input-blocks-wrapper full-blocks admin-editor-bl"> |
185 | <div class="input-blocks"> | 210 | <div class="input-blocks"> |
186 | - <?= $form->field($vacancy, 'description')->widget(CKEditor::className()) ?> | 211 | + <?= $form->field($vacancy, 'description') |
212 | + ->widget(CKEditor::className()) ?> | ||
187 | </div> | 213 | </div> |
188 | </div> | 214 | </div> |
189 | 215 | ||
190 | <div class="admin-save-btn skills-save-btn admin-add-remove-wr style"> | 216 | <div class="admin-save-btn skills-save-btn admin-add-remove-wr style"> |
191 | - <?= Html::submitButton($vacancy->isNewRecord?'Добавить':'Обновить', [ 'class' => 'input-blocks-wrapper button' ]) ?> | 217 | + <?= Html::submitButton($vacancy->isNewRecord ? 'Добавить' : 'Обновить', [ 'class' => 'input-blocks-wrapper button' ]) ?> |
192 | <div class="admin-remove-note"> | 218 | <div class="admin-remove-note"> |
193 | <?php | 219 | <?php |
194 | - if(!$vacancy->isNewRecord) { | ||
195 | - echo Html::a('Удалить', [ | ||
196 | - 'accounts/vacancy-delete', | ||
197 | - 'id' => $vacancy->vacancy_id, | ||
198 | - ], [ | ||
199 | - 'title' => 'Удалить', | ||
200 | - 'aria-label' => 'Удалить', | ||
201 | - 'data-confirm' => 'Вы уверены, что хотите удалить этот элемент?', | ||
202 | - 'data-method' => 'post', | ||
203 | - 'data-pjax' => 0, | ||
204 | - ]); | ||
205 | - } | 220 | + if(!$vacancy->isNewRecord) { |
221 | + echo Html::a('Удалить', [ | ||
222 | + 'accounts/vacancy-delete', | ||
223 | + 'id' => $vacancy->vacancy_id, | ||
224 | + ], [ | ||
225 | + 'title' => 'Удалить', | ||
226 | + 'aria-label' => 'Удалить', | ||
227 | + 'data-confirm' => 'Вы уверены, что хотите удалить этот элемент?', | ||
228 | + 'data-method' => 'post', | ||
229 | + 'data-pjax' => 0, | ||
230 | + ]); | ||
231 | + } | ||
206 | ?> | 232 | ?> |
207 | </div> | 233 | </div> |
208 | <div class="admin-back-note"> | 234 | <div class="admin-back-note"> |
209 | - <?= Html::a('вернуться', Request::getIsLocal(\Yii::$app->request->referrer)?\Yii::$app->request->referrer:['accounts/vacancy' ]) ?> | 235 | + <?= Html::a('вернуться', Request::getIsLocal(\Yii::$app->request->referrer) ? \Yii::$app->request->referrer : [ 'accounts/vacancy' ]) ?> |
210 | </div> | 236 | </div> |
211 | </div> | 237 | </div> |
212 | 238 | ||
@@ -215,14 +241,34 @@ | @@ -215,14 +241,34 @@ | ||
215 | $form->end(); | 241 | $form->end(); |
216 | ?> | 242 | ?> |
217 | <script> | 243 | <script> |
218 | - $(function() { | ||
219 | - $('.input-blocks.admin-currency-second select').change(function(){ | ||
220 | - $(this).blur() | ||
221 | - }); | ||
222 | - $(document).on('click', '.form_auto_data', function() { | ||
223 | - var value = $(this).data('value'); | ||
224 | - var container = $(this).parents('.input-blocks').first(); | ||
225 | - $('#vacancy-city').select2().val(value).trigger('change'); | ||
226 | - }); | ||
227 | - }); | 244 | + $( |
245 | + function() | ||
246 | + { | ||
247 | + $('.input-blocks.admin-currency-second select').change( | ||
248 | + function() | ||
249 | + { | ||
250 | + $(this).blur() | ||
251 | + } | ||
252 | + ); | ||
253 | + $(document).on( | ||
254 | + 'click', '.form_auto_data', function() | ||
255 | + { | ||
256 | + var value = $(this).data('value'); | ||
257 | + var container = $(this).parents('.input-blocks').first(); | ||
258 | + var select = $(container).find('select[data-krajee-select2]').first(); | ||
259 | + if(select.length >= 1) | ||
260 | + { | ||
261 | + $(select) | ||
262 | + .append('<option value="' + value + '" selected>' + value + '</option>'); | ||
263 | + var id = $(select).attr('id'); | ||
264 | + $(container).find('#select2-' + id + '-container').attr('title', value); | ||
265 | + $(container).find('#select2-' + id + '-container').text(value); | ||
266 | + } else | ||
267 | + { | ||
268 | + $(container).find('input, textarea').val(value); | ||
269 | + } | ||
270 | + } | ||
271 | + ); | ||
272 | + } | ||
273 | + ); | ||
228 | </script> | 274 | </script> |
229 | \ No newline at end of file | 275 | \ No newline at end of file |