From 1beae4d7135b67ebcf32b2edc41132d4b754e291 Mon Sep 17 00:00:00 2001 From: nobohan Date: Mon, 14 Mar 2022 14:42:04 +0100 Subject: [PATCH] AccompanyingCourseWorkEdit: download existing documents --- .../Entity/StoredObject.php | 4 +- .../public/module/async_upload/downloader.js | 3 +- .../public/module/async_upload/uploader.js | 4 +- .../_components/AddAsyncUploadDownloader.vue | 45 +++++++++++++++++++ .../components/FormEvaluation.vue | 13 +++++- 5 files changed, 63 insertions(+), 6 deletions(-) create mode 100644 src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/_components/AddAsyncUploadDownloader.vue diff --git a/src/Bundle/ChillDocStoreBundle/Entity/StoredObject.php b/src/Bundle/ChillDocStoreBundle/Entity/StoredObject.php index c512dba73..78387e7fe 100644 --- a/src/Bundle/ChillDocStoreBundle/Entity/StoredObject.php +++ b/src/Bundle/ChillDocStoreBundle/Entity/StoredObject.php @@ -61,13 +61,13 @@ class StoredObject implements AsyncFileInterface, Document /** * @var int[] * @ORM\Column(type="json", name="iv") - * @Serializer\Groups({"write"}) + * @Serializer\Groups({"read", "write"}) */ private array $iv = []; /** * @ORM\Column(type="json", name="key") - * @Serializer\Groups({"write"}) + * @Serializer\Groups({"read", "write"}) */ private array $keyInfos = []; diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/downloader.js b/src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/downloader.js index 4c82a8e4b..0e889c373 100644 --- a/src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/downloader.js +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/downloader.js @@ -73,6 +73,7 @@ var download = (button) => { button.type = mimeType; button.textContent = labelReady; if (hasFilename) { + button.download = filename; if (extension !== false) { button.download = button.download + '.' + extension; @@ -92,4 +93,4 @@ window.addEventListener('load', function(e) { initializeButtons(e.target); }); -module.exports = initializeButtons; +export { initializeButtons, download }; \ No newline at end of file diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/uploader.js b/src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/uploader.js index 35871245b..5def6a0b2 100644 --- a/src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/uploader.js +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/module/async_upload/uploader.js @@ -1,6 +1,6 @@ var algo = 'AES-CBC'; import Dropzone from 'dropzone'; -var initializeDownload = require('./downloader.js'); +import { initializeButtons } from './downloader.js'; /** @@ -359,7 +359,7 @@ var insertDownloadButton = (zone, zoneData) => { addBelowButton(newButton, zone, zoneData); //zone.appendChild(newButton); - initializeDownload(zone); + initializeButtons(zone); }; window.addEventListener('load', function(e) { diff --git a/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/_components/AddAsyncUploadDownloader.vue b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/_components/AddAsyncUploadDownloader.vue new file mode 100644 index 000000000..781c47d6f --- /dev/null +++ b/src/Bundle/ChillDocStoreBundle/Resources/public/vuejs/_components/AddAsyncUploadDownloader.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue index 7fe9bd278..ec412842e 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/components/FormEvaluation.vue @@ -108,6 +108,14 @@ > +
  • + + + +
  • @@ -162,6 +170,7 @@ import { mapGetters, mapState } from 'vuex'; import PickTemplate from 'ChillDocGeneratorAssets/vuejs/_components/PickTemplate.vue'; import {buildLink} from 'ChillDocGeneratorAssets/lib/document-generator'; import AddAsyncUpload from 'ChillDocStoreAssets/vuejs/_components/AddAsyncUpload.vue'; +import AddAsyncUploadDownloader from 'ChillDocStoreAssets/vuejs/_components/AddAsyncUploadDownloader.vue'; import ListWorkflowModal from 'ChillMainAssets/vuejs/_components/EntityWorkflow/ListWorkflowModal.vue'; import {buildLinkCreate} from 'ChillMainAssets/lib/entity-workflow/api.js'; @@ -187,7 +196,8 @@ const i18n = { document_title: "Titre du document", template_title: "Nom du template", browse: "Ajouter un document", - replace: "Remplacer" + replace: "Remplacer", + download: "Télécharger le fichier existant" } } }; @@ -199,6 +209,7 @@ export default { ckeditor: CKEditor.component, PickTemplate, AddAsyncUpload, + AddAsyncUploadDownloader, ListWorkflowModal, }, i18n,