- pagine admin: Accounts, Movements e Circuits.

- add change min e max range circuiti (per tutti i record).
This commit is contained in:
Surya Paolo
2023-02-06 22:58:18 +01:00
parent 0234e2323a
commit 5c2b28939b
24 changed files with 560 additions and 180 deletions

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.5.63" APP_VERSION="0.5.66"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.5.63" APP_VERSION="0.5.66"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.5.63" APP_VERSION="0.5.66"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.5.63" APP_VERSION="0.5.66"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13" APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.5.63" APP_VERSION="0.5.66"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="14" APP_ID="14"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1242,7 +1242,7 @@ export const shared_consts = {
CIRCUIT_PARAMS: { CIRCUIT_PARAMS: {
SCOPERTO_MIN_GRP: 200, SCOPERTO_MIN_GRP: 200,
SCOPERTO_MAX_GRP: 500, SCOPERTO_MAX_GRP: 400,
}, },
FontsInstalled: [ FontsInstalled: [

View File

@@ -81,12 +81,45 @@
</div> </div>
<div v-else-if="col.fieldtype === costanti.FieldType.username_chip"> <div v-else-if="col.fieldtype === costanti.FieldType.username_chip">
<div class=""> <div class="">
<span v-if="col.extrafield && (col.tipovisu !== costanti.TipoVisu.LINK || (col.tipovisu === costanti.TipoVisu.LINK && userStore.getImgByProfile(row, true, col)))"> <span
v-if="
col.extrafield &&
(col.tipovisu !== costanti.TipoVisu.LINK ||
(col.tipovisu === costanti.TipoVisu.LINK &&
userStore.getImgByProfile(row, true, col)))
"
>
<span class="extrafield">{{ $t(col.extrafield) }}</span> <span class="extrafield">{{ $t(col.extrafield) }}</span>
</span> </span>
</div> </div>
<div v-if="!col.extrafield || (col.extrafield && (col.tipovisu !== costanti.TipoVisu.LINK || (col.tipovisu === costanti.TipoVisu.LINK && userStore.getImgByProfile(row, true, col))))" <div v-if="canModify">
class="q-ma-xs chip_shadow"> <q-input
:type="
col.fieldtype === costanti.FieldType.crypted
? 'password'
: 'text'
"
:maxlength="col.maxlength ? col.maxlength : undefined"
:minlength="col.minlength ? col.minlength : undefined"
v-model="myvalue"
@update:model-value="changevalRec"
:label="col.visulabel ? $t(col.label_trans) : ''"
:autogrow="col.fieldtype !== costanti.FieldType.crypted"
@keyup.enter.stop
autofocus
>
</q-input>
</div>
<div
v-else-if="
!col.extrafield ||
(col.extrafield &&
(col.tipovisu !== costanti.TipoVisu.LINK ||
(col.tipovisu === costanti.TipoVisu.LINK &&
userStore.getImgByProfile(row, true, col))))
"
class="q-ma-xs chip_shadow"
>
<div <div
v-if=" v-if="
(col.tipovisu === costanti.TipoVisu.LINK || (col.tipovisu === costanti.TipoVisu.LINK ||
@@ -975,6 +1008,7 @@
</div> </div>
</div> </div>
</div> </div>
<div v-else-if="col.fieldtype === costanti.FieldType.password"> <div v-else-if="col.fieldtype === costanti.FieldType.password">
<div v-if="isInModif"> <div v-if="isInModif">
<q-input <q-input
@@ -1323,6 +1357,23 @@
> >
</CMyToggleList> </CMyToggleList>
</div> </div>
<div v-else-if="col.fieldtype === costanti.FieldType.username_chip">
<q-input
:type="
col.fieldtype === costanti.FieldType.crypted
? 'password'
: 'text'
"
:maxlength="col.maxlength ? col.maxlength : undefined"
:minlength="col.minlength ? col.minlength : undefined"
v-model="scope.value"
:label="col.visulabel ? $t(col.label_trans) : ''"
:autogrow="col.fieldtype !== costanti.FieldType.crypted"
@keyup.enter.stop
autofocus
>
</q-input>
</div>
<div <div
v-else-if=" v-else-if="
col.fieldtype === costanti.FieldType.star5 || col.fieldtype === costanti.FieldType.star5 ||

View File

@@ -86,8 +86,8 @@ export default defineComponent({
//$router.push(link) //$router.push(link)
} }
function getNameToShow(user: IUserFields) { function getNameToShow(user: IUserFields, col = null) {
return userStore.getNameToShow(user) return userStore.getNameToShow(user, col)
} }

View File

@@ -69,6 +69,8 @@ export default defineComponent({
const groupSel = ref(<IMyGroup | null | undefined>null) const groupSel = ref(<IMyGroup | null | undefined>null)
const datasaved = ref(<any>null)
const circuittoload = ref(<ICircuit | undefined>undefined) const circuittoload = ref(<ICircuit | undefined>undefined)
const circuitloaded = ref(<ICircuit>{}) const circuitloaded = ref(<ICircuit>{})
const circuitdest = ref(<ICircuit | undefined>undefined) const circuitdest = ref(<ICircuit | undefined>undefined)
@@ -101,6 +103,12 @@ export default defineComponent({
}) })
watch(() => tipoConto.value, (newval, oldval) => { watch(() => tipoConto.value, (newval, oldval) => {
if (tipoConto.value === costanti.AccountType.COLLECTIVE_ACCOUNT) {
if (arrGroupsList.value.length >= 1)
from_groupname.value = arrGroupsList.value[0]
}
aggiorna() aggiorna()
}) })
@@ -122,9 +130,18 @@ export default defineComponent({
groupSel.value = null groupSel.value = null
from_contocom.value = '' from_contocom.value = ''
accountloaded.value = null accountloaded.value = null
if (!circuittoload.value || (circuittoload.value && circuittoload.value.name !== circuitsel.value)) {
circuittoload.value = circuitStore.listcircuits.find((rec: ICircuit) => rec.name === circuitsel.value) circuittoload.value = circuitStore.listcircuits.find((rec: ICircuit) => rec.name === circuitsel.value)
if (circuittoload.value) { if (circuittoload.value) {
await userStore.loadCircuit(circuittoload.value.path, '').then(({ data, status }: { data: any, status: number }) => { await userStore.loadCircuit(circuittoload.value.path, '').then(({ data, status }: { data: any, status: number }) => {
datasaved.value = data
})
}
}
if (datasaved.value) {
try { try {
arrTypesAccounts.value = [ arrTypesAccounts.value = [
{ {
@@ -134,8 +151,8 @@ export default defineComponent({
] ]
if (!!data.circuit) { if (!!datasaved.value.circuit) {
circuitloaded.value = data.circuit circuitloaded.value = datasaved.value.circuit
if (tipoConto.value === costanti.AccountType.USER) { if (tipoConto.value === costanti.AccountType.USER) {
accountloaded.value = userStore.getAccountByCircuitId(circuitloaded.value._id) accountloaded.value = userStore.getAccountByCircuitId(circuitloaded.value._id)
@@ -155,6 +172,12 @@ export default defineComponent({
if (groupsListAdmin.value) { if (groupsListAdmin.value) {
for (const group of groupsListAdmin.value) { for (const group of groupsListAdmin.value) {
let aggiungi = true
if (props.to_group && props.to_group.groupname === group.groupname)
aggiungi = false
if (aggiungi)
arrGroupsList.value.push({ label: group.groupname, value: group.groupname }); arrGroupsList.value.push({ label: group.groupname, value: group.groupname });
} }
} }
@@ -167,7 +190,7 @@ export default defineComponent({
}) })
} }
if (tools.iCanSendCoinsSuperUserCircuit(circuitsel.value)) { if (tools.iCanSendCoinsSuperUserCircuit(circuitsel.value) && (!props.to_contocom)) {
arrTypesAccounts.value.push({ arrTypesAccounts.value.push({
label: t('circuit.contocom'), label: t('circuit.contocom'),
value: costanti.AccountType.COMMUNITY_ACCOUNT, value: costanti.AccountType.COMMUNITY_ACCOUNT,
@@ -211,7 +234,6 @@ export default defineComponent({
} finally { } finally {
loading.value = false loading.value = false
} }
})
} }
} }

View File

@@ -15,6 +15,7 @@
</q-toolbar> </q-toolbar>
<q-card-section class="q-pa-xs inset-shadow"> <q-card-section class="q-pa-xs inset-shadow">
<q-select <q-select
v-if="!circuitname"
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'" :behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
rounded rounded
outlined outlined
@@ -23,6 +24,9 @@
label="Circuito" label="Circuito"
> >
</q-select> </q-select>
<div v-else>
Circuito: {{circuitname}}
</div>
<q-banner <q-banner
rounded rounded
@@ -220,24 +224,21 @@
</q-card-section> </q-card-section>
<q-card-actions align="center"> <q-card-actions align="center">
<q-btn <q-btn
v-if="circuitloaded" v-if="circuitloaded && (qtyRef
:disable=" ? !(qtyRef.hasError ||
qtyRef
? qtyRef.hasError ||
!circuitloaded.transactionsEnabled || !circuitloaded.transactionsEnabled ||
(tipoConto === costanti.AccountType.USER && (tipoConto === costanti.AccountType.USER &&
to_user && to_user &&
from_username === to_user.username) || from_username === to_user.username) ||
(tipoConto === costanti.AccountType.COLLECTIVE_ACCOUNT && (tipoConto === costanti.AccountType.COLLECTIVE_ACCOUNT &&
!from_groupname) || !from_groupname) ||
(tipoConto === costanti.AccountType.COLLECTIVE_ACCOUNT && (tipoConto === costanti.AccountType.COLLECTIVE_ACCOUT &&
to_group && to_group &&
from_groupname && from_groupname &&
to_group.groupname === from_groupname) || to_group.groupname === from_groupname) ||
(tipoConto === costanti.AccountType.COMMUNITY_ACCOUNT && (tipoConto === costanti.AccountType.COMMUNITY_ACCOUNT &&
!from_contocom) !from_contocom))
: false : true)"
"
:label=" :label="
$t('circuit.sendcoinsto', { $t('circuit.sendcoinsto', {
qty, qty,

View File

@@ -61,6 +61,8 @@ const msg_website_it = {
SignUp3: 'Reg', SignUp3: 'Reg',
SignUp4: 'Reg', SignUp4: 'Reg',
SignUp5: 'Reg', SignUp5: 'Reg',
SignUp6: 'Registrati',
SignUp7: 'Registra',
SignUpBot: 'Registrati con Telegram', SignUpBot: 'Registrati con Telegram',
SignIn: 'Login', SignIn: 'Login',
status: 'Statistiche', status: 'Statistiche',

View File

@@ -380,6 +380,7 @@ export interface IMetaTags {
export interface ICircuitState { export interface ICircuitState {
listcircuits: ICircuit[] listcircuits: ICircuit[]
listaccounts: IAccount[]
} }
export interface ISelector { export interface ISelector {
@@ -1134,7 +1135,10 @@ export interface IMovVisu {
} }
export interface IAccount { export interface IAccount {
_id: string
username: string username: string
contocom: string
groupname: string
circuitId: string circuitId: string
circuit: ICircuit[] circuit: ICircuit[]
name: string name: string

View File

@@ -16,11 +16,14 @@ export default defineComponent({
const arrfilterand: any = ref([]) const arrfilterand: any = ref([])
function mounted() { async function mounted() {
if (tools.appid() === tools.IDAPP_RISO) { if (tools.appid() === tools.IDAPP_RISO) {
arrfilterand.value = [ arrfilterand.value = [
] ]
} }
await tools.loadAccounts()
} }
onMounted(mounted) onMounted(mounted)

View File

@@ -122,7 +122,7 @@ function getRoutesAd(site: ISites) {
active: true, active: true,
order: 10, order: 10,
path: '/admin/ris/circuitslist', path: '/admin/ris/circuitslist',
materialIcon: 'fas fa-users', materialIcon: 'fas fa-coins',
name: 'otherpages.admin.circuitslist', name: 'otherpages.admin.circuitslist',
component: () => import('@/rootgen/admin/circuitsList/circuitsList.vue'), component: () => import('@/rootgen/admin/circuitsList/circuitsList.vue'),
inmenu: true, inmenu: true,
@@ -230,7 +230,7 @@ function getRoutesAd(site: ISites) {
path: '/admin/ris', path: '/admin/ris',
order: 60, order: 60,
faIcon: 'fa fa-list-alt', faIcon: 'fa fa-list-alt',
materialIcon: 'fas fa-users', materialIcon: 'fas fa-coins',
name: 'otherpages.admin.monete', name: 'otherpages.admin.monete',
routes2: routes_ris, routes2: routes_ris,
inmenu: false, inmenu: false,
@@ -556,6 +556,17 @@ function getRoutesAd(site: ISites) {
infooter: false, infooter: false,
separator: false separator: false
}, },
{
active: site.confpages && site.confpages.enableReg && (!site.confpages.enabledRegNeedTelegram || site.confpages.enableRegMultiChoice),
order: 1002,
path: '/registrati',
materialIcon: 'how_to_reg',
name: 'pages.SignUp7',
component: () => import('@/views/login/signup_noteleg/signup_noteleg.vue'),
inmenu: false,
infooter: false,
separator: false
},
{ {
active: true, active: true,
order: 1001, order: 1001,
@@ -567,6 +578,17 @@ function getRoutesAd(site: ISites) {
infooter: false, infooter: false,
separator: false separator: false
}, },
{
active: true,
order: 1002,
path: '/registrati/:invited',
materialIcon: 'how_to_reg',
name: 'pages.SignUp6',
component: () => import('@/views/login/signup/signup.vue'),
inmenu: false,
infooter: false,
separator: false
},
{ {
active: true, active: true,
order: 1001, order: 1001,

View File

@@ -1268,6 +1268,7 @@ const msg_it = {
transaction_suspended: 'Transazioni sospese', transaction_suspended: 'Transazioni sospese',
choosecontocom: 'Scegli il tuo Conto Collettivo', choosecontocom: 'Scegli il tuo Conto Collettivo',
contocom: 'Conto Comunitario', contocom: 'Conto Comunitario',
contocoll: 'Conto Collettivo',
user: 'Utente', user: 'Utente',
sender: 'Mittente', sender: 'Mittente',
dest: 'Destinatario', dest: 'Destinatario',

View File

@@ -23,7 +23,8 @@ import globalroutines from '../globalroutines/index'
export const useCircuitStore = defineStore('CircuitStore', { export const useCircuitStore = defineStore('CircuitStore', {
state: (): ICircuitState => ({ state: (): ICircuitState => ({
listcircuits: [] listcircuits: [],
listaccounts: [],
}), }),
getters: {}, getters: {},
@@ -72,6 +73,23 @@ export const useCircuitStore = defineStore('CircuitStore', {
return this.listcircuits.find((rec: ICircuit) => rec.name === circuitname) return this.listcircuits.find((rec: ICircuit) => rec.name === circuitname)
}, },
getCircuitByCircuitId(circuitId: string): ICircuit | null | undefined {
return this.listcircuits.find((rec: ICircuit) => rec._id === circuitId)
},
getNameByCircuitId(circuitId: string): string {
const circuit = this.getCircuitByCircuitId(circuitId);
return circuit && circuit.name ? circuit.name : ''
},
getCircuitsLabelValue(): any {
let arr = []
for (const circ of this.listcircuits) {
arr.push({label: circ.name, value: circ._id})
}
return arr
},
getCircuitByPath(circuitpath: string): ICircuit | null { getCircuitByPath(circuitpath: string): ICircuit | null {
const ris = this.listcircuits.find((rec: ICircuit) => rec.path === circuitpath) const ris = this.listcircuits.find((rec: ICircuit) => rec.path === circuitpath)
return ris ? ris : null return ris ? ris : null
@@ -99,6 +117,26 @@ export const useCircuitStore = defineStore('CircuitStore', {
return false return false
}, },
getAccountByCircuitId(circuitId: string): any {
if (this.listaccounts) {
return this.listaccounts.find((rec: IAccount) => rec.circuitId === circuitId)
}
return null
},
getAccountsListNameValue(): any[] {
let arr = []
if (this.listaccounts) {
for (const acc of this.listaccounts) {
let chi = acc.username ? acc.username : (acc.groupname ? 'Collettivo: ' + acc.groupname : 'Comunitario: ' + acc.contocom)
if (acc.circuitId) {
chi = '[' + this.getNameByCircuitId(acc.circuitId) + '] ' + chi
}
arr.push({label: chi, value: acc._id})
}
}
return arr
},
}, },
}) })

View File

@@ -18,7 +18,7 @@ export const costanti = {
}, },
ENABLE_FRIENDS: false, ENABLE_FRIENDS: false,
ENABLE_CONTI_COMUNITARI: true, ENABLE_CONTI_COLLETTIVI: true,
AccountType: { AccountType: {
USER: 0, USER: 0,

View File

@@ -2880,7 +2880,7 @@ export const colTableCircuitComplete = [
] ]
export const colTableCircuit = [ export const colTableCircuit = [
// AddCol({ name: 'groupnameId', label_trans: 'circuit.groupnameId', fieldtype: costanti.FieldType.select, jointable: 'mygroups' }), // da togliere poi AddCol({ name: '_id', label_trans: 'circuit.Id' }), // da togliere poi
AddCol({ AddCol({
name: 'name', label_trans: 'circuit.name', name: 'name', label_trans: 'circuit.name',
required: true, required: true,
@@ -2986,9 +2986,36 @@ export const colTableCircuit = [
] ]
export const colmyUserCircuit = [ export const colmyUserCircuit = [
AddCol({ name: 'circuitId', label_trans: 'account.circuitId', fieldtype: costanti.FieldType.string }), AddCol({
AddCol({ name: 'userId', label_trans: 'account.users', fieldtype: costanti.FieldType.select, jointable: 'users' }), name: 'circuitId', label_trans: 'account.circuitId',
AddCol({ name: 'name', label_trans: 'circuit.name' }), fieldtype: costanti.FieldType.select,
jointable: 'listcircuits',
}),
AddCol({ name: 'username', label_trans: 'account.users', fieldtype: costanti.FieldType.username_chip,
tipovisu: costanti.TipoVisu.LINK }),
AddCol({
name: 'contocom',
label_trans: 'movement.accountFromComId',
foredit: false,
tipovisu: costanti.TipoVisu.LINK,
fieldtype: costanti.FieldType.username_chip,
link: '/circuits/contocom',
noshowlabel: true,
tipoconto: costanti.AccountType.COMMUNITY_ACCOUNT,
}),
AddCol({
name: 'groupname',
label_trans: 'circuit.contocoll',
foredit: false,
tipovisu: costanti.TipoVisu.LINK,
fieldtype: costanti.FieldType.username_chip,
link: '/circuits/groupname',
noshowlabel: true,
tipoconto: costanti.AccountType.COLLECTIVE_ACCOUNT,
}),
AddCol({ name: 'deperibile', label_trans: 'account.deperibile', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'deperibile', label_trans: 'account.deperibile', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'fidoConcesso', label_trans: 'account.fidoConcesso', fieldtype: costanti.FieldType.number }), AddCol({ name: 'fidoConcesso', label_trans: 'account.fidoConcesso', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'qta_maxConcessa', label_trans: 'account.qta_maxConcessa', fieldtype: costanti.FieldType.number }), AddCol({ name: 'qta_maxConcessa', label_trans: 'account.qta_maxConcessa', fieldtype: costanti.FieldType.number }),
@@ -3022,8 +3049,10 @@ export const colTableNotifCoins = [
export const colTableMovement = [ export const colTableMovement = [
AddCol({ name: 'transactionDate', label_trans: 'movement.transactionDate', fieldtype: costanti.FieldType.date }), AddCol({ name: 'transactionDate', label_trans: 'movement.transactionDate', fieldtype: costanti.FieldType.date }),
AddCol({ name: 'accountFromId', label_trans: 'movement.accountFromId', fieldtype: costanti.FieldType.string, required: true }), AddCol({ name: 'accountFromId', label_trans: 'movement.accountFromId', fieldtype: costanti.FieldType.select,
AddCol({ name: 'accountToId', label_trans: 'movement.accountToId', fieldtype: costanti.FieldType.string, required: true }), required: true, jointable: 'listaccounts', }),
AddCol({ name: 'accountToId', label_trans: 'movement.accountToId', fieldtype: costanti.FieldType.select,
required: true, jointable: 'listaccounts' }),
AddCol({ name: 'amount', label_trans: 'movement.amount', fieldtype: costanti.FieldType.number, required: true }), AddCol({ name: 'amount', label_trans: 'movement.amount', fieldtype: costanti.FieldType.number, required: true }),
AddCol({ name: 'causal', label_trans: 'movement.causal' }), AddCol({ name: 'causal', label_trans: 'movement.causal' }),
AddCol({ name: 'causal_table', label_trans: 'movement.causal_table' }), AddCol({ name: 'causal_table', label_trans: 'movement.causal_table' }),
@@ -3423,6 +3452,30 @@ export const fieldsTable = {
collabel: 'username', collabel: 'username',
noshow: true, noshow: true,
}, },
{
value: 'circuits',
label: 'Circuiti',
columns: colTableCircuit,
colkey: '_id',
collabel: 'name',
noshow: true,
},
{
value: 'listcircuits',
label: 'Lista Circuiti',
columns: colTableGeneric,
colkey: 'value',
collabel: 'label',
noshow: true,
},
{
value: 'listaccounts',
label: 'Lista Account',
columns: colTableGeneric,
colkey: 'value',
collabel: 'label',
noshow: true,
},
{ {
value: 'visibility', value: 'visibility',
label: 'Visibilità Permessi', label: 'Visibilità Permessi',
@@ -3710,13 +3763,6 @@ export const fieldsTable = {
colkey: 'value', colkey: 'value',
collabel: 'label', collabel: 'label',
}, },
{
value: 'circuits',
label: 'Circuiti',
columns: colTableCircuit,
colkey: '_id',
collabel: 'name',
},
{ {
value: toolsext.TABTYPEHOSP, value: toolsext.TABTYPEHOSP,
label: 'Tipo Ospitalità', label: 'Tipo Ospitalità',

View File

@@ -7173,6 +7173,23 @@ export const tools = {
return [] return []
}, },
async loadAccounts() {
const userStore = useUserStore()
const circuitStore = useCircuitStore()
// Carica il profilo di quest'utente
await userStore.loadAllAccounts().then((ris) => {
// console.log('ris', ris)
if (ris) {
circuitStore.listaccounts = ris.listaccounts ? ris.listaccounts : []
return true
}
})
return false
},
async loadrecProfile() { async loadrecProfile() {
const userStore = useUserStore() const userStore = useUserStore()
@@ -7560,6 +7577,7 @@ export const tools = {
return myemail.search(/hotmail/i) !== -1 return myemail.search(/hotmail/i) !== -1
|| myemail.search(/outlook/i) !== -1 || myemail.search(/outlook/i) !== -1
|| myemail.search(/live.it/i) !== -1 || myemail.search(/live.it/i) !== -1
|| myemail.search(/live.com/i) !== -1
|| myemail.search(/microsoft/i) !== -1 || myemail.search(/microsoft/i) !== -1
}, },
// || myemail.search(/yahoo/i) !== -1 // || myemail.search(/yahoo/i) !== -1

View File

@@ -467,13 +467,27 @@ export const useUserStore = defineStore('UserStore', {
return tools.getCommonAllRecord([...this.my.profile.handshake], [...myuser.profile.handshake], 'username') return tools.getCommonAllRecord([...this.my.profile.handshake], [...myuser.profile.handshake], 'username')
}, },
getAccountByCircuitId(circuitId: string): any { getAccountByCircuitId(circuitId: string): any {
if (this.my.profile.useraccounts) { if (this.my.profile.useraccounts) {
return this.my.profile.useraccounts.find((rec: IAccount) => rec.circuitId === circuitId) return this.my.profile.useraccounts.find((rec: IAccount) => rec.circuitId === circuitId)
} }
return null return null
}, },
getAccountsListNameValue(): any[] {
let arr = []
const circuitStore = useCircuitStore()
if (this.my.profile.useraccounts) {
for (const acc of this.my.profile.useraccounts) {
let chi = acc.username ? acc.username : (acc.groupname ? acc.groupname : acc.contocom)
if (acc.circuit) {
chi += ' (' + circuitStore.getNameByCircuitId(acc.circuitId) + ')'
}
arr.push({label: chi, value: acc._id})
}
}
return arr
},
IsRefusedCircuitByName(circuitname: string): boolean { IsRefusedCircuitByName(circuitname: string): boolean {
if (this.my.profile.refused_circuits) if (this.my.profile.refused_circuits)
@@ -482,7 +496,6 @@ export const useUserStore = defineStore('UserStore', {
return false return false
}, },
getImgByCircuit(circ: ICircuit | null): string { getImgByCircuit(circ: ICircuit | null): string {
try { try {
@@ -500,7 +513,6 @@ export const useUserStore = defineStore('UserStore', {
return this.getImgByCircuit(mycirc) return this.getImgByCircuit(mycirc)
}, },
getImgByGroup(group: IMyGroup | null): string { getImgByGroup(group: IMyGroup | null): string {
try { try {
@@ -607,9 +619,15 @@ export const useUserStore = defineStore('UserStore', {
name = myrec.dest name = myrec.dest
} }
} else if (tipoconto === costanti.AccountType.COLLECTIVE_ACCOUNT) { } else if (tipoconto === costanti.AccountType.COLLECTIVE_ACCOUNT) {
if (myrec.hasOwnProperty('descr'))
return myrec.descr return myrec.descr
else if (myrec.hasOwnProperty('groupname'))
return myrec.groupname
} else if (tipoconto === costanti.AccountType.COMMUNITY_ACCOUNT) { } else if (tipoconto === costanti.AccountType.COMMUNITY_ACCOUNT) {
if (myrec.hasOwnProperty('name'))
return myrec.name return myrec.name
else if (myrec.hasOwnProperty('contocom'))
return myrec.contocom
} }
return name return name
@@ -1413,6 +1431,16 @@ export const useUserStore = defineStore('UserStore', {
}, },
async loadAllAccounts() {
return Api.SendReq('/account/loadall', 'POST', null)
.then((res) => {
return res.data
}).catch((error) => {
return {}
})
},
async setFriendsCmd($q: any, t: any, usernameOrig: string, usernameDest: string, cmd: number, value: any) { async setFriendsCmd($q: any, t: any, usernameOrig: string, usernameDest: string, cmd: number, value: any) {
return Api.SendReq('/users/friends/cmd', 'POST', { usernameOrig, usernameDest, cmd, value }) return Api.SendReq('/users/friends/cmd', 'POST', { usernameOrig, usernameDest, cmd, value })
.then((res) => { .then((res) => {

View File

@@ -254,6 +254,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
let ris: any = [] let ris: any = []
const calendarStore = useCalendarStore() const calendarStore = useCalendarStore()
const circuitStore = useCircuitStore()
const userStore = useUserStore() const userStore = useUserStore()
const messageStore = useMessageStore() const messageStore = useMessageStore()
const notifStore = useNotifStore() const notifStore = useNotifStore()
@@ -285,6 +286,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
else if (table === 'departments') ris = state.departments else if (table === 'departments') ris = state.departments
else if (table === 'sharewithus') ris = state.sharewithus else if (table === 'sharewithus') ris = state.sharewithus
else if (table === 'paymenttypes') ris = state.paymenttypes else if (table === 'paymenttypes') ris = state.paymenttypes
else if (table === 'circuits') ris = circuitStore.listcircuits
else if (table === 'listcircuits') ris = circuitStore.getCircuitsLabelValue()
else if (table === 'listaccounts') ris = circuitStore.getAccountsListNameValue()
else if (table === 'bookings') else if (table === 'bookings')
return calendarStore.bookedevent return calendarStore.bookedevent
else if (table === 'users') else if (table === 'users')
@@ -491,6 +495,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
infooter: true, infooter: true,
} }
// console.log('Sito Online? ', toolsext.sito_online(false))
if (!toolsext.sito_online(false)) { if (!toolsext.sito_online(false)) {
static_data.routes = [sito_offline, last] static_data.routes = [sito_offline, last]
} else { } else {
@@ -519,8 +525,26 @@ export const useGlobalStore = defineStore('GlobalStore', {
if (!$router.hasRoute(route.name)) { if (!$router.hasRoute(route.name)) {
$router.addRoute(route) $router.addRoute(route)
} }
if (route.routes2) {
for (const route2 of route.routes2) {
if (!$router.hasRoute(route2.name)) {
$router.addRoute(route2)
}
if (route2.routes2) {
for (const route3 of route2.routes2) {
if (!$router.hasRoute(route3.name)) {
$router.addRoute(route3)
}
}
}
}
}
}) })
if (!tools.sito_online(false)) { if (!tools.sito_online(false)) {
$router.replace('/sito_offline') $router.replace('/sito_offline')
} }
@@ -1458,6 +1482,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
calendarStore.contribtype = (res.data.contribtype) ? res.data.contribtype : [] calendarStore.contribtype = (res.data.contribtype) ? res.data.contribtype : []
circuitStore.listcircuits = (res.data.listcircuits) ? res.data.listcircuits : [] circuitStore.listcircuits = (res.data.listcircuits) ? res.data.listcircuits : []
circuitStore.listaccounts = (res.data.listaccounts) ? res.data.listaccounts : []
this.settings = (res.data.settings) ? [...res.data.settings] : [] this.settings = (res.data.settings) ? [...res.data.settings] : []
this.disciplines = (res.data.disciplines) ? [...res.data.disciplines] : [] this.disciplines = (res.data.disciplines) ? [...res.data.disciplines] : []
@@ -1483,7 +1508,6 @@ export const useGlobalStore = defineStore('GlobalStore', {
this.mygroups = (res.data.mygroups) ? [...res.data.mygroups] : [] this.mygroups = (res.data.mygroups) ? [...res.data.mygroups] : []
this.adtypes = (res.data.adtypes) ? [...res.data.adtypes] : [] this.adtypes = (res.data.adtypes) ? [...res.data.adtypes] : []
this.adtypegoods = (res.data.adtypegoods) ? [...res.data.adtypegoods] : [] this.adtypegoods = (res.data.adtypegoods) ? [...res.data.adtypegoods] : []
circuitStore.listcircuits = (res.data.listcircuits) ? [...res.data.listcircuits] : []
// console.log('res.data.cart', res.data.cart) // console.log('res.data.cart', res.data.cart)
@@ -1750,7 +1774,13 @@ export const useGlobalStore = defineStore('GlobalStore', {
if (costanti.TABLES_ARRAY.includes(table)) { if (costanti.TABLES_ARRAY.includes(table)) {
const newarr = [] const newarr = []
for (const value of myarr) { for (const value of myarr) {
newarr.push({ value, label: value }) let label = value
if (table === 'mygroups')
label = value.descr
else if (table === 'circuits')
label = value.name
newarr.push({ value, label })
} }
myarr = newarr myarr = newarr

View File

@@ -9,6 +9,7 @@ import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore' import { useGlobalStore } from '@store/globalStore'
import { tools } from '@store/Modules/tools' import { tools } from '@store/Modules/tools'
import { costanti } from '@costanti' import { costanti } from '@costanti'
import { shared_consts } from '@src/common/shared_vuejs'
export default defineComponent({ export default defineComponent({
name: 'Dbop', name: 'Dbop',
@@ -24,11 +25,17 @@ export default defineComponent({
const date_start = ref(new Date()) const date_start = ref(new Date())
const col = ref(0) const col = ref(0)
const placca = ref('') const placca = ref('')
const valmin = ref(200)
const valmax = ref(400)
const defmin = ref(shared_consts.CIRCUIT_PARAMS.SCOPERTO_MIN_GRP)
const defmax = ref(shared_consts.CIRCUIT_PARAMS.SCOPERTO_MAX_GRP)
const defpersmin = ref(100)
const defpersmax = ref(200)
const search_username = ref('') const search_username = ref('')
const replace_username = ref('') const replace_username = ref('')
const incaricamento = ref(false) const incaricamento = ref(false)
function EseguiFunz(miafunz: string, search_username?: string, replace_username?: string) { function EseguiFunz(miafunz: string, search_username?: string, replace_username?: string, valmin?: number, valmax?: number) {
const userStore = useUserStore() const userStore = useUserStore()
const globalStore = useGlobalStore() const globalStore = useGlobalStore()
@@ -51,6 +58,8 @@ export default defineComponent({
numpersone: numpersone, numpersone: numpersone,
search_username, search_username,
replace_username, replace_username,
valmin: valmin,
valmax: valmax,
} }
incaricamento.value = true incaricamento.value = true
@@ -82,7 +91,13 @@ export default defineComponent({
tools, tools,
costanti, costanti,
search_username, search_username,
replace_username replace_username,
valmin,
valmax,
defmin,
defmax,
defpersmin,
defpersmax,
} }
}, },
}) })

View File

@@ -1,23 +1,27 @@
<template> <template>
<div> <div>
<CTitleBanner title="Operazioni su DB:"></CTitleBanner> <CTitleBanner title="Operazioni su DB:"></CTitleBanner>
<div class="row justify-center q-gutter-sm q-list--bordered center_img" style="max-width: 600px"> <div
class="row justify-center q-gutter-sm q-list--bordered center_img"
style="max-width: 600px"
>
<CMyFieldDb <CMyFieldDb
title="SITO_ONLINE" title="SITO_ONLINE"
mykey="SITO_ONLINE" mykey="SITO_ONLINE"
:serv="false" :serv="false"
:type="costanti.FieldType.boolean"> :type="costanti.FieldType.boolean"
>
</CMyFieldDb> </CMyFieldDb>
<br> <br />
<CMyFieldDb <CMyFieldDb
title="ABILITA CRONTAB (1 ora)" title="ABILITA CRONTAB (1 ora)"
mykey="CRONTAB" mykey="CRONTAB"
:serv="false" :serv="false"
:type="costanti.FieldType.boolean"> :type="costanti.FieldType.boolean"
>
</CMyFieldDb> </CMyFieldDb>
<br> <br />
<!-- <!--
<div class="row"> <div class="row">
@@ -203,101 +207,196 @@
<div class="row"> <div class="row">
<q-btn <q-btn
label="Correggi Tabella Hours con userId" color="negative" label="Correggi Tabella Hours con userId"
@click="EseguiFunz('CorreggiTabHours')"></q-btn> color="negative"
<br> @click="EseguiFunz('CorreggiTabHours')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="setVerifiedByAportadorToALL" color="negative" label="setVerifiedByAportadorToALL"
@click="EseguiFunz('setVerifiedByAportadorToALL')"></q-btn> color="negative"
<br> @click="EseguiFunz('setVerifiedByAportadorToALL')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="1. Cancella Tabelle (Sectors, SectorGoods, Skills, Goods)" color="negative" label="1. Cancella Tabelle (Sectors, SectorGoods, Skills, Goods)"
@click="EseguiFunz('emptyTabCatServiziBeni')"></q-btn> color="negative"
<br> @click="EseguiFunz('emptyTabCatServiziBeni')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="1. Cancella e Ricrea tutte le Tabelle (Sector, Skill, SubSkill, Contribtype, AdType)" color="negative" label="1. Cancella e Ricrea tutte le Tabelle (Sector, Skill, SubSkill, Contribtype, AdType)"
@click="EseguiFunz('emptyDbSkill')"></q-btn> color="negative"
<br> @click="EseguiFunz('emptyDbSkill')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="1. Cancella e Ricrea le Tabelle (City, Province)" color="negative" label="1. Cancella e Ricrea le Tabelle (City, Province)"
@click="EseguiFunz('ricreaTabCitiesProvinces')"></q-btn> color="negative"
<br> @click="EseguiFunz('ricreaTabCitiesProvinces')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="2. Popola Tutte le Tabelle vuote (o incomplete)" color="negative" label="2. Popola Tutte le Tabelle vuote (o incomplete)"
@click="EseguiFunz('PopulateTables')"></q-btn> color="negative"
<br> @click="EseguiFunz('PopulateTables')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="copyFrom1To14" color="negative" label="copyFrom1To14"
@click="EseguiFunz('copyFrom1To14')"></q-btn> color="negative"
<br> @click="EseguiFunz('copyFrom1To14')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="Rewrite Cities Table" color="negative" label="Rewrite Cities Table"
@click="EseguiFunz('RewriteCitiesTable')"></q-btn> color="negative"
<br> @click="EseguiFunz('RewriteCitiesTable')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="Rewrite Levels Table" color="negative" label="Rewrite Levels Table"
@click="EseguiFunz('RewriteLevelsTable')"></q-btn> color="negative"
<br> @click="EseguiFunz('RewriteLevelsTable')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="Rewrite Provinces Table" color="negative" label="Rewrite Provinces Table"
@click="EseguiFunz('RewriteProvincesTable')"></q-btn> color="negative"
<br> @click="EseguiFunz('RewriteProvincesTable')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="Rewrite ContribType" color="negative" label="Rewrite ContribType"
@click="EseguiFunz('RewriteContribType')"></q-btn> color="negative"
<br> @click="EseguiFunz('RewriteContribType')"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-input v-model="search_username" label="Username Search" style="width: 300px;"></q-input> <q-input
<q-input v-model="replace_username" label="Username Replace" style="width: 300px;"></q-input> v-model="search_username"
label="Username Search"
style="width: 300px"
></q-input>
<q-input
v-model="replace_username"
label="Username Replace"
style="width: 300px"
></q-input>
<q-btn <q-btn
label="Replace Username" color="primary" label="Replace Username"
@click="EseguiFunz('ReplaceUsername', search_username, replace_username)"></q-btn> color="primary"
<br> @click="
EseguiFunz('ReplaceUsername', search_username, replace_username)
"
></q-btn>
<br />
</div> </div>
<div class="row"> <div class="row">
<q-btn <q-btn
label="Create Account Circuits" color="primary" label="Create Account Circuits"
@click="EseguiFunz('CreateAccountCircuits', search_username, replace_username)"></q-btn> color="primary"
<br> @click="
EseguiFunz('CreateAccountCircuits', search_username, replace_username)
"
></q-btn>
<br />
</div>
<div class="row">
<q-input
v-model="valmin"
label="Fiducia Concessa"
style="width: 300px"
></q-input>
<q-input v-model="valmax" label="Max Qta" style="width: 300px"></q-input>
</div>
<div class="row">
<q-btn
label="Imposta Min e Max per TUTTI i Conti Personali"
color="primary"
@click="EseguiFunz('ImpostaMinMaxPersonali', '', '', valmin, valmax)"
></q-btn>
</div>
<div class="row">
<q-btn
label="Imposta Min e Max per TUTTI i Conti Comunitari"
color="primary"
@click="EseguiFunz('ImpostaMinMaxComunitari', '', '', valmin, valmax)"
></q-btn>
</div>
<div class="row">
<q-btn
label="Imposta Min e Max per TUTTI i Conti Collettivi"
color="primary"
@click="EseguiFunz('ImpostaMinMaxCollettivi', '', '', valmin, valmax)"
></q-btn>
<br />
</div>
<div class="row">
<q-input
v-model="defpersmin"
label="DEFAULT Fiducia Concessa"
style="width: 300px"
></q-input>
<q-input v-model="defpersmax" label="DEFAULT Max Qta" style="width: 300px"></q-input>
</div>
<div class="row">
<q-btn
label="Imposta Min e Max per i Circuiti Personali di DEFAULT"
color="primary"
@click="EseguiFunz('ImpostaDefMinMaxPersonali', '', '', defpersmin, defpersmax)"
></q-btn>
</div>
<div class="row">
<q-input
v-model="defmin"
label="DEFAULT Fiducia Concessa"
style="width: 300px"
></q-input>
<q-input v-model="defmax" label="DEFAULT Max Qta" style="width: 300px"></q-input>
</div>
<div class="row">
<q-btn
label="Imposta Min e Max per i Circuiti Collettivi di DEFAULT"
color="primary"
@click="EseguiFunz('ImpostaDefMinMaxCollettivi', '', '', defmin, defmax)"
></q-btn>
<br />
</div> </div>
<q-field stack-label dense>
<q-field
stack-label
dense
>
<template v-slot:control> <template v-slot:control>
<div class="self-center full-width no-outline text-center" tabindex="0">{{ ris }}</div> <div class="self-center full-width no-outline text-center" tabindex="0">
{{ ris }}
</div>
</template> </template>
</q-field> </q-field>
</div> </div>
</template> </template>
<script lang="ts" src="./dbop.ts"> <script lang="ts" src="./dbop.ts">

View File

@@ -221,11 +221,10 @@
></q-tab> ></q-tab>
<q-tab <q-tab
v-if=" v-if="
costanti.ENABLE_CONTI_COMUNITARI && costanti.ENABLE_CONTI_COLLETTIVI
tools.iAmAdminCircuit(circuit.name)
" "
:label="t('circuit.conticollettivi')" :label="t('circuit.conticollettivi')"
name="gruppicom" name="gruppicollettivi"
icon="fas fa-users" icon="fas fa-users"
></q-tab> ></q-tab>
<q-tab <q-tab
@@ -243,7 +242,7 @@
</q-tabs> </q-tabs>
<q-tab-panels v-model="tabcircuit" animated> <q-tab-panels v-model="tabcircuit" animated>
<q-tab-panel name="gruppicom"> <q-tab-panel name="gruppicollettivi">
<div class="row justify-center"> <div class="row justify-center">
<q-btn rounded icon="fas fa-user-plus" class="text-center"> <q-btn rounded icon="fas fa-user-plus" class="text-center">
<q-menu> <q-menu>
@@ -260,6 +259,7 @@
<q-item-section> <q-item-section>
<q-btn <q-btn
v-if=" v-if="
userStore.IsMyCircuitByName(circuit.name) &&
group.groupname && group.groupname &&
!circuitStore.IsAskedCircuitByNameAndGroup( !circuitStore.IsAskedCircuitByNameAndGroup(
circuit.name, circuit.name,
@@ -703,8 +703,7 @@
> >
</CSaldo> </CSaldo>
</span> </span>
<div class="" <div class="">
v-if="tools.iAmAdminCircuit(circuit.name)">
<q-btn <q-btn
icon="fas fa-coins" icon="fas fa-coins"
color="green" color="green"
@@ -952,6 +951,7 @@
<div v-if="showsendCoinTo"> <div v-if="showsendCoinTo">
<CSendCoins <CSendCoins
:showprop="showsendCoinTo" :showprop="showsendCoinTo"
:circuitname="circuit.name"
:to_contocom="circuit.path" :to_contocom="circuit.path"
@close="showsendCoinTo = false" @close="showsendCoinTo = false"
> >