<?php
//namespace cab\ext\aspmo_setting;
include_once(_DIR_TO_CLASS.'/system/class/i_crontab.php') ;
class i_crontab_task_view
{
    public static function panel_search()
    {
        ?><div id="panel_fast_search" style="margin:10px 0;"><strong>Быстрый поиск по</strong>: <input type="text" id="fast_search_url" style="width:200px;font-size:14px;"></div>
             <script type="text/javascript">
                 /// Скрипт сортировки
                 $j(document).ready(function() {
                     $j('#fast_search_url').keyup(
                         function(e) {
                             let text = $j(this).val().replace(/( |<([^>]+)>)/ig, "").replace(/\r?\n/g, "").toLowerCase();
                             if (text){ // Получаем все объекты содержащие поисковые фразы - search_value
                                 $j('.search_cnt .search_block').each(function(el) {
                                         let desired = $j(this).find('.search_value').text().replace(/( |<([^>]+)>)/ig, "").replace(/\r?\n/g, "").toLowerCase();
                                         if (desired.includes(text)){
                                             $j(this).removeClass('hidden')
                                         }else $j(this).addClass('hidden');
                                     }
                                 );
                             }else $j('.search_cnt .search_block').each(function(el) {$j(this).removeClass('hidden');}); // Показать всё, поиск пуст
                         });
                 });
             </script><?
    }

    public static function panel_tasks($options = [])
    {
        ?>
        <form>
            <table data-testId="cron_table" class="basic fz_small full auto search_cnt">
                <tr>
                    <th>Активно</th>
                    <th>Статус</th>
                    <th>Расписание</th>
                    <th>Наименование</th>
                    <th>Время последнего запуска</th>
                    <th>Длительность выполнения</th>
                    <th>Операция</th>
                </tr>
                <?
                $_usl = ['TRUE'];
                $sql_params = [];
                if ($options['cmd']) {
                    $_usl[] = 'cmd like "'.$options['cmd'].'"';
                    $sql_params['cmd'] = $options['cmd'];
                }
                $usl_select = implode(' and ', $_usl);
                $list_crontab = execSQL(
                    'SELECT pkey, enabled, cmd, obj_name, last_exec, last_exec_end, time_exec, intr, default_intr, status
                 FROM ' . TM_CRONTAB . '
                 WHERE ' . $usl_select . '
                 ORDER BY intr, obj_name',
                    ['sql_params' => $sql_params]
                );

                if (_sizeof($list_crontab)) {
                    foreach ($list_crontab as $rec)
										{
                        // Используем универсальный метод для получения читаемого расписания
                        //$timetable = \cab\system\i_crontab::crontab_get_timetable($rec['intr']);
                        $timetable = i_crontab::crontab_get_timetable($rec['intr']);
                        ?>
                        <tr class="search_block">
                            <td>
                                <input type="checkbox" class="v2" cmd="setting/change_cron_work_status" id="<?php echo $rec['pkey'] ?>" cron_cmd="<?php echo $rec['cmd'] ?>" <?php if ($rec['enabled']) echo 'checked' ?>>
                            </td>
                            <td><?php echo ($rec['status']) ? 'Выполняется' : 'Ожидает' ?></td>
                            <td>
                                <?php echo $timetable ?>
                                <a class="v2" cmd="setting/edit_timetable" cron_id="<?php echo $rec['pkey'] ?>" cron_name="<?php echo $rec['obj_name'] ?>">
                                    <i class="fas fa-pencil-alt"></i>
                                </a>
                                <?php if ($rec['default_intr']) echo '<p class="red">Рекомендуется:<br>' . $rec['default_intr'] . '</p>' ?>
                            </td>
                            <td class="left search_value"><?php echo $rec['obj_name'] ?></td>
                            <td><?php echo ($rec['last_exec']) ? date('d.m.Y H:i:s', $rec['last_exec']) : '-' ?></td>
                            <td>
                                <?php
                                if ($rec['last_exec'])
                                    echo ($rec['time_exec']) ? $rec['time_exec'] . ' c.' : '< 0.01 сек';
                                else
                                    echo '-';
                                ?>
                            </td>
                            <td>
                                <a href="/cab/setting/crontab/exec/<?php echo $rec['pkey'] ?>/" target="_blank" cron_cmd="<?php echo $rec['cmd'] ?>">Выполнить задание</a>
                            </td>
                        </tr>
                        <?
                    }
                }
                ?>
            </table>
        </form>
        <br><br>
        <style>
            i.fas.fa-pencil-alt {
                font-size: 20px;
                float: right;
            }
            a {
                color: #2da5da;
            }
        </style>
        <?
    }

}
