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 |