. * */ namespace SP\Controller; use SP\SessionUtil; defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo')); /** * Clase encargada de preparar la presentación del registro de eventos * * @package Controller */ class EventlogC extends Controller implements ActionsInterface { /** * Número de máximo de registros por página */ const MAX_ROWS = 50; /** * Constructor * * @param $template \SP\Template con instancia de plantilla */ public function __construct(\SP\Template $template = null) { parent::__construct($template); $this->view->assign('sk', SessionUtil::getSessionKey(true)); } /** * Obtener los datos para la presentación de la tabla de eventos */ public function getEventlog() { $this->setAction(self::ACTION_EVL); if (!$this->checkAccess()) { return; } $this->view->addTemplate('eventlog'); $this->view->assign('rowClass', 'row_even'); $this->view->assign('isDemoMode', \SP\Util::demoIsEnabled() || !\SP\Session::getUserIsAdminApp()); $this->view->assign('limitStart', (isset($this->view->limitStart)) ? (int)$this->view->limitStart : 0); $this->view->assign('events', \SP\Log::getEvents($this->view->limitStart)); $this->view->assign('totalRows', \SP\Log::$numRows); $this->view->assign('firstPage', ceil(($this->view->limitStart + 1) / self::MAX_ROWS)); $this->view->assign('lastPage', ceil(\SP\Log::$numRows / self::MAX_ROWS)); $limitLast = (\SP\Log::$numRows % self::MAX_ROWS == 0) ? \SP\Log::$numRows - self::MAX_ROWS : floor(\SP\Log::$numRows / self::MAX_ROWS) * self::MAX_ROWS; $this->view->assign('pagerOnnClick', array( 'first' => 'sysPassUtil.Common.navLog(0,' . $this->view->limitStart . ')', 'last' => 'sysPassUtil.Common.navLog(' . $limitLast . ',' . $this->view->limitStart . ')', 'prev' => 'sysPassUtil.Common.navLog(' . ($this->view->limitStart - self::MAX_ROWS) . ',' . $this->view->limitStart . ')', 'next' => 'sysPassUtil.Common.navLog(' . ($this->view->limitStart + self::MAX_ROWS) . ',' . $this->view->limitStart . ')', )); } /** * Comprobar si es necesario limpiar el registro de eventos */ public function checkClear() { if ($this->view->clear && $this->view->sk && SessionUtil::checkSessionKey($this->view->sk)) { if (\SP\Log::clearEvents()) { \SP\Response::printJSON(_('Registro de eventos vaciado'), 0, "sysPassUtil.Common.doAction(" . ActionsInterface::ACTION_EVL . "); sysPassUtil.Common.scrollUp();"); } else { \SP\Response::printJSON(_('Error al vaciar el registro de eventos')); } } } }