From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- srcs/phpmyadmin/tbl_tracking.php | 209 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 srcs/phpmyadmin/tbl_tracking.php (limited to 'srcs/phpmyadmin/tbl_tracking.php') diff --git a/srcs/phpmyadmin/tbl_tracking.php b/srcs/phpmyadmin/tbl_tracking.php new file mode 100644 index 0000000..ff2074e --- /dev/null +++ b/srcs/phpmyadmin/tbl_tracking.php @@ -0,0 +1,209 @@ +getHeader(); +$scripts = $header->getScripts(); +$scripts->addFile('vendor/jquery/jquery.tablesorter.js'); +$scripts->addFile('table/tracking.js'); + +define('TABLE_MAY_BE_ABSENT', true); +require ROOT_PATH . 'libraries/tbl_common.inc.php'; + +/** @var Tracking $tracking */ +$tracking = $containerBuilder->get('tracking'); + +if (Tracker::isActive() + && Tracker::isTracked($GLOBALS["db"], $GLOBALS["table"]) + && ! (isset($_POST['toggle_activation']) + && $_POST['toggle_activation'] == 'deactivate_now') + && ! (isset($_POST['report_export']) + && $_POST['export_type'] == 'sqldumpfile') +) { + $msg = Message::notice( + sprintf( + __('Tracking of %s is activated.'), + htmlspecialchars($GLOBALS["db"] . '.' . $GLOBALS["table"]) + ) + ); + $response->addHTML($msg->getDisplay()); +} + +$url_query .= '&goto=tbl_tracking.php&back=tbl_tracking.php'; +$url_params['goto'] = 'tbl_tracking.php'; +$url_params['back'] = 'tbl_tracking.php'; +$data = []; +$entries = []; +$filter_ts_from = ''; +$filter_ts_to = ''; +$filter_users = []; +$selection_schema = false; +$selection_data = false; +$selection_both = false; + +// Init vars for tracking report +if (isset($_POST['report']) || isset($_POST['report_export'])) { + $data = Tracker::getTrackedData( + $GLOBALS['db'], + $GLOBALS['table'], + $_POST['version'] + ); + + + if (! isset($_POST['logtype'])) { + $_POST['logtype'] = 'schema_and_data'; + } + if ($_POST['logtype'] == 'schema') { + $selection_schema = true; + } elseif ($_POST['logtype'] == 'data') { + $selection_data = true; + } else { + $selection_both = true; + } + if (! isset($_POST['date_from'])) { + $_POST['date_from'] = $data['date_from']; + } + if (! isset($_POST['date_to'])) { + $_POST['date_to'] = $data['date_to']; + } + if (! isset($_POST['users'])) { + $_POST['users'] = '*'; + } + $filter_ts_from = strtotime($_POST['date_from']); + $filter_ts_to = strtotime($_POST['date_to']); + $filter_users = array_map('trim', explode(',', $_POST['users'])); +} + +// Prepare export +if (isset($_POST['report_export'])) { + $entries = $tracking->getEntries($data, $filter_ts_from, $filter_ts_to, $filter_users); +} + +// Export as file download +if (isset($_POST['report_export']) + && $_POST['export_type'] == 'sqldumpfile' +) { + $tracking->exportAsFileDownload($entries); +} + +$html = '
'; + +/** + * Actions + */ +if (isset($_POST['submit_mult'])) { + if (! empty($_POST['selected_versions'])) { + if ($_POST['submit_mult'] == 'delete_version') { + foreach ($_POST['selected_versions'] as $version) { + $tracking->deleteTrackingVersion($version); + } + $html .= Message::success( + __('Tracking versions deleted successfully.') + )->getDisplay(); + } + } else { + $html .= Message::notice( + __('No versions selected.') + )->getDisplay(); + } +} + +if (isset($_POST['submit_delete_version'])) { + $html .= $tracking->deleteTrackingVersion($_POST['version']); +} + +// Create tracking version +if (isset($_POST['submit_create_version'])) { + $html .= $tracking->createTrackingVersion(); +} + +// Deactivate tracking +if (isset($_POST['toggle_activation']) + && $_POST['toggle_activation'] == 'deactivate_now' +) { + $html .= $tracking->changeTracking('deactivate'); +} + +// Activate tracking +if (isset($_POST['toggle_activation']) + && $_POST['toggle_activation'] == 'activate_now' +) { + $html .= $tracking->changeTracking('activate'); +} + +// Export as SQL execution +if (isset($_POST['report_export']) && $_POST['export_type'] == 'execution') { + $sql_result = $tracking->exportAsSqlExecution($entries); + $msg = Message::success(__('SQL statements executed.')); + $html .= $msg->getDisplay(); +} + +// Export as SQL dump +if (isset($_POST['report_export']) && $_POST['export_type'] == 'sqldump') { + $html .= $tracking->exportAsSqlDump($entries); +} + +/* + * Schema snapshot + */ +if (isset($_POST['snapshot'])) { + $html .= $tracking->getHtmlForSchemaSnapshot($url_query); +} +// end of snapshot report + +/* + * Tracking report + */ +if (isset($_POST['report']) + && (isset($_POST['delete_ddlog']) || isset($_POST['delete_dmlog'])) +) { + $html .= $tracking->deleteTrackingReportRows($data); +} + +if (isset($_POST['report']) || isset($_POST['report_export'])) { + $html .= $tracking->getHtmlForTrackingReport( + $url_query, + $data, + $url_params, + $selection_schema, + $selection_data, + $selection_both, + $filter_ts_to, + $filter_ts_from, + $filter_users + ); +} // end of report + +/* + * Main page + */ +$html .= $tracking->getHtmlForMainPage( + $url_query, + $url_params, + $pmaThemeImage, + $text_dir +); + +$html .= '
'; + +$response->addHTML($html); -- cgit