Merge pull request #19160 from kamil-tekiela/MessageType

Create MessageType enum
This commit is contained in:
Maurício Meneghini Fauth 2024-05-14 12:36:38 -03:00 committed by GitHub
commit 797fe78516
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
37 changed files with 163 additions and 160 deletions

View File

@ -22,6 +22,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\LanguageManager;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Server\Select;
use PhpMyAdmin\Theme\ThemeManager;
@ -210,7 +211,7 @@ final class HomeController implements InvocableController
$messageInstance->addParamHtml('</a>');
/* Show error if user has configured something, notice elsewhere */
if (! empty($config->settings['Servers'][Current::$server]['pmadb'])) {
$messageInstance->setType(Message::ERROR);
$messageInstance->setType(MessageType::Error);
}
$configStorageMessage = $messageInstance->getDisplay();

View File

@ -20,6 +20,7 @@ use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Import\Import;
use PhpMyAdmin\Import\ImportSettings;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ParseAnalyze;
use PhpMyAdmin\Plugins\Import\ImportFormat;
use PhpMyAdmin\ResponseRenderer;
@ -705,7 +706,7 @@ final class ImportController implements InvocableController
$this->response->addJSON('message', Message::success(ImportSettings::$message));
$this->response->addJSON(
'sql_query',
Generator::getMessage(ImportSettings::$message, $GLOBALS['sql_query'], 'success'),
Generator::getMessage(ImportSettings::$message, $GLOBALS['sql_query'], MessageType::Success),
);
} elseif ($GLOBALS['result'] === false) {
$this->response->setRequestStatus(false);

View File

@ -18,6 +18,7 @@ use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidDatabaseName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Operations;
use PhpMyAdmin\Plugins;
use PhpMyAdmin\Query\Utilities;
@ -289,7 +290,7 @@ final class DatabaseController implements InvocableController
$GLOBALS['message']->addParamHtml('</a>');
/* Show error if user has configured something, notice elsewhere */
if (! empty($config->settings['Servers'][Current::$server]['pmadb'])) {
$GLOBALS['message']->setType(Message::ERROR);
$GLOBALS['message']->setType(MessageType::Error);
}
}

View File

@ -18,6 +18,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Index;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Operations;
use PhpMyAdmin\Partitioning\Partition;
use PhpMyAdmin\Query\Generator as QueryGenerator;
@ -371,7 +372,7 @@ final class TableController implements InvocableController
if ($warningMessages !== []) {
$newMessage = new Message();
$newMessage->addMessagesString($warningMessages);
$newMessage->setType(Message::ERROR);
$newMessage->setType(MessageType::Error);
if ($request->isAjax()) {
$this->response->setRequestStatus(false);
$this->response->addJSON('message', $newMessage);

View File

@ -15,6 +15,7 @@ use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Url;
use PhpMyAdmin\Util;
@ -86,7 +87,7 @@ final class ViewController implements InvocableController
$GLOBALS['urlParams']['goto'] = $GLOBALS['urlParams']['back'] = Url::getFromRoute('/view/operations');
$message = new Message();
$type = 'success';
$type = MessageType::Success;
$newname = $request->getParsedBodyParam('new_name');
$warningMessages = [];
@ -118,12 +119,12 @@ final class ViewController implements InvocableController
$message->addText(__('Error'));
}
$type = $result ? 'success' : 'error';
$type = $result ? MessageType::Success : MessageType::Error;
}
if ($warningMessages !== []) {
$message->addMessagesString($warningMessages);
$message->setType(Message::ERROR);
$message->setType(MessageType::Error);
}
$this->response->addHTML(Generator::getMessage(

View File

@ -13,6 +13,7 @@ use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Url;
use PhpMyAdmin\Util;
@ -85,7 +86,7 @@ final class CreateController implements InvocableController
$json = [
'message' => $message,
'sql_query' => Generator::getMessage('', $sqlQuery, 'success'),
'sql_query' => Generator::getMessage('', $sqlQuery, MessageType::Success),
'url' => $scriptName . Url::getCommon(
['db' => $newDb],
! str_contains($scriptName, '?') ? '?' : '&',

View File

@ -17,6 +17,7 @@ use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\ColumnsDefinition;
use PhpMyAdmin\Transformations;
@ -136,7 +137,7 @@ final class AddFieldController implements InvocableController
$GLOBALS['message']->addParam(Current::$table);
$this->response->addJSON(
'message',
Generator::getMessage($GLOBALS['message'], $GLOBALS['sql_query'], 'success'),
Generator::getMessage($GLOBALS['message'], $GLOBALS['sql_query'], MessageType::Success),
);
// Give an URL to call and use to appends the structure after the success message

View File

@ -15,6 +15,7 @@ use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
use PhpMyAdmin\Url;
@ -118,7 +119,7 @@ final class FindReplaceController implements InvocableController
Generator::getMessage(
__('Your SQL query has been executed successfully.'),
null,
'success',
MessageType::Success,
),
);
}

View File

@ -16,6 +16,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Index;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Indexes;
use PhpMyAdmin\Template;
@ -131,7 +132,7 @@ final class IndexRenameController implements InvocableController
$message->addParam($tableName->getName());
$this->response->addJSON(
'message',
Generator::getMessage($message, $sqlQuery, 'success'),
Generator::getMessage($message, $sqlQuery, MessageType::Success),
);
$indexes = Index::getFromTable($this->dbi, $tableName->getName(), $databaseName->getName());

View File

@ -17,6 +17,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Index;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Indexes;
use PhpMyAdmin\Template;
@ -143,7 +144,7 @@ final class IndexesController implements InvocableController
$message->addParam(Current::$table);
$this->response->addJSON(
'message',
Generator::getMessage($message, $sqlQuery, 'success'),
Generator::getMessage($message, $sqlQuery, MessageType::Success),
);
$indexes = Index::getFromTable($this->dbi, Current::$table, Current::$database);

View File

@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Maintenance;
use Webmozart\Assert\Assert;
@ -71,7 +72,7 @@ final class AnalyzeController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
$this->response->render('table/maintenance/analyze', ['message' => $message, 'rows' => $rows]);

View File

@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Maintenance;
use Webmozart\Assert\Assert;
@ -71,7 +72,7 @@ final class CheckController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
$indexesProblems = $this->model->getIndexesProblems($database, $selectedTables);

View File

@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Maintenance;
use Webmozart\Assert\Assert;
@ -71,7 +72,7 @@ final class ChecksumController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
$this->response->render('table/maintenance/checksum', [

View File

@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Maintenance;
use Webmozart\Assert\Assert;
@ -71,7 +72,7 @@ final class OptimizeController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
$this->response->render('table/maintenance/optimize', ['message' => $message, 'rows' => $rows]);

View File

@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Maintenance;
use Webmozart\Assert\Assert;
@ -71,7 +72,7 @@ final class RepairController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
$this->response->render('table/maintenance/repair', ['message' => $message, 'rows' => $rows]);

View File

@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Partitioning\Maintenance;
use PhpMyAdmin\ResponseRenderer;
use Webmozart\Assert\Assert;
@ -45,7 +46,7 @@ final class AnalyzeController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
$this->response->render('table/partition/analyze', [

View File

@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Partitioning\Maintenance;
use PhpMyAdmin\ResponseRenderer;
use Webmozart\Assert\Assert;
@ -45,7 +46,7 @@ final class CheckController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
$this->response->render('table/partition/check', [

View File

@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Partitioning\Maintenance;
use PhpMyAdmin\ResponseRenderer;
use Webmozart\Assert\Assert;
@ -46,13 +47,13 @@ final class DropController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
} else {
$message = Generator::getMessage(
__('Error'),
$query,
'error',
MessageType::Error,
);
}

View File

@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Partitioning\Maintenance;
use PhpMyAdmin\ResponseRenderer;
use Webmozart\Assert\Assert;
@ -45,7 +46,7 @@ final class OptimizeController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
$this->response->render('table/partition/optimize', [

View File

@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Partitioning\Maintenance;
use PhpMyAdmin\ResponseRenderer;
use Webmozart\Assert\Assert;
@ -46,13 +47,13 @@ final class RebuildController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
} else {
$message = Generator::getMessage(
__('Error'),
$query,
'error',
MessageType::Error,
);
}

View File

@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Partitioning\Maintenance;
use PhpMyAdmin\ResponseRenderer;
use Webmozart\Assert\Assert;
@ -45,7 +46,7 @@ final class RepairController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
$this->response->render('table/partition/repair', [

View File

@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\InvalidIdentifier;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Partitioning\Maintenance;
use PhpMyAdmin\ResponseRenderer;
use Webmozart\Assert\Assert;
@ -46,13 +47,13 @@ final class TruncateController implements InvocableController
$message = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$query,
'success',
MessageType::Success,
);
} else {
$message = Generator::getMessage(
__('Error'),
$query,
'error',
MessageType::Error,
);
}

View File

@ -16,6 +16,7 @@ use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Index;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Table;
use PhpMyAdmin\Template;
@ -139,7 +140,7 @@ final class RelationController implements InvocableController
Generator::getMessage(
__('Your SQL query has been executed successfully.'),
null,
'success',
MessageType::Success,
),
);
}
@ -324,7 +325,7 @@ final class RelationController implements InvocableController
Generator::getMessage(
__('Display column was successfully updated.'),
'',
'success',
MessageType::Success,
),
);
}
@ -358,7 +359,7 @@ final class RelationController implements InvocableController
Generator::getMessage(
__('Internal relationships were successfully updated.'),
'',
'success',
MessageType::Success,
),
);
}

View File

@ -19,6 +19,7 @@ use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\InsertEdit;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Plugins\IOTransformationsPlugin;
use PhpMyAdmin\Query\Generator as QueryGenerator;
use PhpMyAdmin\ResponseRenderer;
@ -324,19 +325,19 @@ final class ReplaceController implements InvocableController
if ($rowSkipped) {
$gotoInclude = '/table/change';
$GLOBALS['message']->addMessagesString($insertErrors, '<br>');
$GLOBALS['message']->setType(Message::ERROR);
$GLOBALS['message']->setType(MessageType::Error);
}
$GLOBALS['message']->addMessages($lastMessages, '<br>');
if (! empty($warningMessages)) {
$GLOBALS['message']->addMessagesString($warningMessages, '<br>');
$GLOBALS['message']->setType(Message::ERROR);
$GLOBALS['message']->setType(MessageType::Error);
}
if (! empty($errorMessages)) {
$GLOBALS['message']->addMessagesString($errorMessages);
$GLOBALS['message']->setType(Message::ERROR);
$GLOBALS['message']->setType(MessageType::Error);
}
/**

View File

@ -14,6 +14,7 @@ use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Partitioning\TablePartitionDefinition;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\SqlParser\Parser;
@ -266,7 +267,7 @@ final class PartitioningController implements InvocableController
);
$message->addParam(Current::$table);
$this->response->addHTML(
Generator::getMessage($message, $sqlQuery, 'success'),
Generator::getMessage($message, $sqlQuery, MessageType::Success),
);
}
}

View File

@ -16,6 +16,7 @@ use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Index;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Table\Table;
use PhpMyAdmin\Table\UiProperty;
@ -219,7 +220,7 @@ final class SaveController implements InvocableController
$message->addParam(Current::$table);
$this->response->addHTML(
Generator::getMessage($message, $sqlQuery, 'success'),
Generator::getMessage($message, $sqlQuery, MessageType::Success),
);
} else {
// An error happened while inserting/updating a table definition
@ -265,7 +266,7 @@ final class SaveController implements InvocableController
__('Query error') . ':<br>' . $origError,
);
$this->response->addHTML(
Generator::getMessage($message, $sqlQuery, 'error'),
Generator::getMessage($message, $sqlQuery, MessageType::Error),
);
$regenerate = true;
}

View File

@ -10,6 +10,7 @@ use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\UserPassword;
@ -76,14 +77,18 @@ final class UserPasswordController implements InvocableController
);
if ($request->isAjax()) {
$sqlQuery = Generator::getMessage($GLOBALS['change_password_message']['msg'], $sqlQuery, 'success');
$sqlQuery = Generator::getMessage(
$GLOBALS['change_password_message']['msg'],
$sqlQuery,
MessageType::Success,
);
$this->response->addJSON('message', $sqlQuery);
return null;
}
$this->response->addHTML('<h1>' . __('Change password') . '</h1>' . "\n\n");
$this->response->addHTML(Generator::getMessage($message, $sqlQuery, 'success'));
$this->response->addHTML(Generator::getMessage($message, $sqlQuery, MessageType::Success));
$this->response->render('user_password', []);
return null;

View File

@ -16,6 +16,7 @@ use PhpMyAdmin\FieldMetadata;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Index;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Plugins\Transformations\Output\Text_Octetstream_Sql;
use PhpMyAdmin\Plugins\Transformations\Output\Text_Plain_Json;
use PhpMyAdmin\Plugins\Transformations\Output\Text_Plain_Sql;
@ -3143,12 +3144,12 @@ class Results
$afterCount,
);
$sqlQueryMessage = Generator::getMessage($message, $this->sqlQuery, 'success');
$sqlQueryMessage = Generator::getMessage($message, $this->sqlQuery, MessageType::Success);
} elseif (! $this->printView && ! $isLimitedDisplay) {
$sqlQueryMessage = Generator::getMessage(
__('Your SQL query has been executed successfully.'),
$this->sqlQuery,
'success',
MessageType::Success,
);
}

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Error;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Template;
use Throwable;
@ -277,30 +278,15 @@ class Error extends Message
};
}
/**
* returns level of error
*
* @return string level of error
*/
public function getLevel(): string
protected function getLevel(): MessageType
{
return match ($this->errorNumber) {
default => 'error',
E_ERROR => 'error',
E_WARNING => 'error',
E_PARSE => 'error',
E_NOTICE => 'notice',
E_CORE_ERROR => 'error',
E_CORE_WARNING => 'error',
E_COMPILE_ERROR => 'error',
E_COMPILE_WARNING => 'error',
E_USER_ERROR => 'error',
E_USER_WARNING => 'error',
E_USER_NOTICE => 'notice',
E_STRICT => 'notice',
E_DEPRECATED => 'notice',
E_USER_DEPRECATED => 'notice',
E_RECOVERABLE_ERROR => 'error',
default => MessageType::Error,
E_NOTICE,
E_USER_NOTICE,
E_STRICT,
E_DEPRECATED,
E_USER_DEPRECATED => MessageType::Notice,
};
}
@ -433,16 +419,10 @@ class Error extends Message
{
$this->isDisplayed(true);
$context = 'primary';
$level = $this->getLevel();
if ($level === 'error') {
$context = 'danger';
}
$template = new Template();
return $template->render('error/get_display', [
'context' => $context,
'context' => $this->getLevel() === MessageType::Error ? 'danger' : 'primary',
'is_user_error' => $this->isUserError(),
'type' => $this->getType(),
'file' => $this->getFile(),

View File

@ -15,6 +15,7 @@ use PhpMyAdmin\Exceptions\ExportException;
use PhpMyAdmin\FlashMessages;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Plugins;
use PhpMyAdmin\Plugins\ExportPlugin;
use PhpMyAdmin\Plugins\SchemaPlugin;
@ -437,14 +438,14 @@ class Export
if ($dumpBuffer !== '' && $writeResult !== strlen($dumpBuffer)) {
return new Message(
__('Insufficient space to save the file %s.'),
Message::ERROR,
MessageType::Error,
[$saveFilename],
);
}
return new Message(
__('Dump has been saved to file %s.'),
Message::SUCCESS,
MessageType::Success,
[$saveFilename],
);
}

View File

@ -12,6 +12,7 @@ use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Profiling;
use PhpMyAdmin\Providers\ServerVariables\ServerVariablesProvider;
use PhpMyAdmin\Query\Compatibility;
@ -389,7 +390,7 @@ class Generator
*
* @param Message|string $message the message to display
* @param string|null $sqlQuery the query to display
* @param string $type the type (level) of the message
* @param MessageType $type the type (level) of the message
*
* @throws Throwable
* @throws LoaderError
@ -399,7 +400,7 @@ class Generator
public static function getMessage(
Message|string $message,
string|null $sqlQuery = null,
string $type = 'notice',
MessageType $type = MessageType::Notice,
): string {
$retval = '';
@ -422,14 +423,7 @@ class Generator
}
if (is_string($message)) {
$context = Message::NOTICE;
if ($type === 'error') {
$context = Message::ERROR;
} elseif ($type === 'success') {
$context = Message::SUCCESS;
}
$message = new Message($message, $context);
$message = new Message($message, $type);
}
if (isset($GLOBALS['special_message'])) {
@ -443,10 +437,8 @@ class Generator
$retval .= '<div class="card mb-3 result_query">' . "\n";
$context = $message->getContext();
$message->isDisplayed(true);
$retval .= '<div class="alert alert-' . $context;
$retval .= '<div class="alert alert-' . $message->getContext();
$retval .= ' border-top-0 border-start-0 border-end-0 rounded-bottom-0 mb-0" role="alert">' . "\n";
$retval .= ' ' . $message->getMessage() . "\n";
$retval .= '</div>' . "\n";

View File

@ -47,10 +47,6 @@ use const ENT_COMPAT;
*/
class Message implements Stringable
{
public const SUCCESS = 1; // 0001
public const NOTICE = 2; // 0010
public const ERROR = 8; // 1000
/**
* The locale string identifier
*/
@ -92,14 +88,11 @@ class Message implements Stringable
/**
* @param string $string The message to be displayed
* @param int $type A numeric representation of the type of message
* @param mixed[] $params An array of parameters to use in the message
* constant definitions above
* @psalm-param self::SUCCESS|self::NOTICE|self::ERROR $type
* @param mixed[] $params An array of parameters to use in the message constant definitions above
*/
public function __construct(
string $string = '',
private int $type = self::NOTICE,
private MessageType $type = MessageType::Notice,
array $params = [],
) {
$this->setString($string);
@ -129,7 +122,7 @@ class Message implements Stringable
$string = __('Your SQL query has been executed successfully.');
}
return new Message($string, self::SUCCESS);
return new Message($string, MessageType::Success);
}
/**
@ -145,7 +138,7 @@ class Message implements Stringable
$string = __('Error');
}
return new Message($string, self::ERROR);
return new Message($string, MessageType::Error);
}
/**
@ -160,7 +153,7 @@ class Message implements Stringable
*/
public static function notice(string $string): self
{
return new Message($string, self::NOTICE);
return new Message($string, MessageType::Notice);
}
/**
@ -169,10 +162,8 @@ class Message implements Stringable
* shorthand for getting a customized message
*
* @param string $message A localized string
* @param int $type A numeric representation of the type of message
* @psalm-param self::SUCCESS|self::NOTICE|self::ERROR $type
*/
public static function raw(string $message, int $type = self::NOTICE): self
public static function raw(string $message, MessageType $type = MessageType::Notice): self
{
$r = new Message('', $type);
$r->setMessage($message);
@ -241,7 +232,7 @@ class Message implements Stringable
*/
public static function rawError(string $message): self
{
return self::raw($message, self::ERROR);
return self::raw($message, MessageType::Error);
}
/**
@ -265,22 +256,22 @@ class Message implements Stringable
*/
public static function rawSuccess(string $message): self
{
return self::raw($message, self::SUCCESS);
return self::raw($message, MessageType::Success);
}
public function isSuccess(): bool
{
return $this->type === self::SUCCESS;
return $this->type === MessageType::Success;
}
public function isNotice(): bool
{
return $this->type === self::NOTICE;
return $this->type === MessageType::Notice;
}
public function isError(): bool
{
return $this->type === self::ERROR;
return $this->type === MessageType::Error;
}
/**
@ -313,13 +304,7 @@ class Message implements Stringable
$this->string = $string;
}
/**
* set message type type
*
* @param int $type message type type to set
* @psalm-param self::SUCCESS|self::NOTICE|self::ERROR $type
*/
public function setType(int $type): void
public function setType(MessageType $type): void
{
$this->type = $type;
}
@ -470,7 +455,7 @@ class Message implements Stringable
public function getHash(): string
{
if ($this->hash === null) {
$this->hash = md5($this->type . $this->string . $this->message);
$this->hash = md5($this->type->getNumericalValue() . $this->string . $this->message);
}
return $this->hash;
@ -527,26 +512,17 @@ class Message implements Stringable
return $this->string;
}
/**
* returns level of message
*
* @return string level of message
*/
public function getLevel(): string
protected function getLevel(): MessageType
{
return match ($this->type) {
self::SUCCESS => 'success',
self::NOTICE => 'notice',
self::ERROR => 'error'
};
return $this->type;
}
public function getContext(): string
{
return match ($this->getLevel()) {
'error' => 'danger',
'success' => 'success',
default => 'primary',
MessageType::Error => 'danger',
MessageType::Success => 'success',
MessageType::Notice => 'primary',
};
}
@ -559,11 +535,9 @@ class Message implements Stringable
{
$this->isDisplayed(true);
$context = $this->getContext();
$template = new Template();
return $template->render('message', ['context' => $context, 'message' => $this->getMessage()]);
return $template->render('message', ['context' => $this->getContext(), 'message' => $this->getMessage()]);
}
/**
@ -592,9 +566,9 @@ class Message implements Stringable
public function getMessageWithIcon(string $message): string
{
$image = match ($this->getLevel()) {
'error' => 's_error',
'success' => 's_success',
default =>'s_notice',
MessageType::Error => 's_error',
MessageType::Success => 's_success',
MessageType::Notice =>'s_notice',
};
return self::notice(Html\Generator::getImage($image)) . ' ' . $message;

24
src/MessageType.php Normal file
View File

@ -0,0 +1,24 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin;
enum MessageType
{
case Success;
case Notice;
case Error;
/**
* This value is used in generation of MD5 code.
*/
public function getNumericalValue(): string
{
return match ($this) {
self::Success => '1',
self::Notice => '2',
self::Error => '8',
};
}
}

View File

@ -22,6 +22,7 @@ use PhpMyAdmin\Html\MySQLDocumentation;
use PhpMyAdmin\Identifiers\DatabaseName;
use PhpMyAdmin\Identifiers\TableName;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\Query\Compatibility;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;
@ -2606,7 +2607,7 @@ class Privileges
. 'if they have been changed manually. In this case, '
. 'you should %sreload the privileges%s before you continue.',
),
Message::NOTICE,
MessageType::Notice,
);
$flushnote->addParamHtml(
'<a href="' . Url::getFromRoute('/server/privileges', ['flush_privileges' => 1])
@ -2630,7 +2631,7 @@ class Privileges
null,
'priv_reload',
),
Message::NOTICE,
MessageType::Notice,
);
}

View File

@ -923,7 +923,7 @@ class Sql
$message = $this->getMessageForNoRowsReturned($messageToShow, $statementInfo, $numRows);
}
$queryMessage = Generator::getMessage($message, $GLOBALS['sql_query'], 'success');
$queryMessage = Generator::getMessage($message, $GLOBALS['sql_query'], MessageType::Success);
if (isset($GLOBALS['show_as_php'])) {
return $queryMessage;
@ -1184,7 +1184,7 @@ class Sql
Message|string $displayMessage,
): string {
if ($displayQuery !== null && $showSql && $sqlData === []) {
return Generator::getMessage($displayMessage, $displayQuery, 'success');
return Generator::getMessage($displayMessage, $displayQuery, MessageType::Success);
}
return '';
@ -1556,7 +1556,7 @@ class Sql
$message = $this->getMessageForNoRowsReturned($messageToShow, $statementInfo, 0);
return Generator::getMessage($message, $GLOBALS['sql_query'], 'success');
return Generator::getMessage($message, $GLOBALS['sql_query'], MessageType::Success);
}
// Handle disable/enable foreign key checks

View File

@ -15,6 +15,7 @@ use PhpMyAdmin\Display\Results as DisplayResults;
use PhpMyAdmin\FieldMetadata;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PhpMyAdmin\ParseAnalyze;
use PhpMyAdmin\Plugins\Transformations\Output\Text_Plain_External;
use PhpMyAdmin\Plugins\Transformations\Text_Plain_Link;
@ -1315,7 +1316,7 @@ class ResultsTest extends AbstractTestCase
'sql_query_message' => Generator::getMessage(
Message::success('Showing rows 0 - 2 (3 total, Query took 1.2340 seconds.)'),
$query,
'success',
MessageType::Success,
),
'navigation' => [
'page_selector' => '',
@ -1584,7 +1585,7 @@ class ResultsTest extends AbstractTestCase
'sql_query_message' => Generator::getMessage(
Message::success('Showing rows 0 - 1 (2 total, Query took 1.2340 seconds.)'),
$query,
'success',
MessageType::Success,
),
'navigation' => [
'page_selector' => '',

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
@ -40,7 +41,7 @@ class MessageTest extends AbstractTestCase
*/
public function testSuccess(): void
{
$this->object = new Message('test<&>', Message::SUCCESS);
$this->object = new Message('test<&>', MessageType::Success);
self::assertEquals($this->object, Message::success('test<&>'));
self::assertSame(
'Your SQL query has been executed successfully.',
@ -53,7 +54,7 @@ class MessageTest extends AbstractTestCase
*/
public function testError(): void
{
$this->object = new Message('test<&>', Message::ERROR);
$this->object = new Message('test<&>', MessageType::Error);
self::assertEquals($this->object, Message::error('test<&>'));
self::assertSame('Error', Message::error()->getString());
}
@ -63,7 +64,7 @@ class MessageTest extends AbstractTestCase
*/
public function testNotice(): void
{
$this->object = new Message('test<&>', Message::NOTICE);
$this->object = new Message('test<&>', MessageType::Notice);
self::assertEquals($this->object, Message::notice('test<&>'));
}
@ -72,7 +73,7 @@ class MessageTest extends AbstractTestCase
*/
public function testRawError(): void
{
$this->object = new Message('', Message::ERROR);
$this->object = new Message('', MessageType::Error);
$this->object->setMessage('test<&>');
$this->object->setBBCode(false);
@ -84,7 +85,7 @@ class MessageTest extends AbstractTestCase
*/
public function testRawNotice(): void
{
$this->object = new Message('', Message::NOTICE);
$this->object = new Message('', MessageType::Notice);
$this->object->setMessage('test<&>');
$this->object->setBBCode(false);
@ -96,7 +97,7 @@ class MessageTest extends AbstractTestCase
*/
public function testRawSuccess(): void
{
$this->object = new Message('', Message::SUCCESS);
$this->object = new Message('', MessageType::Success);
$this->object->setMessage('test<&>');
$this->object->setBBCode(false);
@ -109,7 +110,7 @@ class MessageTest extends AbstractTestCase
public function testIsSuccess(): void
{
self::assertFalse($this->object->isSuccess());
$this->object->setType(Message::SUCCESS);
$this->object->setType(MessageType::Success);
self::assertTrue($this->object->isSuccess());
}
@ -119,9 +120,9 @@ class MessageTest extends AbstractTestCase
public function testIsNotice(): void
{
self::assertTrue($this->object->isNotice());
$this->object->setType(Message::ERROR);
$this->object->setType(MessageType::Error);
self::assertFalse($this->object->isNotice());
$this->object->setType(Message::NOTICE);
$this->object->setType(MessageType::Notice);
self::assertTrue($this->object->isNotice());
}
@ -131,7 +132,7 @@ class MessageTest extends AbstractTestCase
public function testIsError(): void
{
self::assertFalse($this->object->isError());
$this->object->setType(Message::ERROR);
$this->object->setType(MessageType::Error);
self::assertTrue($this->object->isError());
}
@ -236,7 +237,7 @@ class MessageTest extends AbstractTestCase
{
$messages = [];
$messages[] = new Message('Test1');
$messages[] = new Message('PMA_Test2', Message::ERROR);
$messages[] = new Message('PMA_Test2', MessageType::Error);
$messages[] = new Message('Test3');
$this->object->addMessages($messages, '');
@ -282,7 +283,7 @@ class MessageTest extends AbstractTestCase
$this->object->setString('<&>test');
$this->object->setMessage('<&>test');
self::assertSame(
md5(Message::NOTICE . '<&>test<&>test'),
md5(MessageType::Notice->getNumericalValue() . '<&>test<&>test'),
$this->object->getHash(),
);
}
@ -328,16 +329,13 @@ class MessageTest extends AbstractTestCase
);
}
/**
* getLevel test
*/
public function testGetLevel(): void
public function testGetContext(): void
{
self::assertSame('notice', $this->object->getLevel());
$this->object->setType(Message::SUCCESS);
self::assertSame('success', $this->object->getLevel());
$this->object->setType(Message::ERROR);
self::assertSame('error', $this->object->getLevel());
self::assertSame('primary', $this->object->getContext());
$this->object->setType(MessageType::Success);
self::assertSame('success', $this->object->getContext());
$this->object->setType(MessageType::Error);
self::assertSame('danger', $this->object->getContext());
}
/**