<?php namespace Zotlabs\Module; use Zotlabs\Lib\PConfig; use Zotlabs\Daemon\Master; class Import_progress extends \Zotlabs\Web\Controller { function post() { if(! local_channel()) return; } function get() { if(! local_channel()) { return; } nav_set_selected('Channel Import'); // items $c = PConfig::Get(local_channel(), 'import', 'content_progress'); if ($c) { $total_cpages = floor(intval($c['items_total']) / intval($c['items_page'])); if(!$total_cpages) { $total_cpages = 1; // because of floor } $cpage = $c['last_page'] + 1; // because page count start at 0 $cprogress = intval(floor((intval($cpage) * 100) / $total_cpages)); $ccompleted_str = t('Item sync completed!'); if(argv(1) === 'resume_itemsync' && $cprogress < 100) { Master::Summon($c['next_cmd']); goaway('/import_progress'); } } else { $cprogress = 'waiting to start...'; if (PConfig::Get(local_channel(), 'import', 'content_completed')) { // There was nothing todo. Fake 100% and mention that there were no files found $cprogress = 100; } $ccompleted_str = t('Item sync completed but no items were found!'); } $cprogress_str = ((intval($cprogress)) ? $cprogress . '%' : $cprogress); // files $f = PConfig::Get(local_channel(), 'import', 'files_progress'); if ($f) { $total_fpages = floor(intval($f['files_total']) / intval($f['files_page'])); if(!$total_fpages) { $total_fpages = 1; } $fpage = $f['last_page'] + 1; $fprogress = intval(floor((intval($fpage) * 100) / $total_fpages)); $fcompleted_str = t('File sync completed!'); if(argv(1) === 'resume_filesync' && $fprogress < 100) { Master::Summon($f['next_cmd']); goaway('/import_progress'); } } else { $fprogress = 'waiting to start...'; if (PConfig::Get(local_channel(), 'import', 'files_completed')) { // There was nothing todo. Fake 100% and mention that there were no files found $fprogress = 100; } $fcompleted_str = t('File sync completed but no files were found!'); } $fprogress_str = ((intval($fprogress)) ? $fprogress . '%' : $fprogress); if(is_ajax()) { $ret = [ 'cprogress' => $cprogress, 'fprogress' => $fprogress ]; json_return_and_die($ret); } $o = replace_macros(get_markup_template("import_progress.tpl"), [ '$chtitle_str' => t('Channel clone status'), '$ctitle_str' => t('Item sync status'), '$ftitle_str' => t('File sync status'), '$cprogress_str' => $cprogress_str, '$cprogress' => intval($cprogress), '$fprogress_str' => $fprogress_str, '$fprogress' => intval($fprogress), '$fcompleted_str' => $fcompleted_str, '$ccompleted_str' => $ccompleted_str, '$chcompleted_str' => t('Channel cloning completed!'), '$resume_str' => t('Resume'), '$resume_helper_str' => t('Only resume if sync stalled!') ]); return $o; } }