## Summary - productize the restore wizard preview safety gates and process-flow guidance for Spec 332 - add the restore create presenter plus new process-flow, proof, scope, and safety partials - extend restore wizard feature, smoke, screenshot, and presenter coverage - include the Spec 332 artifacts for spec, plan, and tasks ## Notes - branch head was already pushed before PR creation - working tree was clean when this PR was opened Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #399
69 lines
3.2 KiB
PHP
69 lines
3.2 KiB
PHP
<div class="space-y-4" data-testid="restore-group-picker-modal-content">
|
|
<div class="rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-800 dark:bg-gray-900/80" data-testid="restore-group-picker-context">
|
|
<p class="text-xs font-semibold uppercase tracking-[0.2em] text-gray-500 dark:text-gray-400">
|
|
Source group
|
|
</p>
|
|
<p class="mt-2 text-sm font-medium text-gray-900 dark:text-gray-100" data-testid="restore-group-picker-source-name">
|
|
{{ $sourceGroupDisplayName ?? 'Unknown source group' }}
|
|
</p>
|
|
<p class="mt-1 text-sm text-gray-700 dark:text-gray-200" data-testid="restore-group-picker-source-id">
|
|
Source ID: {{ $sourceGroupId }}
|
|
</p>
|
|
</div>
|
|
|
|
@if ($hasCachedGroups)
|
|
<div class="space-y-2" data-testid="restore-group-picker-table">
|
|
{{ $this->table }}
|
|
</div>
|
|
@else
|
|
<div class="rounded-xl border border-dashed border-warning-300 bg-warning-50/70 p-6 dark:border-warning-700 dark:bg-warning-950/25" data-testid="restore-group-picker-empty-state">
|
|
<div class="space-y-3">
|
|
<div>
|
|
<h3 class="text-base font-semibold text-gray-950 dark:text-white">
|
|
No directory group cache available
|
|
</h3>
|
|
<p class="mt-2 text-sm leading-6 text-gray-600 dark:text-gray-300">
|
|
TenantPilot needs cached directory groups before target mappings can be selected.
|
|
</p>
|
|
<p class="mt-1 text-sm leading-6 text-gray-600 dark:text-gray-300">
|
|
Sync directory groups, then return to this mapping.
|
|
</p>
|
|
<p class="mt-1 text-sm leading-6 text-gray-600 dark:text-gray-300">
|
|
If you already know the target object ID, close this picker and enter it manually in the mapping field.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="flex flex-wrap gap-3">
|
|
@if (filled($groupSyncUrl))
|
|
<x-filament::button
|
|
data-testid="restore-group-picker-open-sync"
|
|
:href="$groupSyncUrl"
|
|
tag="a"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
color="primary"
|
|
size="sm"
|
|
>
|
|
Open group sync
|
|
</x-filament::button>
|
|
@endif
|
|
|
|
@if (filled($groupSyncOperationsUrl))
|
|
<x-filament::button
|
|
data-testid="restore-group-picker-view-operations"
|
|
:href="$groupSyncOperationsUrl"
|
|
tag="a"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
color="gray"
|
|
size="sm"
|
|
>
|
|
View group sync operations
|
|
</x-filament::button>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
</div>
|