diff --git a/package.json b/package.json index 5bf65c0..14a81d5 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint --fix", - "electron:build": "vue-cli-service electron:build", - "electron:serve": "vue-cli-service electron:serve", + "getbible:build": "vue-cli-service electron:build", + "getbible:serve": "vue-cli-service electron:serve", "postinstall": "electron-builder install-app-deps", "postuninstall": "electron-builder install-app-deps" }, diff --git a/src/App.vue b/src/App.vue index ab509a9..2b099b0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,10 +1,20 @@ diff --git a/src/api/getbible_v2_api.js b/src/api/getbible_v2_api.js new file mode 100644 index 0000000..fc703bd --- /dev/null +++ b/src/api/getbible_v2_api.js @@ -0,0 +1,15 @@ +// TO DO +// these should be imported from root config file + +let BASE_URL = 'https://getbible.net'; +let API_VERSION = 'v2'; + + +export default { + get_translations(){ + return fetch(`${BASE_URL}/${API_VERSION}/translations.json`) + }, + get_translation(abbreviation){ + return fetch(`${BASE_URL}/${API_VERSION}/${abbreviation}.json`) + } +} \ No newline at end of file diff --git a/src/api/idb.js b/src/api/idb.js index a679693..6f88230 100644 --- a/src/api/idb.js +++ b/src/api/idb.js @@ -1,6 +1,7 @@ const DB_NAME = 'getbibledb'; -const DB_VERSION = 1; +const DB_VERSION = 3; let DB; +// window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; export default { @@ -11,7 +12,7 @@ export default { console.log('OPENING DB', DB); let request = window.indexedDB.open(DB_NAME, DB_VERSION); - request.onerror = e => { + request.onerror = (e) => { console.log('Error opening db', e); reject('Error'); }; @@ -24,37 +25,50 @@ export default { request.onupgradeneeded = e => { console.log('onupgradeneeded'); let db = e.target.result; - db.createObjectStore("savedTranslations", { autoIncrement: true, keyPath:'id' }); + db.createObjectStore("saved_translations", { keyPath:'abbreviation' }); + db.createObjectStore("translations", { keyPath:'abbreviation' }); }; }); }, - async deleteTranslation(tr) { + async delete(delInfo) { let db = await this.getDb(); - return new Promise(resolve => { + return new Promise((resolve, reject) => { - let trans = db.transaction(['savedTranslations'],'readwrite'); + let trans = db.transaction([delInfo.name],'readwrite'); trans.oncomplete = () => { - resolve(); + resolve(true); }; - let store = trans.objectStore('savedTranslations'); - store.delete(tr.id); + let store = trans.objectStore(delInfo.name); + console.log("deleting "+ delInfo.keyPath+ " from "+delInfo.name); + let request = store.delete([delInfo.keyPath]); + request.onerror= err => reject(err) + // request.onsuccess = e => console.log(e); + + trans.onerror = e => { + reject(e) + } + trans.onabort = e => { + reject(e) + } + trans.commit(); + }); }, - async getTranslations() { + async getAll(name) { let db = await this.getDb(); return new Promise(resolve => { - let trans = db.transaction(['savedTranslations'],'readonly'); + let trans = db.transaction([name],'readonly'); trans.oncomplete = () => { resolve(tr); }; - let store = trans.objectStore('savedTranslations'); + let store = trans.objectStore(name); let tr = []; store.openCursor().onsuccess = e => { @@ -68,45 +82,52 @@ export default { }); }, - async saveTranslation(tr) { + async save(arg) { let db = await this.getDb(); - return new Promise(resolve => { + return new Promise((resolve, reject) => { - let trans = db.transaction(['savedTranslations'],'readwrite'); + let trans = db.transaction([arg.name],'readwrite'); trans.oncomplete = () => { - resolve(); + resolve(true); }; - - let store = trans.objectStore('savedTranslations'); - store.put(tr); - + console.log(arg.name); + let store = trans.objectStore(arg.name); + store.put(arg.putObj); + trans.onerror = e => reject(e) }); }, - async getTranslation(abbr) { + async get(name, keyPath) { let db = await this.getDb(); - return new Promise(resolve => { + return new Promise((resolve, reject) => { - let trans = db.transaction(['savedTranslations'],'readonly'); + let trans = db.transaction([name],'readonly'); trans.oncomplete = () => { resolve(tr); }; - let store = trans.objectStore('savedTranslations'); + let store = trans.objectStore(name); let tr = {}; store.openCursor().onsuccess = e => { let cursor = e.target.result; if (cursor) { - if(abbr == cursor.value.abbreviation) + if(keyPath == cursor.value.keyPath) tr = cursor.value cursor.continue(); } }; + trans.onerror = e => { + reject(e) + } + trans.onabort = e => { + reject(e) + } + trans.commit(); }); }, diff --git a/src/background.js b/src/background.js index 9ec4585..4a96258 100644 --- a/src/background.js +++ b/src/background.js @@ -30,7 +30,7 @@ function createWindow() { if (process.env.WEBPACK_DEV_SERVER_URL) { // Load the url of the dev server if in development mode win.loadURL(process.env.WEBPACK_DEV_SERVER_URL) - if (!process.env.IS_TEST) win.webContents.openDevTools() + // if (!process.env.IS_TEST) win.webContents.openDevTools() } else { createProtocol('app') // Load the index.html when not in development diff --git a/src/components/NavBar.vue b/src/components/NavBar.vue index dad132f..29f4520 100644 --- a/src/components/NavBar.vue +++ b/src/components/NavBar.vue @@ -1,16 +1,12 @@ \ No newline at end of file diff --git a/src/components/Selection.vue b/src/components/Selection.vue new file mode 100644 index 0000000..61a9f92 --- /dev/null +++ b/src/components/Selection.vue @@ -0,0 +1,206 @@ + + \ No newline at end of file diff --git a/src/components/Verses.vue b/src/components/Verses.vue index baea249..4f71137 100644 --- a/src/components/Verses.vue +++ b/src/components/Verses.vue @@ -1,7 +1,7 @@