195 lines
5.3 KiB
TypeScript
Executable File
195 lines
5.3 KiB
TypeScript
Executable File
import { toolsext } from '@src/store/Modules/toolsext'
|
|
|
|
import { useI18n } from '@src/boot/i18n'
|
|
|
|
// import { fieldsTable } from '@src/store/Modules/fieldsTable'
|
|
import MixinMetaTags from '@src/mixins/mixin-metatags'
|
|
|
|
import { useUserStore } from '@store/UserStore'
|
|
import { useGlobalStore } from '@store/globalStore'
|
|
import { useQuasar } from 'quasar'
|
|
import { IDataPass } from '@model'
|
|
import { tools } from '../store/Modules/tools'
|
|
import { costanti } from '@costanti'
|
|
import { fieldsTable } from '@store/Modules/fieldsTable'
|
|
|
|
// You can declare a mixin as the same style as components.
|
|
export default function () {
|
|
function showNotif(msg: string) {
|
|
const $q = useQuasar()
|
|
|
|
const { t } = useI18n()
|
|
|
|
tools.showNotif($q, t(msg))
|
|
}
|
|
|
|
function db_fieldsTable() {
|
|
return fieldsTable
|
|
}
|
|
|
|
function getValDb(keystr: string, serv: boolean, def?: any, table?: string, subkey?: any, id?: any, idmain?: any, indrec?: number, subsubkey?: string) {
|
|
// console.log('getValDb')
|
|
return toolsext.getValDb(keystr, serv, def, table, subkey, id, idmain, indrec, subsubkey)
|
|
}
|
|
|
|
|
|
function getValDbLang(keystr: string, serv: boolean, def?: any, table?: string, subkey?: any, indrec?: number, subsubkey?: string) {
|
|
let ris = toolsext.getValDb(`${keystr}_${toolsext.getLocale()}`, serv, def, table, subkey, indrec, subsubkey)
|
|
if (ris === def) ris = toolsext.getValDb(`${keystr}_it`, serv, def, table, subkey)
|
|
return ris
|
|
}
|
|
|
|
async function setValDb($q: any, key: string, value: any, type: any, serv: boolean, table?: string, subkey?: string, id?: any, indrec?: number, subsubkey?: string) {
|
|
const userStore = useUserStore()
|
|
const globalStore = useGlobalStore()
|
|
const { t } = useI18n()
|
|
|
|
console.log('setValDb', key, value, serv, table, subkey, indrec, subsubkey, indrec, subsubkey)
|
|
let mydatatosave: IDataPass | null = null
|
|
|
|
if (table === 'users') {
|
|
const myid = userStore.my._id
|
|
|
|
const myfield: any = {}
|
|
|
|
if (key === 'profile') {
|
|
|
|
if (subsubkey && indrec) {
|
|
// @ts-ignore
|
|
userStore.my.profile[subkey][indrec][subsubkey] = value
|
|
}else {
|
|
// @ts-ignore
|
|
userStore.my.profile[subkey] = value
|
|
}
|
|
} else {
|
|
// @ts-ignore
|
|
userStore.my[key] = value
|
|
}
|
|
|
|
// Save to the DB:
|
|
if (subkey) {
|
|
myfield[`${key}.${subkey}`] = value
|
|
} else {
|
|
myfield[key] = value
|
|
}
|
|
|
|
// console.log('myfield', myfield)
|
|
|
|
mydatatosave = {
|
|
id: myid,
|
|
table,
|
|
fieldsvalue: myfield,
|
|
}
|
|
} else if (table === 'todos') {
|
|
const myfield: any = {}
|
|
|
|
// Save to the DB:
|
|
if (subkey) {
|
|
myfield[`${key}.${subkey}`] = value
|
|
} else {
|
|
myfield[key] = value
|
|
}
|
|
|
|
// console.log('myfield', myfield)
|
|
|
|
mydatatosave = {
|
|
id,
|
|
table,
|
|
fieldsvalue: myfield,
|
|
}
|
|
} else if (table === 'settings') {
|
|
globalStore.setValueSettingsByKey({ key, value, serv })
|
|
|
|
let myrec = globalStore.getrecSettingsByKey(key, serv)
|
|
console.log('settings... myrec ', myrec, 'key=', key, 'serv', serv)
|
|
if (myrec === undefined) {
|
|
myrec = {
|
|
idapp: process.env.APP_ID,
|
|
key,
|
|
type,
|
|
}
|
|
myrec.serv = serv
|
|
if ((myrec.type === costanti.FieldType.date) || (myrec.type === costanti.FieldType.onlydate)) myrec.value_date = value
|
|
else if ((myrec.type === costanti.FieldType.number) || (myrec.type === costanti.FieldType.hours)) myrec.value_num = value
|
|
else if (myrec.type === costanti.FieldType.boolean) myrec.value_bool = value
|
|
else myrec.value_str = value
|
|
|
|
myrec = await tools.createNewRecord($q, 'settings', myrec).then(
|
|
(myrecris) => {
|
|
// console.log('myrec')
|
|
let recsett = null
|
|
if (serv) recsett = globalStore.serv_settings
|
|
else recsett = globalStore.settings
|
|
|
|
if (myrecris) recsett.push(myrecris)
|
|
// @ts-ignore
|
|
return recsett.find((rec) => rec.key === key)
|
|
},
|
|
)
|
|
}
|
|
console.log('myrec', myrec)
|
|
|
|
mydatatosave = {
|
|
// @ts-ignore
|
|
id: myrec ? myrec._id : '',
|
|
table: 'settings',
|
|
// @ts-ignore
|
|
fieldsvalue: myrec,
|
|
}
|
|
} else {
|
|
const myfield: any = {}
|
|
|
|
// Save to the DB:
|
|
if (subkey) {
|
|
myfield[`${key}.${subkey}`] = value
|
|
} else {
|
|
myfield[key] = value
|
|
}
|
|
|
|
// console.log('myfield', myfield)
|
|
|
|
mydatatosave = {
|
|
id,
|
|
table: table || '',
|
|
fieldsvalue: myfield,
|
|
}
|
|
}
|
|
|
|
console.log('mydatatosave', mydatatosave)
|
|
|
|
// @ts-ignore
|
|
globalStore.saveFieldValue(mydatatosave).then((esito) => {
|
|
if (esito) {
|
|
tools.showPositiveNotif($q, t('db.recupdated'))
|
|
} else {
|
|
tools.showNegativeNotif($q, t('db.recfailed'))
|
|
// Undo...
|
|
}
|
|
})
|
|
}
|
|
|
|
function getarrValDb(keystr: string, serv: boolean) {
|
|
const globalStore = useGlobalStore()
|
|
|
|
const myval = globalStore.getValueSettingsByKey(keystr, serv)
|
|
// console.log('myval', myval)
|
|
try {
|
|
if (myval) {
|
|
return JSON.parse(myval)
|
|
}
|
|
return []
|
|
} catch (e) {
|
|
return []
|
|
}
|
|
}
|
|
|
|
return {
|
|
showNotif,
|
|
db_fieldsTable,
|
|
getValDb,
|
|
getValDbLang,
|
|
setValDb,
|
|
getarrValDb,
|
|
}
|
|
}
|