Files
ABSDEV/Modules/Marketplace/Resources/views/installed.blade.php
T
Mark Gregory f09a680531 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
2026-07-24 13:49:14 +01:00

105 lines
4.6 KiB
PHP

<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>