SliderRepository.php 2.59 KB
Newer Older
1 2 3 4 5
<?php

namespace App\Repositories\Webprofile;

use App\Models\Webprofile\Slider;
6
use App\Repositories\StorageRepository;
7
use Illuminate\Support\Str;
8
use DataTables;
9
use Storage;
10

11
class SliderRepository extends StorageRepository
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
{
    protected $model;

    public function __construct(Slider $model)
    {
        $this->model = $model;
    }

    public function get($with = null, $title = null, $orderBy = null)
    {
        return $this->model
            ->when($with, function ($query) use ($with) {
                return $query->with($with);
            })
            ->when($title, function ($query) use ($title) {
                return $query->where('title', 'ilike', '%' . $title . '%');
            })
            ->when($orderBy, function ($query) use ($orderBy) {
                return $query->orderBy($orderBy[0], $orderBy[1]);
            })
            ->get();
    }

    public function datatable($data)
    {
37 38
        $setting = webprofilesetting();

39 40 41
        return DataTables::of($data)
            ->addIndexColumn()
            ->addColumn('action', function ($row) {
42
                $btn = '<a href="' . url('/webprofile/sliders/' . $row->id . '/edit') . '" data-toggle="tooltip"  data-id="' . $row->id . '" data-original-title="' . trans('label.edit') . '" class="edit btn btn-warning btn-round btn-sm edit">' . trans('label.editsemuabahasa') . '</a>';
43

44
                $btn = $btn . ' <a href="javascript:void(0)" data-toggle="tooltip"  data-id="' . $row->id . '" data-original-title="' . trans('label.delete') . '" class="btn btn-danger btn-round btn-sm delete">' . trans('label.delete') . '</a>';
45 46 47 48 49

                $btn = $btn . '<br>';

                return $btn;
            })
50 51
            ->addColumn('slider', function ($row) use ($setting) {
                if ($setting['external_storage'] == 1) {
52
                    $str = '<img src="'. $setting['url_static'] . '/' . $setting['directory'] . '/slider/' . $row->slider . '" height="100" width="auto">';
53
                } else {
54
                    $str = '<img src="'. url('/storage/slider/' . $row->slider) . '" height="100" width="auto">';
55 56 57 58
                }

                return $str;
            })
59 60 61 62 63 64 65 66
            ->addColumn('status', function ($row) {
                if ($row->is_active == true) {
                    $str = '<div style="color: green;"><i class="fa fa-check"></i></div>';
                } else {
                    $str = '<div style="color: red;"><i class="fa fa-times"></i></div>';
                }
                return $str;
            })
67
            ->rawColumns(['action', 'status', 'slider'])
68 69 70
            ->make(true);
    }
}