Sindbad~EG File Manager
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Sugerencia;
use App\Models\User;
use App\Notifications\NuevaNotificacion;
use Auth;
class Sugerencias extends Component{
use WithPagination;
protected $paginationTheme = 'bootstrap';
protected $queryString = ['search' => ['except' => '']];
public $search='';
public $sugerencia_id,$titulo,$sugerencia;
public $updateMode = 0;
public function render(){
$sugerencias = Sugerencia::where('titulo','LIKE','%'.$this->search.'%')->paginate(20);
return view('livewire.sugerencias.index',["sugerencias"=>$sugerencias]);
}
private function resetInputFields(){
$this->sugerencia_id = '';
$this->titulo = '';
$this->emit('sugerencia', '');
}
public function store(){
$validatedDate = $this->validate([
'titulo' => 'required',
'sugerencia' => 'required'
],
[
'titulo.required' => 'El campo Titulo es requerido',
'sugerencia.required' => 'El campo sugerencia es requerido',
]);
$post = Sugerencia::create([
'titulo' => $this->titulo,
'sugerencia' => $this->sugerencia,
]);
User::all()
->each(function(User $user) use ($post){
$user->notify(new NuevaNotificacion([
'url' => '/e-learning/sugerencias?search='.$post->titulo,
'titulo' => $post->titulo,
'descripcion' => 'Nueva sugerencia agregada',
]));
});
$this->emit('alert', ['type' => 'success', 'message' => 'Sugerencia agregada correctamente!']);
$this->resetInputFields();
}
public function edit($id){
$this->updateMode = 2;
$sugerencia= Sugerencia::find($id);
$this->sugerencia_id = $id;
$this->titulo = $sugerencia->titulo;
$this->emit('sugerencia', $sugerencia->sugerencia);
}
public function crear(){
$this->updateMode = 1;
$this->resetInputFields();
}
public function cancel(){
$this->updateMode = 0;
$this->resetInputFields();
}
public function update(){
$validatedDate = $this->validate([
'titulo' => 'required',
'sugerencia' => 'required'
],
[
'titulo.required' => 'El campo Titulo es requerido',
'sugerencia.required' => 'El campo sugerencia es requerido',
]);
if ($this->sugerencia_id) {
$sugerencia= Sugerencia::find($this->sugerencia_id);
$sugerencia->update([
'titulo' => $this->titulo,
'sugerencia' => $this->sugerencia,
]);
$this->updateMode = 0;
$this->emit('alert', ['type' => 'info', 'message' => 'Sugerencia actualizada correctamente!']);
$this->resetInputFields();
}
}
public function delete($id){
if($id){
$sugerencia= Sugerencia::find($id);
$sugerencia->delete();
$this->emit('alert', ['type' => 'error', 'message' => 'Sugerencia eliminada correctamente!']);
}
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists