diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7c82a564..5f170e28 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,7 +11,8 @@ You may need to clear browser cache to use location search.
- **Feature**: Allow bulk editing of EXIF attributes other than date/time
- **Feature**: Allow (optionally bulk) editing of collaborative tags
- **Feature**: Show list of tags in sidebar
-- **Feature**: Configurable album sorting order ([#377](https://github.com/pulsejet/memories/issues/377))
+- **Feature**: Configurable folder/album sorting order ([#371](https://github.com/pulsejet/memories/issues/371))
+- **Feature**: Configurable album list sorting order ([#377](https://github.com/pulsejet/memories/issues/377))
- **Feature**: Allow archiving photos throw folder view ([#350](https://github.com/pulsejet/memories/issues/350))
- **Feature**: Add search bar to face cluster merge dialog ([#177](https://github.com/pulsejet/memories/issues/177))
- Other fixes and features ([milestone](https://github.com/pulsejet/memories/milestone/9?closed=1))
diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php
index e3277c5f..ae8cad0b 100644
--- a/lib/Controller/PageController.php
+++ b/lib/Controller/PageController.php
@@ -76,6 +76,8 @@ class PageController extends Controller
$pi('timelinePath', 'EMPTY');
$pi('foldersPath', '/');
$pi('showHidden', false);
+ $pi('sortFolderMonth', false);
+ $pi('sortAlbumMonth', 'true');
$pi('enableTopMemories', 'true');
// Apps enabled
diff --git a/src/components/Settings.vue b/src/components/Settings.vue
index b5caab16..aef09899 100644
--- a/src/components/Settings.vue
+++ b/src/components/Settings.vue
@@ -76,6 +76,27 @@
>
{{ t("memories", "Show hidden folders") }}
+
+
+ {{ t("memories", "Treat folders as albums (sort order)") }}
+
+
+
+
+
+ {{ t("memories", "Enable timeline view (sort order)") }}
+
@@ -190,6 +211,14 @@ export default defineComponent({
async updateShowHidden() {
await this.updateSetting("showHidden");
},
+
+ async updateSortFolderMonth() {
+ await this.updateSetting("sortFolderMonth");
+ },
+
+ async updateSortAlbumMonth() {
+ await this.updateSetting("sortAlbumMonth");
+ },
},
});
diff --git a/src/components/Timeline.vue b/src/components/Timeline.vue
index 858386a8..9790369e 100644
--- a/src/components/Timeline.vue
+++ b/src/components/Timeline.vue
@@ -271,7 +271,11 @@ export default defineComponent({
},
isMonthView(): boolean {
return (
- this.$route.name === "albums" || this.$route.name === "album-share"
+ (this.config_sortAlbumMonth &&
+ (this.$route.name === "albums" ||
+ this.$route.name === "album-share")) ||
+ (this.config_sortFolderMonth && this.$route.name === "folders") ||
+ this.$route.query.sort === "album"
);
},
/** Get view name for dynamic top matter */
diff --git a/src/mixins/UserConfig.ts b/src/mixins/UserConfig.ts
index 91b59a80..47517d39 100644
--- a/src/mixins/UserConfig.ts
+++ b/src/mixins/UserConfig.ts
@@ -24,6 +24,10 @@ export default defineComponent({
config_showHidden:
loadState("memories", "showHidden", "false") === "true",
+ config_sortFolderMonth:
+ loadState("memories", "sortFolderMonth", "false") === "true",
+ config_sortAlbumMonth:
+ loadState("memories", "sortAlbumMonth", "true") === "true",
config_enableTopMemories:
loadState("memories", "enableTopMemories", "false") === "true",
diff --git a/src/vue-globals.d.ts b/src/vue-globals.d.ts
index e16e7eef..4de803c9 100644
--- a/src/vue-globals.d.ts
+++ b/src/vue-globals.d.ts
@@ -17,6 +17,8 @@ declare module "vue" {
config_timelinePath: string;
config_foldersPath: string;
config_showHidden: boolean;
+ config_sortFolderMonth: boolean;
+ config_sortAlbumMonth: boolean;
config_tagsEnabled: boolean;
config_recognizeEnabled: boolean;
config_facerecognitionInstalled: boolean;