search) { $workspaceTaskStatuses = $workspaceTaskStatuses->where("name", "like", "{$request->search}%"); } $workspaceTaskStatuses = $workspaceTaskStatuses->simplePaginate(5)->appends(request()->input()); return response()->json([ "items" => $workspaceTaskStatuses->items(), "paginationLinks" => (String)$workspaceTaskStatuses->links() ]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'name' => 'required|max:255|unique:workspace_task_statuses,name', 'text_color' => 'required|max:255', 'bg_color' => 'required|max:255', ]); WorkspaceTaskStatus::create([ 'name' => $request->name, 'text_color' => $request->text_color, 'bg_color' => $request->bg_color, ]); return response()->json([ 'msg' => 'success' ]); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $workspaceTaskStatus = WorkspaceTaskStatus::findOrFail($id); return response()->json($workspaceTaskStatus); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $workspaceTaskStatus = WorkspaceTaskStatus::findOrFail($id); $request->validate([ 'name' => 'required|max:255|unique:workspace_task_statuses,name,'.$id.',id', 'text_color' => 'required|max:255', 'bg_color' => 'required|max:255', ]); $workspaceTaskStatus->update([ 'name' => $request->name, 'text_color' => $request->text_color, 'bg_color' => $request->bg_color, ]); return response()->json([ 'msg' => 'success' ]); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { WorkspaceTaskStatus::destroy($id); return response()->json([ 'msg' => 'success' ]); } public function select2(Request $request) { $status = new WorkspaceTaskStatus; if ($request->search) { $status = $status->where("name", "like", "%{$request->search}%"); } $status = $status->select( "id", \DB::raw("name as text") )->paginate(10)->appends(request()->input()); return response()->json([ "results" => $status->items(), "pagination" => [ "more" => $request->page < $status->lastPage(), ] ]); } }