From 498fc89b7515e91e0ec1b84348461d453d5575f5 Mon Sep 17 00:00:00 2001
From: MiMoHo <37556964+MiMoHo@users.noreply.github.com>
Date: Mon, 6 Jul 2026 03:42:36 +0200
Subject: [PATCH 1/3] fix(notes-list): show group caption when only one group
exists
The notes list skipped the caption row whenever all notes fell into a
single group. Fresh accounts whose notes were all created today never
saw the Today heading. Render groups uniformly so captions appear from
the first note on.
Assisted-by: Claude Code:claude-fable-5
AI-assistant: Claude Code 2.1.187 (Claude Fable 5)
Signed-off-by: MiMoHo <37556964+MiMoHo@users.noreply.github.com>
---
src/components/NotesView.vue | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/src/components/NotesView.vue b/src/components/NotesView.vue
index f9a93235b..bc5aa56b0 100644
--- a/src/components/NotesView.vue
+++ b/src/components/NotesView.vue
@@ -24,12 +24,7 @@
/>
-
-
+
Date: Mon, 6 Jul 2026 04:37:50 +0200
Subject: [PATCH 2/3] feat(notes-list): group notes by time inside flat
categories
Categories were always grouped by subcategory, so a category without
subcategories showed a plain alphabetical list without any headings.
Sort and group such categories by timeslot, the same way as All notes.
Categories containing subcategories keep the subcategory grouping.
Assisted-by: Claude Code:claude-fable-5
AI-assistant: Claude Code 2.1.187 (Claude Fable 5)
Signed-off-by: MiMoHo <37556964+MiMoHo@users.noreply.github.com>
---
src/components/NotesView.vue | 9 +++++++--
src/store/notes.js | 4 +++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/components/NotesView.vue b/src/components/NotesView.vue
index bc5aa56b0..5e4d5bdfd 100644
--- a/src/components/NotesView.vue
+++ b/src/components/NotesView.vue
@@ -137,9 +137,14 @@ export default {
}
},
- // group notes by time ("All notes") or by category (if category chosen)
+ // time grouping applies to "All notes" and to categories without subcategories
+ groupByTime() {
+ return this.category === null || this.filteredNotes.every(note => note.category === this.category)
+ },
+
+ // group notes by time or by category (if category with subcategories chosen)
groupedNotes() {
- if (this.category === null) {
+ if (this.groupByTime) {
return this.displayedNotes.reduce((g, note) => {
const timeslot = this.getTimeslotFromNote(note)
if (g.length === 0 || g[g.length - 1].timeslot !== timeslot) {
diff --git a/src/store/notes.js b/src/store/notes.js
index d9001c133..d19c8a594 100644
--- a/src/store/notes.js
+++ b/src/store/notes.js
@@ -128,7 +128,9 @@ const getters = {
return a.title.localeCompare(b.title)
}
- notes.sort(state.selectedCategory === null ? cmpRecent : cmpCategory)
+ const flatCategory = state.selectedCategory !== null
+ && notes.every(note => note.category === state.selectedCategory)
+ notes.sort(state.selectedCategory === null || flatCategory ? cmpRecent : cmpCategory)
return notes
},
From e80edb94c8d731c94d5147bc10c75263978e6607 Mon Sep 17 00:00:00 2001
From: MiMoHo <37556964+MiMoHo@users.noreply.github.com>
Date: Mon, 6 Jul 2026 05:07:05 +0200
Subject: [PATCH 3/3] feat(notes-list): add sort toggle for the notes list
Add a sort menu next to the search field that switches the notes list
between modification date (newest first, the previous behavior) and
alphabetical order. The choice is stored as the user setting sortMode.
Alphabetical order shows a single flat list, since time or category
captions would not match the ordering.
Assisted-by: Claude Code:claude-fable-5
AI-assistant: Claude Code 2.1.187 (Claude Fable 5)
Signed-off-by: MiMoHo <37556964+MiMoHo@users.noreply.github.com>
---
lib/Service/SettingsService.php | 1 +
src/components/NotesView.vue | 77 ++++++++++++++++++++++++++++-----
src/store/notes.js | 9 ++++
3 files changed, 77 insertions(+), 10 deletions(-)
diff --git a/lib/Service/SettingsService.php b/lib/Service/SettingsService.php
index 22b341ee4..41ce2c8d6 100644
--- a/lib/Service/SettingsService.php
+++ b/lib/Service/SettingsService.php
@@ -69,6 +69,7 @@ public function __construct(
return '.' . $out;
},
],
+ 'sortMode' => $this->getListAttrs('sortMode', ['modified', 'title']),
];
}
diff --git a/src/components/NotesView.vue b/src/components/NotesView.vue
index 5e4d5bdfd..3d52aa76e 100644
--- a/src/components/NotesView.vue
+++ b/src/components/NotesView.vue
@@ -14,14 +14,37 @@
{{ t('notes', 'New note') }}
-
+
+
+
+
@@ -63,6 +86,8 @@