diff --git a/db_tracking.php b/db_tracking.php index 2b059343c3..85b282ed0b 100644 --- a/db_tracking.php +++ b/db_tracking.php @@ -128,7 +128,7 @@ $all_tables_result = Relation::queryAsControlUser($all_tables_query); if (is_object($all_tables_result) && $GLOBALS['dbi']->numRows($all_tables_result) > 0 ) { - Tracking::displayTrackedTables( + echo Tracking::getHtmlForTrackedTables( $GLOBALS['db'], $all_tables_result, $url_query, $pmaThemeImage, $text_dir, $cfgRelation ); diff --git a/libraries/classes/Tracking.php b/libraries/classes/Tracking.php index c5d94b3e1d..687ef98bac 100644 --- a/libraries/classes/Tracking.php +++ b/libraries/classes/Tracking.php @@ -1573,143 +1573,65 @@ class Tracking } /** - * Display tracked tables + * Get tracked tables * - * @param string $db current database - * @param object $all_tables_result result set of tracked tables - * @param string $url_query url query string - * @param string $pmaThemeImage path to theme's image folder - * @param string $text_dir text direction - * @param array $cfgRelation configuration storage info + * @param string $db current database + * @param object $allTablesResult result set of tracked tables + * @param string $urlQuery url query string + * @param string $pmaThemeImage path to theme's image folder + * @param string $textDir text direction + * @param array $cfgRelation configuration storage info * - * @return void + * @return string HTML */ - public static function displayTrackedTables( - $db, $all_tables_result, $url_query, $pmaThemeImage, $text_dir, array $cfgRelation + public static function getHtmlForTrackedTables( + $db, + $allTablesResult, + $urlQuery, + $pmaThemeImage, + $textDir, + array $cfgRelation ) { - ?> -
-

- -
- - - - - - - - - - - - - - - - fetchArray($all_tables_result)) { - list($table_name, $version_number) = $one_result; - $table_query = ' SELECT * FROM ' . + $versions = []; + while ($oneResult = $GLOBALS['dbi']->fetchArray($allTablesResult)) { + list($tableName, $versionNumber) = $oneResult; + $tableQuery = ' SELECT * FROM ' . Util::backquote($cfgRelation['db']) . '.' . Util::backquote($cfgRelation['tracking']) . ' WHERE `db_name` = \'' . $GLOBALS['dbi']->escapeString($_REQUEST['db']) . '\' AND `table_name` = \'' - . $GLOBALS['dbi']->escapeString($table_name) - . '\' AND `version` = \'' . $version_number . '\''; + . $GLOBALS['dbi']->escapeString($tableName) + . '\' AND `version` = \'' . $versionNumber . '\''; - $table_result = Relation::queryAsControlUser($table_query); - $version_data = $GLOBALS['dbi']->fetchArray($table_result); - - $tbl_link = 'tbl_tracking.php' . $url_query . '&table=' - . htmlspecialchars($version_data['table_name']); - $delete_link = 'db_tracking.php' . $url_query . '&table=' - . htmlspecialchars($version_data['table_name']) - . '&delete_tracking=true&'; - $checkbox_id = "selected_tbl_" - . htmlspecialchars($version_data['table_name']); - ?> - - - - - - - - ' - , ''; - } - ?> - -
- - - - - - - - - ' - , '' - , '' , $versions , '' - , '  ' - , '' , $report , '' - , '  ' - , '' , $structure , '' - , '
- render( - array( - 'pma_theme_image' => $pmaThemeImage, - 'text_dir' => $text_dir, - 'form_name' => 'trackedForm', - ) + $tableResult = Relation::queryAsControlUser($tableQuery); + $versionData = $GLOBALS['dbi']->fetchArray($tableResult); + $versionData['status_button'] = self::getStatusButton( + $versionData, + $urlQuery ); - echo Util::getButtonOrImage( - 'submit_mult', 'mult_submit', - __('Delete tracking'), 'b_drop', 'delete_tracking' - ); - ?> -
-
- render([ + 'db' => $db, + 'versions' => $versions, + 'url_query' => $urlQuery, + 'text_dir' => $textDir, + 'pma_theme_image' => $pmaThemeImage, + ]); } /** - * Display tracking status button + * Get tracking status button * - * @param array $version_data data about tracking versions - * @param string $tbl_link link for tbl_tracking.php + * @param array $versionData data about tracking versions + * @param string $urlQuery url query string * - * @return void + * @return string HTML */ - public static function displayStatusButton(array $version_data, $tbl_link) + private static function getStatusButton(array $versionData, $urlQuery) { - $state = self::getVersionStatus($version_data); + $state = self::getVersionStatus($versionData); $options = array( 0 => array( 'label' => __('not active'), @@ -1722,8 +1644,12 @@ class Tracking 'selected' => ($state == 'active') ) ); - echo Util::toggleButton( - $tbl_link . '&version=' . $version_data['version'], + $link = 'tbl_tracking.php' . $urlQuery . '&table=' + . htmlspecialchars($versionData['table_name']) + . '&version=' . $versionData['version']; + + return Util::toggleButton( + $link, 'toggle_activation', $options, null diff --git a/templates/database/tracking/tracked_tables.twig b/templates/database/tracking/tracked_tables.twig new file mode 100644 index 0000000000..e88dfaaa57 --- /dev/null +++ b/templates/database/tracking/tracked_tables.twig @@ -0,0 +1,85 @@ +
+

{% trans 'Tracked tables' %}

+ +
+ {{ Url_getHiddenInputs(db) }} + + + + + + + + + + + + + + + {% for version in versions %} + + + + + + + + + + + {% endfor %} + +
{% trans 'Table' %}{% trans 'Last version' %}{% trans 'Created' %}{% trans 'Updated' %}{% trans 'Status' %}{% trans 'Action' %}{% trans 'Show' %}
+ + + + + {{ version.version }} + + {{ version.date_created }} + + {{ version.date_updated }} + + {{ version.status_button|raw }} + + + {{ Util_getIcon('b_drop', 'Delete tracking'|trans) }} + + + + {{ Util_getIcon('b_versions', 'Versions'|trans) }} + + + {{ Util_getIcon('b_report', 'Tracking report'|trans) }} + + + {{ Util_getIcon('b_props', 'Structure snapshot'|trans) }} + +
+ {% include 'select_all.twig' with { + 'pma_theme_image': pma_theme_image, + 'text_dir': text_dir, + 'form_name': 'trackedForm' + } only %} + {{ Util_getButtonOrImage( + 'submit_mult', + 'mult_submit', + 'Delete tracking'|trans, + 'b_drop', + 'delete_tracking' + ) }} +
+