/** @var array $allAdmins */
/** @var yii_app\records\Admin $user */
-
+$this->registerJsFile('/js/crud/cluster-admin/_form.js', ['position' => \yii\web\View::POS_END]);
$inactiveAdmins = ArrayHelper::map($inactiveAdmins, 'id', 'name');
$allAdmins = ArrayHelper::map($allAdmins, 'id', 'name');
?>
</div>
</div>
-<?php
-
+ <script>
+ var inactiveAdminsData = <?= json_encode($inactiveAdmins, JSON_UNESCAPED_UNICODE) ?>;
+ var allAdminsData = <?= json_encode($allAdmins, JSON_UNESCAPED_UNICODE) ?>;
+ var selectedAdminId = <?= json_encode($model->admin_id) ?>;
+ </script>
-$inactiveAdminsJson = json_encode($inactiveAdmins, JSON_UNESCAPED_UNICODE);
-
-$allAdminsJson = json_encode($allAdmins, JSON_UNESCAPED_UNICODE);
-$js = <<<JS
- var \$adminSelect = $('#admin-select');
-
-function populateAdminSelect(data, selectedValue) {
-
- \$adminSelect.empty();
- data.forEach(function(item) {
- \$adminSelect.append(new Option(item.text, item.id, false, false));
- });
-
-
- if (selectedValue && data.some(function(item) { return item.id == selectedValue; })) {
- \$adminSelect.val(selectedValue).trigger('change');
- } else {
- \$adminSelect.val(null).trigger('change');
- }
-
-
- \$adminSelect.select2({
- placeholder: 'Выберите кустового...',
- allowClear: true,
- });
-}
-
-function initDateEndField() {
- var isChecked = $('#active-checkbox').is(':checked');
- var data = isChecked ? $inactiveAdminsJson : $allAdminsJson;
- var selectData = Object.entries(data).map(function([id, text]) {
- return { id: parseInt(id), text: text };
- });
- var selectedValue = $model->admin_id;
- populateAdminSelect(selectData, selectedValue);
-
- if (isChecked) {
- $('label[for="date-end-field"]').hide();
- } else {
- $('label[for="date-end-field"]').show();
- }
-}
-
-function toggleDateEndField() {
- var isChecked = $('#active-checkbox').is(':checked');
- var currentDate = new Date().toISOString().split('T')[0];
- var data = isChecked ? $inactiveAdminsJson : $allAdminsJson;
- var selectData = Object.entries(data).map(function([id, text]) {
- return { id: parseInt(id), text: text };
- });
- var selectedValue = \$adminSelect.val();
- populateAdminSelect(selectData, selectedValue);
-
- if (isChecked) {
- $('#date-end-field').val('2100-01-01');
- $('#date-end-field').hide();
- $('label[for="date-end-field"]').hide();
- } else {
- $('#date-end-field').val(currentDate);
- $('#date-end-field').show();
- $('label[for="date-end-field"]').show();
- }
-}
-
-
-$('#active-checkbox').on('change', function() {
- toggleDateEndField();
-});
-
-
-initDateEndField();
-JS;
-
-$this->registerJs($js);
-?>
\ No newline at end of file
--- /dev/null
+$(document).ready(function() {
+
+
+
+
+var $adminSelect = $('#admin-select');
+
+function populateAdminSelect(data, selectedValue) {
+ $adminSelect.empty();
+ data.forEach(function(item) {
+ $adminSelect.append(new Option(item.text, item.id, false, false));
+ });
+
+ if (selectedValue && data.some(function(item) { return item.id == selectedValue; })) {
+ $adminSelect.val(selectedValue).trigger('change');
+ } else {
+ $adminSelect.val(null).trigger('change');
+ }
+
+ $adminSelect.select2({
+ placeholder: 'Выберите кустового...',
+ allowClear: true,
+ });
+}
+
+function initDateEndField() {
+ var isChecked = $('#active-checkbox').is(':checked');
+ var data = isChecked ? inactiveAdminsData : allAdminsData;
+ var selectData = Object.entries(data).map(function([id, text]) {
+ return { id: parseInt(id), text: text };
+ });
+ var selectedValue = selectedAdminId;
+ populateAdminSelect(selectData, selectedValue);
+
+ if (isChecked) {
+ $('label[for="date-end-field"]').hide();
+ } else {
+ $('label[for="date-end-field"]').show();
+ }
+}
+
+function toggleDateEndField() {
+ var isChecked = $('#active-checkbox').is(':checked');
+ var currentDate = new Date().toISOString().split('T')[0];
+ var data = isChecked ? inactiveAdminsData : allAdminsData;
+ var selectData = Object.entries(data).map(function([id, text]) {
+ return { id: parseInt(id), text: text };
+ });
+ var selectedValue = $adminSelect.val();
+ populateAdminSelect(selectData, selectedValue);
+
+ if (isChecked) {
+ $('#date-end-field').val('2100-01-01');
+ $('#date-end-field').hide();
+ $('label[for="date-end-field"]').hide();
+ } else {
+ $('#date-end-field').val(currentDate);
+ $('#date-end-field').show();
+ $('label[for="date-end-field"]').show();
+ }
+}
+
+$('#active-checkbox').on('change', function() {
+ toggleDateEndField();
+});
+
+initDateEndField();
+
+});
\ No newline at end of file