Version 1.0.1 with RIS Circuit Money Exchange !

This commit is contained in:
Paolo Arena
2022-09-14 17:37:10 +02:00
parent 25a60472ab
commit f86d8cb7d1
31 changed files with 242 additions and 116 deletions

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.3.24" APP_VERSION="1.0.1"
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.3.24" APP_VERSION="1.0.1"
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.3.24" APP_VERSION="1.0.1"
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.3.24" APP_VERSION="1.0.1"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="12" APP_ID="12"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.3.24" APP_VERSION="1.0.1"
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.3.24" APP_VERSION="1.0.1"
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.3.24" APP_VERSION="1.0.1"
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

@@ -1,4 +1,4 @@
APP_VERSION="0.3.24" APP_VERSION="1.0.1"
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

@@ -1,6 +1,6 @@
{ {
"name": "riso", "name": "riso",
"version": "0.3.23", "version": "1.0.1",
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.", "description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
"productName": "Riso", "productName": "Riso",
"author": "Paolo Arena", "author": "Paolo Arena",

View File

@@ -1015,6 +1015,12 @@ export const shared_consts = {
labeltrans: 'typenotifs.circuits', labeltrans: 'typenotifs.circuits',
descr: 'typenotifs.circuits_descr', descr: 'typenotifs.circuits_descr',
icon:'fas fa-coins', icon:'fas fa-coins',
list: [
{
value: 1, // ID_CIRCUIT_NEW_REC
labeltrans: 'notifsid.circuits_new',
}
],
}, },
{ {
value: 6, // value: 6, //
@@ -1072,6 +1078,11 @@ export const shared_consts = {
labeltrans: 'notifsid.groups_new', labeltrans: 'notifsid.groups_new',
directory: 4, directory: 4,
}, },
{
value: 1, // GroupsNotifs.STATUS_GROUPS_NEW
labeltrans: 'notifsid.circuits_new',
directory: 5,
},
], ],

View File

@@ -31,6 +31,11 @@ export default defineComponent({
required: false, required: false,
default: '', default: '',
}, },
color_border: {
type: String,
required: false,
default: '',
},
icon: { icon: {
type: String, type: String,
required: false, required: false,
@@ -58,6 +63,7 @@ export default defineComponent({
return { return {
showingtooltip, showingtooltip,
t, t,
tools,
} }
}, },
}) })

View File

@@ -1,5 +1,6 @@
<template> <template>
<div v-if="value !== null" class="text-h5 bordo_stondato_stretto full-width"> <div v-if="value !== null" :class="`text-h5 bordo_stondato_stretto full-width`"
:style="(!$q.screen.lt.sm ? `min-width: 250px; ` : ``) + (color_border ? `border-color: ` + color_border + `!important;`: '')">
<div class="text-center text-h7-dense text-italic text-grey-14"> <div class="text-center text-h7-dense text-italic text-grey-14">
{{ label }} {{ label }}
</div> </div>
@@ -27,7 +28,7 @@
<q-icon v-else name="fas fa-coins" size="sm"/> <q-icon v-else name="fas fa-coins" size="sm"/>
</template> </template>
<template v-slot:control> <template v-slot:control>
<div class="align_elem_right">{{ value.toFixed(2) }} <div class="align_elem_right">{{ tools.roundDec2(value) }}
<q-tooltip :offset="[10, 10]" v-model="showingtooltip">{{tips}}</q-tooltip> <q-tooltip :offset="[10, 10]" v-model="showingtooltip">{{tips}}</q-tooltip>
</div> </div>
</template> </template>

View File

@@ -48,14 +48,14 @@
</div> </div>
<div v-else-if="mycol.name === 'symbol'"> <div v-else-if="mycol.name === 'symbol'">
<div class="text-bacheca"> <div class="text-bacheca text-white">
Simbolo: Simbolo:
{{ tools.getValue(myrec, mycol.field, mycol.subfield) }} {{ tools.getValue(myrec, mycol.field, mycol.subfield) }}
</div> </div>
</div> </div>
<div v-else-if="mycol.name === 'longdescr'"> <div v-else-if="mycol.name === 'longdescr'">
<div class="text-bacheca"> <div class="text-bacheca text-black">
{{ tools.getValue(myrec, mycol.field, mycol.subfield) }} {{ tools.getValue(myrec, mycol.field, mycol.subfield) }}
</div> </div>
</div> </div>

View File

@@ -13,7 +13,7 @@
</div> </div>
<div class="col-6" style="text-align: right"> <div class="col-6" style="text-align: right">
<span v-if="myTotalPrice" class="text-grey q-mr-xs">Totale:</span> <span <span v-if="myTotalPrice" class="text-grey q-mr-xs">Totale:</span> <span
class="text-subtitle1 q-mr-sm "> {{ myTotalPrice.toFixed(2) }}</span> class="text-subtitle1 q-mr-sm "> {{ myTotalPrice ? myTotalPrice.toFixed(2) : 0 }}</span>
</div> </div>
</div> </div>
<q-separator></q-separator> <q-separator></q-separator>

View File

@@ -52,22 +52,8 @@ export default defineComponent({
const filtroutente = ref(<any[]>[]) const filtroutente = ref(<any[]>[])
const listcircuitsfiltered = computed(() => { const listcircuitsfiltered = computed(() => {
let arr: any[] = [] console.log('list modif')
try { return updateListCircuit()
if (props.modelValue === costanti.CIRCUITS) {
arr = circuitStore.listcircuits
} else if (props.modelValue === costanti.MY_CIRCUITS ) {
arr = circuitStore.listcircuits.filter((circ: any) => userStore.my.profile.mycircuits.findIndex((rec: any) => circ.name === rec.circuitname) >= 0)
} else if (props.modelValue === costanti.MANAGE_CIRCUITS) {
// arr = userStore.my.profile.manage_mycircuits
} else if (props.modelValue === costanti.ASK_SENT_CIRCUIT) {
arr = userStore.my.profile.asked_circuits
}
} catch (e) {
arr = []
}
return arr
}) })
const myoptions = computed(() => { const myoptions = computed(() => {
@@ -105,10 +91,29 @@ export default defineComponent({
} }
} }
function updateListCircuit() {
let arr: any[] = []
try {
if (props.modelValue === costanti.CIRCUITS) {
arr = circuitStore.listcircuits
} else if (props.modelValue === costanti.MY_CIRCUITS ) {
arr = circuitStore.listcircuits.filter((circ: any) => userStore.my.profile.mycircuits.findIndex((rec: any) => circ.name === rec.circuitname) >= 0)
} else if (props.modelValue === costanti.MANAGE_CIRCUITS) {
// arr = userStore.my.profile.manage_mycircuits
} else if (props.modelValue === costanti.ASK_SENT_CIRCUIT) {
arr = userStore.my.profile.asked_circuits
}
} catch (e) {
arr = []
}
return arr
}
function mounted() { function mounted() {
username.value = userStore.my.username username.value = userStore.my.username
loadCircuits() loadCircuits()
} }
function updateValue(val: number) { function updateValue(val: number) {
@@ -126,6 +131,7 @@ export default defineComponent({
updateValue, updateValue,
myoptions, myoptions,
userStore, userStore,
circuitStore,
} }
} }
}) })

View File

@@ -20,6 +20,12 @@
<slot></slot> <slot></slot>
</div> </div>
<div v-else> <div v-else>
<!--
mycircuits: {{userStore.my.profile.mycircuits}}<br><br>
listcircuitsfiltered: {{listcircuitsfiltered}}
<q-btn label="test" @click="userStore.my.profile.mycircuits = [...userStore.my.profile.mycircuits, {circuitname: 'prova'}]; circuitStore.listcircuits = [...circuitStore.listcircuits, {name: 'prova', path: 'prova'}]"></q-btn>
-->
<q-list> <q-list>
<span v-for="(circuit, index) in listcircuitsfiltered" :key="index" class="q-my-sm" clickable> <span v-for="(circuit, index) in listcircuitsfiltered" :key="index" class="q-my-sm" clickable>
<CMyCircuit <CMyCircuit

View File

@@ -10,7 +10,7 @@
<div v-if="col.fieldtype === costanti.FieldType.boolean"> <div v-if="col.fieldtype === costanti.FieldType.boolean">
<div v-if="isInModif"> <div v-if="isInModif">
<q-toggle <q-toggle
:disable="!isInModif" :disable="!isInModif || col.disable"
dark color="green" v-model="myvalue" :label="col.title ? col.title : col.label" dark color="green" v-model="myvalue" :label="col.title ? col.title : col.label"
@update:model-value="changevalRec"></q-toggle> @update:model-value="changevalRec"></q-toggle>
</div> </div>

View File

@@ -43,7 +43,7 @@
<div class="row q-mb-sm no-wrap items-center centeritems"> <div class="row q-mb-sm no-wrap items-center centeritems">
<div class="text-price no-wrap"> <div class="text-price no-wrap">
<span v-if="!!myproduct.price"> {{ myproduct.price.toFixed(2) }}</span> <span v-if="!!myproduct.price"> {{ myproduct.price ? myproduct.price.toFixed(2) : 0 }}</span>
<span v-if="!!myproduct.after_price">{{ myproduct.after_price }}</span> <span v-if="!!myproduct.after_price">{{ myproduct.after_price }}</span>
</div> </div>
</div> </div>

View File

@@ -2,10 +2,10 @@
<CCurrencyValue <CCurrencyValue
:symbol="symbol" :symbol="symbol"
:tips="t('account.saldo_tips')" :tips="t('account.saldo_tips', {fido: qtarem, symbol})"
:color="color" :color="color"
:value="saldo" :value="saldo"
:label="t('account.saldo') + ` (max ` + qtarem + `)`"> :label="t('account.saldo') + ` (` + t('account.dispon') + `: ` + qtarem + `)`">
</CCurrencyValue> </CCurrencyValue>
</template> </template>

View File

@@ -107,6 +107,9 @@ export default defineComponent({
bothcircuits.value = userStore.IsMyCircuitByUser(props.to_user) bothcircuits.value = userStore.IsMyCircuitByUser(props.to_user)
circuitsel.value = tools.getCookie(tools.CIRCUIT_USE, bothcircuits.value[0]) circuitsel.value = tools.getCookie(tools.CIRCUIT_USE, bothcircuits.value[0])
if (!userStore.IsMyCircuitByName(circuitsel.value)) {
circuitsel.value = bothcircuits.value[0]
}
aggiorna() aggiorna()

View File

@@ -14,6 +14,7 @@
</q-select> </q-select>
<CSaldo <CSaldo
v-if="circuitloaded"
:symbol="circuitloaded.symbol" :symbol="circuitloaded.symbol"
:color="circuitloaded.color" :color="circuitloaded.color"
:saldo="accountloaded ? accountloaded.saldo : 0" :saldo="accountloaded ? accountloaded.saldo : 0"
@@ -32,7 +33,7 @@
> >
</CMyUser> </CMyUser>
<div> <div v-if="circuitloaded">
<q-input <q-input
mask="#.##" mask="#.##"
reverse-fill-mask reverse-fill-mask
@@ -40,7 +41,7 @@
class="q-py-sm text-h5" class="q-py-sm text-h5"
outlined v-model="qty" type="text" outlined v-model="qty" type="text"
:rules="[ val => val <= circuitStore.getRemainingCoinsToSend(accountloaded) || t('circuit.qta_remaining_to_send', { maxqta: circuitStore.getRemainingCoinsToSend(accountloaded), symbol: circuitloaded.symbol })]" :rules="[ val => val <= circuitStore.getRemainingCoinsToSend(accountloaded) || t('circuit.qta_remaining_to_send', { maxqta: circuitStore.getRemainingCoinsToSend(accountloaded), symbol: circuitloaded.symbol })]"
:label="t('movement.amount_to_send', {qtamax: circuitStore.getRemainingCoinsToSend(accountloaded).toFixed(2) + ` ` + circuitloaded.symbol})" :label="t('movement.amount_to_send', {qtamax: circuitStore.getRemainingCoinsToSend(accountloaded) ? circuitStore.getRemainingCoinsToSend(accountloaded).toFixed(2) : 0 + ` ` + circuitloaded.symbol})"
> >
<!--val => val > circuitStore.getMaxCoinsToSend(accountloaded) || t('circuit.qta_max_to_send', { maxqta: tools.getRemainingCoinsToSend(accountloaded), symbol: circuitloaded.symbol })]" --> <!--val => val > circuitStore.getMaxCoinsToSend(accountloaded) || t('circuit.qta_max_to_send', { maxqta: tools.getRemainingCoinsToSend(accountloaded), symbol: circuitloaded.symbol })]" -->
<template v-slot:append> <template v-slot:append>
@@ -66,7 +67,7 @@
switch-marker-labels-side switch-marker-labels-side
:inner-max="remainingCoins" :inner-max="remainingCoins"
:min="0" :min="0"
:max="Number(maxsendable.toFixed(2))" :max="Number(maxsendable ? maxsendable.toFixed(2) : 0)"
/> />
</div> </div>
@@ -76,6 +77,7 @@
</q-card-section> </q-card-section>
<q-card-actions align="center"> <q-card-actions align="center">
<q-btn <q-btn
v-if="circuitloaded"
:disable="qtyRef ? qtyRef.hasError : false" :disable="qtyRef ? qtyRef.hasError : false"
:label="$t('circuit.sendcoinsto', {qty, coin: circuitsel, dest: to_user.username })" color="positive" :label="$t('circuit.sendcoinsto', {qty, coin: circuitsel, dest: to_user.username })" color="positive"
@click="sendCoin()"></q-btn> @click="sendCoin()"></q-btn>

View File

@@ -29,7 +29,7 @@
</div> </div>
</div> </div>
<div class="col-2 no-wrap text-subtitle3 q-mr-sm"> <div class="col-2 no-wrap text-subtitle3 q-mr-sm">
&nbsp;{{ (order.price * order.quantity).toFixed(2) }} &nbsp;{{ (order.price * order.quantity) ? (order.price * order.quantity).toFixed(2) : 0 }}
</div> </div>
<div class="col-1"> <div class="col-1">
<q-btn v-if="!nomodif" icon="fas fa-times" color="negative" round size="xs" @click="removeFromCard"> <q-btn v-if="!nomodif" icon="fas fa-times" color="negative" round size="xs" @click="removeFromCard">

View File

@@ -7,7 +7,7 @@ import {
import { func } from '@store/Modules/fieldsTable' import { func } from '@store/Modules/fieldsTable'
const functionality: IFunctionality = { const functionality: IFunctionality = {
PWA: false, PWA: !(process.env.DEV),
SHOW_USER_MENU: true, // Cambiare con true SHOW_USER_MENU: true, // Cambiare con true
SHOW_PROFILE: true, SHOW_PROFILE: true,
SHOW_REG_BUTTON: false, SHOW_REG_BUTTON: false,

View File

@@ -919,9 +919,9 @@ export interface ICircuit {
longdescr: string longdescr: string
systemUserDescr: string systemUserDescr: string
systemUserId: string systemUserId: string
totCircolante?: number totCircolante: number
totTransato?: number totTransato: number
nome_valuta: string // nome_valuta: string
symbol: string symbol: string
color: string color: string
abbrev: string abbrev: string

View File

@@ -812,6 +812,7 @@ const msg_it = {
events_new: 'Nuovo Evento', events_new: 'Nuovo Evento',
friends_new: 'Nuova Richiesta di Amicizia', friends_new: 'Nuova Richiesta di Amicizia',
groups_new: 'Si creano Nuovi Gruppi', groups_new: 'Si creano Nuovi Gruppi',
circuits_new: 'Si creano Nuovi Circuiti',
}, },
event: { event: {
_id: 'id', _id: 'id',
@@ -1103,7 +1104,10 @@ const msg_it = {
systemUserId: 'ID Utente di Sistema', systemUserId: 'ID Utente di Sistema',
founder: 'Fondatore', founder: 'Fondatore',
totCircolante: 'Totale Circolante', totCircolante: 'Totale Circolante',
totCircolante_tips: 'Rappresenta la somma di tutti i conti che hanno un saldo a Credito (cioè positivo)',
totTransato: 'Totale Transato', totTransato: 'Totale Transato',
totTransato_tips: 'Ammontare di tutti gli importi movimentati nelle transazioni',
stats: 'Statistiche',
nome_valuta: 'Nome Valuta', nome_valuta: 'Nome Valuta',
symbol: 'Simbolo', symbol: 'Simbolo',
color: 'Colore', color: 'Colore',
@@ -1174,7 +1178,8 @@ const msg_it = {
qta_maxConcessa: 'Capacità massima accumulabile', qta_maxConcessa: 'Capacità massima accumulabile',
importo_iniziale: 'Importo Iniziale', importo_iniziale: 'Importo Iniziale',
saldo: 'Saldo', saldo: 'Saldo',
saldo_tips: 'Rappresenta quanta moneta ho accumulato. Ma posso andare anche sotto ', dispon: 'Disponibile',
saldo_tips: 'Rappresenta quanta moneta ho accumulato. Ma posso andare anche sotto fino a {fido} {symbol}',
user: 'Utente', user: 'Utente',
}, },

View File

@@ -2429,7 +2429,9 @@ export const colTableCircuitComplete = [
AddCol({ name: 'regulation', label_trans: 'circuit.regulation', fieldtype: costanti.FieldType.html }), AddCol({ name: 'regulation', label_trans: 'circuit.regulation', fieldtype: costanti.FieldType.html }),
AddCol({ name: 'systemUserDescr', label_trans: 'circuit.systemUserDescr' }), AddCol({ name: 'systemUserDescr', label_trans: 'circuit.systemUserDescr' }),
AddCol({ name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users', }), AddCol({ name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users', }),
AddCol({ name: 'createdBy', label_trans: 'circuit.founder', fieldtype: costanti.FieldType.select, jointable: 'users', }), AddCol({ name: 'createdBy', label_trans: 'circuit.founder', fieldtype: costanti.FieldType.select, jointable: 'users',
showWhen: costanti.showWhen.InPage + costanti.showWhen.InView,
}),
AddCol({ name: 'totCircolante', label_trans: 'circuit.totCircolante', fieldtype: costanti.FieldType.number }), AddCol({ name: 'totCircolante', label_trans: 'circuit.totCircolante', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'totTransato', label_trans: 'circuit.totTransato', fieldtype: costanti.FieldType.number }), AddCol({ name: 'totTransato', label_trans: 'circuit.totTransato', fieldtype: costanti.FieldType.number }),
// AddCol({ name: 'nome_valuta', label_trans: 'circuit.nome_valuta' }), // AddCol({ name: 'nome_valuta', label_trans: 'circuit.nome_valuta' }),
@@ -2497,8 +2499,12 @@ export const colTableCircuit = [
}), }),
AddCol({ name: 'subname', label_trans: 'circuit.subname' }), AddCol({ name: 'subname', label_trans: 'circuit.subname' }),
AddCol({ name: 'longdescr', label_trans: 'circuit.descr', fieldtype: costanti.FieldType.html }), AddCol({ name: 'longdescr', label_trans: 'circuit.descr', fieldtype: costanti.FieldType.html }),
AddCol({ name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users', }), AddCol({ name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users',
AddCol({ name: 'createdBy', label_trans: 'circuit.founder', fieldtype: costanti.FieldType.select, jointable: 'users', }), showWhen: costanti.showWhen.InEdit + costanti.showWhen.InView,
}),
AddCol({ name: 'createdBy', label_trans: 'circuit.founder', fieldtype: costanti.FieldType.select, jointable: 'users',
showWhen: costanti.showWhen.InPage + costanti.showWhen.InView,
}),
AddCol({ AddCol({
name: 'date_created', label_trans: 'reg.pub_created', fieldtype: costanti.FieldType.onlydate, name: 'date_created', label_trans: 'reg.pub_created', fieldtype: costanti.FieldType.onlydate,
required: false, required: false,
@@ -2520,8 +2526,16 @@ export const colTableCircuit = [
fieldtype: costanti.FieldType.currency, required: true, visulabel: true }), fieldtype: costanti.FieldType.currency, required: true, visulabel: true }),
AddCol({ name: 'qta_max_default', label_trans: 'circuit.qta_max_default', AddCol({ name: 'qta_max_default', label_trans: 'circuit.qta_max_default',
fieldtype: costanti.FieldType.currency, required: true, visulabel: true }), fieldtype: costanti.FieldType.currency, required: true, visulabel: true }),
AddCol({ name: 'totCircolante', label_trans: 'circuit.totCircolante',
fieldtype: costanti.FieldType.currency, visulabel: true,
showWhen: costanti.showWhen.InPage + costanti.showWhen.InView,
}),
AddCol({ name: 'totTransato', label_trans: 'circuit.totTransato',
fieldtype: costanti.FieldType.currency, visulabel: true,
showWhen: costanti.showWhen.InPage + costanti.showWhen.InView,
}),
AddCol({ name: 'regulation', label_trans: 'circuit.regulation', fieldtype: costanti.FieldType.html, required: true }), AddCol({ name: 'regulation', label_trans: 'circuit.regulation', fieldtype: costanti.FieldType.html, required: true }),
// AddCol({ name: 'deperimento', label_trans: 'circuit.deperimento', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'deperimento', label_trans: 'circuit.deperimento', fieldtype: costanti.FieldType.boolean, disable: true }),
AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }), AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }),
AddCol({ AddCol({
name: 'photos', name: 'photos',

View File

@@ -4738,6 +4738,20 @@ export const tools = {
}) })
}, },
updateMyData(res: any) {
const userStore = useUserStore()
const circuitStore = useCircuitStore()
// console.log('OUT', res)
if (res && res.user) {
userStore.my = res.user
if (res.listcircuits) {
circuitStore.listcircuits = res.listcircuits
}
}
},
addToMyCircuits($q: any, username: string, circuitname: string) { addToMyCircuits($q: any, username: string, circuitname: string) {
@@ -4752,12 +4766,15 @@ export const tools = {
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.SET, true) userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.SET, true)
.then((res: any) => { .then((res: any) => {
if (res) { if (res && res.result) {
this.updateMyData(res)
notifStore.updateNotification = true notifStore.updateNotification = true
if (userStore.my.profile.mycircuits) if (res.circuit) {
userStore.my.profile.mycircuits = [...userStore.my.profile.mycircuits, res] if (userStore.my.profile.mycircuits)
else userStore.my.profile.mycircuits = [...userStore.my.profile.mycircuits, res.circuit]
userStore.my.profile.mycircuits = [res] else
userStore.my.profile.mycircuits = [res]
}
tools.showPositiveNotif($q, t('db.addedcircuit', { circuitname })) tools.showPositiveNotif($q, t('db.addedcircuit', { circuitname }))
} }
}) })
@@ -4797,10 +4814,8 @@ export const tools = {
userStore.setCircuitCmd($q, t, username, notif.extrarec.circuitname, shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT, 0, notif.extrarec) userStore.setCircuitCmd($q, t, username, notif.extrarec.circuitname, shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT, 0, notif.extrarec)
.then((res: any) => { .then((res: any) => {
if (res) { if (res) {
this.updateMyData(res)
if (res.cansend) { if (res.cansend) {
if (res.user) {
userStore.my = res.user
}
console.log('useraccounts', userStore.my.profile.useraccounts) console.log('useraccounts', userStore.my.profile.useraccounts)
tools.showPositiveNotif($q, t('circuit.coins_accepted')) tools.showPositiveNotif($q, t('circuit.coins_accepted'))
} else { } else {
@@ -4816,7 +4831,8 @@ export const tools = {
notif.extrarec.notifId = notif._id notif.extrarec.notifId = notif._id
userStore.setCircuitCmd($q, t, username, notif.extrarec.circuitname, shared_consts.CIRCUITCMD.SENDCOINS_REFUSE, 0, notif.extrarec) userStore.setCircuitCmd($q, t, username, notif.extrarec.circuitname, shared_consts.CIRCUITCMD.SENDCOINS_REFUSE, 0, notif.extrarec)
.then((res: any) => { .then((res: any) => {
if (res) { if (res && res.result) {
this.updateMyData(res)
tools.showPositiveNotif($q, t('circuit.coins_refused')) tools.showPositiveNotif($q, t('circuit.coins_refused'))
} }
}) })
@@ -5259,7 +5275,7 @@ export const tools = {
if (res) { if (res) {
if (value) { if (value) {
// ADD to req // ADD to req
userStore.my.profile.asked_circuits.push(res) userStore.my.profile.asked_circuits.push(res.circuit)
tools.showPositiveNotif($q, t('circuit.askedto', { circuitname })) tools.showPositiveNotif($q, t('circuit.askedto', { circuitname }))
} else { } else {
// REMOVE to req // REMOVE to req
@@ -5267,6 +5283,7 @@ export const tools = {
tools.showPositiveNotif($q, t('circuit.revoketo', { circuitname })) tools.showPositiveNotif($q, t('circuit.revoketo', { circuitname }))
} }
this.updateMyData(res)
} else { } else {
tools.showNegativeNotif($q, t('db.recfailed')) tools.showNegativeNotif($q, t('db.recfailed'))
} }
@@ -5302,13 +5319,11 @@ export const tools = {
if (res.useraccounts && res.useraccounts.length > 0) { if (res.useraccounts && res.useraccounts.length > 0) {
userStore.my.profile.useraccounts = res.useraccounts userStore.my.profile.useraccounts = res.useraccounts
} }
if (res.user) {
userStore.my = res.user
}
tools.showPositiveNotif($q, t('circuit.coins_sendrequest_sent')) tools.showPositiveNotif($q, t('circuit.coins_sendrequest_sent'))
} else { } else {
tools.showNegativeNotif($q, res.errormsg) tools.showNegativeNotif($q, res.errormsg)
} }
this.updateMyData(res)
}) })
}) })
@@ -5327,11 +5342,12 @@ export const tools = {
}).onOk(() => { }).onOk(() => {
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.CANCEL_REQ, null).then((res) => { userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.CANCEL_REQ, null).then((res) => {
if (res) { if (res && res.result) {
if (username === userStore.my.username) { if (username === userStore.my.username) {
userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname) userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname)
} }
tools.showPositiveNotif($q, t('db.cancel_req_group')) this.updateMyData(res)
tools.showPositiveNotif($q, t('circuit.cancel_req'))
} }
}) })
}) })
@@ -5349,12 +5365,13 @@ export const tools = {
}).onOk(() => { }).onOk(() => {
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REFUSE_REQ, null).then((res) => { userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REFUSE_REQ, null).then((res) => {
if (res) { if (res && res.result) {
notifStore.updateNotification = true notifStore.updateNotification = true
if (username === userStore.my.username) { if (username === userStore.my.username) {
userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname) userStore.my.profile.asked_circuits = userStore.my.profile.asked_circuits.filter((rec: ICircuit) => rec.name !== circuitname)
} }
tools.showPositiveNotif($q, t('circuit.refusedcircuit', { username })) tools.showPositiveNotif($q, t('circuit.refusedcircuit', { username }))
this.updateMyData(res)
} }
}) })
}) })
@@ -5371,11 +5388,12 @@ export const tools = {
}).onOk(() => { }).onOk(() => {
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST, null).then((res) => { userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST, null).then((res) => {
if (res) { if (res && res.result) {
if (userStore.my.profile.mycircuits && username === userStore.my.username) { if (userStore.my.profile.mycircuits && username === userStore.my.username) {
userStore.my.profile.mycircuits = userStore.my.profile.mycircuits.filter((rec: IMyCircuit) => rec.circuitname !== circuitname) userStore.my.profile.mycircuits = userStore.my.profile.mycircuits.filter((rec: IMyCircuit) => rec.circuitname !== circuitname)
} }
tools.showPositiveNotif($q, t('circuit.removed')) tools.showPositiveNotif($q, t('circuit.removed'))
this.updateMyData(res)
} }
}) })
}) })
@@ -5392,7 +5410,7 @@ export const tools = {
}).onOk(() => { }).onOk(() => {
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.ADDADMIN, null).then((res) => { userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.ADDADMIN, null).then((res) => {
if (res) { if (res && res.result) {
const mycircuit = userStore.my.profile.manage_mycircuits.find((rec: ICircuit) => rec.name === circuitname) const mycircuit = userStore.my.profile.manage_mycircuits.find((rec: ICircuit) => rec.name === circuitname)
console.log('mycircuit', mycircuit) console.log('mycircuit', mycircuit)
if (mycircuit && mycircuit.admins) { if (mycircuit && mycircuit.admins) {
@@ -5400,6 +5418,7 @@ export const tools = {
console.log('mycircuit.admins', mycircuit.admins) console.log('mycircuit.admins', mycircuit.admins)
tools.showPositiveNotif($q, t('db.addedtoadmin', { username })) tools.showPositiveNotif($q, t('db.addedtoadmin', { username }))
} }
this.updateMyData(res)
} }
}) })
}) })
@@ -5416,7 +5435,7 @@ export const tools = {
}).onOk(() => { }).onOk(() => {
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REMOVEADMIN, null).then((res) => { userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REMOVEADMIN, null).then((res) => {
if (res) { if (res && res.result) {
const mygrp = userStore.my.profile.manage_mycircuits.find((rec: ICircuit) => rec.name === circuitname) const mygrp = userStore.my.profile.manage_mycircuits.find((rec: ICircuit) => rec.name === circuitname)
console.log('mygrp', mygrp) console.log('mygrp', mygrp)
if (mygrp && mygrp.admins) { if (mygrp && mygrp.admins) {
@@ -5424,6 +5443,7 @@ export const tools = {
console.log('mygrp.admins', mygrp.admins) console.log('mygrp.admins', mygrp.admins)
tools.showPositiveNotif($q, t('db.removedtoadmin', { username })) tools.showPositiveNotif($q, t('db.removedtoadmin', { username }))
} }
this.updateMyData(res)
} }
}) })
}) })
@@ -5440,11 +5460,12 @@ export const tools = {
}).onOk(() => { }).onOk(() => {
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.DELETE, null).then((res) => { userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.DELETE, null).then((res) => {
if (res) { if (res && res.result) {
if (userStore.my.profile.manage_mycircuits) { if (userStore.my.profile.manage_mycircuits) {
userStore.my.profile.manage_mycircuits = userStore.my.profile.manage_mycircuits.filter((rec: ICircuit) => rec.name !== circuitname) userStore.my.profile.manage_mycircuits = userStore.my.profile.manage_mycircuits.filter((rec: ICircuit) => rec.name !== circuitname)
tools.showPositiveNotif($q, t('circuit.deleted', { circuitname })) tools.showPositiveNotif($q, t('circuit.deleted', { circuitname }))
} }
this.updateMyData(res)
} }
}) })
}) })
@@ -5862,11 +5883,17 @@ export const tools = {
}, },
getdefaultnewrec_Circuit(): any { getdefaultnewrec_Circuit(): any {
return { return {
_id: 0,
name: '', name: '',
subname: '', subname: '',
img_logo: '', photos: [],
admins: [], admins: [],
color: '#ff5500',
deperimento: false,
symbol: 'RIS',
fido_scoperto_default: 100,
qta_max_default: 500,
totTransato: 0,
totCircolante: 0,
} }
}, },
@@ -6333,7 +6360,7 @@ export const tools = {
return '' return ''
} }
} }
}catch (e) { } catch (e) {
return '' return ''
} }
}, },
@@ -6345,10 +6372,7 @@ export const tools = {
} }
}, },
roundDec2(mynum: number): number { roundDec2(mynum: number): number {
return (Math.round(mynum * 100)/100); return (Math.round(mynum * 100) / 100)
},
roundDec2Str(mynum: number): string {
return (Math.round(mynum * 100)/100).toFixed(2);
}, },
// getLocale() { // getLocale() {
// if (navigator.languages && navigator.languages.length > 0) { // if (navigator.languages && navigator.languages.length > 0) {

View File

@@ -949,7 +949,14 @@ export const useGlobalStore = defineStore('GlobalStore', {
return Api.SendReq('/settable', 'POST', mydata) return Api.SendReq('/settable', 'POST', mydata)
.then((res) => { .then((res) => {
this.serverError = false this.serverError = false
return res.data if (res && res.data) {
tools.updateMyData(res.data.ris)
if (res.data.rec) {
return res.data.rec
} else {
res.data
}
}
}) })
.catch((error) => { .catch((error) => {
this.serverError = true this.serverError = true

View File

@@ -17,13 +17,23 @@
padding: 5px; padding: 5px;
} }
.members, .admins, .creator, .element{ .container{
vertical-align: center;
padding: 5px;
font-size: 1.15rem;
}
.element{
font-weight: bold; font-weight: bold;
vertical-align: center; vertical-align: center;
padding: 5px; padding: 5px;
font-size: 1.15rem;
} }
.title_param{ .title_param{
font-size: 1.25rem; font-size: 1.25rem;
} }
.iconcirc {
margin-right: 4px;
}

View File

@@ -1,5 +1,5 @@
<template> <template>
<CNotifAtTop /> <CNotifAtTop/>
<div class="q-gutter-sm q-pa-sm q-pb-md"> <div class="q-gutter-sm q-pa-sm q-pb-md">
<div v-if="!circuit && !loading"> <div v-if="!circuit && !loading">
<div v-if="mystatus === 403"> <div v-if="mystatus === 403">
@@ -143,31 +143,31 @@
<q-separator/> <q-separator/>
<q-card-section> <q-card-section>
<div v-if="circuit.createdBy" class="element"> <div v-if="circuit.createdBy" class="container">
<q-icon name="fas fa-lightbulb"></q-icon> <q-icon name="fas fa-lightbulb" class="iconcirc"></q-icon>
{{ {{
$t('shared.createdby', { $t('shared.createdby', {
username: circuit.createdBy, username: circuit.createdBy,
date: tools.getstrDateYY(circuit.date_created), date: tools.getstrDateYY(circuit.date_created),
}) })
}} }}
</div> </div>
<div v-if="!!circuit.date_updated && tools.getstrDate(circuit.date_updated) !== tools.getstrDate(circuit.date_created)" class="element"> <div v-if="!!circuit.date_updated && tools.getstrDate(circuit.date_updated) !== tools.getstrDate(circuit.date_created)" class="container">
<q-icon name="fas fa-pencil-alt"></q-icon> <q-icon name="fas fa-pencil-alt" class="iconcirc"></q-icon>
{{ <span class="element">{{
$t('shared.lastmodify', { $t('shared.lastmodify', {
date: tools.getstrDateYY(circuit.date_updated), date: tools.getstrDateYY(circuit.date_updated),
}) })
}} }}</span>
</div> </div>
<div class="members"> <div class="container">
<q-icon name="fas fa-users"></q-icon> <q-icon name="fas fa-users" class="iconcirc"></q-icon>
{{ numUsers() }} {{ numUsers() === 1 ? t('shared.member') : t('shared.members') }} <span class="element">{{ numUsers() }}</span> {{ numUsers() === 1 ? t('shared.member') : t('shared.members') }}
</div> </div>
<div class="admins"> <div class="container">
<q-icon name="fas fa-user-cog"></q-icon> <q-icon name="fas fa-user-cog" class="iconcirc"></q-icon>
{{ numAdmins() }} {{ numAdmins() === 1 ? t('shared.admin') : t('shared.admins') }} <span class="element">{{ numAdmins() }}</span> {{ numAdmins() === 1 ? t('shared.admin') : t('shared.admins') }}
</div> </div>
<div v-for="(user, index) of circuit.admins" :key="index"> <div v-for="(user, index) of circuit.admins" :key="index">
<CMyUser <CMyUser
@@ -178,42 +178,73 @@
</CMyUser> </CMyUser>
</div> </div>
<div class="sezioni"> <div class="sezioni">
<q-icon name="fas fa-coins"></q-icon> <q-icon name="fas fa-coins" class="iconcirc"></q-icon>
{{ t('circuit.symbol') }}: {{ t('circuit.symbol') }}:
<span class="text-h5"> <span class="text-h5">
<em class="q-px-sm text-white rounded-borders" <em class="q-px-sm text-black rounded-borders"
:style="`background-color: ` + tools.getColorByCircuit(circuit)">{{ tools.getSymbolByCircuit(circuit) }}</em> :style="`background-color: ` + tools.getColorByCircuit(circuit)">{{ tools.getSymbolByCircuit(circuit) }}</em>
</span> </span>
</div> </div>
<div v-if="circuit.fido_scoperto_default" class="sezioni"> <div :class="$q.screen.lt.sm ? '' : 'row'">
<CCurrencyValue <div v-if="circuit.fido_scoperto_default" class="sezioni">
:symbol="tools.getSymbolByCircuit(circuit)" <CCurrencyValue
:color="tools.getColorByCircuit(circuit)" :symbol="tools.getSymbolByCircuit(circuit)"
:value="circuit.fido_scoperto_default" :color="tools.getColorByCircuit(circuit)"
icon="fas fa-battery-quarter" color_border="red"
:label="t('circuit.fido_scoperto_default')" :value="circuit.fido_scoperto_default"
:tips="t('circuit.fido_scoperto_default_tips')" icon="fas fa-battery-quarter"
> :label="t('circuit.fido_scoperto_default')"
</CCurrencyValue> :tips="t('circuit.fido_scoperto_default_tips')"
>
</CCurrencyValue>
</div>
<div v-if="circuit.fido_scoperto_default" class="sezioni">
<CCurrencyValue
:symbol="tools.getSymbolByCircuit(circuit)"
:color="tools.getColorByCircuit(circuit)"
color_border="green"
:value="circuit.qta_max_default"
icon="fas fa-battery-quarter"
:label="t('circuit.qta_max_default')"
:tips="t('circuit.qta_max_default_tips')"
>
</CCurrencyValue>
</div>
</div> </div>
<div v-if="circuit.fido_scoperto_default" class="sezioni"> <div :class="$q.screen.lt.sm ? '' : 'row'">
<CCurrencyValue {{ t('circuit.stats') }}:<br>
:symbol="tools.getSymbolByCircuit(circuit)" <div v-if="circuit.totTransato" class="sezioni">
:color="tools.getColorByCircuit(circuit)" <CCurrencyValue
:value="circuit.qta_max_default" :symbol="tools.getSymbolByCircuit(circuit)"
icon="fas fa-battery-quarter" :color="tools.getColorByCircuit(circuit)"
:label="t('circuit.qta_max_default')" color_border="blue"
:tips="t('circuit.qta_max_default_tips')" :value="circuit.totTransato"
> icon="fas fa-battery-quarter"
</CCurrencyValue> :label="t('circuit.totTransato')"
:tips="t('circuit.totTransato_tips')"
>
</CCurrencyValue>
</div>
<div v-if="circuit.totCircolante" class="sezioni">
<CCurrencyValue
:symbol="tools.getSymbolByCircuit(circuit)"
:color="tools.getColorByCircuit(circuit)"
color_border="blue"
:value="circuit.totCircolante"
icon="fas fa-battery-quarter"
:label="t('circuit.totCircolante')"
:tips="t('circuit.totCircolante_tips')"
>
</CCurrencyValue>
</div>
</div> </div>
<div class="sezioni" v-if="circuit.deperimento !== undefined"> <div class="sezioni" v-if="circuit.deperimento !== undefined">
<q-icon name="fas fa-battery-full"></q-icon> <q-icon name="fas fa-battery-full" class="iconcirc"></q-icon>
{{ t('circuit.deperimento') }}: <span class="text-section">{{ circuit.deperimento ? t('dialog.yes') : t('dialog.no') }} {{ }}</span> {{ t('circuit.deperimento') }}: <span class="text-section">{{ circuit.deperimento ? t('dialog.yes') : t('dialog.no') }} {{ }}</span>
</div> </div>
<div class="sezioni"> <div class="sezioni">
<q-icon name="fas fa-file-signature"></q-icon> <q-icon name="fas fa-file-signature" class="iconcirc"></q-icon>
{{ t('circuit.regulation') }}: <br> {{ t('circuit.regulation') }}: <br>
<div class="bordo_quadrato" v-html="circuit.regulation"></div> <div class="bordo_quadrato" v-html="circuit.regulation"></div>
</div> </div>

View File

@@ -11565,7 +11565,7 @@ snapdragon@^0.8.1:
use "^3.1.0" use "^3.1.0"
sockjs@^0.3.21: sockjs@^0.3.21:
version "0.3.24" version "1.0.1"
resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==
dependencies: dependencies: