Skip to content

Commit

Permalink
Extract js/messages.php entry point into a route
Browse files Browse the repository at this point in the history
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
  • Loading branch information
MauricioFauth committed Aug 7, 2022
1 parent 2d41333 commit 87d695f
Show file tree
Hide file tree
Showing 10 changed files with 22 additions and 74 deletions.
2 changes: 1 addition & 1 deletion js/global.d.ts
@@ -1,4 +1,4 @@
// js/messages.php
// libraries/classes/Controllers/JavaScriptMessagesController.php
declare var Messages: { [p: string]: string };

// templates/javascript/variables.twig
Expand Down
64 changes: 0 additions & 64 deletions js/messages.php

This file was deleted.

15 changes: 14 additions & 1 deletion libraries/classes/Common.php
Expand Up @@ -25,7 +25,9 @@
use function explode;
use function extension_loaded;
use function function_exists;
use function gmdate;
use function hash_equals;
use function header;
use function htmlspecialchars;
use function implode;
use function ini_get;
Expand All @@ -41,6 +43,7 @@
use function register_shutdown_function;
use function session_id;
use function strlen;
use function time;
use function trigger_error;
use function urldecode;

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

if ($route === '/import-status' || $route === '/url') {
if ($route === '/import-status' || $route === '/url' || $route === '/messages') {
$GLOBALS['isMinimumCommon'] = true;
}

if ($route === '/messages') {
// Send correct type.
header('Content-Type: text/javascript; charset=UTF-8');
// Cache output in client
// the nocache query parameter makes sure that this file is reloaded when config changes.
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');

define('PMA_NO_SESSION', true);
}

$GLOBALS['containerBuilder'] = Core::getContainerBuilder();

$GLOBALS['errorHandler'] = $GLOBALS['containerBuilder']->get('error_handler');
Expand Down
2 changes: 1 addition & 1 deletion libraries/classes/Header.php
Expand Up @@ -141,7 +141,7 @@ private function addDefaultScripts(): void
$this->scripts->addFile('vendor/jquery/jquery-ui-timepicker-addon.js');
$this->scripts->addFile('menu_resizer.js');
$this->scripts->addFile('cross_framing_protection.js');
$this->scripts->addFile('messages.php', ['l' => $GLOBALS['lang']]);
$this->scripts->addFile('index.php', ['route' => '/messages', 'l' => $GLOBALS['lang']]);
$this->scripts->addFile('config.js');
$this->scripts->addFile('functions.js');
$this->scripts->addFile('navigation.js');
Expand Down
2 changes: 1 addition & 1 deletion libraries/classes/Scripts.php
Expand Up @@ -88,7 +88,7 @@ private function hasOnloadEvent(string $filename): bool
{
return ! str_contains($filename, 'jquery')
&& ! str_contains($filename, 'codemirror')
&& ! str_contains($filename, 'messages.php')
&& ! str_contains($filename, 'index.php')
&& ! str_contains($filename, 'ajax.js')
&& ! str_contains($filename, 'datetimepicker.js')
&& ! str_contains($filename, 'validator-messages.js')
Expand Down
2 changes: 2 additions & 0 deletions libraries/routes.php
Expand Up @@ -17,6 +17,7 @@
use PhpMyAdmin\Controllers\GitInfoController;
use PhpMyAdmin\Controllers\HomeController;
use PhpMyAdmin\Controllers\Import;
use PhpMyAdmin\Controllers\JavaScriptMessagesController;
use PhpMyAdmin\Controllers\LicenseController;
use PhpMyAdmin\Controllers\LintController;
use PhpMyAdmin\Controllers\LogoutController;
Expand Down Expand Up @@ -128,6 +129,7 @@
$routes->get('/license', LicenseController::class);
$routes->addRoute(['GET', 'POST'], '/lint', LintController::class);
$routes->addRoute(['GET', 'POST'], '/logout', LogoutController::class);
$routes->get('/messages', JavaScriptMessagesController::class);
$routes->addRoute(['GET', 'POST'], '/navigation', NavigationController::class);
$routes->addGroup('/normalization', static function (RouteCollector $routes): void {
$routes->addRoute(['GET', 'POST'], '', Normalization\MainController::class);
Expand Down
1 change: 0 additions & 1 deletion psalm.xml
Expand Up @@ -15,7 +15,6 @@
<directory name="setup"/>
<directory name="test/classes"/>
<directory name="test/selenium"/>
<file name="js/messages.php"/>
<file name="index.php"/>
<file name="show_config_errors.php"/>
<ignoreFiles>
Expand Down
2 changes: 0 additions & 2 deletions scripts/check-release-excludes.sh
Expand Up @@ -183,8 +183,6 @@ validateExtension() {
;;
index.php)
;;
js/messages.php)
;;
config.sample.inc.php)
;;
show_config_errors.php)
Expand Down
4 changes: 2 additions & 2 deletions templates/scripts.twig
@@ -1,6 +1,6 @@
{% for file in files %}
<script data-cfasync="false" type="text/javascript" src="{{ base_dir }}js/
{{- file.filename starts with 'vendor/' or file.filename starts with 'messages.php' ? file.filename : 'dist/' ~ file.filename -}}
<script data-cfasync="false" type="text/javascript" src="{{ base_dir }}{{ not (file.filename starts with 'index.php') ? 'js/' -}}
{{- file.filename starts with 'vendor/' or file.filename starts with 'index.php' ? file.filename : 'dist/' ~ file.filename -}}
{{- '.php' in file.filename ? get_common(file.params|merge({'v': version})) : '?v=' ~ version|url_encode }}"></script>
{% endfor %}

Expand Down
2 changes: 1 addition & 1 deletion templates/setup/base.twig
Expand Up @@ -13,7 +13,7 @@
<script type="text/javascript" src="../js/dist/setup/ajax.js"></script>
<script type="text/javascript" src="../js/dist/config.js"></script>
<script type="text/javascript" src="../js/dist/setup/scripts.js"></script>
<script type="text/javascript" src="../js/messages.php"></script>
<script type="text/javascript" src="../{{ url('/messages') }}"></script>
</head>
<body>

Expand Down

0 comments on commit 87d695f

Please sign in to comment.