96 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <div>
 | |
|     <livewire:project.application.preview.form :application="$application" />
 | |
|     <div>
 | |
|         <div class="flex items-center gap-2">
 | |
|             <h3>Pull Requests on Git</h3>
 | |
|             <x-forms.button wire:click="load_prs">Load Pull Requests (open)
 | |
|             </x-forms.button>
 | |
|         </div>
 | |
|         @isset($rate_limit_remaining)
 | |
|             <div class="pt-1 text-sm">Requests remaning till rate limited by Git: {{ $rate_limit_remaining }}</div>
 | |
|         @endisset
 | |
|         @if (count($pull_requests) > 0)
 | |
|             <div wire:loading.remove wire:target='load_prs' class="flex gap-4 py-4">
 | |
|                 <div class="overflow-x-auto table-md">
 | |
|                     <table class="table">
 | |
|                         <thead>
 | |
|                             <tr class="text-warning border-coolgray-200">
 | |
|                                 <th>PR Number</th>
 | |
|                                 <th>PR Title</th>
 | |
|                                 <th>Git</th>
 | |
|                                 <th>Actions</th>
 | |
|                             </tr>
 | |
|                         </thead>
 | |
|                         <tbody>
 | |
|                             @foreach ($pull_requests as $pull_request)
 | |
|                                 <tr class="border-coolgray-200">
 | |
|                                     <th>{{ data_get($pull_request, 'number') }}</th>
 | |
|                                     <td>{{ data_get($pull_request, 'title') }}</td>
 | |
|                                     <td>
 | |
|                                         <a target="_blank" class="text-xs"
 | |
|                                             href="{{ data_get($pull_request, 'html_url') }}">Open PR on
 | |
|                                             Git
 | |
|                                             <x-external-link />
 | |
|                                         </a>
 | |
|                                     </td>
 | |
|                                     <td class="flex items-center justify-center gap-2">
 | |
|                                         <x-forms.button
 | |
|                                             wire:click="deploy('{{ data_get($pull_request, 'number') }}', '{{ data_get($pull_request, 'html_url') }}')">
 | |
|                                             Deploy
 | |
|                                         </x-forms.button>
 | |
|                                     </td>
 | |
|                                 </tr>
 | |
|                             @endforeach
 | |
|                         </tbody>
 | |
|                     </table>
 | |
|                 </div>
 | |
|             </div>
 | |
|         @endif
 | |
|     </div>
 | |
|     @if ($application->previews->count() > 0)
 | |
|         <h4 class="pt-4">Preview Deployments</h4>
 | |
|         <div class="flex gap-6 text-sm">
 | |
|             @foreach ($application->previews as $preview)
 | |
|                 <div class="flex flex-col p-4 bg-coolgray-200 " x-init="$wire.loadStatus('{{ data_get($preview, 'pull_request_id') }}')">
 | |
|                     <div class="flex gap-2">PR #{{ data_get($preview, 'pull_request_id') }} |
 | |
|                         @if (data_get($preview, 'status') === 'running')
 | |
|                             <div class="flex items-center gap-2">
 | |
|                                 <div class="badge badge-success badge-xs"></div>
 | |
|                                 <div class="text-xs font-medium tracking-wide">Running</div>
 | |
|                             </div>
 | |
|                         @else
 | |
|                             <div class="flex items-center gap-2">
 | |
|                                 <div class="badge badge-error badge-xs"></div>
 | |
|                                 <div class="text-xs font-medium tracking-wide">Stopped</div>
 | |
|                             </div>
 | |
|                         @endif
 | |
|                         @if (data_get($preview, 'status') !== 'exited')
 | |
|                             | <a target="_blank" href="{{ data_get($preview, 'fqdn') }}">Open Preview
 | |
|                                 <x-external-link />
 | |
|                             </a>
 | |
|                         @endif
 | |
|                         |
 | |
|                         <a target="_blank" href="{{ data_get($preview, 'pull_request_html_url') }}">Open PR on Git
 | |
|                             <x-external-link />
 | |
|                         </a>
 | |
|                     </div>
 | |
|                     <div class="flex items-center gap-2 pt-6">
 | |
|                         <x-forms.button wire:click="deploy({{ data_get($preview, 'pull_request_id') }})">
 | |
|                             @if (data_get($preview, 'status') === 'exited')
 | |
|                                 Deploy
 | |
|                             @else
 | |
|                                 Redeploy
 | |
|                             @endif
 | |
|                         </x-forms.button>
 | |
|                         @if (data_get($preview, 'status') !== 'exited')
 | |
|                             <x-forms.button wire:click="stop({{ data_get($preview, 'pull_request_id') }})">Remove
 | |
|                                 Preview
 | |
|                             </x-forms.button>
 | |
|                         @endif
 | |
|                     </div>
 | |
|                 </div>
 | |
|             @endforeach
 | |
|         </div>
 | |
|     @endif
 | |
| </div>
 | 
