caio.co/de/cerberus

Update to Tablier 0.2.3

Error pages now look like Index. No more ZeroResults pages.

This patch contains whitespace changes, the `-w` switch should show
how trivial it actually really is.
Id
a7afd257e02e87a8effeb40b988d57f5143ec750
Author
Caio
Commit time
2019-02-25T15:17:43+01:00

Modified pom.xml

@@ -38,7 +38,7
<resilience4j.version>0.13.2</resilience4j.version>
<chronicle.version>3.17.0</chronicle.version>
<jsoup.version>1.11.3</jsoup.version>
- <tablier.version>0.2.2</tablier.version>
+ <tablier.version>0.2.3</tablier.version>
<mockito.version>2.24.5</mockito.version>
</properties>

Modified src/main/java/co/caio/cerberus/boot/ModelView.java

@@ -14,7 +14,6
import co.caio.tablier.view.Index;
import co.caio.tablier.view.Recipe;
import co.caio.tablier.view.Search;
-import co.caio.tablier.view.ZeroResults;
import com.fizzed.rocker.RockerModel;
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
import java.util.List;
@@ -78,43 +77,41
.searchValue(query.fulltext().orElse(""))
.build();

- if (result.totalHits() == 0) {
- return ZeroResults.template(siteInfo);
- } else if (query.offset() >= result.totalHits()) {
+ if (query.offset() >= result.totalHits() && result.totalHits() > 0) {
throw new OverPaginationError("No more results to show for this search");
- } else {
- boolean isLastPage = query.offset() + pageSize >= result.totalHits();
- int currentPage = (query.offset() / pageSize) + 1;
-
- var recipeGoUriComponents =
- uriBuilder.cloneBuilder().replacePath(GO_SLUG_ID_PATH).encode().build();
-
- var searchBuilder =
- new SearchResultsInfo.Builder()
- .paginationStart(query.offset() + 1)
- .paginationEnd(result.recipes().size() + query.offset())
- .numMatching(result.totalHits());
-
- if (!isLastPage) {
- searchBuilder.nextPageHref(
- uriBuilder.replaceQueryParam("page", currentPage + 1).build().toUriString());
- }
-
- if (currentPage != 1) {
- searchBuilder.previousPageHref(
- uriBuilder.replaceQueryParam("page", currentPage - 1).build().toUriString());
- }
-
- searchBuilder.recipes(renderRecipes(result.recipes(), recipeGoUriComponents));
-
- // Sidebar links always lead to the first page
- uriBuilder.replaceQueryParam("page");
- searchBuilder.sidebar(sidebarComponent.build(query, uriBuilder));
-
- searchBuilder.numAppliedFilters(deriveAppliedFilters(query));
-
- return Search.template(siteInfo, searchBuilder.build());
}
+
+ boolean isLastPage = query.offset() + pageSize >= result.totalHits();
+ int currentPage = (query.offset() / pageSize) + 1;
+
+ var recipeGoUriComponents =
+ uriBuilder.cloneBuilder().replacePath(GO_SLUG_ID_PATH).encode().build();
+
+ var searchBuilder =
+ new SearchResultsInfo.Builder()
+ .paginationStart(query.offset() + 1)
+ .paginationEnd(result.recipes().size() + query.offset())
+ .numMatching(result.totalHits());
+
+ if (!isLastPage) {
+ searchBuilder.nextPageHref(
+ uriBuilder.replaceQueryParam("page", currentPage + 1).build().toUriString());
+ }
+
+ if (currentPage != 1) {
+ searchBuilder.previousPageHref(
+ uriBuilder.replaceQueryParam("page", currentPage - 1).build().toUriString());
+ }
+
+ searchBuilder.recipes(renderRecipes(result.recipes(), recipeGoUriComponents));
+
+ // Sidebar links always lead to the first page
+ uriBuilder.replaceQueryParam("page");
+ searchBuilder.sidebar(sidebarComponent.build(query, uriBuilder));
+
+ searchBuilder.numAppliedFilters(deriveAppliedFilters(query));
+
+ return Search.template(siteInfo, searchBuilder.build());
}

int deriveAppliedFilters(SearchQuery query) {

Modified src/test/java/co/caio/cerberus/boot/ModelViewTest.java

@@ -68,8 +68,7
var doc = parseOutput(modelView.renderError(errorTitle, errorSubtitle));

assertTrue(doc.title().startsWith(ModelView.ERROR_PAGE_TITLE));
- assertEquals(errorTitle, doc.selectFirst("section#error.section h1.title").text());
- assertEquals(errorSubtitle, doc.selectFirst("section#error.section h2.subtitle").text());
+ assertEquals(errorTitle, doc.selectFirst("div.notification.is-danger p strong").text());
}

@Test
@@ -79,7 +78,10

var doc = parseOutput(modelView.renderSearch(unusedQuery, result, uriBuilder));
assertTrue(doc.title().startsWith(ModelView.SEARCH_PAGE_TITLE));
- assertEquals("Try changing your query", doc.selectFirst("section#results h2.subtitle").text());
+ assertTrue(
+ doc.selectFirst("section#results div.notification.content.is-danger")
+ .text()
+ .contains("Try changing your query"));
}

@Test