aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2023-06-15 12:47:47 +0200
committerGravatar GitHub <noreply@github.com> 2023-06-15 12:47:47 +0200
commit228d7adfdb90c3fdd179f80fbfde565eb06e0cec (patch)
tree449368813c0ee49e50db55a560dee6e4ffc9cca5
parent644427b9b1a0cf525b84f4a2aac2d6a5a2f55045 (diff)
Fix slider views (#5469)
* Fix slider titles And fix full-page view of category configuration. FIx https://github.com/FreshRSS/FreshRSS/pull/5449#issuecomment-1590021947 * Fix user queries and user management Implement https://github.com/FreshRSS/FreshRSS/pull/5469#issuecomment-1591957935
-rw-r--r--app/Controllers/configureController.php19
-rw-r--r--app/Controllers/extensionController.php1
-rw-r--r--app/Controllers/subscriptionController.php8
-rw-r--r--app/Controllers/userController.php5
-rw-r--r--app/layout/aside_configure.phtml4
-rw-r--r--app/layout/aside_subscription.phtml2
-rw-r--r--app/views/configure/query.phtml5
-rw-r--r--app/views/subscription/category.phtml6
-rw-r--r--app/views/subscription/feed.phtml2
-rw-r--r--app/views/user/details.phtml3
-rw-r--r--lib/Minz/Url.php5
11 files changed, 43 insertions, 17 deletions
diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php
index 2e0b14f4e..592e8c896 100644
--- a/app/Controllers/configureController.php
+++ b/app/Controllers/configureController.php
@@ -323,12 +323,13 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
$this->view->feeds = $feed_dao->listFeeds();
$this->view->tags = $tag_dao->listTags() ?: [];
- $id = Minz_Request::paramInt('id');
- $this->view->displaySlider = false;
- if ($id !== 0) {
- $this->view->displaySlider = true;
+ if (Minz_Request::paramTernary('id') !== null) {
+ $id = Minz_Request::paramInt('id');
$this->view->query = $this->view->queries[$id];
$this->view->queryId = $id;
+ $this->view->displaySlider = true;
+ } else {
+ $this->view->displaySlider = false;
}
FreshRSS_View::prependTitle(_t('conf.query.title') . ' · ');
@@ -340,7 +341,9 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
* applied to the selected query.
*/
public function queryAction(): void {
- $this->view->_layout(null);
+ if (Minz_Request::paramBoolean('ajax')) {
+ $this->view->_layout(null);
+ }
$id = Minz_Request::paramInt('id');
if (Minz_Request::paramTernary('id') === null || empty(FreshRSS_Context::$user_conf->queries[$id])) {
@@ -369,22 +372,22 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
if (!empty($params['state']) && is_array($params['state'])) {
$queryParams['state'] = (int)(array_sum($params['state']));
}
- $queryParams['url'] = Minz_Url::display(['params' => $params]);
$name = Minz_Request::paramString('name') ?: _t('conf.query.number', $id + 1);
if ('' === $name) {
$name = _t('conf.query.number', $id + 1);
}
$queryParams['name'] = $name;
+ $queryParams['url'] = Minz_Url::display(['params' => $queryParams]);
$queries = FreshRSS_Context::$user_conf->queries;
$queries[$id] = (new FreshRSS_UserQuery($queryParams, $feed_dao, $category_dao, $tag_dao))->toArray();
FreshRSS_Context::$user_conf->queries = $queries;
FreshRSS_Context::$user_conf->save();
- Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'queries', 'params' => ['id' => $id] ]);
+ Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'queries', 'params' => ['id' => (string)$id] ]);
}
- FreshRSS_View::prependTitle(_t('conf.query.title') . ' · ' . $query->getName() . ' · ');
+ FreshRSS_View::prependTitle($query->getName() . ' · ' . _t('conf.query.title') . ' · ');
}
/**
diff --git a/app/Controllers/extensionController.php b/app/Controllers/extensionController.php
index a5eec8f21..2543edac1 100644
--- a/app/Controllers/extensionController.php
+++ b/app/Controllers/extensionController.php
@@ -97,6 +97,7 @@ class FreshRSS_extension_Controller extends FreshRSS_ActionController {
return;
}
+ FreshRSS_View::prependTitle($ext->getName() . ' · ' . _t('admin.extensions.title') . ' · ');
$this->view->extension = $ext;
$this->view->extension->handleConfigureAction();
}
diff --git a/app/Controllers/subscriptionController.php b/app/Controllers/subscriptionController.php
index d96cb02e1..3383dc66a 100644
--- a/app/Controllers/subscriptionController.php
+++ b/app/Controllers/subscriptionController.php
@@ -107,7 +107,7 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController {
$feed = $this->view->feeds[$id];
$this->view->feed = $feed;
- FreshRSS_View::prependTitle(_t('sub.title.feed_management') . ' · ' . $feed->name() . ' · ');
+ FreshRSS_View::prependTitle($feed->name() . ' · ' . _t('sub.title.feed_management') . ' · ');
if (Minz_Request::isPost()) {
$user = Minz_Request::paramString('http_user_feed' . $id);
@@ -283,7 +283,9 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController {
}
public function categoryAction(): void {
- $this->view->_layout(null);
+ if (Minz_Request::paramBoolean('ajax')) {
+ $this->view->_layout(null);
+ }
$categoryDAO = FreshRSS_Factory::createCategoryDao();
@@ -295,6 +297,8 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController {
}
$this->view->category = $category;
+ FreshRSS_View::prependTitle($category->name() . ' · ' . _t('sub.title') . ' · ');
+
if (Minz_Request::isPost()) {
if (Minz_Request::paramBoolean('use_default_purge_options')) {
$category->_attributes('archiving', null);
diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php
index 9906ae6bd..90eb44800 100644
--- a/app/Controllers/userController.php
+++ b/app/Controllers/userController.php
@@ -620,8 +620,13 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
Minz_Error::error(404);
}
+ if (Minz_Request::paramBoolean('ajax')) {
+ $this->view->_layout(null);
+ }
+
$this->view->username = $username;
$this->view->details = $this->retrieveUserDetails($username);
+ FreshRSS_View::prependTitle($username . ' · ' . _t('gen.menu.user_management') . ' · ');
}
/** @return array{'feed_count':int,'article_count':int,'database_size':int,'language':string,'mail_login':string,'enabled':bool,'is_admin':bool,'last_user_activity':string,'is_default':bool} */
diff --git a/app/layout/aside_configure.phtml b/app/layout/aside_configure.phtml
index 87fd27c59..03395449b 100644
--- a/app/layout/aside_configure.phtml
+++ b/app/layout/aside_configure.phtml
@@ -47,7 +47,7 @@ function get_logout_url(): string {
<li class="item<?= Minz_Request::actionName() === 'shortcut' ? ' active' : '' ?>">
<a href="<?= _url('configure', 'shortcut') ?>"><?= _t('gen.menu.shortcuts') ?></a>
</li>
- <li class="item<?= Minz_Request::actionName() === 'queries' ? ' active' : '' ?>">
+ <li class="item<?= in_array(Minz_Request::actionName(), ['queries', 'query'], true) ? ' active' : '' ?>">
<a href="<?= _url('configure', 'queries') ?>"><?= _t('gen.menu.queries') ?></a>
</li>
<li class="item<?= Minz_Request::controllerName() === 'extension' ? ' active' : '' ?>">
@@ -69,7 +69,7 @@ function get_logout_url(): string {
<li class="item<?= Minz_Request::actionName() === 'system' ? ' active' : '' ?>">
<a href="<?= _url('configure', 'system') ?>"><?= _t('gen.menu.system') ?></a>
</li>
- <li class="item<?= Minz_Request::controllerName() === 'user' && Minz_Request::actionName() === 'manage' ? ' active' : '' ?>">
+ <li class="item<?= Minz_Request::controllerName() === 'user' && in_array(Minz_Request::actionName(), ['manage', 'details'], true) ? ' active' : '' ?>">
<a href="<?= _url('user', 'manage') ?>"><?= _t('gen.menu.user_management') ?></a>
</li>
<li class="item<?= Minz_Request::controllerName() === 'auth' ? ' active' : '' ?>">
diff --git a/app/layout/aside_subscription.phtml b/app/layout/aside_subscription.phtml
index e1f520f34..e6329df46 100644
--- a/app/layout/aside_subscription.phtml
+++ b/app/layout/aside_subscription.phtml
@@ -8,7 +8,7 @@
<a href="<?= _url('subscription', 'add') ?>"><?= _t('sub.menu.add') ?></a>
</li>
- <li class="item<?= Minz_Request::controllerName() === 'subscription' && Minz_Request::actionName() === 'index' ? ' active' : '' ?>">
+ <li class="item<?= Minz_Request::controllerName() === 'subscription' && in_array(Minz_Request::actionName(), ['index', 'category', 'feed'], true) ? ' active' : '' ?>">
<a href="<?= _url('subscription', 'index') ?>"><?= _t('sub.menu.subscription_management') ?></a>
</li>
diff --git a/app/views/configure/query.phtml b/app/views/configure/query.phtml
index 316583bac..9284ae94e 100644
--- a/app/views/configure/query.phtml
+++ b/app/views/configure/query.phtml
@@ -1,6 +1,9 @@
-<?php /** @var FreshRSS_View $this */ ?>
<?php
+/** @var FreshRSS_View $this */
+if (!Minz_Request::paramBoolean('ajax')) {
+ $this->partial('aside_configure');
+}
if ($this->query) {
$this->renderHelper('configure/query');
}
diff --git a/app/views/subscription/category.phtml b/app/views/subscription/category.phtml
index 90de4e11b..0b63ebc17 100644
--- a/app/views/subscription/category.phtml
+++ b/app/views/subscription/category.phtml
@@ -1,5 +1,9 @@
-<?php /** @var FreshRSS_View $this */ ?>
<?php
+/** @var FreshRSS_View $this */
+
+if (!Minz_Request::paramBoolean('ajax')) {
+ $this->partial('aside_subscription');
+}
if ($this->category) {
$this->renderHelper('category/update');
}
diff --git a/app/views/subscription/feed.phtml b/app/views/subscription/feed.phtml
index c93b7fc58..e361cff39 100644
--- a/app/views/subscription/feed.phtml
+++ b/app/views/subscription/feed.phtml
@@ -1,5 +1,5 @@
-<?php /** @var FreshRSS_View $this */ ?>
<?php
+/** @var FreshRSS_View $this */
if (!Minz_Request::paramBoolean('ajax')) {
$this->partial('aside_subscription');
diff --git a/app/views/user/details.phtml b/app/views/user/details.phtml
index 3387584eb..a2a560a65 100644
--- a/app/views/user/details.phtml
+++ b/app/views/user/details.phtml
@@ -1,5 +1,8 @@
<?php
/** @var FreshRSS_View $this */
+ if (!Minz_Request::paramBoolean('ajax')) {
+ $this->partial('aside_configure');
+ }
?>
<?php $isDefault = $this->details['is_default']; ?>
diff --git a/lib/Minz/Url.php b/lib/Minz/Url.php
index 70414f17a..f6fa809cf 100644
--- a/lib/Minz/Url.php
+++ b/lib/Minz/Url.php
@@ -92,7 +92,10 @@ class Minz_Url {
unset($url['params']['c']);
unset($url['params']['a']);
foreach ($url['params'] as $key => $param) {
- $uri .= $separator . urlencode($key) . '=' . urlencode($param);
+ if (!is_string($key) || (!is_string($param) && !is_int($param))) {
+ continue;
+ }
+ $uri .= $separator . urlencode($key) . '=' . urlencode((string)$param);
$separator = $and;
}
}