Skip to content

Commit d85cb55

Browse files
Merge pull request #17677 from MauricioFauth/messages-route
Extract `js/messages.php` entry point into `/messages` route
2 parents 1891d58 + 87d695f commit d85cb55

File tree

10 files changed

+22
-74
lines changed

10 files changed

+22
-74
lines changed

js/global.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// js/messages.php
1+
// libraries/classes/Controllers/JavaScriptMessagesController.php
22
declare var Messages: { [p: string]: string };
33

44
// templates/javascript/variables.twig

js/messages.php

Lines changed: 0 additions & 64 deletions
This file was deleted.

libraries/classes/Common.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
use function explode;
2626
use function extension_loaded;
2727
use function function_exists;
28+
use function gmdate;
2829
use function hash_equals;
30+
use function header;
2931
use function htmlspecialchars;
3032
use function implode;
3133
use function ini_get;
@@ -41,6 +43,7 @@
4143
use function register_shutdown_function;
4244
use function session_id;
4345
use function strlen;
46+
use function time;
4447
use function trigger_error;
4548
use function urldecode;
4649

@@ -95,10 +98,20 @@ public static function run(): void
9598
$request = self::getRequest();
9699
$route = $request->getRoute();
97100

98-
if ($route === '/import-status' || $route === '/url') {
101+
if ($route === '/import-status' || $route === '/url' || $route === '/messages') {
99102
$GLOBALS['isMinimumCommon'] = true;
100103
}
101104

105+
if ($route === '/messages') {
106+
// Send correct type.
107+
header('Content-Type: text/javascript; charset=UTF-8');
108+
// Cache output in client
109+
// the nocache query parameter makes sure that this file is reloaded when config changes.
110+
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
111+
112+
define('PMA_NO_SESSION', true);
113+
}
114+
102115
$GLOBALS['containerBuilder'] = Core::getContainerBuilder();
103116

104117
$GLOBALS['errorHandler'] = $GLOBALS['containerBuilder']->get('error_handler');

libraries/classes/Header.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ private function addDefaultScripts(): void
141141
$this->scripts->addFile('vendor/jquery/jquery-ui-timepicker-addon.js');
142142
$this->scripts->addFile('menu_resizer.js');
143143
$this->scripts->addFile('cross_framing_protection.js');
144-
$this->scripts->addFile('messages.php', ['l' => $GLOBALS['lang']]);
144+
$this->scripts->addFile('index.php', ['route' => '/messages', 'l' => $GLOBALS['lang']]);
145145
$this->scripts->addFile('config.js');
146146
$this->scripts->addFile('functions.js');
147147
$this->scripts->addFile('navigation.js');

libraries/classes/Scripts.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ private function hasOnloadEvent(string $filename): bool
8888
{
8989
return ! str_contains($filename, 'jquery')
9090
&& ! str_contains($filename, 'codemirror')
91-
&& ! str_contains($filename, 'messages.php')
91+
&& ! str_contains($filename, 'index.php')
9292
&& ! str_contains($filename, 'ajax.js')
9393
&& ! str_contains($filename, 'datetimepicker.js')
9494
&& ! str_contains($filename, 'validator-messages.js')

libraries/routes.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use PhpMyAdmin\Controllers\GitInfoController;
1818
use PhpMyAdmin\Controllers\HomeController;
1919
use PhpMyAdmin\Controllers\Import;
20+
use PhpMyAdmin\Controllers\JavaScriptMessagesController;
2021
use PhpMyAdmin\Controllers\LicenseController;
2122
use PhpMyAdmin\Controllers\LintController;
2223
use PhpMyAdmin\Controllers\LogoutController;
@@ -128,6 +129,7 @@
128129
$routes->get('/license', LicenseController::class);
129130
$routes->addRoute(['GET', 'POST'], '/lint', LintController::class);
130131
$routes->addRoute(['GET', 'POST'], '/logout', LogoutController::class);
132+
$routes->get('/messages', JavaScriptMessagesController::class);
131133
$routes->addRoute(['GET', 'POST'], '/navigation', NavigationController::class);
132134
$routes->addGroup('/normalization', static function (RouteCollector $routes): void {
133135
$routes->addRoute(['GET', 'POST'], '', Normalization\MainController::class);

psalm.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
<directory name="setup"/>
1616
<directory name="test/classes"/>
1717
<directory name="test/selenium"/>
18-
<file name="js/messages.php"/>
1918
<file name="index.php"/>
2019
<file name="show_config_errors.php"/>
2120
<ignoreFiles>

scripts/check-release-excludes.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,6 @@ validateExtension() {
183183
;;
184184
index.php)
185185
;;
186-
js/messages.php)
187-
;;
188186
config.sample.inc.php)
189187
;;
190188
show_config_errors.php)

templates/scripts.twig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% for file in files %}
2-
<script data-cfasync="false" type="text/javascript" src="{{ base_dir }}js/
3-
{{- file.filename starts with 'vendor/' or file.filename starts with 'messages.php' ? file.filename : 'dist/' ~ file.filename -}}
2+
<script data-cfasync="false" type="text/javascript" src="{{ base_dir }}{{ not (file.filename starts with 'index.php') ? 'js/' -}}
3+
{{- file.filename starts with 'vendor/' or file.filename starts with 'index.php' ? file.filename : 'dist/' ~ file.filename -}}
44
{{- '.php' in file.filename ? get_common(file.params|merge({'v': version})) : '?v=' ~ version|url_encode }}"></script>
55
{% endfor %}
66

templates/setup/base.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<script type="text/javascript" src="../js/dist/setup/ajax.js"></script>
1414
<script type="text/javascript" src="../js/dist/config.js"></script>
1515
<script type="text/javascript" src="../js/dist/setup/scripts.js"></script>
16-
<script type="text/javascript" src="../js/messages.php"></script>
16+
<script type="text/javascript" src="../{{ url('/messages') }}"></script>
1717
</head>
1818
<body>
1919

0 commit comments

Comments
 (0)