(function () {
const dbNameFav = "PtryLndDB_favorites"
const storeNameFav = "favorites";
const dbNameAudio = "PtryLndDB_audioRecords";
const storeNameAudio = "audioStore";
function countObjects(storeName, dbName) {
return new Promise((resolve, reject) => {
const openRequest = indexedDB.open(dbName);
openRequest.onupgradeneeded = function (event) {
db = event.target.result;
if (storeName === storeNameFav) {
if (!db.objectStoreNames.contains("favorites")) {
var objectStore = db.createObjectStore("favorites", { keyPath: "poemId" });
}
}
if (storeName === storeNameAudio) {
if (!db.objectStoreNames.contains('audioStore')) {
var objectStore = db.createObjectStore('audioStore', { keyPath: 'id', autoIncrement: true });
// Создаём индекс для поля 'poemId'
objectStore.createIndex('poemId', 'poemId', { unique: false });
}
}
};
openRequest.onsuccess = function (event) {
try {
const db = event.target.result;
//// проверить существование хранилища с этим именем
//if (!db.objectStoreNames.contains(storeName)) {
// resolve(0); // => запись не найдена!
// return;
//}
const transaction = db.transaction([storeName], "readonly");
const store = transaction.objectStore(storeName);
const request = store.count();
request.onsuccess = function () {
resolve(request.result);
};
request.onerror = function () {
resolve("Ошибка при подсчете записей: ", event.target.error);
};
}
catch (error) {
console.error("Ошибка при работе с IndexedDB:", error);
resolve("<неизвестно>");
}
};
openRequest.onerror = function (event) {
reject("Ошибка при открытии базы данных: ", event.target.error);
};
})
}
countObjects(storeNameFav, dbNameFav).then(count1 => {
const userFavoritesPoemsLink = document.getElementById('userFavoritesPoemsLink');
userFavoritesPoemsLink.innerHTML = ' Избранные стихотворения: ' + count1 +'';
}).catch(error => {
console.error("Ошибка в " + storeNameFav, error);
});
countObjects(storeNameAudio, dbNameAudio).then(count2 => {
const userAudiorecordsLink = document.getElementById('userAudiorecordsLink');
userAudiorecordsLink.innerHTML = ' Аудиозаписи: ' + count2 +''
}).catch(error => {
console.error("Ошибка в " + storeNameAudio, error);
});
})()