From 9863e55365efef757e40cf3fc3c0f26bb14a6c71 Mon Sep 17 00:00:00 2001 From: Jan Oppolzer Date: Mon, 4 Dec 2023 10:38:13 +0100 Subject: [PATCH] Allow previewing metadata Metadata download is taken from the Git repository, however, metadata pending approval isn't stored in the Git repository yet and thus must be taken from the database instead. --- .../EntityPreviewMetadataController.php | 21 +++++++++++++++++++ resources/views/entities/show.blade.php | 6 +++++- routes/web.php | 2 ++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/EntityPreviewMetadataController.php diff --git a/app/Http/Controllers/EntityPreviewMetadataController.php b/app/Http/Controllers/EntityPreviewMetadataController.php new file mode 100644 index 0000000..6b71f0f --- /dev/null +++ b/app/Http/Controllers/EntityPreviewMetadataController.php @@ -0,0 +1,21 @@ +middleware('auth'); + } + + public function show(Entity $entity) + { + $this->authorize('view', $entity); + + return response($entity->metadata, 200) + ->header('Content-Type', 'application/xml'); + } +} diff --git a/resources/views/entities/show.blade.php b/resources/views/entities/show.blade.php index f852f40..e211d43 100644 --- a/resources/views/entities/show.blade.php +++ b/resources/views/entities/show.blade.php @@ -149,10 +149,14 @@ {{ __('entities.show_metadata') }} + @else + {{ __('entities.show_metadata') }} @endif @can('update', $entity) - @unless($entity->trashed()) + @unless ($entity->trashed()) {{ __('common.edit') }} @endunless diff --git a/routes/web.php b/routes/web.php index 1026cf5..d3bbf0e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -10,6 +10,7 @@ use App\Http\Controllers\EntityMetadataController; use App\Http\Controllers\EntityOperatorController; use App\Http\Controllers\EntityOrganizationController; +use App\Http\Controllers\EntityPreviewMetadataController; use App\Http\Controllers\EntityRsController; use App\Http\Controllers\FakeController; use App\Http\Controllers\FederationController; @@ -89,6 +90,7 @@ Route::get('entities/{entity}/metadata', [EntityMetadataController::class, 'store'])->name('entities.metadata'); Route::get('entities/{entity}/showmetadata', [EntityMetadataController::class, 'show'])->name('entities.showmetadata'); +Route::get('entities/{entity}/previewmetadata', [EntityPreviewMetadataController::class, 'show'])->name('entities.previewmetadata'); Route::post('entities/{entity}/organization', [EntityOrganizationController::class, 'update'])->name('entities.organization');