Elias207 commited on
Commit
afc5c29
·
verified ·
1 Parent(s): cd4a72c

Update index.html

Browse files
Files changed (1) hide show
  1. 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; /* Adjust as needed */
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
- <input type="file" id="file-input" accept="image/*">
 
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
- const reader = new FileReader();
397
- reader.onload = function(e) {
398
- // Create an image element for preview
399
- const previewImage = document.createElement('img');
400
- previewImage.src = e.target.result;
401
-
402
- // Clear the upload box and show the preview
403
- uploadContent.style.display = 'none'; // Hide icon and text
404
- if(fileUpload.querySelector('img')) {
405
- fileUpload.querySelector('img').remove(); // Remove old preview if exists
 
 
 
406
  }
407
- fileUpload.appendChild(previewImage);
408
- fileUpload.classList.add('has-preview');
 
 
 
 
 
 
 
 
 
409
  }
410
- reader.readAsDataURL(file); // Read the file as a Data URL
411
  } else {
412
- // If no file is selected, reset the view
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();