%PDF- %PDF-
Direktori : /home/lightco1/upgrade.lightco.com.au/administrator/components/com_akeeba/View/Log/ |
Current File : /home/lightco1/upgrade.lightco.com.au/administrator/components/com_akeeba/View/Log/Html.php |
<?php /** * @package AkeebaBackup * @copyright Copyright (c)2006-2017 Nicholas K. Dionysopoulos / Akeeba Ltd * @license GNU General Public License version 3, or later */ namespace Akeeba\Backup\Admin\View\Log; // Protect from unauthorized access defined('_JEXEC') or die(); use Akeeba\Backup\Admin\Model\Log; use Akeeba\Backup\Admin\View\ViewTraits\ProfileIdAndName; use Akeeba\Engine\Factory; use Akeeba\Engine\Platform; use FOF30\View\DataView\Html as BaseView; use JHtml; /** * View controller for the Log Viewer page */ class Html extends BaseView { use ProfileIdAndName; /** * JHtml list of available log files * * @var array */ public $logs = []; /** * Currently selected log file tag * * @var string */ public $tag; /** * Is the select log too big for being * * @var bool */ public $logTooBig = false; /** * Size of the log file * * @var int */ public $logSize = 0; /** * Big log file threshold: 2Mb */ const bigLogSize = 2097152; /** * The main page of the log viewer. It allows you to select a profile to display. When you do it displays the IFRAME * with the actual log content and the button to download the raw log file. * * @return void */ public function onBeforeMain() { // Get a list of log names /** @var Log $model */ $model = $this->getModel(); $this->logs = $model->getLogList(); $tag = $model->getState('tag'); if (empty($tag)) { $tag = null; } $this->tag = $tag; // Let's check if the file is too big to display if ($this->tag) { $file = Factory::getLog()->getLogFilename($this->tag); if (@file_exists($file)) { $this->logSize = filesize($file); $this->logTooBig = ($this->logSize >= self::bigLogSize); } } if ($this->logTooBig) { $src = 'index.php?option=com_akeeba&view=Log&task=download&attachment=0&tag=' . urlencode($this->tag); $js = <<<JS ;// Prevent broken 3PD Javascript from causing errors akeeba.System.documentReady(function (){ akeeba.System.addEventListener(document.getElementById('showlog'), 'click', function(){ var iFrameHolder = document.getElementById('iframe-holder'); iFrameHolder.insertAdjacentHTML('beforeend', '<iframe width="99%" src="$src" height="400px"/>'); this.style.display = 'none'; }); }); JS; $this->addJavascriptInline($js); } $this->getProfileIdAndName(); JHtml::_('formbehavior.chosen'); } }