Example #1
0
 /**
  * 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>