Update index.html
Browse files- index.html +36 -23
index.html
CHANGED
|
@@ -143,14 +143,13 @@
|
|
| 143 |
text-align: center;
|
| 144 |
cursor: pointer;
|
| 145 |
transition: all 0.3s ease;
|
| 146 |
-
min-height: 140px;
|
| 147 |
display: flex;
|
| 148 |
flex-direction: column;
|
| 149 |
align-items: center;
|
| 150 |
justify-content: center;
|
| 151 |
}
|
| 152 |
|
| 153 |
-
/* ===== CHANGE HERE: Style for when image is previewed ===== */
|
| 154 |
.file-upload.has-preview {
|
| 155 |
padding: 5px;
|
| 156 |
border-style: solid;
|
|
@@ -166,10 +165,9 @@
|
|
| 166 |
left: -9999px;
|
| 167 |
}
|
| 168 |
|
| 169 |
-
/* ===== CHANGE HERE: Style for the preview image ===== */
|
| 170 |
.file-upload img {
|
| 171 |
max-width: 100%;
|
| 172 |
-
max-height: 120px;
|
| 173 |
height: auto;
|
| 174 |
border-radius: 8px;
|
| 175 |
object-fit: contain;
|
|
@@ -337,7 +335,8 @@
|
|
| 337 |
<div class="form-group">
|
| 338 |
<label class="label">تصویر QR کد را انتخاب کنید:</label>
|
| 339 |
<div class="file-upload" onclick="document.getElementById('file-input').click()">
|
| 340 |
-
|
|
|
|
| 341 |
<div class="upload-content">
|
| 342 |
<div class="upload-icon">📷</div>
|
| 343 |
<div class="upload-text">انتخاب تصویر</div>
|
|
@@ -372,10 +371,8 @@
|
|
| 372 |
const generateLoader = document.getElementById('generate-loader');
|
| 373 |
const readLoader = document.getElementById('read-loader');
|
| 374 |
|
| 375 |
-
// ===== CHANGE HERE: Select file upload container and store its original state =====
|
| 376 |
const fileUpload = document.querySelector('.file-upload');
|
| 377 |
const uploadContent = document.querySelector('.upload-content');
|
| 378 |
-
const originalUploadHTML = fileUpload.innerHTML;
|
| 379 |
|
| 380 |
// تعویض تبها
|
| 381 |
tabs.forEach(tab => {
|
|
@@ -389,31 +386,43 @@
|
|
| 389 |
});
|
| 390 |
});
|
| 391 |
|
| 392 |
-
// ===== CHANGE HERE: Rewritten logic for file selection and preview =====
|
| 393 |
fileInput.addEventListener('change', () => {
|
| 394 |
const file = fileInput.files[0];
|
| 395 |
if (file) {
|
| 396 |
-
|
| 397 |
-
|
| 398 |
-
|
| 399 |
-
|
| 400 |
-
|
| 401 |
-
|
| 402 |
-
|
| 403 |
-
|
| 404 |
-
|
| 405 |
-
|
|
|
|
|
|
|
|
|
|
| 406 |
}
|
| 407 |
-
|
| 408 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 409 |
}
|
| 410 |
-
reader.readAsDataURL(file); // Read the file as a Data URL
|
| 411 |
} else {
|
| 412 |
-
//
|
| 413 |
if(fileUpload.querySelector('img')) {
|
| 414 |
fileUpload.querySelector('img').remove();
|
| 415 |
}
|
| 416 |
uploadContent.style.display = 'block';
|
|
|
|
|
|
|
| 417 |
fileUpload.classList.remove('has-preview');
|
| 418 |
}
|
| 419 |
});
|
|
@@ -484,6 +493,10 @@
|
|
| 484 |
alert("لطفاً یک تصویر انتخاب کنید.");
|
| 485 |
return;
|
| 486 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 487 |
readLoader.style.display = 'block';
|
| 488 |
decodedText.innerHTML = '';
|
| 489 |
readBtn.disabled = true;
|
|
@@ -519,7 +532,7 @@
|
|
| 519 |
}
|
| 520 |
});
|
| 521 |
|
| 522 |
-
// Drag & Drop
|
| 523 |
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
|
| 524 |
fileUpload.addEventListener(eventName, (e) => {
|
| 525 |
e.preventDefault();
|
|
|
|
| 143 |
text-align: center;
|
| 144 |
cursor: pointer;
|
| 145 |
transition: all 0.3s ease;
|
| 146 |
+
min-height: 140px;
|
| 147 |
display: flex;
|
| 148 |
flex-direction: column;
|
| 149 |
align-items: center;
|
| 150 |
justify-content: center;
|
| 151 |
}
|
| 152 |
|
|
|
|
| 153 |
.file-upload.has-preview {
|
| 154 |
padding: 5px;
|
| 155 |
border-style: solid;
|
|
|
|
| 165 |
left: -9999px;
|
| 166 |
}
|
| 167 |
|
|
|
|
| 168 |
.file-upload img {
|
| 169 |
max-width: 100%;
|
| 170 |
+
max-height: 120px;
|
| 171 |
height: auto;
|
| 172 |
border-radius: 8px;
|
| 173 |
object-fit: contain;
|
|
|
|
| 335 |
<div class="form-group">
|
| 336 |
<label class="label">تصویر QR کد را انتخاب کنید:</label>
|
| 337 |
<div class="file-upload" onclick="document.getElementById('file-input').click()">
|
| 338 |
+
<!-- ===== CHANGE HERE: The `accept` attribute is removed ===== -->
|
| 339 |
+
<input type="file" id="file-input">
|
| 340 |
<div class="upload-content">
|
| 341 |
<div class="upload-icon">📷</div>
|
| 342 |
<div class="upload-text">انتخاب تصویر</div>
|
|
|
|
| 371 |
const generateLoader = document.getElementById('generate-loader');
|
| 372 |
const readLoader = document.getElementById('read-loader');
|
| 373 |
|
|
|
|
| 374 |
const fileUpload = document.querySelector('.file-upload');
|
| 375 |
const uploadContent = document.querySelector('.upload-content');
|
|
|
|
| 376 |
|
| 377 |
// تعویض تبها
|
| 378 |
tabs.forEach(tab => {
|
|
|
|
| 386 |
});
|
| 387 |
});
|
| 388 |
|
|
|
|
| 389 |
fileInput.addEventListener('change', () => {
|
| 390 |
const file = fileInput.files[0];
|
| 391 |
if (file) {
|
| 392 |
+
// Check if the file is an image before creating a preview
|
| 393 |
+
if (file.type.startsWith('image/')) {
|
| 394 |
+
const reader = new FileReader();
|
| 395 |
+
reader.onload = function(e) {
|
| 396 |
+
const previewImage = document.createElement('img');
|
| 397 |
+
previewImage.src = e.target.result;
|
| 398 |
+
|
| 399 |
+
uploadContent.style.display = 'none';
|
| 400 |
+
if(fileUpload.querySelector('img')) {
|
| 401 |
+
fileUpload.querySelector('img').remove();
|
| 402 |
+
}
|
| 403 |
+
fileUpload.appendChild(previewImage);
|
| 404 |
+
fileUpload.classList.add('has-preview');
|
| 405 |
}
|
| 406 |
+
reader.readAsDataURL(file);
|
| 407 |
+
} else {
|
| 408 |
+
// If not an image, just show the file name
|
| 409 |
+
uploadContent.style.display = 'block';
|
| 410 |
+
if(fileUpload.querySelector('img')) {
|
| 411 |
+
fileUpload.querySelector('img').remove();
|
| 412 |
+
}
|
| 413 |
+
fileUpload.classList.remove('has-preview');
|
| 414 |
+
// Display file name instead of icon
|
| 415 |
+
uploadContent.querySelector('.upload-icon').textContent = '📄';
|
| 416 |
+
uploadContent.querySelector('.upload-text').textContent = file.name;
|
| 417 |
}
|
|
|
|
| 418 |
} else {
|
| 419 |
+
// Reset if no file is selected
|
| 420 |
if(fileUpload.querySelector('img')) {
|
| 421 |
fileUpload.querySelector('img').remove();
|
| 422 |
}
|
| 423 |
uploadContent.style.display = 'block';
|
| 424 |
+
uploadContent.querySelector('.upload-icon').textContent = '📷';
|
| 425 |
+
uploadContent.querySelector('.upload-text').textContent = 'انتخاب تصویر';
|
| 426 |
fileUpload.classList.remove('has-preview');
|
| 427 |
}
|
| 428 |
});
|
|
|
|
| 493 |
alert("لطفاً یک تصویر انتخاب کنید.");
|
| 494 |
return;
|
| 495 |
}
|
| 496 |
+
if (!file.type.startsWith('image/')) {
|
| 497 |
+
alert("لطفاً یک فایل تصویری انتخاب کنید.");
|
| 498 |
+
return;
|
| 499 |
+
}
|
| 500 |
readLoader.style.display = 'block';
|
| 501 |
decodedText.innerHTML = '';
|
| 502 |
readBtn.disabled = true;
|
|
|
|
| 532 |
}
|
| 533 |
});
|
| 534 |
|
| 535 |
+
// Drag & Drop
|
| 536 |
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {
|
| 537 |
fileUpload.addEventListener(eventName, (e) => {
|
| 538 |
e.preventDefault();
|