Commit 16fc0a38 authored by carlvercosaa's avatar carlvercosaa
Browse files

Add tipo outro e Add checkbox por barema e lattes

parent 9aa0f1cd
...@@ -73,9 +73,10 @@ class EventoController extends Controller ...@@ -73,9 +73,10 @@ class EventoController extends Controller
$coordenadors = CoordenadorComissao::with('user')->get(); $coordenadors = CoordenadorComissao::with('user')->get();
$naturezas = Natureza::orderBy('nome')->get(); $naturezas = Natureza::orderBy('nome')->get();
$yesterday = Carbon::yesterday('America/Recife'); $yesterday = Carbon::yesterday('America/Recife');
$ods = ObjetivoDeDesenvolvimentoSustentavel::with('metas')->get();
$yesterday = $yesterday->toDateString(); $yesterday = $yesterday->toDateString();
return view('evento.criarEvento', ['coordenadors' => $coordenadors, 'naturezas' => $naturezas, 'ontem' => $yesterday]); return view('evento.criarEvento', ['coordenadors' => $coordenadors, 'naturezas' => $naturezas, 'ontem' => $yesterday, 'ods' => $ods]);
} }
/** /**
...@@ -84,6 +85,7 @@ class EventoController extends Controller ...@@ -84,6 +85,7 @@ class EventoController extends Controller
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function store(Request $request) public function store(Request $request)
{ {
/** @var Carbon */ /** @var Carbon */
...@@ -98,54 +100,20 @@ class EventoController extends Controller ...@@ -98,54 +100,20 @@ class EventoController extends Controller
/** @var integer */ /** @var integer */
$user_id = Auth()->user()->id; $user_id = Auth()->user()->id;
if(isset($request->docTutorial)){ if (isset($request->docTutorial)) {
$request->validate([ $request->validate([
'docTutorial' => ['file', 'max:2048', new ExcelRule($request->file('docTutorial'))], 'docTutorial' => ['file', 'max:2048', new ExcelRule($request->file('docTutorial'))],
]); ]);
} }
//--Salvando os anexos da submissão temporariamente // Validar campos comuns
$evento = $this->armazenarAnexosTemp($request);
// validar datas nulas antes, pois pode gerar um bug
if(!isset($request->inicioSubmissao) || !isset($request->fimSubmissao) || !isset($request->inicioRevisao) || !isset($request->fimRevisao) || !isset($request->resultado))
{
$validatedData = $request->validate([ $validatedData = $request->validate([
'nome' => ['required', 'string'], 'nome' => ['required', 'string'],
'descricao' => ['required', 'string'], 'descricao' => ['required', 'string', 'max:1500'],
'tipo' => ['required', 'string'], 'tipo' => ['required', 'string'],
'natureza' => ['required'], 'natureza' => ['required'],
'coordenador_id' => ['required'], 'coordenador_id' => ['required'],
'tipoAvaliacao' => ['required'],
'inicioSubmissao' => ['required', 'date'],
'fimSubmissao' => ['required', 'date'],
'inicioRevisao' => ['required', 'date'],
'fimRevisao' => ['required', 'date'],
'inicio_recurso' => ['required', 'date'],
'fim_recurso' => ['required', 'date'],
'resultado_final' => ['required', 'date'],
'resultado_preliminar'=> ['required', 'date'],
'dt_inicioRelatorioParcial' => $request->dt_inicioRelatorioParcial?['date']:[],
'dt_fimRelatorioParcial' => $request->dt_fimRelatorioParcial?['date']:[],
'dt_inicioRelatorioFinal' => $request->dt_inicioRelatorioFinal?['date']:[],
'dt_fimRelatorioFinal' => $request->dt_fimRelatorioFinal?['date']:[],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null), 'max:255'], 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null), 'max:255'],
'pdfRecurso' => [($request->pdfRecursoPreenchido !== 'sim' ? 'required' : ''), 'file', 'mimes:pdf', 'max:2048'],
'modeloDocumento' => [($request->modeloDocumentoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
]);
}
//validacao normal
$validatedData = $request->validate([
'nome' => ['required', 'string'],
'descricao' => ['required', 'string','max:1500'],
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'],
'inicioSubmissao' => ['required', 'date', 'after:yesterday'], 'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'],
'inicioRevisao' => ['required', 'date', 'after:yesterday'], 'inicioRevisao' => ['required', 'date', 'after:yesterday'],
...@@ -159,176 +127,145 @@ class EventoController extends Controller ...@@ -159,176 +127,145 @@ class EventoController extends Controller
'dt_inicioRelatorioFinal' => $request->dt_inicioRelatorioFinal?['date', 'after:dt_fimRelatorioParcial']:[], 'dt_inicioRelatorioFinal' => $request->dt_inicioRelatorioFinal?['date', 'after:dt_fimRelatorioParcial']:[],
'dt_fimRelatorioFinal' => $request->dt_fimRelatorioFinal?['date', 'after_or_equal:dt_inicioRelatorioFinal']:[], 'dt_fimRelatorioFinal' => $request->dt_fimRelatorioFinal?['date', 'after_or_equal:dt_inicioRelatorioFinal']:[],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], 'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'pdfRecurso' => [($request->pdfRecursoPreenchido!=='sim'?'required':''), 'file', 'mimes:doc,docx,pdf', 'max:2048'], 'pdfRecurso' => [($request->pdfRecursoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'modeloDocumento' => [($request->modeloDocumentoPreenchido!=='sim'?'required':''), 'file', 'mimes:doc,docx,pdf', 'max:2048'], 'modeloDocumento' => [($request->modeloDocumentoPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
]); ]);
// Validação específica para Avaliação por Barema
if (in_array('barema', $request->tipoAvaliacao)) {
$validateBarema = $request->validate([
'pontuacao' => ['required', 'numeric'],
'inputFieldBarema.*.nome' => ['required', 'string'],
'inputFieldBarema.*.nota_maxima' => ['required', 'numeric'],
'inputFieldBarema.*.prioridade' => ['required'],
]);
}
// Validação quando avaliação for por Barema // Validação específica para Avaliação por Currículo Lattes
$validateCampo = $request->validate([ if (in_array('curriculo', $request->tipoAvaliacao)) {
'inputField.*.nome' => ['required', 'string'], $validateCurriculo = $request->validate([
'inputField.*.nota_maxima' => ['required'], 'pontuacao_curriculo' => ['required', 'numeric'],
'inputField.*.prioridade' => ['required'], 'inputFieldCurriculo.*.nome' => ['required', 'string'],
'somaNotas' => ['required', 'numeric', 'max:' . $request->pontuacao, 'min:' . $request->pontuacao], 'inputFieldCurriculo.*.nota_maxima' => ['required', 'numeric'],
['somaNotas.*' => 'A soma das notas máximas deve ser igual a pontuação total definida.'] 'inputFieldCurriculo.*.prioridade' => ['required'],
]); ]);
}
// Mount Evento Array // Substituição do tipo "OUTRA" pelo valor informado
$evento['nome'] = $request->nome; if ($request->tipo === 'OUTRA' && $request->outra_descricao) {
$evento['descricao'] = $request->descricao; $request->tipo = $request->outra_descricao;
$evento['tipo'] = $request->tipo;
$evento['natureza_id'] = $request->natureza;
if($request->check_docExtra != null){
$evento['nome_docExtra'] = $request->nome_docExtra;
} }
$evento['inicioSubmissao'] = $request->inicioSubmissao;
$evento['fimSubmissao'] = $request->fimSubmissao; // Salvamento do Evento
$evento['inicioRevisao'] = $request->inicioRevisao; $evento = new Evento();
$evento['fimRevisao'] = $request->fimRevisao; $evento->nome = $request->nome;
$evento['inicio_recurso'] = $request->inicio_recurso; $evento->descricao = $request->descricao;
$evento['fim_recurso'] = $request->fim_recurso; $evento->tipo = $request->tipo;
$evento['resultado_preliminar']= $request->resultado_preliminar; $evento->natureza_id = $request->natureza;
$evento['resultado_final'] = $request->resultado_final; $evento->inicioSubmissao = $request->inicioSubmissao;
$evento->fimSubmissao = $request->fimSubmissao;
$evento->inicioRevisao = $request->inicioRevisao;
$evento->fimRevisao = $request->fimRevisao;
$evento->inicio_recurso = $request->inicio_recurso;
$evento->fim_recurso = $request->fim_recurso;
$evento->resultado_preliminar = $request->resultado_preliminar;
$evento->resultado_final = $request->resultado_final;
if ($request->dt_inicioRelatorioParcial) { if ($request->dt_inicioRelatorioParcial) {
$evento['dt_inicioRelatorioParcial'] = $request->dt_inicioRelatorioParcial; $evento->dt_inicioRelatorioParcial = $request->dt_inicioRelatorioParcial;
} }
if ($request->dt_fimRelatorioParcial) { if ($request->dt_fimRelatorioParcial) {
$evento['dt_fimRelatorioParcial'] = $request->dt_fimRelatorioParcial; $evento->dt_fimRelatorioParcial = $request->dt_fimRelatorioParcial;
} }
if ($request->dt_inicioRelatorioFinal) { if ($request->dt_inicioRelatorioFinal) {
$evento['dt_inicioRelatorioFinal'] = $request->dt_inicioRelatorioFinal; $evento->dt_inicioRelatorioFinal = $request->dt_inicioRelatorioFinal;
} }
if ($request->dt_fimRelatorioFinal) { if ($request->dt_fimRelatorioFinal) {
$evento['dt_fimRelatorioFinal'] = $request->dt_fimRelatorioFinal; $evento->dt_fimRelatorioFinal = $request->dt_fimRelatorioFinal;
}
$evento['coordenadorId'] = $request->coordenador_id;
$evento['criador_id'] = $user_id;
$evento['numParticipantes'] = $request->numParticipantes;
$evento['consu'] = $request->has('consu');
$evento['cotaDoutor'] = $request->has('cotaDoutor');
$evento['obrigatoriedade_docExtra'] = $request->has('obrigatoriedade_docExtra');
$evento['anexosStatus'] = 'final';
$evento['tipoAvaliacao'] = 'campos';
//-- Salvando anexos finais
if(isset($request->pdfEdital)){
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
$nome = "edital.pdf";
Storage::putFileAs($path, $pdfEdital, $nome);
$evento->pdfEdital = $path . $nome;
}
if(isset($request->modeloDocumento)){
$modeloDocumento = $request->modeloDocumento;
$extension = $modeloDocumento->extension();
$path = 'modeloDocumento/' . $evento->id . '/';
$nome = "modelo" . "." . $extension;
Storage::putFileAs($path, $modeloDocumento, $nome);
$evento->modeloDocumento = $path . $nome;
}
if(isset($request->pdfFormAvalRelatorio)){
$pdfFormAvalRelatorio = $request->pdfFormAvalRelatorio;
$extension = $pdfFormAvalRelatorio->extension();
$path = 'pdfFormAvalRelatorio/' . $evento->id . '/';
$nome = "formulario de avaliação do relatorio" . "." . $extension;
Storage::putFileAs($path, $pdfFormAvalRelatorio, $nome);
$evento->formAvaliacaoRelatorio = $path . $nome;
} }
if(isset($request->pdfRecurso)){ $evento->coordenadorId = $request->coordenador_id;
$pdfRecurso = $request->pdfRecurso; $evento->criador_id = $user_id;
$extension = $pdfRecurso->extension(); $evento->numParticipantes = $request->numParticipantes;
$path = 'pdfRecurso/' . $evento->id . '/'; $evento->consu = $request->has('consu');
$nome = "recurso" . "." . $extension; $evento->cotaDoutor = $request->has('cotaDoutor');
Storage::putFileAs($path, $pdfRecurso, $nome); $evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra');
$evento->tipoAvaliacao = 'campos'; // ou o valor correto conforme a implementação
$evento->docRecurso = $path . $nome; $evento->save(); // Salva o evento primeiro para obter o ID
// Salvamento dos Campos de Avaliação
if ($request->has('inputField')) {
foreach ($request->inputField as $field) {
$campoAval = new CampoAvaliacao();
$campoAval->nome = $field['nome'] . '-b'; // Adiciona o sufixo '-b' para Barema
$campoAval->nota_maxima = $field['nota_maxima'];
$campoAval->descricao = $field['descricao'] ?? null;
$campoAval->prioridade = $field['prioridade'];
$campoAval->evento_id = $evento->id;
$campoAval->save();
} }
if(isset($request->pdfRelatorio)){
$pdfRelatorio = $request->pdfRelatorio;
$extension = $pdfRelatorio->extension();
$path = 'pdfRelatorio/' . $evento->id . '/';
$nome = "relatorio" . "." . $extension;
Storage::putFileAs($path, $pdfRelatorio, $nome);
$evento->docRelatorio = $path . $nome;
} }
$evento->update(); if ($request->has('inputFieldCurriculo')) {
foreach ($request->inputFieldCurriculo as $field) {
// Criando campos de avaliacao
if ($request->tipoAvaliacao == 'campos') {
if($request->has('campos')){
foreach ($request->get('campos') as $key => $value) {
$campoAval = new CampoAvaliacao(); $campoAval = new CampoAvaliacao();
$campoAval->nome = $request->inputField[$value]['nome']; $campoAval->nome = $field['nome'] . '-c'; // Adiciona o sufixo '-c' para Currículo
$campoAval->nota_maxima = $request->inputField[$value]['nota_maxima']; $campoAval->nota_maxima = $field['nota_maxima'];
if ($request->inputField[$value]['descricao'] != null){ $campoAval->descricao = $field['descricao'] ?? null;
$campoAval->descricao = $request->inputField[$value]['descricao']; $campoAval->prioridade = $field['prioridade'];
}
$campoAval->prioridade = $request->inputField[$value]['prioridade'];
$campoAval->evento_id = $evento->id; $campoAval->evento_id = $evento->id;
$campoAval->save(); $campoAval->save();
} }
} }
}
return redirect()->route('admin.editais')->with(['mensagem' => 'Edital criado com sucesso!']);
}
/** @return Evento */
public function armazenarAnexosTemp(Request $request){
//---Anexos do Projeto // Salvamento dos Anexos
$eventoTemp = Evento::where('criador_id', Auth::user()->id)->where('anexosStatus', 'temporario') $this->armazenarAnexosTemp($request, $evento);
->orderByDesc('updated_at')->first();
if($eventoTemp == null){ return redirect()->route('admin.editais')->with(['mensagem' => 'Edital criado com sucesso!']);
$eventoTemp = new Evento();
$eventoTemp->criador_id = Auth::user()->id;
$eventoTemp->anexosStatus = 'temporario';
$eventoTemp->save();
} }
if(!(is_null($request->pdfEdital)) ) { /**
$pasta = 'pdfEdital/' . $eventoTemp->id; * Armazena os anexos temporários.
$eventoTemp->pdfEdital = Storage::putFileAs($pasta, $request->pdfEdital, 'edital.pdf'); *
* @return Evento
*/
public function armazenarAnexosTemp(Request $request, Evento $evento)
{
if (!(is_null($request->pdfEdital))) {
$pasta = 'pdfEdital/' . $evento->id;
$evento->pdfEdital = Storage::putFileAs($pasta, $request->pdfEdital, 'edital.pdf');
} }
if (!(is_null($request->modeloDocumento))) { if (!(is_null($request->modeloDocumento))) {
$extension = $request->modeloDocumento->extension(); $extension = $request->modeloDocumento->extension();
$path = 'modeloDocumento/' . $eventoTemp->id; $path = 'modeloDocumento/' . $evento->id;
$nome = "modelo" . "." . $extension; $nome = "modelo" . "." . $extension;
$eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome); $evento->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome);
} }
if(!(is_null($request->pdfFormAvalRelatorio)) ) { if (!(is_null($request->pdfFormAvalRelatorio))) {
$pasta = 'pdfFormAvalRelatorio/' . $eventoTemp->id; $pasta = 'pdfFormAvalRelatorio/' . $evento->id;
$eventoTemp->formAvaliacaoRelatorio = Storage::putFileAs($pasta, $request->pdfFormAvalRelatorio, 'formulario de avaliação do relatorio.pdf'); $evento->formAvaliacaoRelatorio = Storage::putFileAs($pasta, $request->pdfFormAvalRelatorio, 'formulario_de_avaliacao_do_relatorio.pdf');
} }
if(!(is_null($request->pdfRecurso)) ) { if (!(is_null($request->pdfRecurso))) {
$pasta = 'pdfRecurso/' . $eventoTemp->id; $pasta = 'pdfRecurso/' . $evento->id;
$nome = "recurso" . "." . $extension; $nome = "recurso.pdf";
$eventoTemp->docRecurso = Storage::putFileAs($pasta, $request->pdfRecurso, $nome); $evento->docRecurso = Storage::putFileAs($pasta, $request->pdfRecurso, $nome);
} }
if(!(is_null($request->pdfRelatorio)) ) {
$pasta = 'pdfRelatorio/' . $eventoTemp->id; if (!(is_null($request->pdfRelatorio))) {
$nome = "relatorio" . "." . $extension; $pasta = 'pdfRelatorio/' . $evento->id;
$eventoTemp->docRelatorio = Storage::putFileAs($pasta, $request->pdfRelatorio, $nome); $nome = "relatorio.pdf";
$evento->docRelatorio = Storage::putFileAs($pasta, $request->pdfRelatorio, $nome);
} }
$eventoTemp->update(); $evento->anexosStatus = 'final'; // Atualiza o status dos anexos para 'final'
$evento->save();
return $eventoTemp; return $evento;
} }
/** @return Evento */
/** /**
* Display the specified resource. * Display the specified resource.
* *
...@@ -403,28 +340,38 @@ class EventoController extends Controller ...@@ -403,28 +340,38 @@ class EventoController extends Controller
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function edit($id) public function edit($id)
{ {
$evento = Evento::find($id); $evento = Evento::find($id);
$coordenadors = CoordenadorComissao::with('user')->get();
$coordEvent = CoordenadorComissao::find($evento->coordenadorId);
$naturezas = Natureza::orderBy('nome')->get();
$yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString();
$camposAvaliacao = CampoAvaliacao::where('evento_id', $id)->get();
$pontuacao = 0; // Se for uma string, converta para array
foreach ($camposAvaliacao as $campo) { if (is_string($evento->tipoAvaliacao)) {
$pontuacao += $campo->nota_maxima; $evento->tipoAvaliacao = explode(',', $evento->tipoAvaliacao);
} }
return view('evento.editarEvento',['evento'=>$evento, // Recuperar os campos de avaliação de Barema
'coordenadores'=>$coordenadors, $camposBarema = CampoAvaliacao::where('evento_id', $evento->id)
'naturezas'=>$naturezas, ->where('nome', 'LIKE', '%-b') // Filtra os campos de Barema
'ontem'=>$yesterday, ->get();
'coordEvent'=>$coordEvent,
'camposAvaliacao'=>$camposAvaliacao, // Recuperar os campos de avaliação de Currículo Lattes
'pontuacao'=>$pontuacao]); $camposCurriculo = CampoAvaliacao::where('evento_id', $evento->id)
} ->where('nome', 'LIKE', '%-c') // Filtra os campos de Currículo Lattes
->get();
$coordenadores = CoordenadorComissao::with('user')->get();
$naturezas = Natureza::orderBy('nome')->get();
$yesterday = Carbon::yesterday('America/Recife')->toDateString();
return view('evento.editarEvento', [
'evento' => $evento,
'coordenadores' => $coordenadores,
'naturezas' => $naturezas,
'ontem' => $yesterday,
'camposBarema' => $camposBarema, // Passa os campos de Barema para a view
'camposCurriculo' => $camposCurriculo, // Passa os campos de Currículo para a view
]);
}
/** /**
* Update the specified resource in storage. * Update the specified resource in storage.
...@@ -449,12 +396,6 @@ class EventoController extends Controller ...@@ -449,12 +396,6 @@ class EventoController extends Controller
} }
} }
if($request->tipo == 'CONTINUO'){
$validatedData = $request->validate(Evento::$continuos_edit_rules);
} else {
$validatedData = $request->validate(Evento::$edit_rules);
}
if($request->tipo != 'CONTINUO') if($request->tipo != 'CONTINUO')
{ {
$validateCampo = $request->validate([ $validateCampo = $request->validate([
...@@ -772,14 +713,19 @@ class EventoController extends Controller ...@@ -772,14 +713,19 @@ class EventoController extends Controller
return response()->download($path); return response()->download($path);
} }
// public function baixarModelos($id) { public function getMetas($odsId)
// $evento = Evento::find($id); {
{
// if (Storage::disk()->exists($evento->modeloDocumento)) { try {
// ob_end_clean(); $ods = ObjetivoDeDesenvolvimentoSustentavel::with('metas')->findOrFail($odsId);
// return Storage::download($evento->modeloDocumento); $response = [
// } 'ods' => $ods->nome,
'metas' => $ods->metas,
// return abort(404); ];
// } return response()->json($response);
} catch (\Exception $e) {
return response()->json(['error' => 'Erro ao carregar as metas'], 500);
}
}
}
} }
...@@ -5,6 +5,11 @@ ...@@ -5,6 +5,11 @@
<h1>Novo Edital</h1> <h1>Novo Edital</h1>
</div> </div>
<!-- Panels -->
<div id="tab-containers" class="tab-content">
<div id="edital-container" class="tab-pane fade show active" role="tabpanel" aria-labelledby="edital-tab">
<form action="{{route('evento.criar')}}" method="POST" enctype="multipart/form-data"> <form action="{{route('evento.criar')}}" method="POST" enctype="multipart/form-data">
@csrf @csrf
...@@ -31,12 +36,22 @@ ...@@ -31,12 +36,22 @@
<div class="col-sm-6"> <div class="col-sm-6">
<label for="tipo" class="col-form-label">{{ __('Tipo:') }}<span style="color:red; font-weight:bold;">*</span></label> <label for="tipo" class="col-form-label">{{ __('Tipo:') }}<span style="color:red; font-weight:bold;">*</span></label>
<select id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" value="{{ old('tipo') }}" required>
<option @if(old('tipo') == "COMPONENTES_CURRICULARES")) selected @endif value="COMPONENTES_CURRICULARES">APOIO À VIVÊNCIA DE COMPONENTES CURRICULARES</option> <!-- Contêiner flexível -->
<option @if(old('tipo') == "INOVACAO_PEDAGOGICA")) selected @endif value="INOVACAO_PEDAGOGICA">INOVAÇÃO PEDAGÓGICA</option> <div id="tipo_container" style="display: flex; align-items: center;">
<option @if(old('tipo') == "PSICOSSOCIAL_PSICOPEDAGOGICO")) selected @endif value="PSICOSSOCIAL_PSICOPEDAGOGICO">APOIO PSICOSSOCIAL OU PSICOPEDAGÓGICO</option> <select id="tipo" class="form-control @error('tipo') is-invalid @enderror" name="tipo" required style="flex: 1;">
<option @if(old('tipo') == "COMPONENTES_CURRICULARES") selected @endif value="COMPONENTES_CURRICULARES">APOIO À VIVÊNCIA DE COMPONENTES CURRICULARES</option>
<option @if(old('tipo') == "INOVACAO_PEDAGOGICA") selected @endif value="INOVACAO_PEDAGOGICA">INOVAÇÃO PEDAGÓGICA</option>
<option @if(old('tipo') == "PSICOSSOCIAL_PSICOPEDAGOGICO") selected @endif value="PSICOSSOCIAL_PSICOPEDAGOGICO">APOIO PSICOSSOCIAL OU PSICOPEDAGÓGICO</option>
<option @if(old('tipo') == "OUTRA") selected @endif value="OUTRA">OUTRA</option>
</select> </select>
<!-- Campo de texto oculto para especificar a outra opção -->
<div id="outra_descricao_div" style="display: none; margin-left: 10px; flex: 1;">
<input id="outra_descricao" type="text" class="form-control @error('outra_descricao') is-invalid @enderror" name="outra_descricao" value="{{ old('outra_descricao') }}" placeholder="Especifique">
</div>
</div>
@error('tipo') @error('tipo')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
...@@ -60,8 +75,7 @@ ...@@ -60,8 +75,7 @@
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<label for="numParticipantes" class="col-form-label">{{ __('Nº de Discentes:') }}</label> <label for="numParticipantes" class="col-form-label">{{ __('Nº de Discentes:') }}</label>
<input id="numParticipantes" type="number" min="0" max="500" class="form-control @error('numParticipantes') is-invalid @enderror" name="numParticipantes" value="{{ old('numParticipantes') }}" autocomplete="numParticipantes" autofocus>
<input id="numParticipantes" type="number" min="1" max="500" class="form-control @error('numParticipantes') is-invalid @enderror" name="numParticipantes" value="{{ old('numParticipantes') }}" autocomplete="numParticipantes" autofocus>
@error('numParticipantes') @error('numParticipantes')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -207,92 +221,80 @@ ...@@ -207,92 +221,80 @@
</div> </div>
</div> </div>
</div> </div>
{{-- Data de Início e Fim da Submissão --}}
<hr> <div class="row justify-content-start mb-1 mt-2">
<div class="row subtitulo">
<div class="col-sm-12">
<p>Projetos</p>
</div>
</div>
{{-- dataInicio | dataFim | inicioSubmissao | fimSubmissao --}}
<div class="row justify-content-center">
<div class="col-sm-6"> <div class="col-sm-6">
<label for="inicioSubmissao" class="col-form-label">{{ __('Início da Submissão:') }}<span style="color:red; font-weight:bold;">*</span></label> <label for="inicioSubmissao" class="col-form-label">{{ __('Início da Submissão:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="inicioSubmissao" type="date" class="form-control @error('inicioSubmissao') is-invalid @enderror" name="inicioSubmissao" value="{{ old('inicioSubmissao') }}" required autocomplete="inicioSubmissao" autofocus> <input id="inicioSubmissao" type="date" class="form-control @error('inicioSubmissao') is-invalid @enderror" name="inicioSubmissao" value="{{ old('inicioSubmissao') }}" required autocomplete="inicioSubmissao">
@error('inicioSubmissao') @error('inicioSubmissao')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong> <strong>{{ $message }}</strong>
@if ($message != null)
@for ($i = 0; $i < 9; $i++) @if ($i < 8) {{ explode(" ", $message)[$i] }} @else {{ date('d/m/Y', strtotime(explode(" ", $message)[$i])) }} @endif @endfor @endif </strong>
</span> </span>
@enderror @enderror
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<label for="fimSubmissao" class="col-form-label">{{ __('Fim da Submissão:') }}<span style="color:red; font-weight:bold;">*</span></label> <label for="fimSubmissao" class="col-form-label">{{ __('Fim da Submissão:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fimSubmissao" type="date" class="form-control @error('fimSubmissao') is-invalid @enderror" name="fimSubmissao" value="{{ old('fimSubmissao') }}" required autocomplete="fimSubmissao" autofocus> <input id="fimSubmissao" type="date" class="form-control @error('fimSubmissao') is-invalid @enderror" name="fimSubmissao" value="{{ old('fimSubmissao') }}" required autocomplete="fimSubmissao">
@error('fimSubmissao') @error('fimSubmissao')
<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>
{{-- end dataInicio | dataFim | inicioSubmissao | fimSubmissao --}}
<div class="row justify-content-center"> {{-- Data de Início e Fim da Revisão --}}
<div class="row justify-content-start mb-1 mt-2">
<div class="col-sm-6"> <div class="col-sm-6">
<label for="inicioRevisao" class="col-form-label">{{ __('Início da Avaliação:') }}<span style="color:red; font-weight:bold;">*</span></label> <label for="inicioRevisao" class="col-form-label">{{ __('Início da Revisão:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="inicioRevisao" type="date" class="form-control @error('inicioRevisao') is-invalid @enderror" name="inicioRevisao" value="{{ old('inicioRevisao') }}" required autocomplete="inicioRevisao" autofocus> <input id="inicioRevisao" type="date" class="form-control @error('inicioRevisao') is-invalid @enderror" name="inicioRevisao" value="{{ old('inicioRevisao') }}" required autocomplete="inicioRevisao">
@error('inicioRevisao') @error('inicioRevisao')
<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 class="col-sm-6">
<label for="fimRevisao" class="col-form-label">{{ __('Fim da Avaliação:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fimRevisao" type="date" class="form-control @error('fimRevisao') is-invalid @enderror" name="fimRevisao" value="{{ old('fimRevisao') }}" required autocomplete="fimRevisao" autofocus>
<div class="col-sm-6">
<label for="fimRevisao" class="col-form-label">{{ __('Fim da Revisão:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fimRevisao" type="date" class="form-control @error('fimRevisao') is-invalid @enderror" name="fimRevisao" value="{{ old('fimRevisao') }}" required autocomplete="fimRevisao">
@error('fimRevisao') @error('fimRevisao')
<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="row justify-content-left"> {{-- Data de Resultado Preliminar --}}
<div class="row justify-content-start mb-1 mt-2">
<div class="col-sm-6"> <div class="col-sm-6">
<label for="resultado_preliminar" class="col-form-label">{{ __('Resultado Preliminar:') }}<span style="color:red; font-weight:bold;">*</span></label> <label for="resultado_preliminar" class="col-form-label">{{ __('Resultado Preliminar:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="resultado_preliminar" type="date" class="form-control @error('resultado_preliminar') is-invalid @enderror" name="resultado_preliminar" value="{{ old('resultado_preliminar') }}" required autocomplete="resultado_preliminar" autofocus> <input id="resultado_preliminar" type="date" class="form-control @error('resultado_preliminar') is-invalid @enderror" name="resultado_preliminar" value="{{ old('resultado_preliminar') }}" required autocomplete="resultado_preliminar">
@error('resultado_preliminar') @error('resultado_preliminar')
<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 class="col-sm-6">
<label for="inicio_recurso" class="col-form-label">{{ __('Início do recurso:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="inicio_recurso" type="date" class="form-control @error('inicio_recurso') is-invalid @enderror" name="inicio_recurso" value="{{ old('inicio_recurso') }}" required autocomplete="inicio_recurso" autofocus>
<div class="col-sm-6">
<label for="inicio_recurso" class="col-form-label">{{ __('Início do Recurso:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="inicio_recurso" type="date" class="form-control @error('inicio_recurso') is-invalid @enderror" name="inicio_recurso" value="{{ old('inicio_recurso') }}" required autocomplete="inicio_recurso">
@error('inicio_recurso') @error('inicio_recurso')
<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> {{-- Data de Fim do Recurso e Resultado Final --}}
<div class="row justify-content-left"> <div class="row justify-content-start mb-1 mt-2">
<div class="col-sm-6"> <div class="col-sm-6">
<label for="fim_recurso" class="col-form-label">{{ __('Fim do Recurso:') }}<span style="color:red; font-weight:bold;">*</span></label> <label for="fim_recurso" class="col-form-label">{{ __('Fim do Recurso:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fim_recurso" type="date" class="form-control @error('fim_recurso') is-invalid @enderror" name="fim_recurso" value="{{ old('fim_recurso') }}" required autocomplete="resultado" autofocus> <input id="fim_recurso" type="date" class="form-control @error('fim_recurso') is-invalid @enderror" name="fim_recurso" value="{{ old('fim_recurso') }}" required autocomplete="fim_recurso">
@error('fim_recurso') @error('fim_recurso')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
...@@ -302,126 +304,76 @@ ...@@ -302,126 +304,76 @@
<div class="col-sm-6"> <div class="col-sm-6">
<label for="resultado_final" class="col-form-label">{{ __('Resultado Final:') }}<span style="color:red; font-weight:bold;">*</span></label> <label for="resultado_final" class="col-form-label">{{ __('Resultado Final:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="resultado_final" type="date" class="form-control @error('resultado_final') is-invalid @enderror" name="resultado_final" value="{{ old('resultado_final') }}" required autocomplete="resultado" autofocus> <input id="resultado_final" type="date" class="form-control @error('resultado_final') is-invalid @enderror" name="resultado_final" value="{{ old('resultado_final') }}" required autocomplete="resultado_final">
@error('resultado_final') @error('resultado_final')
<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>
<hr> <div class="row subtitulo">
<div class="row subtitulo">
<div class="col-sm-12"> <div class="col-sm-12">
<p>Relatórios</p> <p>Tipo de Avaliação</p>
</div>
</div> </div>
<div class="row justify-content-left"> </div>
<div class="col-sm-6">
<label for="dt_inicioRelatorioParcial" class="col-form-label">{{ __('Início do Relatório Parcial:') }}</label> <div class="row justify-content-start mb-4 mt-2">
<input id="dt_inicioRelatorioParcial" type="date" class="form-control @error('dt_inicioRelatorioParcial') is-invalid @enderror" name="dt_inicioRelatorioParcial" value="{{ old('dt_inicioRelatorioParcial') }}" autocomplete="dt_inicioRelatorioParcial" autofocus title="Início para o período do envio do relatório parcial">
@error('dt_inicioRelatorioParcial')
<span class="invalid-feedback" role="alert">
<strong>Apenas será aceita data posterior ao dia do Resultado Final</strong>
</span>
@enderror
</div>
<div class="col-sm-6"> <div class="col-sm-6">
<input type="checkbox" id="checkboxBarema" name="tipoAvaliacao[]" value="barema">
<label for="dt_fimRelatorioParcial" class="col-form-label">{{ __('Fim do Relatório Parcial:') }}</label> <label for="checkboxBarema">Avaliação por Barema</label>
<input id="dt_fimRelatorioParcial" type="date" class="form-control @error('dt_fimRelatorioParcial') is-invalid @enderror" name="dt_fimRelatorioParcial" value="{{ old('dt_fimRelatorioParcial') }}" autocomplete="dt_fimRelatorioParcial" autofocus title="Final do período de envio do relatório parcial">
@error('dt_fimRelatorioParcial')
<span class="invalid-feedback" role="alert">
<strong>A data deve ser igual ou posterior a data de início do Relatório Parcial</strong>
</span>
@enderror
</div> </div>
<div class="col-sm-6">
<label for="dt_inicioRelatorioFinal" class="col-form-label">{{ __('Início do Relatório Final:') }}</label>
<input id="dt_inicioRelatorioFinal" type="date" class="form-control @error('dt_inicioRelatorioFinal') is-invalid @enderror" name="dt_inicioRelatorioFinal" value="{{ old('dt_inicioRelatorioFinal') }}" autocomplete="dt_inicioRelatorioFinal" autofocus title="Início para o período de envio do relatório final">
@error('dt_inicioRelatorioFinal')
<span class="invalid-feedback" role="alert">
<strong>Apenas será aceita data posterior ao fim do Relatório Parcial</strong>
</span>
@enderror
</div>
<div class="col-sm-6"> <div class="col-sm-6">
<input type="checkbox" id="checkboxCurriculo" name="tipoAvaliacao[]" value="curriculo">
<label for="dt_fimRelatorioFinal" class="col-form-label">{{ __('Fim do Relatório Final:') }}</label> <label for="checkboxCurriculo">Avaliação por Currículo Lattes</label>
<input id="dt_fimRelatorioFinal" type="date" class="form-control @error('dt_fimRelatorioFinal') is-invalid @enderror" name="dt_fimRelatorioFinal" value="{{ old('dt_fimRelatorioFinal') }}" autocomplete="dt_fimRelatorioFinal" autofocus title="Final do período de envio do relatório final">
@error('dt_fimRelatorioFinal')
<span class="invalid-feedback" role="alert">
<strong>A data deve ser igual ou posterior a data de início do Relatório Final</strong>
</span>
@enderror
</div>
</div> </div>
</div>
<div id="baremaSection" style="display: none;">
<hr> <hr>
<div class="row subtitulo align-items-center">
<div class="row subtitulo"> <div class="col-12 col-sm-3">
<div class="col-sm-12"> <p class="mb-0">Avaliação - Barema</p>
<p>Avaliação - Barema</p>
</div> </div>
<div class="col-12 col-sm-3">
<input type="text" name="pontuacao" class="form-control mt-2 mt-sm-0" id="pontuacao" readonly style="width: auto;" />
</div> </div>
<div class="">
<div class="row mb-4">
<label class="col-sm-3" for="pontuacao">Valor total da pontuação por Barema:<span style="color:red; font-weight:bold;">*</span></label>
<input type="number" name="pontuacao" min="1" class="col-sm-1 form-control" id="pontuacao" value="{{old('pontuacao')}}"/>
</div> </div>
<h3 class="h5">Campos do Barema:</h3>
</div>
<div class="row justify-content-center" style="margin-top:10px;" id="displayCampos"> <div class="row justify-content-center" style="margin-top:10px;" id="displayCampos">
<table class="table table-bordered col-sm-12" id="dynamicAddRemove"> <table class="table table-bordered col-sm-12" id="dynamicAddRemove">
<thead>
<tr> <tr>
<th>Nome<span style="color:red; font-weight:bold;">*</span></th> <th>Nome</th>
<th>Descrição</th> <th>Descrição</th>
<th>Nota Máxima<span style="color:red; font-weight:bold;">*</span></th> <th>Nota Máxima</th>
<th>Prioridade<span style="color:red; font-weight:bold;">*</span></th> <th>Prioridade</th>
<th>Ação</th> <th>Ação</th>
</tr> </tr>
</thead>
<tbody>
@foreach (($camposBarema ?? []) as $index => $campo)
<tr> <tr>
<td><input type="text" name="inputField[0][nome]" class="form-control nome @error('inputField.*.nome') is-invalid @enderror" value="{{ old('inputField[0][nome]') }}" /> <td><input type="text" name="inputFieldBarema[{{ $index }}][nome]" class="form-control nome" value="{{ old('inputFieldBarema.'.$index.'.nome', str_replace('-b', '', $campo->nome)) }}" /></td>
@error('inputField.*.nome') <td><input type="text" name="inputFieldBarema[{{ $index }}][descricao]" class="form-control descricao" value="{{ old('inputFieldBarema.'.$index.'.descricao', $campo->descricao) }}" /></td>
<span class="invalid-feedback" role="alert"> <td><input type="number" min="1" step="1" name="inputFieldBarema[{{ $index }}][nota_maxima]" class="form-control nota_maxima" value="{{ old('inputFieldBarema.'.$index.'.nota_maxima', $campo->nota_maxima) }}" /></td>
<strong>{{ $message }}</strong> <td><select name="inputFieldBarema[{{ $index }}][prioridade]" class="form-control prioridade">
</span> <option value="1" {{ old('inputFieldBarema.'.$index.'.prioridade', $campo->prioridade) == 1 ? 'selected' : '' }}>1</option>
@enderror <!-- Outras opções -->
</td> </select>
<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>
<td> <td>
<select name="inputField[0][prioridade]" class="form-control prioridade @error('inputField.*.prioridade') is-invalid @enderror"> @if($loop->first && $loop->last)
<option value="" selected>-- ORDEM --</option> <button type="button" name="add" id="dynamic-ar-barema" class="btn btn-outline-primary">Adicionar</button>
<option value="1" class="ordem_option">1</option> @else
</select> <button type="button" class="btn btn-outline-danger remove-input-field-barema">Remover</button>
@error('inputField.*.prioridade') @endif
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td> </td>
<td><button type="button" name="add" id="dynamic-ar" class="btn btn-outline-primary">Adicionar</button></td>
</tr> </tr>
@endforeach
</tbody>
</table> </table>
@if($errors->has('inputField.*')) @if($errors->has('inputField.*'))
...@@ -439,6 +391,57 @@ ...@@ -439,6 +391,57 @@
<input type="number" name="somaNotas" value="0" id="somaNotas" hidden> <input type="number" name="somaNotas" value="0" id="somaNotas" hidden>
</div> </div>
</div>
<div id="curriculoSection" style="display: none;">
<hr>
<div class="row subtitulo align-items-center">
<div class="col-12 col-sm-3">
<p class="mb-0">Avaliação - Currículo Lattes</p>
</div>
<div class="col-12 col-sm-3">
<input type="text" name="pontuacao_curriculo" class="form-control mt-2 mt-sm-0" id="pontuacao_curriculo" readonly style="width: auto;" />
</div>
</div>
<!-- Campos dinâmicos para Currículo Lattes -->
<div class="row justify-content-center" style="margin-top:10px;" id="displayCamposCurriculo">
<table class="table table-bordered col-sm-12" id="dynamicAddRemoveCurriculo">
<thead>
<tr>
<th>Nome</th>
<th>Descrição</th>
<th>Nota Máxima</th>
<th>Prioridade</th>
<th>Ação</th>
</tr>
</thead>
<tbody>
@foreach (($camposCurriculo ?? []) as $index => $campo)
<tr>
<td><input type="text" name="inputFieldCurriculo[{{ $index }}][nome]" class="form-control nome" value="{{ old('inputFieldCurriculo.'.$index.'.nome', str_replace('-c', '', $campo->nome)) }}" /></td>
<td><input type="text" name="inputFieldCurriculo[{{ $index }}][descricao]" class="form-control descricao" value="{{ old('inputFieldCurriculo.'.$index.'.descricao', $campo->descricao) }}" /></td>
<td><input type="number" min="1" step="1" name="inputFieldCurriculo[{{ $index }}][nota_maxima]" class="form-control nota_maxima" value="{{ old('inputFieldCurriculo.'.$index.'.nota_maxima', $campo->nota_maxima) }}" /></td>
<td><select name="inputFieldCurriculo[{{ $index }}][prioridade]" class="form-control prioridade">
<option value="1" {{ old('inputFieldCurriculo.'.$index.'.prioridade', $campo->prioridade) == 1 ? 'selected' : '' }}>1</option>
</select>
</td>
<td>
@if($loop->first && $loop->last)
<button type="button" name="add" id="dynamic-ar-curriculo" class="btn btn-outline-primary">Adicionar</button>
@else
<button type="button" class="btn btn-outline-danger remove-input-field-curriculo">Remover</button>
@endif
</td>
</tr>
@endforeach
</table>
<div class="col-sm-12 alert alert-danger" style="display: none" id="nota_maxima_invalida_curriculo">
A soma das notas máximas deve ser igual a pontuação total definida.
</div>
</div>
</div>
<hr> <hr>
<div class="row subtitulo"> <div class="row subtitulo">
...@@ -548,280 +551,269 @@ ...@@ -548,280 +551,269 @@
</div> </div>
</form> </form>
</div> </div>
</div>
</div> </div>
@endsection @endsection
@section('javascript') @section('javascript')
<script type="text/javascript"> <script type="text/javascript">
var i = 0; document.addEventListener('DOMContentLoaded', function() {
var numCampos = 1; initEventListeners();
var currentOptions = {'0': ''} toggleOutraDescricao();
showDocumentoExtra();
// Adiciona campo de avaliação
$("#dynamic-ar").click(function () {
++i;
++numCampos;
$("#dynamicAddRemove").append( if (document.getElementById('checkboxBarema').checked) {
'<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>' document.getElementById('baremaSection').style.display = 'block';
); }
$("#displayCampos").append('<input type="checkbox" id="checkB[' + i + ']" checked name="campos[]" value="' + i + '" hidden>');
$(".prioridade").children().remove(".dynamic"); if (document.getElementById('checkboxCurriculo').checked) {
document.getElementById('curriculoSection').style.display = 'block';
}
// Exibe opções caso estejam ocultas function addBaremaField() {
$('.ordem_option').show(); let index = $('#dynamicAddRemove tr').length;
let newRow = `
<tr>
<td><input type="text" name="inputFieldBarema[${index}][nome]" class="form-control nome" /></td>
<td><input type="text" name="inputFieldBarema[${index}][descricao]" class="form-control descricao" /></td>
<td><input type="number" min="1" step="1" name="inputFieldBarema[${index}][nota_maxima]" class="form-control nota_maxima" /></td>
<td>
<select name="inputFieldBarema[${index}][prioridade]" class="form-control prioridade">
</select>
</td>
<td><button type="button" class="btn btn-outline-danger remove-input-field-barema">Remover</button></td>
</tr>
`;
$('#dynamicAddRemove tbody').append(newRow);
updatePriorityOptions(); // Atualiza as opções de prioridade
updateBaremaButtons();
updateTotalScore();
}
$(".prioridade").each(function() { function addCurriculoField() {
let index = $('#dynamicAddRemoveCurriculo tr').length;
let newRow = `
<tr>
<td><input type="text" name="inputFieldCurriculo[${index}][nome]" class="form-control nome" /></td>
<td><input type="text" name="inputFieldCurriculo[${index}][descricao]" class="form-control descricao" /></td>
<td><input type="number" min="1" step="1" name="inputFieldCurriculo[${index}][nota_maxima]" class="form-control nota_maxima" /></td>
<td>
<select name="inputFieldCurriculo[${index}][prioridade]" class="form-control prioridade">
</select>
</td>
<td><button type="button" class="btn btn-outline-danger remove-input-field-curriculo">Remover</button></td>
</tr>
`;
$('#dynamicAddRemoveCurriculo tbody').append(newRow);
updatePriorityOptions(); // Atualiza as opções de prioridade
updateCurriculoButtons();
updateTotalScore();
}
// Resetando os valores selecionados // Chama as funções para adicionar os campos iniciais vazios
$(this).val("").change(); addBaremaField();
addCurriculoField();
selectId = $(this).attr('name').replace(/\D/g, "").toString(); // Restante do código para inicializar listeners e atualizar pontuações...
currentOptions[selectId] = '';
for (let x = 2; x <= numCampos; x++) { updateTotalScore(); // Calcular a pontuação inicial
updateBaremaButtons(); // Atualizar botões de Barema
updateCurriculoButtons(); // Atualizar botões de Currículo Lattes
$(this).append('<option value="' + x + '" class="ordem_option dynamic">' + x + '</option>') function updatePriorityOptions() {
let numItemsBarema = $('#dynamicAddRemove tr').length;
$('#dynamicAddRemove .prioridade').each(function() {
let currentPriority = $(this).val();
$(this).empty();
for (let i = 1; i <= numItemsBarema; i++) {
$(this).append(new Option(i, i, false, i == currentPriority));
}
});
let numItemsCurriculo = $('#dynamicAddRemoveCurriculo tr').length;
$('#dynamicAddRemoveCurriculo .prioridade').each(function() {
let currentPriority = $(this).val();
$(this).empty();
for (let i = 1; i <= numItemsCurriculo; i++) {
$(this).append(new Option(i, i, false, i == currentPriority));
}
});
} }
}) function updateBaremaButtons() {
let rows = $('#dynamicAddRemove tbody tr');
rows.each(function(index) {
if (index === 0) {
$(this).find('td:last-child').html('<button type="button" id="dynamic-ar-barema" class="btn btn-outline-primary">Adicionar</button>');
} else {
$(this).find('td:last-child').html('<button type="button" class="btn btn-outline-danger remove-input-field-barema">Remover</button>');
}
});
updatePriorityOptions();
}
function updateCurriculoButtons() {
let rows = $('#dynamicAddRemoveCurriculo tbody tr');
rows.each(function(index) {
if (index === 0) {
$(this).find('td:last-child').html('<button type="button" id="dynamic-ar-curriculo" class="btn btn-outline-primary">Adicionar</button>');
} else {
$(this).find('td:last-child').html('<button type="button" class="btn btn-outline-danger remove-input-field-curriculo">Remover</button>');
}
}); });
updatePriorityOptions();
}
$(document).on('click', '#dynamic-ar-barema', function() {
addBaremaField();
});
// Exclui campo de avaliação $(document).on('click', '.remove-input-field-barema', function () {
$(document).on('click', '.remove-input-field', function () {
$(this).parents('tr').remove(); $(this).parents('tr').remove();
updateBaremaPriorities();
selectId = $(this).attr('name').replace(/\D/g, "").toString(); updateBaremaButtons();
currentOption = currentOptions[selectId]; updateTotalScore();
document.getElementById('checkB[' + selectId + ']').remove();
$('.ordem_option[value|="' + currentOption + '"]').show();
delete currentOptions[selectId];
$('.dynamic[value|="' + numCampos + '"]').remove();
--numCampos;
}); });
$("#dynamicAddRemove").on('change', '.prioridade', function () { $(document).on('click', '#dynamic-ar-curriculo', function() {
addCurriculoField();
selectId = $(this).attr('name').replace(/\D/g, "").toString();
newOption = $(this).val();
currentOption = currentOptions[selectId];
$('.ordem_option[value|="' + currentOption + '"]').show();
$('.ordem_option[value|="' + newOption + '"]').hide();
currentOptions[selectId] = newOption;
}); });
$('#pontuacao').on('input', function () { $(document).on('click', '.remove-input-field-curriculo', function () {
validateNotas(); $(this).parents('tr').remove();
}) updateCurriculoPriorities();
updateCurriculoButtons();
$("#dynamicAddRemove").on('input', '.nota_maxima', function () { updateTotalScore();
validateNotas();
}); });
function validateNotas() { // Função que calcula a pontuação total e atualiza o campo de pontuação
pontuacao = $("#pontuacao").val(); function updateTotalScore() {
let totalBarema = 0;
if (pontuacao == "") { $('#dynamicAddRemove .nota_maxima').each(function() {
alert("Escolha o valor total da pontuação antes de adicionar as notas máximas!") totalBarema += parseInt($(this).val()) || 0;
$('.nota_maxima').val(""); });
} else { $('#pontuacao').val(totalBarema);
somaNotas = 0;
$(".nota_maxima").each(function() { let totalCurriculo = 0;
valor = Number($(this).val()); $('#dynamicAddRemoveCurriculo .nota_maxima').each(function() {
if (valor != 0) { totalCurriculo += parseInt($(this).val()) || 0;
somaNotas += valor; });
$('#pontuacao_curriculo').val(totalCurriculo);
} }
// Função para inicializar todos os listeners e eventos
function initEventListeners() {
document.getElementById('checkboxBarema').addEventListener('change', toggleBaremaSection);
document.getElementById('checkboxCurriculo').addEventListener('change', toggleCurriculoSection);
document.getElementById('tipo').addEventListener('change', toggleOutraDescricao);
document.querySelector('form').addEventListener('submit', submitFormHandler);
document.getElementById('check_docExtra').addEventListener('change', showDocumentoExtra);
document.querySelectorAll("input[type='file']").forEach(input => {
input.addEventListener('change', handleFileChange);
}); });
document.getElementById('dynamicAddRemove').addEventListener('input', function(event) {
$('#somaNotas').val(somaNotas); if (event.target.classList.contains('nota_maxima')) {
updateTotalScore();
if (somaNotas != pontuacao) {
$('.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";
} }
});
document.getElementById('dynamicAddRemoveCurriculo').addEventListener('input', function(event) {
if (event.target.classList.contains('nota_maxima')) {
updateTotalScore();
} }
});
} }
function selecionar_decisao_camara() { function toggleBaremaSection() {
var natureza = document.getElementById('natureza'); const baremaSection = document.getElementById('baremaSection');
if (natureza.value == 3) { baremaSection.style.display = this.checked ? 'block' : 'none';
var consu = document.getElementById('consu'); updateTotalScore(); // Atualiza a pontuação ao mostrar/esconder a seção
consu.checked = true;
} else {
var consu = document.getElementById('consu');
consu.checked = false;
}
} }
function exibirAnexoTemp(file) { function toggleCurriculoSection() {
console.log(file.id); const curriculoSection = document.getElementById('curriculoSection');
if (file.id === "pdfEdital") { curriculoSection.style.display = this.checked ? 'block' : 'none';
var pdfEditalPreenchido = document.getElementById('pdfEditalPreenchido'); updateTotalScore(); // Atualiza a pontuação ao mostrar/esconder a seção
pdfEditalPreenchido.value = "sim";
}
if (file.id === "modeloDocumento") {
var modeloDocumentoPreenchido = document.getElementById('modeloDocumentoPreenchido');
modeloDocumentoPreenchido.value = "sim";
}
if (file.id === "pdfFormAvalExterno") {
var pdfFormAvalExternoPreenchido = document.getElementById('pdfFormAvalExternoPreenchido');
pdfFormAvalExternoPreenchido.value = "sim";
} }
if (file.id === "pdfFormAvalRelatorio") {
var pdfFormAvalRelatorioPreenchido = document.getElementById('pdfFormAvalRelatorioPreenchido');
pdfFormAvalRelatorioPreenchido.value = "sim";
}
if (file.id === "docTutorial") {
var docTutorialPreenchido = document.getElementById('docTutorialPreenchido');
docTutorialPreenchido.value = "sim";
}
if (file.id === "pdfRelatorio") {
var pdfRelatorioPreenchido = document.getElementById('pdfRelatorioPreenchido');
pdfRelatorioPreenchido.value = "sim";
}
if (file.id === "pdfRecurso") {
var pdfRecursoPreenchido = document.getElementById('pdfRecursoPreenchido');
pdfRecursoPreenchido.value = "sim";
}
}
$("input[type='file']").on("change", function() {
if (this.files[0].size > 2000000) {
// console.log($(this).parents( ".col-sm-5" ))
alert("O tamanho do arquivo deve ser menor que 2MB!");
$(this).val('');
} function toggleOutraDescricao() {
}); const tipoSelect = document.getElementById('tipo');
const outraDescricaoDiv = document.getElementById('outra_descricao_div');
const outraDescricaoInput = document.getElementById('outra_descricao');
$("input.pdf").on("change", function() { if (tipoSelect.value === 'OUTRA') {
if (this.files[0].type.split('/')[1] == "pdf") { tipoSelect.style.flex = '0.5';
if (this.files[0].size > 20000000) { outraDescricaoDiv.style.display = 'block';
alert("O arquivo possui o tamanho superior a 2MB!"); outraDescricaoInput.disabled = false;
$(this).val('');
}
} else { } else {
alert("O arquivo não é de tipo PDF!"); tipoSelect.style.flex = '1';
$(this).val(''); outraDescricaoDiv.style.display = 'none';
outraDescricaoInput.disabled = true;
outraDescricaoInput.value = "";
} }
});
function defCoord(data, data2) {
document.getElementById('coordenador_id').value = data;
document.getElementById('coordenador_name').value = data2;
$("#modalCoord").modal('hide');
} }
function showDocumentoExtra() { function submitFormHandler(event) {
var nome_docExtra = document.getElementById('nome_docExtra'); const tipoSelect = document.getElementById('tipo');
var check_docExtra = document.getElementById("check_docExtra"); const outraDescricaoInput = document.getElementById('outra_descricao');
var obrigatoriedade_docExtra = document.getElementById('obrigatoriedade_docExtra');
if (check_docExtra.checked == true) { if (tipoSelect.value === 'OUTRA' && outraDescricaoInput.value.trim() !== "") {
nome_docExtra.parentElement.style.display = ''; tipoSelect.value = outraDescricaoInput.value.trim();
obrigatoriedade_docExtra.parentElement.style.display = '';
} else { } else {
nome_docExtra.parentElement.style.display = 'none'; outraDescricaoInput.disabled = true;
obrigatoriedade_docExtra.parentElement.style.display = 'none';
} }
} }
// Form dinâmico da ODS function showDocumentoExtra() {
const nomeDocExtra = document.getElementById('nome_docExtra');
const obrigatoriedadeDocExtra = document.getElementById('obrigatoriedade_docExtra');
const isChecked = document.getElementById("check_docExtra").checked;
$(document).ready(function(){ nomeDocExtra.parentElement.style.display = isChecked ? '' : 'none';
var selectedOds = []; obrigatoriedadeDocExtra.parentElement.style.display = isChecked ? '' : 'none';
$('.form-check-input').change(function(){ }
selectedOds = [];
$('#metas-container').empty();
$('.form-check-input:checked').each(function(){ function handleFileChange(event) {
selectedOds.push($(this).val()); const file = event.target;
});
if(selectedOds.length > 3){ if (file.files[0].size > 2000000) {
alert('Você só pode selecionar até 3 ODS.'); alert("O tamanho do arquivo deve ser menor que 2MB!");
$(this).prop('checked', false); file.value = '';
selectedOds.pop() } else if (file.files[0].type !== "application/pdf") {
alert("O arquivo deve ser do tipo PDF!");
file.value = '';
} }
selectedOds.forEach(function(odsId){
$.ajax({
url: 'metas/' + odsId,
method: 'GET',
success: function(response){
var metaOptions = '<hr><div class="col-12"><div class="row subtitulo"><div class="col-sm-12"><p>Metas para ' + response.ods + '</p></div></div></div></div>' + '<div class="form-group">';
response.metas.forEach(function(meta){
metaOptions += '<div class=" card form-check meta-item" style="margin-bottom : 1 rem "><div class="card-body">' +
'<input type="checkbox" name="metas[' + odsId + '][]" value="' + meta.id + '" class="form-check-input meta-checkbox" id="meta' + meta.id + '">' +
'<label class="form-check-label" for="meta' + meta.id + '">' + meta.nome + '</label>' +
'<p class="form-text text-muted">' + meta.descricao + '</p>' +
'</div></div>';
});
metaOptions += '</div>'
$('#metas-container').append(metaOptions);
},
error: function(jqXHR, textStatus, errorThrown){
console.error('Erro ao carregar as metas:', textStatus, errorThrown);
alert('Erro ao carregar as metas.');
} }
});
});
function validateNotas() {
let total = 0;
document.querySelectorAll('.nota_maxima').forEach(input => {
total += parseInt(input.value) || 0;
}); });
const pontuacao = parseInt(document.getElementById('pontuacao').value) || 0;
document.getElementById('nota_maxima_invalida').style.display = total !== pontuacao ? 'block' : 'none';
}
$(document).on('change', '.form-check-input', function(){ function validateNotasCurriculo() {
var metaCheckboxes = $('input[name^="metas"]'); let total = 0;
var selectedMetas = {}; document.querySelectorAll('.nota_maxima').forEach(input => {
total += parseInt(input.value) || 0;
metaCheckboxes.each(function(){
var odsId = $(this).attr('name').match(/metas\[(\d+)\]/)[1];
if(!selectedMetas[odsId]) selectedMetas[odsId] = [];
if($(this).prop('checked')) selectedMetas[odsId].push($(this).val());
}); });
const pontuacao = parseInt(document.getElementById('pontuacao_curriculo').value) || 0;
for(var odsId in selectedMetas){ document.getElementById('nota_maxima_invalida_curriculo').style.display = total !== pontuacao ? 'block' : 'none';
if(selectedMetas[odsId].length > 3){
alert('Você só pode selecionar até 3 metas por ODS.');
$(this).prop('checked', false);
return;
} }
}
});
});
new MultiSelectTag('metas'); // id
window.defCoord = function(data, data2) {
document.getElementById('coordenador_id').value = data;
document.getElementById('coordenador_name').value = data2;
$("#modalCoord").modal('hide');
}
window.onload = showDocumentoExtra(); updateTotalScore(); // Calcular a pontuação inicial
updateBaremaButtons(); // Atualizar botões de Barema
updateCurriculoButtons(); // Atualizar botões de Currículo Lattes
});
</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
@extends('layouts.app') @extends('layouts.app')
@php @php
$i=0; $numCampos=0; $avaliado=false; // Variáveis para marcar automaticamente as checkboxes
foreach ($evento->trabalhos as $trabalho) { $marcarBarema = false;
$avaliacoes = $trabalho->avaliadors()->where('status', 1)->count(); $marcarCurriculo = false;
if ($avaliacoes > 0) {
$avaliado = true; // Verifica se algum campo de Barema contém "nome-b"
foreach ($evento->camposAvaliacao ?? [] as $campo) {
if (strpos($campo->nome, 'nome-b') !== false) {
$marcarBarema = true;
break;
} }
} }
@endphp
// Verifica se algum campo de Currículo contém "nome-c"
foreach ($evento->camposAvaliacaoCurriculo ?? [] as $campo) {
if (strpos($campo->nome, 'nome-c') !== false) {
$marcarCurriculo = true;
break;
}
}
@endphp
@section('content') @section('content')
<div class="container"> <div class="container">
<div class="row titulo"> <div class="row titulo">
<h1>{{$evento->nome}}</h1> <h1>Editar Edital</h1>
</div> </div>
<form action="{{route('evento.update',$evento->id)}}" method="POST" enctype="multipart/form-data"> <!-- Panels -->
<div id="tab-containers" class="tab-content">
<div id="edital-container" class="tab-pane fade show active" role="tabpanel" aria-labelledby="edital-tab">
<form action="{{route('evento.update', $evento->id)}}" method="POST" enctype="multipart/form-data">
@csrf @csrf
@method('PUT')
<input type="hidden" name="tipoAvaliacao" value="campos">
<div class="row subtitulo"> <div class="row subtitulo">
<div class="col-sm-12"> <div class="col-sm-12">
...@@ -26,15 +43,11 @@ ...@@ -26,15 +43,11 @@
</div> </div>
</div> </div>
<input type="hidden" name="tipoAvaliacao" value="campos"> {{-- nome | Participantes | Tipo--}}
{{-- nome | Tipo--}}
<div class="row justify-content-start"> <div class="row justify-content-start">
{{--Nome do evento--}}
<div class="col-sm-12"> <div class="col-sm-12">
<label for="nome" class="col-form-label">{{ __('Nome:') }}<span style="color: red; font-weight: bold;">*</span></label> <label for="nome" class="col-form-label">{{ __('Nome:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input value="{{$evento->nome}}" id="nome" type="text" class="form-control @error('nome') is-invalid @enderror" name="nome" value="{{ old('nome') }}" required autocomplete="nome" autofocus> <input id="nome" type="text" class="form-control @error('nome') is-invalid @enderror" name="nome" value="{{ old('nome', $evento->nome) }}" required autocomplete="nome" autofocus>
@error('nome') @error('nome')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -42,35 +55,35 @@ ...@@ -42,35 +55,35 @@
</span> </span>
@enderror @enderror
</div> </div>
{{--End Nome do evento--}}
{{-- Tipo do evento --}}
<div class="col-sm-6"> <div class="col-sm-6">
<label for="tipo" class="col-form-label">{{ __('Tipo:') }}<span style="color: red; font-weight: bold;">*</span></label> <label for="tipo" class="col-form-label">{{ __('Tipo:') }}<span style="color:red; font-weight:bold;">*</span></label>
<select id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" required onchange="selectTipo()"> <div id="tipo_container" style="display: flex; align-items: center;">
<option value="COMPONENTES_CURRICULARES" {{ $evento->tipo == "COMPONENTES_CURRICULARES" ? 'selected' : '' }}>APOIO À VIVÊNCIA DE COMPONENTES CURRICULARES</option> <select id="tipo" class="form-control @error('tipo') is-invalid @enderror" name="tipo" required style="flex: 1;">
<option value="INOVACAO_PEDAGOGICA" {{ $evento->tipo == "INOVACAO_PEDAGOGICA" ? 'selected' : '' }}>INOVAÇÃO PEDAGÓGICA</option> <option @if(old('tipo', $evento->tipo) == "COMPONENTES_CURRICULARES") selected @endif value="COMPONENTES_CURRICULARES">APOIO À VIVÊNCIA DE COMPONENTES CURRICULARES</option>
<option value="PSICOSSOCIAL_PSICOPEDAGOGICO" {{ $evento->tipo == "PSICOSSOCIAL_PSICOPEDAGOGICO" ? 'selected' : '' }}>APOIO PSICOSSOCIAL OU PSICOPEDAGÓGICO</option> <option @if(old('tipo', $evento->tipo) == "INOVACAO_PEDAGOGICA") selected @endif value="INOVACAO_PEDAGOGICA">INOVAÇÃO PEDAGÓGICA</option>
<option @if(old('tipo', $evento->tipo) == "PSICOSSOCIAL_PSICOPEDAGOGICO") selected @endif value="PSICOSSOCIAL_PSICOPEDAGOGICO">APOIO PSICOSSOCIAL OU PSICOPEDAGÓGICO</option>
<option @if(old('tipo', $evento->tipo) == "OUTRA") selected @endif value="OUTRA">OUTRA</option>
</select> </select>
<div id="outra_descricao_div" style="display: @if(old('tipo', $evento->tipo) == 'OUTRA') block @else none @endif; margin-left: 10px; flex: 1;">
<input id="outra_descricao" type="text" class="form-control @error('outra_descricao') is-invalid @enderror" name="outra_descricao" value="{{ old('outra_descricao', $evento->outra_descricao) }}" placeholder="Especifique">
</div>
</div>
@error('tipo') @error('tipo')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
{{-- Tipo do evento --}}
<div class="col-sm-3"> <div class="col-sm-3">
<label for="natureza" class="col-form-label">{{ __('Natureza:') }}<span style="color: red; font-weight: bold;">*</span></label> <label for="natureza" class="col-form-label">{{ __('Natureza:') }}<span style="color:red; font-weight:bold;">*</span></label>
<select id="natureza" type="text" class="form-control @error('natureza') is-invalid @enderror" name="natureza" value="{{ old('natureza') }}" required> <select onchange="selecionar_decisao_camara()" id="natureza" type="text" class="form-control @error('natureza') is-invalid @enderror" name="natureza" value="{{ old('natureza', $evento->natureza) }}">
@foreach ($naturezas as $natureza) @foreach ($naturezas as $natureza)
@if ($natureza->id === $evento->natureza_id) <option @if(old('natureza', $evento->natureza) == $natureza->id) selected @endif value="{{ $natureza->id }}">{{ $natureza->nome }}</option>
<option value="{{ $natureza->id }}" selected>{{ $natureza->nome }}</option>
@else
<option value="{{ $natureza->id }}">{{ $natureza->nome }}</option>
@endif
@endforeach @endforeach
</select> </select>
...@@ -82,7 +95,7 @@ ...@@ -82,7 +95,7 @@
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<label for="numParticipantes" class="col-form-label">{{ __('Nº de Discentes:') }}</label> <label for="numParticipantes" class="col-form-label">{{ __('Nº de Discentes:') }}</label>
<input id="numParticipantes" type="number" min="0" max="500" class="form-control @error('numParticipantes') is-invalid @enderror" name="numParticipantes" value="{{ $evento->numParticipantes }}" autocomplete="numParticipantes" autofocus> <input id="numParticipantes" type="number" min="0" max="500" class="form-control @error('numParticipantes') is-invalid @enderror" name="numParticipantes" value="{{ old('numParticipantes', $evento->numParticipantes) }}" autocomplete="numParticipantes" autofocus>
@error('numParticipantes') @error('numParticipantes')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -97,12 +110,12 @@ ...@@ -97,12 +110,12 @@
<div class="col-sm-3"> <div class="col-sm-3">
<label for="check_docExtra" class="col-form-label">{{ __('Documento extra?') }}</label> <label for="check_docExtra" class="col-form-label">{{ __('Documento extra?') }}</label>
<input type="checkbox" name="check_docExtra" id="check_docExtra" onclick="showDocumentoExtra()" style="margin-left: 5px" @if($evento->nome_docExtra != null ) checked @endif {{ old('check_docExtra') ? 'checked' : ''}}> <input type="checkbox" name="check_docExtra" id="check_docExtra" onclick="showDocumentoExtra()" style="margin-left: 5px" {{ old('check_docExtra', $evento->check_docExtra) ? 'checked' : ''}}>
</div> </div>
<div class="col-sm-3" id='div-cot-doutor'> <div class="col-sm-3">
<label for="cotaDoutor" class="col-form-label">{{ __('Cota para recém doutor?') }}</label> <label for="cotaDoutor" class="col-form-label">{{ __('Cota para recém doutor: ') }}</label>
<input type="checkbox" @if($evento->cotaDoutor) checked @endif name="cotaDoutor" id="cotaDoutor"> <input type="checkbox" name="cotaDoutor" id="cotaDoutor" style="margin-left: 5px" {{ old('cotaDoutor', $evento->cotaDoutor) ? 'checked' : ''}}>
@error('cotaDoutor') @error('cotaDoutor')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -112,9 +125,10 @@ ...@@ -112,9 +125,10 @@
</div> </div>
{{--Nome do Documento Extra--}} {{--Nome do Documento Extra--}}
<div class="col-sm-3" style="display: none"> <div class="col-sm-3" style="display: none">
<label for="obrigatoriedade_docExtra" class="col-form-label">{{ __('Obrigatoriedade: ') }}</label> <label for="obrigatoriedade_docExtra" class="col-form-label">{{ __('Obrigatoriedade: ') }}</label>
<input type="checkbox" name="obrigatoriedade_docExtra" id="obrigatoriedade_docExtra" style="margin-left: 5px" @if($evento->obrigatoriedade_docExtra != null ) checked @endif {{ old('obrigatoriedade_docExtra') ? 'checked' : ''}}> <input type="checkbox" name="obrigatoriedade_docExtra" id="obrigatoriedade_docExtra" style="margin-left: 5px" {{ old('obrigatoriedade_docExtra', $evento->obrigatoriedade_docExtra) ? 'checked' : ''}}>
@error('obrigatoriedade_docExtra') @error('obrigatoriedade_docExtra')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
...@@ -124,21 +138,22 @@ ...@@ -124,21 +138,22 @@
<div class='col-md-3' style='display:none'> <div class='col-md-3' style='display:none'>
<label for="nome_docExtra" class="col-form-label">{{ __('Digite o nome do Documento') }} <span style="color:red; font-weight:bold;">*</span></label> <label for="nome_docExtra" class="col-form-label">{{ __('Digite o nome do Documento') }} <span style="color:red; font-weight:bold;">*</span></label>
<input id="nome_docExtra" type="text" class="form-control @error('nome_docExtra') is-invalid @enderror" name="nome_docExtra" @if($evento->nome_docExtra != null ) value="{{$evento->nome_docExtra}}" @else value="{{ old('nome_docExtra')}}" @endif placeholder="Nome do Documento" autocomplete="nome_docExtra" autofocus> <input id="nome_docExtra" type="text" class="form-control @error('nome_docExtra') is-invalid @enderror" name="nome_docExtra" value="{{ old('nome_docExtra', $evento->nome_docExtra) }}" placeholder="Nome do Documento" autocomplete="nome_docExtra" autofocus>
@error('nome_docExtra') @error('nome_docExtra')
<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>
{{-- Descricao Evento --}} {{-- Descricao Edital --}}
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-sm-12"> <div class="col-sm-12">
<div class="form-group"> <div class="form-group">
<label for="exampleFormControlTextarea1">Descrição:<span style="color: red; font-weight: bold;">*</span></label> <label for="exampleFormControlTextarea1">Descrição:<span style="color:red; font-weight:bold;">*</span></label>
<textarea class="form-control @error('descricao') is-invalid @enderror" value="{{ $evento->descricao }}" id="descricao" name="descricao" rows="3">{{$evento->descricao}}</textarea> <textarea class="form-control @error('descricao') is-invalid @enderror" required autocomplete="descricao" autofocus id="descricao" name="descricao" rows="6">{{ old('descricao', $evento->descricao) }}</textarea>
@error('descricao') @error('descricao')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
...@@ -151,7 +166,7 @@ ...@@ -151,7 +166,7 @@
<div class="col-sm-12"> <div class="col-sm-12">
<div class="row"> <div class="row">
<div class="col-md-11"> <div class="col-md-11">
<label for="coordenador_id" class="col-form-label">{{ __('Coordenador: ') }}<span style="color: red; font-weight: bold;">*</span></label> <label for="coordenador_id" class="col-form-label">{{ __('Coordenador:') }}<span style="color:red; font-weight:bold;">*</span></label>
</div> </div>
<div class="col-md-1 text-sm-right"> <div class="col-md-1 text-sm-right">
...@@ -160,11 +175,20 @@ ...@@ -160,11 +175,20 @@
</a> </a>
</div> </div>
</div> </div>
<input id="coordenador_id" name="coordenador_id" class="form-control" value="{{$evento->coordenadorId}}" hidden>
<input style="margin-top: 5px" id="coordenador_name" name="coordenador_name" class="form-control @error('coordenador_id') is-invalid @enderror" value="{{$coordEvent->user->name}}" placeholder="Selecione um Coordenador" required readonly> <input id="coordenador_id" name="coordenador_id" class="form-control" value="{{old('coordenador_id', $evento->coordenador_id)}}" hidden>
<input style="margin-top: 5px" id="coordenador_name" name="coordenador_name" class="form-control @error('coordenador_id') is-invalid @enderror"
value="{{ old('coordenador_name', $evento->coordenador && $evento->coordenador->user ? $evento->coordenador->user->name : '') }}"
placeholder="Nenhum Coordenador atribuido" required readonly>
@error('coordenador_id')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div> </div>
</div> </div>
<!-- Modal Coordenador --> <!-- Modal Coordenador -->
<div class="modal fade" id="modalCoord" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal fade" id="modalCoord" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg"> <div class="modal-dialog modal-dialog-centered modal-lg">
...@@ -176,6 +200,7 @@ ...@@ -176,6 +200,7 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
...@@ -188,6 +213,7 @@ ...@@ -188,6 +213,7 @@
</tr> </tr>
</thead> </thead>
<tbody id="projetos"> <tbody id="projetos">
@foreach($coordenadores as $coordenador) @foreach($coordenadores as $coordenador)
<tr> <tr>
<td>{{$coordenador->user->name}}</td> <td>{{$coordenador->user->name}}</td>
...@@ -212,342 +238,230 @@ ...@@ -212,342 +238,230 @@
</div> </div>
</div> </div>
<hr> {{-- Data de Início e Fim da Submissão --}}
<div class="row justify-content-start mb-1 mt-2">
<div class="row subtitulo">
<div class="col-sm-12">
<p>Projetos</p>
</div>
</div>
{{-- dataInicio | dataFim | inicioSubmissao | fimSubmissao --}}
<div class="row justify-content-center">
{{-- Início da Submissão --}}
<div class="col-sm-6"> <div class="col-sm-6">
<label for="inicioSubmissao" class="col-form-label">{{ __('Início da Submissão:') }}<span style="color: red; font-weight: bold;">*</span></label> <label for="inicioSubmissao" class="col-form-label">{{ __('Início da Submissão:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input value="{{$evento->inicioSubmissao}}" id="inicioSubmissao" type="date" class="form-control @error('inicioSubmissao') is-invalid @enderror" name="inicioSubmissao" value="{{ old('inicioSubmissao') }}" required autocomplete="inicioSubmissao" autofocus> <input id="inicioSubmissao" type="date" class="form-control @error('inicioSubmissao') is-invalid @enderror" name="inicioSubmissao" value="{{ old('inicioSubmissao', $evento->inicioSubmissao) }}" required autocomplete="inicioSubmissao">
@error('inicioSubmissao') @error('inicioSubmissao')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message . date('d/m/Y', strtotime($ontem ?? '')) . '.' }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div>{{-- end Início da Submissão --}} </div>
{{-- Fim da submissão --}}
<div class="col-sm-6">
<label for="fimSubmissao" class="col-form-label">{{ __('Fim da Submissão:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input value="{{$evento->fimSubmissao}}" id="fimSubmissao" type="date" class="form-control @error('fimSubmissao') is-invalid @enderror" name="fimSubmissao" value="{{ old('fimSubmissao') }}" required autocomplete="fimSubmissao" autofocus>
<div class="col-sm-6">
<label for="fimSubmissao" class="col-form-label">{{ __('Fim da Submissão:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fimSubmissao" type="date" class="form-control @error('fimSubmissao') is-invalid @enderror" name="fimSubmissao" value="{{ old('fimSubmissao', $evento->fimSubmissao) }}" required autocomplete="fimSubmissao">
@error('fimSubmissao') @error('fimSubmissao')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message . date('d/m/Y', strtotime(old('inicioSubmissao'))) . '.' }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div>{{-- end Fim da submissão --}} </div>
</div>{{-- end dataInicio | dataFim | inicioSubmissao | fimSubmissao --}} </div>
<div class="row justify-content-center">
<div class="col-sm-6" id='div-inicio-avaliacao'>
<label for="inicioRevisao" class="col-form-label">{{ __('Início da Avaliação:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input value="{{$evento->inicioRevisao}}" id="inicioRevisao" type="date" class="form-control @error('inicioRevisao') is-invalid @enderror" name="inicioRevisao" value="{{ old('inicioRevisao') }}" required autocomplete="inicioRevisao" autofocus>
{{-- Data de Início e Fim da Revisão --}}
<div class="row justify-content-start mb-1 mt-2">
<div class="col-sm-6">
<label for="inicioRevisao" class="col-form-label">{{ __('Início da Revisão:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="inicioRevisao" type="date" class="form-control @error('inicioRevisao') is-invalid @enderror" name="inicioRevisao" value="{{ old('inicioRevisao', $evento->inicioRevisao) }}" required autocomplete="inicioRevisao">
@error('inicioRevisao') @error('inicioRevisao')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message . date('d/m/Y', strtotime($ontem ?? '')) . '.' }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
<div class="col-sm-6" id='div-fim-avaliacao'>
<label for="fimRevisao" class="col-form-label">{{ __('Fim da Avaliação:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input value="{{$evento->fimRevisao}}" id="fimRevisao" type="date" class="form-control @error('fimRevisao') is-invalid @enderror" name="fimRevisao" value="{{ old('fimRevisao') }}" required autocomplete="fimRevisao" autofocus>
<div class="col-sm-6">
<label for="fimRevisao" class="col-form-label">{{ __('Fim da Revisão:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fimRevisao" type="date" class="form-control @error('fimRevisao') is-invalid @enderror" name="fimRevisao" value="{{ old('fimRevisao', $evento->fimRevisao) }}" required autocomplete="fimRevisao">
@error('fimRevisao') @error('fimRevisao')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message . date('d/m/Y', strtotime( old('inicioRevisao') )) . '.' }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
</div> </div>
{{-- inicioRevisao | fimRevisao | inicioResultado | fimResultado--}}
<div class="row justify-content-left">
<div class="col-sm-6" id='div-result-pre'>
<label for="resultado_preliminar" class="col-form-label">{{ __('Resultado Preliminar:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input id="resultado_preliminar" value="{{$evento->resultado_preliminar}}" type="date" class="form-control @error('resultado_preliminar') is-invalid @enderror" name="resultado_preliminar" value="{{ old('resultado_preliminar') }}" required autocomplete="resultado_preliminar" autofocus>
{{-- Data de Resultado Preliminar --}}
<div class="row justify-content-start mb-1 mt-2">
<div class="col-sm-6">
<label for="resultado_preliminar" class="col-form-label">{{ __('Resultado Preliminar:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="resultado_preliminar" type="date" class="form-control @error('resultado_preliminar') is-invalid @enderror" name="resultado_preliminar" value="{{ old('resultado_preliminar', $evento->resultado_preliminar) }}" required autocomplete="resultado_preliminar">
@error('resultado_preliminar') @error('resultado_preliminar')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message . date('d/m/Y', strtotime($ontem ?? '')) . '.' }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
<div class="col-sm-6" id='div-ini-rec'>
<label for="inicio_recurso" class="col-form-label">{{ __('Início do recurso:') }}<span style="color: red; font-weight: bold;">*</span></label>
<input id="inicio_recurso" type="date" value="{{ $evento->inicio_recurso }}" class="form-control @error('inicio_recurso') is-invalid @enderror" name="inicio_recurso" value="{{ old('inicio_recurso') }}" required autocomplete="inicio_recurso" autofocus>
<div class="col-sm-6">
<label for="inicio_recurso" class="col-form-label">{{ __('Início do Recurso:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="inicio_recurso" type="date" class="form-control @error('inicio_recurso') is-invalid @enderror" name="inicio_recurso" value="{{ old('inicio_recurso', $evento->inicio_recurso) }}" required autocomplete="inicio_recurso">
@error('inicio_recurso') @error('inicio_recurso')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message . date('d/m/Y', strtotime($ontem ?? '')) . '.' }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
</div>
</div> {{-- Data de Fim do Recurso e Resultado Final --}}
<div class="row justify-content-left"> <div class="row justify-content-start mb-1 mt-2">
<div class="col-sm-6" id='div-fim-rec'> <div class="col-sm-6">
<label for="fim_recurso" class="col-form-label">{{ __('Fim do Recurso:') }}<span style="color: red; font-weight: bold;">*</span></label> <label for="fim_recurso" class="col-form-label">{{ __('Fim do Recurso:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="fim_recurso" type="date" value="{{ $evento->fim_recurso }}" class="form-control @error('fim_recurso') is-invalid @enderror" name="fim_recurso" value="{{ old('fim_recurso') }}" required autocomplete="resultado" autofocus> <input id="fim_recurso" type="date" class="form-control @error('fim_recurso') is-invalid @enderror" name="fim_recurso" value="{{ old('fim_recurso', $evento->fim_recurso) }}" required autocomplete="fim_recurso">
@error('fim_recurso') @error('fim_recurso')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message . date('d/m/Y', strtotime($ontem ?? '')) . '.' }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
<div class="col-sm-6" id='div-result-fim'> <div class="col-sm-6">
<label for="resultado_final" class="col-form-label">{{ __('Resultado Final:') }}<span style="color: red; font-weight: bold;">*</span></label> <label for="resultado_final" class="col-form-label">{{ __('Resultado Final:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="resultado_final" type="date" value="{{ $evento->resultado_final }}" class="form-control @error('resultado_final') is-invalid @enderror" name="resultado_final" value="{{ old('resultado_final') }}" required autocomplete="resultado" autofocus> <input id="resultado_final" type="date" class="form-control @error('resultado_final') is-invalid @enderror" name="resultado_final" value="{{ old('resultado_final', $evento->resultado_final) }}" required autocomplete="resultado_final">
@error('resultado_final') @error('resultado_final')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message . date('d/m/Y', strtotime($ontem ?? '')) . '.' }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror
</div> </div>
</div> </div>
@php
<hr> $tipoAvaliacao = is_array($evento->tipoAvaliacao) ? $evento->tipoAvaliacao : explode(',', $evento->tipoAvaliacao);
@endphp
<div class="row subtitulo" id='div-relat-titulo'> <div class="row subtitulo">
<hr>
<div class="col-sm-12"> <div class="col-sm-12">
<p>Relatórios</p> <p>Tipo de Avaliação</p>
</div> </div>
</div> </div>
<div class="row justify-content-left">
<div class="col-sm-6" id='div-inicio-relat-parcial'>
@component('componentes.input', ['label' => 'Início do Relatório Parcial:'])
<input id="dt_inicioRelatorioParcial" type="date" value="{{ $evento->dt_inicioRelatorioParcial }}" class="form-control @error('dt_inicioRelatorioParcial') is-invalid @enderror" name="dt_inicioRelatorioParcial" value="{{ old('dt_inicioRelatorioParcial') }}" required autocomplete="dt_inicioRelatorioParcial" autofocus title="Início para o período do envio do relatório parcial">
@error('dt_inicioRelatorioParcial')
<span class="invalid-feedback" role="alert">
<strong>Apenas será aceita data posterior ao dia do Resultado Final ({{date('d/m/Y', strtotime($evento->resultado_final ?? ''))}})</strong>
</span>
@enderror
@endcomponent
</div>
<div class="col-sm-6" id='div-fim-relat-parcial'>
@component('componentes.input', ['label' => 'Fim do Relatório Parcial:']) <div class="form-group">
<input id="dt_fimRelatorioParcial" type="date" value="{{ $evento->dt_fimRelatorioParcial }}" class="form-control @error('dt_fimRelatorioParcial') is-invalid @enderror" name="dt_fimRelatorioParcial" value="{{ old('dt_fimRelatorioParcial') }}" required autocomplete="dt_fimRelatorioParcial" autofocus title="Final do período do envio do relatório parcial"> <div class="row">
@error('dt_fimRelatorioParcial') <div class="col-md-3">
<span class="invalid-feedback" role="alert"> <div class="form-check">
<strong>A data deve ser igual ou posterior a data de início do Relatório Parcial ({{date('d/m/Y', strtotime($evento->dt_inicioRelatorioParcial ?? ''))}})</strong> <input class="form-check-input" type="checkbox" id="checkboxBarema" name="tipoAvaliacao[]" value="barema"
</span> {{ !empty($camposBarema) ? 'checked' : '' }}>
@enderror <label class="form-check-label" for="checkboxBarema">
@endcomponent Avaliação por Barema
</label>
</div> </div>
<div class="col-sm-6" id='div-ini-relat-final'>
@component('componentes.input', ['label' => 'Início do Relatório Final:'])
<input id="dt_inicioRelatorioFinal" type="date" value="{{ $evento->dt_inicioRelatorioFinal }}" class="form-control @error('dt_inicioRelatorioFinal') is-invalid @enderror" name="dt_inicioRelatorioFinal" value="{{ old('dt_inicioRelatorioFinal') }}" required autocomplete="dt_inicioRelatorioFinal" autofocus title="Início para o período do envio do relatório final">
@error('dt_inicioRelatorioFinal')
<span class="invalid-feedback" role="alert">
<strong>Apenas será aceita data posterior ao fim do Relatório Parcial ({{date('d/m/Y', strtotime($evento->dt_fimRelatorioParcial ?? ''))}})</strong>
</span>
@enderror
@endcomponent
</div> </div>
<div class="col-sm-6" id='div-fim-relat-final'> <div class="col-md-3">
<div class="form-check">
@component('componentes.input', ['label' => 'Fim do Relatório Final:']) <input class="form-check-input" type="checkbox" id="checkboxCurriculo" name="tipoAvaliacao[]" value="curriculo"
<input id="dt_fimRelatorioFinal" type="date" value="{{ $evento->dt_fimRelatorioFinal }}" class="form-control @error('dt_fimRelatorioFinal') is-invalid @enderror" name="dt_fimRelatorioFinal" value="{{ old('dt_fimRelatorioFinal') }}" required autocomplete="dt_fimRelatorioFinal" autofocus title="Final do período do envio do relatório final"> {{ !empty($camposCurriculo) ? 'checked' : '' }}>
@error('dt_fimRelatorioFinal') <label class="form-check-label" for="checkboxCurriculo">
<span class="invalid-feedback" role="alert"> Avaliação por Currículo Lattes
<strong>A data deve ser igual ou posterior a data de início do Relatório Final ({{date('d/m/Y', strtotime($evento->dt_inicioRelatorioFinal ?? ''))}})</strong> </label>
</span>
@enderror
@endcomponent
</div> </div>
</div> </div>
<hr>
<div class="row subtitulo" id='div-avaliacao'>
<hr>
<div class="col-sm-12">
<p>Avaliação - Barema</p>
</div> </div>
</div> </div>
@if($avaliado) <div id="baremaSection" style="display: none;">
<div class="alert alert-primary col-sm-12" role="alert"> <hr>
<strong>Você não pode alterar a avaliação após algum trabalho ter sido avaliado.</strong> <div class="row subtitulo align-items-center">
<div class="col-12 col-sm-3">
<p class="mb-0">Avaliação - Barema</p>
</div> </div>
@endif <div class="col-12 col-sm-3">
<input type="text" name="pontuacao" class="form-control mt-2 mt-sm-0" id="pontuacao" value="{{ old('pontuacao', $evento->pontuacao) }}" readonly style="width: auto;" />
<div>
<div class="row align-items-end mb-4">
<label class="col-sm-3" for="pontuacao">Valor total da pontuação por Barema:<span style="color:red; font-weight:bold;">*</span></label>
<input type="number" name="pontuacao" min="0" class="col-sm-1 form-control" id="pontuacao" value="{{old('pontuacao')?old('pontuacao'):$pontuacao}}" @if($avaliado) disabled @endif/>
</div> </div>
<label>Campos do Barema:</label>
</div> </div>
<div class="row justify-content-center" style="margin-top:10px;" id="displayCampos"> <div class="row justify-content-center" id="displayCampos">
<table class="table table-bordered col-sm-12" id="dynamicAddRemove"> <table class="table table-bordered col-sm-12" id="dynamicAddRemove">
<thead>
<tr> <tr>
<th>Nome<span style="color:red; font-weight:bold;">*</span></th> <th>Nome</th>
<th>Descrição</th> <th>Descrição</th>
<th>Nota Máxima<span style="color:red; font-weight:bold;">*</span></th> <th>Nota Máxima</th>
<th>Prioridade<span style="color:red; font-weight:bold;">*</span></th> <th>Prioridade</th>
<th>Ação</th> <th>Ação</th>
</tr> </tr>
@if ($camposAvaliacao->count() != 0) </thead>
@php $somaNotas = 0; @endphp <tbody>
@foreach ($camposAvaliacao as $campoAvaliacao) @foreach ($camposBarema as $index => $campo)
@php $somaNotas += $campoAvaliacao->nota_maxima; @endphp
@if ($numCampos == 0)
<tr> <tr>
<td><input type="text" name="inputField[{{$i}}][nome]" class="form-control nome @error('inputField.*.nome') is-invalid @enderror" value="{{ $campoAvaliacao->nome }}" @if($avaliado) disabled @endif/> <td><input type="text" name="inputFieldBarema[{{ $index }}][nome]" class="form-control nome" value="{{ old('inputFieldBarema.'.$index.'.nome', str_replace('-b', '', $campo->nome)) }}" /></td>
@error('inputField.*.nome') <td><input type="text" name="inputFieldBarema[{{ $index }}][descricao]" class="form-control descricao" value="{{ old('inputFieldBarema.'.$index.'.descricao', $campo->descricao) }}" /></td>
<span class="invalid-feedback" role="alert"> <td><input type="number" min="1" step="1" name="inputFieldBarema[{{ $index }}][nota_maxima]" class="form-control nota_maxima" value="{{ old('inputFieldBarema.'.$index.'.nota_maxima', $campo->nota_maxima) }}" /></td>
<strong>{{ $message }}</strong> <td><select name="inputFieldBarema[{{ $index }}][prioridade]" class="form-control prioridade">
</span> <option value="1" {{ old('inputFieldBarema.'.$index.'.prioridade', $campo->prioridade) == 1 ? 'selected' : '' }}>1</option>
@enderror <!-- Outras opções -->
</td>
<td><input type="text" name="inputField[{{$i}}][descricao]" class="form-control descricao @error('inputField.*.descricao') is-invalid @enderror" value="{{ $campoAvaliacao->descricao }}" @if($avaliado) disabled @endif/>
@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 }}" @if($avaliado) disabled @endif/>
@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" @if($avaliado) disabled @endif>
<option value="" >-- ORDEM --</option>
<option value="1" class="ordem_option">1</option>
</select> </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" @if($avaliado) disabled @endif>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 }}" @if($avaliado) disabled @endif/>
@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 }}" @if($avaliado) disabled @endif/>
@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 }}" @if($avaliado) disabled @endif/>
@error('inputField.*.nota_maxima')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td> </td>
<td> <td>
<select name="inputField[{{$i}}][prioridade]" class="form-control prioridade @error('inputField.*.prioridade') is-invalid @enderror" @if($avaliado) disabled @endif> @if($loop->first && $loop->last)
<option value="" >-- ORDEM --</option> <button type="button" name="add" id="dynamic-ar-barema" class="btn btn-outline-primary">Adicionar</button>
<option value="1" class="ordem_option">1</option> @else
</select> <button type="button" class="btn btn-outline-danger remove-input-field-barema">Remover</button>
@error('inputField.*.prioridade') @endif
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td> </td>
<td><button type="button" class="btn btn-outline-danger remove-input-field" name="removeButton[{{$i}}]" @if($avaliado) disabled @endif>Remover</button></td>
</tr> </tr>
@endif
@php ++$i; ++$numCampos; @endphp
@endforeach @endforeach
</tbody>
</table>
<div class="col-sm-12" id="addBaremaButton">
@if(count($camposBarema) === 0)
<button type="button" name="add" id="dynamic-ar-barema" class="btn btn-outline-primary">Adicionar</button>
@endif
</div>
</div>
</div>
@else <div id="curriculoSection" style="display: none;">
<hr>
<div class="row subtitulo align-items-center">
<div class="col-12 col-sm-3">
<p class="mb-0">Avaliação - Currículo Lattes</p>
</div>
<div class="col-12 col-sm-3">
<input type="text" name="pontuacao_curriculo" class="form-control mt-2 mt-sm-0" id="pontuacao_curriculo" value="{{ old('pontuacao_curriculo', $evento->pontuacao_curriculo) }}" readonly style="width: auto;" />
</div>
</div>
<div class="row justify-content-center" id="displayCamposCurriculo">
<table class="table table-bordered col-sm-12" id="dynamicAddRemoveCurriculo">
<thead>
<tr> <tr>
<td><input type="text" name="inputField[0][nome]" class="form-control nome @error('inputField.*.nome') is-invalid @enderror" value="{{ old('inputField[0][nome]') }}" @if($avaliado) disabled @endif/> <th>Nome</th>
@error('inputField.*.nome') <th>Descrição</th>
<span class="invalid-feedback" role="alert"> <th>Nota Máxima</th>
<strong>{{ $message }}</strong> <th>Prioridade</th>
</span> <th>Ação</th>
@enderror </tr>
</td> </thead>
<td><input type="text" name="inputField[0][descricao]" class="form-control descricao @error('inputField.*.descricao') is-invalid @enderror" value="{{ old('inputField[0][descricao]') }}" @if($avaliado) disabled @endif/> <tbody>
@error('inputField.*.descricao') @foreach ($camposCurriculo as $index => $campo)
<span class="invalid-feedback" role="alert"> <tr>
<strong>{{ $message }}</strong> <td><input type="text" name="inputFieldCurriculo[{{ $index }}][nome]" class="form-control nome" value="{{ old('inputFieldCurriculo.'.$index.'.nome', str_replace('-c', '', $campo->nome)) }}" /></td>
</span> <td><input type="text" name="inputFieldCurriculo[{{ $index }}][descricao]" class="form-control descricao" value="{{ old('inputFieldCurriculo.'.$index.'.descricao', $campo->descricao) }}" /></td>
@enderror <td><input type="number" min="1" step="1" name="inputFieldCurriculo[{{ $index }}][nota_maxima]" class="form-control nota_maxima" value="{{ old('inputFieldCurriculo.'.$index.'.nota_maxima', $campo->nota_maxima) }}" /></td>
</td> <td><select name="inputFieldCurriculo[{{ $index }}][prioridade]" class="form-control prioridade">
<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]') }}" @if($avaliado) disabled @endif/> <option value="1" {{ old('inputFieldCurriculo.'.$index.'.prioridade', $campo->prioridade) == 1 ? 'selected' : '' }}>1</option>
@error('inputField.*.nota_maxima') </select>
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td> </td>
<td> <td>
<select name="inputField[0][prioridade]" class="form-control prioridade @error('inputField.*.prioridade') is-invalid @enderror" @if($avaliado) disabled @endif> @if($loop->first && $loop->last)
<option value="" selected>-- ORDEM --</option> <button type="button" name="add" id="dynamic-ar-curriculo" class="btn btn-outline-primary">Adicionar</button>
<option value="1" class="ordem_option">1</option> @else
</select> <button type="button" class="btn btn-outline-danger remove-input-field-curriculo">Remover</button>
@error('inputField.*.prioridade') @endif
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td> </td>
<td><button type="button" name="add" id="dynamic-ar" class="btn btn-outline-primary" @if($avaliado) disabled @endif>Adicionar</button></td>
</tr> </tr>
@php ++$i; ++$numCampos; @endphp @endforeach
@endif </tbody>
</table> </table>
<div class="col-sm-12" id="addCurriculoButton">
@if($errors->has('inputField.*')) @if(count($camposCurriculo) === 0)
<div class="col-sm-12 alert alert-danger" id="inputFieldError"> <button type="button" name="add" id="dynamic-ar-curriculo" class="btn btn-outline-primary">Adicionar</button>
Você deve preencher os campos obrigatórios.
</div>
@endif @endif
<div class="col-sm-12 alert alert-danger" style="display: none" id="nota_maxima_invalida">
A soma das notas máximas deve ser igual a pontuação total definida.
</div> </div>
<input type="checkbox" id="checkB[0]" checked name="campos[]" value="0" hidden disabled>
<input type="number" name="somaNotas" value="0" id="somaNotas" hidden>
</div> </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="{{ ($evento->tipoAvaliacao == "link") ? $evento->formAvaliacaoExterno : old('link') }}" @if($avaliado) disabled @endif>
@error('link')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div> </div>
<hr> <hr>
...@@ -561,17 +475,11 @@ ...@@ -561,17 +475,11 @@
<div class="row justify-content-center" style="margin-top:10px"> <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">PDF do Edital:<span style="color: red; font-weight: bold;">*</span></label> <label for="pdfEdital">Anexar edital:<span style="color:red; font-weight:bold;">*</span></label>
@if($evento->pdfEdital != null) @if($evento->pdfEdital)
<a href="{{route('download', ['file' => $evento->pdfEdital])}}" target="_new" style="font-size: 20px; color: #114048ff;" > <a href="{{ route('baixar.edital', $evento->id) }}">Baixar edital atual</a>
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px">
</a>
@else
<a>
<i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a>
@endif @endif
<input type="file" class="form-control-file @error('pdfEdital') is-invalid @enderror" name="pdfEdital" value="{{ old('pdfEdital') }}" id="pdfEdital"> <input type="file" accept=".pdf" class="form-control-file pdf @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> <small>O arquivo selecionado deve ser no formato PDF de até 2mb.</small>
@error('pdfEdital') @error('pdfEdital')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -583,19 +491,13 @@ ...@@ -583,19 +491,13 @@
<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="modeloDocumento">Anexar modelo de proposta de trabalho:<span style="color:red; font-weight:bold;">*</span></label>
@if($evento->modeloDocumento != null) @if($evento->modeloDocumento)
<a href="{{route('baixar.modelos', ['id' => $evento->id])}}" target="_new" style="font-size: 20px; color: #114048ff;" > <a href="{{ route('baixar.modelo', $evento->id) }}">Baixar modelo atual</a>
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px">
</a>
@else
<a>
<i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a>
@endif @endif
<input type="file" class="form-control-file @error('modeloDocumento[]') is-invalid @enderror" name="modeloDocumento[]" multiple value="{{ old('modeloDocumento') }}" id="modeloDocumento" accept=".doc,.docx,.pdf,.zip"> <input type="file" class="form-control-file @error('modeloDocumento') is-invalid @enderror" name="modeloDocumento" value="{{ old('modeloDocumento') }}" id="modeloDocumento">
<small>Os arquivos selecionado deve ter até 2mb.</small> <small>O arquivo selecionado deve ter até 2mb.</small>
@error('modeloDocumento[]') @error('modeloDocumento')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
...@@ -603,15 +505,13 @@ ...@@ -603,15 +505,13 @@
</div> </div>
</div> </div>
{{-- Refact --}} <div class="col-sm-6">
{{-- <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
<label for="pdfRecurso">Anexar modelo do formulário de recurso:<span style="color:red; font-weight:bold;">*</span></label> <label for="pdfRecurso">Anexar modelo do formulário de recurso:<span style="color:red; font-weight:bold;">*</span></label>
@if(old('pdfRecursoPreenchido') != null) @if($evento->docRecurso)
<a id="pdfRecursoTemp" href="{{ route('baixar.evento.temp', ['nomeAnexo' => 'docRecurso' ])}}">Arquivo atual</a> <a href="{{ route('baixar.recurso', $evento->id) }}">Baixar formulário atual</a>
@endif @endif
<input type="hidden" id="pdfRecursoPreenchido" name="pdfRecursoPreenchido" value="{{ old('pdfRecursoPreenchido') }}"> <input type="file" accept=".pdf" class="form-control-file pdf @error('pdfRecurso') is-invalid @enderror" name="pdfRecurso" value="{{ old('pdfRecurso') }}" id="pdfRecurso">
<input type="file" accept=".pdf" class="form-control-file pdf @error('pdfRecurso') is-invalid @enderror" name="pdfRecurso" value="{{ old('pdfRecurso') }}" id="pdfRecurso" onchange="exibirAnexoTemp(this)">
<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('pdfRecurso') @error('pdfRecurso')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -619,42 +519,31 @@ ...@@ -619,42 +519,31 @@
</span> </span>
@enderror @enderror
</div> </div>
</div> --}} </div>
{{-- --}}
{{-- Refact --}} <div class="col-sm-6">
{{-- <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
<label for="pdfRelatorio">Anexar modelo do relatório técnico/pedagógico:</label> <label for="pdfRelatorio">Anexar modelo do relatório técnico/pedagógico:</label>
@if(old('pdfRelatorioPreenchido') != null) @if($evento->docRelatorio)
<a id="pdfRelatorioTemp" href="{{ route('baixar.evento.temp', ['nomeAnexo' => 'docRelatorio' ])}}">Arquivo atual</a> <a href="{{ route('baixar.relatorio', $evento->id) }}">Baixar relatório atual</a>
@endif @endif
<input type="hidden" id="pdfRelatorioPreenchido" name="pdfRelatorioPreenchido" value="{{ old('pdfRelatorioPreenchido') }}"> <input type="file" accept=".pdf" class="form-control-file pdf @error('pdfRelatorio') is-invalid @enderror" name="pdfRelatorio" value="{{ old('pdfRelatorio') }}" id="pdfRelatorio">
<input type="file" accept=".pdf" class="form-control-file pdf @error('pdfRelatorio') is-invalid @enderror" name="pdfRelatorio" value="{{ old('pdfRelatorio') }}" id="pdfRelatorio" onchange="exibirAnexoTemp(this)">
<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('pdfFormAvalRelatorio') @error('pdfRelatorio')
<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">Formulário de avaliação do relatório:</label> <label for="pdfFormAvalRelatorio">Anexar formulário de avaliação do relatório:</label>
@if($evento->formAvaliacaoRelatorio != null) @if($evento->formAvaliacaoRelatorio)
<a href="{{route('download', ['file' => $evento->formAvaliacaoRelatorio])}}" target="_new" style="font-size: 20px; color: #114048ff;" > <a href="{{ route('baixar.form_avaliacao', $evento->id) }}">Baixar formulário de avaliação atual</a>
<img class="" src="{{asset('img/icons/file-download-solid.svg')}}" style="width:20px">
</a>
@else
<a>
<i class="fas fa-times-circle fa-2x" style="color:red; font-size:25px"></i>
</a>
@endif @endif
<input type="file" accept=".pdf" class="form-control-file pdf @error('pdfFormAvalRelatorio') is-invalid @enderror" name="pdfFormAvalRelatorio" value="{{ old('pdfFormAvalRelatorio') }}" id="pdfFormAvalRelatorio">
<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('pdfFormAvalRelatorio') @error('pdfFormAvalRelatorio')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -663,7 +552,6 @@ ...@@ -663,7 +552,6 @@
@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">
...@@ -672,269 +560,265 @@ ...@@ -672,269 +560,265 @@
<a class="btn btn-secondary botao-form" href="{{ route('admin.editais') }}" style="width:100%">Cancelar</a> <a class="btn btn-secondary botao-form" href="{{ route('admin.editais') }}" style="width:100%">Cancelar</a>
</div> </div>
<div class="col-md-6" style="padding-right:0"> <div class="col-md-6" style="padding-right:0">
<button type="submit" class="btn btn-primary botao-form" style="width:100%"> <button type="submit" class="btn btn-primary botao-form" id="idButtonSubmitEvento" style="width:100%">
{{ __('Salvar') }} {{ __('Atualizar Edital') }}
</button> </button>
</div> </div>
</div> </div>
</form> </form>
</div>
</div>
</div> </div>
@endsection @endsection
@section('javascript') @section('javascript')
<script type="text/javascript"> <script type="text/javascript">
var i = "{{$i}}"; document.addEventListener('DOMContentLoaded', function() {
var numCampos = "{{$numCampos}}"; initEventListeners();
var currentOptions = {'0': ''} toggleOutraDescricao();
showDocumentoExtra();
$(document).ready(function() { if (document.getElementById('checkboxBarema').checked) {
document.getElementById('baremaSection').style.display = 'block';
}
if (numCampos > 1) { if (document.getElementById('checkboxCurriculo').checked) {
for (let y = 1; y < (numCampos); y++) { document.getElementById('curriculoSection').style.display = 'block';
$("#displayCampos").append('<input type="checkbox" id="checkB[' + y + ']" checked name="campos[]" value="' + y + '" hidden disabled>');
addOrdemPrioridade();
} }
function addBaremaField() {
let index = $('#dynamicAddRemove tr').length;
let newRow = `
<tr>
<td><input type="text" name="inputFieldBarema[${index}][nome]" class="form-control nome" /></td>
<td><input type="text" name="inputFieldBarema[${index}][descricao]" class="form-control descricao" /></td>
<td><input type="number" min="1" step="1" name="inputFieldBarema[${index}][nota_maxima]" class="form-control nota_maxima" /></td>
<td>
<select name="inputFieldBarema[${index}][prioridade]" class="form-control prioridade">
</select>
</td>
<td><button type="button" class="btn btn-outline-danger remove-input-field-barema">Remover</button></td>
</tr>
`;
$('#dynamicAddRemove tbody').append(newRow);
updatePriorityOptions(); // Atualiza as opções de prioridade
updateBaremaButtons();
updateTotalScore();
} }
@if(old('tipoAvaliacao') == 'campos' || $evento->tipoAvaliacao == 'campos')
$('#somaNotas').val('{{$somaNotas}}');
@endif
z = 0 function addCurriculoField() {
@foreach($camposAvaliacao as $campoAvaliacao) let index = $('#dynamicAddRemoveCurriculo tr').length;
selectId = z let newRow = `
newOption = "{{$campoAvaliacao->prioridade}}" <tr>
displayPrioridades(selectId, newOption) <td><input type="text" name="inputFieldCurriculo[${index}][nome]" class="form-control nome" /></td>
++z <td><input type="text" name="inputFieldCurriculo[${index}][descricao]" class="form-control descricao" /></td>
@endforeach <td><input type="number" min="1" step="1" name="inputFieldCurriculo[${index}][nota_maxima]" class="form-control nota_maxima" /></td>
<td>
<select name="inputFieldCurriculo[${index}][prioridade]" class="form-control prioridade">
</select>
</td>
<td><button type="button" class="btn btn-outline-danger remove-input-field-curriculo">Remover</button></td>
</tr>
`;
$('#dynamicAddRemoveCurriculo tbody').append(newRow);
updatePriorityOptions(); // Atualiza as opções de prioridade
updateCurriculoButtons();
updateTotalScore();
}
function updatePriorityOptions() {
let numItemsBarema = $('#dynamicAddRemove tr').length;
$('#dynamicAddRemove .prioridade').each(function() {
let currentPriority = $(this).val();
$(this).empty();
for (let i = 1; i <= numItemsBarema; i++) {
$(this).append(new Option(i, i, false, i == currentPriority));
}
}); });
// Habilita edição dos campos let numItemsCurriculo = $('#dynamicAddRemoveCurriculo tr').length;
$("input[name^='inputField']").on('change', function() { $('#dynamicAddRemoveCurriculo .prioridade').each(function() {
$("input[name^='campos']").prop('disabled', false); let currentPriority = $(this).val();
$(this).empty();
for (let i = 1; i <= numItemsCurriculo; i++) {
$(this).append(new Option(i, i, false, i == currentPriority));
}
}); });
}
// Adiciona campo de avaliação function updateBaremaButtons() {
$("#dynamic-ar").click(function () { let rows = $('#dynamicAddRemove tbody tr');
// Habilita edição dos campos rows.each(function(index) {
$("input[name^='campos']").prop('disabled', false); if (index === 0) {
$(this).find('td:last-child').html('<button type="button" id="dynamic-ar-barema" class="btn btn-outline-primary">Adicionar</button>');
$("#dynamicAddRemove").append( } else {
'<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>' $(this).find('td:last-child').html('<button type="button" class="btn btn-outline-danger remove-input-field-barema">Remover</button>');
); }
$("#displayCampos").append('<input type="checkbox" id="checkB[' + i + ']" checked name="campos[]" value="' + i + '" hidden>');
++i;
++numCampos;
addOrdemPrioridade();
}); });
updatePriorityOptions();
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>')
} }
}) function updateCurriculoButtons() {
let rows = $('#dynamicAddRemoveCurriculo tbody tr');
rows.each(function(index) {
if (index === 0) {
$(this).find('td:last-child').html('<button type="button" id="dynamic-ar-curriculo" class="btn btn-outline-primary">Adicionar</button>');
} else {
$(this).find('td:last-child').html('<button type="button" class="btn btn-outline-danger remove-input-field-curriculo">Remover</button>');
} }
// Exclui campo de avaliação
$(document).on('click', '.remove-input-field', function () {
// Habilita edição dos campos
$("input[name^='campos']").prop('disabled', false);
$(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;
}); });
updatePriorityOptions();
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 () { $(document).on('click', '#dynamic-ar-barema', function() {
addBaremaField();
selectId = $(this).attr('name').replace(/\D/g, "").toString();
newOption = $(this).val();
displayPrioridades(selectId, newOption);
}); });
$('#pontuacao').on('input', function () { $(document).on('click', '.remove-input-field-barema', function () {
validateNotas(); $(this).parents('tr').remove();
}) updateBaremaPriorities();
updateBaremaButtons();
updateTotalScore();
});
$("#dynamicAddRemove").on('input', '.nota_maxima', function () { $(document).on('click', '#dynamic-ar-curriculo', function() {
validateNotas(); addCurriculoField();
}); });
function validateNotas() { $(document).on('click', '.remove-input-field-curriculo', function () {
pontuacao = $("#pontuacao").val(); $(this).parents('tr').remove();
updateCurriculoPriorities();
updateCurriculoButtons();
updateTotalScore();
});
if (pontuacao == "") { // Função que calcula a pontuação total e atualiza o campo de pontuação
alert("Escolha o valor total da pontuação antes de adicionar as notas máximas!") function updateTotalScore() {
$('.nota_maxima').val(""); let totalBarema = 0;
} else { $('#dynamicAddRemove .nota_maxima').each(function() {
somaNotas = 0; totalBarema += parseInt($(this).val()) || 0;
});
$('#pontuacao').val(totalBarema);
$(".nota_maxima").each(function() { let totalCurriculo = 0;
valor = Number($(this).val()); $('#dynamicAddRemoveCurriculo .nota_maxima').each(function() {
if (valor != 0) { totalCurriculo += parseInt($(this).val()) || 0;
somaNotas += valor; });
$('#pontuacao_curriculo').val(totalCurriculo);
} }
// Função para inicializar todos os listeners e eventos
function initEventListeners() {
document.getElementById('checkboxBarema').addEventListener('change', toggleBaremaSection);
document.getElementById('checkboxCurriculo').addEventListener('change', toggleCurriculoSection);
document.getElementById('tipo').addEventListener('change', toggleOutraDescricao);
document.querySelector('form').addEventListener('submit', submitFormHandler);
document.getElementById('check_docExtra').addEventListener('change', showDocumentoExtra);
document.querySelectorAll("input[type='file']").forEach(input => {
input.addEventListener('change', handleFileChange);
}); });
document.getElementById('dynamicAddRemove').addEventListener('input', function(event) {
$('#somaNotas').val(somaNotas); if (event.target.classList.contains('nota_maxima')) {
updateTotalScore();
if (somaNotas != pontuacao) {
$('.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";
} }
});
document.getElementById('dynamicAddRemoveCurriculo').addEventListener('input', function(event) {
if (event.target.classList.contains('nota_maxima')) {
updateTotalScore();
} }
});
} }
function defCoord(data, data2) { function toggleBaremaSection() {
document.getElementById('coordenador_id').value = data; const baremaSection = document.getElementById('baremaSection');
document.getElementById('coordenador_name').value = data2; baremaSection.style.display = this.checked ? 'block' : 'none';
$("#modalCoord").modal('hide'); updateTotalScore(); // Atualiza a pontuação ao mostrar/esconder a seção
}
function toggleCurriculoSection() {
const curriculoSection = document.getElementById('curriculoSection');
curriculoSection.style.display = this.checked ? 'block' : 'none';
updateTotalScore(); // Atualiza a pontuação ao mostrar/esconder a seção
} }
function showDocumentoExtra() { function toggleOutraDescricao() {
var nome_docExtra = document.getElementById('nome_docExtra'); const tipoSelect = document.getElementById('tipo');
var check_docExtra = document.getElementById("check_docExtra"); const outraDescricaoDiv = document.getElementById('outra_descricao_div');
var obrigatoriedade_docExtra = document.getElementById('obrigatoriedade_docExtra'); const outraDescricaoInput = document.getElementById('outra_descricao');
if (check_docExtra.checked == true) {
nome_docExtra.parentElement.style.display = ''; if (tipoSelect.value === 'OUTRA') {
obrigatoriedade_docExtra.parentElement.style.display = ''; tipoSelect.style.flex = '0.5';
outraDescricaoDiv.style.display = 'block';
outraDescricaoInput.disabled = false;
} else { } else {
nome_docExtra.parentElement.style.display = 'none'; tipoSelect.style.flex = '1';
obrigatoriedade_docExtra.parentElement.style.display = 'none'; outraDescricaoDiv.style.display = 'none';
outraDescricaoInput.disabled = true;
outraDescricaoInput.value = "";
} }
} }
function selectTipo(){ function submitFormHandler(event) {
var tipo = document.getElementById('tipo'); const tipoSelect = document.getElementById('tipo');
const outraDescricaoInput = document.getElementById('outra_descricao');
names = ['div-inicio-avaliacao',
'div-fim-avaliacao',
'div-result-pre',
'div-ini-rec',
'div-fim-rec',
'div-result-fim',
'div-ini-proj',
'div-fim-proj',
'div-adhoc',
'div-doc-aux',
'div-cot-doutor',
'div-inicio-relat-parcial',
'div-fim-relat-parcial',
'div-ini-relat-final',
'div-fim-relat-final',
'div-relat-titulo',
'div-avaliacao',
'div-tipo-aval',
'div-text-aval']
inputs = ['inicioRevisao',
'fimRevisao',
'resultado_preliminar',
'inicio_recurso',
'fim_recurso',
'resultado_final',
'dt_inicioRelatorioParcial',
'dt_fimRelatorioParcial',
'dt_inicioRelatorioFinal',
'dt_fimRelatorioFinal'
]
if(tipo.value === 'CONTINUO'){
names.forEach(function(nome, i){
document.getElementById(nome).style.display = "none";
})
inputs.forEach(function(nome, i){
document.getElementById(nome).removeAttribute('required');
})
if (tipoSelect.value === 'OUTRA' && outraDescricaoInput.value.trim() !== "") {
tipoSelect.value = outraDescricaoInput.value.trim();
} else { } else {
names.forEach(function(nome, i){ outraDescricaoInput.disabled = true;
document.getElementById(nome).style.display = "block"; }
}) }
function showDocumentoExtra() {
const nomeDocExtra = document.getElementById('nome_docExtra');
const obrigatoriedadeDocExtra = document.getElementById('obrigatoriedade_docExtra');
const isChecked = document.getElementById("check_docExtra").checked;
inputs.forEach(function(nome, i){ nomeDocExtra.parentElement.style.display = isChecked ? '' : 'none';
document.getElementById(nome).setAttribute('required', ''); obrigatoriedadeDocExtra.parentElement.style.display = isChecked ? '' : 'none';
})
} }
//retirada das datas dos relatórios parciais para o PIBEX e PIACEX function handleFileChange(event) {
if(tipo.value === 'PIBEX' || tipo.value === 'PIACEX'){ const file = event.target;
document.getElementById('div-inicio-relat-parcial').style.display = "none";
document.getElementById('div-fim-relat-parcial').style.display = "none";
document.getElementById('dt_inicioRelatorioParcial').removeAttribute('required'); if (file.files[0].size > 2000000) {
document.getElementById('dt_fimRelatorioParcial').removeAttribute('required'); alert("O tamanho do arquivo deve ser menor que 2MB!");
file.value = '';
} else if (file.files[0].type !== "application/pdf") {
alert("O arquivo deve ser do tipo PDF!");
file.value = '';
} }
} }
function validateNotas() {
let total = 0;
document.querySelectorAll('.nota_maxima').forEach(input => {
total += parseInt(input.value) || 0;
});
const pontuacao = parseInt(document.getElementById('pontuacao').value) || 0;
document.getElementById('nota_maxima_invalida').style.display = total !== pontuacao ? 'block' : 'none';
}
window.onload = () => { function validateNotasCurriculo() {
showDocumentoExtra(); let total = 0;
selectTipo(); document.querySelectorAll('.nota_maxima').forEach(input => {
total += parseInt(input.value) || 0;
});
const pontuacao = parseInt(document.getElementById('pontuacao_curriculo').value) || 0;
document.getElementById('nota_maxima_invalida_curriculo').style.display = total !== pontuacao ? 'block' : 'none';
} }
</script>
@if($errors->has('somaNotas')) window.defCoord = function(data, data2) {
<script> document.getElementById('coordenador_id').value = data;
$('.nota_maxima').css('border', '1px solid red'); document.getElementById('coordenador_name').value = data2;
document.getElementById("nota_maxima_invalida").style.display = ""; $("#modalCoord").modal('hide');
</script> }
@endif
updateTotalScore(); // Calcular a pontuação inicial
updateBaremaButtons(); // Atualizar botões de Barema
updateCurriculoButtons(); // Atualizar botões de Currículo Lattes
});
</script>
@endsection @endsection
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