103 lines
2.3 KiB
PHP
103 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Livewire;
|
|
use App\Models\Role;
|
|
use Livewire\Component;
|
|
use Jantinnerezo\LivewireAlert\LivewireAlert;
|
|
|
|
class ShowRoles extends Component
|
|
{
|
|
use LivewireAlert;
|
|
public $editar= false;
|
|
public $nombre;
|
|
public $add;
|
|
public $ro;
|
|
|
|
public function render()
|
|
{
|
|
|
|
|
|
$consulta_roles = Role::withCount('usuarios')->get();
|
|
//dd($consulta_roles);
|
|
return view('livewire.show-roles',['roles'=>$consulta_roles]);
|
|
}
|
|
|
|
public function editar($id){
|
|
$this->nombre = Role::find($id)->nombre;
|
|
$this->ro = $id;
|
|
$this->editar = true;
|
|
}
|
|
|
|
public function crear(){
|
|
if (!empty($this->nombre)) {
|
|
$crear_rol = new Role;
|
|
$crear_rol->nombre = $this->nombre;
|
|
$crear_rol->save();
|
|
|
|
$this->alert('success', 'Rol creado correctamente!', [
|
|
'position' => 'top'
|
|
]);
|
|
$this->add = false;
|
|
}else{
|
|
$this->alert('warning', 'Campo Nombre sin diligenciar!', [
|
|
'position' => 'top'
|
|
]);
|
|
}
|
|
|
|
}
|
|
|
|
public function eliminar($id)
|
|
{
|
|
$this->ro = $id;
|
|
$this->alert('warning', '¿Eliminar rol?', [
|
|
'position' => 'center',
|
|
'timer' => '10000',
|
|
'toast' => false,
|
|
'text' => 'Esta seguro',
|
|
'showConfirmButton' => true,
|
|
'onConfirmed' => 'confirmed',
|
|
'showDenyButton' => false,
|
|
'onDenied' => '',
|
|
'showCancelButton' => true,
|
|
'onDismissed' => '',
|
|
'cancelButtonText' => 'Salir',
|
|
'confirmButtonText' => 'Si',
|
|
]);
|
|
}
|
|
|
|
public function getListeners()
|
|
{
|
|
return [
|
|
'confirmed'
|
|
];
|
|
}
|
|
|
|
public function confirmed()
|
|
{
|
|
$eliminar= Role::find($this->ro)->delete();
|
|
$this->alert('success', 'Rol eliminado!', [
|
|
'position' => 'top'
|
|
]);
|
|
}
|
|
|
|
|
|
public function limpiarInputAdd(){
|
|
$this->editar= false;
|
|
$this->add = false;
|
|
|
|
}
|
|
|
|
public function actualizar(){
|
|
$eliminar= Role::find($this->ro);
|
|
//dd($eliminar);
|
|
$eliminar->update(['nombre'=>$this->nombre]);
|
|
|
|
$this->alert('success', 'Rol actualizado!', [
|
|
'position' => 'top'
|
|
]);
|
|
|
|
$this->editar=false;
|
|
|
|
}
|
|
}
|