|
|
|
|
| document.addEventListener('DOMContentLoaded', function() {
|
|
|
| var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
|
| var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
|
| return new bootstrap.Tooltip(tooltipTriggerEl);
|
| });
|
|
|
|
|
| setTimeout(function() {
|
| var alerts = document.querySelectorAll('.alert');
|
| alerts.forEach(function(alert) {
|
| var bsAlert = new bootstrap.Alert(alert);
|
| bsAlert.close();
|
| });
|
| }, 5000);
|
|
|
|
|
| var uploadForm = document.querySelector('form[action*="upload_file"]');
|
| if (uploadForm) {
|
| uploadForm.addEventListener('submit', function(e) {
|
| var fileInput = this.querySelector('input[type="file"]');
|
| if (fileInput.files.length > 0) {
|
| var fileSize = fileInput.files[0].size;
|
| if (fileSize > 100 * 1024 * 1024) {
|
| e.preventDefault();
|
| alert('Файл слишком большой. Максимальный размер файла - 100MB.');
|
| return false;
|
| }
|
|
|
|
|
| var modalBody = this.querySelector('.modal-body');
|
| var progressDiv = document.createElement('div');
|
| progressDiv.className = 'progress mt-3';
|
| progressDiv.innerHTML = '<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width: 0%"></div>';
|
| modalBody.appendChild(progressDiv);
|
|
|
|
|
| var progressBar = progressDiv.querySelector('.progress-bar');
|
| var width = 0;
|
| var interval = setInterval(function() {
|
| if (width >= 90) {
|
| clearInterval(interval);
|
| } else {
|
| width += 5;
|
| progressBar.style.width = width + '%';
|
| }
|
| }, 300);
|
| }
|
| });
|
| }
|
|
|
|
|
| var deleteForms = document.querySelectorAll('form[action*="delete_file"]');
|
| deleteForms.forEach(function(form) {
|
| form.addEventListener('submit', function(e) {
|
| if (!confirm('Вы уверены, что хотите удалить этот элемент?')) {
|
| e.preventDefault();
|
| return false;
|
| }
|
| });
|
| });
|
|
|
|
|
| var shareLinks = document.querySelectorAll('.share-link-copy');
|
| shareLinks.forEach(function(link) {
|
| link.addEventListener('click', function(e) {
|
| e.preventDefault();
|
| var shareUrl = this.getAttribute('data-share-url');
|
|
|
|
|
| var tempInput = document.createElement('input');
|
| tempInput.value = shareUrl;
|
| document.body.appendChild(tempInput);
|
| tempInput.select();
|
| document.execCommand('copy');
|
| document.body.removeChild(tempInput);
|
|
|
|
|
| alert('Ссылка скопирована в буфер обмена!');
|
| });
|
| });
|
| });
|
|
|
|
|
| function previewImage(input) {
|
| if (input.files && input.files[0]) {
|
| var reader = new FileReader();
|
|
|
| reader.onload = function(e) {
|
| var previewContainer = document.getElementById('imagePreview');
|
| if (!previewContainer) {
|
| previewContainer = document.createElement('div');
|
| previewContainer.id = 'imagePreview';
|
| previewContainer.className = 'mt-3 text-center';
|
| input.parentNode.appendChild(previewContainer);
|
| }
|
|
|
| previewContainer.innerHTML = '<img src="' + e.target.result + '" class="img-thumbnail" style="max-height: 200px;">';
|
| }
|
|
|
| reader.readAsDataURL(input.files[0]);
|
| }
|
| }
|
|
|
|
|
| function filterFiles() {
|
| var input = document.getElementById('fileFilter');
|
| var filter = input.value.toUpperCase();
|
| var table = document.querySelector('table');
|
| var tr = table.getElementsByTagName('tr');
|
|
|
| for (var i = 1; i < tr.length; i++) {
|
| var td = tr[i].getElementsByTagName('td')[0];
|
| if (td) {
|
| var txtValue = td.textContent || td.innerText;
|
| if (txtValue.toUpperCase().indexOf(filter) > -1) {
|
| tr[i].style.display = '';
|
| } else {
|
| tr[i].style.display = 'none';
|
| }
|
| }
|
| }
|
| } |