Commit 3a3fbf80 authored by Carlos André's avatar Carlos André
Browse files

crud função participante

parent 015d3c6b
...@@ -6,5 +6,7 @@ use Illuminate\Database\Eloquent\Model; ...@@ -6,5 +6,7 @@ use Illuminate\Database\Eloquent\Model;
class FuncaoParticipantes extends Model class FuncaoParticipantes extends Model
{ {
// public function participantes() {
return $this->hasMany("\App\Participante", 'funcao_participante_id');
}
} }
...@@ -29,7 +29,8 @@ class AdministradorController extends Controller ...@@ -29,7 +29,8 @@ class AdministradorController extends Controller
} }
public function naturezas(){ public function naturezas(){
$naturezas = Natureza::orderBy('nome')->get(); $naturezas = Natureza::orderBy('nome')->get();
return view('naturezas.index')->with(['naturezas' => $naturezas]); $funcoesParticipante = FuncaoParticipantes::orderBy('nome')->get();
return view('naturezas.index')->with(['naturezas' => $naturezas, 'funcoes' => $funcoesParticipante]);
} }
public function usuarios(){ public function usuarios(){
$users = User::orderBy('name')->get(); $users = User::orderBy('name')->get();
......
...@@ -6,6 +6,7 @@ use Illuminate\Http\Request; ...@@ -6,6 +6,7 @@ use Illuminate\Http\Request;
use App\Evento; use App\Evento;
use App\Trabalho; use App\Trabalho;
use App\Participante; use App\Participante;
use App\FuncaoParticipantes;
use Auth; use Auth;
class ParticipanteController extends Controller class ParticipanteController extends Controller
...@@ -33,4 +34,45 @@ class ParticipanteController extends Controller ...@@ -33,4 +34,45 @@ class ParticipanteController extends Controller
return view('participante.projetos')->with(['edital' => $edital, 'projetos' => $projetos]); return view('participante.projetos')->with(['edital' => $edital, 'projetos' => $projetos]);
} }
public function storeFuncao(Request $request) {
$validated = $request->validate([
'newFuncao' => 'required',
'nome_da_função' => 'required',
]);
$funcao = new FuncaoParticipantes();
$funcao->nome = $request->input('nome_da_função');
$funcao->save();
return redirect()->back()->with(['mensagem' => 'Função de participante cadastrada com sucesso!']);
}
public function updateFuncao(Request $request, $id) {
$validated = $request->validate([
'editFuncao' => 'required',
'nome_da_função'.$id => 'required',
]);
$funcao = FuncaoParticipantes::find($id);
if ($funcao->participantes->count() > 0) {
return redirect()->back()->with(['error' => 'Essa função não pode ser editada pois participantes estão vinculados a ela!']);
}
$funcao->nome = $request->input('nome_da_função'.$id);
$funcao->update();
return redirect()->back()->with(['mensagem' => 'Função de participante salva com sucesso!']);
}
public function destroyFuncao($id) {
$funcao = FuncaoParticipantes::find($id);
if ($funcao->participantes->count() > 0) {
return redirect()->back()->with(['error' => 'Essa função não pode ser excluída pois participantes estão vinculados a ela!']);
}
$funcao->delete();
return redirect()->back()->with(['mensagem' => 'Função de participante deletada com sucesso!']);
}
} }
...@@ -2,26 +2,31 @@ ...@@ -2,26 +2,31 @@
@section('content') @section('content')
<div class="container" style="margin-top: 100px;"> <div class="container" style="margin-top: 30px;">
<div class="container" > <div class="container" >
<div class="row" >
<div class="col-sm-10">
<h3>Usuários</h3>
</div>
<div class="col-sm-2">
<a href="{{route('admin.user.create')}}" class="btn btn-info" style="float: right;">{{ __('Criar usuário') }}</a>
</div>
</div>
<div class="row"> <div class="row">
@if(session('mensagem')) @if(session('mensagem'))
<div class="col-md-12" style="margin-top: 100px;"> <div class="col-md-12" style="margin-top: 30px;">
<div class="alert alert-success"> <div class="alert alert-success">
<p>{{session('mensagem')}}</p> <p>{{session('mensagem')}}</p>
</div> </div>
</div> </div>
@endif @endif
</div> </div>
<div class="row" >
<div class="col-sm-1">
<a href="{{ route('admin.index') }}" class="btn btn-secondary">
Voltar
</a>
</div>
<div class="col-sm-9" style="text-align: center;">
<h3 class="titulo-table">Usuários</h3>
</div>
<div class="col-sm-2">
<a href="{{route('admin.user.create')}}" class="btn btn-info" style="float: right;">{{ __('Criar usuário') }}</a>
</div>
</div>
</div> </div>
<hr> <hr>
<table class="table table-bordered"> <table class="table table-bordered">
...@@ -49,14 +54,14 @@ ...@@ -49,14 +54,14 @@
<img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px"> <img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px">
</a> </a>
<div class="dropdown-menu"> <div class="dropdown-menu">
<a href="{{route('admin.user.edit', $user->id)}}" class="dropdown-item"> <a href="{{route('admin.user.edit', $user->id)}}" class="dropdown-item text-center">
<img src="{{asset('img/icons/edit-regular.svg')}}" class="icon-card" alt="">
Editar Editar
</a> </a>
<hr class="dropdown-hr">
<form method="POST" action="{{route('admin.user.destroy', $user->id)}}"> <form method="POST" action="{{route('admin.user.destroy', $user->id)}}">
{{ csrf_field() }} {{ csrf_field() }}
<button type="submit" class="dropdown-item"> <button type="submit" class="dropdown-item dropdown-item-delete text-center">
<img src="{{asset('img/icons/trash-alt-regular.svg')}}" class="icon-card" alt=""> <img src="{{asset('img/icons/logo_lixeira.png')}}" alt="">
Deletar Deletar
</button> </button>
...@@ -79,14 +84,14 @@ ...@@ -79,14 +84,14 @@
<img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px"> <img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px">
</a> </a>
<div class="dropdown-menu"> <div class="dropdown-menu">
<a href="{{route('admin.user.edit', $user->id)}}" class="dropdown-item"> <a href="{{route('admin.user.edit', $user->id)}}" class="dropdown-item text-center">
<img src="{{asset('img/icons/edit-regular.svg')}}" class="icon-card" alt="">
Editar Editar
</a> </a>
<hr class="dropdown-hr">
<form method="POST" action="{{route('admin.user.destroy', $user->id)}}"> <form method="POST" action="{{route('admin.user.destroy', $user->id)}}">
{{ csrf_field() }} {{ csrf_field() }}
<button type="submit" class="dropdown-item"> <button type="submit" class="dropdown-item dropdown-item-delete text-center">
<img src="{{asset('img/icons/trash-alt-regular.svg')}}" class="icon-card" alt=""> <img src="{{asset('img/icons/logo_lixeira.png')}}" alt="">
Deletar Deletar
</button> </button>
......
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
<a href="{{ route('subarea.editar', ['id' => $subArea->id]) }}" class="dropdown-item text-center"> <a href="{{ route('subarea.editar', ['id' => $subArea->id]) }}" class="dropdown-item text-center">
Editar Editar
</a> </a>
<hr class="dropdown-hr">
<form method="POST" action="{{ route('subarea.deletar', ['id' => $subArea->id]) }}"> <form method="POST" action="{{ route('subarea.deletar', ['id' => $subArea->id]) }}">
{{ csrf_field() }} {{ csrf_field() }}
<button type="submit" class="dropdown-item dropdown-item-delete text-center"> <button type="submit" class="dropdown-item dropdown-item-delete text-center">
......
...@@ -37,10 +37,12 @@ ...@@ -37,10 +37,12 @@
<img src="{{asset('img/icons/eye-regular.svg')}}" class="icon-card" alt=""> <img src="{{asset('img/icons/eye-regular.svg')}}" class="icon-card" alt="">
Detalhes Detalhes
</a> </a>
<hr class="dropdown-hr">
<a href="{{ route('area.editar', ['id' => $area->id]) }}" class="dropdown-item text-center"> <a href="{{ route('area.editar', ['id' => $area->id]) }}" class="dropdown-item text-center">
<img src="{{asset('img/icons/edit-regular.svg')}}" class="icon-card" alt=""> <img src="{{asset('img/icons/edit-regular.svg')}}" class="icon-card" alt="">
Editar Editar
</a> </a>
<hr class="dropdown-hr">
<form method="POST" action="{{ route('area.deletar', ['id' => $area->id]) }}"> <form method="POST" action="{{ route('area.deletar', ['id' => $area->id]) }}">
{{ csrf_field() }} {{ csrf_field() }}
<button type="submit" class="dropdown-item dropdown-item-delete text-center"> <button type="submit" class="dropdown-item dropdown-item-delete text-center">
......
...@@ -50,9 +50,11 @@ ...@@ -50,9 +50,11 @@
<a href="{{ route('area.show', ['id' => $area->id ]) }}" class="dropdown-item text-center"> <a href="{{ route('area.show', ['id' => $area->id ]) }}" class="dropdown-item text-center">
Detalhes Detalhes
</a> </a>
<hr class="dropdown-hr">
<a href="{{ route('area.editar', ['id' => $area->id]) }}" class="dropdown-item text-center"> <a href="{{ route('area.editar', ['id' => $area->id]) }}" class="dropdown-item text-center">
Editar Editar
</a> </a>
<hr class="dropdown-hr">
<form method="POST" action="{{ route('area.deletar', ['id' => $area->id]) }}"> <form method="POST" action="{{ route('area.deletar', ['id' => $area->id]) }}">
{{ csrf_field() }} {{ csrf_field() }}
<button type="submit" class="dropdown-item dropdown-item-delete text-center"> <button type="submit" class="dropdown-item dropdown-item-delete text-center">
......
...@@ -50,9 +50,11 @@ ...@@ -50,9 +50,11 @@
<a href="{{ route('grandearea.show', ['id' => $grandeArea->id ]) }}" class="dropdown-item text-center"> <a href="{{ route('grandearea.show', ['id' => $grandeArea->id ]) }}" class="dropdown-item text-center">
Detalhes Detalhes
</a> </a>
<hr class="dropdown-hr">
<a href="{{ route('grandearea.editar', ['id' => $grandeArea->id]) }}" class="dropdown-item text-center"> <a href="{{ route('grandearea.editar', ['id' => $grandeArea->id]) }}" class="dropdown-item text-center">
Editar Editar
</a> </a>
<hr class="dropdown-hr">
<form method="POST" action="{{ route('grandearea.deletar', ['id' => $grandeArea->id]) }}"> <form method="POST" action="{{ route('grandearea.deletar', ['id' => $grandeArea->id]) }}">
{{ csrf_field() }} {{ csrf_field() }}
<button type="submit" class="dropdown-item dropdown-item-delete text-center"> <button type="submit" class="dropdown-item dropdown-item-delete text-center">
......
...@@ -31,6 +31,35 @@ ...@@ -31,6 +31,35 @@
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade" id="modalNewFuncao" tabindex="-1" role="dialog" aria-labelledby="modalNewFuncaoTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content modal-submeta">
<div class="modal-header modal-header-submeta">
<h5 class="modal-title titulo-table" id="modalNewFuncaoTitle">{{__('Nova função de participante')}}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form id="formNewFuncao" method="POST" action="{{ route('funcao_participante.store') }}" class="labels-blue">
@csrf
<label for="">Nome da função do participante <span style="color: red;">*</span></label>
<input name="nome_da_função" type="text" required class="form-control @error('nome_da_função') is-invalid @enderror" placeholder="Nome da função do participante">
<input type="hidden" name="newFuncao" value="0">
@error('nome_da_função')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</form>
</div>
<div class="modal-footer">
<button type="submit" form="formNewFuncao" class="btn btn-info" style="width: 100%;">{{__('Salvar')}}</button>
</div>
</div>
</div>
</div>
<div class="row" > <div class="row" >
@if(session('mensagem')) @if(session('mensagem'))
<div class="col-md-12" style="margin-top: 30px;"> <div class="col-md-12" style="margin-top: 30px;">
...@@ -39,6 +68,13 @@ ...@@ -39,6 +68,13 @@
</div> </div>
</div> </div>
@endif @endif
@if(session('error'))
<div class="col-md-12" style="margin-top: 30px;">
<div class="alert alert-danger">
<p>{{session('mensagem')}}</p>
</div>
</div>
@endif
</div> </div>
<div class="row" style="margin-top: 30px;"> <div class="row" style="margin-top: 30px;">
<div class="col-md-1"> <div class="col-md-1">
...@@ -55,6 +91,8 @@ ...@@ -55,6 +91,8 @@
</div> </div>
</div> </div>
<hr> <hr>
<div class="row">
<div class="col-md-12">
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<tr> <tr>
...@@ -68,16 +106,17 @@ ...@@ -68,16 +106,17 @@
<!-- Modal Editar --> <!-- Modal Editar -->
<div class="modal fade" id="modalEditCenter{{$natureza->id}}" tabindex="-1" role="dialog" aria-labelledby="modalCenterTitle" aria-hidden="true"> <div class="modal fade" id="modalEditCenter{{$natureza->id}}" tabindex="-1" role="dialog" aria-labelledby="modalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content"> <div class="modal-content modal-submeta">
<div class="modal-header"> <div class="modal-header modal-header-submeta">
<h5 class="modal-title" id="exampleModalLongTitle">{{__('Editar natureza')}}</h5> <h5 class="modal-title titulo-table" id="exampleModalLongTitle">{{__('Editar natureza')}}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> <button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body labels-blue">
<form id="formEdit{{ $natureza->id }}" action="{{ route('natureza.atualizar', ['id' => $natureza->id]) }}"> <form id="formEdit{{ $natureza->id }}" action="{{ route('natureza.atualizar', ['id' => $natureza->id]) }}">
@csrf @csrf
<label for="">Nome da natureza <span style="color: red;">*</span></label>
<input form="formEdit{{ $natureza->id }}" type="text" value="{{ $natureza->nome }}" class="form-control @error('nomeEditavel') is-invalid @enderror" name="nomeEditavel" required autocomplete="nome" autofocus> <input form="formEdit{{ $natureza->id }}" type="text" value="{{ $natureza->nome }}" class="form-control @error('nomeEditavel') is-invalid @enderror" name="nomeEditavel" required autocomplete="nome" autofocus>
@error('nomeEditavel') @error('nomeEditavel')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -87,8 +126,7 @@ ...@@ -87,8 +126,7 @@
</form> </form>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">{{__('Cancelar')}}</button> <button type="button" onclick="submeterFormEdit('{{ $natureza->id }}')" class="btn btn-info" style="width: 100%">{{__('Salvar')}}</button>
<button type="button" onclick="submeterFormEdit('{{ $natureza->id }}')" class="btn btn-primary">{{__('Salvar')}}</button>
</div> </div>
</div> </div>
</div> </div>
...@@ -108,7 +146,7 @@ ...@@ -108,7 +146,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">{{__('Não')}}</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">{{__('Não')}}</button>
<a href="{{ route('natureza.deletar', ['id' => $natureza->id]) }}" type="button" onclick="submeterFormDel('{{ $natureza->id }}')" class="btn btn-primary">{{__('Sim')}}</a> <a href="{{ route('natureza.deletar', ['id' => $natureza->id]) }}" type="button" onclick="submeterFormDel('{{ $natureza->id }}')" class="btn btn-danger">{{__('Sim')}}</a>
</div> </div>
</div> </div>
</div> </div>
...@@ -146,6 +184,115 @@ ...@@ -146,6 +184,115 @@
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</div>
</div>
<div class="row" style="margin-top: 30px; margin-bottom: 30px; text-align: center;">
<div class="col-md-2">
</div>
<div class="col-md-7">
<h3 class="titulo-table">{{ __('Funções de participante') }}</h3>
</div>
<div class="col-md-3">
<!-- Button trigger modal -->
<a href="" class="btn btn-info" style="float: right;" data-toggle="modal" data-target="#modalNewFuncao">{{ __('Criar função de participante') }}</a>
</div>
</div>
<div class="row">
<div class="col-md-12">
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Nome</th>
<th scope="col">Data de criação</th>
<th scope="col">Opção</th>
</tr>
</thead>
<tbody>
@foreach ($funcoes as $funcao)
<!-- Modal Editar -->
<div class="modal fade" id="modalEditFuncao{{$funcao->id}}" tabindex="-1" role="dialog" aria-labelledby="modalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content modal-submeta">
<div class="modal-header modal-header-submeta">
<h5 class="modal-title titulo-table" id="exampleModalLongTitle">{{__('Editar função participante')}}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body labels-blue">
<form method="POST" id="formEditFuncao{{$funcao->id}}" action="{{ route('funcao_participante.update', ['id' => $funcao->id]) }}">
@csrf
<label for="">Nome da função do participante <span style="color: red;">*</span></label>
<input type="text" value="{{$funcao->nome}}" class="form-control @error('nome_da_função'.$funcao->id) is-invalid @enderror" name="nome_da_função{{$funcao->id}}" required>
<input type="hidden" name="editFuncao" value="{{$funcao->id}}">
@error('nome_da_função'.$funcao->id)
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</form>
</div>
<div class="modal-footer">
<button type="submit" form="formEditFuncao{{$funcao->id}}" class="btn btn-info" style="width: 100%;">{{__('Salvar')}}</button>
</div>
</div>
</div>
</div>
<!-- Modal Excluir -->
<div class="modal fade" id="modalDelFuncao{{$funcao->id}}" tabindex="-1" role="dialog" aria-labelledby="modalDelFuncaoTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalDelFuncaoTitle">{{__('Deletar função de participante')}}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Tem certeza que deseja deletar a função de {{$funcao->nome}}?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">{{__('Não')}}</button>
<a href="{{ route('funcao_participante.destroy', ['id' => $funcao->id]) }}" type="button" class="btn btn-danger">{{__('Sim')}}</a>
</div>
</div>
</div>
</div>
<tr>
<td>
{{ $funcao->nome }}
</td>
<td>
{{ $funcao->creat_at }}
</td>
<td>
@if ($funcao->participantes->count() <= 0)
<div class="btn-group dropright dropdown-options">
<a id="options" class="dropdown-toggle " data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px">
</a>
<div class="dropdown-menu">
<a data-toggle="modal" data-target="#modalEditFuncao{{$funcao->id}}" class="dropdown-item text-center" style="color: rgb(0, 140, 255);">
{{__('Editar')}}
</a>
<hr class="dropdown-hr">
<a data-toggle="modal" data-target="#modalDelFuncao{{$funcao->id}}" class="dropdown-item dropdown-item-delete text-center" style="color: white;">
<img src="{{asset('img/icons/logo_lixeira.png')}}" alt="">{{__('Deletar')}}
</a>
</div>
</div>
@else
<div style="float: right;">
Fixada em participantes
</div>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div> </div>
@endsection @endsection
...@@ -161,4 +308,18 @@ ...@@ -161,4 +308,18 @@
form.submit(); form.submit();
} }
</script> </script>
@if(old('newFuncao') != null)
<script>
$(document).ready(function () {
$('#modalNewFuncao').modal('show');
});
</script>
@endif
@if(old('editFuncao') != null)
<script>
$(document).ready(function () {
$('#modalEditFuncao{{old('editFuncao')}}').modal('show');
});
</script>
@endif
@endsection @endsection
\ No newline at end of file
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
<img src="{{asset('img/icons/edit-regular.svg')}}" class="icon-card" alt=""> <img src="{{asset('img/icons/edit-regular.svg')}}" class="icon-card" alt="">
Editar Editar
</a> </a>
<hr class="dropdown-hr">
<form method="POST" action="{{ route('subarea.deletar', ['id' => $subArea->id]) }}"> <form method="POST" action="{{ route('subarea.deletar', ['id' => $subArea->id]) }}">
{{ csrf_field() }} {{ csrf_field() }}
<button type="submit" class="dropdown-item"> <button type="submit" class="dropdown-item">
......
...@@ -196,6 +196,9 @@ Route::prefix('naturezas')->group(function(){ ...@@ -196,6 +196,9 @@ Route::prefix('naturezas')->group(function(){
Route::post('/subarea/excluir/{id}', 'SubAreaController@destroy' )->name('subarea.deletar')->middleware('checkAdministrador'); Route::post('/subarea/excluir/{id}', 'SubAreaController@destroy' )->name('subarea.deletar')->middleware('checkAdministrador');
Route::post('/subarea/', 'SubAreaController@consulta' )->name('subarea.consulta'); Route::post('/subarea/', 'SubAreaController@consulta' )->name('subarea.consulta');
Route::post('/funcao-participante/store', 'ParticipanteController@storeFuncao' )->name('funcao_participante.store');
Route::post('/funcao-participante/{id}/update', 'ParticipanteController@updateFuncao')->name('funcao_participante.update');
Route::get('/funcao-participante/{id}/destroy', 'ParticipanteController@destroyFuncao')->name('funcao_participante.destroy');
}); });
//############ Evento ############################################## //############ Evento ##############################################
......
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