Translated using Weblate (Slovenian)
[phpmyadmin.git] / libraries / routes.php
blob005aad20ac2a57886d4bff10998c1cf4daf9a318
1 <?php
3 declare(strict_types=1);
5 use FastRoute\RouteCollector;
6 use PhpMyAdmin\Controllers\AjaxController;
7 use PhpMyAdmin\Controllers\BrowseForeignersController;
8 use PhpMyAdmin\Controllers\ChangeLogController;
9 use PhpMyAdmin\Controllers\CheckRelationsController;
10 use PhpMyAdmin\Controllers\Database\CentralColumnsController;
11 use PhpMyAdmin\Controllers\Database\DataDictionaryController;
12 use PhpMyAdmin\Controllers\Database\DesignerController;
13 use PhpMyAdmin\Controllers\Database\EventsController;
14 use PhpMyAdmin\Controllers\Database\ExportController as DatabaseExportController;
15 use PhpMyAdmin\Controllers\Database\ImportController as DatabaseImportController;
16 use PhpMyAdmin\Controllers\Database\MultiTableQueryController;
17 use PhpMyAdmin\Controllers\Database\OperationsController;
18 use PhpMyAdmin\Controllers\Database\QueryByExampleController;
19 use PhpMyAdmin\Controllers\Database\RoutinesController;
20 use PhpMyAdmin\Controllers\Database\SearchController;
21 use PhpMyAdmin\Controllers\Database\SqlAutoCompleteController;
22 use PhpMyAdmin\Controllers\Database\SqlController as DatabaseSqlController;
23 use PhpMyAdmin\Controllers\Database\SqlFormatController;
24 use PhpMyAdmin\Controllers\Database\StructureController;
25 use PhpMyAdmin\Controllers\Database\TrackingController;
26 use PhpMyAdmin\Controllers\Database\TriggersController;
27 use PhpMyAdmin\Controllers\ErrorReportController;
28 use PhpMyAdmin\Controllers\ExportController;
29 use PhpMyAdmin\Controllers\GisDataEditorController;
30 use PhpMyAdmin\Controllers\HomeController;
31 use PhpMyAdmin\Controllers\ImportController;
32 use PhpMyAdmin\Controllers\ImportStatusController;
33 use PhpMyAdmin\Controllers\LicenseController;
34 use PhpMyAdmin\Controllers\LintController;
35 use PhpMyAdmin\Controllers\LogoutController;
36 use PhpMyAdmin\Controllers\NavigationController;
37 use PhpMyAdmin\Controllers\NormalizationController;
38 use PhpMyAdmin\Controllers\PhpInfoController;
39 use PhpMyAdmin\Controllers\Preferences\ExportController as PreferencesExportController;
40 use PhpMyAdmin\Controllers\Preferences\FeaturesController;
41 use PhpMyAdmin\Controllers\Preferences\ImportController as PreferencesImportController;
42 use PhpMyAdmin\Controllers\Preferences\MainPanelController;
43 use PhpMyAdmin\Controllers\Preferences\ManageController;
44 use PhpMyAdmin\Controllers\Preferences\NavigationController as PreferencesNavigationController;
45 use PhpMyAdmin\Controllers\Preferences\SqlController as PreferencesSqlController;
46 use PhpMyAdmin\Controllers\Preferences\TwoFactorController;
47 use PhpMyAdmin\Controllers\SchemaExportController;
48 use PhpMyAdmin\Controllers\Server\BinlogController;
49 use PhpMyAdmin\Controllers\Server\CollationsController;
50 use PhpMyAdmin\Controllers\Server\DatabasesController;
51 use PhpMyAdmin\Controllers\Server\EnginesController;
52 use PhpMyAdmin\Controllers\Server\ExportController as ServerExportController;
53 use PhpMyAdmin\Controllers\Server\ImportController as ServerImportController;
54 use PhpMyAdmin\Controllers\Server\PluginsController;
55 use PhpMyAdmin\Controllers\Server\PrivilegesController;
56 use PhpMyAdmin\Controllers\Server\ReplicationController;
57 use PhpMyAdmin\Controllers\Server\SqlController as ServerSqlController;
58 use PhpMyAdmin\Controllers\Server\Status\AdvisorController;
59 use PhpMyAdmin\Controllers\Server\Status\MonitorController;
60 use PhpMyAdmin\Controllers\Server\Status\ProcessesController;
61 use PhpMyAdmin\Controllers\Server\Status\QueriesController;
62 use PhpMyAdmin\Controllers\Server\Status\StatusController;
63 use PhpMyAdmin\Controllers\Server\Status\VariablesController as StatusVariables;
64 use PhpMyAdmin\Controllers\Server\UserGroupsController;
65 use PhpMyAdmin\Controllers\Server\VariablesController;
66 use PhpMyAdmin\Controllers\SqlController;
67 use PhpMyAdmin\Controllers\Table\AddFieldController;
68 use PhpMyAdmin\Controllers\Table\ChangeController;
69 use PhpMyAdmin\Controllers\Table\ChartController;
70 use PhpMyAdmin\Controllers\Table\CreateController;
71 use PhpMyAdmin\Controllers\Table\ExportController as TableExportController;
72 use PhpMyAdmin\Controllers\Table\FindReplaceController;
73 use PhpMyAdmin\Controllers\Table\GetFieldController;
74 use PhpMyAdmin\Controllers\Table\GisVisualizationController;
75 use PhpMyAdmin\Controllers\Table\ImportController as TableImportController;
76 use PhpMyAdmin\Controllers\Table\IndexesController;
77 use PhpMyAdmin\Controllers\Table\OperationsController as TableOperationsController;
78 use PhpMyAdmin\Controllers\Table\RecentFavoriteController;
79 use PhpMyAdmin\Controllers\Table\RelationController;
80 use PhpMyAdmin\Controllers\Table\ReplaceController;
81 use PhpMyAdmin\Controllers\Table\RowActionController;
82 use PhpMyAdmin\Controllers\Table\SearchController as TableSearchController;
83 use PhpMyAdmin\Controllers\Table\SqlController as TableSqlController;
84 use PhpMyAdmin\Controllers\Table\StructureController as TableStructureController;
85 use PhpMyAdmin\Controllers\Table\TrackingController as TableTrackingController;
86 use PhpMyAdmin\Controllers\Table\TriggersController as TableTriggersController;
87 use PhpMyAdmin\Controllers\Table\ZoomSearchController;
88 use PhpMyAdmin\Controllers\ThemesController;
89 use PhpMyAdmin\Controllers\TransformationOverviewController;
90 use PhpMyAdmin\Controllers\TransformationWrapperController;
91 use PhpMyAdmin\Controllers\UserPasswordController;
92 use PhpMyAdmin\Controllers\VersionCheckController;
93 use PhpMyAdmin\Controllers\ViewCreateController;
94 use PhpMyAdmin\Controllers\ViewOperationsController;
96 if (! defined('PHPMYADMIN')) {
97 exit;
100 return function (RouteCollector $routes) {
101 $routes->addGroup('', function (RouteCollector $routes) {
102 $routes->addRoute(['GET', 'POST'], '[/]', [HomeController::class, 'index']);
103 $routes->post('/set-theme', [HomeController::class, 'setTheme']);
104 $routes->post('/collation-connection', [HomeController::class, 'setCollationConnection']);
105 $routes->addRoute(['GET', 'POST'], '/recent-table', [HomeController::class, 'reloadRecentTablesList']);
106 $routes->addRoute(['GET', 'POST'], '/git-revision', [HomeController::class, 'gitRevision']);
108 $routes->addGroup('/ajax', function (RouteCollector $routes) {
109 $routes->post('/list-databases', [AjaxController::class, 'databases']);
110 $routes->post('/list-tables', [AjaxController::class, 'tables']);
111 $routes->post('/list-columns', [AjaxController::class, 'columns']);
112 $routes->post('/config-get', [AjaxController::class, 'getConfig']);
113 $routes->post('/config-set', [AjaxController::class, 'setConfig']);
115 $routes->addRoute(['GET', 'POST'], '/browse-foreigners', [BrowseForeignersController::class, 'index']);
116 $routes->get('/changelog', [ChangeLogController::class, 'index']);
117 $routes->addRoute(['GET', 'POST'], '/check-relations', [CheckRelationsController::class, 'index']);
118 $routes->addGroup('/database', function (RouteCollector $routes) {
119 $routes->addRoute(['GET', 'POST'], '/central-columns', [CentralColumnsController::class, 'index']);
120 $routes->get('/data-dictionary', [DataDictionaryController::class, 'index']);
121 $routes->addRoute(['GET', 'POST'], '/designer', [DesignerController::class, 'index']);
122 $routes->addRoute(['GET', 'POST'], '/events', [EventsController::class, 'index']);
123 $routes->addRoute(['GET', 'POST'], '/export', [DatabaseExportController::class, 'index']);
124 $routes->addRoute(['GET', 'POST'], '/import', [DatabaseImportController::class, 'index']);
125 $routes->addGroup('/multi-table-query', function (RouteCollector $routes) {
126 $routes->get('', [MultiTableQueryController::class, 'index']);
127 $routes->get('/tables', [MultiTableQueryController::class, 'table']);
128 $routes->post('/query', [MultiTableQueryController::class, 'displayResults']);
130 $routes->addRoute(['GET', 'POST'], '/operations', [OperationsController::class, 'index']);
131 $routes->addRoute(['GET', 'POST'], '/qbe', [QueryByExampleController::class, 'index']);
132 $routes->addRoute(['GET', 'POST'], '/routines', [RoutinesController::class, 'index']);
133 $routes->addRoute(['GET', 'POST'], '/search', [SearchController::class, 'index']);
134 $routes->addGroup('/sql', function (RouteCollector $routes) {
135 $routes->addRoute(['GET', 'POST'], '', [DatabaseSqlController::class, 'index']);
136 $routes->post('/autocomplete', [SqlAutoCompleteController::class, 'index']);
137 $routes->post('/format', [SqlFormatController::class, 'index']);
139 $routes->addGroup('/structure', function (RouteCollector $routes) {
140 $routes->addRoute(['GET', 'POST'], '', [StructureController::class, 'index']);
141 $routes->addRoute(['GET', 'POST'], '/favorite-table', [StructureController::class, 'addRemoveFavoriteTablesAction']);
142 $routes->addRoute(['GET', 'POST'], '/real-row-count', [StructureController::class, 'handleRealRowCountRequestAction']);
144 $routes->addRoute(['GET', 'POST'], '/tracking', [TrackingController::class, 'index']);
145 $routes->addRoute(['GET', 'POST'], '/triggers', [TriggersController::class, 'index']);
147 $routes->addRoute(['GET', 'POST'], '/error-report', [ErrorReportController::class, 'index']);
148 $routes->addRoute(['GET', 'POST'], '/export', [ExportController::class, 'index']);
149 $routes->addRoute(['GET', 'POST'], '/gis-data-editor', [GisDataEditorController::class, 'index']);
150 $routes->addRoute(['GET', 'POST'], '/import', [ImportController::class, 'index']);
151 $routes->addRoute(['GET', 'POST'], '/import-status', [ImportStatusController::class, 'index']);
152 $routes->get('/license', [LicenseController::class, 'index']);
153 $routes->addRoute(['GET', 'POST'], '/lint', [LintController::class, 'index']);
154 $routes->addRoute(['GET', 'POST'], '/logout', [LogoutController::class, 'index']);
155 $routes->addRoute(['GET', 'POST'], '/navigation', [NavigationController::class, 'index']);
156 $routes->addRoute(['GET', 'POST'], '/normalization', [NormalizationController::class, 'index']);
157 $routes->get('/phpinfo', [PhpInfoController::class, 'index']);
158 $routes->addGroup('/preferences', function (RouteCollector $routes) {
159 $routes->addRoute(['GET', 'POST'], '/export', [PreferencesExportController::class, 'index']);
160 $routes->addRoute(['GET', 'POST'], '/features', [FeaturesController::class, 'index']);
161 $routes->addRoute(['GET', 'POST'], '/import', [PreferencesImportController::class, 'index']);
162 $routes->addRoute(['GET', 'POST'], '/main-panel', [MainPanelController::class, 'index']);
163 $routes->addRoute(['GET', 'POST'], '/manage', [ManageController::class, 'index']);
164 $routes->addRoute(['GET', 'POST'], '/navigation', [PreferencesNavigationController::class, 'index']);
165 $routes->addRoute(['GET', 'POST'], '/sql', [PreferencesSqlController::class, 'index']);
166 $routes->addRoute(['GET', 'POST'], '/two-factor', [TwoFactorController::class, 'index']);
168 $routes->addRoute(['GET', 'POST'], '/schema-export', [SchemaExportController::class, 'index']);
169 $routes->addGroup('/server', function (RouteCollector $routes) {
170 $routes->addRoute(['GET', 'POST'], '/binlog', [BinlogController::class, 'index']);
171 $routes->get('/collations', [CollationsController::class, 'index']);
172 $routes->addGroup('/databases', function (RouteCollector $routes) {
173 $routes->addRoute(['GET', 'POST'], '', [DatabasesController::class, 'index']);
174 $routes->post('/create', [DatabasesController::class, 'create']);
175 $routes->post('/destroy', [DatabasesController::class, 'destroy']);
177 $routes->addGroup('/engines', function (RouteCollector $routes) {
178 $routes->get('', [EnginesController::class, 'index']);
179 $routes->get('/{engine}[/{page}]', [EnginesController::class, 'show']);
181 $routes->addRoute(['GET', 'POST'], '/export', [ServerExportController::class, 'index']);
182 $routes->addRoute(['GET', 'POST'], '/import', [ServerImportController::class, 'index']);
183 $routes->get('/plugins', [PluginsController::class, 'index']);
184 $routes->addRoute(['GET', 'POST'], '/privileges', [PrivilegesController::class, 'index']);
185 $routes->addRoute(['GET', 'POST'], '/replication', [ReplicationController::class, 'index']);
186 $routes->addRoute(['GET', 'POST'], '/sql', [ServerSqlController::class, 'index']);
187 $routes->addGroup('/status', function (RouteCollector $routes) {
188 $routes->get('', [StatusController::class, 'index']);
189 $routes->get('/advisor', [AdvisorController::class, 'index']);
190 $routes->addGroup('/monitor', function (RouteCollector $routes) {
191 $routes->get('', [MonitorController::class, 'index']);
192 $routes->post('/chart', [MonitorController::class, 'chartingData']);
193 $routes->post('/slow-log', [MonitorController::class, 'logDataTypeSlow']);
194 $routes->post('/general-log', [MonitorController::class, 'logDataTypeGeneral']);
195 $routes->post('/log-vars', [MonitorController::class, 'loggingVars']);
196 $routes->post('/query', [MonitorController::class, 'queryAnalyzer']);
198 $routes->addGroup('/processes', function (RouteCollector $routes) {
199 $routes->addRoute(['GET', 'POST'], '', [ProcessesController::class, 'index']);
200 $routes->post('/refresh', [ProcessesController::class, 'refresh']);
201 $routes->post('/kill/{id:\d+}', [ProcessesController::class, 'kill']);
203 $routes->get('/queries', [QueriesController::class, 'index']);
204 $routes->addRoute(['GET', 'POST'], '/variables', [StatusVariables::class, 'index']);
206 $routes->addRoute(['GET', 'POST'], '/user-groups', [UserGroupsController::class, 'index']);
207 $routes->addGroup('/variables', function (RouteCollector $routes) {
208 $routes->get('', [VariablesController::class, 'index']);
209 $routes->get('/get/{name}', [VariablesController::class, 'getValue']);
210 $routes->post('/set/{name}', [VariablesController::class, 'setValue']);
213 $routes->addGroup('/sql', function (RouteCollector $routes) {
214 $routes->addRoute(['GET', 'POST'], '', [SqlController::class, 'index']);
215 $routes->post('/get-relational-values', [SqlController::class, 'getRelationalValues']);
216 $routes->post('/get-enum-values', [SqlController::class, 'getEnumValues']);
217 $routes->post('/get-set-values', [SqlController::class, 'getSetValues']);
218 $routes->get('/get-default-fk-check-value', [SqlController::class, 'getDefaultForeignKeyCheckValue']);
219 $routes->post('/set-column-preferences', [SqlController::class, 'setColumnOrderOrVisibility']);
221 $routes->addGroup('/table', function (RouteCollector $routes) {
222 $routes->addRoute(['GET', 'POST'], '/add-field', [AddFieldController::class, 'index']);
223 $routes->addRoute(['GET', 'POST'], '/change', [ChangeController::class, 'index']);
224 $routes->addRoute(['GET', 'POST'], '/chart', [ChartController::class, 'index']);
225 $routes->addRoute(['GET', 'POST'], '/create', [CreateController::class, 'index']);
226 $routes->addRoute(['GET', 'POST'], '/export', [TableExportController::class, 'index']);
227 $routes->addRoute(['GET', 'POST'], '/find-replace', [FindReplaceController::class, 'index']);
228 $routes->addRoute(['GET', 'POST'], '/get-field', [GetFieldController::class, 'index']);
229 $routes->addRoute(['GET', 'POST'], '/gis-visualization', [GisVisualizationController::class, 'index']);
230 $routes->addRoute(['GET', 'POST'], '/import', [TableImportController::class, 'index']);
231 $routes->addRoute(['GET', 'POST'], '/indexes', [IndexesController::class, 'index']);
232 $routes->addRoute(['GET', 'POST'], '/operations', [TableOperationsController::class, 'index']);
233 $routes->addRoute(['GET', 'POST'], '/recent-favorite', [RecentFavoriteController::class, 'index']);
234 $routes->addRoute(['GET', 'POST'], '/relation', [RelationController::class, 'index']);
235 $routes->addRoute(['GET', 'POST'], '/replace', [ReplaceController::class, 'index']);
236 $routes->addRoute(['GET', 'POST'], '/row-action', [RowActionController::class, 'index']);
237 $routes->addRoute(['GET', 'POST'], '/search', [TableSearchController::class, 'index']);
238 $routes->addRoute(['GET', 'POST'], '/sql', [TableSqlController::class, 'index']);
239 $routes->addRoute(['GET', 'POST'], '/structure', [TableStructureController::class, 'index']);
240 $routes->addRoute(['GET', 'POST'], '/tracking', [TableTrackingController::class, 'index']);
241 $routes->addRoute(['GET', 'POST'], '/triggers', [TableTriggersController::class, 'index']);
242 $routes->addRoute(['GET', 'POST'], '/zoom-search', [ZoomSearchController::class, 'index']);
244 $routes->get('/themes', [ThemesController::class, 'index']);
245 $routes->addGroup('/transformation', function (RouteCollector $routes) {
246 $routes->addRoute(['GET', 'POST'], '/overview', [TransformationOverviewController::class, 'index']);
247 $routes->addRoute(['GET', 'POST'], '/wrapper', [TransformationWrapperController::class, 'index']);
249 $routes->addRoute(['GET', 'POST'], '/user-password', [UserPasswordController::class, 'index']);
250 $routes->addRoute(['GET', 'POST'], '/version-check', [VersionCheckController::class, 'index']);
251 $routes->addGroup('/view', function (RouteCollector $routes) {
252 $routes->addRoute(['GET', 'POST'], '/create', [ViewCreateController::class, 'index']);
253 $routes->addRoute(['GET', 'POST'], '/operations', [ViewOperationsController::class, 'index']);