se sei sulla pagina, la notifica di "gia letto" non viene settata.

- aggiunto "RIS" ai tipi di contributi
- Amicizia accettata compare 2 volte nelle notifiche
- Bottone click sull utente non funziona
This commit is contained in:
Paolo Arena
2022-09-18 19:45:26 +02:00
parent da17c2b060
commit 193afa770b
23 changed files with 119 additions and 56 deletions

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.5.9"
APP_VERSION="0.5.12"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="12"
DIRECTORY_LOCAL="newfreeplanet"

View File

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

View File

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

View File

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

View File

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

View File

@@ -362,11 +362,11 @@ export default defineComponent({
})
$router.beforeResolve((to: any) => {
// console.log('beforeResolve', visupagedialog.value, 'to', to)
console.log('beforeResolve', visupagedialog.value, 'to', to)
if (visupagedialog.value && !to.meta.newpage) {
visupagedialog.value = false
return false
// visupagedialog.value = false
// return false
}
})

View File

@@ -741,7 +741,7 @@
</template>
</q-table>
<q-dialog v-model="visupagedialog" @hide="hidewindow" :maximized="$q.screen.lt.sm">
<q-dialog v-model="visupagedialog" @hide="hidewindow" :maximized="$q.screen.lt.sm" persistent>
<CMyCardGrpPopup
v-if="mytable === toolsext.TABMYGROUPS"
:table="mytable"

View File

@@ -0,0 +1,3 @@
.testo {
font-size: 1rem;
}

View File

@@ -5,26 +5,27 @@
:tips="t('account.saldo_tips', {fido: qtarem, symbol})"
:color="color"
:value="saldo"
:valueextra="account && account.notifspending ? `* `: ''"
:valueextra="account && account.notifspending.length > 0 ? `* `: ''"
:label="t('account.saldo') + ` (` + t('account.dispon') + `: ` + qtarem + `)`">
</CCurrencyValue>
<div v-if="account && account.notifspending" :class="`text-h5 bordo_stondato_stretto full-width`"
<div v-if="account && account.notifspending.length > 0" :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">
{{ t('movement.pendingtransaction') }}
</div>
<div v-for="(myrec, index) in account.notifspending" :key="myrec._id">
<div class="row justify-evenly items-center q-gutter-xs ">
<div class="row justify-evenly items-center bordo_stondato_pending">
<span v-for="(mycol, indcol) of colTableNotifCoins" :key="indcol">
<div
class="col"
style="display: flex;"
v-if="(mycol.visible && (tools.checkIfShowField(mycol, tools.TIPOVIS_SHOW_RECORD, false, tools.getValue(myrec, mycol.field, mycol.subfield))))">
<span v-if="mycol.name === 'datenotif'">{{ index + 1 }}</span>
<span class="testo" v-if="mycol.name === 'datenotif'">{{ index + 1 }}°</span>
<CMyFieldRec
table="sendnotifs"

View File

@@ -35,7 +35,7 @@ export default defineComponent({
const from_username = ref(userStore.my.username)
const circuitsel = ref('')
const qty = ref(<number>1)
const qty = ref(<string|number>'')
const causal = ref('')
const bothcircuits = ref(<any>[])
@@ -51,6 +51,7 @@ export default defineComponent({
const arrayMarkerLabel = ref(<any>[])
const qtyRef = ref(<any>null)
const causalRef = ref(<any>null)
watch(() => circuitsel.value, (newval, oldval) => {
tools.setCookie(tools.CIRCUIT_USE, newval)
@@ -165,6 +166,7 @@ export default defineComponent({
arrayMarkerLabel,
remainingCoins,
qtyRef,
causalRef,
maxsendable,
circuitStore,
numstep,

View File

@@ -37,13 +37,13 @@
<q-input
ref="qtyRef"
class="q-py-sm text-h5"
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 })]"
outlined v-model="qty" type="number"
:rules="[
val => val <= circuitStore.getRemainingCoinsToSend(accountloaded) || t('circuit.qta_remaining_to_send', { maxqta: circuitStore.getRemainingCoinsToSend(accountloaded), symbol: circuitloaded.symbol }),
val => val > 0 || t('circuit.qta_not_valid')]"
:label="t('movement.amount_to_send', {qtamax: circuitStore.getRemainingCoinsToSend(accountloaded) ? circuitStore.getRemainingCoinsToSend(accountloaded).toFixed(2) : 0 + ` ` + circuitloaded.symbol})"
mask="#.##"
fill-mask="0"
reverse-fill-mask
input-class="text-right"
v-on:keyup.enter="$event.target.nextElementSibling.focus()"
>
<!--val => val > circuitStore.getMaxCoinsToSend(accountloaded) || t('circuit.qta_max_to_send', { maxqta: tools.getRemainingCoinsToSend(accountloaded), symbol: circuitloaded.symbol })]" -->
<template v-slot:append>
@@ -60,9 +60,8 @@
v-model="qty"
color="green"
markers
readonly
track-size="10px"
:step="numstep"
:step="numstep/2"
:marker-labels="arrayMarkerLabel"
label-always
:label-value="priceLabel"
@@ -74,7 +73,9 @@
/>
</div>
<q-input v-model="causal" label="Note" class="q-my-sm full-width">
<q-input
ref="causalRef"
v-model="causal" label="Note" class="q-my-sm full-width">
</q-input>
</q-card-section>

View File

@@ -766,6 +766,16 @@ $heightBtn: 100%;
border: solid 3px #49b502;
}
.bordo_stondato_pending{
margin: 4px;
border-radius: 3rem;
padding-left: 14px;
padding-right: 14px;
padding-top: 0px;
padding-bottom: 0px;
border: solid 1px #4a6598;
}
.bordo_stondato_circuiti{
margin: 4px;
border-radius: 1.15rem;

View File

@@ -19,24 +19,12 @@
<q-btn round dense icon="fas fa-pencil-alt" class="q-mx-xs">
<q-menu style="min-width: 200px">
<q-list style="">
<q-item clickable v-close-popup to="/notifs">
<q-item-section side>
<q-icon name="fas fa-cog"/>
</q-item-section>
<q-item-section>{{ $t('notifs.settings') }}</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="notifStore.setAllRead(username, shared_consts.QualiNotifs.CIRCUITS)">
<q-item-section side>
<q-icon name="fas fa-check"/>
</q-item-section>
<q-item-section>{{ $t('notifs.setallread') }}</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="notifStore.deleteAll(username, shared_consts.QualiNotifs.CIRCUITS)">
<q-item-section side>
<q-icon name="fas fa-trash-alt"/>
</q-item-section>
<q-item-section>{{ $t('notifs.deleteall') }}</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
@@ -160,20 +148,14 @@
</q-item-section>
<q-item-section side>
<q-item-label>
<q-btn dense rounded icon="fas fa-ellipsis-h">
<q-btn v-if="!notif.read" dense rounded icon="fas fa-ellipsis-h">
<q-menu>
<q-list style="min-width: 150px">
<q-item clickable v-close-popup @click="notifStore.deleteRec(username, notif._id)">
<q-item clickable v-close-popup @click="notifStore.setRead(notif._id)">
<q-item-section side>
<q-icon name="fas fa-trash-alt"/>
</q-item-section>
<q-item-section>{{ $t('notifs.delete_notif') }}</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="notifStore.deactivateRec(notif._id)">
<q-item-section side>
<q-icon name="fas fa-bell-slash"/>
</q-item-section>
<q-item-section>{{ $t('notifs.deactivate_notif') }}</q-item-section>
<q-item-section>{{ $t('notifs.read') }}</q-item-section>
</q-item>
</q-list>
</q-menu>

View File

@@ -146,6 +146,12 @@
<q-btn dense rounded icon="fas fa-ellipsis-h">
<q-menu>
<q-list style="min-width: 150px">
<q-item clickable v-close-popup @click="notifStore.setRead(notif._id)">
<q-item-section side>
<q-icon name="fas fa-trash-alt"/>
</q-item-section>
<q-item-section>{{ $t('notifs.read') }}</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="notifStore.deleteRec(username, notif._id)">
<q-item-section side>
<q-icon name="fas fa-trash-alt"/>

View File

@@ -792,6 +792,7 @@ const msg_it = {
new_event: 'Nuovo Evento',
new_friends: 'Nuove Richieste di Amicizia',
delete_notif: 'Elimina questa notifica',
read: 'Segna come letto',
deactivate_notif: 'Smetti di ricevere notifiche come questa',
select_provinces: 'Scegli le Provincie da cui ricevere le notifiche',
select_regions: 'Scegli le Regioni da cui ricevere le notifiche',
@@ -1157,7 +1158,7 @@ const msg_it = {
cancel_req: 'Annullata la richiesta al Circuito {circuitname}',
remove_from_mylist: 'Rimuovi dal Circuito',
reject_ask: 'Rifiuta l\'ingresso dal Circuito',
domanda_exit_fromcircuit: 'Uscire dal CIrcuito {circuitname} ?',
domanda_exit_fromcircuit: 'Sei veramente sicuro di voler uscire dal Circuito {circuitname} ?',
domanda_addadminofcircuit: 'Aggiungere {username} come Amministratore del CIrcuito {circuitname} ?',
domanda_removeadminofcircuit: 'Rimuovere {username} dall\' incarico di Amministratore del CIrcuito {circuitname} ?',
domanda_refuse_circuit: 'Rifiutare la richiesta di {username} per entrare nel Circuito {circuitname}?',
@@ -1175,6 +1176,7 @@ const msg_it = {
refuse_coins: 'Rifiuta Monete',
movements: 'Movimenti',
qta_remaining_to_send: 'Quantità massima inviabile {maxqta} {symbol}',
qta_not_valid: 'Quantità non valida',
qta_max_to_send: 'Quantità massima inviabile {maxqta} {symbol}',
},
@@ -1211,6 +1213,8 @@ const msg_it = {
from: 'Inviate da:',
to: 'A favore di:',
pendingtransaction: '* Transazioni Pendenti',
onlymymov: 'Mostra solo i miei movimenti',
showsaldi: 'Mostra i Saldi dei membri',
},
editor: {
showtool: 'Mostra strumenti per formattare il testo',

View File

@@ -565,6 +565,18 @@ export const colmyMovementTable = [
]
export const colmyUserPeopleSaldi = [
// AddCol({ name: '_id', label_trans: 'reg.id' }),
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
// AddCol({ name: 'name', label_trans: 'reg.name' }),
AddCol({
name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit,
}),
AddCol({ name: 'saldo', label_trans: 'account.saldo', fieldtype: costanti.FieldType.currency }),
]
export const colmyUserPeople = [
// AddCol({ name: '_id', label_trans: 'reg.id' }),
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
@@ -2576,6 +2588,7 @@ export const colmyUserCircuit = [
]
export const colTableNotifCoins = [
// AddCol({ name: 'date_created', label_trans: 'sendnotifs.date_created', fieldtype: costanti.FieldType.date }),
AddCol({ name: 'datenotif', label_trans: 'sendnotifs.datenotif', fieldtype: costanti.FieldType.date }),
AddCol({
name: 'extrarec.dest',

View File

@@ -5297,6 +5297,7 @@ export const tools = {
async sendCoinsByCircuit($q: any, circuit: ICircuit, sendcoinrec: ISendCoin) {
const userStore = useUserStore()
const notifStore = useNotifStore()
const username = userStore.my.username
@@ -5326,6 +5327,7 @@ export const tools = {
} else {
tools.showNegativeNotif($q, res.errormsg)
}
notifStore.updateNotification = true
this.updateMyData(res)
})
})

View File

@@ -118,6 +118,25 @@ export const useNotifStore = defineStore('NotifStore', {
})
},
setRead(_id: string) {
return Api.SendReq(`/sendnotif/set/${_id}/${process.env.APP_ID}`, 'GET', null)
.then((res) => {
// console.log('res', res)
if (res) {
const rec = this.last_notifs.find((rec: any) => rec._id === _id)
if (rec) {
rec.read = true
}
}
this.updateArrNotif()
})
.catch((error) => {
console.error(error)
return false
})
},
deleteRec(username: string, id: string) {
return Api.SendReq(`/sendnotif/del/${username}/${id}/${process.env.APP_ID}`, 'GET', null)
.then((res) => {

View File

@@ -21,15 +21,17 @@ import { CNotifAtTop } from '@src/components/CNotifAtTop'
import { costanti } from '@costanti'
import { ICity, IFriends, ICircuit, ISearchList, IUserFields, IAccount } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { colmyUserPeople, colmyUserCircuit, colmyMovement, colmyMovementTable } from '@store/Modules/fieldsTable'
import { colmyUserPeople, colmyUserPeopleSaldi, colmyUserCircuit, colmyMovement, colmyMovementTable } from '@store/Modules/fieldsTable'
import { useNotifStore } from '@store/NotifStore'
import { useCircuitStore } from '@store/CircuitStore'
export default defineComponent({
name: 'mycircuit',
components: { CProfile, CTitleBanner, CMyFieldRec, CSkill, CDateTime, CMyFriends,
CGridTableRec, CMyUser, CCheckIfIsLogged, CCurrencyValue, CSaldo, CNotifAtTop },
components: {
CProfile, CTitleBanner, CMyFieldRec, CSkill, CDateTime, CMyFriends,
CGridTableRec, CMyUser, CCheckIfIsLogged, CCurrencyValue, CSaldo, CNotifAtTop
},
props: {},
setup() {
const userStore = useUserStore()
@@ -50,8 +52,8 @@ export default defineComponent({
const filtroutente = ref(<any[]>[])
const showPic = ref(false)
const circuit = ref(<ICircuit|null>{})
const account = computed(() => circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null )
const circuit = ref(<ICircuit | null>{})
const account = computed(() => circuit.value ? userStore.getAccountByCircuitId(circuit.value._id) : null)
const mystatus = ref(<number>0)
const users_in_circuit = ref(<IFriends[]>[])
@@ -63,6 +65,7 @@ export default defineComponent({
const tabgrp = ref('info')
const tabmembers = ref('all')
const showsaldi = ref(false)
const tab = ref('membri')
const arrfilterand: any = ref([])
@@ -110,7 +113,17 @@ export default defineComponent({
searchList.value = []
if (circuit.value) {
filtercustom.value = [{ 'profile.mycircuits': { $elemMatch: { circuitname: { $eq: circuit.value.name } } } }]
filtercustom.value = [
{
'profile.mycircuits':
{
$elemMatch: {
circuitname:
{ $eq: circuit.value.name }
}
}
},
]
}
arrfilterand.value = []
@@ -149,6 +162,7 @@ export default defineComponent({
'profile.img': 1,
'profile.mycircuits': 1,
'profile.qualifica': 1,
'account.saldo': 1,
reported: 1,
date_report: 1,
username_who_report: 1,
@@ -190,14 +204,15 @@ export default defineComponent({
function numUsers() {
return users_in_circuit.value ? users_in_circuit.value.length : 0
}
function numAdmins() {
return (circuit.value && circuit.value.admins) ? circuit.value.admins.length : 0
}
function listaAdmins() {
return (circuit.value && circuit.value.admins) ? circuit.value.admins.map((rec) => rec.username).join(', ') : ''
}
onMounted(mounted)
return {
@@ -222,6 +237,7 @@ export default defineComponent({
colmyMovement,
colmyMovementTable,
colmyUserPeople,
colmyUserPeopleSaldi,
colmyUserCircuit,
extraparams,
extraparams_rich,
@@ -244,6 +260,7 @@ export default defineComponent({
saldo,
showonlymine,
tabellare,
showsaldi,
}
}
})

View File

@@ -65,6 +65,7 @@
<q-menu>
<q-list v-if="true" style="min-width: 150px">
<q-item clickable v-close-popup
v-if="saldo === 0"
@click="tools.removeFromMyCircuits($q, userStore.my.username, circuit.name, $t('circuit.domanda_exit_fromcircuit', {circuitname: circuit.name }))">
<q-item-section avatar>
<q-icon color="negative" name="fas fa-user-minus"/>
@@ -108,7 +109,7 @@
<q-tab-panels v-model="tabgrp" animated>
<q-tab-panel name="mov">
<q-toggle v-model="showonlymine" label="Mostra solo i miei movimenti"></q-toggle>
<q-toggle v-model="showonlymine" :label="t('movement.onlymymov')"></q-toggle>
<q-toggle v-model="tabellare" label="Tabella"></q-toggle>
<CGridTableRec
@@ -335,11 +336,13 @@
<q-tab-panels v-model="tabmembers" animated>
<q-tab-panel name="all">
<!--<q-toggle v-model="showsaldi" :label="t('movement.showsaldi')"></q-toggle>-->
<CGridTableRec
ref="tabMembri"
prop_mytable="users"
prop_mytitle=""
:prop_mycolumns="colmyUserPeople"
:prop_mycolumns="showsaldi ? colmyUserPeopleSaldi : colmyUserPeople"
prop_colkey="_id"
col_title="username"
:vertical="costanti.VISUTABLE_LISTA"