global-index.blade.php
1 <div> 2 <x-card title="{{ __('resolutions.cards.index') }}" headerClasses="bg-primary-600 rounded-t text-white"> 3 4 <x-slot name="action"> 5 <x-dropdown> 6 <x-slot name="trigger"> 7 <button class="rounded-full focus:outline-none focus:ring-2 focus:ring-white"> 8 <x-icon name="dots-vertical" class="w-4 h-4 text-white"/> 9 </button> 10 </x-slot> 11 12 <x-dropdown.item wire:click='exportToCSV({{ $this->dossierId }})' 13 label="{{ __('resolutions.cards.actions.download.excel') }}"/> 14 </x-dropdown> 15 </x-slot> 16 17 <div class="flex flex-col space-y-4"> 18 <x-card title="{{ __('resolutions.cards.filters') }}" 19 headerClasses="bg-primary-600 rounded-t text-white text-sm"> 20 <div class="grid grid-cols-12 gap-4 w-full"> 21 <div class="col-span-4"> 22 <x-input :label="__('resolutions.filters.search')" 23 :placeholder="__('resolutions.filters.placeholders.filter')" wire:model="search"/> 24 </div> 25 <div class="col-span-2"> 26 <x-input :label="__('resolutions.filters.resolution_year')" 27 :placeholder="__('resolutions.filters.placeholders.resolution_year')" 28 wire:model="filters.resolution_year"/> 29 </div> 30 31 <div class="col-span-2"> 32 <x-select class="w-full" multiselect :label="__('resolutions.filters.resolution_number')" 33 wire:model="filters.code" 34 :async-data="route('filter.resolutions.resolution_numbers')" option-label="name" 35 option-value="id"/> 36 </div> 37 <div class="col-span-2"> 38 <x-select class="w-full" select :label="__('resolutions.filters.approved')" 39 wire:model="filters.approved" 40 :options="$this->resolutionResults" option-label="name" option-value="value"/> 41 </div> 42 <div class="col-span-2"> 43 <x-select class="w-full" multiselect :label="__('toes.toe.title')" 44 wire:model="filters.toe_ids" :options="$this->toes" option-label="name" 45 option-value="id"/> 46 </div> 47 <div class="col-span-2"> 48 <x-datetime-picker :label="__('resolutions.filters.published_at_since')" 49 wire:model="filters.published_at_since"/> 50 </div> 51 <div class="col-span-2"> 52 <x-datetime-picker :label="__('resolutions.filters.published_at_to')" 53 wire:model="filters.published_at_to"/> 54 </div> 55 </div> 56 </x-card> 57 58 <div wire:init="fetchData" class="space-y-4"> 59 <x-table.table> 60 <x-slot name="head"> 61 <x-table.heading sortable class="text-center"> 62 {{ __('resolutions.table.resolution_number') }} 63 </x-table.heading> 64 65 <x-table.heading sortable class="text-center"> 66 {{ __('resolutions.table.dossier_code') }} 67 </x-table.heading> 68 69 <x-table.heading sortable class="text-center"> 70 {{ __('resolutions.table.toe_name') }} 71 </x-table.heading> 72 73 <x-table.heading sortable class="text-center"> 74 {{ __('resolutions.table.approve') }}</x-table.heading> 75 76 <x-table.heading sortable class="text-center"> 77 {{ __('resolutions.table.resolution_proposal') }}</x-table.heading> 78 79 <x-table.heading sortable class="text-center"> 80 {{ __('resolutions.table.certification_report') }}</x-table.heading> 81 82 <x-table.heading sortable class="text-center"> 83 {{ __('resolutions.table.resolution_date') }}</x-table.heading> 84 85 <x-table.heading sortable class="text-center"> 86 {{ __('resolutions.table.BOE_code') }}</x-table.heading> 87 88 <x-table.heading sortable class="text-center"> 89 {{ __('resolutions.table.publication_date') }}</x-table.heading> 90 91 92 </x-slot> 93 <x-slot name="body"> 94 @forelse ($this->resolutions as $resolution) 95 <x-table.row wire:loading.class.delay="opacity-50" wire:ignore.self> 96 97 <x-table.cell class="text-xs text-center text-gray-500"> 98 {{ $resolution->resolutionNumber }} 99 </x-table.cell> 100 101 <x-table.cell class="text-xs text-center text-gray-500"> 102 {{ $resolution->dossier->code }} 103 </x-table.cell> 104 105 <x-table.cell class="text-xs text-center text-gray-500"> 106 {{ $resolution->dossier?->toe?->name ?? __('app.none')}} 107 </x-table.cell> 108 109 <x-table.cell class="text-xs text-center text-gray-500"> 110 @if ($resolution->approved === null) 111 <x-badge flat secondary label="N/A"/> 112 @elseif ($resolution->approved) 113 <x-badge flat positive label="{{ __('resolutions.panel.status.approved') }}"/> 114 @else 115 <x-badge flat negative label="{{ __('resolutions.panel.status.rejected') }}"/> 116 @endif 117 </x-table.cell> 118 119 <x-table.cell class="text-xs text-center text-gray-500"> 120 {{ $resolution->resolvedDoc->name ?? 'N/A' }} 121 </x-table.cell> 122 123 <x-table.cell class="text-xs text-center text-gray-500"> 124 {{ $resolution->inforCert->name ?? 'N/A' }} 125 </x-table.cell> 126 127 <x-table.cell class="text-xs text-center text-gray-500"> 128 <x-show-date :date="$resolution->resolution_date" format="d/m/Y"/> 129 </x-table.cell> 130 131 <x-table.cell class="text-xs text-center text-gray-500"> 132 {{ ($resolution->approved ? $resolution->BOE_code : __('resolutions.panel.status.not_applicable')) ?? 'N/A' }} 133 </x-table.cell> 134 135 <x-table.cell class="text-xs text-center text-gray-500"> 136 <x-show-date :date="$resolution->publication_date" format="d/m/Y"/> 137 </x-table.cell> 138 139 </x-table.row> 140 @empty 141 <x-table.empty-row message="{{ __('resolutions.table.empty') }}" colspan="10"/> 142 @endforelse 143 </x-slot> 144 </x-table.table> 145 </div> 146 147 @if ($this->readyToLoad) 148 {{ $this->resolutions->links() }} 149 @endif 150 </div> 151 </x-card> 152 </div>