/** * Returns <option> tag with appropriate value and select attribute for the specified limit amount * * @param string $currentPath * @param int $optionTagLimit * @return string */ public static function optionTag($currentPath, $optionTagLimit) { $routeParameters = array_merge(['page' => 1, 'limit' => $optionTagLimit], Request::except('page', 'limit')); $htmlTag = '<option value="' . RoutePresenter::withParam($currentPath, $routeParameters) . '" '; $currentLimit = (int) Request::input('limit', 10); if ($optionTagLimit === $currentLimit) { $htmlTag .= 'selected '; } return $htmlTag . '>' . $optionTagLimit . '</option>'; }
/** * @param \Illuminate\Http\Request $request * @param string $currentPath * @return boolean */ private function beforeMiddleware($request, $currentPath) { $storedSearchQuery = LookInStorage::forSearch($request, $currentPath); $storedPageNumber = LookInStorage::forPage($request, $currentPath); $storedPerPage = LookInStorage::forLimit($request, $currentPath); $shouldRedirect = (bool) $storedSearchQuery || (bool) $storedPageNumber || (bool) $storedPerPage; if ($shouldRedirect) { $redirectParameters = LookInStorage::forRedirectParameters($request->all(), $storedSearchQuery, $storedPageNumber, $storedPerPage); $this->redirectRoute = RoutePresenter::withParam($currentPath, $redirectParameters); } return $shouldRedirect; }
/** * Returns current uri with params for sorting by the specified property * * @param string $currentPath * @param string $currentSortFieldName * @param boolean $currentSortIsAscending * @param string $columnName * @return string */ public static function anchorTagLink($currentPath, $currentSortFieldName, $currentSortIsAscending, $columnName) { $linkSortsAscending = $currentSortFieldName === $columnName ? !$currentSortIsAscending : false; $routeParameters = array_merge(['sortedBy' => $columnName, 'asc' => $linkSortsAscending], Request::except('sortedBy', 'asc')); return RoutePresenter::withParam($currentPath, $routeParameters); }