aboutsummaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
authorGravatar Inverle <inverle@proton.me> 2025-11-06 20:45:44 +0100
committerGravatar GitHub <noreply@github.com> 2025-11-06 20:45:44 +0100
commit8cb2158a390088738eaa27ed3b01d784c35d9f9d (patch)
treecdd075ee67aeb4dc830ba28c00db02a33f0ecc72 /app/views
parent63fe7438784cd56b9291d2a0dee3f872a53c7ae0 (diff)
Replace arrow navigation in theme switcher with `<select>` (#8190)
Follow-up (or replacement) of https://github.com/FreshRSS/FreshRSS/pull/8167 ![gif](https://github.com/user-attachments/assets/96cdeaff-36bc-4d0b-9b75-97bd7ff78ba1)
Diffstat (limited to 'app/views')
-rw-r--r--app/views/configure/display.phtml35
1 files changed, 13 insertions, 22 deletions
diff --git a/app/views/configure/display.phtml b/app/views/configure/display.phtml
index 57f6b0abf..251b5c585 100644
--- a/app/views/configure/display.phtml
+++ b/app/views/configure/display.phtml
@@ -43,30 +43,27 @@
<div class="form-group">
<label class="group-name" for="theme"><?= _t('conf.display.theme') ?></label>
<div class="group-controls">
+ <select id="theme" name="theme">
+ <?php foreach ($this->themes as $theme): ?>
+ <option value="<?= $theme['id'] ?>"<?= FreshRSS_Context::userConf()->theme === $theme['id'] ? ' selected' : '' ?>><?= $theme['name'] ?></option>
+ <?php endforeach ?>
+ </select>
+
<div class="theme-preview-list-wrapper">
<ul class="theme-preview-list">
<?php $slides = count($this->themes); $i = 1; $themeAvailable = false; ?>
<?php
foreach ($this->themes as $theme) { ?>
- <?php if (FreshRSS_Context::userConf()->theme === $theme['id']) {
- $checked = 'checked="checked"';
+ <?php
+ $isCurrent = FreshRSS_Context::userConf()->theme === $theme['id'];
+ if ($isCurrent) {
$themeAvailable = true;
- } else {
- $checked = '';
- } ?>
- <input type="radio" name="theme" id="img-<?= $i ?>" <?= $checked ?> value="<?= $theme['id'] ?>" />
- <li class="preview-container">
+ }
+ ?>
+ <li class="preview-container<?= $isCurrent ? ' picked' : '' ?>" data-theme-preview="<?= $theme['id'] ?>">
<div class="preview">
<img src="<?= Minz_Url::display('/themes/' . $theme['id'] . '/thumbs/original.png') ?>" loading="lazy" />
</div>
- <div class="nav">
- <?php if ($i !== 1) {?>
- <label for="img-<?= $i - 1 ?>" class="btn prev"><?= _i('prev') ?></label>
- <?php } ?>
- <?php if ($i !== $slides) {?>
- <label for="img-<?= $i + 1 ?>" class="btn next"><?= _i('next') ?></label>
- <?php } ?>
- </div>
<div class="properties">
<div>
<?php if (!empty($theme['deprecated'])) { ?>
@@ -83,20 +80,14 @@
<?php if (!empty($theme['theme-color']['dark'])) { ?>
<div class="darkMode">✔ <?= _t('conf.display.darkMode') ?></div>
<?php } ?>
-
</div>
- <div class="page-number">( <?= sprintf('%d/%d', $i, $slides) ?> )</div>
</li>
<?php $i++ ?>
<?php } ?>
<?php if (!$themeAvailable) {?>
- <input type="radio" name="theme" checked="checked" value="Origine" />
- <li class="preview-container">
+ <li class="preview-container picked">
<div class="preview">
</div>
- <div class="nav">
- <label for="img-<?= $i - 1 ?>" class="prev"><?= _i('prev') ?></label>
- </div>
<div class="properties alert-error">
<div><?= _t('conf.display.theme_not_available', FreshRSS_Context::userConf()->theme)?></div>
</div>