Skip to content

Commit 4e54bb7

Browse files
hhkaosclaude
andcommitted
Simplify sidebar menus, release 0.3.1
Fold "Create New Folder" into the "+" menu and drop "Manage Feeds"/ "Folder settings" from the "..." menus, since they duplicated the discovery catalog and the Rename/Delete actions already sitting in the same menu. Merge the feed menu's "Rename"/"Manage Feed" into one "Edit" entry, since both opened the identical modal. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent cbe1b1f commit 4e54bb7

4 files changed

Lines changed: 28 additions & 37 deletions

File tree

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# OTE Reader changelog
22

3+
## 0.3.1 - 2026-08-13
4+
5+
### Changed
6+
7+
- Reorganized the sidebar's "..." menus: moved "Create New Folder" into
8+
the "+" menu next to it, dropped "Manage Feeds" and "Folder settings"
9+
(they duplicated the discovery catalog and the Rename/Delete actions
10+
already in the same menu), and merged the feed menu's "Rename"/"Manage
11+
Feed" into a single "Edit" entry.
12+
313
## 0.3.0 - 2026-08-13
414

515
### Added

app.js

Lines changed: 11 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(function () {
22
'use strict';
33

4-
var APP_VERSION = '0.3.0';
4+
var APP_VERSION = '0.3.1';
55
var DEMO_MODE = new URLSearchParams(location.search).get('demo') === '1' || location.pathname.replace(/\/+$/, '').endsWith('/demo');
66
var STORAGE = DEMO_MODE ? 'ote-reader-demo-state-v1' : 'ote-reader-state-v1';
77
var INSTALL_DISMISSED = 'ote-reader-install-dismissed-v1';
@@ -645,17 +645,6 @@
645645
$('options-title').textContent = feed.title || 'Feed OTE';
646646
$('options-name').value = feed.title || '';
647647
fillFolderOptions(feed.url);
648-
document.querySelectorAll('.feed-only').forEach(function (node) { node.hidden = false; });
649-
document.querySelectorAll('.folder-only').forEach(function (node) { node.hidden = true; });
650-
openModal('options-modal');
651-
}
652-
653-
function openCategoryOptions(category) {
654-
optionsContext = { type: 'category', id: category.id };
655-
$('options-title').textContent = category.name;
656-
$('options-name').value = category.name;
657-
document.querySelectorAll('.feed-only').forEach(function (node) { node.hidden = true; });
658-
document.querySelectorAll('.folder-only').forEach(function (node) { node.hidden = false; });
659648
openModal('options-modal');
660649
}
661650

@@ -673,19 +662,14 @@
673662

674663
function saveOptions() {
675664
if (!optionsContext) return;
665+
var feed = findFeed(optionsContext.id);
666+
if (!feed) return;
676667
var name = $('options-name').value.trim();
677-
if (optionsContext.type === 'feed') {
678-
var feed = findFeed(optionsContext.id);
679-
if (!feed) return;
680-
if (name) {
681-
feed.customTitle = name;
682-
feed.title = name;
683-
}
684-
moveFeedToCategoryId(feed.url, $('options-folder').value);
685-
} else {
686-
var category = findCategory(optionsContext.id);
687-
if (category && name) category.name = name;
668+
if (name) {
669+
feed.customTitle = name;
670+
feed.title = name;
688671
}
672+
moveFeedToCategoryId(feed.url, $('options-folder').value);
689673
closeModal('options-modal');
690674
persist();
691675
render();
@@ -721,18 +705,14 @@
721705
if (context.type === 'all') {
722706
return [
723707
{ icon: '✓', label: 'Mark as Read', action: markVisibleFeedsRead },
724-
{ icon: '+', label: 'Create New Folder', action: createFolder },
725-
{ icon: '↻', label: 'Refresh feeds', action: function () { state.feeds.forEach(loadFeed); } },
726-
{ icon: '⚙', label: 'Manage Feeds', action: openSources }
708+
{ icon: '↻', label: 'Refresh feeds', action: function () { state.feeds.forEach(loadFeed); } }
727709
];
728710
}
729711
if (context.type === 'category') {
730712
var category = findCategory(context.id);
731713
return [
732714
{ icon: '✓', label: 'Mark as Read', action: function () { markCategoryRead(category); } },
733715
{ icon: '⟷', label: 'Rename', action: function () { startCategoryRename(category); } },
734-
{ icon: '☊', label: 'Manage Feeds', action: openSources },
735-
{ icon: '⚙', label: 'Folder settings', action: function () { openCategoryOptions(category); } },
736716
'separator',
737717
{ icon: '⌫', label: 'Delete', danger: true, action: function () { deleteCategoryWithConfirm(category); } }
738718
];
@@ -749,8 +729,7 @@
749729
var feed = findFeed(context.id);
750730
return [
751731
{ icon: '✓', label: 'Mark as Read', action: function () { markFeedRead(feed); } },
752-
{ icon: '⟷', label: 'Rename', action: function () { openFeedOptions(feed); } },
753-
{ icon: '⚙', label: 'Manage Feed', action: function () { openFeedOptions(feed); } },
732+
{ icon: '⚙', label: 'Edit', action: function () { openFeedOptions(feed); } },
754733
{ icon: '↻', label: 'Refresh', action: function () { loadFeed(feed); } },
755734
'separator',
756735
{ icon: '⌫', label: 'Delete', danger: true, action: function () { deleteFeedWithConfirm(feed); } }
@@ -1565,6 +1544,7 @@
15651544
$('demo-exit').addEventListener('click', exitDemo);
15661545
$('subscribe-open-side').addEventListener('click', function () { openModal('subscribe-modal'); });
15671546
$('find-sources-open').addEventListener('click', openSources);
1547+
$('create-folder-open-side').addEventListener('click', createFolder);
15681548
$('sidebar-toggle').addEventListener('click', toggleSidebar);
15691549
$('sidebar-collapse').addEventListener('click', toggleSidebar);
15701550
$('sidebar-restore').addEventListener('click', toggleSidebar);
@@ -1635,8 +1615,7 @@
16351615
});
16361616
$('options-delete').addEventListener('click', function () {
16371617
if (!optionsContext || !confirm('Eliminar?')) return;
1638-
if (optionsContext.type === 'feed') deleteFeed(findFeed(optionsContext.id));
1639-
if (optionsContext.type === 'category') removeCategory(optionsContext.id);
1618+
deleteFeed(findFeed(optionsContext.id));
16401619
closeModal('options-modal');
16411620
persist();
16421621
render();

index.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ <h2>Feeds</h2>
5353
<div class="add-menu" role="menu" aria-label="Añadir feed o folder">
5454
<button type="button" id="subscribe-open-side" role="menuitem">Manual subscription</button>
5555
<button type="button" id="find-sources-open" role="menuitem">Discover new feeds</button>
56+
<div class="context-separator" role="separator"></div>
57+
<button type="button" id="create-folder-open-side" role="menuitem">Create New Folder</button>
5658
</div>
5759
</div>
5860
<button class="icon-button sidebar-collapse-button" type="button" id="sidebar-collapse" aria-label="Colapsar barra lateral" aria-expanded="true"></button>
@@ -201,12 +203,12 @@ <h2 id="options-title">Opciones</h2>
201203
</div>
202204
<label for="options-name">Nombre</label>
203205
<input id="options-name" name="name" autocomplete="off">
204-
<label class="feed-only" for="options-folder">Folder</label>
205-
<select class="feed-only" id="options-folder" name="folder"></select>
206+
<label for="options-folder">Folder</label>
207+
<select id="options-folder" name="folder"></select>
206208
<div class="modal-actions">
207209
<button type="submit">Guardar</button>
208-
<button class="ghost feed-only" type="button" id="options-refresh">Actualizar</button>
209-
<button class="ghost feed-only" type="button" id="options-mark-read">Marcar visto</button>
210+
<button class="ghost" type="button" id="options-refresh">Actualizar</button>
211+
<button class="ghost" type="button" id="options-mark-read">Marcar visto</button>
210212
<button class="danger" type="button" id="options-delete">Eliminar</button>
211213
</div>
212214
</form>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ote-reader",
3-
"version": "0.3.0",
3+
"version": "0.3.1",
44
"private": true,
55
"type": "module",
66
"description": "Attendee-facing PWA for subscribing to OpenTechEvents feeds.",

0 commit comments

Comments
 (0)