Skip to content

Commit 45f4e92

Browse files
committed
improve: on the country info page show a hint when a series has multiple images.
Part of #1420
1 parent 93a9da4 commit 45f4e92

File tree

5 files changed

+21
-6
lines changed

5 files changed

+21
-6
lines changed

src/main/java/ru/mystamps/web/feature/series/RowMappers.java

+8-6
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,21 @@ private RowMappers() {
8080
/* default */ static SeriesInGalleryDto forSeriesInGalleryDto(ResultSet rs, int unused)
8181
throws SQLException {
8282

83-
Integer seriesId = rs.getInt("id");
84-
Integer releaseYear = JdbcUtils.getInteger(rs, "release_year");
85-
Integer quantity = rs.getInt("quantity");
86-
Boolean perforated = rs.getBoolean("perforated");
87-
Integer previewId = JdbcUtils.getInteger(rs, "preview_id");
88-
String category = rs.getString("category");
83+
Integer seriesId = rs.getInt("id");
84+
Integer releaseYear = JdbcUtils.getInteger(rs, "release_year");
85+
Integer quantity = rs.getInt("quantity");
86+
Boolean perforated = rs.getBoolean("perforated");
87+
Integer previewId = JdbcUtils.getInteger(rs, "preview_id");
88+
Integer numberOfImages = rs.getInt("number_of_images");
89+
String category = rs.getString("category");
8990

9091
return new SeriesInGalleryDto(
9192
seriesId,
9293
releaseYear,
9394
quantity,
9495
perforated,
9596
previewId,
97+
numberOfImages,
9698
category
9799
);
98100
}

src/main/java/ru/mystamps/web/feature/series/SeriesInGalleryDto.java

+1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,6 @@ public class SeriesInGalleryDto {
2828
private final Integer quantity;
2929
private final Boolean perforated;
3030
private final Integer previewId;
31+
private final Integer numberOfImages;
3132
private final String category;
3233
}

src/main/resources/sql/series_dao_queries.properties

+6
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,12 @@ series.find_by_country_slug = \
169169
, s.release_year \
170170
, s.quantity \
171171
, s.perforated \
172+
, ( \
173+
SELECT COUNT(*) \
174+
FROM series_images si \
175+
WHERE si.series_id = s.id \
176+
AND si.hidden = FALSE \
177+
) AS number_of_images \
172178
, ( \
173179
SELECT si.image_id \
174180
FROM series_images si \

src/main/webapp/WEB-INF/views/country/info.html

+3
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ <h3 id="page-header" th:text="${#strings.capitalize(header)}">
100100
th:alt="${label}"
101101
th:title="${label}"
102102
th:src="@{${GET_IMAGE_PREVIEW_PAGE}(id=${series.previewId})}" />
103+
<span class="label label-default image-counter"
104+
th:if="${series.numberOfImages &gt; 1}"
105+
th:text="#{t_images_counter(${series.numberOfImages})}">5 images</span>
103106
</a>
104107
<figcaption>
105108
<a href="../series/info.html" th:href="@{${INFO_SERIES_PAGE}(id=${series.id})}" th:text="${desc}">

src/test/java/ru/mystamps/web/service/TestObjects.java

+3
Original file line numberDiff line numberDiff line change
@@ -156,12 +156,15 @@ public static SeriesInfoDto createSeriesInfoDto() {
156156
}
157157

158158
public static SeriesInGalleryDto createSeriesInGalleryDto() {
159+
Integer numberOfImages = 1;
160+
159161
return new SeriesInGalleryDto(
160162
Random.id(),
161163
nullOr(Random.issueYear()),
162164
Random.quantity(),
163165
Random.perforated(),
164166
Random.id(),
167+
numberOfImages,
165168
Random.categoryName()
166169
);
167170
}

0 commit comments

Comments
 (0)