Skip to content

Commit

Permalink
feat: save ambianic edge connection settings to persistent browser st…
Browse files Browse the repository at this point in the history
…orage that survives between sessions and browser reloads
  • Loading branch information
ivelin committed Nov 19, 2019
1 parent cc05f2d commit 1caee13
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 41 deletions.
26 changes: 26 additions & 0 deletions src/store/db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { openDB } from 'idb'

const dbPromise = openDB('ambianic-keyval-store', 1, {
upgrade (db) {
db.createObjectStore('settings')
console.log('db upgrade invoked')
}
})

export const settingsDB = {
async get (key) {
return (await dbPromise).get('settings', key)
},
async set (key, val) {
return (await dbPromise).put('settings', val, key)
},
async delete (key) {
return (await dbPromise).delete('settings', key)
},
async clear () {
return (await dbPromise).clear('settings')
},
async keys () {
return (await dbPromise).getAllKeys('settings')
}
}
44 changes: 3 additions & 41 deletions src/views/Settings.vue
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,6 @@
/>
</v-layout>
</v-flex>
<v-flex xs12>
<v-text-field
prepend-icon="mdi-shield-key"
placeholder="API Key (e.g. 234SDwersd235efedde)"
v-model="settingsForm.apiKey"
/>
</v-flex>
</v-layout>
</v-container>
<v-card-actions>
Expand Down Expand Up @@ -63,45 +56,20 @@
</template>
<script>
import AppFrame from '@/components/AppFrame.vue'
import { openDB } from 'idb'
const dbPromise = openDB('keyval-store', 1, {
upgrade (db) {
db.createObjectStore('settings')
}
})
const settingsDB = {
async get (key) {
return (await dbPromise).get('settings', key)
},
async set (key, val) {
return (await dbPromise).put('settings', val, key)
},
async delete (key) {
return (await dbPromise).delete('settings', key)
},
async clear () {
return (await dbPromise).clear('settings')
},
async keys () {
return (await dbPromise).getAllKeys('settings')
}
}
import { settingsDB } from '@/store/db'
export default {
data () {
return {
settingsForm: {
address: '',
apiKey: ''
address: ''
}
}
},
components: {
AppFrame
},
create () {
mounted () {
this.loadSettings()
},
methods: {
Expand All @@ -111,15 +79,9 @@ export default {
this.settingsForm.address = address
}
)
settingsDB.get('ambanic-edge-api-key').then(
(apiKey) => {
this.settingsForm.apiKey = apiKey
}
)
},
saveSettings () {
settingsDB.set('ambanic-edge-address', this.settingsForm.address)
settingsDB.set('ambanic-edge-api-key', this.settingsForm.apiKey)
},
cancel () {
// load previously saved settings
Expand Down

0 comments on commit 1caee13

Please sign in to comment.