From 5c7ee78cd6cec80682f8a5bba52001d2588566bf Mon Sep 17 00:00:00 2001 From: Martin Artnik Date: Thu, 5 Oct 2023 15:44:41 +0200 Subject: [PATCH] Fix attachment issues [SCI-9410] --- app/assets/javascripts/sitewide/marvinjs_editor.js | 3 +++ app/assets/stylesheets/shared/file_preview.scss | 6 ++++++ app/javascript/vue/shared/content/attachments.vue | 1 + .../vue/shared/content/attachments/context_menu.vue | 7 +++++++ app/javascript/vue/shared/content/attachments/inline.vue | 1 + app/javascript/vue/shared/content/attachments/list.vue | 1 + .../vue/shared/content/attachments/mixins/context_menu.js | 3 +++ .../vue/shared/content/attachments/thumbnail.vue | 2 ++ app/javascript/vue/shared/content/mixins/attachments.js | 4 +--- app/javascript/vue/shared/isInViewPort.js | 2 ++ app/javascript/vue/shared/menu_dropdown.vue | 2 +- app/views/shared/file_preview/_content.html.erb | 2 +- 12 files changed, 29 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/sitewide/marvinjs_editor.js b/app/assets/javascripts/sitewide/marvinjs_editor.js index 38021f77f..9694fb1d9 100644 --- a/app/assets/javascripts/sitewide/marvinjs_editor.js +++ b/app/assets/javascripts/sitewide/marvinjs_editor.js @@ -201,6 +201,8 @@ var MarvinJsEditorApi = (function() { } $(marvinJsModal).modal('hide'); config.button.dataset.inProgress = false; + + if (MarvinJsEditor.saveCallback) MarvinJsEditor.saveCallback(); }, error: function(response) { if (response.status === 403) { @@ -295,6 +297,7 @@ $(document).on('click', '.marvinjs-edit-button', function() { var editButton = $(this); $.post(editButton.data('sketch-start-edit-url')); $('#filePreviewModal').modal('hide'); + MarvinJsEditor.open({ mode: 'edit', data: editButton.data('sketch-description'), diff --git a/app/assets/stylesheets/shared/file_preview.scss b/app/assets/stylesheets/shared/file_preview.scss index 99ca6c27f..0dedc1d06 100644 --- a/app/assets/stylesheets/shared/file_preview.scss +++ b/app/assets/stylesheets/shared/file_preview.scss @@ -36,6 +36,12 @@ text-align: center; width: calc(100% - 4rem); + &.file-preview-container__wopi { + height: 100%; + margin: 0; + width: 100%; + } + .asset-image { background-color: var(--sn-white); } diff --git a/app/javascript/vue/shared/content/attachments.vue b/app/javascript/vue/shared/content/attachments.vue index eb3eb383d..a5cc0fc31 100644 --- a/app/javascript/vue/shared/content/attachments.vue +++ b/app/javascript/vue/shared/content/attachments.vue @@ -32,6 +32,7 @@ @attachment:viewMode="updateAttachmentViewMode" @attachment:delete="deleteAttachment(attachment.id)" @attachment:moved="attachmentMoved" + @attachment:uploaded="$emit('attachment:uploaded')" /> diff --git a/app/javascript/vue/shared/content/attachments/context_menu.vue b/app/javascript/vue/shared/content/attachments/context_menu.vue index bb50a66e4..768093634 100644 --- a/app/javascript/vue/shared/content/attachments/context_menu.vue +++ b/app/javascript/vue/shared/content/attachments/context_menu.vue @@ -154,7 +154,14 @@ openOVEditor(url) { window.showIFrameModal(url); }, + reloadAttachments() { + this.$emit('attachment:uploaded'); + }, openMarvinJsEditor() { + MarvinJsEditor.initNewButton( + this.$refs.marvinjsEditButton, + this.reloadAttachments + ); $(this.$refs.marvinjsEditButton).trigger('click'); }, openScinoteEditor() { diff --git a/app/javascript/vue/shared/content/attachments/inline.vue b/app/javascript/vue/shared/content/attachments/inline.vue index 2f69db3a2..3f2da8b4c 100644 --- a/app/javascript/vue/shared/content/attachments/inline.vue +++ b/app/javascript/vue/shared/content/attachments/inline.vue @@ -33,6 +33,7 @@ @attachment:viewMode="updateViewMode" @attachment:delete="deleteAttachment" @attachment:moved="attachmentMoved" + @attachment:uploaded="reloadAttachments" /> diff --git a/app/javascript/vue/shared/content/attachments/mixins/context_menu.js b/app/javascript/vue/shared/content/attachments/mixins/context_menu.js index ffc289c3c..624f9bb9c 100644 --- a/app/javascript/vue/shared/content/attachments/mixins/context_menu.js +++ b/app/javascript/vue/shared/content/attachments/mixins/context_menu.js @@ -18,6 +18,9 @@ export default { HelperModule.flashAlertMsg(this.i18n.t('general.no_permissions'), 'danger'); } }); + }, + reloadAttachments() { + this.$emit('attachment:uploaded'); } } }; diff --git a/app/javascript/vue/shared/content/attachments/thumbnail.vue b/app/javascript/vue/shared/content/attachments/thumbnail.vue index 3b1107441..b7f0b99a1 100644 --- a/app/javascript/vue/shared/content/attachments/thumbnail.vue +++ b/app/javascript/vue/shared/content/attachments/thumbnail.vue @@ -48,6 +48,7 @@ :href="attachment.attributes.urls.edit_asset" id="wopi_file_edit_button" :class="attachment.attributes.wopi_context.edit_supported ? '' : 'disabled'" + target="_blank" > @@ -102,6 +103,7 @@ @attachment:viewMode="updateViewMode" @attachment:delete="deleteAttachment" @attachment:moved="attachmentMoved" + @attachment:uploaded="reloadAttachments" :withBorder="true" /> { - this.loadAttachments - }); + MarvinJsEditor.initNewButton('.new-marvinjs-upload-button', this.loadAttachments); button.click(); }, openWopiFileModal() { diff --git a/app/javascript/vue/shared/isInViewPort.js b/app/javascript/vue/shared/isInViewPort.js index fb14bc191..bb15bd4e3 100644 --- a/app/javascript/vue/shared/isInViewPort.js +++ b/app/javascript/vue/shared/isInViewPort.js @@ -1,4 +1,6 @@ export default function isInViewPort(el) { + if (!el) return; + const rect = el.getBoundingClientRect(); return ( diff --git a/app/javascript/vue/shared/menu_dropdown.vue b/app/javascript/vue/shared/menu_dropdown.vue index f3adf3c69..308b2ed24 100644 --- a/app/javascript/vue/shared/menu_dropdown.vue +++ b/app/javascript/vue/shared/menu_dropdown.vue @@ -19,7 +19,7 @@