From 7fd867d6f93ed36bb7d07c684966123daa40f16a Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sat, 15 Aug 2020 14:34:53 +0200 Subject: delete items from gallery --- .../views/media/components/media.formGallery.js | 42 ++++++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/animism-align/frontend/app/views/media/components/media.formGallery.js b/animism-align/frontend/app/views/media/components/media.formGallery.js index 5f7f653..d978b83 100644 --- a/animism-align/frontend/app/views/media/components/media.formGallery.js +++ b/animism-align/frontend/app/views/media/components/media.formGallery.js @@ -70,6 +70,7 @@ export default class MediaGalleryForm extends Component { this.handleSettingsChange('multiple', { image_order: new_image_order, image_lookup: image_lookup, + caption_lookup: data.settings.caption_lookup || {}, thumbnail_lookup: data.settings.thumbnail_lookup || {}, }) return this.uploadResizedFiles(files, added_image_order) @@ -180,6 +181,35 @@ export default class MediaGalleryForm extends Component { } } + handleDeleteItem(id) { + let { image_order, image_lookup, thumbnail_lookup, display_lookup, caption_lookup } = this.props.data.settings + const new_image_order = image_order.filter(n => n !== id) + caption_lookup = caption_lookup || {} + const image_lookup_upload_id = (image_lookup[id] || {}).id + if (image_lookup_upload_id) { + actions.upload.destroy({ id: image_lookup_upload_id }) + } + const thumbnail_lookup_upload_id = (thumbnail_lookup[id] || {}).id + if (thumbnail_lookup_upload_id) { + actions.upload.destroy({ id: thumbnail_lookup_upload_id }) + } + const display_lookup_upload_id = (display_lookup[id] || {}).id + if (display_lookup_upload_id) { + actions.upload.destroy({ id: display_lookup_upload_id }) + } + delete image_lookup[id] + delete thumbnail_lookup[id] + delete display_lookup[id] + delete caption_lookup[id] + this.handleSettingsChange('multiple', { + image_order: new_image_order, + image_lookup: { ...image_lookup }, + thumbnail_lookup: { ...thumbnail_lookup }, + display_lookup: { ...display_lookup }, + caption_lookup: { ...caption_lookup }, + }) + } + render() { const { data } = this.props const { image_order, image_lookup, thumbnail_lookup, caption_lookup } = data.settings @@ -206,11 +236,16 @@ export default class MediaGalleryForm extends Component { key={image_id} image={image_lookup[image_id]} thumbnail={thumbnail_lookup[image_id]} - onClick={e => { + onEdit={e => { e.preventDefault() e.stopPropagation() this.setState({ edit_image_id: image_id }) }} + onDestroy={e => { + e.preventDefault() + e.stopPropagation() + this.handleDeleteItem(image_id) + }} /> ))} @@ -233,7 +268,7 @@ const initialCaptionData = (caption_lookup, image_id) => { return caption_lookup[image_id] || {} } -const GalleryListItem = ({ id, key, image, thumbnail, onClick }) => { +const GalleryListItem = ({ id, key, image, thumbnail, onEdit, onDestroy }) => { // console.log(image, thumbnail) return (
@@ -241,7 +276,8 @@ const GalleryListItem = ({ id, key, image, thumbnail, onClick }) => { ? (
- + +
) : } -- cgit v1.2.3-70-g09d2