aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/tbl_tracking.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/tbl_tracking.php
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/tbl_tracking.php')
-rw-r--r--srcs/phpmyadmin/tbl_tracking.php209
1 files changed, 209 insertions, 0 deletions
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 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Table tracking page
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+use PhpMyAdmin\Message;
+use PhpMyAdmin\Response;
+use PhpMyAdmin\Tracker;
+use PhpMyAdmin\Tracking;
+
+if (! defined('ROOT_PATH')) {
+ define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
+}
+
+global $pmaThemeImage, $text_dir, $url_query;
+
+require_once ROOT_PATH . 'libraries/common.inc.php';
+
+//Get some js files needed for Ajax requests
+$response = Response::getInstance();
+$header = $response->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 .= '&amp;goto=tbl_tracking.php&amp;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 = '<br>';
+
+/**
+ * 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 .= '<br class="clearfloat">';
+
+$response->addHTML($html);