Contextualization When you register a project by default the Documentation Status is pending as a result of this configuration the project tabs are not visible. IfyouchangetheDocumentationStatustoAuthorizedorCompliantandthenpresstheAuthorizeDocumentationbuttonas>Projecttabswillbevisible.
Doubt:HowtodothiseventinJavaScript,AjaxorJQuery?
PossibleSolution:Ideclarethephpvariable$btnAuthorizeDocumentasaBooleantype.ButI'mhavingahardtimedoingprogramminglogic.Forexample,whenthisvariableisAuthorizedor"In Compliance" it must be true, otherwise it should be false.
Here are the codes: The project register is done in edit mode. Edit method of the ProjectController.php class:
//Método que redireciona para a página de editar o Projeto
public function edita($id, Request $request)
{
$btnAutorizarDocumento = false;
$setores = Setor::all();
$proponentes = Proponente::all();
$tipoProjetos = TipoProjeto::all();
$modalidadeApoios = ModalidadeApoio::all();
$localidades = Localidade::all();
$permissoesAprovacao = verificarPermissao('Aprovação');
$permissoesJuridico = verificarPermissao('Juridico');
$permissoesGestaoContrato = verificarPermissao('Gestão Contratos e Convênios');
$permissoesFinanceiro = verificarPermissao('Financeiro');
$permissoesOcorrencia = verificarPermissao('Ocorrência');
$permissoesAbas= verificarPermissao('Abas do Projeto');
$permissoesDadosGeraisProj= verificarPermissao('Dados Gerais do Projeto');
$usuarioResponsavel = Auth::user()->name;
return view('admin.projeto.edita', ['projeto' => Projeto::find($id), 'permissoesAprovacao' => $permissoesAprovacao, 'permissoesJuridico' => $permissoesJuridico,
'permissoesGestaoContrato' => $permissoesGestaoContrato , 'permissoesFinanceiro' => $permissoesFinanceiro,
'permissoesOcorrencia'=> $permissoesOcorrencia, 'permissoesDadosGeraisProj' => $permissoesDadosGeraisProj,
'permissoesAbas' => $permissoesAbas, 'setores' => $setores, 'proponentes' => $proponentes, 'tipoProjetos' => $tipoProjetos,
'localidades' => $localidades,'modalidadeApoios' => $modalidadeApoios, 'usuarioResponsavel'=>$usuarioResponsavel,'btnAutorizarDocumento' =>$btnAutorizarDocumento]);
}
Code snippet of the project edit page edita.blade.php . Contains the selection combo and the Authorize Documentation button.
<div class="col-md-6 form-group">
<label class="control-label">Status da Documentação</label>
<select multiple id="statusDoc" class="form-control" type="text" class="form-control" name="statusDoc" >
<option value="A" {{old('statusDoc') == 'A' ? 'selected' : ''}}>Autorizado</option>
<option value="P" {{old('statusDoc') == 'P' ? 'selected' : ''}}>Pendente</option>
<option value="C" {{old('statusDoc') == 'C' ? 'selected' : ''}}>Em Conformidade</option>
</select>
</div>
<button id="btnAutorizarDocumento" type="button" class="btn btn-primary" data-toggle="button" aria-pressed="false" autocomplete="off"
align="center" style="width: 180px; height: 40px" onclick="click();">
Autorizar Documentação
</button>
Conditional excerpt that validates the visibility of the project tabs. Explanation: If the user has permission to view the tabs and the document is authorized, the tabs will be visible.
@if ($ permissoesAbas-> create == 1 & & $ btnAuthorizeDocument)
<!--Inicio da abas-->
@if($permissoesAbas->create == 1 && $btnAutorizarDocumento)
<div class="card">
<!-- Nav tabs -->
<ul class="nav nav-tabs" id="nav-tab" role="tablist" >
<li class="nav-item nav-link active" aria-controls="aprovacao" data-toggle="tab" href="#aprovacao" role="presentation" aria-selected="true"><i class="fa fa-check" aria-hidden="true"></i> Aprovação</a></li>
<li role="presentation"><a href="#juridico" aria-controls="juridico" data-toggle="tab"><i class="fa fa-gavel" aria-hidden="true"></i> Jurídico</a></li>
<li role="presentation"><a href="#gestaoContrato" aria-controls="gestaoContrato" data-toggle="tab"><i class="fa fa-book" aria-hidden="true"></i> Gestão de Contratos e Convênios</a></li>
<li role="presentation"><a href="#financeiro" aria-controls="financeiro" data-toggle="tab"><i class="fa fa-usd" aria-hidden="true"></i> Financeiro</a></li>
<li role="presentation"><a href="#ocorrencia" aria-controls="ocorrencia" data-toggle="tab"><i class="fa fa-tasks" aria-hidden="true"></i> Ocorrências</a></li>
</ul>
JavaScript snippet that will make this event (edita.blade.php file) Note: it is incomplete
<script src="https://code.jquery.com/jquery-1.12.4.min.js"integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script type="text/javascript">
$(document).ready(function() {
$( "#btnAutorizarDocumento" ).bind( "click", function() {
$( "{$btnAutorizarDocumento}" ).val(true);
});
});
</script>