Sindbad~EG File Manager
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Matricula;
use App\Models\User;
use App\Models\Equipo;
use DB;
use Image, file;
use Livewire\WithFileUploads;
use Illuminate\Support\Facades\Hash;
class Asignaciones extends Component{
use WithPagination;
use WithFileUploads;
protected $queryString = ['buscar' => ['except' => '']];
protected $paginationTheme = 'bootstrap';
public $buscar='';
public $equipo_id,$usuario,$rango,$matricula_id,$equipo_id2,$foto,$fotoactual,$password,$password_confirmation;
public $updateMode = false;
public function render(){
$matriculas=DB::table('matriculas as m')
->join('users as u','m.usuario_id','u.id')
->join('equipos as e','m.equipo_id','e.id')
->select('m.*','u.name','e.nombre')
->where('m.equipo_id',$this->equipo_id)
->where('e.nombre','LIKE',"%{$this->buscar}%")->paginate(50);
$equipos = Equipo::where('estado',1)->get();
return view('livewire.asignaciones',["matriculas" => $matriculas,"equipos" => $equipos]);
}
public function delete($id)
{
if($id){
$matricula = Matricula::find($id);
$matricula->delete();
$this->emit('alert', ['type' => 'error', 'message' => '¡La matriculación se elimino correctamente.!']);
}
}
private function resetInputFields(){
$this->usuario = '';
$this->equipo_id2 = '';
$this->rango = '';
$this->matricula_id = '';
$this->foto = '';
$this->fotoactual = '';
$this->password = '';
$this->password_confirmation = '';
}
public function edit($id)
{
$this->updateMode = true;
$matri = Matricula::where('id',$id)->first();
$usuario = User::where('id',$matri->usuario_id)->first();
$this->usuario = $usuario->name;
$this->equipo_id2 = $matri->equipo_id;
$this->rango = $matri->rango;
$this->matricula_id = $matri->id;
$this->fotoactual=$usuario->foto;
}
public function cancel()
{
$this->updateMode = false;
$this->resetInputFields();
}
public function update(){
$validatedDate = $this->validate(
[
'rango' => 'required',
'equipo_id2' => 'required',
],
[
'rango.required' => 'El campo Rango es requerido',
'equipo_id2.required' => 'El campo Equipo es requerido',
]
);
if ($this->matricula_id) {
if($file = $this->foto) {
$control=0;
$nombre = rand().".".$file->getClientOriginalExtension();
while ($control == 0) {
if (is_file( public_path() . '/images/perfil/' . $nombre )) {
$nombre = rand() . $nombre;
}else{
Image::make($this->foto)
->heighten(1000)
->save(public_path() . '/images/perfil/' . $nombre);
$control=1;
}
}
$matri = Matricula::where('id',$this->matricula_id)->first();
$user=User::findOrFail($matri->usuario_id);
$user->foto=$nombre;
$user->update();
}
$matricula = Matricula::find($this->matricula_id);
$matricula->update([
'rango' => $this->rango,
'equipo_id' => $this->equipo_id2,
]);
$this->updateMode = false;
$this->emit('alert', ['type' => 'success', 'message' => 'Sus datos se guardaron correctamente.']);
$this->emit('cerrarmodal');
$this->resetInputFields();
}
}
public function updatepass(){
$validatedDate = $this->validate([
'password' => 'min:8 required_with:password_confirmation|same:password_confirmation',
'password_confirmation'=> 'required|min:8',
],
[
'password.required' => 'El campo contraseña no puede estar vacio',
'password_confirmation.required' => 'El campo confirmar contraseña no puede estar vacio',
]);
$matri = Matricula::where('id',$this->matricula_id)->first();
$user=User::findOrFail($matri->usuario_id);
$user->update([
'password' => Hash::make($this->password),
]);
$this->emit('alert', ['type' => 'success', 'message' => 'La contraseña se actualizo correctamente.']);
$this->emit('cerrarmodal');
$this->resetInputFields();
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists