Sindbad~EG File Manager
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Models\Empresa;
use App\Models\Matricula;
use App\Models\User;
use Livewire\WithPagination;
use DB;
use Illuminate\Support\Facades\Hash;
class Usuario extends Component{
public $empresa_id,$name,$email,$password,$usuario_id,$puesto,$ingreso,$ingresocargo,$area;
use WithPagination;
protected $paginationTheme = 'bootstrap';
public $search='';
public $updateMode = false;
public function render(){
$empresa = Empresa::findOrFail($this->empresa_id);
$usuarios = DB::table('matriculas as m')
->join('users as u','m.usuario_id','u.id')
->select('u.*','m.id as matricula_id')
->where('m.empresa_id',$this->empresa_id)
->where('u.name','LIKE','%'.$this->search.'%')
->paginate(20);
return view('livewire.usuario.index',["empresa"=>$empresa,"usuarios"=>$usuarios ]);
}
private function resetInputFields(){
$this->name = '';
$this->email = '';
$this->password = '';
$this->puesto = '';
$this->ingreso = '';
$this->ingresocargo = '';
$this->area = '';
}
public function edit($id){
$this->updateMode = true;
$usuario = User::where('id',$id)->first();
$this->name = $usuario->name;
$this->email = $usuario->email;
$this->usuario_id = $usuario->id;
$this->puesto = $usuario->puesto;
$this->ingreso = $usuario->ingreso;
$this->ingresocargo = $usuario->ingresocargo;
$this->area = $usuario->area;
}
public function cancel(){
$this->updateMode = false;
$this->resetInputFields();
}
public function update(){
$validatedDate = $this->validate([
'name' => 'required',
'email' => 'required',
]);
if ($this->usuario_id) {
$usuario = User::find($this->usuario_id);
if ($this->password) {
$usuario->update([
'name' => $this->name,
'email' => $this->email,
'password' => Hash::make($this->password),
'puesto' => $this->puesto,
'ingreso' => $this->ingreso,
'area' => $this->area,
'ingresocargo' => $this->ingresocargo,
]);
}else{
$usuario->update([
'name' => $this->name,
'email' => $this->email,
'puesto' => $this->puesto,
'ingreso' => $this->ingreso,
'area' => $this->area,
'ingresocargo' => $this->ingresocargo,
]);
}
$this->updateMode = false;
session()->flash('message', 'Usuario actualizado correctamente');
$this->resetInputFields();
}
}
public function delete($matricula_id){
if($matricula_id){
$usuario = Matricula::find($matricula_id);
$usuario->delete();
session()->flash('message', 'Usuario eliminado correctamente');}
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists