diff --git a/src/components/app.vue b/src/components/app.vue index 695725e..accb8d5 100644 --- a/src/components/app.vue +++ b/src/components/app.vue @@ -17,7 +17,29 @@ - + + + + IMPORTANT + + +

+ ALVINN is for educational purposes only. It may not be used for medical diagnosis, intervention, or treatment. +

+
+ + Don't show again + + +
+
+
+
@@ -38,6 +60,57 @@ import store from '../js/store'; export default { + data () { + return { + rememberAgreement: false, + siteAgreement: false, + showDisclaimer: true + } + }, + created () { + var loadSiteSettings = localStorage.getItem('siteSettings') + if (loadSiteSettings) { + var loadedSettings = JSON.parse(loadSiteSettings) + this.siteAgreement = loadedSettings.siteAgreement + this.rememberAgreement = loadedSettings.rememberAgreement + } + if (this.siteAgreement && this.rememberAgreement) { + this.showDisclaimer = false + store().agree() + } + }, + methods: { + setAgreement () { + this.siteAgreement = true + store().agree() + let newSettings = { + siteAgreement: this.siteAgreement, + rememberAgreement: this.rememberAgreement + } + let saveSiteSettings = new Promise( + (saved,failed) => { + try { + localStorage.setItem('siteSettings',JSON.stringify(newSettings)) + saved() + } catch { + failed() + } + } + ) + saveSiteSettings.then( + () => { + this.showDisclaimer = false + }, + () => { + var toast = f7.toast.create({ + text: 'ERROR: No settings saved', + closeTimeout: 2000 + }) + toast.open() + } + ) + } + }, setup() { const device = getDevice(); // Framework7 Parameters @@ -48,6 +121,7 @@ } catch { var darkTheme = 'auto' } + //provide('isAgreed',siteAgreement) const f7params = { name: 'ALVINN', // App name theme: 'auto', // Automatic theme detection @@ -56,8 +130,6 @@ primary: '#002f65', }, - // App store - store: store, // App routes routes: routes, @@ -98,7 +170,7 @@ }); return { - f7params + f7params, } } } diff --git a/src/js/store.js b/src/js/store.js index 1d8b1fa..a9e2e29 100644 --- a/src/js/store.js +++ b/src/js/store.js @@ -1,35 +1,14 @@ +import { reactive, computed } from 'vue'; -import { createStore } from 'framework7/lite'; +const state = reactive({ + disclaimerAgreement: false + }) -const store = createStore({ - state: { - products: [ - { - id: '1', - title: 'Apple iPhone 8', - description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi tempora similique reiciendis, error nesciunt vero, blanditiis pariatur dolor, minima sed sapiente rerum, dolorem corrupti hic modi praesentium unde saepe perspiciatis.' - }, - { - id: '2', - title: 'Apple iPhone 8 Plus', - description: 'Velit odit autem modi saepe ratione totam minus, aperiam, labore quia provident temporibus quasi est ut aliquid blanditiis beatae suscipit odio vel! Nostrum porro sunt sint eveniet maiores, dolorem itaque!' - }, - { - id: '3', - title: 'Apple iPhone X', - description: 'Expedita sequi perferendis quod illum pariatur aliquam, alias laboriosam! Vero blanditiis placeat, mollitia necessitatibus reprehenderit. Labore dolores amet quos, accusamus earum asperiores officiis assumenda optio architecto quia neque, quae eum.' - }, - ] - }, - getters: { - products({ state }) { - return state.products; - } - }, - actions: { - addProduct({ state }, product) { - state.products = [...state.products, product]; - }, - }, +const agree = () => { + state.disclaimerAgreement = true +} + +export default () => ({ + isAgreed: computed(() => state.disclaimerAgreement), + agree }) -export default store; diff --git a/src/pages/home.vue b/src/pages/home.vue index 0ab6624..fb37552 100644 --- a/src/pages/home.vue +++ b/src/pages/home.vue @@ -11,43 +11,26 @@

Anatomy Lab Visual Identification Neural Network

Veterinary Anatomy Edition

-

Select a region to begin

+

Select a region to begin.

- + + - + + - + + - + +
- - - IMPORTANT - - -

- ALVINN is for educational purposes only. It may not be used for medical diagnosis, intervention, or treatment. -

-
- - Don't show again - - -
-
-
@@ -109,51 +92,14 @@