Commit a0821e650099390adc0d758f4b4e2482a64b3f66

Authored by Yarik
1 parent a41edafc

test

Showing 1 changed file with 133 additions and 87 deletions   Show diff stats
frontend/views/accounts/_vacancy_form.php
1 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 6 * @var Specialization[] $specializations
7   - * @var User $user
  7 + * @var User $user
8 8 */
9 9 use common\components\Request;
10 10 use common\models\Employment;
... ... @@ -30,47 +30,70 @@
30 30 <div class="input-blocks-wrapper">
31 31 <div class="input-blocks">
32 32 <?= $form->field($vacancy, 'name')
33   - ->textInput (['class'=> 'custom-input-2']); ?>
  33 + ->textInput([ 'class' => 'custom-input-2' ]); ?>
34 34 </div>
35 35 </div>
36 36  
37 37  
38   -
39 38 <div class="input-blocks-wrapper">
40 39 <div class="input-blocks">
41 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 51 </div>
45 52 </div>
46   -
47 53 <div class="input-blocks-wrapper">
48 54 <div class="input-blocks">
49 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 66 </div>
52 67 </div>
53 68  
54 69 <div class="input-blocks-wrapper">
55 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 97 </div>
75 98 </div>
76 99  
... ... @@ -80,18 +103,19 @@
80 103 'template' => "{label}<br /><span class='admn-input-txt'>от</span>{input}\n{hint}\n{error}",
81 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 112 </div>
87 113 <div class="input-blocks admin-currency-second">
88   - <?=
89   - $form->field($vacancy, 'salary_currency', [
  114 + <?= $form->field($vacancy, 'salary_currency', [
90 115 'template' => "{input}\n{hint}\n{error}",
91 116 ])
92   - ->label(false)
93   - ->dropDownList($currencies)
94   - ?>
  117 + ->label(false)
  118 + ->dropDownList($currencies) ?>
95 119 </div>
96 120 </div>
97 121  
... ... @@ -119,15 +143,15 @@
119 143 <li>
120 144 <a href="#" title="<?= $child_second->specialization_name ?>">
121 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 155 </a>
132 156 </li>
133 157 <?php endif; ?>
... ... @@ -148,65 +172,67 @@
148 172 </div>
149 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 179 <div class="input-blocks-wrapper admin-vacancy-check admin-vacancy-check-fx-marg" style="margin-top: 19px">
154 180 <div class="input-blocks">
155 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 193 </div>
170 194 </div>
171 195  
172 196 <div class="skills-admin-wrapper style">
173 197 <div class="input-blocks-wrapper skills-programs">
174 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 205 </div>
181 206 </div>
182 207 </div>
183 208  
184 209 <div class="input-blocks-wrapper full-blocks admin-editor-bl">
185 210 <div class="input-blocks">
186   - <?= $form->field($vacancy, 'description')->widget(CKEditor::className()) ?>
  211 + <?= $form->field($vacancy, 'description')
  212 + ->widget(CKEditor::className()) ?>
187 213 </div>
188 214 </div>
189 215  
190 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 218 <div class="admin-remove-note">
193 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 233 </div>
208 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 236 </div>
211 237 </div>
212 238  
... ... @@ -215,14 +241,34 @@
215 241 $form->end();
216 242 ?>
217 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 274 </script>
229 275 \ No newline at end of file
... ...