generated from Flycro/laravel-nuxt
feat: Added Jobs Admin Page
parent
b6f9968a46
commit
c2a2ae0d07
|
|
@ -4,6 +4,7 @@ namespace App\Http\Controllers;
|
|||
|
||||
use App\Models\BookRecommendation;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class BookRecommendationController extends Controller
|
||||
|
|
@ -136,4 +137,10 @@ class BookRecommendationController extends Controller
|
|||
$bookRecommendation->delete();
|
||||
return response()->json(null, 204);
|
||||
}
|
||||
|
||||
public function fetchCover(Request $request)
|
||||
{
|
||||
Artisan::call('book:open-library-fetch-cover-art');
|
||||
return response()->json(Artisan::output());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,11 @@ if (authStore.user?.roles.includes('admin')) {
|
|||
to: '/admin/votes',
|
||||
icon: 'i-heroicons-star',
|
||||
},
|
||||
{
|
||||
label: 'Jobs',
|
||||
to: '/admin/jobs',
|
||||
icon: 'i-heroicons-briefcase',
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
<script setup lang="ts">
|
||||
definePageMeta({ middleware: ['role-admin'] })
|
||||
|
||||
const serverLogs = ref<string>('')
|
||||
|
||||
async function runJobs(job: string) {
|
||||
switch (job) {
|
||||
case 'fetch_cover':
|
||||
serverLogs.value = await $fetch('jobs/fetch-cover', { method: 'POST' })
|
||||
break
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex gap-4">
|
||||
<UCard class="w-1/2">
|
||||
<template #header>
|
||||
<h1 class="font-sans text-3xl font-bold">
|
||||
Server Jobs
|
||||
</h1>
|
||||
<UButton class="mt-4" @click="runJobs('fetch_cover')">
|
||||
Cover Bilder anfragen
|
||||
</UButton>
|
||||
</template>
|
||||
</UCard>
|
||||
<UCard class="w-1/2">
|
||||
<template #header>
|
||||
<h1 class="font-sans text-3xl font-bold">
|
||||
Server Logs
|
||||
</h1>
|
||||
<UTextarea v-model="serverLogs" autoresize disabled class="mt-4" />
|
||||
</template>
|
||||
</UCard>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -42,6 +42,8 @@ Route::prefix('api/v1')->group(function () {
|
|||
Route::post('account/update', [AccountController::class, 'update'])->name('account.update');
|
||||
Route::post('account/password', [AccountController::class, 'password'])->name('account.password');
|
||||
|
||||
Route::post('jobs/fetch-cover', [BookRecommendationController::class, 'fetchCover'])->name('jobs.fetch-cover');
|
||||
|
||||
Route::middleware(['throttle:uploads'])->group(function () {
|
||||
Route::post('upload', [UploadController::class, 'image'])->name('upload.image');
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue