Commit f7f638c4 authored by Lucas Henrique's avatar Lucas Henrique
Browse files

Adiciona novos tipos de avaliação na edição de evento

parent d40a70df
...@@ -122,6 +122,7 @@ class EventoController extends Controller ...@@ -122,6 +122,7 @@ class EventoController extends Controller
'natureza' => ['required'], 'natureza' => ['required'],
'coordenador_id' => ['required'], 'coordenador_id' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date'], 'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'], 'inicioRevisao' => ['required', 'date'],
...@@ -153,6 +154,7 @@ class EventoController extends Controller ...@@ -153,6 +154,7 @@ class EventoController extends Controller
'coordenador_id' => ['required'], 'coordenador_id' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'], 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'],
'tipoAvaliacao' => ['required'],
#---------------------------------------------- #----------------------------------------------
'inicioSubmissao' => ['required', 'date', 'after:yesterday'], 'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
...@@ -223,6 +225,7 @@ class EventoController extends Controller ...@@ -223,6 +225,7 @@ class EventoController extends Controller
$evento['anexosStatus'] = 'final'; $evento['anexosStatus'] = 'final';
$evento['inicioProjeto'] = $request->inicioProjeto; $evento['inicioProjeto'] = $request->inicioProjeto;
$evento['fimProjeto'] = $request->fimProjeto; $evento['fimProjeto'] = $request->fimProjeto;
$evento['tipoAvaliacao'] = $request->tipoAvaliacao;
if($request->tipoAvaliacao == "link") { if($request->tipoAvaliacao == "link") {
$evento['formAvaliacaoExterno'] = $request->link; $evento['formAvaliacaoExterno'] = $request->link;
} }
...@@ -299,7 +302,7 @@ class EventoController extends Controller ...@@ -299,7 +302,7 @@ class EventoController extends Controller
$campoAval = new CampoAvaliacao(); $campoAval = new CampoAvaliacao();
$campoAval->nome = $request->inputField[$value]['nome']; $campoAval->nome = $request->inputField[$value]['nome'];
$campoAval->nota_maxima = $request->inputField[$value]['nota_maxima']; $campoAval->nota_maxima = $request->inputField[$value]['nota_maxima'];
if ($request->has('inputField['. $value. ']["descricao"]')){ if ($request->inputField[$value]['descricao'] != null){
$campoAval->descricao = $request->inputField[$value]['descricao']; $campoAval->descricao = $request->inputField[$value]['descricao'];
} }
$campoAval->prioridade = $request->inputField[$value]['prioridade']; $campoAval->prioridade = $request->inputField[$value]['prioridade'];
...@@ -445,11 +448,13 @@ class EventoController extends Controller ...@@ -445,11 +448,13 @@ class EventoController extends Controller
$naturezas = Natureza::orderBy('nome')->get(); $naturezas = Natureza::orderBy('nome')->get();
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
$camposAvaliacao = CampoAvaliacao::where('evento_id', $id)->get();
return view('evento.editarEvento',['evento'=>$evento, return view('evento.editarEvento',['evento'=>$evento,
'coordenadores'=>$coordenadors, 'coordenadores'=>$coordenadors,
'naturezas'=>$naturezas, 'naturezas'=>$naturezas,
'ontem'=>$yesterday, 'ontem'=>$yesterday,
'coordEvent'=>$coordEvent]); 'coordEvent'=>$coordEvent,
'camposAvaliacao'=>$camposAvaliacao]);
} }
/** /**
...@@ -467,6 +472,7 @@ class EventoController extends Controller ...@@ -467,6 +472,7 @@ class EventoController extends Controller
$evento = Evento::find($id); $evento = Evento::find($id);
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
$camposAvaliacao = CampoAvaliacao::where('evento_id', $id);
if( if(
$request->inicioSubmissao == null || $request->inicioSubmissao == null ||
$request->fimSubmissao == null || $request->fimSubmissao == null ||
...@@ -483,6 +489,7 @@ class EventoController extends Controller ...@@ -483,6 +489,7 @@ class EventoController extends Controller
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date'], 'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
...@@ -497,7 +504,6 @@ class EventoController extends Controller ...@@ -497,7 +504,6 @@ class EventoController extends Controller
'dt_fimRelatorioFinal' => ['required', 'date'], 'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'], 'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
'pdfFormAvalExterno' => ['file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'], 'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date'], 'inicioProjeto' => ['required', 'date'],
'fimProjeto' => ['required', 'date'], 'fimProjeto' => ['required', 'date'],
...@@ -513,6 +519,7 @@ class EventoController extends Controller ...@@ -513,6 +519,7 @@ class EventoController extends Controller
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'numParticipantes' => ['required'], 'numParticipantes' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'],
...@@ -527,13 +534,30 @@ class EventoController extends Controller ...@@ -527,13 +534,30 @@ class EventoController extends Controller
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], 'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date', 'after:resultado_final'], 'inicioProjeto' => ['required', 'date', 'after:resultado_final'],
'fimProjeto' => ['required', 'date', 'after:inicioProjeto'], 'fimProjeto' => ['required', 'date', 'after:inicioProjeto'],
'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'], 'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null) , 'max:255'], 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null) , 'max:255'],
]); ]);
if ($request->tipoAvaliacao == 'form') {
$validateAvaliacao = $request->validate([
'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
]);
} elseif ($request->tipoAvaliacao == 'campos') {
if($request->has('campos')){
$validateCampo = $request->validate([
'inputField.*.nome' => ['required', 'string'],
'inputField.*.nota_maxima' => ['required'],
'inputField.*.prioridade' => ['required']
]);
}
} elseif ($request->tipoAvaliacao == 'link') {
$validateAvaliacao = $request->validate([
'link' => ['required', 'url'],
]);
}
$evento->nome = $request->nome; $evento->nome = $request->nome;
$evento->descricao = $request->descricao; $evento->descricao = $request->descricao;
$evento->tipo = $request->tipo; $evento->tipo = $request->tipo;
...@@ -562,6 +586,11 @@ class EventoController extends Controller ...@@ -562,6 +586,11 @@ class EventoController extends Controller
$evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra'); $evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra');
$evento->inicioProjeto = $request->inicioProjeto; $evento->inicioProjeto = $request->inicioProjeto;
$evento->fimProjeto = $request->fimProjeto; $evento->fimProjeto = $request->fimProjeto;
$evento->tipoAvaliacao = $request->tipoAvaliacao;
if($request->tipoAvaliacao == "link") {
$evento->formAvaliacaoExterno = $request->link;
}
if($request->pdfEdital != null){ if($request->pdfEdital != null){
$pdfEdital = $request->pdfEdital; $pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/'; $path = 'pdfEdital/' . $evento->id . '/';
...@@ -579,7 +608,7 @@ class EventoController extends Controller ...@@ -579,7 +608,7 @@ class EventoController extends Controller
} }
if(isset($request->pdfFormAvalExterno)){ if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){
$pdfFormAvalExterno = $request->pdfFormAvalExterno; $pdfFormAvalExterno = $request->pdfFormAvalExterno;
$extension = $pdfFormAvalExterno->extension(); $extension = $pdfFormAvalExterno->extension();
$path = 'pdfFormAvalExterno/' . $evento->id . '/'; $path = 'pdfFormAvalExterno/' . $evento->id . '/';
...@@ -589,7 +618,7 @@ class EventoController extends Controller ...@@ -589,7 +618,7 @@ class EventoController extends Controller
$evento->formAvaliacaoExterno = $path . $nome; $evento->formAvaliacaoExterno = $path . $nome;
} }
if($request->docTutorial != null){ if($request->docTutorial != null && ($request->tipoAvaliacao == 'form')){
$docTutorial = $request->docTutorial; $docTutorial = $request->docTutorial;
$extension = $docTutorial->extension(); $extension = $docTutorial->extension();
$path = 'docTutorial/' . $evento->id . '/'; $path = 'docTutorial/' . $evento->id . '/';
...@@ -610,6 +639,26 @@ class EventoController extends Controller ...@@ -610,6 +639,26 @@ class EventoController extends Controller
$evento->update(); $evento->update();
// Editando campos de avaliacao
if ($request->tipoAvaliacao == 'campos') {
if($request->has('campos')){
$camposAvaliacao->forceDelete();
// $numCampos = $camposAvaliacao->count();
// $numNovosCampos = count($request->inputField);
foreach ($request->get('campos') as $key => $value) {
$campoAval = new CampoAvaliacao();
$campoAval->nome = $request->inputField[$value]['nome'];
$campoAval->nota_maxima = $request->inputField[$value]['nota_maxima'];
if ($request->inputField[$value]['descricao'] != null){
$campoAval->descricao = $request->inputField[$value]['descricao'];
}
$campoAval->prioridade = $request->inputField[$value]['prioridade'];
$campoAval->evento_id = $evento->id;
$campoAval->save();
}
}
}
$eventos = Evento::orderBy('nome')->get(); $eventos = Evento::orderBy('nome')->get();
if($tipo_usuario == 'coordenador'){ if($tipo_usuario == 'coordenador'){
...@@ -664,7 +713,7 @@ class EventoController extends Controller ...@@ -664,7 +713,7 @@ class EventoController extends Controller
$evento->delete(); $evento->delete();
return redirect()->back(); return redirect()->back()->with(['mensagem' => 'Edital deletado com sucesso!']);
} }
public function detalhes(Request $request){ public function detalhes(Request $request){
......
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
<div class="mb-2"> <div class="mb-2">
<input type="radio" id="radioForm" name="tipoAvaliacao" onchange="displayTipoAvaliacao('form')" <input type="radio" id="radioForm" name="tipoAvaliacao" onchange="displayTipoAvaliacao('form')"
@if((old('tipoAvaliacao') == 'form') || old('tipoAvaliaco') == "") checked @endif value="form"> @if((old('tipoAvaliacao') == 'form') || old('tipoAvaliacao') == "") checked @endif value="form">
<label for="radioForm" style="margin-right: 5px">Formulário (em pdf)</label> <label for="radioForm" style="margin-right: 5px">Formulário (em pdf)</label>
<input type="radio" id="radioCampos" name="tipoAvaliacao" onchange="displayTipoAvaliacao('campos')" <input type="radio" id="radioCampos" name="tipoAvaliacao" onchange="displayTipoAvaliacao('campos')"
......
@extends('layouts.app') @extends('layouts.app')
@php $i=0; $numCampos=0; @endphp
@section('content') @section('content')
<div class="container"> <div class="container">
<div class="row titulo"> <div class="row titulo">
...@@ -388,24 +390,56 @@ ...@@ -388,24 +390,56 @@
@endcomponent @endcomponent
</div> </div>
</div> </div>
<hr> <hr>
<div class="row subtitulo"> <div class="row subtitulo">
<div class="col-sm-12"> <div class="col-sm-12">
<p>Documentos</p> <p>Avaliação</p>
</div> </div>
</div> </div>
{{-- Pdf Edital --}} <div class="my-2" >
<div class="row justify-content-center" style="margin-top:10px"> <p style="font-size: 16px">Como a avaliação será realizada?</p>
</div>
<div class="mb-2">
@if (old('tipoAvaliacao') != null)
<input type="radio" id="radioForm" name="tipoAvaliacao" onchange="displayTipoAvaliacao('form')"
@if((old('tipoAvaliacao') == 'form') || old('tipoAvaliacao') == "") checked @endif value="form">
<label for="radioForm" style="margin-right: 5px">Formulário (em pdf)</label>
<input type="radio" id="radioCampos" name="tipoAvaliacao" onchange="displayTipoAvaliacao('campos')"
@if(old('tipoAvaliacao') == 'campos') checked @endif value="campos">
<label for="radioCampos" style="margin-right: 5px">Barema</label>
<input type="radio" id="radioLink" name="tipoAvaliacao" onchange="displayTipoAvaliacao('link')"
@if(old('tipoAvaliacao') == 'link') checked @endif value="link">
<label for="radioLink" style="margin-right: 5px">Link</label><br>
@else
<input type="radio" id="radioForm" name="tipoAvaliacao" onchange="displayTipoAvaliacao('form')"
@if($evento->tipoAvaliacao == 'form' || $evento->tipoAvaliacao == '') checked @endif value="form">
<label for="radioForm" style="margin-right: 5px">Formulário (em pdf)</label>
<input type="radio" id="radioCampos" name="tipoAvaliacao" onchange="displayTipoAvaliacao('campos')"
@if($evento->tipoAvaliacao == 'campos') checked @endif value="campos">
<label for="radioCampos" style="margin-right: 5px">Barema</label>
<input type="radio" id="radioLink" name="tipoAvaliacao" onchange="displayTipoAvaliacao('link')"
@if($evento->tipoAvaliacao == 'link') checked @endif value="link">
<label for="radioLink" style="margin-right: 5px">Link</label><br>
@endif
</div>
<div class="row justify-content-center" style="margin-top:10px" id="displayForm">
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
<label for="pdfEdital">PDF do Edital:<span style="color: red; font-weight: bold;">*</span></label> <label for="pdfEdital">Formulário para avaliador <i>ad hoc</i>:<span style="color: red; font-weight: bold;">*</span></label>
<a href="{{route('download', ['file' => $evento->pdfEdital])}}" target="_new" style="font-size: 20px; color: #114048ff;" > <a href="{{route('download', ['file' => $evento->formAvaliacaoExterno])}}" target="_new" style="font-size: 20px; color: #114048ff;" >
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px"> <img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px">
</a> </a>
<input type="file" class="form-control-file @error('pdfEdital') is-invalid @enderror" name="pdfEdital" value="{{ old('pdfEdital') }}" id="pdfEdital"> <input type="file" accept=".pdf,.doc,.docx,.xlsx,.xls,.csv,.zip" class="form-control-file @error('pdfFormAvalExterno') is-invalid @enderror" name="pdfFormAvalExterno" value="{{ old('pdfFormAvalExterno') }}" id="pdfFormAvalExterno">
<small>O arquivo selecionado deve ser no formato PDF de até 2mb.</small> <small>O arquivo selecionado deve ter até 2mb.</small>
@error('pdfEdital') @error('pdfFormAvalExterno')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
...@@ -415,55 +449,240 @@ ...@@ -415,55 +449,240 @@
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
<label for="modeloDocumento">Arquivo com os modelos de documentos do edital:</label> <label for="pdfEdital">Documento auxiliar para Avaliador:</label>
<a href="{{route('download', ['file' => $evento->modeloDocumento])}}" target="_new" style="font-size: 20px; color: #114048ff;" > @if($evento->docTutorial != null)
<a href="{{route('download', ['file' => $evento->docTutorial])}}" target="_new" style="font-size: 20px; color: #114048ff;" >
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px"> <img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px">
</a> </a>
<input type="file" class="form-control-file @error('modeloDocumento') is-invalid @enderror" name="modeloDocumento" value="{{ old('modeloDocumento') }}" id="modeloDocumento"> @else
<small>O arquivo selecionado deve ter até 2mb.</small> <a>
@error('modeloDocumento') <i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a>
@endif
<input type="file" class="form-control-file @error('docTutorial') is-invalid @enderror" name="docTutorial" value="{{ old('docTutorial') }}" id="docTutorial">
<small>O arquivo selecionado deve ser no formato PDF de até 2mb.</small>
@error('docTutorial')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
</div>
<div class="row justify-content-center" style="margin-top:10px; display: none" id="displayCampos">
<table class="table table-bordered col-sm-12" id="dynamicAddRemove">
<tr>
<th>Nome<span style="color:red; font-weight:bold;">*</span></th>
<th>Descrição</th>
<th>Nota Máxima<span style="color:red; font-weight:bold;">*</span></th>
<th>Prioridade<span style="color:red; font-weight:bold;">*</span></th>
<th>Ação</th>
</tr>
@if (isset($camposAvaliacao))
@foreach ($camposAvaliacao as $campoAvaliacao)
@if ($numCampos == 0)
<tr>
<td><input type="text" name="inputField[{{$i}}][nome]" class="form-control nome @error('inputField.*.nome') is-invalid @enderror" value="{{ $campoAvaliacao->nome }}" />
@error('inputField.*.nome')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><input type="text" name="inputField[{{$i}}][descricao]" class="form-control descricao @error('inputField.*.descricao') is-invalid @enderror" value="{{ $campoAvaliacao->descricao }}" />
@error('inputField.*.descricao')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><input type="number" min="1" step="1" name="inputField[{{$i}}][nota_maxima]" class="form-control nota_maxima @error('inputField.*.nota_maxima') is-invalid @enderror" value="{{ $campoAvaliacao->nota_maxima }}" />
@error('inputField.*.nota_maxima')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td>
<select name="inputField[{{$i}}][prioridade]" class="form-control prioridade @error('inputField.*.prioridade') is-invalid @enderror">
<option value="" >-- ORDEM --</option>
<option value="1" class="ordem_option">1</option>
</select>
@error('inputField.*.prioridade')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><button type="button" name="add" id="dynamic-ar" class="btn btn-outline-primary">Adicionar</button></td>
</tr>
@else
<tr>
<td><input type="text" name="inputField[{{$i}}][nome]" class="form-control nome @error('inputField.*.nome') is-invalid @enderror" value="{{ $campoAvaliacao->nome }}" />
@error('inputField.*.nome')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><input type="text" name="inputField[{{$i}}][descricao]" class="form-control descricao @error('inputField.*.descricao') is-invalid @enderror" value="{{ $campoAvaliacao->descricao }}" />
@error('inputField.*.descricao')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><input type="number" min="1" step="1" name="inputField[{{$i}}][nota_maxima]" class="form-control nota_maxima @error('inputField.*.nota_maxima') is-invalid @enderror" value="{{ $campoAvaliacao->nota_maxima }}" />
@error('inputField.*.nota_maxima')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td>
<select name="inputField[{{$i}}][prioridade]" class="form-control prioridade @error('inputField.*.prioridade') is-invalid @enderror">
<option value="" >-- ORDEM --</option>
<option value="1" class="ordem_option">1</option>
</select>
@error('inputField.*.prioridade')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><button type="button" class="btn btn-outline-danger remove-input-field" name="removeButton[{{$i}}]">Remover</button></td>
</tr>
@endif
@php ++$i; ++$numCampos; @endphp
@endforeach
@else
<tr>
<td><input type="text" name="inputField[0][nome]" class="form-control nome @error('inputField.*.nome') is-invalid @enderror" value="{{ old('inputField[0][nome]') }}" />
@error('inputField.*.nome')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><input type="text" name="inputField[0][descricao]" class="form-control descricao @error('inputField.*.descricao') is-invalid @enderror" value="{{ old('inputField[0][descricao]') }}" />
@error('inputField.*.descricao')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><input type="number" min="1" step="1" name="inputField[0][nota_maxima]" class="form-control nota_maxima @error('inputField.*.nota_maxima') is-invalid @enderror" value="{{ old('inputField[0][nota_maxima]') }}" />
@error('inputField.*.nota_maxima')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td>
<select name="inputField[0][prioridade]" class="form-control prioridade @error('inputField.*.prioridade') is-invalid @enderror">
<option value="" selected>-- ORDEM --</option>
<option value="1" class="ordem_option">1</option>
</select>
@error('inputField.*.prioridade')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><button type="button" name="add" id="dynamic-ar" class="btn btn-outline-primary">Adicionar</button></td>
</tr>
@endif
</table>
@if($errors->has('inputField.*'))
<div class="col-sm-12 alert alert-danger" id="inputFieldError">
Você deve preencher os campos obrigatórios.
</div>
@endif
<div class="col-sm-12 alert alert-danger" style="display: none" id="nota_maxima_invalida">
A soma das notas máximas não pode ser maior que 10.
</div>
<input type="checkbox" id="checkB[0]" checked name="campos[]" value="0" hidden>
<input type="number" name="somaNotas" value="0" id="somaNotas" hidden>
</div>
<div class="col-sm-12 row" style="margin-top:10px; display: none" id="displayLink">
<label for="link" class="col-form-label">{{ __('Link para o formulário:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="link" type="text" class="form-control @error("link") is-invalid @enderror" name="link" value="{{ old('link') }}">
@error('link')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
<hr>
<div class="row subtitulo">
<div class="col-sm-12">
<p>Documentos</p>
</div>
</div> </div>
{{-- Pdf Edital --}}
<div class="row justify-content-center" style="margin-top:10px">
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
<label for="pdfEdital">Formulário para avaliador <i>ad hoc</i>:<span style="color: red; font-weight: bold;">*</span></label> <label for="pdfEdital">PDF do Edital:<span style="color: red; font-weight: bold;">*</span></label>
<a href="{{route('download', ['file' => $evento->formAvaliacaoExterno])}}" target="_new" style="font-size: 20px; color: #114048ff;" > @if($evento->pdfEdital != null)
<a href="{{route('download', ['file' => $evento->pdfEdital])}}" target="_new" style="font-size: 20px; color: #114048ff;" >
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px"> <img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px">
</a> </a>
<input type="file" accept=".pdf,.doc,.docx,.xlsx,.xls,.csv,.zip" class="form-control-file @error('pdfFormAvalExterno') is-invalid @enderror" name="pdfFormAvalExterno" value="{{ old('pdfFormAvalExterno') }}" id="pdfFormAvalExterno"> @else
<small>O arquivo selecionado deve ter até 2mb.</small> <a>
@error('pdfFormAvalExterno') <i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a>
@endif
<input type="file" class="form-control-file @error('pdfEdital') is-invalid @enderror" name="pdfEdital" value="{{ old('pdfEdital') }}" id="pdfEdital">
<small>O arquivo selecionado deve ser no formato PDF de até 2mb.</small>
@error('pdfEdital')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
<label for="pdfEdital">Formulário de avaliação do relatório:</label> <label for="modeloDocumento">Arquivo com os modelos de documentos do edital:</label>
<a href="{{route('download', ['file' => $evento->formAvaliacaoRelatorio])}}" target="_new" style="font-size: 20px; color: #114048ff;" > @if($evento->modeloDocumento != null)
<a href="{{route('download', ['file' => $evento->modeloDocumento])}}" target="_new" style="font-size: 20px; color: #114048ff;" >
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px"> <img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px">
</a> </a>
<input type="file" class="form-control-file @error('pdfFormAvalRelatorio') is-invalid @enderror" name="pdfFormAvalRelatorio" value="{{ old('pdfFormAvalRelatorio') }}" id="pdfFormAvalRelatorio"> @else
<small>O arquivo selecionado deve ser no formato PDF de até 2mb.</small> <a>
@error('pdfFormAvalRelatorio') <i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a>
@endif
<input type="file" class="form-control-file @error('modeloDocumento') is-invalid @enderror" name="modeloDocumento" value="{{ old('modeloDocumento') }}" id="modeloDocumento">
<small>O arquivo selecionado deve ter até 2mb.</small>
@error('modeloDocumento')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
</div> </div>
<div class="col-sm-12"> <div class="col-sm-12">
<div class="form-group"> <div class="form-group">
<label for="pdfEdital">Documento auxiliar para Avaliador:</label> <label for="pdfEdital">Formulário de avaliação do relatório:</label>
@if($evento->docTutorial != null) @if($evento->formAvaliacaoRelatorio != null)
<a href="{{route('download', ['file' => $evento->docTutorial])}}" target="_new" style="font-size: 20px; color: #114048ff;" > <a href="{{route('download', ['file' => $evento->formAvaliacaoRelatorio])}}" target="_new" style="font-size: 20px; color: #114048ff;" >
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px"> <img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px">
</a> </a>
@else @else
...@@ -471,15 +690,17 @@ ...@@ -471,15 +690,17 @@
<i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i> <i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a> </a>
@endif @endif
<input type="file" class="form-control-file @error('docTutorial') is-invalid @enderror" name="docTutorial" value="{{ old('docTutorial') }}" id="docTutorial">
<input type="file" class="form-control-file @error('pdfFormAvalRelatorio') is-invalid @enderror" name="pdfFormAvalRelatorio" value="{{ old('pdfFormAvalRelatorio') }}" id="pdfFormAvalRelatorio">
<small>O arquivo selecionado deve ser no formato PDF de até 2mb.</small> <small>O arquivo selecionado deve ser no formato PDF de até 2mb.</small>
@error('docTutorial') @error('pdfFormAvalRelatorio')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
</div> </div>
</div> </div>
<div class="row justify-content-center" style="margin: 20px 0 20px 0"> <div class="row justify-content-center" style="margin: 20px 0 20px 0">
...@@ -501,6 +722,159 @@ ...@@ -501,6 +722,159 @@
@endsection @endsection
@section('javascript') @section('javascript')
<script type="text/javascript"> <script type="text/javascript">
var i = "{{$i}}";
var numCampos = "{{$numCampos}}";
var currentOptions = {'0': ''}
$(document).ready(function() {
displayTipoAvaliacao("{{ old('tipoAvaliacao') == null ? $evento->tipoAvaliacao : old('tipoAvaliacao')}}")
if (numCampos > 1) {
for (let y = 1; y < (numCampos); y++) {
$("#displayCampos").append('<input type="checkbox" id="checkB[' + y + ']" checked name="campos[]" value="' + y + '" hidden>');
addOrdemPrioridade();
}
}
z = 0
@foreach($camposAvaliacao as $campoAvaliacao)
selectId = z
newOption = "{{$campoAvaliacao->prioridade}}"
displayPrioridades(selectId, newOption)
++z
@endforeach
});
// Adiciona campo de avaliação
$("#dynamic-ar").click(function () {
++i;
++numCampos;
$("#dynamicAddRemove").append(
'<tr><td><input type="text" name="inputField[' + i + '][nome]" class="form-control nome @error("inputField.*.nome") is-invalid @enderror" /></td><td><input type="text" name="inputField[' + i + '][descricao]" class="form-control descricao @error("inputField.*.descricao") is-invalid @enderror"/></td><td><input type="number" min="1" step="1" name="inputField[' + i + '][nota_maxima]" class="form-control nota_maxima @error("inputField.*.nota_maxima") is-invalid @enderror" /></td><td><select name="inputField[' + i + '][prioridade]" class="form-control prioridade @error("inputField.*.prioridade") is-invalid @enderror"><option value="" selected>-- ORDEM --</option><option value="1" class="ordem_option">1</option></select></td><td><button type="button" class="btn btn-outline-danger remove-input-field" name="removeButton[' + i + ']">Remover</button></td></tr>'
);
$("#displayCampos").append('<input type="checkbox" id="checkB[' + i + ']" checked name="campos[]" value="' + i + '" hidden>');
addOrdemPrioridade();
});
function addOrdemPrioridade() {
$(".prioridade").children().remove(".dynamic");
// Exibe opções caso estejam ocultas
$('.ordem_option').show();
$(".prioridade").each(function() {
// Resetando os valores selecionados
$(this).val("").change();
selectId = $(this).attr('name').replace(/\D/g, "").toString();
currentOptions[selectId] = '';
for (let x = 2; x <= numCampos; x++) {
$(this).append('<option value="' + x + '" class="ordem_option dynamic">' + x + '</option>')
}
})
}
// Exclui campo de avaliação
$(document).on('click', '.remove-input-field', function () {
$(this).parents('tr').remove();
selectId = $(this).attr('name').replace(/\D/g, "").toString();
currentOption = currentOptions[selectId];
document.getElementById('checkB[' + selectId + ']').remove();
$('.ordem_option[value|="' + currentOption + '"]').show();
delete currentOptions[selectId];
$('.dynamic[value|="' + numCampos + '"]').remove();
--numCampos;
});
function displayPrioridades(id, newOption) {
currentOption = currentOptions[id];
$('.ordem_option[value|="' + currentOption + '"]').show();
$('.ordem_option[value|="' + newOption + '"]').hide();
$('select[name="inputField[' + id + '][prioridade]"]').val(newOption);
currentOptions[id] = newOption;
}
$("#dynamicAddRemove").on('change', '.prioridade', function () {
selectId = $(this).attr('name').replace(/\D/g, "").toString();
newOption = $(this).val();
displayPrioridades(selectId, newOption);
});
$("#dynamicAddRemove").on('input', '.nota_maxima', function () {
somaNotas = 0;
$(".nota_maxima").each(function() {
valor = Number($(this).val());
if (valor != 0) {
somaNotas += valor;
}
});
$('#somaNotas').val(somaNotas);
if (somaNotas > 10) {
$('.nota_maxima').css('border', '1px solid red');
document.getElementById("nota_maxima_invalida").style.display = "";
} else {
$('.nota_maxima').css('border', '');
document.getElementById("nota_maxima_invalida").style.display = "none";
}
});
// Tipo de avaliação
function displayTipoAvaliacao(valor){
if (valor == "form"){
document.getElementById("radioForm").checked = true;
document.getElementById("radioCampos").checked = false;
document.getElementById("radioLink").checked = false;
document.getElementById("displayForm").style.display = "";
document.getElementById("displayCampos").style.display = "none";
document.getElementById("displayLink").style.display = "none";
} else if (valor == "campos"){
document.getElementById("radioForm").checked = false;
document.getElementById("radioCampos").checked = true;
document.getElementById("radioLink").checked = false;
document.getElementById("displayForm").style.display = "none";
document.getElementById("displayCampos").style.display = "inline";
document.getElementById("displayLink").style.display = "none";
} else if (valor == "link") {
document.getElementById("radioForm").checked = false;
document.getElementById("radioCampos").checked = false;
document.getElementById("radioLink").checked = true;
document.getElementById("displayForm").style.display = "none";
document.getElementById("displayCampos").style.display = "none";
document.getElementById("displayLink").style.display = "";
}
}
function defCoord(data,data2){ function defCoord(data,data2){
document.getElementById('coordenador_id').value=data; document.getElementById('coordenador_id').value=data;
document.getElementById('coordenador_name').value=data2; document.getElementById('coordenador_name').value=data2;
...@@ -523,4 +897,12 @@ ...@@ -523,4 +897,12 @@
window.onload = showDocumentoExtra(); window.onload = showDocumentoExtra();
</script> </script>
@if($errors->has('somaNotas'))
<script>
$('.nota_maxima').css('border', '1px solid red');
document.getElementById("nota_maxima_invalida").style.display = "";
</script>
@endif
@endsection @endsection
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment