From 534c8f6090ab1f981581058525d4a2cac9e91e8e Mon Sep 17 00:00:00 2001 From: Andy Heathershaw Date: Thu, 12 Jul 2018 06:35:08 +0100 Subject: [PATCH] #75: Reworked the way metadata is calculated so empty albums are not displayed as upgradable. Also improved the "no albums" message, as it's no longer accurate. --- .../Controllers/Admin/DefaultController.php | 21 +++++++++++++++---- resources/lang/en/admin.php | 3 +++ .../base/admin/metadata_upgrade.blade.php | 6 +++--- .../metadata_single_album_admin.blade.php | 6 +++++- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Admin/DefaultController.php b/app/Http/Controllers/Admin/DefaultController.php index 4f24f38..468ce12 100644 --- a/app/Http/Controllers/Admin/DefaultController.php +++ b/app/Http/Controllers/Admin/DefaultController.php @@ -78,7 +78,6 @@ class DefaultController extends Controller public function metadataUpgrade() { - $albums = DbHelper::getAlbumsForCurrentUser(); $albumIDs = DbHelper::getAlbumIDsForCurrentUser(); $photoMetadata = DB::table('photos') @@ -90,14 +89,28 @@ class DefaultController extends Controller ->groupBy('album_id') ->get(); + $resultingAlbumIDs = []; foreach ($photoMetadata as $metadata) { - /** @var Album $album */ + if (isset($metadata->min_metadata_version) && $metadata->min_metadata_version > 0) + { + $resultingAlbumIDs[$metadata->album_id] = $metadata->min_metadata_version; + } + } + + // Now load the full album definitions + $albumsQuery = DbHelper::getAlbumsForCurrentUser_NonPaged(); + $albumsQuery->whereIn('id', array_keys($resultingAlbumIDs)); + $albums = $albumsQuery->paginate(UserConfig::get('items_per_page')); + + /** @var Album $album */ + foreach ($resultingAlbumIDs as $albumID => $metadataMinVersion) + { foreach ($albums as $album) { - if ($album->id == $metadata->album_id) + if ($album->id == $albumID) { - $album->min_metadata_version = $metadata->min_metadata_version; + $album->min_metadata_version = $metadataMinVersion; } } } diff --git a/resources/lang/en/admin.php b/resources/lang/en/admin.php index f3d506f..3aca811 100644 --- a/resources/lang/en/admin.php +++ b/resources/lang/en/admin.php @@ -127,6 +127,7 @@ return [ 'is_uploading' => 'Uploading in progress...', 'labels_intro' => 'Your labels are displayed below. The number in brackets indicates the number of photos linked to that label. Click a label to delete it.', 'legend' => 'Legend/Key', + 'list_albums' => 'Go to your albums', 'list_albums_intro' => 'Albums contain collections of individual photographs in the same way as a physical photo album or memory book.', 'list_albums_title' => 'Albums', 'list_groups_intro' => 'Organise your users into categories or types by using groups. You can assign permissions on albums to groups of users to make administration and management easier.', @@ -140,6 +141,8 @@ return [ 'manage_widget' => [ 'panel_header' => 'Manage' ], + 'metadata_no_albums_text' => 'You have no photo albums yet or all your albums are empty. Click the button below to list your albums or create a new album.', + 'metadata_no_albums_title' => 'No Albums or Photos', 'metadata_upgrade' => [ 'can_be_upgraded' => 'Metadata can be updated (version :version_from » :version_to)', 'confirm' => 'Are you sure you want to update the metadata of the :name album?', diff --git a/resources/views/themes/base/admin/metadata_upgrade.blade.php b/resources/views/themes/base/admin/metadata_upgrade.blade.php index d08833f..f224c18 100644 --- a/resources/views/themes/base/admin/metadata_upgrade.blade.php +++ b/resources/views/themes/base/admin/metadata_upgrade.blade.php @@ -18,10 +18,10 @@ @if (count($albums) == 0)
-

@lang('admin.no_albums_title')

-

@lang('admin.no_albums_text')

+

@lang('admin.metadata_no_albums_title')

+

@lang('admin.metadata_no_albums_text')

- @lang('admin.create_album') + @lang('admin.list_albums')

@else diff --git a/resources/views/themes/base/partials/metadata_single_album_admin.blade.php b/resources/views/themes/base/partials/metadata_single_album_admin.blade.php index b26e3d0..f9dc511 100644 --- a/resources/views/themes/base/partials/metadata_single_album_admin.blade.php +++ b/resources/views/themes/base/partials/metadata_single_album_admin.blade.php @@ -13,7 +13,11 @@

{{ $album->description }}

{{ $album->photos_count }} {{ trans_choice('admin.stats_widget.photos', $album->photos_count) }} · - @if ($album->min_metadata_version < $current_metadata_version) + @if ( + isset($album->min_metadata_version) && + intval($album->min_metadata_version) > 0 && + intval($album->min_metadata_version) < $current_metadata_version + ) @lang('admin.metadata_upgrade.can_be_upgraded', ['version_from' => $album->min_metadata_version, 'version_to' => $current_metadata_version]) @else @lang('admin.metadata_upgrade.is_up_to_date')