/** * Decline an invite to join a board * * @param $board * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function declineInvite($board) { $user = auth()->user(); $board = Board::where('identifier', $board)->first(); $decline = Invite::where('board_identifier', $board->identifier)->where('new_member', $user->email)->delete(); return redirect('/boards'); }
/** * Get all tasks in json * Used in vue - /tasks/all_json * * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function getTasksJson(Request $request) { $tasks = Task::where('board_identifier', $request->board)->whereDone(0)->orderBy('created_at', 'desc')->get(); $board = Board::where('identifier', $request->board)->first(); $userCount = $board->users()->get()->count(); if (is_null($tasks)) { return redirect('/boards'); } foreach ($tasks as $task) { if (!is_null($task->assigned_user)) { $task->assignee = User::where('id', $task->assigned_user)->first(); } else { $task->assignee = []; } $task->created_when = $task->created_at->diffForHumans(); $task->user_count = $userCount; } return response()->json($tasks, 200); }
/** * Get all board members as json * Used in vue - /members * * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function getBoardMembers(Request $request) { $board = Board::where('identifier', $request->board)->first(); $boardUsers = $board->users()->where('active', true)->get(); return response()->json($boardUsers); }
/** * Show deleted tasks * * @param $identifier * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View */ public function deletedTasks($identifier) { $user = auth()->user(); $board = Board::where('identifier', $identifier)->first(); $tasks = Task::where('board_identifier', $identifier)->onlyTrashed()->orderBy('deleted_at', 'desc')->paginate(10); foreach ($tasks as $task) { $user = User::find($task->user_id); $task->createdBy = $user->first_name . ' ' . $user->last_name; } if (Gate::allows('isOwner', $board)) { return view('reports.deleted_tasks', compact('board', 'tasks', 'user')); } else { return redirect('/boards'); } }