Viewing file: DomainController.php (4.86 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Models\Domain; use Illuminate\Http\Request; use App\Models\AdminActivity;
class DomainController extends Controller { public function index(){
return view('admin.domain.index'); }
public function getAll() { $contacts = Domain::select(['id','domain', 'status'])->with('customer')->get(); return datatables()->of($contacts) ->addColumn('action', function ($q) { return '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this domain?" data-action=' . route('admin.domain.delete', [$q->id]) . ' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm">Delete</button>';
}) ->addColumn('customer', function (Domain $q) { $customer=$q->customer->first(); $name=isset($customer)?$customer->fullname:''; return $name; }) ->addColumn('status', function ($q) { $btn=''; if($q->status=='pending') { return '<button class="mr-1 btn btn-sm btn-info" data-message="Are you sure you want to approved this request?" data-action=' . route('admin.domain.status') . ' data-input={"id":"' . $q->id . '","status":"approved"} data-toggle="modal" data-target="#modal-confirm" >Approve</button>' . '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to reject this request ?" data-action=' . route('admin.domain.status') . ' data-input={"id":"' . $q->id . '","status":"rejected"} data-toggle="modal" data-target="#modal-confirm" >Reject</button>'; }else if($q->status=='rejected'){ return '<button class="mr-1 btn btn-sm btn-info" data-message="Are you sure you want to approved this request?" data-action=' . route('admin.domain.status') . ' data-input={"id":"' . $q->id . '","status":"approved"} data-toggle="modal" data-target="#modal-confirm" >Approve</button>'; }else{ return '<button class="mr-1 btn btn-sm btn-success disabled" disabled >Approve</button>'; } }) ->rawColumns(['action','status', 'customer']) ->toJson(); }
public function status(Request $request) { $request->validate([ 'status' => 'required|in:approved,rejected' ]); $domain = Domain::where('id', $request->id)->firstOrFail();
$domain->status = $request->status; $domain->save();
$user = auth()->user();
if ($user->type == 'staff') {
$hasPermission = $user->hasPermissionTo('manage_domains'); if ($hasPermission) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'Domain'; $adminActivity->model_id = $domain->id; $adminActivity->action_type = 'request_response';
$adminActivity->details = "Request Domain #{$domain->id} has {$request->status}";
$adminActivity->save(); } }
return redirect()->route('admin.domain.request')->with('success', 'Domain status successfully changed');
}
public function delete($id){ $domain=Domain::where('id', $id)->firstOrFail();
$user = auth()->user();
if ($user->type == 'staff') {
$hasPermission = $user->hasPermissionTo('manage_domains'); if ($hasPermission) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'Domain'; $adminActivity->model_id = $domain->id; $adminActivity->action_type = 'delete'; $now = now()->format('Y-m-d g:i A');
$adminActivity->details = "Delete Domain #{$domain->id} at {$now}";
$adminActivity->save(); } } $domain->delete(); return redirect()->route('admin.domain.request')->with('success', 'Domain successfully deleted'); } }
|