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.CategoryModel;
import org.librecms.pages.models.ContentItemModel; import org.librecms.pages.models.ContentItemModel;
import org.librecms.pages.models.PagePropertiesModel; import org.librecms.pages.models.PagePropertiesModel;
import org.librecms.pages.models.PageUrlModel;
import org.librecms.pages.models.SiteInfoModel; import org.librecms.pages.models.SiteInfoModel;
import java.net.URI; import java.net.URI;
@ -196,6 +197,9 @@ public class PagesController {
@Inject @Inject
private PagePropertiesModel pagePropertiesModel; private PagePropertiesModel pagePropertiesModel;
@Inject
private PageUrlModel pageUrlModel;
@Inject @Inject
private PagesRepository pagesRepo; private PagesRepository pagesRepo;
@ -242,6 +246,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview); final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, versions); final String language = determineLanguage(category, versions);
initPageUrlModel(uriInfo);
final String indexPage = String.format( final String indexPage = String.format(
"/index.%s.html%s", "/index.%s.html%s",
language, language,
@ -271,6 +277,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview); final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, versions); final String language = determineLanguage(category, versions);
initPageUrlModel(uriInfo);
final String itemPage = String.format( final String itemPage = String.format(
"/%s.%s.html%s", "/%s.%s.html%s",
itemName, itemName,
@ -301,6 +309,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview); final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, itemName, versions); final String language = determineLanguage(category, itemName, versions);
initPageUrlModel(uriInfo);
final String itemPage = String.format( final String itemPage = String.format(
"/%s.%s.html", itemName, language "/%s.%s.html", itemName, language
); );
@ -407,6 +417,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview); final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, versions); final String language = determineLanguage(category, versions);
initPageUrlModel(uriInfo);
final String redirectTo; final String redirectTo;
if (uriInfo.getPath().endsWith("/")) { if (uriInfo.getPath().endsWith("/")) {
redirectTo = String.format( redirectTo = String.format(
@ -461,6 +473,8 @@ public class PagesController {
final Versions versions = generateFromPreviewParam(preview); final Versions versions = generateFromPreviewParam(preview);
final String language = determineLanguage(category, versions); final String language = determineLanguage(category, versions);
initPageUrlModel(uriInfo);
final String redirectTo; final String redirectTo;
if (uriInfo.getPath().endsWith("/")) { if (uriInfo.getPath().endsWith("/")) {
redirectTo = String.format( redirectTo = String.format(
@ -535,6 +549,7 @@ public class PagesController {
.sorted() .sorted()
.collect(Collectors.toList()) .collect(Collectors.toList())
); );
initPageUrlModel(uriInfo);
siteInfoModel.setDomain(site.getDomainOfSite()); siteInfoModel.setDomain(site.getDomainOfSite());
siteInfoModel.setHost(domain); siteInfoModel.setHost(domain);
siteInfoModel.setName( 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} * Encapsulate the result of converting the value of the {@code preview}
* query parameter. * query parameter.

View File

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