CCM NG/ccm-cms: Fixed some queries for getting avaiable images.

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4899 8810af33-2d31-482b-a856-94f89814c4df
jensp 2017-08-08 08:03:19 +00:00
parent aad83c111f
commit fa3d330c10
7 changed files with 67 additions and 15 deletions

View File

@ -31,6 +31,7 @@ class AssignedImageTableRow {
private long width; private long width;
private long height; private long height;
private String type; private String type;
private String title;
private String caption; private String caption;
public long getAttachmentId() { public long getAttachmentId() {
@ -81,6 +82,14 @@ class AssignedImageTableRow {
this.type = type; this.type = type;
} }
public String getTitle() {
return title;
}
public void setTitle(final String title) {
this.title = title;
}
public String getCaption() { public String getCaption() {
return caption; return caption;
} }

View File

@ -48,10 +48,11 @@ import org.librecms.contentsection.ItemAttachment;
class AssignedImagesTable extends Table { class AssignedImagesTable extends Table {
protected static final int COL_PREVIEW = 0; protected static final int COL_PREVIEW = 0;
protected static final int COL_IMAGE_DATA = 1; protected static final int COL_TITLE = 1;
protected static final int COL_CAPTION = 2; protected static final int COL_IMAGE_DATA = 2;
protected static final int COL_MOVE = 3; protected static final int COL_CAPTION = 3;
protected static final int COL_REMOVE = 4; protected static final int COL_MOVE = 4;
protected static final int COL_REMOVE = 5;
private final ItemSelectionModel itemSelectionModel; private final ItemSelectionModel itemSelectionModel;
private final ItemAttachmentSelectionModel moveAttachmentModel; private final ItemAttachmentSelectionModel moveAttachmentModel;
@ -73,6 +74,11 @@ class AssignedImagesTable extends Table {
new Label(new GlobalizedMessage( new Label(new GlobalizedMessage(
"cms.ui.authoring.assets.imagestep.assigned_images.preview_header", "cms.ui.authoring.assets.imagestep.assigned_images.preview_header",
CmsConstants.CMS_BUNDLE)))); CmsConstants.CMS_BUNDLE))));
columnModel.add(new TableColumn(
COL_TITLE,
new Label(new GlobalizedMessage(
"cms.ui.authoring.assets.imagestep.assigned_images.title_header",
CmsConstants.CMS_BUNDLE))));
columnModel.add(new TableColumn( columnModel.add(new TableColumn(
COL_IMAGE_DATA, COL_IMAGE_DATA,
new Label(new GlobalizedMessage( new Label(new GlobalizedMessage(

View File

@ -87,6 +87,8 @@ class AssignedImagesTableModel implements TableModel {
return imageProperties; return imageProperties;
} }
case AssignedImagesTable.COL_TITLE:
return currentRow.getTitle();
case AssignedImagesTable.COL_CAPTION: case AssignedImagesTable.COL_CAPTION:
return currentRow.getCaption(); return currentRow.getCaption();
case AssignedImagesTable.COL_MOVE: case AssignedImagesTable.COL_MOVE:

View File

@ -18,6 +18,9 @@
*/ */
package com.arsdigita.cms.ui.authoring.assets.images; package com.arsdigita.cms.ui.authoring.assets.images;
import com.arsdigita.kernel.KernelConfig;
import org.libreccm.configuration.ConfigurationManager;
import org.libreccm.l10n.LocalizedString; import org.libreccm.l10n.LocalizedString;
import org.librecms.assets.Image; import org.librecms.assets.Image;
import org.librecms.contentsection.AssetRepository; import org.librecms.contentsection.AssetRepository;
@ -35,6 +38,7 @@ import java.util.Locale;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped; import javax.enterprise.context.RequestScoped;
import javax.inject.Inject; import javax.inject.Inject;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
@ -54,21 +58,34 @@ import javax.transaction.Transactional;
@RequestScoped @RequestScoped
class ImageStepController { class ImageStepController {
@Inject
private EntityManager entityManager;
@Inject
private ContentItemRepository itemRepo;
@Inject @Inject
private AssetRepository assetRepo; private AssetRepository assetRepo;
@Inject @Inject
private AttachmentListManager attachmentListManager; private AttachmentListManager attachmentListManager;
@Inject
private ConfigurationManager confManager;
@Inject
private ContentItemRepository itemRepo;
@Inject
private EntityManager entityManager;
@Inject @Inject
private ItemAttachmentManager attachmentManager; private ItemAttachmentManager attachmentManager;
private Locale defaultLocale;
@PostConstruct
private void init() {
final KernelConfig kernelConfig = confManager
.findConfiguration(KernelConfig.class);
defaultLocale = kernelConfig.getDefaultLocale();
}
@Transactional(Transactional.TxType.REQUIRED) @Transactional(Transactional.TxType.REQUIRED)
protected List<ItemAttachment<Image>> retrieveAssignedImages( protected List<ItemAttachment<Image>> retrieveAssignedImages(
final ContentItem fromContentItem) { final ContentItem fromContentItem) {
@ -284,14 +301,15 @@ class ImageStepController {
query query
.select(criteriaBuilder.count(from)); .select(criteriaBuilder.count(from));
if (filter == null || filter.trim().isEmpty()) { if (filter == null || filter.trim().isEmpty()) {
if (excluededImages != null && !excluededImages.isEmpty()) { if (excluededImages != null && !excluededImages.isEmpty()) {
query.where(criteriaBuilder.not(from.in(excluededImages))); query.where(criteriaBuilder.not(from.in(excluededImages)));
} }
} else { } else {
if (excluededImages == null || excluededImages.isEmpty()) { if (excluededImages == null || excluededImages.isEmpty()) {
criteriaBuilder.like(titleValuesJoin, query.where(criteriaBuilder.like(titleValuesJoin,
String.format("%s%%", filter)); String.format("%s%%", filter)));
} else { } else {
query.where(criteriaBuilder.and( query.where(criteriaBuilder.and(
criteriaBuilder.not(from.in(excluededImages)), criteriaBuilder.not(from.in(excluededImages)),
@ -327,8 +345,9 @@ class ImageStepController {
} }
} else { } else {
if (excludedImages == null || excludedImages.isEmpty()) { if (excludedImages == null || excludedImages.isEmpty()) {
criteriaBuilder.like(titleValuesJoin, criteriaQuery
String.format("%s%%", filter)); .where(criteriaBuilder.like(titleValuesJoin,
String.format("%s%%", filter)));
} else { } else {
criteriaQuery.where(criteriaBuilder.and( criteriaQuery.where(criteriaBuilder.and(
criteriaBuilder.not(from.in(excludedImages)), criteriaBuilder.not(from.in(excludedImages)),
@ -369,7 +388,13 @@ class ImageStepController {
final AvailableImageTableRow row = new AvailableImageTableRow(); final AvailableImageTableRow row = new AvailableImageTableRow();
row.setImageId(image.getObjectId()); row.setImageId(image.getObjectId());
row.setImageUuid(image.getUuid()); row.setImageUuid(image.getUuid());
if (image.getTitle().hasValue(selectedLocale)) {
row.setTitle(image.getTitle().getValue(selectedLocale)); row.setTitle(image.getTitle().getValue(selectedLocale));
} else if(image.getTitle().hasValue(defaultLocale)){
row.setTitle(image.getTitle().getValue(defaultLocale));
} else {
row.setTitle(image.getTitle().getValue());
}
row.setFilename(image.getFileName()); row.setFilename(image.getFileName());
row.setWidth(image.getWidth()); row.setWidth(image.getWidth());
row.setHeight(image.getHeight()); row.setHeight(image.getHeight());
@ -422,6 +447,13 @@ class ImageStepController {
row.setWidth(image.getWidth()); row.setWidth(image.getWidth());
row.setHeight(image.getHeight()); row.setHeight(image.getHeight());
row.setType(image.getMimeType().toString()); row.setType(image.getMimeType().toString());
if (image.getTitle().hasValue(selectedLocale)) {
row.setTitle(image.getTitle().getValue(selectedLocale));
} else if(image.getTitle().hasValue(defaultLocale)){
row.setTitle(image.getTitle().getValue(defaultLocale));
} else {
row.setTitle(image.getTitle().getValue());
}
row.setCaption(image.getDescription().getValue(selectedLocale)); row.setCaption(image.getDescription().getValue(selectedLocale));
return row; return row;

View File

@ -412,3 +412,4 @@ cms.ui.authoring.assets.imagestep.assigned_images.cancel_add_image=Cancel
cms.ui.authoring.assets.imagestep.available_images.none=No images available cms.ui.authoring.assets.imagestep.available_images.none=No images available
cms.ui.authoring.assets.imagestep.available_images.title_header=Title cms.ui.authoring.assets.imagestep.available_images.title_header=Title
cms.ui.authoring.assets.imagestep.available_images.add=Add cms.ui.authoring.assets.imagestep.available_images.add=Add
cms.ui.authoring.assets.imagestep.assigned_images.title_header=Title

View File

@ -409,3 +409,4 @@ cms.ui.authoring.assets.imagestep.assigned_images.cancel_add_image=Abbrechen
cms.ui.authoring.assets.imagestep.available_images.none=Keine Bilder verf\u00fcgbar cms.ui.authoring.assets.imagestep.available_images.none=Keine Bilder verf\u00fcgbar
cms.ui.authoring.assets.imagestep.available_images.title_header=Titel cms.ui.authoring.assets.imagestep.available_images.title_header=Titel
cms.ui.authoring.assets.imagestep.available_images.add=Hinzuf\u00fcgen cms.ui.authoring.assets.imagestep.available_images.add=Hinzuf\u00fcgen
cms.ui.authoring.assets.imagestep.assigned_images.title_header=Titel

View File

@ -368,3 +368,4 @@ cms.ui.authoring.assets.imagestep.assigned_images.cancel_add_image=Cancel
cms.ui.authoring.assets.imagestep.available_images.none=No images available cms.ui.authoring.assets.imagestep.available_images.none=No images available
cms.ui.authoring.assets.imagestep.available_images.title_header=Title cms.ui.authoring.assets.imagestep.available_images.title_header=Title
cms.ui.authoring.assets.imagestep.available_images.add=Add cms.ui.authoring.assets.imagestep.available_images.add=Add
cms.ui.authoring.assets.imagestep.assigned_images.title_header=Title