diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTable.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTable.java index 2e6850258..5f79a1a00 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTable.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTable.java @@ -85,7 +85,7 @@ class AssignedImagesTable extends Table { "cms.ui.authoring.assets.imagestep.assigned_images.properties_header", CmsConstants.CMS_BUNDLE)))); columnModel.add(new TableColumn( - COL_IMAGE_DATA, + COL_CAPTION, new Label(new GlobalizedMessage( "cms.ui.authoring.assets.imagestep.assigned_images.caption_header", CmsConstants.CMS_BUNDLE)))); @@ -95,7 +95,7 @@ class AssignedImagesTable extends Table { "cms.ui.authoring.assets.imagestep.assigned_images.move_header", CmsConstants.CMS_BUNDLE)))); columnModel.add(new TableColumn( - COL_IMAGE_DATA, + COL_REMOVE, new Label(new GlobalizedMessage( "cms.ui.authoring.assets.imagestep.assigned_images.remove_header", CmsConstants.CMS_BUNDLE)))); @@ -151,15 +151,14 @@ class AssignedImagesTable extends Table { .parseLong((String) event.getRowKey()); controller.moveAfter(selectedAttachment, destId); - } break; case COL_REMOVE: final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final ImageStepController controller = cdiUtil .findBean(ImageStepController.class); - controller.deleteAttachment(moveAttachmentModel - .getSelectedAttachment(state)); + controller.deleteAttachment(Long + .parseLong((String) event.getRowKey())); break; } } diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTableModel.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTableModel.java index 476125b8a..a22f392e9 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTableModel.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AssignedImagesTableModel.java @@ -73,7 +73,7 @@ class AssignedImagesTableModel implements TableModel { switch (columnIndex) { case AssignedImagesTable.COL_PREVIEW: return String - .format("%s/content-.sections/%s/images/" + .format("%s/content-sections/%s/images/" + "uuid-%s?width=150&height=100", CCMDispatcherServlet.getContextPath(), CMS.getContext().getContentSection().getLabel(), diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AvailableImages.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AvailableImages.java index 37c7cd440..8b70dbeff 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AvailableImages.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/AvailableImages.java @@ -151,7 +151,15 @@ class AvailableImages extends BoxPanel { public void cellSelected(final TableActionEvent event) throws FormProcessException { - final long imageId = (long) event.getRowKey(); + final Object rowKey = event.getRowKey(); + final long imageId; + if (rowKey instanceof Long) { + imageId = (Long) event.getRowKey(); + } else if(rowKey instanceof String) { + imageId = Long.parseLong((String) rowKey); + } else { + imageId = Long.parseLong(rowKey.toString()); + } final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final ImageStepController controller = cdiUtil diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/ImageStepController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/ImageStepController.java index 9e44978cf..af287a2f0 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/ImageStepController.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/authoring/assets/images/ImageStepController.java @@ -66,7 +66,7 @@ class ImageStepController { @Inject private ConfigurationManager confManager; - + @Inject private ContentItemRepository itemRepo; @@ -77,15 +77,15 @@ class ImageStepController { private ItemAttachmentManager attachmentManager; private Locale defaultLocale; - + @PostConstruct private void init() { - + final KernelConfig kernelConfig = confManager .findConfiguration(KernelConfig.class); defaultLocale = kernelConfig.getDefaultLocale(); } - + @Transactional(Transactional.TxType.REQUIRED) protected List> retrieveAssignedImages( final ContentItem fromContentItem) { @@ -257,6 +257,18 @@ class ImageStepController { entityManager.merge(toMove); } + @Transactional(Transactional.TxType.REQUIRED) + protected void deleteAttachment(final long attachmentId) { + + final ItemAttachment attachment = attachmentManager + .findById(attachmentId) + .orElseThrow(() -> new IllegalArgumentException(String + .format("No ItemAttachment with ID %d in the database.", + attachmentId))); + + deleteAttachment(attachment); + } + @Transactional(Transactional.TxType.REQUIRED) protected void deleteAttachment(final ItemAttachment attachment) { @@ -390,7 +402,7 @@ class ImageStepController { row.setImageUuid(image.getUuid()); if (image.getTitle().hasValue(selectedLocale)) { row.setTitle(image.getTitle().getValue(selectedLocale)); - } else if(image.getTitle().hasValue(defaultLocale)){ + } else if (image.getTitle().hasValue(defaultLocale)) { row.setTitle(image.getTitle().getValue(defaultLocale)); } else { row.setTitle(image.getTitle().getValue()); @@ -449,7 +461,7 @@ class ImageStepController { row.setType(image.getMimeType().toString()); if (image.getTitle().hasValue(selectedLocale)) { row.setTitle(image.getTitle().getValue(selectedLocale)); - } else if(image.getTitle().hasValue(defaultLocale)){ + } else if (image.getTitle().hasValue(defaultLocale)) { row.setTitle(image.getTitle().getValue(defaultLocale)); } else { row.setTitle(image.getTitle().getValue()); diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java b/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java index 9d6223b22..df17485c6 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java @@ -137,7 +137,7 @@ public class AssetRepository final Class type) { final TypedQuery query = getEntityManager() - .createNamedQuery("assetId", Asset.class) + .createNamedQuery("Asset.findByIdAndType", Asset.class) .setParameter("assetId", assetId) .setParameter("type", type); setAuthorizationParameters(query); diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentListManager.java b/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentListManager.java index 61d9da9d6..303b435ac 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentListManager.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AttachmentListManager.java @@ -197,7 +197,12 @@ public class AttachmentListManager { item.getClass()); final List lists = draft.getAttachments(); - final long lastOrder = lists.get(lists.size() - 1).getOrder(); + final long lastOrder; + if (lists.isEmpty()) { + lastOrder = 0; + } else { + lastOrder = lists.get(lists.size() - 1).getOrder(); + } final AttachmentList list = new AttachmentList(); list.setItem(draft); diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java b/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java index 8df51dc34..77ee12c45 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ItemAttachmentManager.java @@ -57,6 +57,7 @@ public class ItemAttachmentManager { final TypedQuery query = entityManager .createNamedQuery("ItemAttachment.findById", ItemAttachment.class); + query.setParameter("attachmentId", attachmentId); try { return Optional.of(query.getSingleResult()); } catch (NoResultException ex) { diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties index 518134126..ca9a562c8 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties @@ -413,3 +413,4 @@ 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.add=Add cms.ui.authoring.assets.imagestep.assigned_images.title_header=Title +cms.ui.authoring.assets.imagestep.assigned_images.remove=Remove diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties index 5ad2f6c56..6b835619b 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties @@ -410,3 +410,4 @@ cms.ui.authoring.assets.imagestep.available_images.none=Keine Bilder verf\u00fcg 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.assigned_images.title_header=Titel +cms.ui.authoring.assets.imagestep.assigned_images.remove=Entfernen diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties index dc11ea7f4..53c217805 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties @@ -369,3 +369,4 @@ 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.add=Add cms.ui.authoring.assets.imagestep.assigned_images.title_header=Title +cms.ui.authoring.assets.imagestep.assigned_images.remove=Remove