Sindbad~EG File Manager

Current Path : /var/www/html/eva.sumar.com.py/app/Http/Livewire/
Upload File :
Current File : /var/www/html/eva.sumar.com.py/app/Http/Livewire/Frontrankings.php

<?php

namespace App\Http\Livewire;

use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Ranking;
use App\Models\Emoticonafteroffice;
use App\Models\Comentarioafteroffice;
use Auth;
use DB;

class Frontrankings extends Component{

    use WithPagination;

    protected $queryString = ['search' => ['except' => '']];

    protected $paginationTheme = 'bootstrap';

    public $not_id,$titulo,$video,$comentario,$comentario_id,$estado = 'emocion',$megusta,$meencanta,$medivierte,$measombra,$meentristece,$meenoja,$emocion;

    public $updateMode = false;

    public $search='';

    public function mount(){
        $primera = Ranking::where('titulo','LIKE','%'.$this->search.'%')->orderBy('id','desc')->first();

        $this->not_id = $primera->id;
        $this->titulo = $primera->titulo;
        $this->video = $primera->video;

        if($emocion = Emoticonafteroffice::where('afteroffice_id',$primera->id)->first()){
            $this->estado = $emocion->emocion;
        }

        $this->megusta = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-gusta')->count();
        $this->meencanta = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-encanta')->count();
        $this->medivierte = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-divierta')->count();
        $this->measombra = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-asombra')->count();
        $this->meentristece = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-entristece')->count();
        $this->meenoja = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-enoja')->count();

    }

    public function render(){

        $afteroffices = Ranking::where('titulo','LIKE','%'.$this->search.'%')->orderBy('id','desc')->paginate(20);

        $emociones = Emoticonafteroffice::where('usuario_id',Auth::user()->id)->get();

        $comentarios = DB::table('comentarioafteroffices as cn')
            ->join('users as u','cn.usuario_id','u.id')
            ->select('cn.*','u.name')
            ->where('afteroffice_id',$this->not_id)->get();

        return view('livewire.frontrankings',["afteroffices"=>$afteroffices,"emociones"=>$emociones,"comentarios"=>$comentarios]);
    }

    private function resetInputFields(){
        $this->comentario = '';
        $this->comentario_id = '';
    }

    public function addemocion($afteroffice_id,$emocion,$estado){
        if($emociondelete = Emoticonafteroffice::where('usuario_id', Auth::user()->id)->where('afteroffice_id',$afteroffice_id)->first()){
            $emociondelete->delete();
        }
        
        if($estado != $emocion){
            Emoticonafteroffice::create([
                'usuario_id' =>  Auth::user()->id,
                'afteroffice_id' => $afteroffice_id,
                'emocion' => $emocion,
            ]);
        }
        $this->estado = $emocion;

        $this->megusta = Emoticonafteroffice::where('afteroffice_id',$afteroffice_id)->where('emocion','me-gusta')->count();
        $this->meencanta = Emoticonafteroffice::where('afteroffice_id',$afteroffice_id)->where('emocion','me-encanta')->count();
        $this->medivierte = Emoticonafteroffice::where('afteroffice_id',$afteroffice_id)->where('emocion','me-divierta')->count();
        $this->measombra = Emoticonafteroffice::where('afteroffice_id',$afteroffice_id)->where('emocion','me-asombra')->count();
        $this->meentristece = Emoticonafteroffice::where('afteroffice_id',$afteroffice_id)->where('emocion','me-entristece')->count();
        $this->meenoja = Emoticonafteroffice::where('afteroffice_id',$afteroffice_id)->where('emocion','me-enoja')->count();
    }

    public function cambiar($id){
        $primera = Ranking::find($id);

        $this->not_id = $primera->id;
        $this->titulo = $primera->titulo;
        $this->video = $primera->video;

        if($emocion = Emoticonafteroffice::where('afteroffice_id',$primera->id)->first()){
            $this->estado = $emocion->emocion;
        }else{
            $this->estado = 'emocion';
        }

        $this->megusta = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-gusta')->count();
        $this->meencanta = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-encanta')->count();
        $this->medivierte = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-divierta')->count();
        $this->measombra = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-asombra')->count();
        $this->meentristece = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-entristece')->count();
        $this->meenoja = Emoticonafteroffice::where('afteroffice_id',$primera->id)->where('emocion','me-enoja')->count();
    }
    public function guardarcomentario(){
        $validatedDate = $this->validate([
            'comentario' => 'required',
        ],
        [
            'comentario.required' => 'El campo comentario es requerido',
        ]);
        Comentarioafteroffice::create([
            'usuario_id' =>  Auth::user()->id,
            'afteroffice_id' => $this->not_id,
            'comentario' => $this->comentario,
        ]);

        $this->updateMode = false;
        $this->resetInputFields();
        $this->emit('alert', ['type' => 'success', 'message' => 'Comentario agregado correctamente.']);

    }

    public function editcomentario($id){

        $comentario = Comentarioafteroffice::find($id);

        $this->comentario_id = $id;
        $this->comentario = $comentario->comentario;

        $this->updateMode = true;
    }

    public function updatecomentario(){

        $validatedDate = $this->validate([
            'comentario' => 'required',
        ],
        [
            'comentario.required' => 'El campo comentario es requerido',
        ]);

        $comentario = Comentarioafteroffice::find($this->comentario_id);

        $comentario->update([
            'usuario_id' =>  Auth::user()->id,
            'comentario' => $this->comentario,
        ]);

        $this->updateMode = false;
        $this->resetInputFields();
        $this->emit('alert', ['type' => 'success', 'message' => 'Comentario editado correctamente.']);
    }

    public function deletecomentario($id){

        $comentario = Comentarioafteroffice::find($id);

        $comentario->delete();

        $this->emit('alert', ['type' => 'error', 'message' => 'Comentario eliminado correctamente.']);
    }
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists