public static function activeModuleAccessibilityField($model, $attribute, $options = []) { $items = ArrayHelper::map(\Yii::$app->moduleAccessibilityManager->getAvailableModules(), 'ModuleId', 'ModuleName'); $value = $model->isNewRecord ? [] : ArrayHelper::getColumn(\Yii::$app->moduleAccessibilityManager->getModulesByUser($model->getId()), 'ModuleId'); if ($value != null) { $options["value"] = $value; } if (!empty($_POST['ModuleAccessibility'])) { $options["value"] = $_POST['ModuleAccessibility']; } $options["name"] = 'ModuleAccessibility'; $options['id'] = self::getInputId($model, $attribute); $prompt = 'Select ' . $model->getAttributeLabel($attribute); if (isset($options['prompt'])) { $prompt = $options['prompt']; unset($options['prompt']); } $options = ArrayHelper::merge(['items' => $items, 'options' => ['multiple' => true, 'prompt' => $prompt], 'clientOptions' => ['plugins' => ["remove_button", "drag_drop", "restore_on_backspace"], 'create' => false, 'persist' => false]], $options); return Selectize::widget($options); }
<?php use yii\helpers\ArrayHelper; use matacms\widgets\Selectize; use matacms\theme\simple\assets\ReviewerAsset; use yii\helpers\Html as BaseHtml; use yii\web\JsExpression; $items = ArrayHelper::map($reviewers, 'id', 'profileName'); $prompt = 'Select Reviewer'; $options = ['items' => $items, 'options' => ['multiple' => false, 'prompt' => $prompt, 'id' => 'select-reviewer'], 'clientOptions' => ['maxItems' => 1, 'onChange' => new JsExpression("\n function (value) {\n\t if(value != '') {\n \$('#choose-reviewer-modal #choose-reviewer-group').removeClass('has-error');\n \$('#choose-reviewer-modal #choose-reviewer-group .help-block').text('');\n }\n }\n ")]]; ReviewerAsset::register($this); ?> <div class="form-row"> <div class="form-group single-choice-dropdown" id="choose-reviewer-group"> <label class="control-label">Reviewer</label> <?php echo Selectize::widget($options); ?> <div class="help-block"></div> </div> </div> <div class="form-row"> <?php echo BaseHtml::button('SUBMIT FOR REVIEW', ['id' => 'btn-send-to-review', 'class' => 'btn btn-primary review-btn']); ?> </div> <?php \Yii::$app->view->registerJs("\n\n \$('#btn-send-to-review').on('click', function() {\n\n var value = \$('#select-reviewer').selectize()[0].selectize.getValue();\n if(value == '') {\n \$('#choose-reviewer-modal #choose-reviewer-group').addClass('has-error');\n \$('#choose-reviewer-modal #choose-reviewer-group .help-block').text('Reviewer cannot be blank');\n return;\n }\n\n \$('#" . $containerId . " input#reviewer-hidden-input').val(value);\n \$('#choose-reviewer-modal').modal('hide');\n \$('#" . $containerId . " button.review-btn').trigger('click', [{isReviewerSet : true}]);\n });\n", $this::POS_READY);