Skip to content

Commit

Permalink
fix #82 e reorganiza as views de user
Browse files Browse the repository at this point in the history
  • Loading branch information
masakik committed Oct 15, 2020
1 parent cd591c1 commit 3af69f7
Show file tree
Hide file tree
Showing 7 changed files with 196 additions and 34 deletions.
74 changes: 40 additions & 34 deletions app/Http/Controllers/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,6 @@ class UserController extends Controller
{
use ResourceTrait;

protected $model = 'App\Models\User';

protected $data = [
'title' => 'Usuários',
'url' => 'users', // caminho da rota do resource
'showId' => true, // default true
'editBtn' => false, // default true
'modal' => false, // default false
];

public function __construct()
{
$this->middleware('auth');
Expand All @@ -29,11 +19,12 @@ public function __construct()
*
* @return \Illuminate\Http\Response
*/
// public function index()
// {
// $users = User::all();
// return view('users.index')->with('users', $users);
// }
public function index()
{
$this->authorize('admin');
$users = User::all();
return view('users.index')->with('users', $users);
}

/**
* Show the form for creating a new resource.
Expand All @@ -42,6 +33,7 @@ public function __construct()
*/
public function create()
{
$this->authorize('admin');
return view('users.create');
}

Expand All @@ -53,7 +45,8 @@ public function create()
*/
public function store(Request $request)
{
User::storeByCodpes($request->numero_usp);
$this->authorize('admin');
User::storeByCodpes($request->codpes);
$request->session()->flash('alert-info', 'Atendente adicionado com sucesso');
return redirect('/users');
}
Expand All @@ -64,21 +57,21 @@ public function store(Request $request)
* @param int $id
* @return \Illuminate\Http\Response
*/
// public function show($id)
// {
// //
// }
public function show($id)
{
//
}

/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
// public function edit($id)
// {
// //
// }
public function edit($id)
{
//
}

/**
* Update the specified resource in storage.
Expand All @@ -87,10 +80,10 @@ public function store(Request $request)
* @param int $id
* @return \Illuminate\Http\Response
*/
// public function update(Request $request, $id)
// {
// //
// }
public function update(Request $request, $id)
{
//
}

/**
* Remove the specified resource from storage.
Expand All @@ -100,17 +93,19 @@ public function store(Request $request)
*/
public function destroy(Request $request, $id)
{
$user = $this->model::find($id);
$this->authorize('admin');
$user = User::find($id);
$user->delete();
$request->session()->flash('alert-success', 'Dados removidos com sucesso!');
return redirect('/' . $this->data['url']);
return back();
}

public function partenome(Request $request)
{
$this->authorize('admin');
if ($request->term) {
$pessoas = \Uspdev\Replicado\Pessoa::nomeFonetico($request->term);
// limitando a resposta em 50 elementos
$pessoas = array_slice($pessoas, 0, 50);

// formatando para select2
Expand All @@ -121,9 +116,7 @@ public function partenome(Request $request)
'id' => $pessoa['codpes'],
];
}
$out['results'] = $results;
// limitando a resposta em 50 elementos
return response($out);
return response(compact('results'));
}
}

Expand All @@ -135,13 +128,26 @@ public function trocarPerfil(Request $request, $perfil)
session(['is_admin' => 0]);
$request->session()->flash('alert-info', 'Perfil mudado para Usuário com sucesso.');
break;

case 'atendente':
break;

case 'admin':
session(['is_admin' => 1]);
$request->session()->flash('alert-info', 'Perfil mudado para Admin com sucesso.');
break;
}
return back();
echo $perfil;
}

/**
* Permite assumir a identidade de outro usuário
*/
public function assumir(User $user)
{
$this->authorize('admin');

\Auth::login($user, true);
return redirect('/');
}
}
8 changes: 8 additions & 0 deletions resources/views/partials/btn-delete.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{{-- Form de deletar --}}
<form method="POST" action="{{url()->current()}}/{{$row->id}}" class="form-inline pull-left">
@csrf
@method('delete')
<button type="submit" class="btn btn-light text-danger py-0 px-0 delete-item" data-toggle="tooltip" title="Remover">
<i class="far fa-trash-alt"></i>
</button>
</form>
51 changes: 51 additions & 0 deletions resources/views/partials/datatable-list.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?php #dd($data); ?>

{{-- enviar $row, $model ['name', 'label'] --}}

<table class="table table-striped table-sm table-hover datatable-nopagination">
<thead>
<tr>
@foreach ($fields as $col)
<th>{{ $col['label'] ?? $col['name'] }}</th>
@endforeach

<th>&nbsp;</th>
</tr>
</thead>
<tbody>
@foreach ($rows as $row)
<tr>

@foreach ($fields as $col)
<td>@include('common/list-table-col-value')</td>
@endforeach

<td style="width: 40px;">
<div class="row">
<div class="mr-2 form-inline">
@foreach($btns as $btn)
@include($btn)
@endforeach
</div>
</div>
</td>

</tr>
@endforeach
</tbody>
</table>

@section('javascripts_bottom')
@parent
<script>
$(document).ready(function() {
oTable = $('.datatable-nopagination').DataTable({
dom: 'ti'
, "paging": false
});
})
</script>
@endsection
23 changes: 23 additions & 0 deletions resources/views/users/index.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
@extends('master')

<?php #dd($data) ?>
<?php
$rows = $users;
$fields = \App\Models\User::getFields();
?>
@section('content')
@parent

<div class="row">
<div class="col-md-12 form-inline">

<span class="h4 mt-2">Usuários</span>
@include('partials.datatable-filter-box')
@include('users.partials.btn-add-modal')

</div>
</div>

@include('partials.datatable-list', ['btns'=>['users.partials.btn-change-user','partials.btn-delete']])

@endsection
68 changes: 68 additions & 0 deletions resources/views/users/partials/btn-add-modal.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<button type="button" class="btn btn-sm btn-success" onclick="add_modal_form()">
<i class="fas fa-plus"></i> Novo
</button>

<!-- Modal -->
<div class="modal fade" id="common-modal-form" data-backdrop="static" tabindex="-1" aria-labelledby="modalPortariaLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalPortariaLabel">Adicionar pessoas</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">

<div class="list_table_div_form">
{!! Form::open( ['url'=>'users']) !!}
@method('POST')
@csrf

<div class="form-group row">
{{ Form::label('codpes', 'Nome', ['class' => 'col-form-label col-sm-2']) }}
<div class="col-sm-10">
{{ Form::select('codpes',[], null,['class' => 'form-control', 'placeholder'=>'Digite nome ..']) }}
</div>
</div>

<div class="text-right">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button>
<button type="submit" class="btn btn-primary">Salvar</button>
</div>
{!! Form::close(); !!}
</div>

</div>
</div>
{{-- <div class="modal-footer"></div> --}}
</div>
</div>

@section('javascripts_bottom')
@parent
<script>
$(document).ready(function() {
var pessoasForm = $('#common-modal-form');
add_modal_form = function() {
pessoasForm.modal();
}
pessoasForm.find(':input[name=codpes]').select2({
ajax: {
url: 'search/partenome'
, dataType: 'json'
}
, dropdownParent: pessoasForm
, minimumInputLength: 4
, theme: 'bootstrap4'
, wdth: 'resolve'
, language: 'pt_br'
})
})
</script>
@endsection
5 changes: 5 additions & 0 deletions resources/views/users/partials/btn-change-user.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<a href="users/{{$row['id']}}/assumir" class="btn btn-sm btn-light"
data-toggle="tooltip"
title="Assumir a identidade do usuário">
<i class="fas fa-user-nurse"></i>
</a>
1 change: 1 addition & 0 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

Route::resource('users', UserController::class);
Route::get('users/perfil/{perfil}', [UserController::class, 'trocarPerfil']);
Route::get('users/{user}/assumir', [UserController::class, 'assumir']);

/**/
Route::get('chamados/create', [ChamadoController::class, 'listaFilas']);
Expand Down

0 comments on commit 3af69f7

Please sign in to comment.