CCM NG: Several small fixes

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5170 8810af33-2d31-482b-a856-94f89814c4df
jensp 2017-12-13 17:55:36 +00:00
parent 49be71c83e
commit 45eef357c4
12 changed files with 104 additions and 37 deletions

View File

@ -339,6 +339,8 @@ class CategoryItemPane extends BaseItemPane {
.getValueFromLocalizedString(item.getTitle(),
item::getDisplayName);
} else if (indexObjects.isEmpty()){
itemTitle = "None";
} else {
final CcmObject indexObj = indexObjects.get(0);
itemTitle = Objects.toString(indexObj);

View File

@ -26,6 +26,7 @@ import java.util.Locale;
import java.util.Map;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Any;
import javax.enterprise.inject.Instance;
import javax.enterprise.util.AnnotationLiteral;
import javax.inject.Inject;
@ -43,6 +44,7 @@ public class AssetRenderers {
.getLogger(AssetRenderers.class);
@Inject
@Any
private Instance<AbstractAssetRenderer> renderers;
/**

View File

@ -77,9 +77,11 @@ public class ImageRenderer extends BinaryAssetRenderer {
result.put("width", image.getWidth());
result.put("height", image.getHeight());
if (image.getLegalMetadata() != null) {
result.put("legalMetadata",
legalMetadataRenderer.render(image.getLegalMetadata(),
language));
}
}
}

View File

@ -43,11 +43,11 @@ public abstract class AbstractContentItemRenderer implements Serializable {
private static final long serialVersionUID = 1290408390406469580L;
private final AssetRenderers assetRenderers;
public AbstractContentItemRenderer(final AssetRenderers assetRenderers) {
this.assetRenderers = assetRenderers;
}
// private final AssetRenderers assetRenderers;
//
// public AbstractContentItemRenderer(final AssetRenderers assetRenderers) {
// this.assetRenderers = assetRenderers;
// }
/**
* This method should be called to render a {@link ContentItem}. The method
@ -122,6 +122,8 @@ public abstract class AbstractContentItemRenderer implements Serializable {
final Locale language,
final Map<String, Object> result);
protected abstract AssetRenderers getAssetRenderers();
/**
* Renders the {@link ContentType} of an {@link ContentItem}. The generated
* map contains the following values:
@ -235,7 +237,7 @@ public abstract class AbstractContentItemRenderer implements Serializable {
result.put("uuid", attachment.getUuid());
result.put("sortKey", attachment.getSortKey());
final AbstractAssetRenderer renderer = assetRenderers
final AbstractAssetRenderer renderer = getAssetRenderers()
.findRenderer(attachment.getAsset().getClass());
result.put("asset", renderer.render(attachment.getAsset(), language));

View File

@ -40,9 +40,12 @@ public class ArticleRenderer extends AbstractContentItemRenderer {
private static final long serialVersionUID = 8355183377902033759L;
@Inject
public ArticleRenderer(final AssetRenderers assetRenderers) {
super(assetRenderers);
}
private AssetRenderers assetRenderers;
// @Inject
// public ArticleRenderer(final AssetRenderers assetRenderers) {
// super(assetRenderers);
// }
/**
* 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.
*/
@Override
public void renderItem(final ContentItem item,
protected void renderItem(final ContentItem item,
final Locale language,
final Map<String, Object> result) {
@ -71,7 +74,11 @@ public class ArticleRenderer extends AbstractContentItemRenderer {
}
result.put("text", article.getText().getValue(language));
}
@Override
public AssetRenderers getAssetRenderers() {
return assetRenderers;
}
}

View File

@ -21,12 +21,15 @@ package org.librecms.pagemodel.contentitems;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.librecms.contentsection.ContentItem;
import org.librecms.contenttypes.Article;
import org.librecms.pagemodel.assets.AssetRenderers;
import java.io.Serializable;
import java.util.Locale;
import java.util.Map;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Any;
import javax.enterprise.inject.Instance;
import javax.enterprise.util.AnnotationLiteral;
import javax.inject.Inject;
@ -39,7 +42,9 @@ import javax.inject.Inject;
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@RequestScoped
public class ContentItemRenderers {
public class ContentItemRenderers implements Serializable {
private static final long serialVersionUID = 4038159486301146385L;
private static final Logger LOGGER = LogManager
.getLogger(ContentItemRenderers.class);
@ -48,6 +53,7 @@ public class ContentItemRenderers {
private AssetRenderers assetRenderers;
@Inject
@Any
private Instance<AbstractContentItemRenderer> renderers;
/**
@ -98,7 +104,7 @@ public class ContentItemRenderers {
LOGGER.warn("No renderer for item type \"{}\" and mode "
+ "\"--DEFAULT--\". Returning default renderer.",
itemType.getName());
return new AbstractContentItemRenderer(assetRenderers) {
return new AbstractContentItemRenderer() {
private static final long serialVersionUID
= -4679445070846896396L;
@ -110,6 +116,11 @@ public class ContentItemRenderers {
//Nothing here.
}
@Override
public AssetRenderers getAssetRenderers() {
return assetRenderers;
}
};
} else {
LOGGER.warn("No renderer for item type \"{}\" and mode "

View File

@ -38,9 +38,12 @@ public class EventRenderer extends AbstractContentItemRenderer {
private static final long serialVersionUID = -3517404651544429745L;
@Inject
public EventRenderer(final AssetRenderers assetRenderers) {
super(assetRenderers);
}
private AssetRenderers assetRenderers;
// @Inject
// public EventRenderer(final AssetRenderers assetRenderers) {
// super(assetRenderers);
// }
/**
* 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));
}
@Override
protected AssetRenderers getAssetRenderers() {
return assetRenderers;
}
}

View File

@ -41,9 +41,12 @@ public class MultiPartArticleRenderer extends AbstractContentItemRenderer {
private static final long serialVersionUID = -4298383182795585868L;
@Inject
public MultiPartArticleRenderer(final AssetRenderers assetRenderers) {
super(assetRenderers);
}
private AssetRenderers assetRenderers;
// @Inject
// public MultiPartArticleRenderer(final AssetRenderers assetRenderers) {
// super(assetRenderers);
// }
/**
* Renders the provided {@link MultiPartArticle}. The following values are
@ -120,4 +123,10 @@ public class MultiPartArticleRenderer extends AbstractContentItemRenderer {
return result;
}
@Override
protected AssetRenderers getAssetRenderers() {
return assetRenderers;
}
}

View File

@ -40,10 +40,12 @@ public class NewsRenderer extends AbstractContentItemRenderer {
private static final long serialVersionUID = -493301428054148505L;
@Inject
public NewsRenderer(final AssetRenderers assetRenderers) {
super(assetRenderers);
}
private AssetRenderers assetRenderers;
// @Inject
// public NewsRenderer(final AssetRenderers assetRenderers) {
// super(assetRenderers);
// }
/**
* Renders the provided {@link News} item. The following values are put into
* {@code result}:
@ -75,4 +77,9 @@ public class NewsRenderer extends AbstractContentItemRenderer {
result.put("releaseDate", news.getReleaseDate());
}
@Override
protected AssetRenderers getAssetRenderers() {
return assetRenderers;
}
}

View File

@ -191,7 +191,9 @@ public class PagesRouter {
uriInfo, "/", itemName, language, pageModelVersion);
}
final Site site = getSite(uriInfo);
final ThemeInfo themeInfo = getTheme(site, "/", themeVersion);
final ThemeInfo themeInfo = getTheme(site,
theme,
themeVersion);
return themes.process(result, themeInfo);
}
@ -413,7 +415,7 @@ public class PagesRouter {
}
final Site site = getSite(uriInfo);
final ThemeInfo themeInfo = getTheme(site, page, themeVersion);
final ThemeInfo themeInfo = getTheme(site, theme, themeVersion);
return themes.process(result, themeInfo);
}
@ -624,9 +626,12 @@ public class PagesRouter {
final Category category = getCategory(domain, pages, pagePath);
final Locale locale = new Locale(language);
if (!category.getTitle().hasValue(locale)) {
throw new NotFoundException();
}
// disabled. Needs to be decided if the available languages of the
// 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);
@ -658,7 +663,9 @@ public class PagesRouter {
final String pageModelVersion) {
final Map<String, Object> parameters = new HashMap<>();
final Page page = PagesRouter.this.getPage(uriInfo, pagePath, language,
final Page page = getPage(uriInfo,
pagePath,
language,
parameters);
final PageModel pageModel;

View File

@ -43,6 +43,7 @@ import org.libreccm.security.RoleRepository;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import static com.arsdigita.ui.admin.AdminUiConstants.*;
@ -113,7 +114,8 @@ class RolePermissionsTable extends Table {
final PermissionManager permissionManager = cdiUtil
.findBean(PermissionManager.class);
final Role role = roleRepository.findById(
Long.parseLong(selectedRoleId.getSelectedKey(state))).get();
Long.parseLong(selectedRoleId.getSelectedKey(state)))
.get();
final Permission permission = permissionManager
.findById(Long.parseLong(key)).get();
if (permission.getObject() == null) {
@ -187,7 +189,8 @@ class RolePermissionsTable extends Table {
return result;
} else if (p1.getObject() != null
&& p1.getObject().getDisplayName() != null
&& p2.getObject() != null) {
&& p2.getObject() != null
&& p2.getObject().getDisplayName() != null) {
return p1.getObject().getDisplayName()
.compareTo(p2.getObject().getDisplayName());
} else {

View File

@ -10,16 +10,21 @@
<title>Category page</title>
</head>
<body>
<xsl:apply-templates select="indexItem" />
<xsl:apply-templates select="greetingItem" />
</body>
</html>
</xsl:template>
<xsl:template match="indexItem">
<xsl:template match="greetingItem">
<h1>
<xsl:value-of select="./title" />
</h1>
<p>
<xsl:value-of select="./description" />
</p>
<xsl:value-of disable-output-escaping="true" select="./text" />
</xsl:template>