From ef95fd31ba257b98acde24976614e46b88935521 Mon Sep 17 00:00:00 2001 From: Andy Heathershaw Date: Mon, 5 Sep 2016 14:27:20 +0100 Subject: [PATCH] Implemented a page to view a larger preview of a photo --- .../Controllers/Admin/AlbumController.php | 8 +-- .../Controllers/Gallery/PhotoController.php | 12 ++++ app/Photo.php | 2 +- public/themes/bootstrap3/theme.css | 5 ++ .../views/themes/base/gallery/photo.blade.php | 65 +++++++++++++++++++ routes/web.php | 2 +- 6 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 resources/views/themes/base/gallery/photo.blade.php diff --git a/app/Http/Controllers/Admin/AlbumController.php b/app/Http/Controllers/Admin/AlbumController.php index 74741f5..5874e87 100644 --- a/app/Http/Controllers/Admin/AlbumController.php +++ b/app/Http/Controllers/Admin/AlbumController.php @@ -95,20 +95,20 @@ class AlbumController extends Controller return Theme::render('admin.edit_album', ['album' => $album]); } - public function monitorUpload($id, $upload_id) + public function monitorUpload($id, $uploadId) { $this->authorize('admin-access'); - $upload = AlbumController::loadUpload($upload_id, $id); + $upload = AlbumController::loadUpload($uploadId, $id); return Theme::render('admin.album_upload_progress', ['upload' => $upload, 'album' => $upload->album]); } - public function monitorUploadJson($id, $upload_id) + public function monitorUploadJson($id, $uploadId) { $this->authorize('admin-access'); - return response()->json(AlbumController::loadUpload($upload_id, $id)->toArray()); + return response()->json(AlbumController::loadUpload($uploadId, $id)->toArray()); } /** diff --git a/app/Http/Controllers/Gallery/PhotoController.php b/app/Http/Controllers/Gallery/PhotoController.php index 5907e4c..9c4beec 100644 --- a/app/Http/Controllers/Gallery/PhotoController.php +++ b/app/Http/Controllers/Gallery/PhotoController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Gallery; use App\Album; +use App\Facade\Theme; use app\Http\Controllers\Admin\AlbumController; use App\Http\Controllers\Controller; use App\Photo; @@ -22,6 +23,17 @@ class PhotoController extends Controller return response()->file($albumSource->getPathToPhoto($album, $photo, $thumbnail)); } + public function show($albumUrlAlias, $photoFilename) + { + $album = PhotoController::loadAlbumByAlias($albumUrlAlias); + $photo = PhotoController::loadPhotoByAlbumAndFilename($album, $photoFilename); + + return Theme::render('gallery.photo', [ + 'album' => $album, + 'photo' => $photo + ]); + } + /** * @param $id * @return Album diff --git a/app/Photo.php b/app/Photo.php index 51b72a1..260557a 100644 --- a/app/Photo.php +++ b/app/Photo.php @@ -43,7 +43,7 @@ class Photo extends Model return $this->belongsTo(Album::class); } - public function thumbnailUrl($thumbnailName) + public function thumbnailUrl($thumbnailName = null) { /** @var Album $album */ //$album = Album::where('id', $this->album_id)->first(); diff --git a/public/themes/bootstrap3/theme.css b/public/themes/bootstrap3/theme.css index c371e6b..52004ce 100644 --- a/public/themes/bootstrap3/theme.css +++ b/public/themes/bootstrap3/theme.css @@ -23,6 +23,11 @@ margin-bottom: 0; } +.photo-metadata .metadata_name +{ + font-weight: bold; +} + .tab-content { border: solid 1px #ddd; border-top: 0; diff --git a/resources/views/themes/base/gallery/photo.blade.php b/resources/views/themes/base/gallery/photo.blade.php new file mode 100644 index 0000000..5eb160c --- /dev/null +++ b/resources/views/themes/base/gallery/photo.blade.php @@ -0,0 +1,65 @@ +@extends('themes.base.layout') +@section('title', 'Welcome') + +@section('content') +
+
+
+

{{ $photo->name }}

+
+
+ +
+
+ +
+ +
+

Information about this photo:

+ + + + + + + + + + + + + + + @if (strlen($photo->taken_at) > 0) + + + + + @endif + + @if (strlen($photo->camera_make) > 0) + + + + + @endif + + @if (strlen($photo->camera_model) > 0) + + + + + @endif + + @if (strlen($photo->camera_software) > 0) + + + + + @endif + + +
+
+
+@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index b10942d..6209fe0 100644 --- a/routes/web.php +++ b/routes/web.php @@ -31,5 +31,5 @@ Route::group(['prefix' => 'admin'], function () { // Gallery Route::get('/', 'Gallery\DefaultController@index')->name('home'); Route::get('/{albumUrlAlias}', 'Gallery\AlbumController@index')->name('viewAlbum'); -Route::get('/{albumUrlAlias}/{photoFilename}', 'Gallery\PhotoController@view')->name('viewPhoto'); +Route::get('/{albumUrlAlias}/{photoFilename}', 'Gallery\PhotoController@show')->name('viewPhoto'); Route::get('/photo/{albumUrlAlias}/{photoFilename}', 'Gallery\PhotoController@download')->name('downloadPhoto'); \ No newline at end of file