<?php
include_once("c_setting_update.php");

class c_page_cab_setting_update_erase_versions extends c_page_cab_setting_update
{
  public $h1='Обновление - контроль версий' ;


    function block_main()
     { $this->page_title() ;
       if (!$this->filter['vers']) $this->panel_versions_info() ;
       else                        $this->panel_select_version_info() ;
     }

     function panel_versions_info()
     {
       $vers_class=$this->get_list_class_dir(array('include_current_version'=>1)) ;
       $vers_engine=$this->get_list_engine_dir() ;
       $vers_local=$this->get_list_locals_dir(array('include_current_version'=>1)) ;
       //damp_array($vers_class,1,-1);
         $this->form->form_open();
         if (_sizeof($vers_class)) $this->show_vers_info($vers_class,'Установленные версии ПО ЭСМО',_CLASS_) ;
         if (_sizeof($vers_engine)) $this->show_vers_info($vers_engine,'Установленные версии ПО ЭСМО engine') ;
         if (_sizeof($vers_local)) $this->show_vers_info($vers_local,'Установленные версии ПО ЭСМО local',_CLASS_LOCAL_) ;

         ?><div class="left">
             <button class="button v2 left" cmd="aspmo_setting/delete_check_class_dir">Удалить выбранные версии ПО</button>
            <button class="button v2 left" cmd="aspmo_setting/start_versions_file_info">Показать статистику по версиям</button>
             <!--<button class="button v2 left" cmd="aspmo_setting/delete_all_class_dir">Удалить все старые версии ПО, кроме последних трех</button>-->
           </div>
         <?
         $this->form->form_close();
     }

     function show_vers_info($recs,$title,$cur_version='-')
     {  ?><h2><?echo $title?></h2>
         <table class="basic fz_small" id="table_ajax_upload_td">
            <tr><th>Выбор</th><th>Директория</th><th>Ветка</th><th>Релиз</th><th>Дата релиза</th><th>Дата загрузки</th>
                <th>Дата последней правки</th><th>Число файлов</th><th>Размер релиза</th><th>Число правок</th><th>Скачать архив</th></tr>
         <? $i=1 ;
            if (_sizeof($recs)) foreach($recs as $vers)
             { $t=filemtime(_DIR_TO_ROOT.'/'.$vers['dir'].'/') ;
               ?><tr line="<?echo $i?>">
                    <td><?if ($vers['dir']!=$cur_version){?><input type="checkbox" name="_check[]" value="<?echo $vers['dir']?>"><?}?></td>
                    <td class="left"><a class=version_dir href="/cab/setting/update/erase_versions/[vers=<?echo $vers['dir']?>]/" target="_blank"><?echo $vers['dir']?></a><? ; if ($vers['dir']==$cur_version) echo ' (<span class="green">Текущая версия</span>)'?></td>
                    <td><?echo $vers['branch']?></td>
                    <td><?echo $vers['relis']?></td>
                    <td><?echo $vers['data']?></td>
                    <td><?echo date('d.m.Y H:i',$t)?></td>
                     <td id="line_<?echo $i?>_younger" class="stats_younger"></td>
                     <td id="line_<?echo $i?>_count" class="stats_count"></td>
                     <td id="line_<?echo $i?>_size" class="stats_size"></td>
                     <td id="line_<?echo $i?>_edit" class="stats_edit"></td>
                     <td id="line_<?echo $i?>_zip" class="stats_edit"><a cmd="aspmo_setting/download_zip" class="v2" dir="<?=$vers['dir']?>">Скачать</a></td>
                 </tr><?
               $i++ ;
             }
         ?></table><br>
         <script type="text/javascript">
          $j(document).ready(function()
              {

            /* стартуем расчет по кнопке

              var first_line=$j('#table_ajax_upload_td').find('tr[line]')[0] ;

             $j(first_line).find('td.stats_younger').html('<img src="/<?echo _CLASS_?>/assets/loader.white.tr.gif">') ;
             $j(first_line).find('td.stats_count').html('<img src="/<?echo _CLASS_?>/assets/loader.white.tr.gif">') ;
             $j(first_line).find('td.stats_size').html('<img src="/<?echo _CLASS_?>/assets/loader.white.tr.gif">') ;

             // асинхронный запрос, по ответу дергаем данные на следующую строку
             send_ajax_request({cmd:'aspmo_setting/get_version_files_info',version_dir:$j(first_line).find('a.version_dir').text(),line:$j(first_line).attr('line')},exec_ajax_cmd_success_JQ2) ;

              function exec_ajax_cmd_success_JQ2(data,status,link)
               { if (status=='success')
                  {  data=exec_ajax_cmd_success(link.responseXML) ;
                     // выполняем запрос на следующую строку
                     if (data.next_line>0)
                     { next_line=$j('#table_ajax_upload_td').find('tr[line]')[data.next_line-1] ;
                       if (next_line!=undefined)
                       {   $j(next_line).find('td.stats_younger').html('<img src="/<?echo _CLASS_?>/assets/loader.white.tr.gif">') ;
                           $j(next_line).find('td.stats_count').html('<img src="/<?echo _CLASS_?>/assets/loader.white.tr.gif">') ;
                           $j(next_line).find('td.stats_size').html('<img src="/<?echo _CLASS_?>/assets/loader.white.tr.gif">') ;
                           send_ajax_request({cmd:'aspmo_setting/get_version_files_info',version_dir:$j(next_line).find('a.version_dir').text(),line:$j(next_line).attr('line')},exec_ajax_cmd_success_JQ2) ;
                       }

                     }

                  }
               }
               */
              }) ;
         </script>
         <?

     }

     function panel_select_version_info()
     {
       $stats=[] ;
       $file_info=DISK()->exec_find_edit_file('/'.$this->filter['vers'].'/') ;
       foreach($file_info as $fname=>$t) $stats[$t][]=$fname ;
       //damp_array($stats);
       //damp_array($file_info);
       //$stats=DISK()->exec_find_edit_file_stats('/'.$this->filter['vers'].'/') ;
       //damp_array($stats);

       ?><table class="basic fz_small full auto"><tr><th>Дата</th><th>Число файлов</th><th>Файлы</th></tr><?
       if (_sizeof($stats)) foreach($stats as $t=>$arr_files) if ($t)
       { ?><tr>
            <td><?echo date('d.m.Y H:i:s',$t)?></td>
            <td><?echo _sizeof($arr_files)?></td>
            <td class="left"><? if (_sizeof($arr_files)<=20) echo implode('<br>',$arr_files) ;
                                else
                                { ?><div class="toggle_hidden underline">Показать файлы</div>
                                    <div class="hidden"><?echo implode('<br>',$arr_files) ;?></div><?
                                }

                            ?></td>
           </tr>
         <?
             }
       ?></table>
       <script type="text/javascript">
           $j(document).ready(function()
             { $j('body').on('click','div.toggle_hidden',function(){$j(this).next('div').toggleClass('hidden')}) ;
             }) ;
       </script>
       <?
     }





}



?>
