<?php

declare(strict_types=1);

use yii;
use yii\bootstrap\ActiveForm;
use yii\helpers\Html;

use app\models\Notification;
use app\models\Settings;

?>
<link href="/css/pages/profile.css" rel="stylesheet">

<div id="page_profile" class="container h-100">
    <div class="row h-100 py-3">
        <nav class="col-3">
            <?= $sidebar ?? yii::$app->controller->renderPartial('/profile/sidebar') ?>
        </nav>
        <article class="col-9">
            <div class="p-4 rounded">
                <h4 class="ml-4 mb-4"><i class="fas fa-user-shield my-auto mr-2"></i>Панель управления</h4>
                <div id="profile_panel_trusted" class="profile_panel">
                    <div class="profile_panel_menu mb-3">
                        <label class="btn button_white mb-0 mr-2" for="profile_panel_trusted_input_notifications">Уведомления</label>
                        <label class="btn button_white mb-0 mr-2" for="profile_panel_trusted_input_settings">Настройки</label>
                    </div>
                    <div class="profile_panel_content">
                    <input type="radio" id="profile_panel_trusted_input_notifications" name="main_panel" />
                        <div class="col">
                            <h5>Отправка уведомления</h5>
                            <div class="dropdown-divider mb-3"></div>
                            <?
                            $form = ActiveForm::begin([
                                'id' => 'form_profile_trusted_notifications',
                                'action' => false,
                                'fieldConfig' => [
                                    'template' => '{label}{input}'
                                ],
                                'options' => [
                                    'onsubmit' => 'return false;'
                                ]
                            ]);

                            // Значения по умолчанию
                            isset($model_notifications) or $model_notifications = new Notification;
                            isset($model_notifications->trgt) or $model_notifications->trgt = null;
                            isset($model_notifications->text) or $model_notifications->text = '';
                            ?>

                            <?= $form->errorSummary($model_notifications) ?>

                            <div class="row">
                                <?= $form->field($model_notifications, 'trgt', ['options' => ['class' => "mb-1 col-9"]])->input('text', ['placeholder' => yii::$app->user->identity->_key]); ?>
                                <?= $form->field($model_notifications, 'type', ['options' => ['class' => "col pl-0"]])->dropDownList($model_notifications->typs); ?>
                            </div>
                            <small class="d-block mb-1"><b>Множественная отправка:</b> @all или перечислить через запятую</small>
                            <small class="d-block mb-3"><b>Тестирование:</b> @test или оставить поле пустым</small>

                            <?= $form->field($model_notifications, 'text', ['options' => ['class' => "mb-3"]])->textarea(); ?>

                            <?= Html::submitButton('Отправить', ['name' => 'submitNotification', 'onclick' => 'page_profile_trusted_notification_create(this.parentElement);', 'class' => 'flex-grow-1 mr-2 btn button_white button_clean']) ?>
                            <?= Html::submitButton('Отправить как HTML', ['name' => 'submitNotification', 'onclick' => 'page_profile_trusted_notification_create(this.parentElement, 1);', 'class' => 'flex-grow-1 mr-2 btn button_white button_clean']) ?>

                            <? ActiveForm::end(); ?>
                        </div>
                        <input type="radio" id="profile_panel_trusted_input_settings" name="main_panel" checked />
                        <div class="col">
                            <?
                                $form = ActiveForm::begin([
                                    'id' => 'form_profile_trusted_settings_search_period',
                                    'action' => false,
                                    'fieldConfig' => [
                                        'template' => '{label}{input}',
                                    ],
                                    'options' => [
                                        'onsubmit' => 'return false;',
                                        'class' => 'mb-4'
                                    ]
                                ]);
                            ?>

                            <?= $form->errorSummary($model_settings, ['header' => 'Получены ошибки:']) ?>

                            <?= $form->field($model_settings, 'search_period', ['options' => ['class' => "mb-1"]])->textInput(['value' => $model_settings['search_period'], 'onChange' => 'page_profile_trusted_settings(this.parentElement.parentElement)']); ?>
                            <small class="d-block mb-1">Время которое надо ждать для повторного поиска в секундах</small>

                            <? ActiveForm::end(); ?>

                            <?
                                $form = ActiveForm::begin([
                                    'id' => 'form_profile_trusted_settings_search_connect_keep',
                                    'action' => false,
                                    'fieldConfig' => [
                                        'template' => '{label}{input}',
                                    ],
                                    'options' => [
                                        'onsubmit' => 'return false;'
                                    ]
                                ]);

                                $list = ['false' => 'Нет', 'true' => 'Да'];

                                if (isset($model_settings->search_connect_keep)) {
                                    // Найден ранее записанный параметр

                                    if (isset($list[$model_settings->search_connect_keep])) {
                                        // Совпадение параметра с параметрами списка найдено

                                        // Буфер для сохранения параметра
                                        $buffer = $list[$model_settings->search_connect_keep];

                                        // Удаление параметра
                                        unset($list[$model_settings->search_connect_keep]);

                                        // Сохранение параметра в начале массива
                                        $list = array_merge([$model_settings->search_connect_keep => $buffer], $list);
                                    } else {
                                        // Совпадение параметра с параметрами списка не найдено

                                        // Сохранение параметра из данных аккаунта в начале массива
                                        $list = array_merge([$model_settings->search_connect_keep => $model_settings->search_connect_keep], $list);
                                    }
                                }
                            ?>

                            <?= $form->field($model_settings, 'search_connect_keep', ['options' => ['class' => "mb-1"]])->dropDownList($list, ['onChange' => 'page_profile_trusted_settings(this.parentElement.parentElement)']); ?>
                            <small class="d-block mb-1">Удерживать открытое соединение до истечения срока блокировки поиска?</small>
                            <small class="d-block mb-1">При малой задержке позволяет снизить время загрузки страницы, но при большой будет казаться, что сайт завис</small>

                            <? ActiveForm::end(); ?>
                        </div>
                    </div>
                </div>
            </div>
        </article>
    </div>
</div>

<script src="/js/profile.js" defer></script>
<script src="/js/profile_trusted.js" defer></script>