Upload index.html
Browse files- templates/index.html +25 -19
templates/index.html
CHANGED
@@ -92,10 +92,10 @@
|
|
92 |
|
93 |
<div class="bg-white rounded-xl shadow-lg p-8">
|
94 |
<!-- Zone de téléchargement -->
|
95 |
-
<form id="uploadForm" class="space-y-6">
|
96 |
<div class="relative">
|
97 |
<label for="imageInput" class="block text-lg font-medium text-gray-700 mb-3">
|
98 |
-
Sélectionnez
|
99 |
</label>
|
100 |
<div class="mt-2 flex justify-center px-6 pt-5 pb-6 border-2 border-gray-300 border-dashed rounded-lg hover:border-blue-500 transition-colors cursor-pointer">
|
101 |
<div class="space-y-2 text-center">
|
@@ -104,21 +104,20 @@
|
|
104 |
</svg>
|
105 |
<div class="text-sm text-gray-600">
|
106 |
<label for="imageInput" class="relative cursor-pointer bg-white rounded-md font-medium text-blue-600 hover:text-blue-500 focus-within:outline-none">
|
107 |
-
<span>Télécharger
|
108 |
-
|
|
|
109 |
</label>
|
110 |
</div>
|
111 |
-
<p class="text-xs text-gray-500">PNG, JPG jusqu'à 10MB</p>
|
112 |
</div>
|
113 |
</div>
|
114 |
</div>
|
115 |
|
116 |
<!-- Prévisualisation -->
|
117 |
<div id="previewContainer" class="hidden">
|
118 |
-
<p class="text-gray-700 font-medium mb-3">Aperçu
|
119 |
-
<div class="
|
120 |
-
<img id="previewImage" src="#" alt="Aperçu" class="w-full max-h-80 object-contain">
|
121 |
-
</div>
|
122 |
</div>
|
123 |
|
124 |
<button type="submit" class="w-full bg-blue-600 text-white rounded-lg px-4 py-3 font-semibold hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 transition-colors">
|
@@ -166,7 +165,7 @@
|
|
166 |
const uploadForm = document.getElementById('uploadForm');
|
167 |
const imageInput = document.getElementById('imageInput');
|
168 |
const previewContainer = document.getElementById('previewContainer');
|
169 |
-
const
|
170 |
const loadingIndicator = document.getElementById('loading');
|
171 |
const resultDiv = document.getElementById('result');
|
172 |
const dissertationTab = document.getElementById('dissertationTab');
|
@@ -182,16 +181,23 @@
|
|
182 |
langPrefix: 'language-',
|
183 |
});
|
184 |
|
185 |
-
// Prévisualisation
|
186 |
imageInput.addEventListener('change', function() {
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
} else {
|
196 |
previewContainer.classList.add('hidden');
|
197 |
}
|
|
|
92 |
|
93 |
<div class="bg-white rounded-xl shadow-lg p-8">
|
94 |
<!-- Zone de téléchargement -->
|
95 |
+
<form id="uploadForm" class="space-y-6" enctype="multipart/form-data">
|
96 |
<div class="relative">
|
97 |
<label for="imageInput" class="block text-lg font-medium text-gray-700 mb-3">
|
98 |
+
Sélectionnez vos documents
|
99 |
</label>
|
100 |
<div class="mt-2 flex justify-center px-6 pt-5 pb-6 border-2 border-gray-300 border-dashed rounded-lg hover:border-blue-500 transition-colors cursor-pointer">
|
101 |
<div class="space-y-2 text-center">
|
|
|
104 |
</svg>
|
105 |
<div class="text-sm text-gray-600">
|
106 |
<label for="imageInput" class="relative cursor-pointer bg-white rounded-md font-medium text-blue-600 hover:text-blue-500 focus-within:outline-none">
|
107 |
+
<span>Télécharger des fichiers</span>
|
108 |
+
<!-- Ajout de l'attribut "multiple" -->
|
109 |
+
<input id="imageInput" name="image" type="file" class="sr-only" accept="image/*" multiple required>
|
110 |
</label>
|
111 |
</div>
|
112 |
+
<p class="text-xs text-gray-500">PNG, JPG jusqu'à 10MB par fichier</p>
|
113 |
</div>
|
114 |
</div>
|
115 |
</div>
|
116 |
|
117 |
<!-- Prévisualisation -->
|
118 |
<div id="previewContainer" class="hidden">
|
119 |
+
<p class="text-gray-700 font-medium mb-3">Aperçu des documents :</p>
|
120 |
+
<div id="previews" class="grid grid-cols-1 md:grid-cols-2 gap-4"></div>
|
|
|
|
|
121 |
</div>
|
122 |
|
123 |
<button type="submit" class="w-full bg-blue-600 text-white rounded-lg px-4 py-3 font-semibold hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 transition-colors">
|
|
|
165 |
const uploadForm = document.getElementById('uploadForm');
|
166 |
const imageInput = document.getElementById('imageInput');
|
167 |
const previewContainer = document.getElementById('previewContainer');
|
168 |
+
const previewsDiv = document.getElementById('previews');
|
169 |
const loadingIndicator = document.getElementById('loading');
|
170 |
const resultDiv = document.getElementById('result');
|
171 |
const dissertationTab = document.getElementById('dissertationTab');
|
|
|
181 |
langPrefix: 'language-',
|
182 |
});
|
183 |
|
184 |
+
// Prévisualisation pour plusieurs images
|
185 |
imageInput.addEventListener('change', function() {
|
186 |
+
previewsDiv.innerHTML = ''; // Réinitialiser les prévisualisations
|
187 |
+
const files = this.files;
|
188 |
+
if (files && files.length > 0) {
|
189 |
+
previewContainer.classList.remove('hidden');
|
190 |
+
Array.from(files).forEach(file => {
|
191 |
+
const reader = new FileReader();
|
192 |
+
reader.onload = function(e) {
|
193 |
+
const img = document.createElement('img');
|
194 |
+
img.src = e.target.result;
|
195 |
+
img.alt = "Aperçu";
|
196 |
+
img.className = "w-full h-48 object-contain rounded-md border";
|
197 |
+
previewsDiv.appendChild(img);
|
198 |
+
}
|
199 |
+
reader.readAsDataURL(file);
|
200 |
+
});
|
201 |
} else {
|
202 |
previewContainer.classList.add('hidden');
|
203 |
}
|