File manager - Edit - /var/www/html/portal/resources/views/admin/projetosProgramas/sections/cronograma.blade.php
Back
@extends('layouts.admin.theme') @section('content') <div class="container text-start pb-5 mb-5"> @if(session('success')) <div class="alert alert-success mb-4" role="alert"> {{ session('success') }} </div> @endif @if(session('error')) <div class="alert alert-danger mb-4" role="alert"> {{ session('error') }} </div> @endif @if($errors->any()) <div class="alert alert-danger mb-4" role="alert"> @foreach($errors->all() as $e) <div>{{ $e }}</div> @endforeach </div> @endif <div class="row mb-4"> <div class="col text-start"> <h3>{{ __('Cronograma') }}</h3> </div> <div class="col text-end d-flex justify-content-end"> <button type="button" class="btn btn-light bg-mediumGray me-2" onclick="window.location='{{ route('admin.projetosProgramas.index', $projetosListagemReturnQuery ?? []) }}'"> <i class="fa fa-list me-1"></i> {{ __('Início') }} </button> </div> </div> @include('admin.projetosProgramas.partials.steps', [ 'current' => 'cronograma', 'project' => $project, 'projetosListagemReturnQuery' => $projetosListagemReturnQuery ?? [], ]) @include('components.projetosProgramas._stickyProjectHeader', ['project' => $project]) @php $apRaw = old('acompanhamento_prioritario'); if ($apRaw === null || $apRaw === '') { $ap = ($project->acompanhamento_prioritario || $project->acompanhamento_governo || $project->prioritario) ? '1' : '0'; } else { $ap = ((string) $apRaw === '1' || $apRaw === 1 || $apRaw === true) ? '1' : '0'; } $relacaoPpaFederal = old('relacao_ppa_federal'); if ($relacaoPpaFederal === null || $relacaoPpaFederal === '') { $relacaoPpaFederal = filled($project->relacao_ppa) ? '1' : '0'; } else { $relacaoPpaFederal = ((string) $relacaoPpaFederal === '1' || $relacaoPpaFederal === 1 || $relacaoPpaFederal === true) ? '1' : '0'; } $andCorVal = old('andamento_cor', $project->andamento_cor); $andCorNone = $andCorVal === null || $andCorVal === ''; $mapaoCorSwatch = static function (string $valor): string { return match ($valor) { 'verde' => 'success', 'vermelho' => 'danger', 'amarelo' => 'warning', default => 'secondary', }; }; @endphp <form method="post" action="{{ route('admin.projetosProgramas.cronograma.store', $project->id) }}" enctype="multipart/form-data" class="mt-3 text-start"> @csrf @include('components.projetosProgramas._pp_listagem_context_hiddens', ['query' => $projetosListagemReturnQuery ?? []]) <div class="row g-3"> <div class="col-md-4"> @php $prazoCompOld = old('prazo_entrega_competencia', $project->prazo_entrega_competencia); $prazoDiasHidden = old('prazo_entrega_dias'); if ($prazoDiasHidden === null) { $prazoDiasHidden = $project->prazo_entrega_dias; } @endphp <label class="form-label" for="prazo_entrega_competencia">{{ __('Prazo de entrega (mês / ano)') }}</label> <input type="month" id="prazo_entrega_competencia" name="prazo_entrega_competencia" class="form-control" value="{{ $prazoCompOld }}" autocomplete="off" data-prazo-competencia-input aria-describedby="prazo_entrega_legenda"> <input type="hidden" name="prazo_entrega_dias" id="prazo_entrega_dias_hidden" value="{{ $prazoDiasHidden !== null && $prazoDiasHidden !== '' ? (string) $prazoDiasHidden : '' }}" data-prazo-dias-input> <div id="prazo_entrega_legenda" class="form-text text-muted mt-2" data-prazo-dias-legenda role="status"></div> </div> <div class="col-md-8"> <span id="legend-ap-prio" class="form-label d-block mb-2">{{ __('Acompanhamento prioritário?') }}</span> <div class="d-flex gap-3" role="group" aria-labelledby="legend-ap-prio"> <div class="form-check"> <input class="form-check-input" type="radio" name="acompanhamento_prioritario" id="apSim" value="1" {{ $ap === '1' ? 'checked' : '' }}> <label class="form-check-label" for="apSim">{{ __('Sim') }}</label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="acompanhamento_prioritario" id="apNao" value="0" {{ $ap === '0' ? 'checked' : '' }}> <label class="form-check-label" for="apNao">{{ __('Não') }}</label> </div> </div> </div> <div class="col-md-4"> <label class="form-label" for="etapa_id">{{ __('Etapa') }}</label> <select name="etapa_id" id="etapa_id" class="form-select"> <option value="">{{ __('--- Selecione ---') }}</option> @foreach($etapas as $e) <option value="{{ $e->id }}" {{ (string) old('etapa_id', $project->etapa_id) === (string) $e->id ? 'selected' : '' }}> {{ $e->nome }} </option> @endforeach </select> </div> <div class="col-12 col-lg-10"> <span id="bloco-andamento-titulo" class="form-label d-block mb-2">{{ __('Andamento') }}</span> <p class="form-text text-muted small mb-2">{{ __('Escolha a cor conforme a legenda do MAPÃO impresso; abaixo, descreva o andamento em texto livre, se necessário.') }}</p> <div class="d-flex flex-column gap-2 mb-3" role="radiogroup" aria-labelledby="bloco-andamento-titulo"> @foreach($andamentoCores as $valor => $legenda) @php $tone = $mapaoCorSwatch((string) $valor); @endphp <div class="form-check"> <input class="form-check-input" type="radio" name="andamento_cor" id="andamento_cor_{{ $valor }}" value="{{ $valor }}" {{ (string) $andCorVal === (string) $valor ? 'checked' : '' }}> <label class="form-check-label d-flex align-items-center gap-2 flex-wrap" for="andamento_cor_{{ $valor }}"> <span class="rounded border shadow-sm d-inline-block p-2 bg-{{ $tone }}" aria-hidden="true"></span> <span>{{ $legenda }}</span> </label> </div> @endforeach <div class="form-check"> <input class="form-check-input" type="radio" name="andamento_cor" id="andamento_cor_nenhum" value="" {{ $andCorNone ? 'checked' : '' }}> <label class="form-check-label d-flex align-items-center gap-2 flex-wrap" for="andamento_cor_nenhum"> <span class="rounded border d-inline-block p-2 bg-light" aria-hidden="true"></span> <span>{{ __('Sem legenda (neutro)') }}</span> </label> </div> </div> <label for="andamento" class="visually-hidden">{{ __('Descrição em texto do andamento') }}</label> <textarea name="andamento" id="andamento" rows="3" class="form-control" placeholder="{{ __('Texto livre sobre o andamento do projeto') }}" aria-labelledby="bloco-andamento-titulo">{{ old('andamento', $project->andamento) }}</textarea> </div> <div class="col-12"> <span id="relacao-ppa-fed-legend" class="form-label d-block mb-2">{{ __('Há Relação com PPA do Governo Federal?') }}</span> <div class="d-flex gap-3" role="radiogroup" aria-labelledby="relacao-ppa-fed-legend"> <div class="form-check"> <input class="form-check-input" type="radio" name="relacao_ppa_federal" id="relacaoPpaFedSim" value="1" {{ (string) $relacaoPpaFederal === '1' ? 'checked' : '' }} data-relacao-ppa-fed-radio> <label class="form-check-label" for="relacaoPpaFedSim">{{ __('Sim') }}</label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="relacao_ppa_federal" id="relacaoPpaFedNao" value="0" {{ (string) $relacaoPpaFederal === '0' ? 'checked' : '' }} data-relacao-ppa-fed-radio> <label class="form-check-label" for="relacaoPpaFedNao">{{ __('Não') }}</label> </div> </div> </div> <div class="col-12 mt-2 {{ (string) $relacaoPpaFederal === '1' ? '' : 'd-none' }}" data-relacao-ppa-texto-wrap> <label class="form-label" for="relacao_ppa">{{ __('Qual é a relação?') }}</label> <textarea name="relacao_ppa" id="relacao_ppa" class="form-control form-control-sm" rows="2" maxlength="2000" autocomplete="off" aria-describedby="relacao-ppa-fed-legend">{{ old('relacao_ppa', $project->relacao_ppa) }}</textarea> </div> </div> <hr class="my-4"> <h4 class="h6">{{ __('Histórico (timeline de observações)') }}</h4> <p class="small text-muted">{{ __('Registre observações com data e situação. Itens existentes podem ser removidos marcando a opção ao lado.') }}</p> @if($project->historicos->isNotEmpty()) <div class="table-responsive mb-3"> <table class="table table-sm table-bordered align-middle"> <thead class="table-light"> <tr> <th scope="col">{{ __('Data') }}</th> <th scope="col">{{ __('Status') }}</th> <th scope="col">{{ __('Texto') }}</th> <th scope="col">{{ __('Anexos') }}</th> <th scope="col" class="text-start">{{ __('Remover') }}</th> </tr> </thead> <tbody> @foreach($project->historicos as $h) <tr> <td>{{ $h->data ? $h->data->format('d/m/Y') : '—' }}</td> <td>{{ $h->status ?? '—' }}</td> <td>{{ \Illuminate\Support\Str::limit($h->texto ?? '', 120) }}</td> <td> @include('components.projetosProgramas._historicoAnexosLista', [ 'anexos' => $h->anexos, 'projetoId' => $project->id, ]) </td> <td class="text-start align-middle"> <div class="form-check mb-0"> <input class="form-check-input" type="checkbox" name="historicos_remover[]" value="{{ $h->id }}" id="hr{{ $h->id }}" aria-label="{{ __('Remover este registro do histórico') }}"> </div> </td> </tr> @endforeach </tbody> </table> </div> @endif <div data-novos-historicos data-lbl-data="{{ __('Data') }}" data-lbl-status="{{ __('Status') }}" data-lbl-texto="{{ __('Texto') }}" data-lbl-anexos="{{ __('Anexos') }}" data-lbl-anexos-ajuda="{{ __('PDF, Word, Excel ou imagens. Máx. 50 MB por arquivo.') }}" data-lbl-remover-linha="{{ __('Remover linha') }}"></div> <button type="button" class="btn btn-outline-secondary btn-sm mb-3" data-add-historico-row> <i class="fa-solid fa-plus me-1"></i> {{ __('Adicionar linha ao histórico') }} </button> <div class="text-end mt-4 d-flex gap-3"> <button type="submit" class="btn btn-green"> <i class="fa fa-arrow-right me-1"></i> {{ __('Salvar e Prosseguir') }} </button> </div> </form> </div> <script src="{{ asset('pmar/js/projetos-programas-cronograma.js') }}"></script> @endsection
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings