wip
This commit is contained in:
parent
1d6ba99a36
commit
42b66714aa
3 changed files with 62 additions and 52 deletions
|
|
@ -1,24 +1,24 @@
|
|||
import { API } from 'api'
|
||||
|
||||
export class NodeStore {
|
||||
constructor() {
|
||||
constructor() {//{{{
|
||||
if (!('indexedDB' in window)) {
|
||||
throw 'Missing IndexedDB'
|
||||
}
|
||||
|
||||
this.db = null
|
||||
}
|
||||
async initializeDB() {
|
||||
}//}}}
|
||||
async initializeDB() {//{{{
|
||||
return new Promise((resolve, reject) => {
|
||||
let req = indexedDB.open('notes', 2)
|
||||
const req = indexedDB.open('notes', 2)
|
||||
|
||||
|
||||
// Schema upgrades for IndexedDB.
|
||||
// These can start from different points depending on updates to Notes2 since a device was online.
|
||||
req.onupgradeneeded = (event) => {
|
||||
var store
|
||||
let db = event.target.result
|
||||
let trx = event.target.transaction
|
||||
let store
|
||||
const db = event.target.result
|
||||
const trx = event.target.transaction
|
||||
|
||||
for (let i = event.oldVersion + 1; i <= event.newVersion; i++) {
|
||||
console.log(`Upgrade to schema ${i}`)
|
||||
|
|
@ -45,13 +45,13 @@ export class NodeStore {
|
|||
reject(event.target.error)
|
||||
}
|
||||
})
|
||||
}
|
||||
}//}}}
|
||||
|
||||
async add(records) {
|
||||
async add(records) {//{{{
|
||||
return new Promise((resolve, reject) => {
|
||||
try {
|
||||
let t = this.db.transaction('nodes', 'readwrite')
|
||||
let nodeStore = t.objectStore('nodes')
|
||||
const t = this.db.transaction('nodes', 'readwrite')
|
||||
const nodeStore = t.objectStore('nodes')
|
||||
t.onerror = (event) => {
|
||||
console.log('transaction error', event.target.error)
|
||||
reject(event.target.error)
|
||||
|
|
@ -60,22 +60,22 @@ export class NodeStore {
|
|||
resolve()
|
||||
}
|
||||
|
||||
records.forEach(record => {
|
||||
let addReq = nodeStore.put(record)
|
||||
addReq.onsuccess = (event) => {
|
||||
for (const record in records) {
|
||||
const addReq = nodeStore.put(record)
|
||||
addReq.onsuccess = () => {
|
||||
console.log('OK!', record.ID, record.Name)
|
||||
}
|
||||
addReq.onerror = (event) => {
|
||||
console.log('Error!', event.target.error, record.ID)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
})
|
||||
}
|
||||
async get(id) {
|
||||
}//}}}
|
||||
async get(id) {//{{{
|
||||
return new Promise((resolve, reject) => {
|
||||
// Node is always returned from IndexedDB if existing there.
|
||||
// Otherwise an attempt to get it from backend is executed.
|
||||
|
|
@ -103,14 +103,16 @@ export class NodeStore {
|
|||
.catch(e => reject(e))
|
||||
}
|
||||
})
|
||||
}
|
||||
async getTreeNodes() {
|
||||
}//}}}
|
||||
async getTreeNodes() {//{{{
|
||||
return new Promise((resolve, reject) => {
|
||||
let trx = this.db.transaction('nodes', 'readonly')
|
||||
let nodeStore = trx.objectStore('nodes')
|
||||
let req = nodeStore.getAll()
|
||||
const trx = this.db.transaction('nodes', 'readonly')
|
||||
const nodeStore = trx.objectStore('nodes')
|
||||
const req = nodeStore.getAll()
|
||||
req.onsuccess = (event) => resolve(event.target.result)
|
||||
req.onerror = (event) => reject(event.target.error)
|
||||
})
|
||||
}
|
||||
}//}}}
|
||||
}
|
||||
|
||||
// vim: foldmethod=marker
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue