HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/agile-selling-wpb/app/Http/Controllers/PopupEmbedController.php
<?php

namespace App\Http\Controllers;

use App\TypeAction;
use App\PopupEmbed;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\ImageManagerStatic as Image;
use DB;
use Datatables;

class PopupEmbedController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('popup_embed.popup');
    }

    public function indexAdd()
    {
        $typeActions = TypeAction::where('active', true)->get();
        return view('popup_embed.addPopup', compact('typeActions'));
    }

    public function indexEdit($id)
    {
      $popup = PopupEmbed::find($id);
      $typeActions = TypeAction::where('active', true)->get();
      return view('popup_embed.editPopup',compact('typeActions','popup'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create(Request $request)
    {
        $popup = PopupEmbed::create($request->all());
        if($popup){
          return array('r' => true, 'd' => array('id'=>$popup->id), 'm'=> trans('messages.screen_popup_tag14'));
        }else{
          return array('r' => false, 'd' => null, 'm'=> trans('messages.screen_popup_tag15'));
        }
    }

    public function saveImage(Request $request){
        $id = $request->id;
        $extension = $request->file('image')->getClientOriginalExtension();
        $filenametostore = $id.'.'.$extension;
        Storage::disk('s3')->put(env('S3_POPUPS_PATH').$filenametostore, fopen($request->file('image'), 'r+'), 'public');

        $status = PopupEmbed::where('id', $id)->update(['image' => $filenametostore]);
        if ($status) {
          return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_popup_tag14'));
        }else{
          return array('r' => false,'d' => null, 'm'=> trans('messages.screen_popup_tag15'));
        }
     }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request)
    {
      if (PopupEmbed::where('id', $request["popup_id"])->update(array_slice($request->all(), 1))) {
        return array('r' => true, 'd' => array('id' => $request["popup_id"]), 'm'=> trans('messages.screen_popup_tag16'));
      }else{
        return array('r' => false,'d' => null, 'm'=> trans('messages.screen_popup_tag17'));
      }
    }

    public function updateImage(Request $request){
        $id = $request->id;
        $extension = $request->file('image')->getClientOriginalExtension();
        $filenametostore = $id.'.'.$extension;
        Storage::disk('s3')->put(env('S3_POPUPS_PATH').$filenametostore, fopen($request->file('image'), 'r+'), 'public');
        $status = PopupEmbed::where('id', $id)->update(['image' => $filenametostore]);
        if ($status) {
          return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_popup_tag16'));
        }else{
          return array('r' => false,'d' => null, 'm'=> trans('messages.screen_popup_tag17'));
        }
     }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($popup_id)
    {
        if (PopupEmbed::where('id', $popup_id)->delete()) {
            return response(array("r" => true, "type" => "success", "title" => "", "m" => __('messages.deleted_successfully'), "data" => null));
        } else {
            return response(array("r" => false, "type" => "error", "title" => "Oops...", "m" => __('messages.error_removing'), "data" => null));
        }
    }

    public function activatePopup(Request $request){
      $id= $request['id'];
      $state=  $request['state'];

      $popup = PopupEmbed::find($id);
      $popup->active = $state;
      $popup->update();

      if ($popup) {
        return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_popup_tag18'));
      }else{
        return array('r' => false,'d' => null, 'm'=> trans('messages.screen_popup_tag19'));
      }
  }


    public function tableFilter(){
        $obj = $obj = PopupEmbed::select('id','title','msj','type_action_id','value','text_button_ok','image','active')->with('type_action');

        return Datatables::of($obj)
        ->editColumn('image', function($obj){
            return '
            <div class="media-left">
              <img src="'.env('AWS_URL').'/popups/'.$obj->image.'" class="media-object">
             </div>
            ';
        })
        ->editColumn('active', function ($obj) {
             if($obj->active == 0){
                return '<div class="switch"><label><div class="checkbox checbox-switch switch-success"> <label> No <input type="checkbox" onChange="chkPopup('.$obj->id.')" data-id="'.$obj->id.'" id="Checkactive'.$obj->id.'" name="Checkactivo" /> <span></span>Si </label></div> </label> </div>';
            }else{
                return '<div class="switch"><label> <div class="checkbox checbox-switch switch-success"> <label>   No <input type="checkbox" onChange="chkPopup('.$obj->id.')" data-id="'.$obj->id.'" id="Checkactive'.$obj->id.'" name="Checkactivo" checked="" />
                        <span></span> Si </label> </div>  </label> </div>';
            }
        })
        ->addColumn('actions', function ($obj) {
            return '
               <i class="fa fa-pencil iconMini " onClick="clickEditPopup('.$obj->id.')" data-id="'.$obj->id.'" data-toggle="tooltip" data-placement="bottom" title="Editar" style="cursor:pointer;"></i>
               <i class="fa fa-trash iconMini " onClick="clickDeletePopup('.$obj->id.')" data-id="'.$obj->id.'" data-toggle="tooltip" data-placement="bottom" title="Eliminar" style="cursor:pointer;"></i>
            ';

        })
        ->rawColumns([ 'active','actions','image'])
        ->make(true);
    }
}