(function () { let db; const request = indexedDB.open("PtryLndDB_audioRecords", 1); const storeName = "audioStore"; request.onupgradeneeded = function (event) { db = event.target.result; if (!db.objectStoreNames.contains(storeName)) { var objectStore = db.createObjectStore(storeName, { keyPath: 'id', autoIncrement: true }); // Создаём индекс для поля 'poemId' objectStore.createIndex('poemId', 'poemId', { unique: false }); } }; request.onerror = function (event) { console.error("IndexedDB error:", event.target.errorCode); }; request.onsuccess = function (event) { db = event.target.result; readData('sortByDate'); }; function readData(sortType) { const transaction = db.transaction([storeName], "readonly"); const store = transaction.objectStore(storeName); const request = store.getAll(); request.onerror = function (event) { console.log("Ошибка при чтении данных", event); }; request.onsuccess = function (event) { const recordsFull = event.target.result; // Это список всех записей // Обработать каждую запись, исключая поле blob const records = recordsFull.map(record => { const { blob, ...rest } = record; // Исключаем поле BLOB из объекта return rest; }); fetchData(records, sortType); }; } function fetchData(audioRecords, sortType) { fetch('user-audiorecords-fetch', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ audiorecords: audioRecords, sortType: sortType }), }) //.then(response => response.json()) .then(response => response.text()) .then(data => displayData(data)) .catch((error) => { console.error('Ошибка при запросе к серверу:', error); alert("Ошибка: " + error); }); } function displayData(data) { const userAudiorecords = document.getElementById("idUserAudiorecords"); userAudiorecords.innerHTML = ''; // hidde message userAudiorecords.innerHTML = data; // -- Daten mit Animation anzeigen /* #container { transition: height 0.5s ease - out, opacity 0.5s ease; opacity: 0; // Изначально контейнер скрыт } */ // Плавное появление контента requestAnimationFrame(() => { userAudiorecords.style.opacity = 1; userAudiorecords.style.height = 'auto'; // или конкретная высота, если известна }); // Загрузить аудиозаписи в