From 4421e7d203743d0d25e8e69614d8e77bf429595b Mon Sep 17 00:00:00 2001 From: Michael Mayer Date: Sun, 24 May 2020 22:16:06 +0200 Subject: [PATCH] Add simple file browser to Library #260 Signed-off-by: Michael Mayer --- assets/config/settings.yml | 2 + frontend/src/common/config.js | 3 + frontend/src/common/notify.js | 4 +- frontend/src/component/p-navigation.vue | 36 ++- frontend/src/component/p-photo-cards.vue | 7 +- frontend/src/component/p-photo-list.vue | 4 +- frontend/src/component/p-photo-mosaic.vue | 3 +- frontend/src/css/app.css | 10 +- frontend/src/css/files.css | 5 + frontend/src/css/folders.css | 4 - frontend/src/css/photos.css | 3 +- frontend/src/dialog/photo/details.vue | 3 +- frontend/src/model/file.js | 197 ++++++++++++++ frontend/src/model/folder.js | 46 +++- frontend/src/model/photo.js | 16 ++ frontend/src/model/thumb.js | 2 +- frontend/src/pages/album/photos.vue | 2 +- frontend/src/pages/albums.vue | 2 +- frontend/src/pages/{folders.vue => files.vue} | 244 +++++++++--------- frontend/src/pages/library/import.vue | 4 +- frontend/src/pages/library/originals.vue | 4 +- frontend/src/pages/photos.vue | 2 +- frontend/src/pages/places.vue | 4 +- frontend/src/pages/settings/general.vue | 12 +- frontend/src/routes.js | 10 +- frontend/tests/unit/common/notify_test.js | 4 +- internal/api/folder.go | 56 +++- internal/api/folder_test.go | 41 ++- internal/api/svg.go | 7 + internal/config/client.go | 35 ++- internal/config/settings.go | 4 +- internal/config/testdata/configEmpty.yml | 2 +- internal/entity/camera.go | 25 +- internal/entity/camera_test.go | 12 +- internal/entity/const.go | 4 + internal/entity/file.go | 5 +- internal/entity/folder.go | 41 +-- internal/entity/folder_test.go | 14 +- internal/entity/lens.go | 22 +- internal/photoprism/import.go | 2 +- internal/photoprism/index.go | 2 +- internal/photoprism/index_mediafile.go | 10 +- internal/query/files.go | 31 ++- internal/query/files_test.go | 15 ++ internal/query/folders.go | 32 +++ internal/query/folders_test.go | 34 +++ internal/query/photos.go | 7 +- internal/query/photos_results.go | 1 + .../query/testdata/directory/dir 1/foo.txt | 1 + .../dir 1/level 1/level 2/level 3/foo.md | 3 + .../query/testdata/directory/dir 2/foo.md | 3 + .../dir 2/level 1/level 2/level 3/foo.txt | 1 + 52 files changed, 755 insertions(+), 288 deletions(-) create mode 100644 frontend/src/css/files.css delete mode 100644 frontend/src/css/folders.css create mode 100644 frontend/src/model/file.js rename frontend/src/pages/{folders.vue => files.vue} (66%) create mode 100644 internal/query/folders.go create mode 100644 internal/query/folders_test.go create mode 100644 internal/query/testdata/directory/dir 1/foo.txt create mode 100644 internal/query/testdata/directory/dir 1/level 1/level 2/level 3/foo.md create mode 100644 internal/query/testdata/directory/dir 2/foo.md create mode 100644 internal/query/testdata/directory/dir 2/level 1/level 2/level 3/foo.txt diff --git a/assets/config/settings.yml b/assets/config/settings.yml index a0949fd01..ec3f16bb7 100755 --- a/assets/config/settings.yml +++ b/assets/config/settings.yml @@ -11,6 +11,8 @@ features: review: true upload: true import: true + files: true + moments: true labels: true places: true download: true diff --git a/frontend/src/common/config.js b/frontend/src/common/config.js index be45a2491..cb7c0a2d0 100644 --- a/frontend/src/common/config.js +++ b/frontend/src/common/config.js @@ -57,6 +57,9 @@ class Config { case "videos": this.values.count.videos += data.count; break; + case "files": + this.values.count.files += data.count; + break; case "folders": this.values.count.folders += data.count; break; diff --git a/frontend/src/common/notify.js b/frontend/src/common/notify.js index 1a3103a84..ae21beab6 100644 --- a/frontend/src/common/notify.js +++ b/frontend/src/common/notify.js @@ -4,7 +4,7 @@ const Notify = { info: function (message) { Event.publish("notify.info", {msg: message}); }, - warning: function (message) { + warn: function (message) { Event.publish("notify.warning", {msg: message}); }, error: function (message) { @@ -38,7 +38,7 @@ const Notify = { } }, wait: function () { - this.warning("Busy, please wait..."); + this.warn("Busy, please wait..."); }, }; diff --git a/frontend/src/component/p-navigation.vue b/frontend/src/component/p-navigation.vue index d1ae4e8e4..db68dbeed 100644 --- a/frontend/src/component/p-navigation.vue +++ b/frontend/src/component/p-navigation.vue @@ -25,7 +25,7 @@ - + @@ -152,15 +152,6 @@ - - - - Folders - {{ config.count.folders }} - - - - @@ -271,18 +262,37 @@ - + camera_roll - Originals + Library + + + + + Library + + + + + + + + Files + {{ config.count.files }} + + + + + settings diff --git a/frontend/src/component/p-photo-cards.vue b/frontend/src/component/p-photo-cards.vue index b22d1933b..7f184472c 100644 --- a/frontend/src/component/p-photo-cards.vue +++ b/frontend/src/component/p-photo-cards.vue @@ -31,8 +31,7 @@ @@ -140,8 +139,8 @@