Some bugfixes for the MultiPartArticleModel

pull/20/head
Jens Pelzetter 2022-02-28 20:21:21 +01:00
parent f5d3481c9a
commit 6dd855e1e2
2 changed files with 49 additions and 8 deletions

View File

@ -38,6 +38,7 @@ import org.librecms.contentsection.ContentItemVersion;
import org.librecms.pages.models.CategoryModel;
import org.librecms.pages.models.ContentItemModel;
import org.librecms.pages.models.PagePropertiesModel;
import org.librecms.pages.models.PageUrlModel;
import org.librecms.pages.models.SiteInfoModel;
import java.net.URI;
@ -196,6 +197,9 @@ public class PagesController {
@Inject
private PagePropertiesModel pagePropertiesModel;
@Inject
private PageUrlModel pageUrlModel;
@Inject
private PagesRepository pagesRepo;
@ -242,6 +246,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, versions);
initPageUrlModel(uriInfo);
final String indexPage = String.format(
"/index.%s.html%s",
language,
@ -271,6 +277,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, versions);
initPageUrlModel(uriInfo);
final String itemPage = String.format(
"/%s.%s.html%s",
itemName,
@ -301,6 +309,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, itemName, versions);
initPageUrlModel(uriInfo);
final String itemPage = String.format(
"/%s.%s.html", itemName, language
);
@ -407,6 +417,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, versions);
initPageUrlModel(uriInfo);
final String redirectTo;
if (uriInfo.getPath().endsWith("/")) {
redirectTo = String.format(
@ -461,6 +473,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, versions);
initPageUrlModel(uriInfo);
final String redirectTo;
if (uriInfo.getPath().endsWith("/")) {
redirectTo = String.format(
@ -535,6 +549,7 @@ public class PagesController {
.sorted()
.collect(Collectors.toList())
);
initPageUrlModel(uriInfo);
siteInfoModel.setDomain(site.getDomainOfSite());
siteInfoModel.setHost(domain);
siteInfoModel.setName(
@ -806,6 +821,25 @@ public class PagesController {
}
}
private void initPageUrlModel(final UriInfo uriInfo) {
pageUrlModel.setHost(uriInfo.getRequestUri().getHost());
pageUrlModel.setPath(uriInfo.getPath());
pageUrlModel.setPort(uriInfo.getRequestUri().getPort());
pageUrlModel.setProtocol(uriInfo.getRequestUri().getScheme());
pageUrlModel.setQueryParameters(
uriInfo
.getQueryParameters()
.entrySet()
.stream()
.collect(
Collectors.toMap(
entry -> entry.getKey(),
entry -> entry.getValue().get(0)
)
)
);
}
/**
* Encapsulate the result of converting the value of the {@code preview}
* query parameter.

View File

@ -130,6 +130,7 @@ public class MultiPartArticleModel implements ProcessesContentItem {
.ofNullable(mpa.getSummary())
.map(globalizationHelper::getValueFromLocalizedString)
.orElse(null);
sectionTitles = Optional
.ofNullable(mpa.getSections())
.map(
@ -156,6 +157,11 @@ public class MultiPartArticleModel implements ProcessesContentItem {
.build()
);
}
if (mpa.getSections().isEmpty()) {
currentSectionTitle = "";
currentSectionText = "";
} else {
currentSectionTitle = Optional
.ofNullable(mpa.getSections().get(currentSection).getTitle())
.map(globalizationHelper::getValueFromLocalizedString)
@ -165,6 +171,7 @@ public class MultiPartArticleModel implements ProcessesContentItem {
.ofNullable(mpa.getSections().get(currentSection).getText())
.map(globalizationHelper::getValueFromLocalizedString)
.orElse("");
}
sections = mpa
.getSections()