Viewing file: WorkoutPlanController.php (7.67 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\SectionTask; use App\Models\WorkOutPlan; use App\Models\WorkOutPlanSection; use App\Models\WorkOutPlanTask; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str;
class WorkoutPlanController extends Controller { public function index() {
return view('admin.workout_plan.index'); }
public function getAll() {
$WorkOutPlan = WorkOutPlan::orderByDesc('created_at'); return datatables()->of($WorkOutPlan) ->addColumn('title', function ($q) { return $q->title; })
->addColumn('created_at', function ($q) { return $q->created_at->format('d-m-Y'); })
->addColumn('status', function ($q) { if ($q->status == 'active') { $status = '<strong class="text-white bg-success px-2 py-1 rounded status-font-size"> ' . ucfirst($q->status) . ' </strong>'; } else { $status = '<strong class="text-white bg-danger px-2 py-1 rounded status-font-size"> ' . ucfirst($q->status) . ' </strong>'; } return $status; }) ->addColumn('action', function (WorkOutPlan $q) {
$deleteBtn = '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this plan?" data-action=' . route('admin.workout-plan.destroy', [$q]) . ' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm" title="Delete"><i class="fa fa-trash"></i></button>';
return "<a class='btn btn-sm btn-info' href='" . route('admin.workout-plan.edit', [$q->id]) . "' title='Edit'><i class='fa fa-pencil-alt'></i></a>" . ' ' . $deleteBtn; }) ->rawColumns(['action', 'title', 'status', 'price']) ->toJson(); }
public function create() {
return view('admin.workout_plan.create'); }
public function store(Request $request) {
$request->validate([ 'title' => 'required' ]);
DB::beginTransaction();
try {
$workout_plan = new WorkOutPlan(); $workout_plan->title = $request->title; $workout_plan->admin_id = auth()->user()->id; $workout_plan->status = $request->status; $workout_plan->save();
if ($request->section_title) { foreach ($request->section_title as $s_key => $section) { $new_section = new WorkOutPlanSection(); $new_section->plan_id = $workout_plan->id; $new_section->title = $section; $new_section->save();
if ($request->ids && isset($request->ids[$s_key])) {
foreach ($request->ids[$s_key] as $key => $id) {
$new_task = new SectionTask(); $new_task->section_id = $new_section->id; $new_task->task = $id; $new_task->repetation_and_set = isset($request->repetation_and_set[$s_key][$key]) ? $request->repetation_and_set[$s_key][$key] : ''; $new_task->rest_time = isset($request->rest_time[$s_key][$key]) ? $request->rest_time[$s_key][$key] : ''; $new_task->note = isset($request->note[$s_key][$key]) ? $request->note[$s_key][$key] : ''; $new_task->save(); } }
} }
DB::commit(); return redirect()->route('admin.workout-plan.index')->with('success', 'Workout plan successfully created'); } catch (\Exception $ex) { DB::rollBack(); return redirect()->back()->withErrors(['failed' => $ex->getMessage()]); }
}
public function edit(WorkOutPlan $workout_plan) {
$data['workOutPlan'] = $workout_plan; $data['workout_plan'] = $workout_plan;
return view('admin.workout_plan.edit', $data); } public function update(WorkOutPlan $workout_plan, Request $request) {
$request->validate([ 'title' => 'required' ]);
DB::beginTransaction();
try {
$workout_plan->title = $request->title; $workout_plan->admin_id = auth()->user()->id; $workout_plan->status = $request->status; $workout_plan->save();
if ($request->section_title) {
if ($workout_plan->sections) {
foreach ($workout_plan->sections as $section) { if ($section->tasks) { $section->tasks()->delete(); } } $workout_plan->sections()->delete(); }
foreach ($request->section_title as $s_key => $section) { $new_section = new WorkOutPlanSection(); $new_section->plan_id = $workout_plan->id; $new_section->title = $section; $new_section->save();
if ($request->ids && isset($request->ids[$s_key])) {
foreach ($request->ids[$s_key] as $key => $id) {
$new_task = new SectionTask(); $new_task->section_id = $new_section->id; $new_task->task = $id; $new_task->repetation_and_set = isset($request->repetation_and_set[$s_key][$key]) ? $request->repetation_and_set[$s_key][$key] : ''; $new_task->rest_time = isset($request->rest_time[$s_key][$key]) ? $request->rest_time[$s_key][$key] : ''; $new_task->note = isset($request->note[$s_key][$key]) ? $request->note[$s_key][$key] : ''; $new_task->save(); } }
} }
DB::commit(); return redirect()->route('admin.workout-plan.index')->with('success', 'Workout plan successfully updated'); } catch (\Exception $ex) { DB::rollBack(); return redirect()->back()->withErrors(['failed' => $ex->getMessage()]); }
}
public function destroy(WorkOutPlan $workout_plan) {
if ($workout_plan->sections) { foreach ($workout_plan->sections as $section) { if ($section->tasks) { $section->tasks()->delete(); } } $workout_plan->sections()->delete(); }
$workout_plan->delete();
return redirect()->route('admin.workout-plan.index')->with('success', trans('Plan successfully deleted')); } public function search_workout_plan(Request $request) { try { $request->validate([ 'input_text' => 'required', ]); if ($request->input_text) { $workout_plan_task = WorkOutPlanTask::where('name', 'like', "%{$request->input_text}%")->get();
} else { $workout_plan_task = WorkOutPlanTask::select('name', 'id')->get(); }
return response()->json(['message' => 'Status change successfully.', 'status' => 'success', 'data' => $workout_plan_task]); } catch (\Exception $e) { return response()->json(['message' => 'Error, Something wrong.', 'status' => 'failed']); } } }
|