$model = new ClusterAdmin();
+
+ $allAdmins = Admin::find()
+ ->select(['id', 'name'])
+ ->where(['IN', 'group_id', [7]])
+ ->asArray()
+ ->all();
+
+
$activeAdminIds = ClusterAdmin::find()
->select('admin_id')
->where(['active' => 1])
->column();
- $admins = ArrayHelper::map(Admin::find()
- ->select(['id', 'name'])
- ->where(['NOT IN', 'id', $activeAdminIds])
- ->andWhere(['IN', 'group_id', [7]])
- ->all(), 'id', 'name');
+
+ $inactiveAdmins = array_filter($allAdmins, function($admin) use ($activeAdminIds) {
+ return !in_array($admin['id'], $activeAdminIds);
+ });
$cluster = Cluster::findOne($cluster_id);
return $this->render('create', [
'model' => $model,
'cluster' => $cluster,
- 'admins' => $admins,
+ 'inactiveAdmins' => $inactiveAdmins,
+ 'allAdmins' => $allAdmins,
'user' => $user,
]);
}
{
$model = $this->findModel($id);
- $admins = ArrayHelper::map(Admin::find()
+ $allAdmins = Admin::find()
->select(['id', 'name'])
->where(['IN', 'group_id', [7]])
- ->all(), 'id', 'name');
+ ->asArray()
+ ->all();
+
+
+ $activeAdminIds = ClusterAdmin::find()
+ ->select('admin_id')
+ ->where(['active' => 1])
+ ->column();
+
+ $inactiveAdmins = array_filter($allAdmins, function($admin) use ($activeAdminIds) {
+ return !in_array($admin['id'], $activeAdminIds);
+ });
+
$cluster = Cluster::findOne($model->cluster_id);
if (!$cluster) {
return $this->render('update', [
'model' => $model,
'cluster' => $cluster,
- 'admins' => $admins,
+ 'inactiveAdmins' => $inactiveAdmins,
+ 'allAdmins' => $allAdmins,
'user' => $user,
]);
}
<?php
use kartik\select2\Select2;
+use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/** @var ClusterAdmin $model */
/** @var yii\widgets\ActiveForm $form */
/** @var yii_app\records\Cluster $cluster */
-/** @var array $admins */
+/** @var array $inactiveAdmins */
+/** @var array $allAdmins */
/** @var yii_app\records\Admin $user */
+
+$inactiveAdmins = ArrayHelper::map($inactiveAdmins, 'id', 'name');
+$allAdmins = ArrayHelper::map($allAdmins, 'id', 'name');
?>
<div class="cluster-admin-form">
</div>
<?= $form->field($model, 'admin_id')->widget(Select2::class, [
- 'data' => $admins,
- 'options' => ['placeholder' => 'Выберите кустового...'],
+ 'data' => $inactiveAdmins, // По умолчанию показываем неактивных админов
+ 'options' => [
+ 'id' => 'admin-select', // Присваиваем id для управления из JS
+ 'placeholder' => 'Выберите кустового...',
+ ],
'pluginOptions' => [
- 'allowClear' => true
+ 'allowClear' => true,
],
]); ?>
<?php
+
+$inactiveAdminsJson = json_encode($inactiveAdmins, JSON_UNESCAPED_UNICODE);
+
+$allAdminsJson = json_encode($allAdmins, JSON_UNESCAPED_UNICODE);
$js = <<<JS
function toggleDateEndField() {
var isChecked = $('#active-checkbox').is(':checked');
var currentDate = new Date().toISOString().split('T')[0];
-
+ var data = isChecked ? $inactiveAdminsJson : $allAdminsJson;
+
+ // Обновляем данные в Select2
+ $('#admin-select').empty().select2({
+ data: Object.entries(data).map(function([id, text]) {
+ return { id: parseInt(id), text: text }; // Преобразуем ключи (id) в числа
+ }),
+ placeholder: 'Выберите кустового...',
+ allowClear: true
+ });
if (isChecked) {
$('#date-end-field').val('2100-01-01');
$('#date-end-field').hide();
/** @var yii\web\View $this */
/** @var yii_app\records\ClusterAdmin $model */
/** @var yii_app\records\Cluster $cluster */
-/** @var array $admins */
+/** @var array $inactiveAdmins */
+/** @var array $allAdmins */
/** @var yii_app\records\Admin $user */
$this->title = 'Создание привязки Куста к Кустовому для ' . $cluster->name;
<?= $this->render('_form', [
'model' => $model,
'cluster' => $cluster,
- 'admins' => $admins,
+ 'inactiveAdmins' => $inactiveAdmins,
+ 'allAdmins' => $allAdmins,
'user' => $user,
]) ?>
/** @var yii\web\View $this */
/** @var yii_app\records\ClusterAdmin $model */
/** @var yii_app\records\Cluster $cluster */
-/** @var array $admins */
+/** @var array $inactiveAdmins */
+/** @var array $allAdmins */
/** @var yii_app\records\Admin $user */
$this->title = 'Редактирование привязки куста к кустовому: ' . $cluster->name;
<?= $this->render('_form', [
'model' => $model,
'cluster' => $cluster,
- 'admins' => $admins,
+ 'inactiveAdmins' => $inactiveAdmins,
+ 'allAdmins' => $allAdmins,
'user' => $user,
]) ?>