Riso: Ris Italia, altre modifiche grafiche

Lista Utenti da Verificare
This commit is contained in:
Surya Paolo
2023-11-30 01:48:29 +01:00
parent fdf232b351
commit ee5235549e
42 changed files with 863 additions and 197 deletions

View File

@@ -1,6 +1,6 @@
APP_VERSION="1.0.21"
APP_VERSION="1.0.20"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"
DIRECTORY_SERVER="freeplanet_serverside"
SERVERDIR_WEBSITE=""
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://localhost:3000"
LOGO_REG='piuchebuono-logo-full.png'
LOGO_REG='riso-logo-full.png'
TEST_NAME="Paolo"
TEST_SURNAME="Arena"
TEST_EMAIL=""

View File

@@ -1,6 +1,6 @@
APP_VERSION="1.0.21"
APP_VERSION="1.0.20"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"
DIRECTORY_SERVER="freeplanet_serverside"
SERVERDIR_WEBSITE=""
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://localhost:3000"
LOGO_REG='piuchebuono-logo-full.png'
LOGO_REG='riso-logo-full.png'
TEST_NAME="Paolo"
TEST_SURNAME="Arena"
TEST_EMAIL=""

View File

@@ -1,6 +1,6 @@
APP_VERSION="1.0.21"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16"
APP_ID="17"
DIRECTORY_LOCAL=newfreeplanet
DIRECTORY_SERVER=test.freeplanet_serverside
SERVERDIR_WEBSITE="test.piuchebuono.app"

View File

@@ -1,7 +1,7 @@
const msg_website_enUs = {
ws: {
sitename: 'Più che Buono',
siteshortname: 'Più che Buono',
sitename: 'Fiore Della Vita',
siteshortname: 'Fiore Della Vita',
description: '',
keywords: '',
},

View File

@@ -5,14 +5,6 @@ const msg_website_it = {
description: '',
keywords: '',
},
products: {
quantity: 'Quantità',
quantityAvailable: 'Disponibili',
weight: 'Peso',
stars: 'Voto',
color: 'Colore',
theme: 'Tema',
},
hours: {
descr: 'Descrizione',
date: 'Data',
@@ -40,6 +32,7 @@ const msg_website_it = {
products: 'Prodotti',
productslist: 'Lista Prodotti',
collabora: 'Collabora',
categories: 'Categorie',
storehouses: 'Magazzino',
departments: 'Uffici',
orders: 'Ordini Ricevuti',

View File

@@ -1,6 +1,6 @@
APP_VERSION="1.0.21"
APP_VERSION="1.0.17"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"
DIRECTORY_SERVER="freeplanet_serverside"
SERVERDIR_WEBSITE=""
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://localhost:3000"
LOGO_REG='piuchebuono-logo-full.png'
LOGO_REG='riso-logo-full.png'
TEST_NAME="Paolo"
TEST_SURNAME="Arena"
TEST_EMAIL=""

View File

@@ -1,17 +1,9 @@
const msg_website_it = {
ws: {
sitename: 'Fiore Della Vita',
siteshortname: 'Fiore Della Vita',
description: '',
keywords: '',
},
products: {
quantity: 'Quantità',
quantityAvailable: 'Disponibili',
weight: 'Peso',
stars: 'Voto',
color: 'Colore',
theme: 'Tema',
sitename: 'Riso',
siteshortname: 'RISO',
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.',
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
},
hours: {
descr: 'Descrizione',
@@ -131,7 +123,7 @@ const msg_website_it = {
color: 'Colore',
},
msg: {
myAppName: 'Fiore della Vita',
myAppName: 'Riso',
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
underconstruction: 'App in costruzione...',
myDescriz: '',

View File

@@ -7,6 +7,30 @@ import {
import { func } from '@store/Modules/fieldsTable'
// const SHOW_PROJINTHEMENU = false
//
// let arrlistafavourite = []
// let arrlistaprojtutti = []
// let arrlistaprojmiei = []
// if (SHOW_PROJINTHEMENU) {
// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall)
// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects)
// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects)
// }
// PROGETTI -> FAVORITI :
// if (arrlistafavourite.length > 0) {
// arrMenu.push({
// icon: 'favorite_border',
// nametranslate: 'pages.' + RouteNames.favouriteprojects,
// urlroute: RouteNames.favouriteprojects,
// level_parent: 0.0,
// level_child: 0.5,
// routes2: arrlistafavourite,
// idelem: ''
// })
// }
const firstPage = {
active: true,
order: 5,
@@ -22,7 +46,7 @@ const firstPage = {
function getDynamicPages(site: ISites): IListRoutes[] {
const baseroutes: IListRoutes[] = [
/*{
{
active: true,
order: 5,
path: '/',
@@ -33,6 +57,61 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: true,
infooter: true,
},
{
active: true,
order: 12,
path: '/goods',
materialIcon: 'fas fa-tshirt',
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/services',
materialIcon: 'fas fa-house-user',
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/provapao',
materialIcon: 'fas fa-house-user',
name: 'mypages.provapao',
component: () => import('@/root/provapao/provapao.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 15,
path: '/hosps',
materialIcon: 'fas fa-bed',
name: 'mypages.hosp',
component: () => import('@/root/hosp/hosp.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: site.confpages && site.confpages.enableCircuits,
order: 16,
path: '/circuits',
materialIcon: 'fas fa-coins',
name: 'mypages.circuits',
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 20,
@@ -43,7 +122,145 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},*/
},
{
active: true,
order: 120,
path: '/myprofile',
materialIcon: 'fas fa-user',
name: 'pages.profile',
component: () => import('@/views/user/myprofile/myprofile.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 120,
path: '/editprofile',
materialIcon: 'fas fa-user',
name: 'pages.profile3',
component: () => import('@/views/user/editprofile/editprofile.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 130,
path: '/friends',
materialIcon: 'fas fa-user-friends',
name: 'mypages.iscritti',
component: () => import('@/views/user/myfriends/myfriends.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: site.confpages && site.confpages.enableGroups,
order: 132,
path: '/groups',
materialIcon: 'fas fa-users',
name: 'mypages.groups',
component: () => import('@/views/user/mygroups/mygroups.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: false,
},
{
active: true,
order: 136,
path: '/grp/:groupname',
materialIcon: 'fas fa-user',
name: 'proj.group2',
component: () => import('@/views/user/mygroup/mygroup.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
}, {
active: true,
order: 137,
path: '/circuit/:path',
materialIcon: 'fas fa-user',
name: 'proj.circuit2',
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
path: '/separator',
name: 'separator',
order: 140,
isseparator: true,
inmenu: true,
},
{
active: true,
order: 130,
path: '/mypage/:idBacheca',
materialIcon: 'fas fa-user',
name: 'pages.mypage2',
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 130,
path: '/myservice/:idSkill',
materialIcon: '',
name: 'pages.myservice2',
component: () => import('@/views/user/myservice/myservice.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 135,
path: '/myhosps/:idHosp',
materialIcon: '',
name: 'pages.myhosps2',
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 132,
path: '/mygood/:idGood',
materialIcon: '',
name: 'pages.mygood2',
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 150,
path: '/fundraising',
materialIcon: 'fas fa-hand-holding-heart',
name: 'pages.fundraising',
component: () => import('@src/root/fundraising/fundraising.vue'),
inmenu: false,
infooter: false,
},
{
active: true,
order: 80,
path: '/calendario-eventi',
materialIcon: 'event',
name: 'ris.calendario_eventi_riso',
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
extraclass: 'isCalendar',
inmenu: false,
infooter: false
},
]
return baseroutes

View File

@@ -1,8 +1,8 @@
{
"name": "piuchebuono",
"version": "2.0.1",
"description": "PiuCheBuono",
"productName": "PiuCheBuono",
"name": "riso",
"version": "0.6.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.",
"productName": "Riso",
"author": "Paolo Arena",
"private": true,
"keywords": [],

View File

@@ -147,7 +147,7 @@ module.exports = configure((ctx) => ({
},
devServer: {
https: false,
port: 8088,
port: 8084,
open: false, // opens browser window automatically
headers: {
'Access-Control-Allow-Origin': '*',
@@ -305,9 +305,9 @@ module.exports = configure((ctx) => ({
},
manifest: {
name: 'Più che Buono',
short_name: 'PiuCheBuono',
description: 'PiuCheBuono è un GAS e Bottega',
name: 'Riso',
short_name: 'Riso',
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.',
display: 'standalone',
orientation: 'portrait',
background_color: '#fff',
@@ -317,54 +317,54 @@ module.exports = configure((ctx) => ({
start_url: "/?homescreen=1",
icons: [
{
src: 'images/fv-android-icon-512x512.png',
src: 'images/riso-android-icon-512x512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: 'images/fv-android-icon-384x384.png',
src: 'images/riso-android-icon-384x384.png',
sizes: '384x384',
type: 'image/png',
},
{
src: 'images/fv-android-icon-192x192.png',
src: 'images/riso-android-icon-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: 'images/fv-android-icon-144x144.png',
src: 'images/riso-android-icon-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: 'images/fv-android-icon-96x96.png',
src: 'images/riso-android-icon-96x96.png',
sizes: '96x96',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-120x120.png',
src: 'images/riso-apple-icon-120x120.png',
sizes: '120x120',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-144x144.png',
src: 'images/riso-apple-icon-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-152x152.png',
src: 'images/riso-apple-icon-152x152.png',
sizes: '152x152',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-180x180.png',
src: 'images/riso-apple-icon-180x180.png',
sizes: '180x180',
type: 'image/png',
},
],
related_applications: [{
"platform": "webapp",
"url": "https://www.piuchebuono.app/manifest.json"
"url": "https://www.riso.app/manifest.json"
}]
},
},
@@ -399,7 +399,7 @@ module.exports = configure((ctx) => ({
builder: {
// https://www.electron.build/configuration/configuration
appId: 'PiuCheBuono',
appId: 'Riso',
},
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain

View File

@@ -1,8 +1,8 @@
{
"name": "piuchebuono",
"version": "2.0.1",
"description": "PiuCheBuono",
"productName": "PiuCheBuono",
"name": "riso",
"version": "0.6.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.",
"productName": "Riso",
"author": "Paolo Arena",
"private": true,
"keywords": [],

View File

@@ -147,7 +147,7 @@ module.exports = configure((ctx) => ({
},
devServer: {
https: false,
port: 8088,
port: 8084,
open: false, // opens browser window automatically
headers: {
'Access-Control-Allow-Origin': '*',
@@ -305,9 +305,9 @@ module.exports = configure((ctx) => ({
},
manifest: {
name: 'Più che Buono',
short_name: 'PiuCheBuono',
description: 'PiuCheBuono è un GAS e Bottega',
name: 'Riso',
short_name: 'Riso',
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.',
display: 'standalone',
orientation: 'portrait',
background_color: '#fff',
@@ -317,47 +317,47 @@ module.exports = configure((ctx) => ({
start_url: "/?homescreen=1",
icons: [
{
src: 'images/fv-android-icon-512x512.png',
src: 'images/riso-android-icon-512x512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: 'images/fv-android-icon-384x384.png',
src: 'images/riso-android-icon-384x384.png',
sizes: '384x384',
type: 'image/png',
},
{
src: 'images/fv-android-icon-192x192.png',
src: 'images/riso-android-icon-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: 'images/fv-android-icon-144x144.png',
src: 'images/riso-android-icon-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: 'images/fv-android-icon-96x96.png',
src: 'images/riso-android-icon-96x96.png',
sizes: '96x96',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-120x120.png',
src: 'images/riso-apple-icon-120x120.png',
sizes: '120x120',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-144x144.png',
src: 'images/riso-apple-icon-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-152x152.png',
src: 'images/riso-apple-icon-152x152.png',
sizes: '152x152',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-180x180.png',
src: 'images/riso-apple-icon-180x180.png',
sizes: '180x180',
type: 'image/png',
},
@@ -399,7 +399,7 @@ module.exports = configure((ctx) => ({
builder: {
// https://www.electron.build/configuration/configuration
appId: 'PiuCheBuono',
appId: 'Riso',
},
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain

View File

@@ -1827,6 +1827,7 @@ export const shared_consts = {
comune: 1,
mycities: 1,
lang: 1,
verified_by_aportador: 1,
'profile.img': 1,
'profile.mygroups': 1,
'profile.mycircuits': 1,

View File

@@ -34,6 +34,11 @@ export default defineComponent({
required: false,
default: false
},
flat: {
type: Boolean,
required: false,
default: false
},
numcol: {
type: Number,
required: false,

View File

@@ -1,7 +1,7 @@
<template>
<div class="q-ma-xs">
<div
class="row q-my-sm shadow"
class="row q-my-xs shadow"
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
>
<!--<div class="col-md-3 col-lg-3 col-sm-12 col-xs-12 box_4" style="border-left: 1px solid #efefef;"
@@ -85,13 +85,8 @@
</div>
</div>
<div class="row" style="margin-top: 4px important; font-size: 0.75rem">
&nbsp;
</div>
<div
class="row q-my-md shadow"
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
class="row shadow"
>
<div
v-for="(rec, index) of visulinks"

View File

@@ -1,8 +1,7 @@
<template>
<div v-if="tools.isUserOk()">
<div
v-if="cardsbig.length > 0"
class="row q-ma-sm shadow justify-center"
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
>
@@ -22,6 +21,7 @@
</CBigBtn>
</div>
<div
v-if="cardssmall.length > 0"
class="row shadow justify-center"
style="border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.12)"
>

View File

@@ -498,6 +498,7 @@ export default defineComponent({
name: 1,
surname: 1,
username: 1,
verified_by_aportador: 1,
'profile.handshake': 1,
'profile.img': 1,
'profile.mygroups': 1,

View File

@@ -1,10 +1,10 @@
<template>
<div>
<div v-if="mypathin && !!rec">
<q-toggle
<q-toggle
v-if="tools.isManager()"
style=" position:absolute;"
v-model="editOn"
dense
color="green"
size="sm"
@update:model-value="changeVisuDrawer(mypathin, editOn)"
@@ -41,7 +41,7 @@
</CMyEditElem>
</q-drawer>
<div class="q-ma-xs q-gutter-xs q-pa-xs">
<div class="q-gutter-xs" style="margin-left: 1px; margin-right: 1px;">
<div v-if="!!rec.img1" class="text-center">
<q-img :src="`` + rec.img1" class="img"></q-img>
</div>

View File

@@ -148,6 +148,13 @@
color="green"
>online</q-badge
>
<q-badge
v-if="!tools.isVerifiedByUser(row)"
align="bottom"
floating
color="red"
>Da Abilitare</q-badge
>
</q-avatar>
</q-item-section>
<q-item-section class="">

View File

@@ -15,6 +15,7 @@ import { CMyFieldDb } from '@/components/CMyFieldDb'
import { CMyCircuit } from '@/components/CMyCircuit'
import { CMySelect } from '@/components/CMySelect'
import { CMyUserOnlyView } from '@/components/CMyUserOnlyView'
import { CMyUser } from '@/components/CMyUser'
import { CUserInfoAccount } from '@/components/CUserInfoAccount'
import { useI18n } from '@/boot/i18n'
import { useRoute, useRouter } from 'vue-router'
@@ -31,7 +32,8 @@ export default defineComponent({
name: 'CMyProfileTutorial',
components: {
CSendCoins, CSaldo, CUserInfoAccount,
CMySelectCity, CMyFieldRec, CSkill, CMyUserOnlyView, CTitleBanner, CMySelect, CMyFieldDb, CMyCircuit
CMySelectCity, CMyFieldRec, CMyUser,
CSkill, CMyUserOnlyView, CTitleBanner, CMySelect, CMyFieldDb, CMyCircuit
},
emits: ['setCmd'],
props: {
@@ -72,6 +74,8 @@ export default defineComponent({
const filtroutente = ref(<any[]>[])
const usersList = ref({ show: false, title: '', list: [] })
const stepTut = computed(() => userStore.my.profile.stepTutorial)
const noNameSurname = computed(() => userStore.my.profile.noNameSurname)
@@ -79,6 +83,10 @@ export default defineComponent({
return costanti.MAINCARDS.filter((rec: any) => shared_consts.TABLES_INSERT_ALMOST_ONE_TO_ENABLE_CIRCUIT.includes(rec.table))
})
const userstoverify = computed(() => {
return userStore.my.profile.userstoverify
})
const strProv = computed(() => {
if (contact.value && contact.value.profile.resid_province) {
@@ -542,6 +550,8 @@ export default defineComponent({
card,
askToConfirmSkipItalia,
circuititalia,
usersList,
userstoverify,
}
},
})

View File

@@ -206,9 +206,12 @@
<q-btn
:flat="isSalta(recstep.step)"
:disabled="isNextDisable()"
@click="(isSalta(recstep.step))
? askToConfirmSkip(recstep.step) :
((recstep.indstep === numindstep) ? clickFinish() : $refs.stepper.next())
@click="
isSalta(recstep.step)
? askToConfirmSkip(recstep.step)
: recstep.indstep === numindstep
? clickFinish()
: $refs.stepper.next()
"
:color="isSalta(recstep.step) ? 'negative' : 'primary'"
:label="
@@ -239,6 +242,27 @@
>
</q-btn>
<q-banner
inline-actions
class="bg-blue text-white"
v-if="userstoverify.length > 0"
>
<span v-html="$t('tutorial.utenti_da_verificare')"></span>
<template v-slot:action>
<q-btn
:label="userstoverify.length + ' ' + $t('tutorial.utenti_da_verif_btn')"
class="q-my-sm"
rounded
icon="fas fa-users"
@click="
usersList.show = true;
usersList.title = $t('tutorial.utenti_da_verif_btn');
"
>
</q-btn>
</template>
</q-banner>
<q-banner
inline-actions
class="bg-red text-white"
@@ -258,6 +282,27 @@
</q-banner>
</div>
</div>
<q-dialog v-model="usersList.show">
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title>
{{ usersList.title }}
</q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
<q-card-section class="inset-shadow">
<div v-for="(rec, i) in userstoverify" :key="i">
<CMyUser
:mycontact="rec"
:visu="costanti.ASK_TRUST"
@setCmd="tools.setCmd"
>
</CMyUser>
</div>
</q-card-section>
</q-card>
</q-dialog>
<q-dialog v-model="showAccountInfo" full-height full-width>
<q-card v-if="true">
<q-toolbar class="bg-primary">

View File

@@ -779,12 +779,14 @@
v-if="contact.username !== userStore.my.username"
rounded
dense
:icon="
icon="fas fa-ellipsis-h"
:color="!contact.verified_by_aportador ? 'red' : 'white'"
>
<!-- </q-btn></q-btn>:icon="
userStore.IsMyFriendByUsername(contact.username)
? `fas fa-ellipsis-h`
: `fas fa-user`
"
>
"-->
<q-menu>
<q-list style="min-width: 200px">
<q-item

View File

@@ -511,11 +511,7 @@
<q-btn
v-if="contact.username !== userStore.my.username"
rounded
:icon="
userStore.IsMyFriendByUsername(contact.username)
? `fas fa-ellipsis-h`
: `fas fa-user`
"
icon="fas fa-ellipsis-h"
>
<q-menu>
<q-list style="min-width: 200px">

View File

@@ -31,13 +31,23 @@ export default defineComponent({
const circuitStore = useCircuitStore()
const $router = useRouter()
const shownotif = ref(false)
const { getImgByNotif, getNotifText, getTypeDirNotif, getTypeIdNotif } = MixinUsers()
const lasts_notifs_req = computed(() => notifStore.getnotifs_coinsreq())
const num_notifs = computed(() => lasts_notifs_req.value.length)
watch(() => num_notifs.value, (newval, oldval) => {
if (num_notifs.value === 1)
shownotif.value = true
else if (num_notifs.value === 0)
shownotif.value = false
})
function mounted() {
//
shownotif.value = num_notifs.value === 1
}
function clickNotif(notif: INotif) {
@@ -70,6 +80,7 @@ export default defineComponent({
num_notifs,
clickNotif,
userStore,
shownotif,
}
},
})

View File

@@ -1,55 +1,102 @@
<template>
<q-banner
v-if="num_notifs > 0"
rounded
dense
class="bg-primary text-white"
color="primary q-title"
style="text-align: center;">
<template v-slot:avatar>
<q-icon name="fas fa-exclamation-triangle" color="yellow" size="xs"/>
</template>
<q-item v-for="(notif, index) in lasts_notifs_req" :key="index">
<div class="q-ma-sm text-center">
<q-btn
v-if="num_notifs > 0"
:label="t('circuit.ris_in_arrivo') + (num_notifs > 1 ? (' (' + num_notifs + ' ' + t('circuit.transaz') + ')') : '')"
@click="shownotif = true"
icon="fas fa-coins"
rounded
color="primary"
></q-btn>
</div>
<!--<q-item-section avatar>
<q-dialog v-model="shownotif" :maximized="$q.screen.lt.sm">
<q-card class="dialog_card">
<q-bar class="bg-primary text-white">
{{ $t('circuit.receive_coins') }}
<q-space />
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-bar>
<q-card-section class="q-px-xs inset-shadow">
<q-banner
v-if="num_notifs > 0"
rounded
dense
class="bg-light-blue text-black"
color="primary q-title"
style="text-align: center"
>
<q-item v-for="(notif, index) in lasts_notifs_req" :key="index">
<!--<q-item-section avatar>
<q-avatar>
<q-item-label lines="1">{{ getTypeDirNotif(notif) }}</q-item-label>
</q-avatar>
</q-item-section>-->
<q-item-section avatar>
<q-avatar>
<img :src="notif.myimgsender" :alt="notif.sender">
</q-avatar>
</q-item-section>
<q-item-section avatar>
<q-avatar>
<img :src="notif.myimgsender" :alt="notif.sender" />
</q-avatar>
</q-item-section>
<q-item-section>
<q-item-label lines="5" :class="(!notif.read) ? 'unread' : 'read'" @click="clickNotif(notif)">
<div v-html="getNotifText($t, notif, false)"></div>
</q-item-label>
<q-item-label caption lines="18"
v-if="notif.typedir === shared_consts.TypeNotifs.TYPEDIR_CIRCUITS && notif.status === shared_consts.CircuitsNotif.STATUS_NONE && notif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ"
>
<div class="row no-wrap justify-evenly q-pa-sm">
<q-btn
size="md"
icon="fas fa-coins"
:disable="notif.disablecoinclick"
color="positive" :label="$t('circuit.accept_coins_qty', {qty: notif.extrarec.qty, symbol: notif.extrarec.symbol})"
@click="notif.disablecoinclick = true; tools.acceptCoins(q, notif.sender, notif)"
/>
<q-btn
size="md"
:disable="notif.disablecoinclick"
color="negative" :label="$t('circuit.refuse_coins_qty', {qty: notif.extrarec.qty, symbol: notif.extrarec.symbol})"
@click="notif.disablecoinclick = true; tools.refuseCoins(q, notif.sender, notif)"
/>
</div>
</q-item-label>
</q-item-section>
</q-item>
</q-banner>
<q-item-section>
<q-item-label
lines="5"
:class="!notif.read ? 'unread' : 'read'"
@click="clickNotif(notif)"
>
<div v-html="getNotifText($t, notif, false)"></div>
</q-item-label>
<q-item-label
caption
lines="18"
v-if="
notif.typedir === shared_consts.TypeNotifs.TYPEDIR_CIRCUITS &&
notif.status === shared_consts.CircuitsNotif.STATUS_NONE &&
notif.typeid ===
shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ
"
>
<div class="row no-wrap justify-evenly q-pa-sm">
<q-btn
size="md"
icon="fas fa-coins"
:disable="notif.disablecoinclick"
color="positive"
:label="
$t('circuit.accept_coins_qty', {
qty: notif.extrarec.qty,
symbol: notif.extrarec.symbol,
})
"
@click="
notif.disablecoinclick = true;
tools.acceptCoins(q, notif.sender, notif);
"
/>
<q-btn
size="md"
:disable="notif.disablecoinclick"
color="negative"
:label="
$t('circuit.refuse_coins_qty', {
qty: notif.extrarec.qty,
symbol: notif.extrarec.symbol,
})
"
@click="
notif.disablecoinclick = true;
tools.refuseCoins(q, notif.sender, notif);
"
/>
</div>
</q-item-label>
</q-item-section>
</q-item>
</q-banner>
</q-card-section>
</q-card>
</q-dialog>
</template>
<script lang="ts" src="./CNotifAtTop.ts">

View File

@@ -4,6 +4,7 @@ import { ICalcStat, IOperators } from '../../model'
import { useUserStore } from '../../store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '../../store/globalStore'
import { useCircuitStore } from '../../store/CircuitStore'
import { useI18n } from '../../boot/i18n'
import { shared_consts } from '@src/common/shared_vuejs'
@@ -23,6 +24,7 @@ export default defineComponent({
const userStore = useUserStore()
const globalStore = useGlobalStore()
const circuitStore = useCircuitStore()
const { t } = useI18n()
const $q = useQuasar()
const $router = useRouter()
@@ -34,7 +36,10 @@ export default defineComponent({
const tipoConto = ref(costanti.AccountType.USER)
const loading = ref(false)
const circuitpath = computed(() => userStore.my.profile.last_circuitpath)
const circuitpath = computed(() => {
const circ = circuitStore.getCircuitByProvinceAndCard(userStore.my.profile.resid_province, userStore.my.profile.resid_card)
return circ && circ.path ? circ.path : ''
})
const contact = computed(() => userStore.my)

View File

@@ -1,15 +1,9 @@
<template>
<div class="row text-center justify-evenly items-center">
<CUserInfoAccount
:user="contact"
:circuitpath="circuitpath"
:admin="false"
:onlysaldo="true"
/>
<div class="q-mb-sm">
<q-btn
icon="fas fa-upload"
color="primary"
color="positive"
size="md"
rounded
:label="$t('circuit.sendcoins_toso')"
@@ -19,13 +13,21 @@
&nbsp;
<q-btn
icon="fas fa-download"
color="primary"
color="accent"
size="md"
rounded
:label="$t('circuit.receive_coins')"
@click="tools.receiveRis($q, $t)"
>
</q-btn>
<div class="q-mb-sm"></div>
<CUserInfoAccount
:user="contact"
:circuitpath="circuitpath"
:admin="false"
:onlysaldo="true"
/>
</div>
</div>
<q-dialog v-model="usersList.show">
@@ -83,7 +85,6 @@
<div
v-else-if="tipoConto === costanti.AccountType.COLLECTIVE_ACCOUNT"
>
<div v-for="(grp, i) in usersList.listgroup" :key="i">
<CMyGroup :mygrp="grp" :visu="costanti.USER_GROUPS" :noaut="true">
</CMyGroup>

View File

@@ -64,6 +64,8 @@ export default defineComponent({
const table = ref(toolsext.TABMYGROUPS)
const circuitsnational = ref(<any[]>[])
const circuit = ref(<ICircuit | null | undefined>null)
watch(() => props.user, (newval, oldval) => {
@@ -83,6 +85,8 @@ export default defineComponent({
circuit.value = circuitStore.getCircuitByPath(props.circuitpath)
}
circuitsnational.value = circuitStore.getCircuitsNational()
if (props.account) {
myaccount.value = props.account
} else {
@@ -138,6 +142,7 @@ export default defineComponent({
myaccount,
save,
toolsext,
circuitsnational,
}
},
})

View File

@@ -6,14 +6,22 @@
<q-separator />
<q-avatar v-if="userStore.getImgByCircuit(circuit)" size="30px">
<q-img
:src="userStore.getImgByCircuit(circuit)"
:alt="circuit.name"
img-class="imgprofile"
height="30px"
@click="
naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circuit))
"
/>
</q-avatar>
<q-btn
text-color="blue"
color="white"
class="shadow-5 q-mb-xs"
dense
flat
class="shadow-1 q-mb-xs q-mt-xs"
color="primary"
rounded
size="md"
size="sm"
@click="naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circuit))"
>
{{ circuit.name }}
@@ -29,6 +37,47 @@
>
</CSaldo>
<div v-if="onlysaldo">
<div v-for="(circnaz, ind) of circuitsnational" :key="ind">
<q-avatar v-if="userStore.getImgByCircuit(circnaz)" size="30px">
<q-img
:src="userStore.getImgByCircuit(circnaz)"
:alt="circuit.name"
img-class="imgprofile"
height="30px"
@click="
naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circnaz))
"
/>
</q-avatar>
<q-btn
class="shadow-1 q-mb-xs q-mt-xs"
color="primary"
rounded
size="sm"
@click="
naviga(tools.getPathByTableAndRec(toolsext.TABCIRCUITS, circnaz))
"
>
{{ circnaz.name }}
</q-btn>
<CSaldo
v-if="tools.isUserOk() && circnaz.account"
:account="circnaz.account"
:symbol="circnaz.symbol"
:color="circnaz.color"
:saldo="circnaz.account.saldo_pend"
:qtarem="
myaccount
? circuitStore.getRemainingCoinsToSend(circnaz.account)
: 0
"
>
</CSaldo>
</div>
</div>
<q-card-section v-if="!onlysaldo">
<div v-if="myaccount.date_created" class="container">
<q-icon name="fas fa-lightbulb" class="iconcirc"></q-icon>

View File

@@ -1219,7 +1219,7 @@ h3 {
font-family: Arial, sans-serif;
font-size: 0.7rem;
letter-spacing: 0.15px;
min-height: 40px;
min-height: 27px;
}

View File

@@ -1,9 +1,9 @@
const msg_website_it = {
ws: {
sitename: 'Più che Buono',
siteshortname: 'Più che Buono',
description: '',
keywords: '',
sitename: 'Riso',
siteshortname: 'RISO',
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.',
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
},
hours: {
descr: 'Descrizione',
@@ -32,7 +32,6 @@ const msg_website_it = {
products: 'Prodotti',
productslist: 'Lista Prodotti',
collabora: 'Collabora',
categories: 'Categorie',
storehouses: 'Magazzino',
departments: 'Uffici',
orders: 'Ordini Ricevuti',
@@ -124,7 +123,7 @@ const msg_website_it = {
color: 'Colore',
},
msg: {
myAppName: 'Più che Buono',
myAppName: 'Riso',
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
underconstruction: 'App in costruzione...',
myDescriz: '',

View File

@@ -7,6 +7,30 @@ import {
import { func } from '@store/Modules/fieldsTable'
// const SHOW_PROJINTHEMENU = false
//
// let arrlistafavourite = []
// let arrlistaprojtutti = []
// let arrlistaprojmiei = []
// if (SHOW_PROJINTHEMENU) {
// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall)
// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects)
// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects)
// }
// PROGETTI -> FAVORITI :
// if (arrlistafavourite.length > 0) {
// arrMenu.push({
// icon: 'favorite_border',
// nametranslate: 'pages.' + RouteNames.favouriteprojects,
// urlroute: RouteNames.favouriteprojects,
// level_parent: 0.0,
// level_child: 0.5,
// routes2: arrlistafavourite,
// idelem: ''
// })
// }
const firstPage = {
active: true,
order: 5,
@@ -22,7 +46,7 @@ const firstPage = {
function getDynamicPages(site: ISites): IListRoutes[] {
const baseroutes: IListRoutes[] = [
/*{
{
active: true,
order: 5,
path: '/',
@@ -33,6 +57,61 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: true,
infooter: true,
},
{
active: true,
order: 12,
path: '/goods',
materialIcon: 'fas fa-tshirt',
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/services',
materialIcon: 'fas fa-house-user',
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/provapao',
materialIcon: 'fas fa-house-user',
name: 'mypages.provapao',
component: () => import('@/root/provapao/provapao.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 15,
path: '/hosps',
materialIcon: 'fas fa-bed',
name: 'mypages.hosp',
component: () => import('@/root/hosp/hosp.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: site.confpages && site.confpages.enableCircuits,
order: 16,
path: '/circuits',
materialIcon: 'fas fa-coins',
name: 'mypages.circuits',
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 20,
@@ -43,7 +122,145 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},*/
},
{
active: true,
order: 120,
path: '/myprofile',
materialIcon: 'fas fa-user',
name: 'pages.profile',
component: () => import('@/views/user/myprofile/myprofile.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 120,
path: '/editprofile',
materialIcon: 'fas fa-user',
name: 'pages.profile3',
component: () => import('@/views/user/editprofile/editprofile.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 130,
path: '/friends',
materialIcon: 'fas fa-user-friends',
name: 'mypages.iscritti',
component: () => import('@/views/user/myfriends/myfriends.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: site.confpages && site.confpages.enableGroups,
order: 132,
path: '/groups',
materialIcon: 'fas fa-users',
name: 'mypages.groups',
component: () => import('@/views/user/mygroups/mygroups.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: false,
},
{
active: true,
order: 136,
path: '/grp/:groupname',
materialIcon: 'fas fa-user',
name: 'proj.group2',
component: () => import('@/views/user/mygroup/mygroup.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
}, {
active: true,
order: 137,
path: '/circuit/:path',
materialIcon: 'fas fa-user',
name: 'proj.circuit2',
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
path: '/separator',
name: 'separator',
order: 140,
isseparator: true,
inmenu: true,
},
{
active: true,
order: 130,
path: '/mypage/:idBacheca',
materialIcon: 'fas fa-user',
name: 'pages.mypage2',
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 130,
path: '/myservice/:idSkill',
materialIcon: '',
name: 'pages.myservice2',
component: () => import('@/views/user/myservice/myservice.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 135,
path: '/myhosps/:idHosp',
materialIcon: '',
name: 'pages.myhosps2',
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 132,
path: '/mygood/:idGood',
materialIcon: '',
name: 'pages.mygood2',
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 150,
path: '/fundraising',
materialIcon: 'fas fa-hand-holding-heart',
name: 'pages.fundraising',
component: () => import('@src/root/fundraising/fundraising.vue'),
inmenu: false,
infooter: false,
},
{
active: true,
order: 80,
path: '/calendario-eventi',
materialIcon: 'event',
name: 'ris.calendario_eventi_riso',
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
extraclass: 'isCalendar',
inmenu: false,
infooter: false
},
]
return baseroutes

View File

@@ -173,7 +173,7 @@ export default function () {
if (notif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ) {
// console.log('notif.extrarec', notif.extrarec)
if (notif.extrarec && notif.extrarec.hasOwnProperty('causal') && notif.extrarec.causal) {
descr += '( ' + $t('movement.causal') + ': ' + notif.extrarec.causal + ')'
descr += '<br>' + $t('movement.causal') + ': ' + notif.extrarec.causal
}
}
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE) {
@@ -188,7 +188,7 @@ export default function () {
if (notif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ) {
// console.log('notif.extrarec', notif.extrarec)
if (notif.extrarec && notif.extrarec.hasOwnProperty('causal') && notif.extrarec.causal) {
descr += '( ' + $t('movement.causal') + ': ' + notif.extrarec.causal + ')'
descr += '<br>' + $t('movement.causal') + ': ' + notif.extrarec.causal
}
}
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) {

View File

@@ -142,6 +142,7 @@ export interface IUserProfile {
mycircuits: IMyCircuit[]
last_circuitpath: string
lastdate_reqRis?: Date
userstoverify: IFriends[]
manage_mygroups: IMyGroup[]
notifs: IUserNotifType[]
notif_idCities: number[]

View File

@@ -1128,13 +1128,13 @@ const msg_it = {
follow_circuits: 'Circuiti di cui fai parte',
},
friends: {
accept_trust: 'Accetta Fiducia',
accept_trust: 'Accetta',
accepted: 'Amicizia Accettata',
refused: 'Amicizia Rifiutata',
accept: 'Accetta',
refuse: 'Rifiuta',
accept_friend: 'Accetta Amicizia',
refuse_trust: 'Rifiuta Fiducia',
refuse_trust: 'Rifiuta',
reject_trust: 'Revoca Fiducia',
remove_from_myfriends: 'Rimuovi dagli Amici',
block_user: 'Blocca Utente',
@@ -1336,7 +1336,7 @@ const msg_it = {
domanda_refuse_circuit: 'Rifiutare la richiesta di {username} per entrare nel {circuitname}?',
refusedcircuit: 'Rifiutato a {username} la richiesta di entrare nel Circuito',
sendcoins: 'Invia RIS',
sendcoins_toso: 'Invia RIS a',
sendcoins_toso: 'Invia RIS',
receive_coins: 'Ricevi RIS',
info_contocom: 'Il Conto Comunitario viene gestito collettivamente dai membri del Circuito Territoriale ed utilizzato per progetti comuni, per investimenti di solidarietà o per fare fronte ad eventuali situazioni di difficoltà.',
sendcoins_tocom: 'Invia RIS a Conto Comunitario',
@@ -1352,6 +1352,8 @@ const msg_it = {
refuse_coins_qty: 'Rifiuta',
refuse_coins: 'Rifiuta RIS',
movements: 'Movimenti',
ris_in_arrivo: '👉🏻 Ci sono RIS in Arrivo !',
transaz: 'mov',
movements_made: 'Movimenti effettuati',
contocomunitario: 'Conto Comunitario',
comunitario: 'Comunitario',
@@ -1419,7 +1421,8 @@ const msg_it = {
toCCom: 'Al Conto Comunitario:',
pendingtransaction: '* Transazioni Pendenti',
viewpendingtransaction: 'Vedi Transazioni Pendenti',
onlymymov: 'Mostra solo i miei movimenti',
onlymymov: 'Vedi i tuoi movimenti',
allmov: 'Vedi i movimenti di Tutto il Circuito',
showsaldi: 'Mostra i Saldi dei membri',
updatewallet: 'Aggiorna',
},
@@ -1523,7 +1526,7 @@ const msg_it = {
autorizzare: 'In attesa di Abilitazione',
passeggeri: 'Passeggeri Navi',
giainlista: 'Gia in Lista',
newreg: 'Registrati',
newreg: 'Iscritti',
onlineusers: 'OnLine',
diffusori: 'Diffusori',
strettelist: 'Strette',
@@ -1564,6 +1567,8 @@ const msg_it = {
step_altri_in_profilo: 'Per vedere e modificare tutte le altre informazioni di Profilo:',
step_fine_title: 'Fine',
step_fine: 'Hai completato l\'aggiornamento del tuo Profilo. Ricorda che potrai modificarlo, cliccando sulla prima icona in alto a destra 🙎🏻‍♂️ .',
utenti_da_verificare: 'E\' richiesta la tua autorizzazione per far entrare i tuoi Amici alla App RISO',
utenti_da_verif_btn: 'Utenti',
},
cmd: {

View File

@@ -89,6 +89,17 @@ export const useCircuitStore = defineStore('CircuitStore', {
return this.listcircuits.findIndex((rec: ICircuit) => rec.name === circuitname && rec.showAlways) >= 0
},
getCircuitsNational(): any[] {
const userStore = useUserStore()
let arrcircnaz = this.listcircuits.filter((rec: ICircuit) => rec.showAlways)
for (const circ of arrcircnaz) {
circ.account = userStore.my.profile.useraccounts.find((rec: IAccount) => rec.circuitId === circ._id)
}
return arrcircnaz
},
IsNationalAndNotEnterInLocal(circuitname: string): boolean {
const userStore = useUserStore()
@@ -99,12 +110,14 @@ export const useCircuitStore = defineStore('CircuitStore', {
SonoDentroAdAlmeno1CircuitoConFido() {
const userStore = useUserStore()
const accountsConFido = userStore.my.profile.useraccounts.filter((rec: IAccount) => rec.fidoConcesso > 0)
if (userStore.my.profile.useraccounts) {
const accountsConFido = userStore.my.profile.useraccounts.filter((rec: IAccount) => rec.fidoConcesso > 0)
for (const account of accountsConFido) {
const mycircuit = this.listcircuits.find((circ: ICircuit) => circ._id === account.circuitId)
if (mycircuit && !mycircuit.showAlways) {
return mycircuit
for (const account of accountsConFido) {
const mycircuit = this.listcircuits.find((circ: ICircuit) => circ._id === account.circuitId)
if (mycircuit && !mycircuit.showAlways) {
return mycircuit
}
}
}

View File

@@ -103,7 +103,7 @@ export const costanti = {
{
visible: true,
title: ' Beni ',
subtitle: 'Autoproduzioni, artigianato, cibo, abbigliamento, attrezzature, arredamento',
subtitle: 'Autoproduzioni, artigianato, cibo, abbigliamento',
strsingolo: 'Bene',
to: '/goods',
icon: 'fas fa-tshirt',
@@ -118,7 +118,7 @@ export const costanti = {
visible: true,
strsingolo: 'Servizio',
title: 'Servizi',
subtitle: 'Competenze, formazione, aiuti, benessere, salute, casa, riparazioni',
subtitle: 'Competenze, formazione, aiuti, benessere, casa',
to: '/services',
icon: 'fas fa-house-user',
color: 'red-6',
@@ -131,7 +131,7 @@ export const costanti = {
{
visible: true,
title: 'Ospitalità',
subtitle: 'Conosci persone nuove, ospita viaggiatori o esplora tu nuovi paesi',
subtitle: 'Ospitare per brevi periodi, esplora altre città',
strsingolo: 'Ospitalità',
to: '/hosps',
icon: 'fas fa-bed',
@@ -160,7 +160,7 @@ export const costanti = {
visible: false,
title: 'Circuiti RIS',
strsingolo: 'Circuito',
subtitle: 'Unisciti al circuito della tua provincia per utilizzare <strong>i RIS come strumento di scambio</strong>',
subtitle: 'Strumento di scambio alternativa alle monete',
to: '/circuits',
table: 'circuits',
icon: 'fas fa-coins',
@@ -175,7 +175,7 @@ export const costanti = {
visible: false,
title: 'Gruppi',
strsingolo: 'Gruppo',
subtitle: 'Conosci gruppi locali, associazioni, progetti, comunità',
subtitle: 'Associazioni, progetti, comunità, negozi',
to: '/groups',
table: 'mygroups',
icon: 'fas fa-users',
@@ -189,7 +189,7 @@ export const costanti = {
visible: true,
title: 'Eventi',
strsingolo: 'Evento',
subtitle: 'Mercatini, incontri, conferenze, corsi formativi, feste e divertimento',
subtitle: 'Mercatini, incontri, conferenze, corsi',
to: '/events',
icon: 'event',
color: 'green-6',

View File

@@ -3719,6 +3719,14 @@ export const tools = {
}
},
isVerifiedByUser(user: IUserFields) {
try {
return user.verified_by_aportador
} catch (e) {
return false
}
},
addMinutes(mydate: Date, minutes: number) {
return date.addToDate(mydate, { minutes })
},
@@ -5560,6 +5568,27 @@ export const tools = {
})
},
addToMyTrust($q: any, username: string, usernameDest: string) {
const userStore = useUserStore()
const notifStore = useNotifStore()
$q.dialog({
message: t('db.domanda_trusted', { username: usernameDest }),
ok: { label: t('dialog.yes'), push: true },
cancel: { label: t('dialog.cancel') },
title: t('db.domanda')
}).onOk(() => {
userStore.setFriendsCmd($q, t, username, usernameDest, shared_consts.FRIENDSCMD.SETTRUST, null)
.then((res: any) => {
if (res) {
userStore.my.profile.userstoverify = userStore.my.profile.userstoverify.filter((rec: any) => rec.username !== usernameDest)
tools.showPositiveNotif($q, t('db.trusted'))
}
})
})
},
removeFromMyFriends($q: any, username: string, usernameDest: string) {
const userStore = useUserStore()
@@ -6437,7 +6466,7 @@ export const tools = {
if (res.useraccounts && res.useraccounts.length > 0) {
userStore.my.profile.useraccounts = res.useraccounts
}
$router.push('/circuit')
$router.push('/circuits')
tools.showPositiveNotif($q, t('circuit.coins_sendrequest_sent'))
} else {
tools.showNegativeNotif($q, res.errormsg)
@@ -6854,6 +6883,8 @@ export const tools = {
tools.blockUser($q, username, dest)
} else if (cmd === shared_consts.FRIENDSCMD.SETFRIEND) {
tools.addToMyFriends($q, username, dest)
} else if (cmd === shared_consts.FRIENDSCMD.SETTRUST) {
tools.addToMyTrust($q, username, dest)
} else if (cmd === shared_consts.FRIENDSCMD.REQFRIEND) {
tools.setRequestFriendship($q, username, dest, value)
} else if (cmd === shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS) {

View File

@@ -81,6 +81,7 @@ export const DefaultUser: IUserFields = {
last_circuitpath: '',
lastdate_reqRis: tools.getLastDateReadReset(),
manage_mygroups: [],
userstoverify: [],
asked_friends: [],
asked_groups: [],
refused_groups: [],
@@ -155,6 +156,7 @@ export const DefaultProfile: IUserProfile = {
mycircuits: [],
last_circuitpath: '',
manage_mygroups: [],
userstoverify: [],
asked_friends: [],
asked_groups: [],
refused_groups: [],
@@ -315,6 +317,16 @@ export const useUserStore = defineStore('UserStore', {
}
},
getUsersToVerify(): any[] {
try {
const arr: any = this.my.profile.userstoverify
return arr
} catch (e) {
return []
}
},
hoContiComunitariDaAmministrare(): boolean {
try {
const arr: any = this.my.profile.manage_mygroups.filter((group: IMyGroup) => (group.mycircuits!.length > 0))

View File

@@ -44,7 +44,11 @@ export default defineComponent({
const $q = useQuasar()
const { t } = useI18n()
const showonlymine = ref(true)
const showwhommov = ref(1)
const optionsmov = [
{ label: t('movement.onlymymov'), value: 1 },
{ label: t('movement.allmov'), value: 2 },
]
const tabellare = ref(false)
const groupsListAdmin = ref(<IMyGroup[]>[])
const groupnameSel = ref(<any>null)
@@ -358,6 +362,7 @@ export default defineComponent({
username: 1,
name: 1,
surname: 1,
verified_by_aportador: 1,
lang: 1,
'profile.img': 1,
'profile.mycircuits': 1,
@@ -420,7 +425,7 @@ export default defineComponent({
}
const extraparams_movs = (() => {
if (showonlymine.value) {
if (showwhommov.value === 1) {
return {
querytype: shared_consts.QUERYTYPE_LIST_MOVEMENTS,
myid: circuit.value ? circuit.value._id : '',
@@ -526,7 +531,7 @@ export default defineComponent({
circuitStore,
qtarem,
saldo,
showonlymine,
showwhommov,
tabellare,
showsaldi,
filterextra_group,
@@ -544,6 +549,7 @@ export default defineComponent({
loadAccount,
aggiornaSaldo,
loadSaldo,
optionsmov,
}
}
})

View File

@@ -144,12 +144,13 @@
v-close-popup
></q-btn>
</q-bar>
<q-card-section class="inset-shadow">
<q-toggle
v-model="showonlymine"
:label="t('movement.onlymymov')"
></q-toggle>
<q-toggle v-model="tabellare" label="Tabella"></q-toggle>
<q-card-section class="q-px-xs inset-shadow">
<q-option-group
v-model="showwhommov"
:options="optionsmov"
color="primary"
/>
<q-toggle v-model="tabellare" label="Formato Tabella"></q-toggle>
<CGridTableRec
v-if="tabellare && !loading"
@@ -334,8 +335,6 @@
><br />
</q-banner>
<div class="centermydiv q-mt-md">
<q-btn
v-if="
@@ -946,9 +945,9 @@
date: tools.getstrDateYY(circuit.date_updated),
})
}}</span>
<br>
<br />
</div>
<br>
<br />
</q-card>
</q-tab-panel>

View File

@@ -82,6 +82,7 @@ export default defineComponent({
username: 1,
name: 1,
surname: 1,
verified_by_aportador: 1,
'profile.handshake': 1,
'profile.img': 1,
'profile.mygroups': 1,