secondaryWorkspace) { $workspaceTasks = $workspaceTasks->whereHas("details.owners", function ($q) { $q->where("user_id", \Auth::user()->id); }); } $workspaceTasks = $workspaceTasks->where('workspace_id', $workspaceId) ->simplePaginate(5)->appends(request()->input()); return response()->json([ "items" => $workspaceTasks->items(), "paginationLinks" => (String)$workspaceTasks->links() ]); } public function select2(Request $request, $workspaceId) { $workspace = Workspace::findOrFail($workspaceId); $workspaceOwner = \App\WorkspaceOwner::where([ ['workspace_id', $workspaceId], ['user_id', \Auth::user()->id] ])->first() ? true : false || $workspace->user_id === \Auth::user()->id; $task = new WorkspaceTask; if (!$workspaceOwner) { $task = $task->whereHas("details.owners", function ($q) { $q->where("user_id", \Auth::user()->id); }); } if ($request->search) { $task = $task->where("title", "like", "%{$request->search}%"); } if ($request->except) { $task = $task->where('id', '<>', $request->except); } $task = $task->where('workspace_id', $workspaceId)->select( "id", \DB::raw("title as text") ); $task = $task->paginate(10)->appends(request()->input()); return response()->json([ "results" => $task->items(), "pagination" => [ "more" => $request->page < $task->lastPage(), ] ]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'title' => 'required|max:255|unique:workspace_tasks,title,,id,workspace_id,'.$request->workspace_id, 'workspace_id' => 'required', ]); WorkspaceTask::create([ 'title' => $request->title, 'workspace_id' => $request->workspace_id, ]); return response()->json([ 'msg' => 'success' ]); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $workspaceTask = WorkspaceTask::findOrFail($id); return response()->json($workspaceTask); } /** * 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, $id) { $workspaceTask = WorkspaceTask::findOrFail($id); $request->validate([ 'title' => 'required|max:255|unique:workspace_tasks,title,'.$id.',id,workspace_id,'.$request->workspace_id, ]); $workspaceTask->update([ 'title' => $request->title, ]); return response()->json([ 'msg' => 'success' ]); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { WorkspaceTask::destroy($id); return response()->json([ 'msg' => 'success' ]); } public function calendar(Request $request, $id) { $startDate = $request->start; $endDate = $request->end; $workspaceTaskDetail = new WorkspaceTaskDetail; $workspaceTaskDetail = $workspaceTaskDetail->where("workspace_task_id", $id) ->where(function ($q) use ($startDate, $endDate) { $q->whereBetween(\DB::raw("date(start_date)"), [ $startDate, $endDate ])->orWhereBetween(\DB::raw("date(end_date)"), [ $startDate, $endDate ]); })->get(); $schedules = []; foreach ($workspaceTaskDetail as $row) { $start = date('Y-m-d', strtotime($row->start_date)).'T'.date('H:i:s', strtotime($row->start_date)); $end = date('Y-m-d', strtotime($row->end_date)).'T'.date('H:i:s', strtotime($row->end_date)); $schedules[] = (object)array( 'title' => '['.$row->code.'] ' . $row->client->fullname.' | '.$row->client->username, 'start' => $start, 'end' => $end, 'color' => '#64150b', 'textColor' => '#fff', ); } return response()->json($schedules); } }