CCM NG: Several bugfixes
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5147 8810af33-2d31-482b-a856-94f89814c4dfccm-docs
parent
6300b38676
commit
a7fe648798
|
|
@ -71,6 +71,15 @@
|
|||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
||||
<artifactId>jackson-jaxrs-json-provider</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
||||
<artifactId>jackson-jaxrs-xml-provider</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Dependencies for log4j 2 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
|
|
@ -350,7 +359,7 @@
|
|||
<artifactId>findbugs-maven-plugin</artifactId>
|
||||
<version>3.0.5</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<plugin>
|
||||
<groupId>com.github.spotbugs</groupId>
|
||||
<artifactId>spotbugs-maven-plugin</artifactId>
|
||||
<version>3.1.0-RC8</version>
|
||||
|
|
|
|||
|
|
@ -142,7 +142,9 @@ public class ItemListComponentForm
|
|||
|
||||
final ItemListComponent component = getComponentModel();
|
||||
|
||||
if (component != null) {
|
||||
if (component == null) {
|
||||
pageSizeField.setValue(state, "30");
|
||||
}else {
|
||||
final Object[] descendingValue;
|
||||
if (component.isDescending()) {
|
||||
descendingValue = new Object[]{DESCENDING};
|
||||
|
|
|
|||
|
|
@ -20,6 +20,10 @@ package org.librecms.pages;
|
|||
|
||||
import com.arsdigita.kernel.KernelConfig;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
import org.libreccm.categorization.Category;
|
||||
import org.libreccm.categorization.CategoryRepository;
|
||||
import org.libreccm.configuration.ConfigurationManager;
|
||||
|
|
@ -43,6 +47,7 @@ import javax.enterprise.context.RequestScoped;
|
|||
import javax.inject.Inject;
|
||||
import javax.transaction.Transactional;
|
||||
import javax.ws.rs.DefaultValue;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.NotFoundException;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
|
|
@ -61,7 +66,8 @@ import static org.librecms.pages.PagesConstants.*;
|
|||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@RequestScoped
|
||||
@Path("/{page:.+}")
|
||||
//@Path("/{page:.+}")
|
||||
@Path("/")
|
||||
public class PagesRouter {
|
||||
|
||||
@Inject
|
||||
|
|
@ -100,6 +106,272 @@ public class PagesRouter {
|
|||
defaultLocale = kernelConfig.getDefaultLocale();
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Response getIndexPage(@Context UriInfo uriInfo) {
|
||||
|
||||
final String domain = uriInfo.getBaseUri().getHost();
|
||||
final Pages pages = getPages(domain);
|
||||
final Category category = getCategory(domain, pages, "/");
|
||||
|
||||
final Locale negoidatedLocale = globalizationHelper
|
||||
.getNegotiatedLocale();
|
||||
|
||||
final String language;
|
||||
if (category.getTitle().hasValue(negoidatedLocale)) {
|
||||
language = negoidatedLocale.toString();
|
||||
} else if (category.getTitle().hasValue(defaultLocale)) {
|
||||
language = defaultLocale.toString();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
final String indexPage = String.format("/index.%s.html", language);
|
||||
final URI uri = uriInfo.getBaseUriBuilder().path(indexPage).build();
|
||||
return Response.temporaryRedirect(uri).build();
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/index.html")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Response getIndexPageAsHtml(@Context final UriInfo uriInfo) {
|
||||
|
||||
final String domain = uriInfo.getBaseUri().getHost();
|
||||
final Pages pages = getPages(domain);
|
||||
final Category category = getCategory(domain, pages, "/");
|
||||
|
||||
final Locale negoiatedLocale = globalizationHelper
|
||||
.getNegotiatedLocale();
|
||||
final String language;
|
||||
if (category.getTitle().hasValue(negoiatedLocale)) {
|
||||
language = negoiatedLocale.toString();
|
||||
} else if (category.getTitle().hasValue(defaultLocale)) {
|
||||
language = defaultLocale.toString();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
final String indexPage = String.format("/index.%s.html", language);
|
||||
final String path = uriInfo.getPath().replace("index.html", indexPage);
|
||||
|
||||
final URI uri = uriInfo.getBaseUriBuilder().replacePath(path).build();
|
||||
return Response.temporaryRedirect(uri).build();
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/index.{lang}.html")
|
||||
@Produces("text/html")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public String getIndexPageAsHtml(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
@PathParam("lang")
|
||||
final String language,
|
||||
@QueryParam("theme")
|
||||
@DefaultValue("--DEFAULT--")
|
||||
final String theme,
|
||||
@QueryParam("theme-version")
|
||||
@DefaultValue("LIVE")
|
||||
final String themeVersion,
|
||||
@QueryParam("pagemodel-version")
|
||||
@DefaultValue("LIVE") final String pageModelVersion) {
|
||||
|
||||
final Map<String, Object> buildResult = getCategoryIndexPage(
|
||||
uriInfo, "/", language, pageModelVersion);
|
||||
final Site site = getSite(uriInfo);
|
||||
final ThemeInfo themeInfo = getTheme(site, theme, themeVersion);
|
||||
|
||||
return themes.process(buildResult, themeInfo);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/index.{lang}.json")
|
||||
@Produces("text/json")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public String getIndexPageAsJson(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
@PathParam("lang")
|
||||
final String language,
|
||||
@QueryParam("pagemodel-version")
|
||||
@DefaultValue("LIVE")
|
||||
final String pageModelVersion) {
|
||||
|
||||
final ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
try {
|
||||
return mapper
|
||||
.writeValueAsString(getCategoryIndexPage(uriInfo,
|
||||
"/",
|
||||
language,
|
||||
pageModelVersion));
|
||||
} catch (JsonProcessingException ex) {
|
||||
throw new WebApplicationException(ex);
|
||||
}
|
||||
// return getCategoryIndexPage(uriInfo, "/", language, pageModelVersion);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/index.{lang}.xml")
|
||||
@Produces("text/xml")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public String getIndexPageAsXml(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
@PathParam("lang")
|
||||
final String language,
|
||||
@QueryParam("pagemodel-version")
|
||||
@DefaultValue("LIVE")
|
||||
final String pageModelVersion) {
|
||||
|
||||
final JacksonXmlModule xmlModule = new JacksonXmlModule();
|
||||
final ObjectMapper mapper = new XmlMapper(xmlModule);
|
||||
|
||||
try {
|
||||
return mapper
|
||||
.writeValueAsString(getCategoryIndexPage(uriInfo, "/",
|
||||
language,
|
||||
pageModelVersion));
|
||||
} catch (JsonProcessingException ex) {
|
||||
throw new WebApplicationException(ex);
|
||||
}
|
||||
// return getCategoryIndexPage(uriInfo, "/", language, pageModelVersion);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/{name}")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Response getRootItemPage(
|
||||
@Context final UriInfo uriInfo,
|
||||
@PathParam("name") final String itemName) {
|
||||
|
||||
final String domain = uriInfo.getBaseUri().getHost();
|
||||
final Pages pages = getPages(domain);
|
||||
final Category category = getCategory(domain, pages, "/");
|
||||
|
||||
final Locale negoiatedLocale = globalizationHelper
|
||||
.getNegotiatedLocale();
|
||||
|
||||
final String language;
|
||||
if (category.getTitle().hasValue(negoiatedLocale)) {
|
||||
language = negoiatedLocale.toString();
|
||||
} else if (category.getTitle().hasValue(defaultLocale)) {
|
||||
language = defaultLocale.toString();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
final String itemPage = String.format("/%s.%s.html", itemName, language);
|
||||
final URI uri = uriInfo.getBaseUriBuilder().path(itemPage).build();
|
||||
return Response.temporaryRedirect(uri).build();
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/{name}.html")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Response getRootItemPageAsHtml(
|
||||
@Context final UriInfo uriInfo,
|
||||
@PathParam("name") final String itemName) {
|
||||
|
||||
final String domain = uriInfo.getBaseUri().getHost();
|
||||
final Pages pages = getPages(domain);
|
||||
final Category category = getCategory(domain, pages, "/");
|
||||
|
||||
final Locale negoiatedLocale = globalizationHelper
|
||||
.getNegotiatedLocale();
|
||||
|
||||
final String language;
|
||||
if (category.getTitle().hasValue(negoiatedLocale)) {
|
||||
language = negoiatedLocale.toString();
|
||||
} else if (category.getTitle().hasValue(defaultLocale)) {
|
||||
language = defaultLocale.toString();
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
final String itemPage = String.format("/%s.%s.html", itemName, language);
|
||||
final String path = uriInfo
|
||||
.getPath()
|
||||
.replace(String.format("%s.html", itemName), itemPage);
|
||||
|
||||
final URI uri = uriInfo.getBaseUriBuilder().replacePath(path).build();
|
||||
return Response.temporaryRedirect(uri).build();
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/{name}.{lang}.html")
|
||||
@Produces("text/html")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public String getRootItemPageAsHtml(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
@PathParam("name")
|
||||
final String itemName,
|
||||
@PathParam("lang")
|
||||
final String language,
|
||||
@QueryParam("theme")
|
||||
@DefaultValue("--DEFAULT--")
|
||||
final String theme,
|
||||
@QueryParam("theme-version")
|
||||
@DefaultValue("LIVE")
|
||||
final String themeVersion,
|
||||
@QueryParam("pagemodel-version")
|
||||
@DefaultValue("LIVE")
|
||||
final String pageModelVersion) {
|
||||
|
||||
final Map<String, Object> buildResult = getCategoryItemPage(
|
||||
uriInfo, "/", itemName, language, pageModelVersion);
|
||||
final Site site = getSite(uriInfo);
|
||||
final ThemeInfo themeInfo = getTheme(site, "/", themeVersion);
|
||||
|
||||
return themes.process(buildResult, themeInfo);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/{name}.{lang}.json")
|
||||
@Produces("text/json")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Map<String, Object> getRootItemPageAsJson(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
@PathParam("name")
|
||||
final String itemName,
|
||||
@PathParam("lang")
|
||||
final String language,
|
||||
@QueryParam("pagemodel-version")
|
||||
@DefaultValue("LIVE")
|
||||
final String pageModelVersion) {
|
||||
|
||||
return getCategoryItemPage(uriInfo,
|
||||
"/",
|
||||
itemName,
|
||||
language,
|
||||
pageModelVersion);
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/{name}.{lang}.xml")
|
||||
@Produces("text/xml")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Map<String, Object> getItemPageAsXml(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
@PathParam("name")
|
||||
final String itemName,
|
||||
@PathParam("lang")
|
||||
final String language,
|
||||
@QueryParam("pagemodel-version")
|
||||
@DefaultValue("LIVE")
|
||||
final String pageModelVersion) {
|
||||
|
||||
return getCategoryItemPage(uriInfo,
|
||||
"/",
|
||||
itemName,
|
||||
language,
|
||||
pageModelVersion);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the index page of a category. Redirects to
|
||||
* {@link #getCategoryIndexPageAsHtml(javax.ws.rs.core.UriInfo, java.lang.String)}.
|
||||
|
|
@ -109,7 +381,9 @@ public class PagesRouter {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@Path("/")
|
||||
@GET
|
||||
@Path("/{page:.+}/")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Response getCategoryIndexPage(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
|
|
@ -146,7 +420,9 @@ public class PagesRouter {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@Path("/index.html")
|
||||
@GET
|
||||
@Path("/{page:.+}/index.html")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Response getCategoryIndexPageAsHtml(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
|
|
@ -187,7 +463,8 @@ public class PagesRouter {
|
|||
*
|
||||
* @return The HTML representation of the index page.
|
||||
*/
|
||||
@Path("/index.{lang}.html")
|
||||
@GET
|
||||
@Path("/{page:.+}/index.{lang}.html")
|
||||
@Produces("text/html")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public String getCategoryIndexPageAsHtml(
|
||||
|
|
@ -225,7 +502,8 @@ public class PagesRouter {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@Path("/index.{lang}.json")
|
||||
@GET
|
||||
@Path("/{page:.+}/index.{lang}.json")
|
||||
@Produces("text/json")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Map<String, Object> getCategoryIndexPageAsJson(
|
||||
|
|
@ -252,7 +530,8 @@ public class PagesRouter {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@Path("/index.{lang}.xml")
|
||||
@GET
|
||||
@Path("/{page:.+}/index.{lang}.xml")
|
||||
@Produces("text/xml")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Map<String, Object> getCategoryIndexPageAsXml(
|
||||
|
|
@ -282,7 +561,9 @@ public class PagesRouter {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@Path("/{name}")
|
||||
@GET
|
||||
@Path("/{page:.+}/{name}")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Response getItemPage(
|
||||
@Context final UriInfo uriInfo,
|
||||
@PathParam("page") final String page,
|
||||
|
|
@ -320,7 +601,9 @@ public class PagesRouter {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@Path("/{name}.html")
|
||||
@GET
|
||||
@Path("/{page:.+}/{name}.html")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Response getItemPageAsHtml(
|
||||
@Context final UriInfo uriInfo,
|
||||
@PathParam("page") final String page,
|
||||
|
|
@ -365,7 +648,9 @@ public class PagesRouter {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@Path("/{name}.{lang}.html")
|
||||
@GET
|
||||
@Path("/{page:.+}/{name}.{lang}.html")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public String getItemPageAsHtml(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
|
|
@ -405,8 +690,10 @@ public class PagesRouter {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@Path("/{name}.{lang}.json")
|
||||
@GET
|
||||
@Path("/{page:.+}/{name}.{lang}.json")
|
||||
@Produces("text/json")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Map<String, Object> getItemPageAsJson(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
|
|
@ -439,8 +726,10 @@ public class PagesRouter {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@Path("/{name}.{lang}.xml")
|
||||
@GET
|
||||
@Path("/{page:.+}/{name}.{lang}.xml")
|
||||
@Produces("text/xml")
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public Map<String, Object> getItemPageAsXml(
|
||||
@Context
|
||||
final UriInfo uriInfo,
|
||||
|
|
@ -513,8 +802,8 @@ public class PagesRouter {
|
|||
.orElseThrow(() -> new WebApplicationException(
|
||||
String.format("The configured default theme \"%s\" for "
|
||||
+ "site \"%s\" is not available.",
|
||||
site.getDomainOfSite(),
|
||||
site.getDefaultTheme()),
|
||||
site.getDefaultTheme(),
|
||||
site.getDomainOfSite()),
|
||||
Response.Status.INTERNAL_SERVER_ERROR));
|
||||
} else {
|
||||
return themes.getTheme(theme,
|
||||
|
|
@ -578,8 +867,8 @@ public class PagesRouter {
|
|||
|
||||
final PageModel pageModel;
|
||||
if ("DRAFT".equals(pageModelVersion)) {
|
||||
pageModel = pageModelManager.getDraftVersion(page
|
||||
.getIndexPageModel());
|
||||
pageModel = pageModelManager
|
||||
.getDraftVersion(page.getIndexPageModel());
|
||||
} else {
|
||||
pageModel = pageModelManager
|
||||
.getLiveVersion(page.getIndexPageModel())
|
||||
|
|
|
|||
|
|
@ -30,10 +30,6 @@ import org.libreccm.web.ApplicationType;
|
|||
import org.libreccm.web.CcmApplication;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
|
@ -64,6 +60,7 @@ class ApplicationTreeDataProvider
|
|||
rootNode = new ApplicationTreeNode();
|
||||
rootNode.setNodeId(ApplicationTreeNode.ROOT);
|
||||
rootNode.setNodeType(ApplicationTreeNodeType.ROOT_NODE);
|
||||
rootNode.setTitle("/");
|
||||
}
|
||||
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
|
|
|
|||
|
|
@ -56,9 +56,7 @@ class PageModelsTab extends CustomComponent {
|
|||
|
||||
final Tree<ApplicationTreeNode> applicationTree = new Tree<>(
|
||||
adminViewController.getApplicationTreeDataProvider());
|
||||
|
||||
applicationTree.setItemCaptionGenerator(ApplicationTreeNode::getTitle);
|
||||
|
||||
applicationTree.setItemCollapseAllowedProvider(node -> {
|
||||
return !node.getNodeType().equals(ApplicationTreeNodeType.ROOT_NODE);
|
||||
});
|
||||
|
|
@ -99,27 +97,41 @@ class PageModelsTab extends CustomComponent {
|
|||
.addComponentColumn(row -> buildDeleteButton(row,
|
||||
adminViewController))
|
||||
.setId(COL_DELETE);
|
||||
|
||||
pageModelsGrid.setVisible(false);
|
||||
pageModelsGrid.setWidth("100%");
|
||||
|
||||
final Label placeholder = new Label(localizedTextsUtil.getText(
|
||||
"ui.admin.pagemodels.select_application"));
|
||||
|
||||
final VerticalLayout layout = new VerticalLayout(pageModelsGrid,
|
||||
placeholder);
|
||||
layout.setWidth("100%");
|
||||
|
||||
applicationTree.addItemClickListener(event -> {
|
||||
final PageModelsTableDataProvider dataProvider
|
||||
= (PageModelsTableDataProvider) pageModelsGrid
|
||||
.getDataProvider();
|
||||
dataProvider.setApplicationUuid(event.getItem().getNodeId());
|
||||
pageModelsGrid.setVisible(true);
|
||||
placeholder.setVisible(false);
|
||||
|
||||
final ApplicationTreeNode node = event.getItem();
|
||||
final ApplicationTreeNodeType nodeType = node.getNodeType();
|
||||
|
||||
if (nodeType == ApplicationTreeNodeType.APPLICATION_NODE
|
||||
|| nodeType
|
||||
== ApplicationTreeNodeType.SINGLETON_APPLICATION_NODE) {
|
||||
final PageModelsTableDataProvider dataProvider
|
||||
= (PageModelsTableDataProvider) pageModelsGrid
|
||||
.getDataProvider();
|
||||
dataProvider.setApplicationUuid(node.getNodeId());
|
||||
pageModelsGrid.setVisible(true);
|
||||
placeholder.setVisible(false);
|
||||
} else {
|
||||
pageModelsGrid.setVisible(false);
|
||||
placeholder.setVisible(true);
|
||||
}
|
||||
});
|
||||
|
||||
final VerticalLayout treeLayout = new VerticalLayout(applicationTree);
|
||||
|
||||
final HorizontalSplitPanel panel = new HorizontalSplitPanel(
|
||||
applicationTree, layout);
|
||||
panel.setSplitPosition(33.0f);
|
||||
treeLayout, layout);
|
||||
panel.setSplitPosition(20.0f);
|
||||
super.setCompositionRoot(panel);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -160,6 +160,9 @@ public class CategoryRepository extends AbstractEntityRepository<Long, Category>
|
|||
+ "domain \"{}\".",
|
||||
normalizedPath,
|
||||
domain.getDomainKey());
|
||||
if (normalizedPath.isEmpty()) {
|
||||
return Optional.of(domain.getRoot());
|
||||
}
|
||||
final String[] tokens = normalizedPath.split("/");
|
||||
Category current = domain.getRoot();
|
||||
for (final String token : tokens) {
|
||||
|
|
|
|||
|
|
@ -194,11 +194,11 @@ public class StaticThemeProvider implements ThemeProvider {
|
|||
Objects.requireNonNull(theme);
|
||||
|
||||
final String manifestJsonPath = String.format("/" + THEMES_PACKAGE
|
||||
+ "%s/"
|
||||
+ "/%s/"
|
||||
+ THEME_MANIFEST_JSON,
|
||||
theme);
|
||||
final String manifestXmlPath = String.format("/" + THEMES_PACKAGE
|
||||
+ "%s/"
|
||||
+ "/%s/"
|
||||
+ THEME_MANIFEST_XML,
|
||||
theme);
|
||||
|
||||
|
|
@ -227,11 +227,11 @@ public class StaticThemeProvider implements ThemeProvider {
|
|||
Objects.requireNonNull(theme);
|
||||
|
||||
final String manifestJsonPath = String.format("/" + THEMES_PACKAGE
|
||||
+ "%s/"
|
||||
+ "/%s/"
|
||||
+ THEME_MANIFEST_JSON,
|
||||
theme);
|
||||
final String manifestXmlPath = String.format("/" + THEMES_PACKAGE
|
||||
+ "%s/"
|
||||
+ "/%s/"
|
||||
+ THEME_MANIFEST_XML,
|
||||
theme);
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ import javax.xml.parsers.ParserConfigurationException;
|
|||
|
||||
import static org.libreccm.theming.ThemeConstants.*;
|
||||
|
||||
import org.libreccm.theming.ThemeVersion;
|
||||
import org.libreccm.theming.ProcessesThemes;
|
||||
import org.libreccm.theming.manifest.ThemeTemplate;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
|
@ -50,7 +50,6 @@ import java.io.UnsupportedEncodingException;
|
|||
import java.util.Optional;
|
||||
|
||||
import javax.xml.transform.Result;
|
||||
import javax.xml.transform.Source;
|
||||
import javax.xml.transform.Transformer;
|
||||
import javax.xml.transform.TransformerConfigurationException;
|
||||
import javax.xml.transform.TransformerException;
|
||||
|
|
@ -64,6 +63,7 @@ import javax.xml.transform.stream.StreamSource;
|
|||
*
|
||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||
*/
|
||||
@ProcessesThemes("xsl")
|
||||
@RequestScoped
|
||||
public class XsltThemeProcessor implements ThemeProcessor {
|
||||
|
||||
|
|
|
|||
|
|
@ -1081,7 +1081,7 @@
|
|||
*/
|
||||
|
||||
.v-vaadin-version:after {
|
||||
content: "8.1.6";
|
||||
content: "8.1.7";
|
||||
}
|
||||
|
||||
.v-widget {
|
||||
|
|
@ -1172,7 +1172,7 @@
|
|||
overflow: auto;
|
||||
}
|
||||
|
||||
.v-assistive-device-only {
|
||||
.v-assistive-device-only, .v-assistive-device-only-label label {
|
||||
position: absolute;
|
||||
top: -2000px;
|
||||
left: -2000px;
|
||||
|
|
|
|||
28
pom.xml
28
pom.xml
|
|
@ -272,7 +272,7 @@
|
|||
<plugin>
|
||||
<groupId>com.vaadin</groupId>
|
||||
<artifactId>vaadin-maven-plugin</artifactId>
|
||||
<version>8.1.6</version>
|
||||
<version>8.1.7</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
|
|
@ -422,7 +422,7 @@
|
|||
<dependency>
|
||||
<groupId>com.vaadin</groupId>
|
||||
<artifactId>vaadin-bom</artifactId>
|
||||
<version>8.1.6</version>
|
||||
<version>8.1.7</version>
|
||||
<scope>import</scope>
|
||||
<type>pom</type>
|
||||
</dependency>
|
||||
|
|
@ -606,10 +606,17 @@
|
|||
<version>1.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson</groupId>
|
||||
<artifactId>jackson-bom</artifactId>
|
||||
<version>2.9.0</version>
|
||||
<scope>import</scope>
|
||||
<type>pom</type>
|
||||
</dependency>
|
||||
|
||||
<!-- Export Import Libraries -->
|
||||
|
||||
<dependency>
|
||||
<!--<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
<version>${jackson-core-version}</version>
|
||||
|
|
@ -628,22 +635,27 @@
|
|||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jdk8</artifactId>
|
||||
<version>${jackson-core-version}</version>
|
||||
</dependency>
|
||||
<dependency> <!-- for xml ex-/import -->
|
||||
</dependency>-->
|
||||
<!-- for xml ex-/import -->
|
||||
<!--<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-xml</artifactId>
|
||||
<version>${jackson-core-version}</version>
|
||||
</dependency>
|
||||
<dependency> <!-- better xml library -->
|
||||
</dependency>-->
|
||||
<!-- better xml library -->
|
||||
<dependency>
|
||||
<groupId>org.codehaus.woodstox</groupId>
|
||||
<artifactId>woodstox-core-asl</artifactId>
|
||||
<version>4.4.1</version>
|
||||
</dependency>
|
||||
<dependency> <!-- for csv ex-/import -->
|
||||
<!-- for csv ex-/import -->
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-csv</artifactId>
|
||||
<version>${jackson-core-version}</version>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<!--
|
||||
**********************
|
||||
|
|
|
|||
Loading…
Reference in New Issue