Marketplace package catalogue
* Modules, themes, and extensions * Publisher profiles and verification metadata * Installed-package tracking * Semantic version compatibility checks * PHP, Laravel, and Content Manager compatibility checks * Dependency resolution * SHA-256 checksum validation * Package signature requirements * Installation and update history * Enable and disable controls * Removal handling * Rollback records * Licence records * Marketplace administration UI * Authenticated REST endpoints * Console audit and synchronisation commands * Permissions and sidebar integration * Feature tests
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
<x-layouts.app :title="__('Installed Packages')">
|
||||
<div class="flex h-full w-full flex-1 flex-col gap-6 rounded-xl">
|
||||
<div class="flex flex-wrap items-center justify-between gap-3">
|
||||
<div>
|
||||
<flux:heading size="xl">Installed Packages</flux:heading>
|
||||
<flux:subheading>
|
||||
Manage package state, updates and removals.
|
||||
</flux:subheading>
|
||||
</div>
|
||||
|
||||
<flux:button
|
||||
:href="route('administration.marketplace.index')"
|
||||
wire:navigate
|
||||
>
|
||||
Browse marketplace
|
||||
</flux:button>
|
||||
</div>
|
||||
|
||||
<div class="overflow-hidden rounded-xl border">
|
||||
<table class="w-full text-sm">
|
||||
<thead>
|
||||
<tr class="border-b text-left">
|
||||
<th class="p-3">Package</th>
|
||||
<th>Version</th>
|
||||
<th>Status</th>
|
||||
<th>Update</th>
|
||||
<th class="p-3 text-right">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@forelse ($packages as $package)
|
||||
<tr class="border-b">
|
||||
<td class="p-3">
|
||||
<div class="font-medium">{{ $package->package_name }}</div>
|
||||
<div class="text-xs text-zinc-500">
|
||||
{{ \Illuminate\Support\Str::headline($package->type) }}
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>{{ $package->version }}</td>
|
||||
<td>{{ ucfirst($package->status) }}</td>
|
||||
<td>
|
||||
{{ $package->hasUpdate() ? $package->package->latest_version : 'Current' }}
|
||||
</td>
|
||||
|
||||
<td class="p-3">
|
||||
<div class="flex justify-end gap-2">
|
||||
@can('marketplace.update')
|
||||
<form
|
||||
method="POST"
|
||||
action="{{ route('administration.marketplace.toggle', $package) }}"
|
||||
>
|
||||
@csrf
|
||||
|
||||
<flux:button type="submit" size="sm">
|
||||
{{ $package->is_enabled ? 'Disable' : 'Enable' }}
|
||||
</flux:button>
|
||||
</form>
|
||||
|
||||
@if ($package->hasUpdate())
|
||||
<form
|
||||
method="POST"
|
||||
action="{{ route('administration.marketplace.update', $package->package) }}"
|
||||
>
|
||||
@csrf
|
||||
|
||||
<flux:button type="submit" size="sm" variant="primary">
|
||||
Update
|
||||
</flux:button>
|
||||
</form>
|
||||
@endif
|
||||
@endcan
|
||||
|
||||
@can('marketplace.remove')
|
||||
<form
|
||||
method="POST"
|
||||
action="{{ route('administration.marketplace.remove', $package) }}"
|
||||
>
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
|
||||
<flux:button type="submit" size="sm" variant="danger">
|
||||
Remove
|
||||
</flux:button>
|
||||
</form>
|
||||
@endcan
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="5" class="p-8 text-center text-zinc-500">
|
||||
No packages installed through the marketplace.
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{ $packages->links() }}
|
||||
</div>
|
||||
</x-layouts.app>
|
||||
Reference in New Issue
Block a user