-
Notifications
You must be signed in to change notification settings - Fork 2
/
userData.js
124 lines (109 loc) · 4.49 KB
/
userData.js
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
db;
//studentData is an array of 19 objects
const studentData = [
{name: "Networks and File Management", usage: "", interest: ""},
{name: "Metacognition and Life-Long learning", usage: "", interest: ""},
{name: "Troubleshooting", usage: "", interest: ""},
{name: "Managing digital identity, privacy and security", usage: "", interest: ""},
{name: "Strategic web and database searching", usage:"", interest: ""},
{name: "Collaborative Communication", usage: "", interest: ""},
{name: "Digital Writing and Publishing", usage: "", interest: ""},
{name: "Audiovisual Analysis and Production", usage: "", interest: ""},
{name: "Electronic data collection", usage: "", interest: ""},
{name: "Privacy, Security and Preservation", usage: "", interest: ""},
{name: "Cleaning, Organizing and Managing data", usage: "", interest: ""},
{name: "Metadata", usage: "", interest: ""},
{name: "Data Queries and Reporting", usage: "", interest: ""},
{name: "Data Analysis", usage: "", interest: ""},
{name: "Critical Data Visualization", usage: "", interest: ""},
{name: "Algorithmic Thinking/Coding", usage: "", interest: ""},
{name: "Design Thinking", usage: "", interest: ""},
{name: "Project Management", usage: "", interest: ""},
{name: "Digital Research and Scholarship", usage: "", interest: ""},
];
//Setting up the database
if(!window.indexedDB) {
console.log("This browser does not support IndexedDB")
}
var request = indexedDB.open("studentDatabase", 2);
request.onupgradeneeded = function(event) {
db = event.target.result;
if (!db.objectStoreNames.contains("studentData")) {
var objectStore = db.createObjectStore("studentData", {keyPath: "name"})
//create an index to search studentData by interest Level
objectStore.createIndex("interest", "interest", {unique: false});
}
//accessing the studentData object store through the transaction object.
//transaction takes the store name and the mode
objectStore.transaction.oncomplete = function(event) {
var studentDataObjectStore = db.transaction("studentData", "readwrite").objectStore("studentData")
studentData.forEach(function(info) {
studentDataObjectStore.add(info)
});
};
};
request.onerror = function(event) {
alert("Database error: " + event.target.errorCode)
};
request.onsuccess = function(event) {
db = event.target.result; //(request.result is an instance of the database)
console.dir(db.objectStoreNames);
$('#updateDB').on('click', updateValues);
// db.onerror = function(event) {
// alert("Database error: " + event.target.errorCode);
};
//Updating the values in the database
function updateValues() {
var data = document.querySelectorAll('.userData')
for (i=0; i < data.length; i++) {
var name = data[i].querySelector('.nameOfskill').innerHTML;
var usage = data[i].querySelector('.form-control').value;
var interest = data[i].querySelector('.custom-select').value;
var transaction = db.transaction('studentData', 'readwrite');
var studentdta = transaction.objectStore('studentData');
var item = {
name: name,
usage: usage,
interest: interest
}
studentdta.put(item);
request.onerror = function(e) {
console.log("Error", e.target.error.name);
}
request.onsuccess = function(e) {
console.log("It's in!");
}
}
document.getElementById('updateDB').innerHTML = 'SUCCESS! Keep Reflecting'
}
//filling the summary table
function fillSummaryTable() {
var transaction = db.transaction('studentData', 'readonly');
var studentdta = transaction.objectStore('studentData');
var interestLevels = studentdta.index("interest")
var cursor = interestLevels.openCursor();
cursor.onsuccess = function(e) {
var cursor = e.target.result;
if (cursor) {
var this_table = document.getElementById(cursor.key);
var this_body = this_table.getElementsByTagName('tbody');
var this_row = this_body.insertRow();
var cell1 = this_row.insertCell(0);
var cell2 = this_row.insertCell(1);
for (var field in cursor.value){
if (field = "name") {
cell1.innerHTML = cursor.value[field];
}s
if (field = "usage"){
cell2.innerHTML = cursor.value[field];
}
}
}
}
request.onsuccess = function(e) {
console.log("We got it")
}
request.onerror = function(e) {
console.log("We don't got it")
}
}