diff options
author | Felipe Figueroa <amenadiel@gmail.com> | 2021-11-25 06:08:15 +0300 |
---|---|---|
committer | Felipe Figueroa <amenadiel@gmail.com> | 2021-11-25 06:08:15 +0300 |
commit | b74660b55e38fd359732a441eb14652dec65e067 (patch) | |
tree | 816dcba16c6356bf8fa5c312714def4eecb75fd9 /src/controllers/HistoryController.php | |
parent | f7b0193500faec8da57a29e907d9cf445b8356a8 (diff) |
Diffstat (limited to 'src/controllers/HistoryController.php')
-rw-r--r-- | src/controllers/HistoryController.php | 297 |
1 files changed, 0 insertions, 297 deletions
diff --git a/src/controllers/HistoryController.php b/src/controllers/HistoryController.php deleted file mode 100644 index 8bcbc618..00000000 --- a/src/controllers/HistoryController.php +++ /dev/null @@ -1,297 +0,0 @@ -<?php - -/** - * PHPPgAdmin6 - */ - -namespace PHPPgAdmin\Controller; - -use PHPPgAdmin\ArrayRecordSet; -use PHPPgAdmin\Decorators\Decorator; -use PHPPgAdmin\Traits\ServersTrait; - -/** - * Base controller class. - */ -class HistoryController extends BaseController -{ - use ServersTrait; - - public $EOF; - - public $fields; - - public $scripts = '<script type="text/javascript">window.inPopUp=true;</script>'; - - public $controller_title = 'strhistory'; - - /** - * Default method to render the controller according to the action parameter. - * - * @return null|string - */ - public function render() - { - switch ($this->action) { - case 'confdelhistory': - $this->doDelHistory($_REQUEST['queryid'], true); - - break; - case 'delhistory': - if (isset($_POST['yes'])) { - $this->doDelHistory($_REQUEST['queryid'], false); - } - - $this->doDefault(); - - break; - case 'confclearhistory': - $this->doClearHistory(true); - - break; - case 'clearhistory': - if (isset($_POST['yes'])) { - $this->doClearHistory(false); - } - - $this->doDefault(); - - break; - case 'download': - return $this->doDownloadHistory(); - - default: - $this->doDefault(); - } - - // Set the name of the window - $this->setWindowName('history'); - $this->view->offsetSet('excludeJsTree', true); - $this->view->offsetSet('inPopUp', true); - - return $this->printFooter(true, 'footer_sqledit.twig'); - } - - public function doDefault() - { - $data = $this->misc->getDatabaseAccessor(); - - $this->printHeader($this->headerTitle(), $this->scripts, true, 'header.twig'); - - // Bring to the front always - echo '<body onload="window.focus();">' . \PHP_EOL; - - echo '<form action="history" method="post">' . \PHP_EOL; - echo $this->printConnection('history'); - echo '</form><br />'; - - if (!isset($_REQUEST['database'])) { - echo \sprintf( - '<p>%s</p>', - $this->lang['strnodatabaseselected'] - ) . \PHP_EOL; - - return; - } - - if (isset($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']])) { - $history = new ArrayRecordSet($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']]); - - $columns = [ - 'query' => [ - 'title' => $this->lang['strsql'], - 'field' => Decorator::field('query'), - ], - 'paginate' => [ - 'title' => $this->lang['strpaginate'], - 'field' => Decorator::field('paginate'), - 'type' => 'yesno', - ], - 'actions' => [ - 'title' => $this->lang['stractions'], - ], - ]; - - $actions = [ - 'run' => [ - 'content' => $this->lang['strexecute'], - 'attr' => [ - 'href' => [ - 'url' => 'sql', - 'urlvars' => [ - 'subject' => 'history', - 'nohistory' => 't', - 'queryid' => Decorator::field('queryid'), - 'paginate' => Decorator::field('paginate'), - ], - ], - 'target' => 'detail', - ], - ], - 'remove' => [ - 'content' => $this->lang['strdelete'], - 'attr' => [ - 'href' => [ - 'url' => 'history', - 'urlvars' => [ - 'action' => 'confdelhistory', - 'queryid' => Decorator::field('queryid'), - ], - ], - ], - ], - ]; - - if (self::isRecordset($history)) { - echo $this->printTable($history, $columns, $actions, 'history-history', $this->lang['strnohistory']); - } - } else { - echo \sprintf( - '<p>%s</p>', - $this->lang['strnohistory'] - ) . \PHP_EOL; - } - - $navlinks = [ - 'refresh' => [ - 'attr' => [ - 'href' => [ - 'url' => 'history', - 'urlvars' => [ - 'action' => 'history', - 'server' => $_REQUEST['server'], - 'database' => $_REQUEST['database'], - ], - ], - ], - 'content' => $this->lang['strrefresh'], - ], - ]; - - if (isset($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']]) - && \count($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']])) { - $navlinks['download'] = [ - 'attr' => [ - 'href' => [ - 'url' => 'history', - 'urlvars' => [ - 'action' => 'download', - 'server' => $_REQUEST['server'], - 'database' => $_REQUEST['database'], - ], - ], - ], - 'content' => $this->lang['strdownload'], - ]; - $navlinks['clear'] = [ - 'attr' => [ - 'href' => [ - 'url' => 'history', - 'urlvars' => [ - 'action' => 'confclearhistory', - 'server' => $_REQUEST['server'], - 'database' => $_REQUEST['database'], - ], - ], - ], - 'content' => $this->lang['strclearhistory'], - ]; - } - -return $this->printNavLinks($navlinks, 'history-history', \get_defined_vars()); - } - - public function doDelHistory($qid, bool $confirm): void - { - if ($confirm) { - $this->printHeader($this->headerTitle(), $this->scripts); - - // Bring to the front always - echo '<body onload="window.focus();">' . \PHP_EOL; - - echo \sprintf( - '<h3>%s</h3>', - $this->lang['strdelhistory'] - ) . \PHP_EOL; - echo \sprintf( - '<p>%s</p>', - $this->lang['strconfdelhistory'] - ) . \PHP_EOL; - - echo '<pre>', \htmlentities($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']][$qid]['query'], \ENT_QUOTES, 'UTF-8'), '</pre>'; - echo '<form action="history" method="post">' . \PHP_EOL; - echo '<input type="hidden" name="action" value="delhistory" />' . \PHP_EOL; - echo \sprintf( - '<input type="hidden" name="queryid" value="%s" />', - $qid - ) . \PHP_EOL; - echo $this->view->form; - echo \sprintf( - '<input type="submit" name="yes" value="%s" />', - $this->lang['stryes'] - ) . \PHP_EOL; - echo \sprintf( - '<input type="submit" name="no" value="%s" />', - $this->lang['strno'] - ) . \PHP_EOL; - echo '</form>' . \PHP_EOL; - } else { - unset($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']][$qid]); - } - } - - public function doClearHistory(bool $confirm): void - { - if ($confirm) { - $this->printHeader($this->headerTitle(), $this->scripts); - - // Bring to the front always - echo '<body onload="window.focus();">' . \PHP_EOL; - - echo \sprintf( - '<h3>%s</h3>', - $this->lang['strclearhistory'] - ) . \PHP_EOL; - echo \sprintf( - '<p>%s</p>', - $this->lang['strconfclearhistory'] - ) . \PHP_EOL; - - echo '<form action="history" method="post">' . \PHP_EOL; - echo '<input type="hidden" name="action" value="clearhistory" />' . \PHP_EOL; - echo $this->view->form; - echo \sprintf( - '<input type="submit" name="yes" value="%s" />', - $this->lang['stryes'] - ) . \PHP_EOL; - echo \sprintf( - '<input type="submit" name="no" value="%s" />', - $this->lang['strno'] - ) . \PHP_EOL; - echo '</form>' . \PHP_EOL; - } else { - unset($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']]); - } - } - - public function doDownloadHistory(): void - { - \header('Content-Type: application/download'); - $datetime = \date('YmdHis'); - \header(\sprintf( - 'Content-Disposition: attachment; filename=history%s.sql', - $datetime - )); - - foreach ($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']] as $queries) { - $query = \rtrim($queries['query']); - echo $query; - - if (';' !== \mb_substr($query, -1)) { - echo ';'; - } - - echo \PHP_EOL; - } - } -} |