| | |
| | | * Populate gallery fields |
| | | */ |
| | | populateGalleryField(fieldWrapper, fieldName, fieldValue, imagesData = {}) { |
| | | this.populateImageField(fieldWrapper, fieldName, fieldValue, imagesData); |
| | | if (fieldName === 'timeline') { |
| | | this.populateTimelineGallery(fieldWrapper, fieldName, fieldValue, imagesData); |
| | | } else { |
| | | this.populateImageField(fieldWrapper, fieldName, fieldValue, imagesData); |
| | | } |
| | | } |
| | | |
| | | populateTimelineGallery(fieldWrapper, fieldName, fieldValue, imagesData) |
| | | { |
| | | if (!fieldValue) { |
| | | return; |
| | | } |
| | | |
| | | const imageIds = Object.keys(fieldValue); |
| | | if (imageIds.length === 0) { |
| | | return; |
| | | } |
| | | |
| | | // Update image display |
| | | const grid = fieldWrapper.querySelector('.item-grid'); |
| | | const uploadContainer = fieldWrapper.querySelector('.file-upload-container'); |
| | | fieldWrapper.querySelector('.progress')?.remove(); |
| | | if (grid) { |
| | | window.removeChildren(grid); |
| | | imageIds.forEach(imageId => { |
| | | let image = window.getTemplate('timelineItem'); |
| | | let img = image.querySelector('img'); |
| | | |
| | | image.querySelector('video')?.remove(); |
| | | image.querySelector('.select-item span')?.remove(); |
| | | let data = fieldValue[imageId]; |
| | | |
| | | let imgData = imagesData[imageId]; |
| | | |
| | | img.src = imgData.medium; |
| | | |
| | | data = { ... data, ... imgData}; |
| | | |
| | | let fields = image.querySelectorAll('.field'); |
| | | fields.forEach(field => { |
| | | if (field.classList.contains('group')){ |
| | | return; |
| | | } |
| | | let input = field.querySelector('input, textarea'); |
| | | |
| | | let label = field.querySelector('label'); |
| | | let name = input.name.replace('upload_data::',''); |
| | | |
| | | let value = data[name]; |
| | | this.populateField(field, name, value, imagesData); |
| | | |
| | | let id = data.id; |
| | | let newName = `[${id}]${name}`; |
| | | [ |
| | | input.name, |
| | | input.id, |
| | | label.htmlFor |
| | | ] = [ |
| | | newName, |
| | | newName, |
| | | newName, |
| | | ] |
| | | }); |
| | | grid.append(image); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /** |