mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
tentative to add asyncupload into modal
This commit is contained in:
parent
154f976762
commit
5f71b46bb7
@ -16,8 +16,8 @@
|
|||||||
<div class="input-group mb-3">
|
<div class="input-group mb-3">
|
||||||
<select class="form-select" v-model="template">
|
<select class="form-select" v-model="template">
|
||||||
<option disabled selected value="">{{ $t('choose_a_template') }}</option>
|
<option disabled selected value="">{{ $t('choose_a_template') }}</option>
|
||||||
<template v-for="t in templates">
|
<template v-for="t in templates" :key="t.id">
|
||||||
<option v-bind:value="t.id">{{ t.name.fr || 'Aucun nom défini' }}</option>
|
<option :value="t.id" >{{ t.name.fr || 'Aucun nom défini' }}</option>
|
||||||
</template>
|
</template>
|
||||||
</select>
|
</select>
|
||||||
<a v-if="canGenerate" class="btn btn-update btn-sm change-icon" :href="buildUrlGenerate" @click.prevent="clickGenerate($event, buildUrlGenerate)"><i class="fa fa-fw fa-cog"></i></a>
|
<a v-if="canGenerate" class="btn btn-update btn-sm change-icon" :href="buildUrlGenerate" @click.prevent="clickGenerate($event, buildUrlGenerate)"><i class="fa fa-fw fa-cog"></i></a>
|
||||||
|
@ -4,12 +4,12 @@ var initializeDownload = require('./downloader.js');
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* define a dropzone for chill usage
|
* define a dropzone for chill usage
|
||||||
*
|
*
|
||||||
* An event is launched when dropzone is initialize, allowing to customize events
|
* An event is launched when dropzone is initialize, allowing to customize events
|
||||||
* on dropzone :
|
* on dropzone :
|
||||||
*
|
*
|
||||||
* ```
|
* ```
|
||||||
* window.addEventListener("chill_dropzone_initialized", (e) => {
|
* window.addEventListener("chill_dropzone_initialized", (e) => {
|
||||||
* // do something with dropzone:
|
* // do something with dropzone:
|
||||||
@ -18,7 +18,7 @@ var initializeDownload = require('./downloader.js');
|
|||||||
* });
|
* });
|
||||||
* });
|
* });
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// load css
|
// load css
|
||||||
@ -37,7 +37,6 @@ var keyDefinition = {
|
|||||||
|
|
||||||
var searchForZones = function(root) {
|
var searchForZones = function(root) {
|
||||||
var zones = root.querySelectorAll('div[data-stored-object]');
|
var zones = root.querySelectorAll('div[data-stored-object]');
|
||||||
|
|
||||||
for(let i=0; i < zones.length; i++) {
|
for(let i=0; i < zones.length; i++) {
|
||||||
initialize(zones[i]);
|
initialize(zones[i]);
|
||||||
}
|
}
|
||||||
@ -48,32 +47,32 @@ var getUploadUrl = function(zoneData, files) {
|
|||||||
generateTempUrlPost = zoneData.zone.querySelector('input[data-async-file-upload]').dataset.generateTempUrlPost,
|
generateTempUrlPost = zoneData.zone.querySelector('input[data-async-file-upload]').dataset.generateTempUrlPost,
|
||||||
oReq = new XMLHttpRequest()
|
oReq = new XMLHttpRequest()
|
||||||
;
|
;
|
||||||
|
|
||||||
// arg, dropzone, you cannot handle async upload...
|
// arg, dropzone, you cannot handle async upload...
|
||||||
oReq.open("GET", generateTempUrlPost, false);
|
oReq.open("GET", generateTempUrlPost, false);
|
||||||
oReq.send();
|
oReq.send();
|
||||||
|
|
||||||
if (oReq.readyState !== XMLHttpRequest.DONE) {
|
if (oReq.readyState !== XMLHttpRequest.DONE) {
|
||||||
throw new Error("Error while fetching url to upload");
|
throw new Error("Error while fetching url to upload");
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneData.params = JSON.parse(oReq.responseText);
|
zoneData.params = JSON.parse(oReq.responseText);
|
||||||
|
|
||||||
return zoneData.params.url;
|
return zoneData.params.url;
|
||||||
};
|
};
|
||||||
|
|
||||||
var encryptFile = function(originalFile, zoneData, done) {
|
var encryptFile = function(originalFile, zoneData, done) {
|
||||||
var
|
var
|
||||||
iv = crypto.getRandomValues(new Uint8Array(16)),
|
iv = crypto.getRandomValues(new Uint8Array(16)),
|
||||||
reader = new FileReader(),
|
reader = new FileReader(),
|
||||||
jsKey, rawKey
|
jsKey, rawKey
|
||||||
;
|
;
|
||||||
|
|
||||||
zoneData.originalType = originalFile.type;
|
zoneData.originalType = originalFile.type;
|
||||||
|
|
||||||
reader.onload = e => {
|
reader.onload = e => {
|
||||||
window.crypto.subtle.generateKey(keyDefinition, true, [ "encrypt", "decrypt" ])
|
window.crypto.subtle.generateKey(keyDefinition, true, [ "encrypt", "decrypt" ])
|
||||||
.then(key => {
|
.then(key => {
|
||||||
jsKey = key;
|
jsKey = key;
|
||||||
|
|
||||||
// we register the key somwhere
|
// we register the key somwhere
|
||||||
@ -90,34 +89,34 @@ var encryptFile = function(originalFile, zoneData, done) {
|
|||||||
rawKey: rawKey,
|
rawKey: rawKey,
|
||||||
iv: iv
|
iv: iv
|
||||||
};
|
};
|
||||||
|
|
||||||
done(new File( [ encrypted ], zoneData.suffix));
|
done(new File( [ encrypted ], zoneData.suffix));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
reader.readAsArrayBuffer(originalFile);
|
reader.readAsArrayBuffer(originalFile);
|
||||||
};
|
};
|
||||||
|
|
||||||
var addBelowButton = (btn, zone, zoneData) => {
|
var addBelowButton = (btn, zone, zoneData) => {
|
||||||
let
|
let
|
||||||
belowZone = zone.querySelector('.chill-dropzone__below-zone');
|
belowZone = zone.querySelector('.chill-dropzone__below-zone');
|
||||||
|
|
||||||
if (belowZone === null) {
|
if (belowZone === null) {
|
||||||
belowZone = document.createElement('div');
|
belowZone = document.createElement('div');
|
||||||
belowZone.classList.add('chill-dropzone__below-zone');
|
belowZone.classList.add('chill-dropzone__below-zone');
|
||||||
zone.appendChild(belowZone);
|
zone.appendChild(belowZone);
|
||||||
}
|
}
|
||||||
|
|
||||||
belowZone.appendChild(btn);
|
belowZone.appendChild(btn);
|
||||||
};
|
};
|
||||||
|
|
||||||
var createZone = (zone, zoneData) => {
|
var createZone = (zone, zoneData) => {
|
||||||
var
|
var
|
||||||
created = document.createElement('div'),
|
created = document.createElement('div'),
|
||||||
initMessage = document.createElement('div'),
|
initMessage = document.createElement('div'),
|
||||||
initContent = zone.dataset.labelInitMessage,
|
initContent = zone.dataset.labelInitMessage,
|
||||||
dropzoneI;
|
dropzoneI;
|
||||||
|
|
||||||
created.classList.add('dropzone');
|
created.classList.add('dropzone');
|
||||||
initMessage.classList.add('dz-message');
|
initMessage.classList.add('dz-message');
|
||||||
initMessage.appendChild(document.createTextNode(initContent));
|
initMessage.appendChild(document.createTextNode(initContent));
|
||||||
@ -142,7 +141,7 @@ var createZone = (zone, zoneData) => {
|
|||||||
return zoneData.suffix;
|
return zoneData.suffix;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
dropzoneI.on("sending", function(file, xhr, formData) {
|
dropzoneI.on("sending", function(file, xhr, formData) {
|
||||||
formData.append("redirect", zoneData.params.redirect);
|
formData.append("redirect", zoneData.params.redirect);
|
||||||
formData.append("max_file_size", zoneData.params.max_file_size);
|
formData.append("max_file_size", zoneData.params.max_file_size);
|
||||||
@ -150,24 +149,24 @@ var createZone = (zone, zoneData) => {
|
|||||||
formData.append("expires", zoneData.params.expires);
|
formData.append("expires", zoneData.params.expires);
|
||||||
formData.append("signature", zoneData.params.signature);
|
formData.append("signature", zoneData.params.signature);
|
||||||
});
|
});
|
||||||
|
|
||||||
dropzoneI.on("success", function(file, response) {
|
dropzoneI.on("success", function(file, response) {
|
||||||
zoneData.currentFile = file;
|
zoneData.currentFile = file;
|
||||||
storeDataInForm(zone, zoneData);
|
storeDataInForm(zone, zoneData);
|
||||||
});
|
});
|
||||||
|
|
||||||
dropzoneI.on("addedfile", function(file) {
|
dropzoneI.on("addedfile", function(file) {
|
||||||
if (zoneData.hasOwnProperty('currentFile')) {
|
if (zoneData.hasOwnProperty('currentFile')) {
|
||||||
dropzoneI.removeFile(zoneData.currentFile);
|
dropzoneI.removeFile(zoneData.currentFile);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
dropzoneI.on("removedfile", function(file) {
|
dropzoneI.on("removedfile", function(file) {
|
||||||
removeDataInForm(zone, zoneData);
|
removeDataInForm(zone, zoneData);
|
||||||
});
|
});
|
||||||
|
|
||||||
zone.insertBefore(created, zone.firstChild);
|
zone.insertBefore(created, zone.firstChild);
|
||||||
|
|
||||||
let event = new CustomEvent("chill_dropzone_initialized", {
|
let event = new CustomEvent("chill_dropzone_initialized", {
|
||||||
detail: {
|
detail: {
|
||||||
dropzone: dropzoneI,
|
dropzone: dropzoneI,
|
||||||
@ -179,7 +178,7 @@ var createZone = (zone, zoneData) => {
|
|||||||
|
|
||||||
|
|
||||||
var initialize = function(zone) {
|
var initialize = function(zone) {
|
||||||
var
|
var
|
||||||
allowRemove = zone.dataset.allowRemove,
|
allowRemove = zone.dataset.allowRemove,
|
||||||
zoneData = { zone: zone, suffix: createFilename(), allowRemove: allowRemove, old: null }
|
zoneData = { zone: zone, suffix: createFilename(), allowRemove: allowRemove, old: null }
|
||||||
;
|
;
|
||||||
@ -204,13 +203,13 @@ var createFilename = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var storeDataInForm = (zone, zoneData) => {
|
var storeDataInForm = (zone, zoneData) => {
|
||||||
var
|
var
|
||||||
inputKey = zone.querySelector('input[data-stored-object-key]'),
|
inputKey = zone.querySelector('input[data-stored-object-key]'),
|
||||||
inputIv = zone.querySelector('input[data-stored-object-iv]'),
|
inputIv = zone.querySelector('input[data-stored-object-iv]'),
|
||||||
inputObject = zone.querySelector('input[data-async-file-upload]'),
|
inputObject = zone.querySelector('input[data-async-file-upload]'),
|
||||||
inputType = zone.querySelector('input[data-async-file-type]')
|
inputType = zone.querySelector('input[data-async-file-type]')
|
||||||
;
|
;
|
||||||
|
|
||||||
inputKey.value = JSON.stringify(zoneData.crypto.rawKey);
|
inputKey.value = JSON.stringify(zoneData.crypto.rawKey);
|
||||||
inputIv.value = JSON.stringify(Array.from(zoneData.crypto.iv));
|
inputIv.value = JSON.stringify(Array.from(zoneData.crypto.iv));
|
||||||
inputType.value = zoneData.originalType;
|
inputType.value = zoneData.originalType;
|
||||||
@ -220,18 +219,18 @@ var storeDataInForm = (zone, zoneData) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const restoreDataInForm = (zone, zoneData) => {
|
const restoreDataInForm = (zone, zoneData) => {
|
||||||
var
|
var
|
||||||
inputKey = zone.querySelector('input[data-stored-object-key]'),
|
inputKey = zone.querySelector('input[data-stored-object-key]'),
|
||||||
inputIv = zone.querySelector('input[data-stored-object-iv]'),
|
inputIv = zone.querySelector('input[data-stored-object-iv]'),
|
||||||
inputObject = zone.querySelector('input[data-async-file-upload]'),
|
inputObject = zone.querySelector('input[data-async-file-upload]'),
|
||||||
inputType = zone.querySelector('input[data-async-file-type]')
|
inputType = zone.querySelector('input[data-async-file-type]')
|
||||||
;
|
;
|
||||||
|
|
||||||
if (zoneData.old === null) {
|
if (zoneData.old === null) {
|
||||||
console.log('should not have restored data');
|
console.log('should not have restored data');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
inputKey.value = zoneData.old.key;
|
inputKey.value = zoneData.old.key;
|
||||||
inputIv.value = zoneData.old.iv;
|
inputIv.value = zoneData.old.iv;
|
||||||
inputType.value = zoneData.old.type;
|
inputType.value = zoneData.old.type;
|
||||||
@ -241,21 +240,21 @@ const restoreDataInForm = (zone, zoneData) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const hasDataInForm = (zone, zoneData) => {
|
const hasDataInForm = (zone, zoneData) => {
|
||||||
var
|
var
|
||||||
inputObject = zone.querySelector('input[data-async-file-upload]')
|
inputObject = zone.querySelector('input[data-async-file-upload]')
|
||||||
;
|
;
|
||||||
|
|
||||||
return inputObject.value.length > 0;
|
return inputObject.value.length > 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
var removeDataInForm = (zone, zoneData) => {
|
var removeDataInForm = (zone, zoneData) => {
|
||||||
var
|
var
|
||||||
inputKey = zone.querySelector('input[data-stored-object-key]'),
|
inputKey = zone.querySelector('input[data-stored-object-key]'),
|
||||||
inputIv = zone.querySelector('input[data-stored-object-iv]'),
|
inputIv = zone.querySelector('input[data-stored-object-iv]'),
|
||||||
inputObject = zone.querySelector('input[data-async-file-upload]'),
|
inputObject = zone.querySelector('input[data-async-file-upload]'),
|
||||||
inputType = zone.querySelector('input[data-async-file-type]')
|
inputType = zone.querySelector('input[data-async-file-type]')
|
||||||
;
|
;
|
||||||
|
|
||||||
// store data for future usage
|
// store data for future usage
|
||||||
zoneData.old = {
|
zoneData.old = {
|
||||||
key: inputKey.value,
|
key: inputKey.value,
|
||||||
@ -268,7 +267,7 @@ var removeDataInForm = (zone, zoneData) => {
|
|||||||
inputIv.value = "";
|
inputIv.value = "";
|
||||||
inputType.value = "";
|
inputType.value = "";
|
||||||
inputObject.value = "";
|
inputObject.value = "";
|
||||||
|
|
||||||
insertDownloadButton(zone);
|
insertDownloadButton(zone);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -279,25 +278,25 @@ var insertRemoveButton = (zone, zoneData) => {
|
|||||||
labelRemove = zone.dataset.dictRemove,
|
labelRemove = zone.dataset.dictRemove,
|
||||||
labelCancel = 'Restaurer'
|
labelCancel = 'Restaurer'
|
||||||
;
|
;
|
||||||
|
|
||||||
removeButton.classList.add('btn', 'btn-delete');
|
removeButton.classList.add('btn', 'btn-delete');
|
||||||
removeButton.textContent = labelRemove;
|
removeButton.textContent = labelRemove;
|
||||||
|
|
||||||
cancelButton.classList.add('btn', 'btn-cancel');
|
cancelButton.classList.add('btn', 'btn-cancel');
|
||||||
cancelButton.textContent = labelCancel;
|
cancelButton.textContent = labelCancel;
|
||||||
|
|
||||||
removeButton.addEventListener('click', (e) => {
|
removeButton.addEventListener('click', (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
if (zoneData.allowRemove === 'true') {
|
if (zoneData.allowRemove === 'true') {
|
||||||
removeDataInForm(zone, zoneData);
|
removeDataInForm(zone, zoneData);
|
||||||
cancelButton.addEventListener('click', (e) => {
|
cancelButton.addEventListener('click', (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
restoreDataInForm(zone, zoneData);
|
restoreDataInForm(zone, zoneData);
|
||||||
|
|
||||||
cancelButton.remove();
|
cancelButton.remove();
|
||||||
zone.querySelector('.dropzone').remove();
|
zone.querySelector('.dropzone').remove();
|
||||||
|
|
||||||
initialize(zone);
|
initialize(zone);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -306,16 +305,16 @@ var insertRemoveButton = (zone, zoneData) => {
|
|||||||
removeButton.remove();
|
removeButton.remove();
|
||||||
createZone(zone, zoneData);
|
createZone(zone, zoneData);
|
||||||
});
|
});
|
||||||
|
|
||||||
addBelowButton(removeButton, zone, zoneData);
|
addBelowButton(removeButton, zone, zoneData);
|
||||||
// zone.appendChild(removeButton);
|
// zone.appendChild(removeButton);
|
||||||
};
|
};
|
||||||
|
|
||||||
const removeDownloadButton = (zone, zoneData) => {
|
const removeDownloadButton = (zone, zoneData) => {
|
||||||
var
|
var
|
||||||
existingButtons = zone.querySelectorAll('a[data-download-button]')
|
existingButtons = zone.querySelectorAll('a[data-download-button]')
|
||||||
;
|
;
|
||||||
|
|
||||||
// remove existing
|
// remove existing
|
||||||
existingButtons.forEach(function(b) {
|
existingButtons.forEach(function(b) {
|
||||||
b.remove();
|
b.remove();
|
||||||
@ -323,7 +322,7 @@ const removeDownloadButton = (zone, zoneData) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var insertDownloadButton = (zone, zoneData) => {
|
var insertDownloadButton = (zone, zoneData) => {
|
||||||
var
|
var
|
||||||
existingButtons = zone.querySelectorAll('a[data-download-button]'),
|
existingButtons = zone.querySelectorAll('a[data-download-button]'),
|
||||||
newButton = document.createElement('a'),
|
newButton = document.createElement('a'),
|
||||||
inputKey = zone.querySelector('input[data-stored-object-key]'),
|
inputKey = zone.querySelector('input[data-stored-object-key]'),
|
||||||
@ -336,18 +335,18 @@ var insertDownloadButton = (zone, zoneData) => {
|
|||||||
tempUrlGenerator = zone.dataset.tempUrlGenerator,
|
tempUrlGenerator = zone.dataset.tempUrlGenerator,
|
||||||
tempUrlGeneratorParams = new URLSearchParams()
|
tempUrlGeneratorParams = new URLSearchParams()
|
||||||
;
|
;
|
||||||
|
|
||||||
// remove existing
|
// remove existing
|
||||||
existingButtons.forEach(function(b) {
|
existingButtons.forEach(function(b) {
|
||||||
b.remove();
|
b.remove();
|
||||||
});
|
});
|
||||||
|
|
||||||
if (inputObject.value === '') {
|
if (inputObject.value === '') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
tempUrlGeneratorParams.append('object_name', inputObject.value);
|
tempUrlGeneratorParams.append('object_name', inputObject.value);
|
||||||
|
|
||||||
newButton.dataset.downloadButton = true;
|
newButton.dataset.downloadButton = true;
|
||||||
newButton.dataset.key = inputKey.value;
|
newButton.dataset.key = inputKey.value;
|
||||||
newButton.dataset.iv = inputIv.value;
|
newButton.dataset.iv = inputIv.value;
|
||||||
@ -357,7 +356,7 @@ var insertDownloadButton = (zone, zoneData) => {
|
|||||||
newButton.dataset.tempUrlGetGenerator = tempUrlGenerator + '?' + tempUrlGeneratorParams.toString();
|
newButton.dataset.tempUrlGetGenerator = tempUrlGenerator + '?' + tempUrlGeneratorParams.toString();
|
||||||
newButton.classList.add('btn', 'btn-download', 'dz-bt-below-dropzone');
|
newButton.classList.add('btn', 'btn-download', 'dz-bt-below-dropzone');
|
||||||
newButton.textContent = labelQuietButton;
|
newButton.textContent = labelQuietButton;
|
||||||
|
|
||||||
addBelowButton(newButton, zone, zoneData);
|
addBelowButton(newButton, zone, zoneData);
|
||||||
//zone.appendChild(newButton);
|
//zone.appendChild(newButton);
|
||||||
initializeDownload(zone);
|
initializeDownload(zone);
|
||||||
@ -370,3 +369,5 @@ window.addEventListener('load', function(e) {
|
|||||||
window.addEventListener('collection-add-entry', function(e) {
|
window.addEventListener('collection-add-entry', function(e) {
|
||||||
searchForZones(e.detail.entry);
|
searchForZones(e.detail.entry);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export { searchForZones };
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
<a class="btn btn-create" :title="$t(buttonTitle)" @click="openModal">
|
<a class="btn btn-create" :title="$t(buttonTitle)" @click="openModal">
|
||||||
<span>{{ $t(buttonTitle) }}</span>
|
<span>{{ $t(buttonTitle) }}</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<teleport to="body">
|
<teleport to="body">
|
||||||
<div>
|
<div>
|
||||||
<modal v-if="modal.showModal"
|
<modal v-if="modal.showModal"
|
||||||
@ -14,7 +13,24 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-slot:body>
|
<template v-slot:body>
|
||||||
modal body
|
<div id="dropZoneWrapper">
|
||||||
|
<div
|
||||||
|
data-stored-object="data-stored-object"
|
||||||
|
data-label-preparing="Preparing"
|
||||||
|
data-label-quiet-button="Download existing file"
|
||||||
|
data-label-ready="Ready to show"
|
||||||
|
data-dict-file-too-big="File too big"
|
||||||
|
data-dict-default-message="Drop your file or click here"
|
||||||
|
data-dict-remove-file="Remove file in order to upload a new one"
|
||||||
|
data-dict-max-files-exceeded="Max files exceeded. Remove previous files"
|
||||||
|
data-dict-cancel-upload="Cancel upload"
|
||||||
|
data-dict-cancel-upload-confirm="Are you sure you want to cancel this upload ?"
|
||||||
|
data-dict-upload-canceled="Upload canceled"
|
||||||
|
data-dict-remove="Remove existing file"
|
||||||
|
data-allow-remove="true"
|
||||||
|
data-temp-url-generator="url">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-slot:footer>
|
<template v-slot:footer>
|
||||||
@ -28,6 +44,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Modal from 'ChillMainAssets/vuejs/_components/Modal';
|
import Modal from 'ChillMainAssets/vuejs/_components/Modal';
|
||||||
|
import { searchForZones } from '../../module/async_upload/uploader';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AddAsyncUpload",
|
name: "AddAsyncUpload",
|
||||||
@ -45,14 +62,13 @@ export default {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
openModal() {
|
openModal() {
|
||||||
this.modal.showModal = true;
|
this.modal.showModal = true;
|
||||||
|
let dropZoneWrapper = document.getElementById('dropZoneWrapper');
|
||||||
|
console.log(dropZoneWrapper)
|
||||||
|
searchForZones(document); //TODO: only searchforzone in modal body
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -65,7 +65,7 @@
|
|||||||
<h5>{{ $t('Documents') }} :</h5>
|
<h5>{{ $t('Documents') }} :</h5>
|
||||||
|
|
||||||
<div class="flex-table">
|
<div class="flex-table">
|
||||||
<div class="item-bloc" v-for="d in evaluation.documents">
|
<div class="item-bloc" v-for="(d, i) in evaluation.documents" :key="i">
|
||||||
<div class="item-row">
|
<div class="item-row">
|
||||||
<div class="item-col"><h6>{{ d.template.name.fr }}</h6></div>
|
<div class="item-col"><h6>{{ d.template.name.fr }}</h6></div>
|
||||||
<div class="item-col">
|
<div class="item-col">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user