CCM NG: Several small fixes
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5170 8810af33-2d31-482b-a856-94f89814c4df
parent
49be71c83e
commit
45eef357c4
|
|
@ -339,6 +339,8 @@ class CategoryItemPane extends BaseItemPane {
|
||||||
.getValueFromLocalizedString(item.getTitle(),
|
.getValueFromLocalizedString(item.getTitle(),
|
||||||
item::getDisplayName);
|
item::getDisplayName);
|
||||||
|
|
||||||
|
} else if (indexObjects.isEmpty()){
|
||||||
|
itemTitle = "None";
|
||||||
} else {
|
} else {
|
||||||
final CcmObject indexObj = indexObjects.get(0);
|
final CcmObject indexObj = indexObjects.get(0);
|
||||||
itemTitle = Objects.toString(indexObj);
|
itemTitle = Objects.toString(indexObj);
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
import javax.enterprise.inject.Any;
|
||||||
import javax.enterprise.inject.Instance;
|
import javax.enterprise.inject.Instance;
|
||||||
import javax.enterprise.util.AnnotationLiteral;
|
import javax.enterprise.util.AnnotationLiteral;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
@ -43,6 +44,7 @@ public class AssetRenderers {
|
||||||
.getLogger(AssetRenderers.class);
|
.getLogger(AssetRenderers.class);
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
@Any
|
||||||
private Instance<AbstractAssetRenderer> renderers;
|
private Instance<AbstractAssetRenderer> renderers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -77,9 +77,11 @@ public class ImageRenderer extends BinaryAssetRenderer {
|
||||||
|
|
||||||
result.put("width", image.getWidth());
|
result.put("width", image.getWidth());
|
||||||
result.put("height", image.getHeight());
|
result.put("height", image.getHeight());
|
||||||
result.put("legalMetadata",
|
if (image.getLegalMetadata() != null) {
|
||||||
legalMetadataRenderer.render(image.getLegalMetadata(),
|
result.put("legalMetadata",
|
||||||
language));
|
legalMetadataRenderer.render(image.getLegalMetadata(),
|
||||||
|
language));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,11 +43,11 @@ public abstract class AbstractContentItemRenderer implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1290408390406469580L;
|
private static final long serialVersionUID = 1290408390406469580L;
|
||||||
|
|
||||||
private final AssetRenderers assetRenderers;
|
// private final AssetRenderers assetRenderers;
|
||||||
|
//
|
||||||
public AbstractContentItemRenderer(final AssetRenderers assetRenderers) {
|
// public AbstractContentItemRenderer(final AssetRenderers assetRenderers) {
|
||||||
this.assetRenderers = assetRenderers;
|
// this.assetRenderers = assetRenderers;
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method should be called to render a {@link ContentItem}. The method
|
* This method should be called to render a {@link ContentItem}. The method
|
||||||
|
|
@ -121,6 +121,8 @@ public abstract class AbstractContentItemRenderer implements Serializable {
|
||||||
protected abstract void renderItem(final ContentItem item,
|
protected abstract void renderItem(final ContentItem item,
|
||||||
final Locale language,
|
final Locale language,
|
||||||
final Map<String, Object> result);
|
final Map<String, Object> result);
|
||||||
|
|
||||||
|
protected abstract AssetRenderers getAssetRenderers();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renders the {@link ContentType} of an {@link ContentItem}. The generated
|
* Renders the {@link ContentType} of an {@link ContentItem}. The generated
|
||||||
|
|
@ -235,7 +237,7 @@ public abstract class AbstractContentItemRenderer implements Serializable {
|
||||||
result.put("uuid", attachment.getUuid());
|
result.put("uuid", attachment.getUuid());
|
||||||
result.put("sortKey", attachment.getSortKey());
|
result.put("sortKey", attachment.getSortKey());
|
||||||
|
|
||||||
final AbstractAssetRenderer renderer = assetRenderers
|
final AbstractAssetRenderer renderer = getAssetRenderers()
|
||||||
.findRenderer(attachment.getAsset().getClass());
|
.findRenderer(attachment.getAsset().getClass());
|
||||||
result.put("asset", renderer.render(attachment.getAsset(), language));
|
result.put("asset", renderer.render(attachment.getAsset(), language));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,12 @@ public class ArticleRenderer extends AbstractContentItemRenderer {
|
||||||
private static final long serialVersionUID = 8355183377902033759L;
|
private static final long serialVersionUID = 8355183377902033759L;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public ArticleRenderer(final AssetRenderers assetRenderers) {
|
private AssetRenderers assetRenderers;
|
||||||
super(assetRenderers);
|
|
||||||
}
|
// @Inject
|
||||||
|
// public ArticleRenderer(final AssetRenderers assetRenderers) {
|
||||||
|
// super(assetRenderers);
|
||||||
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render the provided {@link Article}. The following values are put into
|
* Render the provided {@link Article}. The following values are put into
|
||||||
|
|
@ -59,7 +62,7 @@ public class ArticleRenderer extends AbstractContentItemRenderer {
|
||||||
* @param result The map into which the result is placed.
|
* @param result The map into which the result is placed.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void renderItem(final ContentItem item,
|
protected void renderItem(final ContentItem item,
|
||||||
final Locale language,
|
final Locale language,
|
||||||
final Map<String, Object> result) {
|
final Map<String, Object> result) {
|
||||||
|
|
||||||
|
|
@ -71,7 +74,11 @@ public class ArticleRenderer extends AbstractContentItemRenderer {
|
||||||
}
|
}
|
||||||
|
|
||||||
result.put("text", article.getText().getValue(language));
|
result.put("text", article.getText().getValue(language));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AssetRenderers getAssetRenderers() {
|
||||||
|
return assetRenderers;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,15 @@ package org.librecms.pagemodel.contentitems;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.librecms.contentsection.ContentItem;
|
import org.librecms.contentsection.ContentItem;
|
||||||
|
import org.librecms.contenttypes.Article;
|
||||||
import org.librecms.pagemodel.assets.AssetRenderers;
|
import org.librecms.pagemodel.assets.AssetRenderers;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
import javax.enterprise.inject.Any;
|
||||||
import javax.enterprise.inject.Instance;
|
import javax.enterprise.inject.Instance;
|
||||||
import javax.enterprise.util.AnnotationLiteral;
|
import javax.enterprise.util.AnnotationLiteral;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
@ -39,7 +42,9 @@ import javax.inject.Inject;
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
*/
|
*/
|
||||||
@RequestScoped
|
@RequestScoped
|
||||||
public class ContentItemRenderers {
|
public class ContentItemRenderers implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 4038159486301146385L;
|
||||||
|
|
||||||
private static final Logger LOGGER = LogManager
|
private static final Logger LOGGER = LogManager
|
||||||
.getLogger(ContentItemRenderers.class);
|
.getLogger(ContentItemRenderers.class);
|
||||||
|
|
@ -48,6 +53,7 @@ public class ContentItemRenderers {
|
||||||
private AssetRenderers assetRenderers;
|
private AssetRenderers assetRenderers;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
@Any
|
||||||
private Instance<AbstractContentItemRenderer> renderers;
|
private Instance<AbstractContentItemRenderer> renderers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -98,7 +104,7 @@ public class ContentItemRenderers {
|
||||||
LOGGER.warn("No renderer for item type \"{}\" and mode "
|
LOGGER.warn("No renderer for item type \"{}\" and mode "
|
||||||
+ "\"--DEFAULT--\". Returning default renderer.",
|
+ "\"--DEFAULT--\". Returning default renderer.",
|
||||||
itemType.getName());
|
itemType.getName());
|
||||||
return new AbstractContentItemRenderer(assetRenderers) {
|
return new AbstractContentItemRenderer() {
|
||||||
|
|
||||||
private static final long serialVersionUID
|
private static final long serialVersionUID
|
||||||
= -4679445070846896396L;
|
= -4679445070846896396L;
|
||||||
|
|
@ -110,6 +116,11 @@ public class ContentItemRenderers {
|
||||||
//Nothing here.
|
//Nothing here.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AssetRenderers getAssetRenderers() {
|
||||||
|
return assetRenderers;
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
LOGGER.warn("No renderer for item type \"{}\" and mode "
|
LOGGER.warn("No renderer for item type \"{}\" and mode "
|
||||||
|
|
|
||||||
|
|
@ -38,9 +38,12 @@ public class EventRenderer extends AbstractContentItemRenderer {
|
||||||
private static final long serialVersionUID = -3517404651544429745L;
|
private static final long serialVersionUID = -3517404651544429745L;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public EventRenderer(final AssetRenderers assetRenderers) {
|
private AssetRenderers assetRenderers;
|
||||||
super(assetRenderers);
|
|
||||||
}
|
// @Inject
|
||||||
|
// public EventRenderer(final AssetRenderers assetRenderers) {
|
||||||
|
// super(assetRenderers);
|
||||||
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render the provided {@link Event}. The following values are put into
|
* Render the provided {@link Event}. The following values are put into
|
||||||
|
|
@ -88,4 +91,11 @@ public class EventRenderer extends AbstractContentItemRenderer {
|
||||||
result.put("cost", event.getCost().getValue(language));
|
result.put("cost", event.getCost().getValue(language));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected AssetRenderers getAssetRenderers() {
|
||||||
|
return assetRenderers;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,12 @@ public class MultiPartArticleRenderer extends AbstractContentItemRenderer {
|
||||||
private static final long serialVersionUID = -4298383182795585868L;
|
private static final long serialVersionUID = -4298383182795585868L;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public MultiPartArticleRenderer(final AssetRenderers assetRenderers) {
|
private AssetRenderers assetRenderers;
|
||||||
super(assetRenderers);
|
|
||||||
}
|
// @Inject
|
||||||
|
// public MultiPartArticleRenderer(final AssetRenderers assetRenderers) {
|
||||||
|
// super(assetRenderers);
|
||||||
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renders the provided {@link MultiPartArticle}. The following values are
|
* Renders the provided {@link MultiPartArticle}. The following values are
|
||||||
|
|
@ -119,5 +122,11 @@ public class MultiPartArticleRenderer extends AbstractContentItemRenderer {
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected AssetRenderers getAssetRenderers() {
|
||||||
|
return assetRenderers;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,10 +40,12 @@ public class NewsRenderer extends AbstractContentItemRenderer {
|
||||||
private static final long serialVersionUID = -493301428054148505L;
|
private static final long serialVersionUID = -493301428054148505L;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public NewsRenderer(final AssetRenderers assetRenderers) {
|
private AssetRenderers assetRenderers;
|
||||||
super(assetRenderers);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// @Inject
|
||||||
|
// public NewsRenderer(final AssetRenderers assetRenderers) {
|
||||||
|
// super(assetRenderers);
|
||||||
|
// }
|
||||||
/**
|
/**
|
||||||
* Renders the provided {@link News} item. The following values are put into
|
* Renders the provided {@link News} item. The following values are put into
|
||||||
* {@code result}:
|
* {@code result}:
|
||||||
|
|
@ -75,4 +77,9 @@ public class NewsRenderer extends AbstractContentItemRenderer {
|
||||||
result.put("releaseDate", news.getReleaseDate());
|
result.put("releaseDate", news.getReleaseDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected AssetRenderers getAssetRenderers() {
|
||||||
|
return assetRenderers;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,9 @@ public class PagesRouter {
|
||||||
uriInfo, "/", itemName, language, pageModelVersion);
|
uriInfo, "/", itemName, language, pageModelVersion);
|
||||||
}
|
}
|
||||||
final Site site = getSite(uriInfo);
|
final Site site = getSite(uriInfo);
|
||||||
final ThemeInfo themeInfo = getTheme(site, "/", themeVersion);
|
final ThemeInfo themeInfo = getTheme(site,
|
||||||
|
theme,
|
||||||
|
themeVersion);
|
||||||
|
|
||||||
return themes.process(result, themeInfo);
|
return themes.process(result, themeInfo);
|
||||||
}
|
}
|
||||||
|
|
@ -413,7 +415,7 @@ public class PagesRouter {
|
||||||
}
|
}
|
||||||
|
|
||||||
final Site site = getSite(uriInfo);
|
final Site site = getSite(uriInfo);
|
||||||
final ThemeInfo themeInfo = getTheme(site, page, themeVersion);
|
final ThemeInfo themeInfo = getTheme(site, theme, themeVersion);
|
||||||
return themes.process(result, themeInfo);
|
return themes.process(result, themeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -624,9 +626,12 @@ public class PagesRouter {
|
||||||
final Category category = getCategory(domain, pages, pagePath);
|
final Category category = getCategory(domain, pages, pagePath);
|
||||||
|
|
||||||
final Locale locale = new Locale(language);
|
final Locale locale = new Locale(language);
|
||||||
if (!category.getTitle().hasValue(locale)) {
|
// disabled. Needs to be decided if the available languages of the
|
||||||
throw new NotFoundException();
|
// index item or of the category are
|
||||||
}
|
// used to decide if a NotFoundException is thrown.
|
||||||
|
// if (!category.getTitle().hasValue(locale)) {
|
||||||
|
// throw new NotFoundException();
|
||||||
|
// }
|
||||||
|
|
||||||
globalizationHelper.setSelectedLocale(locale);
|
globalizationHelper.setSelectedLocale(locale);
|
||||||
|
|
||||||
|
|
@ -658,8 +663,10 @@ public class PagesRouter {
|
||||||
final String pageModelVersion) {
|
final String pageModelVersion) {
|
||||||
|
|
||||||
final Map<String, Object> parameters = new HashMap<>();
|
final Map<String, Object> parameters = new HashMap<>();
|
||||||
final Page page = PagesRouter.this.getPage(uriInfo, pagePath, language,
|
final Page page = getPage(uriInfo,
|
||||||
parameters);
|
pagePath,
|
||||||
|
language,
|
||||||
|
parameters);
|
||||||
|
|
||||||
final PageModel pageModel;
|
final PageModel pageModel;
|
||||||
if ("DRAFT".equals(pageModelVersion)) {
|
if ("DRAFT".equals(pageModelVersion)) {
|
||||||
|
|
|
||||||
|
|
@ -43,12 +43,13 @@ import org.libreccm.security.RoleRepository;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import static com.arsdigita.ui.admin.AdminUiConstants.*;
|
import static com.arsdigita.ui.admin.AdminUiConstants.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table displaying all permissions granted to a role.
|
* Table displaying all permissions granted to a role.
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
*/
|
*/
|
||||||
class RolePermissionsTable extends Table {
|
class RolePermissionsTable extends Table {
|
||||||
|
|
@ -113,7 +114,8 @@ class RolePermissionsTable extends Table {
|
||||||
final PermissionManager permissionManager = cdiUtil
|
final PermissionManager permissionManager = cdiUtil
|
||||||
.findBean(PermissionManager.class);
|
.findBean(PermissionManager.class);
|
||||||
final Role role = roleRepository.findById(
|
final Role role = roleRepository.findById(
|
||||||
Long.parseLong(selectedRoleId.getSelectedKey(state))).get();
|
Long.parseLong(selectedRoleId.getSelectedKey(state)))
|
||||||
|
.get();
|
||||||
final Permission permission = permissionManager
|
final Permission permission = permissionManager
|
||||||
.findById(Long.parseLong(key)).get();
|
.findById(Long.parseLong(key)).get();
|
||||||
if (permission.getObject() == null) {
|
if (permission.getObject() == null) {
|
||||||
|
|
@ -187,7 +189,8 @@ class RolePermissionsTable extends Table {
|
||||||
return result;
|
return result;
|
||||||
} else if (p1.getObject() != null
|
} else if (p1.getObject() != null
|
||||||
&& p1.getObject().getDisplayName() != null
|
&& p1.getObject().getDisplayName() != null
|
||||||
&& p2.getObject() != null) {
|
&& p2.getObject() != null
|
||||||
|
&& p2.getObject().getDisplayName() != null) {
|
||||||
return p1.getObject().getDisplayName()
|
return p1.getObject().getDisplayName()
|
||||||
.compareTo(p2.getObject().getDisplayName());
|
.compareTo(p2.getObject().getDisplayName());
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -10,16 +10,21 @@
|
||||||
<title>Category page</title>
|
<title>Category page</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<xsl:apply-templates select="indexItem" />
|
<xsl:apply-templates select="greetingItem" />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="indexItem">
|
<xsl:template match="greetingItem">
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
<xsl:value-of select="./title" />
|
<xsl:value-of select="./title" />
|
||||||
|
|
||||||
</h1>
|
</h1>
|
||||||
|
<p>
|
||||||
|
<xsl:value-of select="./description" />
|
||||||
|
</p>
|
||||||
|
<xsl:value-of disable-output-escaping="true" select="./text" />
|
||||||
|
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue