/** * Get all issues. * * @param \Symfony\Component\HttpFoundation\Request $request * @param \Illuminate\Contracts\Auth\Guard $auth * * @return \Illuminate\Http\JsonResponse */ public function getIssues(Request $request, Guard $auth) { //$issuePosition = $auth->check() ? 0 : 1; $issuePosition = $auth->check() ? 0 : -1; $issues = Issue::where('position', '>=', $issuePosition)->paginate($request->get('per_page', 20)); return $this->paginator($issues, $request); }
/** * Shows the issues view. * * @return \Illuminate\View\View */ public function indexAction() { $state = Request::get('state'); // Issue & Issue Project list. $usedIssueProjects = Issue::where('project_id', '>', 0)->where('state', '=', $state)->groupBy('project_id')->lists('project_id'); $issueProjects = Project::whereIn('id', $usedIssueProjects)->get(); return View::make('dashboard.issues.index')->withIssueProjects($issueProjects)->withPageTitle(trans('dashboard.issues.issues') . ' - ' . trans('dashboard.dashboard')); }
/** * Register model bindings. * * @return void */ protected function registerBindings() { $this->app->router->model('owner', Owner::class, function ($slug) { return Owner::where('slug', $slug)->firstOrFail(); }); $this->app->router->bind('project', function ($slug, $route) { $owner = $route->getParameter('owner'); return Project::where(['owner_id' => $owner->id, 'slug' => $slug])->firstOrFail(); }); $this->app->router->bind('issue', function ($iid, $route) { $project = $route->getParameter('project'); return Issue::where(['project_id' => $project->id, 'iid' => $iid])->firstOrFail(); }); }
/** * Displays the explore page. * * @return \Illuminate\View\View */ public function showIndex() { $today = Date::now(); $startDate = Date::now(); // Check if we have another starting date if (Binput::has('start_date')) { try { // If date provided is valid $oldDate = Date::createFromFormat('Y-m-d', Binput::get('start_date')); // If trying to get a future date fallback to today if ($today->gt($oldDate)) { $startDate = $oldDate; } } catch (Exception $e) { // Fallback to today } } $daysToShow = Setting::get('app_issue_days', 0) - 1; if ($daysToShow < 0) { $daysToShow = 0; $issueDays = []; } else { $issueDays = range(0, $daysToShow); } $dateTimeZone = Setting::get('app_timezone'); $issueVisiblity = Auth::check() ? 0 : 1; $allIssues = Issue::where('visible', '>=', $issueVisiblity)->whereBetween('created_at', [$startDate->copy()->subDays($daysToShow)->format('Y-m-d') . ' 00:00:00', $startDate->format('Y-m-d') . ' 23:59:59'])->orderBy('scheduled_at', 'desc')->orderBy('created_at', 'desc')->get()->groupBy(function (Issue $issue) use($dateTimeZone) { // If it's scheduled, get the scheduled at date. if ($issue->is_scheduled) { return (new Date($issue->scheduled_at))->setTimezone($dateTimeZone)->toDateString(); } return (new Date($issue->created_at))->setTimezone($dateTimeZone)->toDateString(); }); // Add in days that have no issues foreach ($issueDays as $i) { $date = (new Date($startDate))->setTimezone($dateTimeZone)->subDays($i); if (!isset($allIssues[$date->toDateString()])) { $allIssues[$date->toDateString()] = []; } } // Sort the array so it takes into account the added days $allIssues = $allIssues->sortBy(function ($value, $key) { return strtotime($key); }, SORT_REGULAR, true)->all(); return View::make('index')->withDaysToShow($daysToShow)->withAllIssues($allIssues)->withCanPageForward((bool) $today->gt($startDate))->withCanPageBackward(Issue::where('created_at', '<', $startDate->format('Y-m-d'))->count() > 0)->withPreviousDate($startDate->copy()->subDays($daysToShow)->toDateString())->withNextDate($startDate->copy()->addDays($daysToShow)->toDateString()); }
/** * Displays the explore page. * * @return \Illuminate\View\View */ public function indexAction() { $this->subMenu['explore']['active'] = true; $today = Date::now(); $startDate = Date::now(); // Check if we have another starting date if (Request::has('start_date')) { try { // If date provided is valid $oldDate = Date::createFromFormat('Y-m-d', Request::get('start_date')); // If trying to get a future date fallback to today if ($today->gt($oldDate)) { $startDate = $oldDate; } } catch (Exception $e) { // Fallback to today } } $daysToShow = Setting::get('app_issue_days', 0) - 1; if ($daysToShow < 0) { $daysToShow = 0; $issueDays = []; } else { $issueDays = range(0, $daysToShow); } $dateTimeZone = Setting::get('app_timezone'); $allIssues = Issue::whereBetween('created_at', [$startDate->copy()->subDays($daysToShow)->format('Y-m-d') . ' 00:00:00', $startDate->format('Y-m-d') . ' 23:59:59'])->orderBy('created_at', 'desc')->get()->groupBy(function (Issue $issue) use($dateTimeZone) { return (new Date($issue->created_at))->setTimezone($dateTimeZone)->toDateString(); }); // Add in days that have no issues foreach ($issueDays as $i) { $date = (new Date($startDate))->setTimezone($dateTimeZone)->subDays($i); if (!isset($allIssues[$date->toDateString()])) { $allIssues[$date->toDateString()] = []; } } // Sort the array so it takes into account the added days $allIssues = $allIssues->sortBy(function ($value, $key) { return strtotime($key); }, SORT_REGULAR, true)->all(); return View::make('explore.index')->withPageTitle(trans('dashboard.explore'))->withProjects([])->withSubMenu($this->subMenu)->withDaysToShow($daysToShow)->withAllIssues($allIssues)->withCanPageForward((bool) $today->gt($startDate))->withCanPageBackward(Issue::where('created_at', '<', $startDate->format('Y-m-d'))->count() > 0)->withPreviousDate($startDate->copy()->subDays($daysToShow)->toDateString())->withNextDate($startDate->copy()->addDays($daysToShow)->toDateString()); }
/** * Get all issues. * * @param \Symfony\Component\HttpFoundation\Request $request * @param \Illuminate\Contracts\Auth\Guard $auth * * @return \Illuminate\Http\JsonResponse */ public function getIssues(Request $request, Guard $auth) { $issueVisiblity = $auth->check() ? 0 : 1; $issues = Issue::where('visible', '>=', $issueVisiblity)->paginate(Binput::get('per_page', 20)); return $this->paginator($issues, $request); }