-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindexDB.js
More file actions
104 lines (83 loc) · 3.04 KB
/
indexDB.js
File metadata and controls
104 lines (83 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// Open IndexedDB and create necessary object stores
let db;
function openDatabase() {
const request = indexedDB.open("ProductDB", 1);
request.onupgradeneeded = function (event) {
db = event.target.result;
if (!db.objectStoreNames.contains("products")) {
db.createObjectStore("products", { keyPath: "id", autoIncrement: true });
}
if (!db.objectStoreNames.contains("creditors")) {
db.createObjectStore("creditors", { keyPath: "id", autoIncrement: true });
}
};
request.onsuccess = function (event) {
db = event.target.result;
console.log("Database opened successfully");
};
request.onerror = function (event) {
console.error("Database error: ", event.target.error);
};
}
// Add a product
function addProduct(product, callback) {
let transaction = db.transaction(["products"], "readwrite");
let objectStore = transaction.objectStore("products");
let addRequest = objectStore.add(product);
addRequest.onsuccess = function () {
console.log("Product added successfully");
if (callback) callback();
};
addRequest.onerror = function (event) {
console.error("Failed to add product", event.target.error);
};
}
// Delete a product
function deleteProduct(id, callback) {
if (!id) {
console.error("Invalid ID provided for deletion");
return;
}
let transaction = db.transaction(["products"], "readwrite");
let objectStore = transaction.objectStore("products");
let deleteRequest = objectStore.delete(Number(id));
deleteRequest.onsuccess = function () {
console.log(`Product with ID ${id} deleted successfully`);
if (callback) callback();
};
deleteRequest.onerror = function (event) {
console.error("Failed to delete product", event.target.error);
};
}
// Add a creditor
function addCreditor(creditor, callback) {
let transaction = db.transaction(["creditors"], "readwrite");
let objectStore = transaction.objectStore("creditors");
let addRequest = objectStore.add(creditor);
addRequest.onsuccess = function () {
console.log("Creditor added successfully");
if (callback) callback();
};
addRequest.onerror = function (event) {
console.error("Failed to add creditor", event.target.error);
};
}
// Delete a creditor
function deleteCreditor(id, callback) {
if (!id) {
console.error("Invalid ID provided for deletion");
return;
}
let transaction = db.transaction(["creditors"], "readwrite");
let objectStore = transaction.objectStore("creditors");
let deleteRequest = objectStore.delete(Number(id));
deleteRequest.onsuccess = function () {
console.log(`Creditor with ID ${id} deleted successfully`);
if (callback) callback();
};
deleteRequest.onerror = function (event) {
console.error("Failed to delete creditor", event.target.error);
};
}
// Initialize database on page load
document.addEventListener('DOMContentLoaded', openDatabase);