Improve notifications: notificationName (#7287)

* notificationID

* 3 first examples

* fix

* notificationID -> notificationName

* Update lib/Minz/Request.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
This commit is contained in:
maTh
2025-02-02 19:15:03 +01:00
committed by GitHub
parent 99d5c48523
commit 1e8ef4bb72
5 changed files with 19 additions and 16 deletions

View File

@@ -75,7 +75,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
Minz_Translate::reset(FreshRSS_Context::userConf()->language);
invalidateHttpCache();
Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'display' ]);
Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'display' ], 'displayAction');
}
$this->view->themes = FreshRSS_Themes::get();

View File

@@ -189,7 +189,8 @@ class FreshRSS_entry_Controller extends FreshRSS_ActionController {
'c' => 'index',
'a' => 'index',
'params' => $params,
]
],
'readAction'
);
}
}

View File

@@ -918,7 +918,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
// Redirect to the main page with correct notification.
Minz_Request::good(_t('feedback.sub.feed.actualized', $feed->name()), [
'params' => ['get' => 'f_' . $id]
]);
], 'actualizeAction');
} elseif ($nbUpdatedFeeds >= 1) {
Minz_Request::good(_t('feedback.sub.feed.n_actualized', $nbUpdatedFeeds), []);
} else {

View File

@@ -84,14 +84,16 @@
<?php
$msg = '';
$status = 'closed';
$notificationName = '';
$notif = Minz_Request::getNotification();
if (!empty($notif)) {
$msg = $notif['content'];
$status = $notif['type'];
$notificationName = $notif['notificationName'];
invalidateHttpCache();
}
?>
<div role="dialog" id="notification" class="notification <?= $status ?>" aria-describedby="dialogMsg">
<div role="dialog" id="notification" class="notification <?= $status ?> <?= $notificationName ?>" aria-describedby="dialogMsg">
<span class="msg" id="dialogMsg"><?= $msg ?></span>
<button class="close" title="<?= _t('gen.action.close') ?>"><?= _i('close') ?></button>
</div>

View File

@@ -385,33 +385,33 @@ class Minz_Request {
return $_GET['rid'];
}
private static function setNotification(string $type, string $content): void {
private static function setNotification(string $type, string $content, string $notificationName = ''): void {
Minz_Session::lock();
$requests = Minz_Session::paramArray('requests');
$requests[self::requestId()] = [
'time' => time(),
'notification' => [ 'type' => $type, 'content' => $content ],
'notification' => [ 'type' => $type, 'content' => $content, 'notificationName' => $notificationName ],
];
Minz_Session::_param('requests', $requests);
Minz_Session::unlock();
}
public static function setGoodNotification(string $content): void {
self::setNotification('good', $content);
public static function setGoodNotification(string $content, string $notificationName = ''): void {
self::setNotification('good', $content, $notificationName);
}
public static function setBadNotification(string $content): void {
self::setNotification('bad', $content);
public static function setBadNotification(string $content, string $notificationName = ''): void {
self::setNotification('bad', $content, $notificationName);
}
/**
* @param $pop true (default) to remove the notification, false to keep it.
* @return array{type:string,content:string}|null
* @return array{type:string,content:string,notificationName:string}|null
*/
public static function getNotification(bool $pop = true): ?array {
$notif = null;
Minz_Session::lock();
/** @var array<string,array{time:int,notification:array{type:string,content:string}}> */
/** @var array<string,array{time:int,notification:array{type:string,content:string,notificationName:string}}> */
$requests = Minz_Session::paramArray('requests');
if (!empty($requests)) {
//Delete abandoned notifications
@@ -461,8 +461,8 @@ class Minz_Request {
* @param string $msg notification content
* @param array{c?:string,a?:string,params?:array<string,mixed>} $url url array to where we should be forwarded
*/
public static function good(string $msg, array $url = []): void {
Minz_Request::setGoodNotification($msg);
public static function good(string $msg, array $url = [], string $notificationName = ''): void {
Minz_Request::setGoodNotification($msg, $notificationName);
Minz_Request::forward($url, true);
}
@@ -471,8 +471,8 @@ class Minz_Request {
* @param string $msg notification content
* @param array{c?:string,a?:string,params?:array<string,mixed>} $url url array to where we should be forwarded
*/
public static function bad(string $msg, array $url = []): void {
Minz_Request::setBadNotification($msg);
public static function bad(string $msg, array $url = [], string $notificationName = ''): void {
Minz_Request::setBadNotification($msg, $notificationName);
Minz_Request::forward($url, true);
}