CCM NG: Several small fixes
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5170 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
42b715036f
commit
324b30449f
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -77,9 +77,11 @@ public class ImageRenderer extends BinaryAssetRenderer {
|
|||
|
||||
result.put("width", image.getWidth());
|
||||
result.put("height", image.getHeight());
|
||||
result.put("legalMetadata",
|
||||
legalMetadataRenderer.render(image.getLegalMetadata(),
|
||||
language));
|
||||
if (image.getLegalMetadata() != null) {
|
||||
result.put("legalMetadata",
|
||||
legalMetadataRenderer.render(image.getLegalMetadata(),
|
||||
language));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 "
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,8 +663,10 @@ public class PagesRouter {
|
|||
final String pageModelVersion) {
|
||||
|
||||
final Map<String, Object> parameters = new HashMap<>();
|
||||
final Page page = PagesRouter.this.getPage(uriInfo, pagePath, language,
|
||||
parameters);
|
||||
final Page page = getPage(uriInfo,
|
||||
pagePath,
|
||||
language,
|
||||
parameters);
|
||||
|
||||
final PageModel pageModel;
|
||||
if ("DRAFT".equals(pageModelVersion)) {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue