Merge branch 'master' of git.toking.de:toking/billibox-vue

This commit is contained in:
Thomas Mack 2022-03-28 12:38:21 +02:00
commit 5bf5137661
17 changed files with 532 additions and 105 deletions

22
package-lock.json generated
View File

@ -5,6 +5,7 @@
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "billibox-vue",
"version": "0.1.0", "version": "0.1.0",
"dependencies": { "dependencies": {
"@dsb-norge/vue-keycloak-js": "*", "@dsb-norge/vue-keycloak-js": "*",
@ -3463,8 +3464,6 @@
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
"dev": true, "dev": true,
"optional": true,
"peer": true,
"dependencies": { "dependencies": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0", "json-schema-traverse": "^1.0.0",
@ -3476,9 +3475,7 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true, "dev": true
"optional": true,
"peer": true
}, },
"node_modules/ajv-keywords": { "node_modules/ajv-keywords": {
"version": "3.5.2", "version": "3.5.2",
@ -13473,6 +13470,7 @@
"integrity": "sha512-vf4KqrmuOSnoEYGUiHPeMoxhh6wpiucLWXISn7xYFU80pK1lqcuhbl6tpurAanUIyRO/ENDUQBH7RAdbLNq1bA==", "integrity": "sha512-vf4KqrmuOSnoEYGUiHPeMoxhh6wpiucLWXISn7xYFU80pK1lqcuhbl6tpurAanUIyRO/ENDUQBH7RAdbLNq1bA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/core": "^7.12.16",
"@babel/helper-compilation-targets": "^7.12.16", "@babel/helper-compilation-targets": "^7.12.16",
"@babel/helper-module-imports": "^7.12.13", "@babel/helper-module-imports": "^7.12.13",
"@babel/plugin-proposal-class-properties": "^7.12.13", "@babel/plugin-proposal-class-properties": "^7.12.13",
@ -13485,6 +13483,7 @@
"@vue/babel-plugin-jsx": "^1.0.3", "@vue/babel-plugin-jsx": "^1.0.3",
"@vue/babel-preset-jsx": "^1.1.2", "@vue/babel-preset-jsx": "^1.1.2",
"babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-dynamic-import-node": "^2.3.3",
"core-js": "^3.8.3",
"core-js-compat": "^3.8.3", "core-js-compat": "^3.8.3",
"semver": "^7.3.4" "semver": "^7.3.4"
}, },
@ -14253,14 +14252,15 @@
"resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"dev": true, "dev": true,
"requires": {}, "requires": {
"ajv": "^8.0.0"
},
"dependencies": { "dependencies": {
"ajv": { "ajv": {
"version": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz", "version": "8.11.0",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
"integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
"dev": true, "dev": true,
"optional": true,
"peer": true,
"requires": { "requires": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0", "json-schema-traverse": "^1.0.0",
@ -14272,9 +14272,7 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true, "dev": true
"optional": true,
"peer": true
} }
} }
}, },

View File

@ -39,7 +39,7 @@
</div> </div>
<div class="col-9"> <div class="col-9">
<Field name="brand" class="form-select" v-model="brand" id="brand" as="select"> <Field name="brand" class="form-select" v-model="activeCamera.brand_key" id="brand" as="select">
<option v-for="brand in brands" :key="brand.schluessel" :value="brand.schluessel" >{{brand.name}}</option> <option v-for="brand in brands" :key="brand.schluessel" :value="brand.schluessel" >{{brand.name}}</option>
<small class="text-danger" v-if="errors.brand">{{errors.brand}}</small> <small class="text-danger" v-if="errors.brand">{{errors.brand}}</small>
</Field> </Field>
@ -51,7 +51,7 @@
<label for="condition">Zustand</label> <label for="condition">Zustand</label>
</div> </div>
<div class="col-9"> <div class="col-9">
<Field name="condition" class="form-select" v-model="condition" id="condition" as="select"> <Field name="condition" class="form-select" v-model="activCamer.condition_key" id="condition" as="select">
<option v-for="condition in conditions" :key="condition.schluessel" :value="condition.schluessel" >{{condition.name}}</option> <option v-for="condition in conditions" :key="condition.schluessel" :value="condition.schluessel" >{{condition.name}}</option>
<small class="text-danger" v-if="errors.condition">{{errors.condition}}</small> <small class="text-danger" v-if="errors.condition">{{errors.condition}}</small>
</Field> </Field>
@ -63,7 +63,7 @@
<label for="buildtype">Bauform</label> <label for="buildtype">Bauform</label>
</div> </div>
<div class="col-9"> <div class="col-9">
<Field name="buildtype" class=" form-select" v-model="buildtype" id="buildtype" as="select"> <Field name="buildtype" class=" form-select" v-model="activeCamer.buildtype_key" id="buildtype" as="select">
<option v-for="buildtype in buildtypes" :key="buildtype.schluessel" :value="buildtype.schluessel" >{{buildtype.name}}</option> <option v-for="buildtype in buildtypes" :key="buildtype.schluessel" :value="buildtype.schluessel" >{{buildtype.name}}</option>
<small class="text-danger" v-if="errors.buildtype">{{errors.buildtype}}</small> <small class="text-danger" v-if="errors.buildtype">{{errors.buildtype}}</small>
</Field> </Field>

121
src/indexdDB/index.js Normal file
View File

@ -0,0 +1,121 @@
export default class BilliDB {
DB_VERSION;
DB_NAME;
constructor(dbName, dbVersion) {
this.DB_NAME = dbName;
this.DB_VERSION = dbVersion;
}
async getDb() {
return new Promise((resolve, reject) => {
const request = window.indexedDB.open(this.DB_NAME, this.DB_VERSION);
request.onerror = e => {
console.log("Error opening db", e);
reject("Error");
};
request.onsuccess = e => {
console.log("connect erfolgreich");
// @ts-ignore
resolve(e.target.result);
};
request.onupgradeneeded = e => {
console.log("onupgradeneeded");
// @ts-ignore
const db = e.target.result;
db.createObjectStore("cameras", { autoIncrement: false, keyPath: 'id' });
db.createObjectStore("brands", { autoIncrement: false, keyPath: 'schluessel' });
db.createObjectStore("conditions", { autoIncrement: false, keyPath: 'schluessel' });
db.createObjectStore("buildtypes", { autoIncrement: false, keyPath: 'schluessel' });
};
});
}
async saveItem(item, storeId) {
const db = await this.getDb();
return new Promise((resolve, reject) => {
console.log("Starting Add Transaction");
// @ts-ignore
const trans = db.transaction([storeId], 'readwrite');
trans.oncomplete = (e) => {
resolve(e);
};
trans.onerror = (e) => {
console.log("on Error", e);
reject(e);
};
const store = trans.objectStore(storeId);
store.add(item);
store.onerror = (e) => {
console.log("Error on Store", e);
};
store.oncomplete = (e) => {
console.log("oncomplete on Store", e);
};
store.onsuccess = (e) => {
console.log("onsuccess on Store", e);
};
});
}
async saveItems(items, storeId) {
const db = await this.getDb();
return new Promise((resolve, reject) => {
console.log("Starting Add Transaction");
// @ts-ignore
const trans = db.transaction([storeId], 'readwrite');
trans.oncomplete = (e) => {
resolve(e);
};
trans.onerror = (e) => {
console.log("on Error", e);
reject(e);
};
const store = trans.objectStore(storeId);
items.forEach((item) => {
store.add(item);
});
store.onerror = (e) => {
console.log("Error on Store", e);
};
store.oncomplete = (e) => {
console.log("oncomplete on Store", e);
};
store.onsuccess = (e) => {
console.log("onsuccess on Store", e);
};
});
}
async getItems(storeId) {
console.log("DB-getItems", storeId);
const db = await this.getDb();
return new Promise((resolve, reject) => {
console.log("DB-getItems: Starting Get Transaction");
const items = [];
// @ts-ignore
const trans = db.transaction([storeId], 'readonly');
trans.oncomplete = (e) => {
resolve(items);
};
trans.onerror = (e) => {
console.log("on Error", e);
reject(e);
};
const store = trans.objectStore(storeId);
console.log("--> We have try to get a cursor");
store.openCursor().onsuccess = (e) => {
console.log("--> We have a cursor", e.target.result);
const cursor = e.target.result;
if (cursor) {
items.push(cursor.value);
cursor.continue();
}
console.log("onsuccess on getAll", items);
// resolve(e.target.result);
};
store.onerror = (e) => {
console.log("Error on getAll", e);
};
store.oncomplete = (e) => {
console.log("oncomplete on getAll", e);
};
});
}
}
//# sourceMappingURL=index.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}

View File

@ -1,37 +1,80 @@
import Vue from 'vue'; import { createApp } from 'vue';
import App from './App.vue'; import App from './App.vue';
import Keycloak from "keycloak-js"; import store from './store';
const initOptions = { import router from './router';
url: 'http://auth.toking.de/', realm: 'toking', clientId: 'billibox', onLoad: 'login-required', import VueKeyCloak from '@dsb-norge/vue-keycloak-js';
redirectUri: 'http://127.0.0.1:8080/' const app = createApp(App);
}; app.use(store);
//const app = createApp(App); app.use(router);
const keycloak = Keycloak(initOptions); app.use(VueKeyCloak, {
keycloak.init({ onLoad: initOptions.onLoad }).then((auth) => { config: {
if (!auth) { url: 'https://auth.toking.de/',
window.location.reload(); realm: 'toking',
} clientId: 'billibox',
else { redirectUri: 'http://127.0.0.1:8080/',
Vue.$log.info("Authenticated"); onLoad: 'login-required',
new Vue({ enableLogging: true,
el: '#app', scope: 'open-id'
render: h => h(App, { props: { keycloak: keycloak } }) },
init: {
onLoad: 'login-required'
},
onReady(keycloak) {
store.dispatch("storeKeycloak", keycloak).then((res) => {
keycloak.loadUserProfile().then((res) => {
store.dispatch("storeUserProfile", res);
console.log("res", res);
});
}); });
} }
//Token Refresh
setInterval(() => {
keycloak.updateToken(70).then((refreshed) => {
if (refreshed) {
Vue.$log.info('Token refreshed' + refreshed);
}
else {
Vue.$log.warn('Token not refreshed, valid for '
+ Math.round(keycloak.tokenParsed.exp + keycloak.timeSkew - new Date().getTime() / 1000) + ' seconds');
}
}).catch(() => {
Vue.$log.error('Failed to refresh token');
});
}, 6000);
}).catch(() => {
Vue.$log.error("Authenticated Failed");
}); });
app.mount('#app');
// import Vue from 'vue';
// import App from './App.vue';
// import Keycloak from "keycloak-js";
// const initOptions = {
// url: 'https://auth.toking.de/', realm: 'toking', clientId: 'billibox', onLoad: 'login-required',
// redirectUri: 'http://127.0.0.1:8080/'
// };
// //const app = createApp(App);
// const keycloak = Keycloak(initOptions);
// keycloak.init({ onLoad: 'login-required', redirectUri: 'http://127.0.0.1:8080/' }).then((auth) => {
// if (!auth) {
// window.location.reload();
// }
// else {
// // @ts-ignore
// console.info("Authenticated", auth);
// // @ts-ignore
//
// new Vue({
// el: '#app',
// render: h => h(App, { props: { keycloak: keycloak } })
// });
// }
// //Token Refresh
// // setInterval(() => {
// // keycloak.updateToken(70).then((refreshed) => {
// // if (refreshed) {
// // // @ts-ignore
// //
// // console.info('Token refreshed' + refreshed);
// // }
// // else {
// // // @ts-ignore
// //
// // console.warn('Token not refreshed, valid for '
// // + Math.round(keycloak.tokenParsed.exp + keycloak.timeSkew - new Date().getTime() / 1000) + ' seconds');
// // }
// // }).catch(() => {
// // // @ts-ignore
// //
// // console.error('Failed to refresh token');
// // });
// // }, 6000);
// }).catch(() => {
// // @ts-ignore
//
// console.error("Authenticated Failed");
// });
//# sourceMappingURL=main.js.map

View File

@ -1 +1 @@
{"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,GAAG,MAAM,WAAW,CAAA;AAC3B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAA;AAG7B,SAAS,CAAC,GAAG,CAAC;KACT,GAAG,CAAC,KAAK,CAAC;KACV,GAAG,CAAC,MAAM,CAAC;KACX,KAAK,CAAC,MAAM,CAAC,CAAA"} {"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,GAAG,MAAM,WAAW,CAAA;AAC3B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,WAAW,MAAM,4BAA4B,CAAA;AAIpD,MAAM,GAAG,GACT,SAAS,CAAC,GAAG,CAAC,CAAC;AAIf,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACd,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACf,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE;IACb,MAAM,EAAE;QACJ,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,wBAAwB;QACrC,MAAM,EAAE,gBAAgB;QACxB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,SAAS;KACnB;IACD,IAAI,EAAE;QACF,MAAM,EAAE,gBAAgB;KAC3B;IACD,OAAO,CAAE,QAA0B;QAChC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAE,CAAC,GAAG,EAAE,EAAE;YAEhD,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,CAAE,CAAC,GAAG,EAAE,EAAE;gBACrC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QAEX,CAAC,CACA,CAAA;IACJ,CAAC;CACJ,CAAC,CAAA;AAEN,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AASjB,yBAAyB;AACzB,+BAA+B;AAC/B,sCAAsC;AACtC,wBAAwB;AACxB,uGAAuG;AACvG,4CAA4C;AAC5C,KAAK;AACL,iCAAiC;AACjC,0CAA0C;AAC1C,uGAAuG;AACvG,mBAAmB;AACnB,oCAAoC;AACpC,QAAQ;AACR,aAAa;AACb,wBAAwB;AACxB,+CAA+C;AAC/C,wBAAwB;AACxB,EAAE;AACF,oBAAoB;AACpB,0BAA0B;AAC1B,qEAAqE;AACrE,cAAc;AACd,QAAQ;AACR,sBAAsB;AACtB,6BAA6B;AAC7B,4DAA4D;AAC5D,kCAAkC;AAClC,mCAAmC;AACnC,SAAS;AACT,kEAAkE;AAClE,mBAAmB;AACnB,wBAAwB;AACxB,mCAAmC;AACnC,SAAS;AACT,oEAAoE;AACpE,iIAAiI;AACjI,mBAAmB;AACnB,8BAA8B;AAC9B,+BAA+B;AAC/B,SAAS;AACT,2DAA2D;AAC3D,iBAAiB;AACjB,mBAAmB;AACnB,mBAAmB;AACnB,oBAAoB;AACpB,EAAE;AACF,6CAA6C;AAC7C,MAAM"}

View File

@ -14,9 +14,24 @@ const router = createRouter({
} }
] ]
}); });
router.beforeEach((to, from, next) => { function sleep(ms) {
if (to.meta.requiresAuth && !store.getters.isAuthenticated) { return new Promise(resolve => setTimeout(resolve, ms));
next("/"); }
router.beforeEach(async (to, from, next) => {
if (to.meta.requiresAuth) {
// @ts-ignore
const kc = store.getters.keycloak;
console.log(kc);
while (typeof kc == "undefined" || kc.createLoginUrl === null) {
await sleep(100);
}
if (kc.authenticated) {
next();
}
else {
const loginUrl = kc.createLoginUrl();
window.location.replace(loginUrl);
}
} }
else { else {
next(); next();

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,MAAM,GAAG,YAAY,CAAE;IACzB,UAAU;IACV,OAAO,EAAE,gBAAgB,EAAE;IAC3B,MAAM,EAAE,CAAE,GAAG,MAAM;QACf;YACI,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,YAAY;YACvB,mCAAmC;YAC/C,2BAA2B;SAClB;KACJ;CAEJ,CAAC,CAAC;AAGH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACjC,IAAG,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE;QACvD,IAAI,CAAC,GAAG,CAAC,CAAA;KACZ;SAAM;QACH,IAAI,EAAE,CAAC;KACV;AACL,CAAC,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"} {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,MAAM,GAAG,YAAY,CAAE;IACzB,UAAU;IACV,OAAO,EAAE,gBAAgB,EAAE;IAC3B,MAAM,EAAE,CAAE,GAAG,MAAM;QACf;YACI,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,YAAY;YACvB,mCAAmC;YAC/C,2BAA2B;SAClB;KACJ;CAEJ,CAAC,CAAC;AAGH,SAAS,KAAK,CAAC,EAAE;IACb,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACtC,IAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;QACrB,aAAa;QACb,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAM,OAAO,EAAE,IAAI,WAAW,IAAI,EAAE,CAAC,cAAc,KAAM,IAAI,EAAE;YAC3D,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;QACD,IAAG,EAAE,CAAC,aAAa,EAAE;YACjB,IAAI,EAAE,CAAA;SACT;aACI;YACD,MAAM,QAAQ,GAAG,EAAE,CAAC,cAAc,EAAE,CAAA;YACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;SACpC;KACJ;SAAM;QACH,IAAI,EAAE,CAAC;KACV;AACL,CAAC,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}

View File

@ -1,20 +1,19 @@
import store from "@/store";
import ReadCameraPage from "@/pages/ReadCameraPage.vue"; import ReadCameraPage from "@/pages/ReadCameraPage.vue";
import ReadListPage from "@/pages/ReadListPage.vue"; import ReadListPage from "@/pages/ReadListPage.vue";
import AuthRedirect from '@/components/auth/AuthRedirect.vue';
const appRoutes = [ const appRoutes = [
{ {
path: "/", path: "/",
alias: "/home", alias: "/home",
name: "home", name: "home",
component: () => import('@/pages/HomePage.vue'), component: () => import('@/pages/HomePage.vue'),
beforeEnter: (to, from, next) => { // beforeEnter: (to:any, from:any, next:any) => {
if (store.getters.isAuthenticated) { // if (store.getters.isAuthenticated) {
next("/shop"); // next("/list");
} // } else {
else { // next();
next(); // }
} // }
}
}, },
{ {
path: "/read/cameara/:id", path: "/read/cameara/:id",
@ -35,6 +34,24 @@ const appRoutes = [
// enterTransition: "rubberBand" // enterTransition: "rubberBand"
} }
}, },
{
path: "/auth",
component: AuthRedirect,
props: true,
meta: {
requiresAuth: true,
// enterTransition: "rubberBand"
}
},
{
path: "/profile",
component: AuthRedirect,
props: true,
meta: {
requiresAuth: true,
// enterTransition: "rubberBand"
}
},
]; ];
export default appRoutes; export default appRoutes;
//# sourceMappingURL=app-routes.js.map //# sourceMappingURL=app-routes.js.map

View File

@ -1 +1 @@
{"version":3,"file":"app-routes.js","sourceRoot":"","sources":["app-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAGpD,MAAM,SAAS,GAAG;IACd;QACI,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;QAC/C,WAAW,EAAE,CAAC,EAAM,EAAE,IAAQ,EAAE,IAAQ,EAAE,EAAE;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE;gBAC/B,IAAI,CAAC,OAAO,CAAC,CAAC;aACjB;iBAAM;gBACH,IAAI,EAAE,CAAC;aACV;QACL,CAAC;KACJ;IACD;QACI,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,cAAc;QACzB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE;YACF,YAAY,EAAE,KAAK;YACpB,gCAAgC;SAClC;KAEJ;IAED;QACI,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE;YACF,YAAY,EAAE,KAAK;YACnB,gCAAgC;SACnC;KAEJ;CACJ,CAAA;AAED,eAAe,SAAS,CAAC"} {"version":3,"file":"app-routes.js","sourceRoot":"","sources":["app-routes.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,YAAY,MAAM,oCAAoC,CAAA;AAG7D,MAAM,SAAS,GAAG;IACd;QACI,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;QAC/C,iDAAiD;QACjD,2CAA2C;QAC3C,yBAAyB;QACzB,eAAe;QACf,kBAAkB;QAClB,QAAQ;QACR,IAAI;KACP;IACD;QACI,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,cAAc;QACzB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE;YACF,YAAY,EAAE,KAAK;YACpB,gCAAgC;SAClC;KAEJ;IAED;QACI,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE;YACF,YAAY,EAAE,KAAK;YACnB,gCAAgC;SACnC;KACJ;IACD;QACI,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE;YACF,YAAY,EAAE,IAAI;YAClB,gCAAgC;SACnC;KACJ;IACD;QACI,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE;YACF,YAAY,EAAE,IAAI;YAClB,gCAAgC;SACnC;KACJ;CACJ,CAAA;AAED,eAAe,SAAS,CAAC"}

View File

@ -1,5 +1,5 @@
export const SEED_VERSION = 1;
export const shape = [ export const conditions = [
{ schluessel: "neu", name: "neu", beschreibung: '' }, { schluessel: "neu", name: "neu", beschreibung: '' },
{ schluessel: "neuwertig", name: "neuwertig", beschreibung: '' }, { schluessel: "neuwertig", name: "neuwertig", beschreibung: '' },
{ schluessel: "lg", name: "leichte Gebrauchsspuren", beschreibung: '' }, { schluessel: "lg", name: "leichte Gebrauchsspuren", beschreibung: '' },
@ -240,6 +240,36 @@ export const cameras = [
description: "Langer Text", description: "Langer Text",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 1980, year_of_purchase: 1980,
},
{
id: "agfa_03",
brand_key: "agfa",
shape_key: "neuwertig",
name: "Agfa Click",
buildtype: "slr",
description: "Langer Text",
year_of_production: 2000,
year_of_purchase: 2000,
},
{
id: "agfa_05",
brand_key: "agfa",
shape_key: "neuwertig",
name: "Agfa Box",
buildtype: "slr",
description: "Langer Text",
year_of_production: 2000,
year_of_purchase: 1980,
},
{
id: "cancon_07",
brand_key: "canon",
shape_key: "neuwertig",
name: "Canon EOS",
buildtype: "slr",
description: "Langer Text",
year_of_production: 2000,
year_of_purchase: 1980,
} }
]; ];
//# sourceMappingURL=seed.js.map //# sourceMappingURL=seed.js.map

File diff suppressed because one or more lines are too long

View File

@ -49,6 +49,7 @@ export const buildtype= [
{schluessel: "sof", name: "Sofortbild", beschreibung: ''}, {schluessel: "sof", name: "Sofortbild", beschreibung: ''},
]; ];
export const brands= [ export const brands= [
{schluessel: 'agfa', name: 'Agfa', beschreibung: 'Filme aller Art sowie analoge Kameras'}, {schluessel: 'agfa', name: 'Agfa', beschreibung: 'Filme aller Art sowie analoge Kameras'},
{schluessel: 'alpa', name: 'Alpa', beschreibung: 'Mittelformat analog/digital (früher Kleinbild).'}, {schluessel: 'alpa', name: 'Alpa', beschreibung: 'Mittelformat analog/digital (früher Kleinbild).'},
@ -207,98 +208,204 @@ export const brands= [
{schluessel: 'zorki', name: 'Zorki', beschreibung: 'Kleinbildkameras.'}, {schluessel: 'zorki', name: 'Zorki', beschreibung: 'Kleinbildkameras.'},
] ]
export const lenses = [
{
id: "pentax-zoom",
name: "name",
lensmount_key:"",
aperture_max: "0.0",
focal_length_min: "50",
focal_length_max: null,
autofocus: false,
manufacturer_key: "",
brand_key:"",
description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000,
year_of_purchase: 1980
}
];
export const cameras = [ export const cameras = [
{ {
id: "pentax_19", id: "pentax_19",
brand_key: "pentax", brand_key: "pentax",
shape_key: "neuwertig", condition_key: "neuwertig",
name:"Pentax K30", name:"Pentax K30",
buildtype: "slr", buildtype: "slr",
description: "Langer Text", description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
manufacturer_key: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 2022, year_of_purchase: 2022,
}, },
{ {
id: "pentax_20", id: "pentax_20",
brand_key: "pentax", brand_key: "pentax",
shape_key: "neuwertig", condition_key: "neuwertig",
name:"Pentax K50", name:"Pentax K50",
buildtype: "slr", buildtype: "slr",
description: "Langer Text", description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
manufacturer_key: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 2022, year_of_purchase: 2022,
}, },
{ {
id: "pentax_21", id: "pentax_21",
brand_key: "pentax", brand_key: "pentax",
shape_key: "neuwertig", condition_key: "neuwertig",
name:"Pentax K3", name:"Pentax K3",
buildtype: "slr", buildtype: "slr",
description: "Langer Text", description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
manufacturer_key: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 2022, year_of_purchase: 2022,
}, },
{ {
id: "agfa_01", id: "agfa_01",
brand_key: "agfa", brand_key: "agfa",
shape_key: "neuwertig", condition_key: "neuwertig",
name: "Agfa Click", name: "Agfa Click",
buildtype: "slr", buildtype: "slr",
description: "Langer Text", description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
manufacturer_key: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 2000, year_of_purchase: 2000,
}, },
{ {
id: "agfa_02", id: "agfa_02",
brand_key: "agfa", brand_key: "agfa",
shape_key: "neuwertig", condition_key: "neuwertig",
name: "Agfa Box", name: "Agfa Box",
buildtype: "slr", buildtype: "slr",
description: "Langer Text", description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
manufacturer_key: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 1980, year_of_purchase: 1980,
}, },
{ {
id: "cancon_02", id: "cancon_02",
brand_key: "canon", brand_key: "canon",
shape_key: "neuwertig", condition_key: "neuwertig",
name: "Canon EOS", name: "Canon EOS",
buildtype: "slr", buildtype: "slr",
description: "Langer Text", description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
manufacturer_key: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 1980, year_of_purchase: 1980,
}, },
{ {
id: "agfa_03", id: "agfa_03",
brand_key: "agfa", brand_key: "agfa",
shape_key: "neuwertig", condition_key: "neuwertig",
name: "Agfa Click", name: "Agfa Click",
buildtype: "slr", buildtype: "slr",
description: "Langer Text", description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
manufacturer_key: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 2000, year_of_purchase: 2000,
}, },
{ {
id: "agfa_05", id: "agfa_05",
brand_key: "agfa", brand_key: "agfa",
shape_key: "neuwertig", condition_key: "neuwertig",
name: "Agfa Box", name: "Agfa Box",
buildtype: "slr", buildtype: "slr",
description: "Langer Text", description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
manufacturer_key: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 1980, year_of_purchase: 1980,
}, },
{ {
id: "cancon_07", id: "cancon_07",
brand_key: "canon", brand_key: "canon",
shape_key: "neuwertig", condition_key: "neuwertig",
name: "Canon EOS", name: "Canon EOS",
buildtype: "slr", buildtype: "slr",
description: "Langer Text", description: "Langer Text",
year_manufactured_from: "",
year_manufactured_to: "",
manufacturer_key: "",
price_purchased: 0.0,
price_hisotric: 0.0,
price_current: 0.0,
work_done: "",
ligthMesure: "",
special:"",
year_of_production: 2000, year_of_production: 2000,
year_of_purchase: 1980, year_of_purchase: 1980,
} }
] ]

View File

@ -1,21 +1,51 @@
const keyInitOptions = {
url: 'https://auth.toking.de/',
realm: 'toking',
clientId: 'billibox',
redirectUri: 'http://127.0.0.1:8080/',
onLoad: 'login-required',
enableLogging: true,
scope: 'open-id'
};
const state = { const state = {
userId: null, keycloak: null,
token: null userProfile: null,
}; };
const getters = { const getters = {
isAuthenticated(state) { isAuthenticated(state) {
return state.token; return state.keycloak.authenticated;
}, },
token: (state) => state.token token: (state) => state.token,
keycloak: (state) => state.keycloak,
userProfile: (state) => state.userProfile
}; };
const mutations = { const mutations = {
setUser(context, payload) { storeKeycloak(context, payload) {
console.log("mutations.setUser", payload); console.log("mutations.storeKeycloak");
state.userId = payload.userId; state.keycloak = payload;
state.token = payload.token;
}, },
storeUserProfile(context, payload) {
state.userProfile = payload;
}
};
const actions = {
storeKeycloak(context, payload) {
console.log("action.storeKeycloak");
context.commit("storeKeycloak", payload);
},
getToken(context, payload) {
console.log("actions.getToken");
console.log("Authenticated", context.state.keycloak);
context.state.keycloak.updateToken(70).then((refreshed) => {
console.log("Refresehd Token", refreshed);
}).catch((err) => {
console.log("Error", err);
});
},
storeUserProfile(context, payload) {
context.commit("storeUserProfile", payload);
}
}; };
const actions = {};
const modules = {}; const modules = {};
const authModule = { const authModule = {
state, state,

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,MAAM,KAAK,GAAG;IACV,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;CACd,CAAC;AAEF,MAAM,OAAO,GAAG;IACZ,eAAe,CAAC,KAAS;QACrB,OAAO,KAAK,CAAC,KAAK,CAAA;IACtB,CAAC;IACD,KAAK,EAAE,CAAC,KAAS,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;CAEpC,CAAC;AAEF,MAAM,SAAS,GAAG;IACd,OAAO,CAAC,OAA+B,EAAE,OAAW;QAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC1C,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,CAAC;CACJ,CAAC;AAEF,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB,MAAM,UAAU,GAAG;IACf,KAAK;IACL,OAAO;IACP,SAAS;IACT,OAAO;IACP,OAAO;CACV,CAAA;AAED,eAAe,UAAU,CAAA"} {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAGA,MAAM,cAAc,GAAG;IACnB,GAAG,EAAE,yBAAyB;IAC9B,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,wBAAwB;IACrC,MAAM,EAAE,gBAAgB;IACxB,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,SAAS;CAEnB,CAAA;AAED,MAAM,KAAK,GAAG;IACV,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;CACpB,CAAC;AAEF,MAAM,OAAO,GAAG;IACZ,eAAe,CAAC,KAAS;QACrB,OAAO,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAA;IACvC,CAAC;IACD,KAAK,EAAE,CAAC,KAAS,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;IACjC,QAAQ,EAAE,CAAC,KAAS,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ;IACvC,WAAW,EAAE,CAAC,KAAS,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW;CAEhD,CAAC;AAEF,MAAM,SAAS,GAAG;IAEd,aAAa,CAAC,OAA+B,EAAE,OAAW;QACtD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC7B,CAAC;IACD,gBAAgB,CAAC,OAA+B,EAAE,OAAW;QACzD,KAAK,CAAC,WAAW,GAAG,OAAO,CAAA;IAC/B,CAAC;CACJ,CAAC;AAEF,MAAM,OAAO,GAAG;IAEZ,aAAa,CAAC,OAA+B,EAAE,OAAW;QACtD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,QAAQ,CAAC,OAAW,EAAE,OAAW;QAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEpD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACtD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC;IACD,gBAAgB,CAAC,OAA+B,EAAE,OAAW;QACzD,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;CAEA,CAAC;AACN,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB,MAAM,UAAU,GAAG;IACf,KAAK;IACL,OAAO;IACP,SAAS;IACT,OAAO;IACP,OAAO;CACV,CAAA;AAED,eAAe,UAAU,CAAA"}

View File

@ -1,19 +1,25 @@
import * as seed from "@/seed"; import * as seed from "@/seed";
import BilliDB from "@/indexdDB";
import { v4 as uuidv4 } from 'uuid';
import { SEED_VERSION } from "@/seed";
const db = new BilliDB("billibox", 3);
const state = { const state = {
isInitialized: false, isInitialized: false,
cameras: [], cameras: [],
brands: [], brands: [],
shapes: [], conditions: [],
buildtypes: [] buildtypes: []
}; };
const getters = { const getters = {
cameras: (state) => state.cameras, cameras: (state) => {
return state.cameras.sort();
},
camera: (state) => (id) => state.cameras.find((camera) => camera.id === id), camera: (state) => (id) => state.cameras.find((camera) => camera.id === id),
activeCamera: (state) => state.cameras.find((camera) => camera.active), activeCamera: (state) => state.cameras.find((camera) => camera.active),
brands: (state) => state.brands, brands: (state) => state.brands,
brand: (state) => (id) => state.brands.find((brand) => brand.schluessel === id), brand: (state) => (id) => state.brands.find((brand) => brand.schluessel === id),
shapes: (state) => state.shapes, conditions: (state) => state.conditions,
shape: (state) => (id) => state.shapes.find((shape) => shape.schluessel === id), condition: (state) => (id) => state.conditions.find((condition) => condition.schluessel === id),
buildtypes: (state) => state.buildtypes, buildtypes: (state) => state.buildtypes,
buildtype: (state) => (id) => state.buildtypes.find((buildtype) => buildtype.schluessel === id), buildtype: (state) => (id) => state.buildtypes.find((buildtype) => buildtype.schluessel === id),
isInitialized: (state) => state.isInitialized, isInitialized: (state) => state.isInitialized,
@ -31,25 +37,46 @@ const mutations = {
}); });
console.log("STORE", state.cameras); console.log("STORE", state.cameras);
}, },
storeCamera(sate, payload) {
// console.log("mutation.storeCamera", payload)
const objCamera = state.cameras.find((camera) => camera.id === payload.id);
if (objCamera) {
// console.log("found existing Camera", objCamera.id);
payload.edit = false;
objCamera.name = payload.name;
}
else {
// console.log("creating new Camera");
payload.edit = false;
state.cameras.push(payload);
}
return payload.id;
},
setCameraActiveState(state, payload) { setCameraActiveState(state, payload) {
// console.log("setCameraActiveState", payload);
state.cameras.map((camera) => camera.active = false); state.cameras.map((camera) => camera.active = false);
const objCamera = state.cameras.find((camera) => camera.id === payload.id); const objCamera = state.cameras.find((camera) => camera.id === payload.id);
objCamera.active = payload.active; objCamera.active = payload.active;
}, },
setBrands(state, payload) { setCameraEditState(state, payload) {
console.log("mutation.setBrands"); state.cameras.map((camera) => camera.edit = false);
state.brands = payload; const objCamera = state.cameras.find((camera) => camera.id === payload.id);
console.log("STORE", state.brands); objCamera.edit = payload.edit;
}, },
setShapes(state, payload) { setBrands(state, payload) {
console.log("mutation.setShapes"); // console.log("mutation.setBrands");
state.shapes = payload; state.brands = payload;
console.log("STORE", state.shapes); // console.log("STORE", state.brands);
},
setConditions(state, payload) {
//console.log("mutation.setConditions");
state.conditions = payload;
//console.log("STORE", state.conditions);
}, },
setBuildtypes(state, payload) { setBuildtypes(state, payload) {
console.log("mutation.setBuildtypes"); //console.log("mutation.setBuildtypes");
state.buildtypes = payload; state.buildtypes = payload;
console.log("STORE", state.buildtypes); //console.log("STORE", state.buildtypes);
}, },
setInitialized(state, payload) { setInitialized(state, payload) {
state.isInitialized = payload; state.isInitialized = payload;
@ -57,7 +84,11 @@ const mutations = {
}; };
const actions = { const actions = {
fetchCameras(context) { fetchCameras(context) {
context.commit("setCameras", seed.cameras); console.log("action.fetchCameras");
db.getItems("cameras").then((cameras) => {
console.log("From DB", cameras);
context.commit("setCameras", cameras);
});
}, },
fetchBrands(context) { fetchBrands(context) {
context.commit("setBrands", seed.brands); context.commit("setBrands", seed.brands);
@ -65,19 +96,53 @@ const actions = {
fetchBuildTypes(context) { fetchBuildTypes(context) {
context.commit("setBuildtypes", seed.buildtype); context.commit("setBuildtypes", seed.buildtype);
}, },
fetchShape(context) { fetchCondition(context) {
context.commit("setShapes", seed.shape); context.commit("setConditions", seed.conditions);
}, },
setCameraActiveState(context, payload) { setCameraActiveState(context, payload) {
console.log("action.setCameraActiveState", payload); console.log("action.setCameraActiveState", payload);
const cameraObj = state.cameras.find((camera) => camera.id === payload.cameraId); const cameraObj = state.cameras.find((camera) => camera.id === payload.cameraId);
context.commit("setCameraActiveState", { id: payload.cameraId, active: payload.active }); context.commit("setCameraActiveState", { id: payload.cameraId, active: payload.active });
}, },
initialize(context) { setCameraEditState(context, payload) {
console.log("action.setCameraEditState", payload);
const cameraObj = state.cameras.find((camera) => camera.id === payload.cameraId);
context.commit("setCameraEditState", { id: payload.cameraId, edit: payload.edit });
},
storeCamera(context, payload) {
// console.log("action.storeCamera", payload)
if (!payload.id)
payload.id = uuidv4();
//console.log(" ... with id ", payload.id);
//console.log("Try to save to indexDB");
db.saveItem(payload, "cameras").then((res) => {
console.log("DB-Save resolved", res);
});
context.commit("storeCamera", payload);
context.commit("setCameraActiveState", { cameraId: payload.id, active: true });
},
initialize(context, payload) {
db.getDb();
const promises = [];
const seedVersion = localStorage.getItem("SEED_VERSION") || 0;
if (payload.seed && seedVersion < SEED_VERSION) {
console.log("SEEDING database");
promises.push(db.saveItems(seed.brands, "brands"));
promises.push(db.saveItems(seed.conditions, "conditions"));
promises.push(db.saveItems(seed.buildtype, "buildtypes"));
promises.push(db.saveItems(seed.cameras, "cameras"));
localStorage.setItem("SEED_VERSION", seed.SEED_VERSION.toString());
}
else {
console.log("SEEDING skipped");
}
Promise.all(promises).then((e) => {
console.log("All written to store");
});
context.dispatch("fetchCameras"); context.dispatch("fetchCameras");
context.dispatch("fetchBrands"); context.dispatch("fetchBrands");
context.dispatch("fetchBuildTypes"); context.dispatch("fetchBuildTypes");
context.dispatch("fetchShape"); context.dispatch("fetchCondition");
context.commit("setInitialized", true); context.commit("setInitialized", true);
} }
}; };

File diff suppressed because one or more lines are too long