|
|
|
|
|
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';
|
|
}
|
|
}
|
|
}
|
|
} |