/** * Run action: update exists accounts or add new account */ public function run() { $model = $this->model; $successMessage = ''; $errorMessage = ''; $query = $model->getAccounts(); $query->modelClass = UserAccountForm::className(); $accounts = $query->indexBy('id')->all(); // new model $newAccount = new UserAccountForm(); if (Yii::$app->request->post('add-new') && $newAccount->load(Yii::$app->request->post()) && $newAccount->validate()) { // add new username $result = $this->userModule->updateVcsBindings($model, [$newAccount]); if ($result) { $successMessage = Yii::t('user', 'New binding was successfully added'); } else { $errorMessage = Yii::t('user', 'Error add a new binding'); } } elseif (Yii::$app->request->post('update') && UserAccountForm::loadMultiple($accounts, Yii::$app->request->post()) && UserAccountForm::validateMultiple($accounts)) { $result = $this->userModule->updateVcsBindings($model, $accounts); if ($result) { $successMessage = Yii::t('user', 'Bindings was successfully updated'); } else { $errorMessage = Yii::t('user', 'Update bindings error'); } } if (!empty($_POST)) { // reset accounts list $accounts = $query->indexBy('id')->all(); } return $this->controller->render('vcs-bindings', ['model' => $model, 'accounts' => $accounts, 'newAccount' => $newAccount, 'successMessage' => $successMessage, 'errorMessage' => $errorMessage]); }
<div class="form-group"> <label class="control-label"><?php echo Yii::t('user', 'Add new binding: type username and VCS type'); ?> </label> </div> </div> <div class="row"> <div class="col-md-8"> <?php echo $form->field($newAccount, "username")->label(false)->textInput(); ?> </div> <div class="col-md-2"> <?php echo $form->field($newAccount, "type")->label(false)->dropDownList(UserAccountForm::getTypesForDropDown()); ?> </div> <div class="col-md-2"> <div class="form-group"> <?php echo Html::submitButton(Yii::t('user', 'Add'), ['class' => 'btn btn-primary form-control', 'name' => 'add-new', 'value' => 1]); ?> </div> </div> </div> <?php ActiveForm::end(); ?> </div>