diff --git a/gradle.properties b/gradle.properties index 1a710d3..c5ee6f5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Gradle Project settings projectName = imageshop -version = 2.0.3 +version = 2.0.4 # XP App values appDisplayName = ImageShop diff --git a/src/main/resources/admin/widgets/iimage/iimage.js b/src/main/resources/admin/widgets/iimage/iimage.js index 775d85f..cc10bb2 100644 --- a/src/main/resources/admin/widgets/iimage/iimage.js +++ b/src/main/resources/admin/widgets/iimage/iimage.js @@ -28,6 +28,13 @@ exports.get = function (req) { const iimageAppConfig = libs.iimage.getSiteConfig(contentId || sitesWithIImageAppInstalled[0]._id) + if (!iimageAppConfig) { + return { + contentType: 'text/html', + body: `${libs.iimage.translate('iimage.widget.context_panel.fragments.app_not_installed_in_site_fetched')}` + } + } + if (['iimage_host'].some(key => Object.keys(iimageAppConfig).indexOf(key) === -1)) { return { contentType: 'text/html', diff --git a/src/main/resources/assets/js/main.js b/src/main/resources/assets/js/main.js index 5cefab3..bfde2df 100644 --- a/src/main/resources/assets/js/main.js +++ b/src/main/resources/assets/js/main.js @@ -4,27 +4,26 @@ function main() { const syncImageShopInfoButton = document.getElementById('imageshop-sync-info-button') function setMessageEventListener (event) { + if (event.origin.indexOf('client.imageshop.no') === -1) return + const eventData = event.data.split(';') - const selectedPropertyRadioElement = document.querySelector(`input[name="inputName"]:checked`) || {} + const selectedPropertyRadioElement = document.querySelector(`input[name="inputName"]:checked`) changeUploadButtonState('loading') storeImageInEnonic({ imageData: JSON.parse(eventData[0]), - propertyName: selectedPropertyRadioElement.value, - propertyPath: selectedPropertyRadioElement.getAttribute('data-property-path') + propertyName: selectedPropertyRadioElement ? selectedPropertyRadioElement.value : undefined, + propertyPath: selectedPropertyRadioElement ? selectedPropertyRadioElement.getAttribute('data-property-path') : undefined }) + + window.removeEventListener('message', setMessageEventListener) } const imageshop = { openWindow: function () { - if (window.addEventListener) { - window.addEventListener('message', setMessageEventListener, { once: true }); - } else if (window.attachEvent) { - window.attachEvent('onmessage', setMessageEventListener); - } else { - window['message'] = setMessageEventListener - } + window.removeEventListener("message", setMessageEventListener); + window.addEventListener("message", setMessageEventListener); window.open(imageShopURL, 'imageshop', "width=950, height=650, scrollbars=1, inline=1"); } diff --git a/src/main/resources/i18n/phrases.properties b/src/main/resources/i18n/phrases.properties index 97031e2..c6e5b4a 100644 --- a/src/main/resources/i18n/phrases.properties +++ b/src/main/resources/i18n/phrases.properties @@ -1,8 +1,9 @@ iimage.widget.context_panel.display_name = ImageShop iimage.widget.context_panel.description = Search for images, edit and store them in Enonic -iimage.widget.context_panel.fragments.app_installed_in_multiples_sites = You have more than 1 site with the IImage app installed. Choose one to start uploading images -iimage.widget.context_panel.fragments.app_misconfigured = The IImage app is not configured properly. Please fill in the required fields in the IImage app settings -iimage.widget.context_panel.fragments.app_not_installed = The IImage app is not installed. +iimage.widget.context_panel.fragments.app_installed_in_multiples_sites = You have more than 1 site with the ImageShop app installed. Choose one to start uploading images +iimage.widget.context_panel.fragments.app_misconfigured = The ImageShop app is not configured properly. Please fill in the required fields in the ImageShop app settings +iimage.widget.context_panel.fragments.app_not_installed = The ImageShop app is not installed. +iimage.widget.context_panel.fragments.app_not_installed_in_site_fetched = Ensure the content you selected is placed under a site with the ImageShop installed iimage.site.iimage_imported_resources_folder = Imported resources folder iimage.site.settings = ImageShop Settings @@ -26,10 +27,10 @@ image.site.iimage_language_caption.help-text = Image caption name to be searched iimage.x-data.callback_url = Callback URL iimage.x-data.document_id = ImageShop ID -iimage.service.import-image.no_site_with_iimage_app_installed = No site with the IImage app installed +iimage.service.import-image.no_site_with_iimage_app_installed = No site with the ImageShop app installed iimage.service.import-image.no_folder_found = No imported image folder found iimage.service.import-image.image_imported_successfully = Image imported successfully -iimage.service.image_import_failed = Error importing image +iimage.service.import-image.image_import_failed = Error importing image iimage.fragments.general_error = An error occurred while importing the image. Please try again later. iimage.fragments.edit_image = Edit Image