File manager - Edit - /var/www/html/portalHomolog/resources/views/admin/ativosTi/equipamentos/show.blade.php
Back
@extends('layouts.admin.theme') @section('title', env('APP_NAME') . ' :: Equipamento ' . $equipamento->patrimonio) @section('content') <div class="card shadow-sm border-0"> @php $headLine = "<i class='fa-solid fa-desktop'></i> Equipamento " . "<span class='fw-normal fs-6 ms-1 text-muted'>{$equipamento->patrimonio}</span>"; @endphp @include('components.buttons._headLineButtonsBackAdd', [ 'headLine' => $headLine, 'urlBack' => session('ativosTi.ultima_listagem', route('admin.ativosTi.index', ['aba' => 'equipamentos'])), 'nameBack' => __('Lista'), 'routeAdd' => 'admin.ativosTi.equipamentos.edit', 'routeAddParams' => [$equipamento->id], 'nameAdd' => __('Editar'), 'fontawesomeAdd' => "<i class='fa-solid fa-pen'></i>", 'routeOther' => 'admin.ativosTi.equipamentos.laudo', 'routeOtherParams' => [$equipamento->id], 'nameOther' => __('Emitir Laudo'), 'fontawesomeOther' => "<i class='fa-solid fa-file-medical'></i>", 'permissionOther' => 'visualizar', 'permission' => 'GERENCIADOR_DE_ATIVOS_TI', ]) <div class="card-body"> @include('errors.messageFlash') @php $subtitle = ''; if ($equipamento->marca || $equipamento->modelo) { $subtitle = implode(' ', array_filter([$equipamento->marca, $equipamento->modelo])); if ($equipamento->etiqueta_ti) { $subtitle .= ' · '; } } if ($equipamento->etiqueta_ti) { $subtitle .= $equipamento->etiqueta_ti; } $rightInfo = []; if ($equipamento->unidade) { $rightInfo[] = [ 'icon' => 'fa-building', 'label' => $equipamento->unidade->abbreviation ?? $equipamento->unidade->name, ]; } if ($equipamento->responsavel) { $rightInfo[] = ['icon' => 'fa-user', 'label' => $equipamento->responsavel->name]; } @endphp <x-panel.identity-ativos-ti icon="fa-desktop" :title="$equipamento->patrimonio" :status-color="$equipamento->status_color" :status-label="$equipamento->status_label" :subtitle="$subtitle" :right-info="$rightInfo" /> <div class="row g-2 mb-4"> @php $campos = [ ['icon' => 'fa-barcode', 'label' => 'Patrimônio', 'value' => $equipamento->patrimonio], ['icon' => 'fa-tag', 'label' => 'Etiqueta TI', 'value' => $equipamento->etiqueta_ti], ['icon' => 'fa-industry', 'label' => 'Marca', 'value' => $equipamento->marca], ['icon' => 'fa-cube', 'label' => 'Modelo', 'value' => $equipamento->modelo], ['icon' => 'fa-fingerprint', 'label' => 'Nº de Série', 'value' => $equipamento->numero_serie], [ 'icon' => 'fa-building', 'label' => 'Unidade', 'value' => $equipamento->unidade?->abbreviation ?? $equipamento->unidade?->name, ], ['icon' => 'fa-user', 'label' => 'Responsável', 'value' => $equipamento->responsavel?->name], [ 'icon' => 'fa-calendar-plus', 'label' => 'Cadastrado em', 'value' => $equipamento->created_at?->format('d/m/Y'), ], ]; @endphp @foreach ($campos as $c) <div class="col-6 col-md-4 col-lg-3"> <div class="bg-light rounded-2 p-2 h-100"> <p class="text-muted small mb-1"> <i class="fa-solid {{ $c['icon'] }} fa-xs me-1 opacity-75"></i>{{ __($c['label']) }} </p> <span class="small fw-semibold">{{ $c['value'] ?? '—' }}</span> </div> </div> @endforeach </div> <div class="row g-4"> <div class="col-12 col-lg-6"> <div class="card border h-100"> <div class="card-header bg-transparent d-flex align-items-center justify-content-between py-2"> <span class="fw-semibold small"> <i class="fa-solid fa-microchip text-info me-1"></i>{{ __('Especificações Técnicas') }} </span> <button type="button" class="btn btn-sm btn-outline-primary py-0 px-2" data-bs-toggle="modal" data-bs-target="#modalEspecificacoes" title="{{ __('Editar') }}"> <i class="fa-solid fa-pen fa-xs"></i> </button> </div> <div class="card-body p-0"> @php $esp = $equipamento->especificacao()->first(); @endphp @if ($esp && ($esp->processador || $esp->memoria_ram || $esp->disco_rigido || $esp->placa_video)) <div class="px-3 py-2 border-bottom"> <small class="text-muted d-block">{{ __('Processador') }}</small> <span class="small fw-semibold">{{ $esp->processador ?? '—' }}</span> </div> <div class="px-3 py-2 border-bottom"> <small class="text-muted d-block">{{ __('Memória RAM') }}</small> <span class="small fw-semibold">{{ $esp->memoria_ram ?? '—' }}</span> </div> <div class="px-3 py-2 border-bottom"> <small class="text-muted d-block">{{ __('Disco Rígido / SSD') }}</small> <span class="small fw-semibold">{{ $esp->disco_rigido ?? '—' }}</span> </div> <div class="px-3 py-2"> <small class="text-muted d-block">{{ __('Placa de Vídeo') }}</small> <span class="small fw-semibold">{{ $esp->placa_video ?? '—' }}</span> </div> @else <div class="d-flex flex-column align-items-center justify-content-center text-center py-4 text-muted"> <i class="fa-solid fa-microchip fa-2x mb-2 opacity-25"></i> <small>{{ __('Nenhuma especificação técnica cadastrada.') }}</small> <button type="button" class="btn btn-sm btn-outline-primary mt-2" data-bs-toggle="modal" data-bs-target="#modalEspecificacoes"> <i class="fa-solid fa-plus fa-xs me-1"></i>{{ __('Adicionar especificações') }} </button> </div> @endif </div> </div> </div> <div class="col-12 col-lg-6"> <div class="card border h-100"> <div class="card-header bg-transparent d-flex align-items-center justify-content-between py-2"> <span class="fw-semibold small"> <i class="fa-solid fa-key text-warning me-1"></i>{{ __('Licenças instaladas') }} </span> @if ($equipamento->licencas->isNotEmpty()) <span class="badge bg-secondary rounded-pill">{{ $equipamento->licencas->count() }}</span> @endif </div> <div class="card-body p-0"> @forelse ($equipamento->licencas as $lic) @php $vencida = $lic->isVencida(); $vencendo = !$vencida && $lic->isVencendoEm(30); @endphp <div class="d-flex align-items-center gap-2 px-3 py-2 border-bottom flex-wrap {{ $vencida ? 'bg-danger bg-opacity-10' : ($vencendo ? 'bg-warning bg-opacity-10' : '') }}"> <span class="badge bg-{{ $lic->tipo_color }} flex-shrink-0">{{ $lic->tipo_label }}</span> <span class="small fw-semibold flex-grow-1 text-truncate">{{ $lic->programa }}</span> @if ($lic->data_final) <small class="text-nowrap text-muted"> <i class="fa-regular fa-calendar fa-xs me-1"></i>{{ $lic->data_final->format('d/m/Y') }} @if ($vencida) <span class="badge bg-danger ms-1">{{ __('Vencida') }}</span> @elseif ($vencendo) @php $dias = (int) $lic->data_final->diffInDays(now()); @endphp <span class="badge bg-warning text-dark ms-1">{{ $dias }}d</span> @endif </small> @endif <a href="{{ route('admin.ativosTi.licencas.edit', $lic->id) }}" class="btn btn-sm btn-outline-secondary py-0 px-1 flex-shrink-0" title="{{ __('Editar') }}"> <i class="fa-solid fa-pen fa-xs"></i> </a> </div> @empty <div class="d-flex flex-column align-items-center justify-content-center text-center py-4 text-muted"> <i class="fa-solid fa-key fa-2x mb-2 opacity-25"></i> <small>{{ __('Nenhuma licença vinculada.') }}</small> <a href="{{ route('admin.ativosTi.licencas.create') }}" class="btn btn-sm btn-outline-primary mt-2"> <i class="fa-solid fa-plus fa-xs me-1"></i>{{ __('Adicionar licença') }} </a> </div> @endforelse </div> </div> </div> <div class="col-12"> <div class="card border h-100"> <div class="card-header bg-transparent d-flex align-items-center justify-content-between py-3"> <span class="fw-semibold small"> <i class="fa-solid fa-clock-rotate-left text-primary me-1"></i>{{ __('Demandas vinculadas') }} </span> @if ($equipamento->demandas->isNotEmpty()) <span class="badge bg-secondary rounded-pill">{{ $equipamento->demandas->count() }}</span> @endif </div> <div class="card-body p-0"> @forelse ($equipamento->demandas as $dem) @php $demColors = [ 'pendente' => 'warning', 'em_andamento' => 'primary', 'atendido' => 'success', 'cancelado' => 'secondary', ]; $demColor = $demColors[$dem->status] ?? 'secondary'; @endphp <div class="d-flex align-items-start gap-3 px-3 py-3 border-bottom"> <span class="badge bg-{{ $demColor }} flex-shrink-0 mt-1"> {{ __(\App\Enums\StatusDemanda::tryFrom($dem->status)?->label() ?? $dem->status) }} </span> <div class="min-w-0 flex-grow-1"> <a href="{{ route('admin.demandas.show', $dem->id) }}" class="small fw-semibold text-body text-decoration-none d-block text-truncate"> {{ $dem->numero }} — {{ $dem->titulo }} </a> <small class="text-muted"> <i class="fa-regular fa-clock fa-xs me-1"></i>{{ $dem->data_abertura?->format('d/m/Y H:i') }} </small> </div> @if (auth()->user()->getPermissaoDetalhes('GERENCIADOR_DE_ATIVOS_TI')['visualizar']) <div class="d-flex gap-1 flex-shrink-0"> <a href="{{ route('admin.ativosTi.equipamentos.laudo', [$equipamento, 'demanda_id' => $dem->id]) }}" target="_blank" class="btn btn-sm btn-outline-danger" title="{{ __('Emitir laudo técnico') }}"> <i class="fa-solid fa-file-medical fa-xs"></i> </a> </div> @endif </div> @empty <div class="d-flex flex-column align-items-center justify-content-center text-center py-4 text-muted"> <i class="fa-solid fa-clock-rotate-left fa-2x mb-2 opacity-25"></i> <small>{{ __('Nenhuma demanda vinculada a este equipamento.') }}</small> </div> @endforelse </div> </div> </div> </div> </div> </div> @php $especificacao = $equipamento->especificacao()->first(); @endphp <div class="modal fade" id="modalEspecificacoes" tabindex="-1"> <div class="modal-dialog"> <form action="{{ route('admin.ativosTi.equipamentos.especificacoes.update', $equipamento) }}" method="POST"> @csrf @method('PUT') <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title"> <i class="fa-solid fa-microchip me-2"></i>{{ __('Especificações Técnicas') }} </h5> <button type="button" class="btn-close" data-bs-dismiss="modal"></button> </div> <div class="modal-body"> <div class="mb-3"> <label class="form-label">{{ __('Processador') }}</label> <input type="text" name="processador" class="form-control" placeholder="Ex: Intel Core i7 10700K" value="{{ old('processador', $especificacao?->processador ?? '') }}"> </div> <div class="mb-3"> <label class="form-label">{{ __('Memória RAM') }}</label> <input type="text" name="memoria_ram" class="form-control" placeholder="Ex: 16GB DDR4" value="{{ old('memoria_ram', $especificacao?->memoria_ram ?? '') }}"> </div> <div class="mb-3"> <label class="form-label">{{ __('Disco Rígido / SSD') }}</label> <input type="text" name="disco_rigido" class="form-control" placeholder="Ex: 512GB SSD NVMe" value="{{ old('disco_rigido', $especificacao?->disco_rigido ?? '') }}"> </div> <div class="mb-0"> <label class="form-label">{{ __('Placa de Vídeo') }}</label> <input type="text" name="placa_video" class="form-control" placeholder="Ex: NVIDIA GeForce RTX 3060" value="{{ old('placa_video', $especificacao?->placa_video ?? '') }}"> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal"> {{ __('Cancelar') }} </button> <button type="submit" class="btn btn-primary"> <i class="fa-solid fa-save me-1"></i>{{ __('Salvar') }} </button> </div> </div> </form> </div> </div> @endsection
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings