- Aggiornato grafica Pagina Gruppi
- Lista Utenti appartenenti al gruppo - Lista richieste gruppo - Nome e Cognome tolti
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
|
|||||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||||
MONGODB_HOST="http://192.168.0.200:3000"
|
MONGODB_HOST="http://192.168.0.200:3000"
|
||||||
LOGO_REG='insiemesipuo-logo-full.png'
|
LOGO_REG="freeplanet-logo-full.svg"
|
||||||
TEST_NAME="Paolo"
|
TEST_NAME="Paolo"
|
||||||
TEST_SURNAME="Arena"
|
TEST_SURNAME="Arena"
|
||||||
TEST_EMAIL="paolo@freeplanet.app"
|
TEST_EMAIL="paolo@freeplanet.app"
|
||||||
|
|||||||
@@ -3,16 +3,16 @@ SERVICE_WORKER_FILE="service-worker.js"
|
|||||||
APP_ID="1"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
DIRECTORY_SERVER=freeplanet_serverside
|
DIRECTORY_SERVER=freeplanet_serverside
|
||||||
SERVERDIR_WEBSITE=www.insiemesipuo.app
|
SERVERDIR_WEBSITE=www.freeplanet.app
|
||||||
SERVERPW_WEBSITE=pwdadmin@1AOK
|
SERVERPW_WEBSITE=pwdadmin@1AOK
|
||||||
APP_URL="https://www.insiemesipuo.app"
|
APP_URL="https://www.freeplanet.app"
|
||||||
URL_FACEBOOK=""
|
URL_FACEBOOK="https://www.facebook.com/freeplanetapp"
|
||||||
PROVA_PAOLO=""
|
PROVA_PAOLO="PROVA ENV FUNZIONA!"
|
||||||
LANG_DEFAULT="it"
|
LANG_DEFAULT="it"
|
||||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||||
MONGODB_HOST="https://www.freeplanet.app:3000"
|
MONGODB_HOST="https://www.freeplanet.app:3000"
|
||||||
LOGO_REG='insiemesipuo-logo-full.png'
|
LOGO_REG='freeplanet-logo-full.svg'
|
||||||
TEST_NAME=""
|
TEST_NAME=""
|
||||||
TEST_SURNAME=""
|
TEST_SURNAME=""
|
||||||
TEST_EMAIL=""
|
TEST_EMAIL=""
|
||||||
@@ -22,7 +22,7 @@ TEST_APORTADOR="------"
|
|||||||
PUBLICKEY_PUSH="BNM-cEpTbPVc_ujXf3QOC8ggf7b-X44P44esfJUWqNOFq1XhWCoZJpOi71_cbXC5SnfO9HassQ6OouAYgtBA9Pw"
|
PUBLICKEY_PUSH="BNM-cEpTbPVc_ujXf3QOC8ggf7b-X44P44esfJUWqNOFq1XhWCoZJpOi71_cbXC5SnfO9HassQ6OouAYgtBA9Pw"
|
||||||
IN_CONSTRUCTION="1"
|
IN_CONSTRUCTION="1"
|
||||||
DEBUG="1"
|
DEBUG="1"
|
||||||
TELEGRAM_SUPPORT="https://t.me/"
|
TELEGRAM_SUPPORT="https://t.me/freeplanet_supporto"
|
||||||
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||||
TEST_CELL=""
|
TEST_CELL=""
|
||||||
ISTEST=0
|
ISTEST=0
|
||||||
|
|||||||
12
.env.test
@@ -3,21 +3,21 @@ SERVICE_WORKER_FILE="service-worker.js"
|
|||||||
APP_ID="1"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
DIRECTORY_SERVER=test.freeplanet_serverside
|
DIRECTORY_SERVER=test.freeplanet_serverside
|
||||||
SERVERDIR_WEBSITE="test.insiemesipuo.app"
|
SERVERDIR_WEBSITE="test.freeplanet.app"
|
||||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
APP_URL="https://test.insiemesipuo.app"
|
APP_URL="https://test.freeplanet.app"
|
||||||
URL_FACEBOOK=""
|
URL_FACEBOOK="https://www.facebook.com/freeplanetapp"
|
||||||
PROVA_PAOLO=""
|
PROVA_PAOLO="PROVA ENV FUNZIONA!"
|
||||||
LANG_DEFAULT="it"
|
LANG_DEFAULT="it"
|
||||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||||
MONGODB_HOST="https://test.freeplanet.app:3001"
|
MONGODB_HOST="https://test.freeplanet.app:3001"
|
||||||
LOGO_REG='insiemesipuo-logo-full.png'
|
LOGO_REG="freeplanet-logo-full.svg"
|
||||||
TEST_NAME="Paolo"
|
TEST_NAME="Paolo"
|
||||||
TEST_SURNAME="Arena"
|
TEST_SURNAME="Arena"
|
||||||
TEST_EMAIL="paolo@freeplanet.app"
|
TEST_EMAIL="paolo@freeplanet.app"
|
||||||
TEST_USERNAME="paoloar77"
|
TEST_USERNAME="paoloar77"
|
||||||
TEST_PASSWORD=""
|
TEST_PASSWORD="passpao1fr@1A"
|
||||||
TEST_APORTADOR=""
|
TEST_APORTADOR=""
|
||||||
PUBLICKEY_PUSH="BNRBtL3iaLVGW-aQckwQBmh5uKKzcizOZsMjnzCtSuHkssEhbyioEN2E_CwItDLDShMO-OQ1uhK51ty6zG_gCT8"
|
PUBLICKEY_PUSH="BNRBtL3iaLVGW-aQckwQBmh5uKKzcizOZsMjnzCtSuHkssEhbyioEN2E_CwItDLDShMO-OQ1uhK51ty6zG_gCT8"
|
||||||
IN_CONSTRUCTION="0"
|
IN_CONSTRUCTION="0"
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ const functionality: IFunctionality = {
|
|||||||
BOOKING_EVENTS: true,
|
BOOKING_EVENTS: true,
|
||||||
ENABLE_ECOMMERCE: false,
|
ENABLE_ECOMMERCE: false,
|
||||||
ENABLE_REG_ISP: true,
|
ENABLE_REG_ISP: true,
|
||||||
|
SHOW_NAMESURNAME: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
// const SHOW_PROJINTHEMENU = false
|
// const SHOW_PROJINTHEMENU = false
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
|
|||||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||||
MONGODB_HOST="http://192.168.0.200:3000"
|
MONGODB_HOST="http://192.168.0.200:3000"
|
||||||
LOGO_REG="freeplanet-logo-full.svg"
|
LOGO_REG='insiemesipuo-logo-full.png'
|
||||||
TEST_NAME="Paolo"
|
TEST_NAME="Paolo"
|
||||||
TEST_SURNAME="Arena"
|
TEST_SURNAME="Arena"
|
||||||
TEST_EMAIL="paolo@freeplanet.app"
|
TEST_EMAIL="paolo@freeplanet.app"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
|
|||||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||||
MONGODB_HOST="https://test.freeplanet.app:3001"
|
MONGODB_HOST="https://test.freeplanet.app:3001"
|
||||||
LOGO_REG="freeplanet-logo-full.svg"
|
LOGO_REG='insiemesipuo-logo-full.png'
|
||||||
TEST_NAME="Paolo"
|
TEST_NAME="Paolo"
|
||||||
TEST_SURNAME="Arena"
|
TEST_SURNAME="Arena"
|
||||||
TEST_EMAIL="paolo@freeplanet.app"
|
TEST_EMAIL="paolo@freeplanet.app"
|
||||||
|
|||||||
448
_ALL_SITES/insiemesipuo.app/db/data/popolazione.js
Normal file
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_enUs = {
|
const msg_website_enUs = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'Comunità Nuovo Mondo',
|
sitename: 'InsiemeSuPuò',
|
||||||
siteshortname: 'CNM',
|
siteshortname: 'InsiemeSuPuò',
|
||||||
botname: 'CNM BOT',
|
botname: 'InsiemeSuPuò BOT',
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
home: 'Home',
|
home: 'Home',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_es = {
|
const msg_website_es = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'AYNI',
|
sitename: 'InsiemeSuPuò',
|
||||||
siteshortname: 'Ayni',
|
siteshortname: 'InsiemeSuPuò',
|
||||||
botname: 'AYNI BOT',
|
botname: 'InsiemeSuPuò BOT',
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
home: 'Home',
|
home: 'Home',
|
||||||
@@ -19,6 +19,7 @@ const msg_website_es = {
|
|||||||
status: 'Estadísticas',
|
status: 'Estadísticas',
|
||||||
nextzoom: 'Conferencias',
|
nextzoom: 'Conferencias',
|
||||||
requestresetpwd: 'Solicitud de restablecimiento de contraseña',
|
requestresetpwd: 'Solicitud de restablecimiento de contraseña',
|
||||||
|
calendarioeventi: 'Calendario Eventos',
|
||||||
vreg: 'Verifica Reg',
|
vreg: 'Verifica Reg',
|
||||||
dashboard: 'Tablero',
|
dashboard: 'Tablero',
|
||||||
statoattuale: 'Estado Actual',
|
statoattuale: 'Estado Actual',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_fr = {
|
const msg_website_fr = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'AYNI',
|
sitename: 'InsiemeSuPuò',
|
||||||
siteshortname: 'Ayni',
|
siteshortname: 'InsiemeSuPuò',
|
||||||
botname: 'AYNI BOT',
|
botname: 'InsiemeSuPuò BOT',
|
||||||
},
|
},
|
||||||
homepage: {
|
homepage: {
|
||||||
titlecontatti: 'CONTACTS',
|
titlecontatti: 'CONTACTS',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_it = {
|
const msg_website_it = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'FreePlanet',
|
sitename: 'InsiemeSuPuò',
|
||||||
siteshortname: 'FreePlanet',
|
siteshortname: 'InsiemeSuPuò',
|
||||||
botname: 'il Bot di FreePlanet',
|
botname: 'il Bot di InsiemeSuPuò',
|
||||||
},
|
},
|
||||||
products: {
|
products: {
|
||||||
quantity: 'Quantità',
|
quantity: 'Quantità',
|
||||||
@@ -128,8 +128,8 @@ const msg_website_it = {
|
|||||||
color: 'Colore',
|
color: 'Colore',
|
||||||
},
|
},
|
||||||
msg: {
|
msg: {
|
||||||
myAppName: 'FreePlanet',
|
myAppName: 'InsiemeSiPuò',
|
||||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito e senza Pubblicità',
|
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||||
underconstruction: 'App in costruzione...',
|
underconstruction: 'App in costruzione...',
|
||||||
myDescriz: '',
|
myDescriz: '',
|
||||||
sottoTitoloApp: 'Il primo Vero Social',
|
sottoTitoloApp: 'Il primo Vero Social',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_pt = {
|
const msg_website_pt = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'CNM',
|
sitename: 'InsiemeSuPuò',
|
||||||
siteshortname: 'CNM',
|
siteshortname: 'InsiemeSuPuò',
|
||||||
botname: 'CNM BOT',
|
botname: 'InsiemeSuPuò BOT',
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
home: 'Home',
|
home: 'Home',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_si = {
|
const msg_website_si = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'AYNI',
|
sitename: 'InsiemeSuPuò',
|
||||||
siteshortname: 'Ayni',
|
siteshortname: 'InsiemeSuPuò',
|
||||||
botname: 'AYNI BOT',
|
botname: 'InsiemeSuPuò BOT',
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
home: 'Domača stran',
|
home: 'Domača stran',
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ const functionality: IFunctionality = {
|
|||||||
BOOKING_EVENTS: true,
|
BOOKING_EVENTS: true,
|
||||||
ENABLE_ECOMMERCE: false,
|
ENABLE_ECOMMERCE: false,
|
||||||
ENABLE_REG_ISP: true,
|
ENABLE_REG_ISP: true,
|
||||||
|
ENABLE_GROUPS: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
// const SHOW_PROJINTHEMENU = false
|
// const SHOW_PROJINTHEMENU = false
|
||||||
@@ -422,6 +423,17 @@ const baseroutes: IListRoutes[] = [
|
|||||||
inmenu: true,
|
inmenu: true,
|
||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
active: functionality.ENABLE_GROUPS,
|
||||||
|
order: 132,
|
||||||
|
path: '/groups',
|
||||||
|
materialIcon: 'fas fa-users',
|
||||||
|
name: 'mypages.groups',
|
||||||
|
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||||
|
meta: { requiresAuth: true },
|
||||||
|
inmenu: true,
|
||||||
|
infooter: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 135,
|
order: 135,
|
||||||
@@ -433,6 +445,17 @@ const baseroutes: IListRoutes[] = [
|
|||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
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 },
|
||||||
|
inmenu: false,
|
||||||
|
infooter: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 130,
|
order: 130,
|
||||||
|
|||||||
BIN
_ALL_SITES/insiemesipuo.app/images/android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
@@ -293,12 +293,22 @@ module.exports = configure((ctx) => ({
|
|||||||
theme_color: '#027be3',
|
theme_color: '#027be3',
|
||||||
icons: [
|
icons: [
|
||||||
{
|
{
|
||||||
src: 'images/android-chrome-192x192.png',
|
src: 'images/isp-android-icon-96x96.png',
|
||||||
sizes: '384x384',
|
sizes: '96x96',
|
||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: 'images/android-chrome-512x512.png',
|
src: 'images/isp-android-icon-144x144.png',
|
||||||
|
sizes: '144x144',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/isp-android-icon-192x192.png',
|
||||||
|
sizes: '192x192',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/isp-android-icon-512x512.png',
|
||||||
sizes: '512x512',
|
sizes: '512x512',
|
||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
@@ -336,7 +346,7 @@ module.exports = configure((ctx) => ({
|
|||||||
builder: {
|
builder: {
|
||||||
// https://www.electron.build/configuration/configuration
|
// https://www.electron.build/configuration/configuration
|
||||||
|
|
||||||
appId: 'firstproj',
|
appId: 'InsiemeSiPuo',
|
||||||
},
|
},
|
||||||
|
|
||||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ const msg_website_es = {
|
|||||||
nave: 'Nave',
|
nave: 'Nave',
|
||||||
testimonial: 'Opiniones',
|
testimonial: 'Opiniones',
|
||||||
Test: 'Test',
|
Test: 'Test',
|
||||||
|
chisiamo: 'Chi Siamo',
|
||||||
|
linkamici: 'Link Amici',
|
||||||
|
dovesiamo: 'Dove Siamo',
|
||||||
|
calendarioeventi: 'Calendario Eventi',
|
||||||
Category: 'Categorie',
|
Category: 'Categorie',
|
||||||
Admin: 'Admin',
|
Admin: 'Admin',
|
||||||
Test1: 'Test1',
|
Test1: 'Test1',
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ const functionality: IFunctionality = {
|
|||||||
BOOKING_EVENTS: true,
|
BOOKING_EVENTS: true,
|
||||||
ENABLE_ECOMMERCE: false,
|
ENABLE_ECOMMERCE: false,
|
||||||
ENABLE_REG_ISP: true,
|
ENABLE_REG_ISP: true,
|
||||||
|
ENABLE_GROUPS: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
// const SHOW_PROJINTHEMENU = false
|
// const SHOW_PROJINTHEMENU = false
|
||||||
@@ -422,6 +423,17 @@ const baseroutes: IListRoutes[] = [
|
|||||||
inmenu: true,
|
inmenu: true,
|
||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
active: functionality.ENABLE_GROUPS,
|
||||||
|
order: 132,
|
||||||
|
path: '/groups',
|
||||||
|
materialIcon: 'fas fa-users',
|
||||||
|
name: 'mypages.groups',
|
||||||
|
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||||
|
meta: { requiresAuth: true },
|
||||||
|
inmenu: true,
|
||||||
|
infooter: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 135,
|
order: 135,
|
||||||
@@ -433,6 +445,17 @@ const baseroutes: IListRoutes[] = [
|
|||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
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 },
|
||||||
|
inmenu: false,
|
||||||
|
infooter: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 130,
|
order: 130,
|
||||||
@@ -559,7 +582,7 @@ const baseroutes: IListRoutes[] = [
|
|||||||
isseparator: true,
|
isseparator: true,
|
||||||
inmenu: true,
|
inmenu: true,
|
||||||
},
|
},
|
||||||
/*{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 80,
|
order: 80,
|
||||||
path: '/calendario-eventi',
|
path: '/calendario-eventi',
|
||||||
@@ -569,7 +592,7 @@ const baseroutes: IListRoutes[] = [
|
|||||||
extraclass: 'isCalendar',
|
extraclass: 'isCalendar',
|
||||||
inmenu: true,
|
inmenu: true,
|
||||||
infooter: true
|
infooter: true
|
||||||
},*/
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 1000,
|
order: 1000,
|
||||||
|
|||||||
|
After Width: | Height: | Size: 86 KiB |
BIN
_ALL_SITES/popolodelnuovomondo.app/images/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
_ALL_SITES/popolodelnuovomondo.app/images/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
_ALL_SITES/popolodelnuovomondo.app/images/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 74 KiB |
@@ -294,12 +294,22 @@ module.exports = configure((ctx) => ({
|
|||||||
theme_color: '#027be3',
|
theme_color: '#027be3',
|
||||||
icons: [
|
icons: [
|
||||||
{
|
{
|
||||||
src: 'images/android-chrome-192x192.png',
|
src: 'images/pdnm-android-icon-96x96.png',
|
||||||
sizes: '384x384',
|
sizes: '96x96',
|
||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: 'images/android-chrome-512x512.png',
|
src: 'images/pdnm-android-icon-144x144.png',
|
||||||
|
sizes: '144x144',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/pdnm-android-icon-192x192.png',
|
||||||
|
sizes: '192x192',
|
||||||
|
type: 'image/png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'images/pdnm-android-icon-512x512.png',
|
||||||
sizes: '512x512',
|
sizes: '512x512',
|
||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -18,5 +18,6 @@ else
|
|||||||
cp -R _ALL_SITES/$site/.env.development .
|
cp -R _ALL_SITES/$site/.env.development .
|
||||||
cp -R _ALL_SITES/$site/.env.production .
|
cp -R _ALL_SITES/$site/.env.production .
|
||||||
cp -R _ALL_SITES/$site/.env.test .
|
cp -R _ALL_SITES/$site/.env.test .
|
||||||
|
cp -R _ALL_SITES/$site/images/ ./public/images/
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "insiemesipuo",
|
"name": "freeplanet",
|
||||||
"version": "0.1.0",
|
"version": "0.0.7",
|
||||||
"description": "Insieme Si Puo",
|
"description": "FreePlanet",
|
||||||
"productName": "Insieme Si Puo",
|
"productName": "FreePlanet",
|
||||||
"author": "Paolo Arena",
|
"author": "Paolo Arena",
|
||||||
"private": true,
|
"private": true,
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
BIN
public/images/android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/pdnm-android-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
public/images/pdnm-android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
public/images/pdnm-android-icon-48x48.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
public/images/pdnm-android-icon-96x96.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
public/images/pdnm-apple-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/images/pdnm-apple-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
public/images/pdnm-apple-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
public/images/pdnm-apple-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
public/images/pdnm-apple-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
public/images/pdnm-logo.jpg
Normal file
|
After Width: | Height: | Size: 68 KiB |
@@ -284,31 +284,21 @@ module.exports = configure((ctx) => ({
|
|||||||
},
|
},
|
||||||
|
|
||||||
manifest: {
|
manifest: {
|
||||||
name: 'InsiemeSiPuo',
|
name: 'FreePlanet',
|
||||||
short_name: 'InsiemeSiPuo',
|
short_name: 'FreePlanet',
|
||||||
description: 'Insieme Si Può',
|
description: 'New Free Social',
|
||||||
display: 'standalone',
|
display: 'standalone',
|
||||||
orientation: 'portrait',
|
orientation: 'portrait',
|
||||||
background_color: '#ffffff',
|
background_color: '#ffffff',
|
||||||
theme_color: '#027be3',
|
theme_color: '#027be3',
|
||||||
icons: [
|
icons: [
|
||||||
{
|
{
|
||||||
src: 'images/isp-android-icon-96x96.png',
|
src: 'images/android-chrome-192x192.png',
|
||||||
sizes: '96x96',
|
sizes: '384x384',
|
||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: 'images/isp-android-icon-144x144.png',
|
src: 'images/android-chrome-512x512.png',
|
||||||
sizes: '144x144',
|
|
||||||
type: 'image/png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: 'images/isp-android-icon-192x192.png',
|
|
||||||
sizes: '192x192',
|
|
||||||
type: 'image/png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: 'images/isp-android-icon-512x512.png',
|
|
||||||
sizes: '512x512',
|
sizes: '512x512',
|
||||||
type: 'image/png',
|
type: 'image/png',
|
||||||
},
|
},
|
||||||
@@ -346,7 +336,7 @@ module.exports = configure((ctx) => ({
|
|||||||
builder: {
|
builder: {
|
||||||
// https://www.electron.build/configuration/configuration
|
// https://www.electron.build/configuration/configuration
|
||||||
|
|
||||||
appId: 'InsiemeSiPuo',
|
appId: 'firstproj',
|
||||||
},
|
},
|
||||||
|
|
||||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
QUERYTYPE_MYGROUP: 1,
|
||||||
|
|
||||||
ALL_SAW_AND_ACCEPTED: 3,
|
ALL_SAW_AND_ACCEPTED: 3,
|
||||||
|
|
||||||
FILTER_EXTRALIST_NOT_REGISTERED: 1,
|
FILTER_EXTRALIST_NOT_REGISTERED: 1,
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export default defineComponent({
|
|||||||
myval = searchList.value.find((rec) => (rec.table === 'sectors'))
|
myval = searchList.value.find((rec) => (rec.table === 'sectors'))
|
||||||
if (myval) {
|
if (myval) {
|
||||||
const ris = myval.value || 0
|
const ris = myval.value || 0
|
||||||
// console.log('idSector=', ris)
|
console.log('idSector=', ris)
|
||||||
return ris
|
return ris
|
||||||
} else {
|
} else {
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -208,6 +208,7 @@ export default defineComponent({
|
|||||||
const newRecordBool = ref(false)
|
const newRecordBool = ref(false)
|
||||||
const editRecordBool = ref(false)
|
const editRecordBool = ref(false)
|
||||||
const newRecord: any = ref({})
|
const newRecord: any = ref({})
|
||||||
|
const recSaved: any = ref({})
|
||||||
const recModif: any = ref({})
|
const recModif: any = ref({})
|
||||||
|
|
||||||
const mytable = ref('')
|
const mytable = ref('')
|
||||||
@@ -945,6 +946,7 @@ export default defineComponent({
|
|||||||
console.log('Edit', item)
|
console.log('Edit', item)
|
||||||
selItem(item, col)
|
selItem(item, col)
|
||||||
recModif.value = item
|
recModif.value = item
|
||||||
|
recSaved.value = {...item}
|
||||||
editRecordBool.value = true
|
editRecordBool.value = true
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@@ -1243,6 +1245,16 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function cancelrecModif() {
|
||||||
|
recModif.value = {...recSaved.value}
|
||||||
|
if (recModif.value._id) {
|
||||||
|
const indrec = serverData.value.findIndex((rec: any) => rec._id === recModif.value._id)
|
||||||
|
if (indrec >= 0)
|
||||||
|
serverData.value[indrec] = recModif.value
|
||||||
|
editRecordBool.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function saverecModif() {
|
async function saverecModif() {
|
||||||
console.log('saverecModif')
|
console.log('saverecModif')
|
||||||
const mydata = {
|
const mydata = {
|
||||||
@@ -1259,7 +1271,7 @@ export default defineComponent({
|
|||||||
// console.log('ris', ris)
|
// console.log('ris', ris)
|
||||||
if (ris) {
|
if (ris) {
|
||||||
editRecordBool.value = false
|
editRecordBool.value = false
|
||||||
const indrec = serverData.value.findIndex((rec: IMySkill) => rec._id === ris._id)
|
const indrec = serverData.value.findIndex((rec: any) => rec._id === ris._id)
|
||||||
console.log('indrec', indrec, serverData.value[indrec])
|
console.log('indrec', indrec, serverData.value[indrec])
|
||||||
mycolumns.value.forEach((col: IColGridTable) => {
|
mycolumns.value.forEach((col: IColGridTable) => {
|
||||||
if (!col.foredit) {
|
if (!col.foredit) {
|
||||||
@@ -1347,6 +1359,7 @@ export default defineComponent({
|
|||||||
getusernamesel,
|
getusernamesel,
|
||||||
saveNewRecord,
|
saveNewRecord,
|
||||||
saverecModif,
|
saverecModif,
|
||||||
|
cancelrecModif,
|
||||||
hidewindow,
|
hidewindow,
|
||||||
isfinishLoading,
|
isfinishLoading,
|
||||||
getlabelAddRow,
|
getlabelAddRow,
|
||||||
@@ -1372,6 +1385,7 @@ export default defineComponent({
|
|||||||
editRecordBool,
|
editRecordBool,
|
||||||
newRecord,
|
newRecord,
|
||||||
recModif,
|
recModif,
|
||||||
|
recSaved,
|
||||||
lists,
|
lists,
|
||||||
refresh,
|
refresh,
|
||||||
spinner_visible,
|
spinner_visible,
|
||||||
|
|||||||
@@ -120,6 +120,7 @@
|
|||||||
:optval="fieldsTable.getKeyByTable(item.table)"
|
:optval="fieldsTable.getKeyByTable(item.table)"
|
||||||
:optlab="fieldsTable.getLabelByTable(item.table)"
|
:optlab="fieldsTable.getLabelByTable(item.table)"
|
||||||
:options="valoriopt(item, false)"
|
:options="valoriopt(item, false)"
|
||||||
|
:filter="item.filter"
|
||||||
:useinput="item.useinput && item.type !== costanti.FieldType.select_by_server">
|
:useinput="item.useinput && item.type !== costanti.FieldType.select_by_server">
|
||||||
</CMySelect>
|
</CMySelect>
|
||||||
|
|
||||||
@@ -144,6 +145,7 @@
|
|||||||
:icon_alternative="item.icon"
|
:icon_alternative="item.icon"
|
||||||
:optval="fieldsTable.getKeyByTable(item.table)"
|
:optval="fieldsTable.getKeyByTable(item.table)"
|
||||||
:optlab="fieldsTable.getLabelByTable(item.table)"
|
:optlab="fieldsTable.getLabelByTable(item.table)"
|
||||||
|
:filter="item.filter"
|
||||||
:options="valoriopt(item, false)"
|
:options="valoriopt(item, false)"
|
||||||
:useinput="true">
|
:useinput="true">
|
||||||
</CMySelect>
|
</CMySelect>
|
||||||
@@ -164,6 +166,7 @@
|
|||||||
stack-label
|
stack-label
|
||||||
:useinput="item.useinput"
|
:useinput="item.useinput"
|
||||||
:options="valoriopt(item, item.addall)"
|
:options="valoriopt(item, item.addall)"
|
||||||
|
:filter="item.filter"
|
||||||
class="combowidth"
|
class="combowidth"
|
||||||
:option-value="fieldsTable.getKeyByTable(item.table)"
|
:option-value="fieldsTable.getKeyByTable(item.table)"
|
||||||
>
|
>
|
||||||
@@ -513,7 +516,7 @@
|
|||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="center">
|
<q-card-actions align="center">
|
||||||
<q-btn flat :label="$t('dialog.ok')" color="primary" @click="saverecModif"></q-btn>
|
<q-btn flat :label="$t('dialog.ok')" color="primary" @click="saverecModif"></q-btn>
|
||||||
<q-btn flat :label="$t('dialog.cancel')" color="primary" v-close-popup></q-btn>
|
<q-btn flat :label="$t('dialog.cancel')" color="primary" @click="cancelrecModif"></q-btn>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export default defineComponent({
|
|||||||
required: false,
|
required: false,
|
||||||
},
|
},
|
||||||
optlab: {
|
optlab: {
|
||||||
type: String,
|
type: [String, Function],
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
optval: {
|
optval: {
|
||||||
@@ -111,7 +111,7 @@ export default defineComponent({
|
|||||||
if (mydata.label)
|
if (mydata.label)
|
||||||
mydata.label = mydata.label[0]
|
mydata.label = mydata.label[0]
|
||||||
} else {
|
} else {
|
||||||
mydata.label = rec[props.optlab]
|
mydata.label = tools.getValueByFunzOrVal(rec, props.optlab)
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log('mydata.label', mydata.label)
|
// console.log('mydata.label', mydata.label)
|
||||||
@@ -141,7 +141,7 @@ export default defineComponent({
|
|||||||
if (mydata.label)
|
if (mydata.label)
|
||||||
mydata.label = mydata.label[0]
|
mydata.label = mydata.label[0]
|
||||||
} else {
|
} else {
|
||||||
mydata.label = rec[props.optlab]
|
mydata.label = tools.getValueByFunzOrVal(rec, props.optlab)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (props.opticon)
|
if (props.opticon)
|
||||||
@@ -155,7 +155,7 @@ export default defineComponent({
|
|||||||
} else {
|
} else {
|
||||||
if (tools.isBitActive(myval.value, rec[props.optval])) {
|
if (tools.isBitActive(myval.value, rec[props.optval])) {
|
||||||
const mydata = {
|
const mydata = {
|
||||||
label: t(rec[props.optlab]),
|
label: t(tools.getValueByFunzOrVal(rec, props.optlab)),
|
||||||
value: rec[props.optval],
|
value: rec[props.optval],
|
||||||
valbool: tools.isBitActive(myval.value, rec[props.optval]),
|
valbool: tools.isBitActive(myval.value, rec[props.optval]),
|
||||||
icon: '',
|
icon: '',
|
||||||
|
|||||||
@@ -37,7 +37,9 @@ export default defineComponent({
|
|||||||
setup(props, { emit }) {
|
setup(props, { emit }) {
|
||||||
const $q = useQuasar()
|
const $q = useQuasar()
|
||||||
|
|
||||||
const editor = ref(null)
|
const editorRef = ref(<any>null)
|
||||||
|
const editor = ref('')
|
||||||
|
|
||||||
//const myvalue = toRef(props, 'value')
|
//const myvalue = toRef(props, 'value')
|
||||||
const myvalue = ref('')
|
const myvalue = ref('')
|
||||||
const mycolor = ref('')
|
const mycolor = ref('')
|
||||||
@@ -58,7 +60,8 @@ export default defineComponent({
|
|||||||
const toolbarcomp = ref([
|
const toolbarcomp = ref([
|
||||||
['left', 'center', 'right', 'justify'],
|
['left', 'center', 'right', 'justify'],
|
||||||
['bold', 'italic', 'underline', 'strike'],
|
['bold', 'italic', 'underline', 'strike'],
|
||||||
[
|
['token', 'hr', 'link', 'custom_btn'],
|
||||||
|
['print', 'fullscreen'], [
|
||||||
{
|
{
|
||||||
label: $q.lang.editor.formatting,
|
label: $q.lang.editor.formatting,
|
||||||
icon: $q.iconSet.editor.formatting,
|
icon: $q.iconSet.editor.formatting,
|
||||||
@@ -112,7 +115,7 @@ export default defineComponent({
|
|||||||
])
|
])
|
||||||
|
|
||||||
function changeval(newval: any) {
|
function changeval(newval: any) {
|
||||||
console.log('myEditor: changeval', newval)
|
// console.log('myEditor: changeval', newval)
|
||||||
emit('update:value', newval)
|
emit('update:value', newval)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,6 +174,29 @@ export default defineComponent({
|
|||||||
myvalue.value = props.value
|
myvalue.value = props.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onPaste (evt: any) {
|
||||||
|
// Let inputs do their thing, so we don't break pasting of links.
|
||||||
|
if (evt.target.nodeName === 'INPUT') return
|
||||||
|
let text, onPasteStripFormattingIEPaste
|
||||||
|
evt.preventDefault()
|
||||||
|
evt.stopPropagation()
|
||||||
|
if (evt.originalEvent && evt.originalEvent.clipboardData.getData) {
|
||||||
|
text = evt.originalEvent.clipboardData.getData('text/plain')
|
||||||
|
editorRef.value.runCmd('insertText', text)
|
||||||
|
}
|
||||||
|
else if (evt.clipboardData && evt.clipboardData.getData) {
|
||||||
|
text = evt.clipboardData.getData('text/plain')
|
||||||
|
editorRef.value.runCmd('insertText', text)
|
||||||
|
}
|
||||||
|
/*else if (ClipboardEvent.clipboardData && ClipboardEvent.clipboardData.getData) {
|
||||||
|
if (!onPasteStripFormattingIEPaste) {
|
||||||
|
onPasteStripFormattingIEPaste = true
|
||||||
|
editorRef.value.runCmd('ms-pasteTextOnly', text)
|
||||||
|
}
|
||||||
|
onPasteStripFormattingIEPaste = false
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(mounted)
|
onMounted(mounted)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -185,6 +211,8 @@ export default defineComponent({
|
|||||||
setcolor,
|
setcolor,
|
||||||
pasteCapture,
|
pasteCapture,
|
||||||
tools,
|
tools,
|
||||||
|
onPaste,
|
||||||
|
editorRef,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
|
|
||||||
<q-editor
|
<q-editor
|
||||||
ref="editor"
|
ref="editorRef"
|
||||||
content-class="wrap_anywhere"
|
content-class="wrap_anywhere"
|
||||||
toolbar-text-color="white"
|
toolbar-text-color="white"
|
||||||
toolbar-toggle-color="yellow-8"
|
toolbar-toggle-color="yellow-8"
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
:toolbar="toolbarcomp"
|
:toolbar="toolbarcomp"
|
||||||
:fonts="myfonts"
|
:fonts="myfonts"
|
||||||
@update:model-value="changeval"
|
@update:model-value="changeval"
|
||||||
@paste="evt => pasteCapture(evt)"
|
@paste="onPaste"
|
||||||
@keyup.enter.stop
|
@keyup.enter.stop
|
||||||
v-model="myvalue">
|
v-model="myvalue">
|
||||||
</q-editor>
|
</q-editor>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<div v-if="visuElem()" class="row items-center justify-center q-gutter-md q-ma-xs">
|
<div v-if="visuElem()" class="row items-center justify-center q-ma-xs">
|
||||||
|
|
||||||
<div class="q-ma-xs">
|
<div class="q-ma-xs">
|
||||||
<q-field rounded outlined bg-color="blue-1" dense style="min-width:110px;">
|
<q-field rounded outlined bg-color="blue-1" dense style="min-width:110px;">
|
||||||
@@ -36,6 +36,8 @@
|
|||||||
:myimg="myimg"
|
:myimg="myimg"
|
||||||
:canModify="canModify"
|
:canModify="canModify"
|
||||||
:canEdit="canEdit"
|
:canEdit="canEdit"
|
||||||
|
:id="id"
|
||||||
|
:idmain="idmain"
|
||||||
:visulabel="true"
|
:visulabel="true"
|
||||||
:mycol="col"
|
:mycol="col"
|
||||||
:tablesel="tablesel"
|
:tablesel="tablesel"
|
||||||
@@ -47,6 +49,7 @@
|
|||||||
|
|
||||||
</CMyPopupEdit>
|
</CMyPopupEdit>
|
||||||
</div>
|
</div>
|
||||||
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -204,72 +204,12 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeFromMyFriends(usernameDest: string) {
|
|
||||||
$q.dialog({
|
|
||||||
message: t('db.domanda_removefriend', { username: usernameDest }),
|
|
||||||
ok: { label: t('dialog.yes'), push: true },
|
|
||||||
cancel: { label: t('dialog.cancel') },
|
|
||||||
title: t('db.domanda')
|
|
||||||
}).onOk(() => {
|
|
||||||
|
|
||||||
userStore.setFriendsCmd($q, t, username.value, usernameDest, shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS, null).then((res) => {
|
function setCmd($q: any, cmd: number, usernameDest: string, value: any, groupname: string) {
|
||||||
if (res) {
|
tools.setCmd($q, cmd, usernameDest, value, username.value)
|
||||||
userStore.my.profile.friends = userStore.my.profile.friends.filter((rec: IFriends) => rec.username !== usernameDest)
|
|
||||||
tools.showPositiveNotif($q, t('db.removedfriend'))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function refuseReqFriends(usernameDest: string) {
|
|
||||||
$q.dialog({
|
|
||||||
message: t('db.domanda_revoke_friend', { username: usernameDest }),
|
|
||||||
ok: { label: t('dialog.yes'), push: true },
|
|
||||||
cancel: { label: t('dialog.cancel') },
|
|
||||||
title: t('db.domanda')
|
|
||||||
}).onOk(() => {
|
|
||||||
|
|
||||||
userStore.setFriendsCmd($q, t, username.value, usernameDest, shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS, null).then((res) => {
|
|
||||||
if (res) {
|
|
||||||
userStore.my.profile.req_friends = userStore.my.profile.req_friends.filter((user: IFriends) => user.username !== usernameDest)
|
|
||||||
tools.showPositiveNotif($q, t('db.removedfriend'))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function blockUser(usernameDest: string) {
|
|
||||||
$q.dialog({
|
|
||||||
message: t('db.domanda_blockuser', { username: usernameDest }),
|
|
||||||
ok: { label: t('dialog.yes'), push: true },
|
|
||||||
cancel: { label: t('dialog.cancel') },
|
|
||||||
title: t('db.domanda')
|
|
||||||
}).onOk(() => {
|
|
||||||
userStore.setFriendsCmd($q, t, username.value, usernameDest, shared_consts.FRIENDSCMD.BLOCK_USER, null).then((res) => {
|
|
||||||
if (res) {
|
|
||||||
userStore.my.profile.friends = userStore.my.profile.friends.filter((rec: IFriends) => rec.username !== usernameDest)
|
|
||||||
tools.showPositiveNotif($q, t('db.blockedfriend'))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function setCmd(cmd: number, usernameDest: string, value: any = '') {
|
|
||||||
if (cmd === shared_consts.FRIENDSCMD.SETTRUST) {
|
if (cmd === shared_consts.FRIENDSCMD.SETTRUST) {
|
||||||
setRequestTrust(usernameDest, value)
|
setRequestTrust(usernameDest, value)
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS) {
|
|
||||||
removeFromMyFriends(usernameDest)
|
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.BLOCK_USER) {
|
|
||||||
blockUser(usernameDest)
|
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.SETFRIEND) {
|
|
||||||
tools.addToMyFriends($q, username.value, usernameDest)
|
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.REQFRIEND) {
|
|
||||||
tools.setRequestFriendship($q, username.value, usernameDest, value)
|
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.REFUSE_REQ_FRIEND) {
|
|
||||||
refuseReqFriends(usernameDest)
|
|
||||||
} else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_FRIEND) {
|
|
||||||
tools.cancelReqFriends($q, username.value, usernameDest)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ export default defineComponent({
|
|||||||
setCmd,
|
setCmd,
|
||||||
shared_consts,
|
shared_consts,
|
||||||
userStore,
|
userStore,
|
||||||
|
$q,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -19,12 +19,12 @@
|
|||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list style="min-width: 150px">
|
<q-list style="min-width: 150px">
|
||||||
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
@click="setCmd(shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUP, grp.groupname)">
|
@click="tools.setCmd($q, shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUP, myusername(), '', grp.groupname)">
|
||||||
<q-item-section>{{ $t('groups.remove_from_mygroups') }}</q-item-section>
|
<q-item-section>{{ $t('groups.remove_from_mygroups') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list style="min-width: 150px">
|
<q-list style="min-width: 150px">
|
||||||
<q-item clickable icon="fas fa-ban" v-close-popup @click="setCmd(shared_consts.GROUPSCMD.BLOCK_GROUP, grp.groupname)">
|
<q-item clickable icon="fas fa-ban" v-close-popup @click="tools.setCmd($q, shared_consts.GROUPSCMD.BLOCK_GROUP, myusername(), '', grp.groupname)">
|
||||||
<q-item-section>{{ $t('groups.block_group') }}</q-item-section>
|
<q-item-section>{{ $t('groups.block_group') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list style="min-width: 150px">
|
<q-list style="min-width: 150px">
|
||||||
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
@click="setCmd(shared_consts.GROUPSCMD.REQGROUP, grp.groupname, false)">
|
@click="tools.setCmd($q, shared_consts.GROUPSCMD.REQGROUP, myusername(), false, grp.groupname)">
|
||||||
<q-item-section>{{ $t('groups.reject_ask_group') }}</q-item-section>
|
<q-item-section>{{ $t('groups.reject_ask_group') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list style="min-width: 150px">
|
<q-list style="min-width: 150px">
|
||||||
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
@click="setCmd(shared_consts.GROUPSCMD.CANCEL_REQ_GROUP, grp.groupname)">
|
@click="tools.setCmd($q, shared_consts.GROUPSCMD.CANCEL_REQ_GROUP, myusername(), '', grp.groupname)">
|
||||||
<q-item-section>{{ $t('groups.cancel_ask_group') }}</q-item-section>
|
<q-item-section>{{ $t('groups.cancel_ask_group') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -65,17 +65,17 @@
|
|||||||
<q-btn rounded :icon="userStore.IsMyGroupByGroupname(grp.groupname) ? `fas fa-ellipsis-h` : `fas fa-user`">
|
<q-btn rounded :icon="userStore.IsMyGroupByGroupname(grp.groupname) ? `fas fa-ellipsis-h` : `fas fa-user`">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list v-if="(!userStore.IsMyGroupByGroupname(grp.groupname) && !userStore.IsAskedGroupByGroupname(grp.groupname))" style="min-width: 200px">
|
<q-list v-if="(!userStore.IsMyGroupByGroupname(grp.groupname) && !userStore.IsAskedGroupByGroupname(grp.groupname))" style="min-width: 200px">
|
||||||
<q-item clickable v-close-popup @click="setCmd(shared_consts.GROUPSCMD.REQGROUP, grp.groupname, true)">
|
<q-item clickable v-close-popup @click="tools.setCmd($q, shared_consts.GROUPSCMD.REQGROUP, myusername(), true, grp.groupname)">
|
||||||
<q-item-section>{{ $t('groups.ask_group') }}</q-item-section>
|
<q-item-section>{{ $t('groups.ask_group') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list v-else-if="(!userStore.IsMyGroupByGroupname(grp.groupname) && userStore.IsAskedGroupByGroupname(grp.groupname))" style="min-width: 200px">
|
<q-list v-else-if="(!userStore.IsMyGroupByGroupname(grp.groupname) && userStore.IsAskedGroupByGroupname(grp.groupname))" style="min-width: 200px">
|
||||||
<q-item clickable v-close-popup @click="setCmd(shared_consts.GROUPSCMD.REQGROUP, grp.groupname, false)">
|
<q-item clickable v-close-popup @click="tools.setCmd($q, shared_consts.GROUPSCMD.REQGROUP, myusername(), false, grp.groupname)">
|
||||||
<q-item-section>{{ $t('groups.cancel_ask_group') }}</q-item-section>
|
<q-item-section>{{ $t('groups.cancel_ask_group') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list v-else-if="userStore.IsMyGroupByGroupname(grp.groupname)" style="min-width: 200px">
|
<q-list v-else-if="userStore.IsMyGroupByGroupname(grp.groupname)" style="min-width: 200px">
|
||||||
<q-item clickable v-close-popup @click="setCmd(shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUPS, grp.groupname)">
|
<q-item clickable v-close-popup @click="tools.setCmd($q, shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUPS, myusername(), '', grp.groupname)">
|
||||||
<q-item-section>{{ $t('groups.remove_from_mygroups') }}</q-item-section>
|
<q-item-section>{{ $t('groups.remove_from_mygroups') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
|
|||||||
@@ -103,7 +103,8 @@ export default defineComponent({
|
|||||||
userStore.loadGroups(username.value).then((ris) => {
|
userStore.loadGroups(username.value).then((ris) => {
|
||||||
// console.log('ris', ris)
|
// console.log('ris', ris)
|
||||||
if (ris) {
|
if (ris) {
|
||||||
userStore.my.profile.mygroups = ris.listUsersGroup ? ris.listUsersGroup : []
|
userStore.my.profile.mygroups = ris.mygroups ? ris.mygroups : []
|
||||||
|
userStore.my.profile.list_usersgroup = ris.listUsersGroup ? ris.listUsersGroup : []
|
||||||
userStore.groups = ris.listgroups ? ris.listgroups : []
|
userStore.groups = ris.listgroups ? ris.listgroups : []
|
||||||
userStore.my.profile.asked_groups = ris.listSentRequestGroups ? ris.listSentRequestGroups : []
|
userStore.my.profile.asked_groups = ris.listSentRequestGroups ? ris.listSentRequestGroups : []
|
||||||
filtroutente.value = [{ userId: userStore.my._id }]
|
filtroutente.value = [{ userId: userStore.my._id }]
|
||||||
@@ -113,36 +114,6 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function blockGroup(usernameDest: string) {
|
|
||||||
$q.dialog({
|
|
||||||
message: t('db.domanda_blockgroup', { groupname: usernameDest }),
|
|
||||||
ok: { label: t('dialog.yes'), push: true },
|
|
||||||
cancel: { label: t('dialog.cancel') },
|
|
||||||
title: t('db.domanda')
|
|
||||||
}).onOk(() => {
|
|
||||||
userStore.setGroupsCmd($q, t, username.value, usernameDest, shared_consts.GROUPSCMD.BLOCK_GROUP, null).then((res) => {
|
|
||||||
if (res) {
|
|
||||||
userStore.my.profile.mygroups = userStore.my.profile.mygroups.filter((rec: IMyGroup) => rec.groupname !== usernameDest)
|
|
||||||
tools.showPositiveNotif($q, t('db.blockedgroup'))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function setCmd(cmd: number, groupnameDest: string, value: any = '') {
|
|
||||||
if (cmd === shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUP) {
|
|
||||||
tools.removeFromMyGroups($q, username.value, groupnameDest)
|
|
||||||
} else if (cmd === shared_consts.GROUPSCMD.BLOCK_GROUP) {
|
|
||||||
blockGroup(groupnameDest)
|
|
||||||
} else if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
|
|
||||||
tools.addToMyGroups($q, username.value, groupnameDest)
|
|
||||||
} else if (cmd === shared_consts.GROUPSCMD.REQGROUP) {
|
|
||||||
tools.setRequestGroup($q, username.value, groupnameDest, value)
|
|
||||||
} else if (cmd === shared_consts.GROUPSCMD.CANCEL_REQ_GROUP) {
|
|
||||||
tools.cancelReqGroups($q, username.value, groupnameDest)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function mounted() {
|
function mounted() {
|
||||||
username.value = userStore.my.username
|
username.value = userStore.my.username
|
||||||
loadGroups()
|
loadGroups()
|
||||||
@@ -161,7 +132,6 @@ export default defineComponent({
|
|||||||
shared_consts,
|
shared_consts,
|
||||||
filtroutente,
|
filtroutente,
|
||||||
listgroupsfiltered,
|
listgroupsfiltered,
|
||||||
setCmd,
|
|
||||||
updateValue,
|
updateValue,
|
||||||
myoptions,
|
myoptions,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
<span v-for="(grp, index) in listgroupsfiltered" :key="index" class="q-my-sm" clickable>
|
<span v-for="(grp, index) in listgroupsfiltered" :key="index" class="q-my-sm" clickable>
|
||||||
<CMyGroup
|
<CMyGroup
|
||||||
:mygrp="grp"
|
:mygrp="grp"
|
||||||
@setCmd="setCmd"
|
|
||||||
:visu="modelValue">
|
:visu="modelValue">
|
||||||
</CMyGroup>
|
</CMyGroup>
|
||||||
</span>
|
</span>
|
||||||
@@ -35,7 +34,6 @@
|
|||||||
<span class="q-my-sm" clickable>
|
<span class="q-my-sm" clickable>
|
||||||
<CMyGroup
|
<CMyGroup
|
||||||
:mygrp="mygrp"
|
:mygrp="mygrp"
|
||||||
@setCmd="setCmd"
|
|
||||||
:visu="visu">
|
:visu="visu">
|
||||||
</CMyGroup>
|
</CMyGroup>
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -231,8 +231,6 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('col.value', col.value)
|
|
||||||
|
|
||||||
// console.log('CMyFieldDb crea', myvalue)
|
// console.log('CMyFieldDb crea', myvalue)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,10 +249,13 @@ export default defineComponent({
|
|||||||
|
|
||||||
function changeval(newval: any) {
|
function changeval(newval: any) {
|
||||||
console.log('changeval update:row', newval)
|
console.log('changeval update:row', newval)
|
||||||
|
if (!props.isrec) {
|
||||||
emit('update:row', props.row)
|
emit('update:row', props.row)
|
||||||
|
}
|
||||||
if (props.isInModif)
|
if (props.isInModif)
|
||||||
OpenEdit()
|
OpenEdit()
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getrealval(newval: any) {
|
function getrealval(newval: any) {
|
||||||
|
|||||||
@@ -126,6 +126,10 @@ export default defineComponent({
|
|||||||
type: String,
|
type: String,
|
||||||
required: false,
|
required: false,
|
||||||
default: '',
|
default: '',
|
||||||
|
},
|
||||||
|
filter: {
|
||||||
|
type: Function,
|
||||||
|
required: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {},
|
components: {},
|
||||||
@@ -194,7 +198,7 @@ export default defineComponent({
|
|||||||
// console.log('----------- arrtempOpt.value', arrtempOpt.value)
|
// console.log('----------- arrtempOpt.value', arrtempOpt.value)
|
||||||
|
|
||||||
localStorage.setItem(props.tablesel + num + props.optval, id)
|
localStorage.setItem(props.tablesel + num + props.optval, id)
|
||||||
localStorage.setItem(props.tablesel + num + props.optlab, rec[`${props.optlab}`])
|
localStorage.setItem(props.tablesel + num + props.optlab, tools.getValueByFunzOrVal(rec, props.optlab))
|
||||||
|
|
||||||
num += 1
|
num += 1
|
||||||
localStorage.setItem(props.tablesel + 'NUM', num.toString())
|
localStorage.setItem(props.tablesel + 'NUM', num.toString())
|
||||||
@@ -320,7 +324,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (props.tablesel === 'friendsandme') {
|
if (props.tablesel === 'friendsandme') {
|
||||||
debugger;
|
// debugger;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (props.multiple) {
|
if (props.multiple) {
|
||||||
@@ -349,7 +353,7 @@ export default defineComponent({
|
|||||||
if (props.funcgetvaluebyid)
|
if (props.funcgetvaluebyid)
|
||||||
myvalue.value = props.funcgetvaluebyid(rec[`${props.optval}`])
|
myvalue.value = props.funcgetvaluebyid(rec[`${props.optval}`])
|
||||||
else
|
else
|
||||||
myvalue.value = rec[`${props.optlab}`]
|
myvalue.value = tools.getValueByFunzOrVal(rec, props.optlab)
|
||||||
} else {
|
} else {
|
||||||
// if (!props.useinput) {
|
// if (!props.useinput) {
|
||||||
if (props.value) {
|
if (props.value) {
|
||||||
@@ -372,13 +376,16 @@ export default defineComponent({
|
|||||||
function updateArrOptions() {
|
function updateArrOptions() {
|
||||||
let myarr: any = []
|
let myarr: any = []
|
||||||
|
|
||||||
|
// console.log(props.col.jointable, props.filter)
|
||||||
if (props.col.jointable) {
|
if (props.col.jointable) {
|
||||||
optionsreal.value = globalStore.getTableJoinByName(props.col.jointable, props.col.addall, props.col.filter)
|
optionsreal.value = globalStore.getTableJoinByName(props.col.jointable, props.col.addall, props.filter)
|
||||||
// console.log('optionsreal.value', optionsreal.value)
|
// console.log('optionsreal.value', optionsreal.value)
|
||||||
} else {
|
} else {
|
||||||
optionsreal.value = props.options
|
optionsreal.value = props.options
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// console.log('optionsreal.value', optionsreal.value)
|
||||||
|
|
||||||
myarr = optionsreal.value
|
myarr = optionsreal.value
|
||||||
if (!fieldsTable.tableRemotePickup.includes(props.tablesel)) {
|
if (!fieldsTable.tableRemotePickup.includes(props.tablesel)) {
|
||||||
|
|
||||||
@@ -386,7 +393,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
// console.log('needle', needle, 'props.multiple', props.multiple)
|
// console.log('needle', needle, 'props.multiple', props.multiple)
|
||||||
if (props.filter_table) {
|
if (props.filter_table) {
|
||||||
console.log(' FILTERTABLE', props.filter_field, myarr)
|
// console.log(' FILTERTABLE', props.filter_field, myarr)
|
||||||
if (props.multiple) {
|
if (props.multiple) {
|
||||||
myarr = myarr.filter((rec: any) => rec[props.filter_field] === needle)
|
myarr = myarr.filter((rec: any) => rec[props.filter_field] === needle)
|
||||||
} else {
|
} else {
|
||||||
@@ -578,6 +585,7 @@ export default defineComponent({
|
|||||||
abortFilterFn,
|
abortFilterFn,
|
||||||
newvaluefuncfirst,
|
newvaluefuncfirst,
|
||||||
getIcon,
|
getIcon,
|
||||||
|
tools,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
<template v-slot:option="scope">
|
<template v-slot:option="scope">
|
||||||
<q-item v-bind="scope.itemProps">
|
<q-item v-bind="scope.itemProps">
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label> {{ scope.opt[optlab] }}</q-item-label>
|
<q-item-label> {{ tools.getValueByFunzOrVal(scope.opt,optlab) }}</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</template>
|
</template>
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template
|
<template
|
||||||
v-slot:selected-item="scope">
|
v-slot:selected-item="scope">
|
||||||
<div v-if="scope.opt[optlab]">
|
<div v-if="tools.getValueByFunzOrVal(scope.opt,optlab)">
|
||||||
<q-chip
|
<q-chip
|
||||||
removable
|
removable
|
||||||
dense
|
dense
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
class="q-my-none q-ml-xs q-mr-none"
|
class="q-my-none q-ml-xs q-mr-none"
|
||||||
>
|
>
|
||||||
<q-avatar color="primary" text-color="white" :icon="scope.opt.icon ? scope.opt.icon : ''" size="12px"/>
|
<q-avatar color="primary" text-color="white" :icon="scope.opt.icon ? scope.opt.icon : ''" size="12px"/>
|
||||||
{{ scope.opt[optlab] }}
|
{{ tools.getValueByFunzOrVal(scope.opt, optlab) }}
|
||||||
</q-chip>
|
</q-chip>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -158,7 +158,7 @@
|
|||||||
v-slot:option="{ itemProps, opt, selected, toggleOption }">
|
v-slot:option="{ itemProps, opt, selected, toggleOption }">
|
||||||
<q-item v-bind="itemProps">
|
<q-item v-bind="itemProps">
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label>{{ opt[optlab] }}</q-item-label>
|
<q-item-label>{{ tools.getValueByFunzOrVal(opt,optlab) }}</q-item-label>
|
||||||
<q-item-label v-if="'hint' in opt" class="hint">{{ opt['hint'] }}</q-item-label>
|
<q-item-label v-if="'hint' in opt" class="hint">{{ opt['hint'] }}</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side>
|
<q-item-section side>
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
<q-icon :name="scope.opt.icon ? scope.opt.icon : ''"/>
|
<q-icon :name="scope.opt.icon ? scope.opt.icon : ''"/>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label>{{ scope.opt[optlab] }}</q-item-label>
|
<q-item-label>{{ tools.getValueByFunzOrVal(scope.opt,optlab) }}</q-item-label>
|
||||||
<q-item-label v-if="'hint' in scope.opt" class="hint">{{ scope.opt['hint'] }}</q-item-label>
|
<q-item-label v-if="'hint' in scope.opt" class="hint">{{ scope.opt['hint'] }}</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
|
|||||||
@@ -73,8 +73,8 @@ export default defineComponent({
|
|||||||
$router.push(path)
|
$router.push(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
function setCmd(cmd: number, myusername: string, value: any = '') {
|
function setCmd($q: any, cmd: number, myusername: string, value: any, groupname: string) {
|
||||||
emit('setCmd', cmd, myusername, value)
|
emit('setCmd', $q, cmd, myusername, value, groupname)
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(mounted)
|
onMounted(mounted)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
</q-item-section>
|
</q-item-section>
|
||||||
|
|
||||||
<q-item-section @click="naviga(`/my/` + contact.username)">
|
<q-item-section @click="naviga(`/my/` + contact.username)">
|
||||||
<q-item-label><strong>{{ contact.name }} {{ contact.surname }}</strong> ({{ contact.username }})
|
<q-item-label><strong>{{ contact.username }}</strong> <span v-if="contact.name">({{ contact.name }} {{ contact.surname }})</span>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
<q-item-label v-if="contact.profile" caption lines="1"><em>{{ contact.profile.qualifica }}</em></q-item-label>
|
<q-item-label v-if="contact.profile" caption lines="1"><em>{{ contact.profile.qualifica }}</em></q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
@@ -19,12 +19,12 @@
|
|||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list style="min-width: 150px">
|
<q-list style="min-width: 150px">
|
||||||
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
@click="setCmd(shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS, contact.username)">
|
@click="setCmd($q, shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS, contact.username, '', '')">
|
||||||
<q-item-section>{{ $t('friends.remove_from_myfriends') }}</q-item-section>
|
<q-item-section>{{ $t('friends.remove_from_myfriends') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list style="min-width: 150px">
|
<q-list style="min-width: 150px">
|
||||||
<q-item clickable icon="fas fa-ban" v-close-popup @click="setCmd(shared_consts.FRIENDSCMD.BLOCK_USER, contact.username)">
|
<q-item clickable icon="fas fa-ban" v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.BLOCK_USER, contact.username, '', '')">
|
||||||
<q-item-section>{{ $t('friends.block_user') }}</q-item-section>
|
<q-item-section>{{ $t('friends.block_user') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -32,18 +32,18 @@
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side v-if="visu === costanti.REQ_FRIENDS">
|
<q-item-section side v-else-if="visu === costanti.REQ_FRIENDS">
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list v-if="true" style="min-width: 150px">
|
<q-list v-if="true" style="min-width: 150px">
|
||||||
<q-item clickable v-close-popup @click="setCmd(shared_consts.FRIENDSCMD.SETFRIEND, contact.username)">
|
<q-item clickable v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.SETFRIEND, contact.username, '', '')">
|
||||||
<q-item-section>{{ $t('friends.accept_friend') }}</q-item-section>
|
<q-item-section>{{ $t('friends.accept_friend') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list style="min-width: 150px">
|
<q-list style="min-width: 150px">
|
||||||
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
@click="setCmd(shared_consts.FRIENDSCMD.REQFRIEND, contact.username, false)">
|
@click="setCmd($q, shared_consts.FRIENDSCMD.REQFRIEND, contact.username, false, '')">
|
||||||
<q-item-section>{{ $t('friends.reject_ask_friend') }}</q-item-section>
|
<q-item-section>{{ $t('friends.reject_ask_friend') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side v-if="visu === costanti.REQ_ADD_USER_TO_GROUP">
|
<q-item-section side v-else-if="visu === costanti.REQ_ADD_USER_TO_GROUP">
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side v-if="visu === costanti.REQ_REMOVE_USER_TO_GROUP">
|
<q-item-section side v-else-if="visu === costanti.REQ_REMOVE_USER_TO_GROUP">
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
@@ -95,13 +95,13 @@
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side v-if="visu === costanti.ASK_SENT_FRIENDS">
|
<q-item-section side v-else-if="visu === costanti.ASK_SENT_FRIENDS">
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list style="min-width: 150px">
|
<q-list style="min-width: 150px">
|
||||||
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
@click="setCmd(shared_consts.FRIENDSCMD.CANCEL_REQ_FRIEND, contact.username)">
|
@click="setCmd($q, shared_consts.FRIENDSCMD.CANCEL_REQ_FRIEND, contact.username, '', '')">
|
||||||
<q-item-section>{{ $t('friends.cancel_ask_friend') }}</q-item-section>
|
<q-item-section>{{ $t('friends.cancel_ask_friend') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -109,25 +109,25 @@
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side v-if="visu === costanti.ASK_TRUST">
|
<q-item-section side v-else-if="visu === costanti.ASK_TRUST">
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn color="positive" :label="$t('friends.accept_trust')" @click="setCmd(shared_consts.FRIENDSCMD.SETTRUST, contact.username, true)"/>
|
<q-btn color="positive" :label="$t('friends.accept_trust')" @click="setCmd($q, shared_consts.FRIENDSCMD.SETTRUST, contact.username, true, '')"/>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn color="negative" :label="$t('friends.refuse_trust')" @click="setCmd(shared_consts.FRIENDSCMD.SETTRUST, contact.username, false)"/>
|
<q-btn color="negative" :label="$t('friends.refuse_trust')" @click="setCmd($q, shared_consts.FRIENDSCMD.SETTRUST, contact.username, false, '')"/>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side v-if="visu === costanti.TRUSTED">
|
<q-item-section side v-else-if="visu === costanti.TRUSTED">
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list v-if="!userStore.IsMyFriendByUsername(contact.username)" style="min-width: 200px">
|
<q-list v-if="!userStore.IsMyFriendByUsername(contact.username)" style="min-width: 200px">
|
||||||
<q-item clickable v-close-popup @click="setCmd(shared_consts.FRIENDSCMD.REQFRIEND, contact.username, true)">
|
<q-item clickable v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.REQFRIEND, contact.username, true, '')">
|
||||||
<q-item-section>{{ $t('friends.ask_friend') }}</q-item-section>
|
<q-item-section>{{ $t('friends.ask_friend') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list style="min-width: 200px">
|
<q-list style="min-width: 200px">
|
||||||
<q-item clickable v-close-popup @click="setCmd(shared_consts.FRIENDSCMD.SETTRUST, contact.username, false)">
|
<q-item clickable v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.SETTRUST, contact.username, false, '')">
|
||||||
<q-item-section>{{ $t('friends.reject_trust') }}</q-item-section>
|
<q-item-section>{{ $t('friends.reject_trust') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -135,22 +135,22 @@
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side v-if="visu === costanti.FIND_PEOPLE">
|
<q-item-section side v-else-if="visu === costanti.FIND_PEOPLE">
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn v-if="contact.username !== userStore.my.username" rounded :icon="userStore.IsMyFriendByUsername(contact.username) ? `fas fa-ellipsis-h` : `fas fa-user`">
|
<q-btn v-if="contact.username !== userStore.my.username" rounded :icon="userStore.IsMyFriendByUsername(contact.username) ? `fas fa-ellipsis-h` : `fas fa-user`">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list v-if="(!userStore.IsMyFriendByUsername(contact.username) && !userStore.IsAskedFriendByUsername(contact.username))" style="min-width: 200px">
|
<q-list v-if="(!userStore.IsMyFriendByUsername(contact.username) && !userStore.IsAskedFriendByUsername(contact.username))" style="min-width: 200px">
|
||||||
<q-item clickable v-close-popup @click="setCmd(shared_consts.FRIENDSCMD.REQFRIEND, contact.username, true)">
|
<q-item clickable v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.REQFRIEND, contact.username, true, '')">
|
||||||
<q-item-section>{{ $t('friends.ask_friend') }}</q-item-section>
|
<q-item-section>{{ $t('friends.ask_friend') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list v-else-if="(!userStore.IsMyFriendByUsername(contact.username) && userStore.IsAskedFriendByUsername(contact.username))" style="min-width: 200px">
|
<q-list v-else-if="(!userStore.IsMyFriendByUsername(contact.username) && userStore.IsAskedFriendByUsername(contact.username))" style="min-width: 200px">
|
||||||
<q-item clickable v-close-popup @click="setCmd(shared_consts.FRIENDSCMD.REQFRIEND, contact.username, false)">
|
<q-item clickable v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.REQFRIEND, contact.username, false, '')">
|
||||||
<q-item-section>{{ $t('friends.cancel_ask_friend') }}</q-item-section>
|
<q-item-section>{{ $t('friends.cancel_ask_friend') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
<q-list v-else-if="userStore.IsMyFriendByUsername(contact.username)" style="min-width: 200px">
|
<q-list v-else-if="userStore.IsMyFriendByUsername(contact.username)" style="min-width: 200px">
|
||||||
<q-item clickable v-close-popup @click="setCmd(shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS, contact.username)">
|
<q-item clickable v-close-popup @click="setCmd($q, shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS, contact.username, '', '')">
|
||||||
<q-item-section>{{ $t('friends.remove_from_myfriends') }}</q-item-section>
|
<q-item-section>{{ $t('friends.remove_from_myfriends') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
@@ -158,13 +158,13 @@
|
|||||||
</q-btn>
|
</q-btn>
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side v-if="visu === costanti.REJECTED">
|
<q-item-section side v-else-if="visu === costanti.REJECTED">
|
||||||
<q-item-label>
|
<q-item-label>
|
||||||
<q-btn rounded icon="fas fa-ellipsis-h">
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
<q-menu>
|
<q-menu>
|
||||||
<q-list style="min-width: 200px">
|
<q-list style="min-width: 200px">
|
||||||
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
@click="setCmd(shared_consts.FRIENDSCMD.SETTRUST, contact.username, true)">
|
@click="setCmd($q, shared_consts.FRIENDSCMD.SETTRUST, contact.username, true, '')">
|
||||||
<q-item-section>{{ $t('friends.accept_trust') }}</q-item-section>
|
<q-item-section>{{ $t('friends.accept_trust') }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
</q-list>
|
</q-list>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import { complexity, registereduser, aportadorexist } from '../../validation'
|
|||||||
|
|
||||||
// import 'vue3-tel-input/dist/vue3-tel-input.css'
|
// import 'vue3-tel-input/dist/vue3-tel-input.css'
|
||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
import { static_data } from '@/db/static_data'
|
||||||
|
|
||||||
// import {Loading, QSpinnerFacebook, QSpinnerGears} from 'quasar'
|
// import {Loading, QSpinnerFacebook, QSpinnerGears} from 'quasar'
|
||||||
|
|
||||||
@@ -49,6 +50,11 @@ export default defineComponent({
|
|||||||
required: false,
|
required: false,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
show_namesurname: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
setup(props, { emit }) {
|
setup(props, { emit }) {
|
||||||
const $q = useQuasar()
|
const $q = useQuasar()
|
||||||
@@ -65,8 +71,8 @@ export default defineComponent({
|
|||||||
const signup = reactive(<ISignupOptions>{
|
const signup = reactive(<ISignupOptions>{
|
||||||
email: process.env.TEST_EMAIL || '',
|
email: process.env.TEST_EMAIL || '',
|
||||||
username: process.env.TEST_USERNAME || '',
|
username: process.env.TEST_USERNAME || '',
|
||||||
name: process.env.TEST_NAME || '',
|
name: static_data.functionality.SHOW_NAMESURNAME ? (process.env.TEST_NAME || '') : '',
|
||||||
surname: process.env.TEST_SURNAME || '',
|
surname: static_data.functionality.SHOW_NAMESURNAME ? (process.env.TEST_SURNAME || '') : '',
|
||||||
password: process.env.TEST_PASSWORD || '',
|
password: process.env.TEST_PASSWORD || '',
|
||||||
repeatPassword: process.env.TEST_PASSWORD || '',
|
repeatPassword: process.env.TEST_PASSWORD || '',
|
||||||
terms: !process.env.PROD,
|
terms: !process.env.PROD,
|
||||||
@@ -75,7 +81,7 @@ export default defineComponent({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const validations: any = computed(() => {
|
const validations: any = computed(() => {
|
||||||
return {
|
let valid: any = {
|
||||||
repeatPassword: {
|
repeatPassword: {
|
||||||
required,
|
required,
|
||||||
repeatPassword: sameAs(signup.password),
|
repeatPassword: sameAs(signup.password),
|
||||||
@@ -90,12 +96,6 @@ export default defineComponent({
|
|||||||
minLength: minLength(6),
|
minLength: minLength(6),
|
||||||
registereduser,
|
registereduser,
|
||||||
},
|
},
|
||||||
name: {
|
|
||||||
required,
|
|
||||||
},
|
|
||||||
surname: {
|
|
||||||
required,
|
|
||||||
},
|
|
||||||
terms: {
|
terms: {
|
||||||
required,
|
required,
|
||||||
},
|
},
|
||||||
@@ -104,6 +104,17 @@ export default defineComponent({
|
|||||||
required
|
required
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (props.show_namesurname) {
|
||||||
|
valid.name = {
|
||||||
|
required,
|
||||||
|
}
|
||||||
|
valid.surname = {
|
||||||
|
required,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return valid
|
||||||
})
|
})
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
@@ -176,8 +187,10 @@ export default defineComponent({
|
|||||||
return
|
return
|
||||||
} */
|
} */
|
||||||
|
|
||||||
|
if (signup.name) {
|
||||||
signup.name = tools.CapitalizeAllWords(signup.name)
|
signup.name = tools.CapitalizeAllWords(signup.name)
|
||||||
signup.surname = tools.CapitalizeAllWords(signup.surname)
|
signup.surname = tools.CapitalizeAllWords(signup.surname)
|
||||||
|
}
|
||||||
|
|
||||||
$q.loading.show({ message: t('reg.incorso') })
|
$q.loading.show({ message: t('reg.incorso') })
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<p>
|
<p>
|
||||||
<logo></logo><CTitleBanner :title="$t('pages.SignUp')"></CTitleBanner>
|
<logo></logo>
|
||||||
|
<CTitleBanner :title="$t('pages.SignUp')"></CTitleBanner>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -53,7 +54,7 @@
|
|||||||
debounce="3000"
|
debounce="3000"
|
||||||
:rules="[ myRuleEmail ]"
|
:rules="[ myRuleEmail ]"
|
||||||
lazy-rules
|
lazy-rules
|
||||||
:label="$t('reg.email')">
|
:label="$t('reg.email_reg')">
|
||||||
|
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon name="email"/>
|
<q-icon name="email"/>
|
||||||
@@ -69,9 +70,10 @@
|
|||||||
:error="v$.username.$error"
|
:error="v$.username.$error"
|
||||||
@keydown.space="(event) => event.preventDefault()"
|
@keydown.space="(event) => event.preventDefault()"
|
||||||
maxlength="20"
|
maxlength="20"
|
||||||
|
:hint="$t('reg.username_hint')"
|
||||||
debounce="1000"
|
debounce="1000"
|
||||||
:error-message="tools.errorMsg( 'username', v$.username)"
|
:error-message="tools.errorMsg( 'username', v$.username)"
|
||||||
:label="$t('reg.username')">
|
:label="$t('reg.username_reg')">
|
||||||
|
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon name="person"/>
|
<q-icon name="person"/>
|
||||||
@@ -79,6 +81,7 @@
|
|||||||
|
|
||||||
</q-input>
|
</q-input>
|
||||||
|
|
||||||
|
<div v-if="show_namesurname">
|
||||||
<q-input
|
<q-input
|
||||||
v-model="signup.name"
|
v-model="signup.name"
|
||||||
rounded outlined
|
rounded outlined
|
||||||
@@ -111,6 +114,8 @@
|
|||||||
|
|
||||||
</q-input>
|
</q-input>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<q-input
|
<q-input
|
||||||
v-model="signup.password"
|
v-model="signup.password"
|
||||||
type="password"
|
type="password"
|
||||||
@@ -120,7 +125,7 @@
|
|||||||
:error-message="`${tools.errorMsg( 'password', v$.password)}`"
|
:error-message="`${tools.errorMsg( 'password', v$.password)}`"
|
||||||
maxlength="30"
|
maxlength="30"
|
||||||
debounce="1000"
|
debounce="1000"
|
||||||
:label="$t('reg.password')">
|
:label="$t('reg.password_reg')">
|
||||||
|
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon name="vpn_key"/>
|
<q-icon name="vpn_key"/>
|
||||||
@@ -203,10 +208,11 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<q-btn rounded size="lg" color="positive" @click="submitOk" :disabled='!allowSubmit()' :label="$t('reg.submit')">
|
<q-btn rounded size="lg" color="positive" @click="submitOk" :disabled='!allowSubmit()'
|
||||||
|
:label="$t('reg.submit')">
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
<br /><br /><br />
|
<br/><br/><br/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -215,5 +221,5 @@
|
|||||||
<script lang="ts" src="./CSignUp.ts">
|
<script lang="ts" src="./CSignUp.ts">
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import './CSignUp.scss';
|
@import './CSignUp.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
</q-item-section>
|
</q-item-section>
|
||||||
|
|
||||||
<q-item-section>
|
<q-item-section>
|
||||||
<q-item-label>{{ user.name }} {{ user.surname }} {{ getindorder(user) }}<br>
|
<q-item-label><span v-if="user.name">{{ user.name }} {{ user.surname }}</span> {{ getindorder(user) }}<br>
|
||||||
<span class="text-grey">({{ getusername(user) }}) <strong>{{ getquanti(user)}}</strong></span>
|
<span class="text-grey">({{ getusername(user) }}) <strong>{{ getquanti(user)}}</strong></span>
|
||||||
<br><!--<span v-if="isextralist(user)" class="notreg">{{ $t('dashboard.notreg') }}</span>-->
|
<br><!--<span v-if="isextralist(user)" class="notreg">{{ $t('dashboard.notreg') }}</span>-->
|
||||||
</q-item-label>
|
</q-item-label>
|
||||||
|
|||||||
@@ -98,7 +98,6 @@
|
|||||||
</div>-->
|
</div>-->
|
||||||
|
|
||||||
<!-- BUTTON USER BAR -->
|
<!-- BUTTON USER BAR -->
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
class="q-mx-xs" v-if="static_data.functionality.SHOW_USER_MENU && !isLogged()" dense flat round
|
class="q-mx-xs" v-if="static_data.functionality.SHOW_USER_MENU && !isLogged()" dense flat round
|
||||||
icon="menu"
|
icon="menu"
|
||||||
|
|||||||
@@ -868,7 +868,7 @@ $heightBtn: 100%;
|
|||||||
}
|
}
|
||||||
|
|
||||||
.combowidth {
|
.combowidth {
|
||||||
min-width: 180px;
|
min-width: 190px;
|
||||||
@media (max-width: 450px) {
|
@media (max-width: 450px) {
|
||||||
min-width: 250px;
|
min-width: 250px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_enUs = {
|
const msg_website_enUs = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'InsiemeSuPuò',
|
sitename: 'Comunità Nuovo Mondo',
|
||||||
siteshortname: 'InsiemeSuPuò',
|
siteshortname: 'CNM',
|
||||||
botname: 'InsiemeSuPuò BOT',
|
botname: 'CNM BOT',
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
home: 'Home',
|
home: 'Home',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_es = {
|
const msg_website_es = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'InsiemeSuPuò',
|
sitename: 'AYNI',
|
||||||
siteshortname: 'InsiemeSuPuò',
|
siteshortname: 'Ayni',
|
||||||
botname: 'InsiemeSuPuò BOT',
|
botname: 'AYNI BOT',
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
home: 'Home',
|
home: 'Home',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_fr = {
|
const msg_website_fr = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'InsiemeSuPuò',
|
sitename: 'AYNI',
|
||||||
siteshortname: 'InsiemeSuPuò',
|
siteshortname: 'Ayni',
|
||||||
botname: 'InsiemeSuPuò BOT',
|
botname: 'AYNI BOT',
|
||||||
},
|
},
|
||||||
homepage: {
|
homepage: {
|
||||||
titlecontatti: 'CONTACTS',
|
titlecontatti: 'CONTACTS',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_it = {
|
const msg_website_it = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'InsiemeSuPuò',
|
sitename: 'FreePlanet',
|
||||||
siteshortname: 'InsiemeSuPuò',
|
siteshortname: 'FreePlanet',
|
||||||
botname: 'il Bot di InsiemeSuPuò',
|
botname: 'il Bot di FreePlanet',
|
||||||
},
|
},
|
||||||
products: {
|
products: {
|
||||||
quantity: 'Quantità',
|
quantity: 'Quantità',
|
||||||
@@ -128,8 +128,8 @@ const msg_website_it = {
|
|||||||
color: 'Colore',
|
color: 'Colore',
|
||||||
},
|
},
|
||||||
msg: {
|
msg: {
|
||||||
myAppName: 'InsiemeSiPuò',
|
myAppName: 'FreePlanet',
|
||||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito e senza Pubblicità',
|
||||||
underconstruction: 'App in costruzione...',
|
underconstruction: 'App in costruzione...',
|
||||||
myDescriz: '',
|
myDescriz: '',
|
||||||
sottoTitoloApp: 'Il primo Vero Social',
|
sottoTitoloApp: 'Il primo Vero Social',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_pt = {
|
const msg_website_pt = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'InsiemeSuPuò',
|
sitename: 'CNM',
|
||||||
siteshortname: 'InsiemeSuPuò',
|
siteshortname: 'CNM',
|
||||||
botname: 'InsiemeSuPuò BOT',
|
botname: 'CNM BOT',
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
home: 'Home',
|
home: 'Home',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const msg_website_si = {
|
const msg_website_si = {
|
||||||
ws: {
|
ws: {
|
||||||
sitename: 'InsiemeSuPuò',
|
sitename: 'AYNI',
|
||||||
siteshortname: 'InsiemeSuPuò',
|
siteshortname: 'Ayni',
|
||||||
botname: 'InsiemeSuPuò BOT',
|
botname: 'AYNI BOT',
|
||||||
},
|
},
|
||||||
pages: {
|
pages: {
|
||||||
home: 'Domača stran',
|
home: 'Domača stran',
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ const functionality: IFunctionality = {
|
|||||||
BOOKING_EVENTS: true,
|
BOOKING_EVENTS: true,
|
||||||
ENABLE_ECOMMERCE: false,
|
ENABLE_ECOMMERCE: false,
|
||||||
ENABLE_REG_ISP: true,
|
ENABLE_REG_ISP: true,
|
||||||
|
SHOW_NAMESURNAME: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
// const SHOW_PROJINTHEMENU = false
|
// const SHOW_PROJINTHEMENU = false
|
||||||
@@ -373,12 +374,12 @@ const baseroutes: IListRoutes[] = [
|
|||||||
path: '/',
|
path: '/',
|
||||||
materialIcon: 'home',
|
materialIcon: 'home',
|
||||||
name: 'pages.home',
|
name: 'pages.home',
|
||||||
component: () => import('@src/root/home_insiemesipuo/home_insiemesipuo.vue'),
|
component: () => import('@src/root/home_freeplanet/home_freeplanet.vue'),
|
||||||
reqauth: false,
|
reqauth: false,
|
||||||
inmenu: true,
|
inmenu: true,
|
||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
/*{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 100,
|
order: 100,
|
||||||
path: '/presentazione',
|
path: '/presentazione',
|
||||||
@@ -388,7 +389,7 @@ const baseroutes: IListRoutes[] = [
|
|||||||
reqauth: false,
|
reqauth: false,
|
||||||
inmenu: true,
|
inmenu: true,
|
||||||
infooter: true,
|
infooter: true,
|
||||||
},*/
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 120,
|
order: 120,
|
||||||
@@ -446,7 +447,7 @@ const baseroutes: IListRoutes[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 136,
|
order: 135,
|
||||||
path: '/grp/:groupname',
|
path: '/grp/:groupname',
|
||||||
materialIcon: 'fas fa-user',
|
materialIcon: 'fas fa-user',
|
||||||
name: 'proj.group2',
|
name: 'proj.group2',
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ export default function () {
|
|||||||
function getMyImg() {
|
function getMyImg() {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const ris = userStore.getImgByUsername(userStore.my.username)
|
const ris = userStore.getImgByUsername(userStore.my.username)
|
||||||
const out = (ris !== '') ? `${ris}` : ''
|
const out = (ris !== '') ? `${ris}` : 'images/noimg-user.svg'
|
||||||
// console.log('getMyImg = ', out)
|
// console.log('getMyImg = ', out)
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -444,6 +444,8 @@ export interface IFunctionality {
|
|||||||
ENABLE_REG_AYNI?: boolean
|
ENABLE_REG_AYNI?: boolean
|
||||||
ENABLE_REG_CNM?: boolean
|
ENABLE_REG_CNM?: boolean
|
||||||
ENABLE_REG_ISP?: boolean
|
ENABLE_REG_ISP?: boolean
|
||||||
|
SHOW_NAMESURNAME?: boolean
|
||||||
|
ENABLE_GROUPS?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IParLookup {
|
export interface IParLookup {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export interface IFriends {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface IMyGroup {
|
export interface IMyGroup {
|
||||||
|
_id: string
|
||||||
groupname: string
|
groupname: string
|
||||||
title?: string
|
title?: string
|
||||||
descr?: string
|
descr?: string
|
||||||
@@ -75,6 +76,7 @@ export interface IUserProfile {
|
|||||||
// in memory
|
// in memory
|
||||||
asked_friends: any[]
|
asked_friends: any[]
|
||||||
asked_groups: any[]
|
asked_groups: any[]
|
||||||
|
list_usersgroup?: IFriends[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IPaymentType {
|
export interface IPaymentType {
|
||||||
|
|||||||
@@ -630,6 +630,7 @@ const msg_es = {
|
|||||||
mypages: {
|
mypages: {
|
||||||
find_people: 'Busca Personas',
|
find_people: 'Busca Personas',
|
||||||
friends: 'Amigos',
|
friends: 'Amigos',
|
||||||
|
groups: 'Grupos',
|
||||||
request_friends: 'Rich. Amicizia',
|
request_friends: 'Rich. Amicizia',
|
||||||
request_sent_friends: 'Rich. Inviate',
|
request_sent_friends: 'Rich. Inviate',
|
||||||
request_trust: 'Rich. Fiducia',
|
request_trust: 'Rich. Fiducia',
|
||||||
|
|||||||
@@ -408,6 +408,7 @@ const msg_it = {
|
|||||||
iscrizioneincorso: 'Iscrizione in corso...',
|
iscrizioneincorso: 'Iscrizione in corso...',
|
||||||
richiesto: 'Campo Richiesto',
|
richiesto: 'Campo Richiesto',
|
||||||
email: 'Email',
|
email: 'Email',
|
||||||
|
email_reg: 'la tua Email',
|
||||||
website: 'Sito Web',
|
website: 'Sito Web',
|
||||||
intcode_cell: 'Prefisso Int.',
|
intcode_cell: 'Prefisso Int.',
|
||||||
cell: 'Cellulare',
|
cell: 'Cellulare',
|
||||||
@@ -448,12 +449,15 @@ const msg_it = {
|
|||||||
deleted: 'Nascosto',
|
deleted: 'Nascosto',
|
||||||
sospeso: 'Sospeso',
|
sospeso: 'Sospeso',
|
||||||
username: 'Username',
|
username: 'Username',
|
||||||
|
username_reg: 'Scegli il tuo Username',
|
||||||
|
username_hint: 'i caratteri speciali consentiti sono il tratteggio (_) e il meno (-)',
|
||||||
username_pseudonimo: 'Username (Pseudonimo)',
|
username_pseudonimo: 'Username (Pseudonimo)',
|
||||||
username_short: 'Username',
|
username_short: 'Username',
|
||||||
name: 'Nome',
|
name: 'Nome',
|
||||||
surname: 'Cognome',
|
surname: 'Cognome',
|
||||||
username_login: 'Username o email',
|
username_login: 'Username o email',
|
||||||
password: 'Password',
|
password: 'Password',
|
||||||
|
password_reg: 'Scegli una nuova Password',
|
||||||
repeatPassword: 'Ripeti password',
|
repeatPassword: 'Ripeti password',
|
||||||
terms: 'Accetto i termini della privacy',
|
terms: 'Accetto i termini della privacy',
|
||||||
metodopagamento: 'Metodo di Pagamento',
|
metodopagamento: 'Metodo di Pagamento',
|
||||||
@@ -890,6 +894,9 @@ const msg_it = {
|
|||||||
reject_ask_friend: 'Rifiuta la richiesta di Amicizia',
|
reject_ask_friend: 'Rifiuta la richiesta di Amicizia',
|
||||||
},
|
},
|
||||||
groups: {
|
groups: {
|
||||||
|
member: 'membro',
|
||||||
|
members: 'membri',
|
||||||
|
admin: 'amministratore',
|
||||||
admins: 'Amministratori',
|
admins: 'Amministratori',
|
||||||
ask_group: 'Chiedi di entrare nel Gruppo',
|
ask_group: 'Chiedi di entrare nel Gruppo',
|
||||||
accept_group: 'Accetta la richiesta',
|
accept_group: 'Accetta la richiesta',
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ export const costanti = {
|
|||||||
CREATE_GROUP: 30,
|
CREATE_GROUP: 30,
|
||||||
MANAGE_GROUPS: 31,
|
MANAGE_GROUPS: 31,
|
||||||
|
|
||||||
|
SHOW_ALL: 50,
|
||||||
|
|
||||||
REQ_ADD_USER_TO_GROUP: 40,
|
REQ_ADD_USER_TO_GROUP: 40,
|
||||||
REQ_REMOVE_USER_TO_GROUP: 41,
|
REQ_REMOVE_USER_TO_GROUP: 41,
|
||||||
|
|
||||||
|
|||||||
@@ -1539,6 +1539,10 @@ export const tools = {
|
|||||||
return Object(anything) === anything
|
return Object(anything) === anything
|
||||||
},
|
},
|
||||||
|
|
||||||
|
isFunc(anything: any) {
|
||||||
|
return (typeof anything === 'function')
|
||||||
|
},
|
||||||
|
|
||||||
isDebug() {
|
isDebug() {
|
||||||
return process.env.DEV
|
return process.env.DEV
|
||||||
},
|
},
|
||||||
@@ -4424,6 +4428,62 @@ export const tools = {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
removeFromMyFriends($q: any, username: string, usernameDest: string) {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_removefriend', { 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.REMOVE_FROM_MYFRIENDS, null).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
userStore.my.profile.friends = userStore.my.profile.friends.filter((rec: IFriends) => rec.username !== usernameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.removedfriend'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
blockUser($q: any, username: string, usernameDest: string) {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_blockuser', { 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.BLOCK_USER, null).then((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
userStore.my.profile.friends = userStore.my.profile.friends.filter((rec: IFriends) => rec.username !== usernameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.blockedfriend'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
refuseReqFriends($q: any, username: string, usernameDest: string) {
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_revoke_friend', { 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.REMOVE_FROM_MYFRIENDS, null).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
userStore.my.profile.req_friends = userStore.my.profile.req_friends.filter((user: IFriends) => user.username !== usernameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.removedfriend'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
addToMyGroups($q: any, username: string, groupnameDest: string) {
|
addToMyGroups($q: any, username: string, groupnameDest: string) {
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
@@ -4447,6 +4507,24 @@ export const tools = {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
blockGroup($q: any, username: string, usernameDest: string) {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_blockgroup', { groupname: usernameDest }),
|
||||||
|
ok: { label: t('dialog.yes'), push: true },
|
||||||
|
cancel: { label: t('dialog.cancel') },
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
userStore.setGroupsCmd($q, t, username, usernameDest, shared_consts.GROUPSCMD.BLOCK_GROUP, null).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
userStore.my.profile.mygroups = userStore.my.profile.mygroups.filter((rec: IMyGroup) => rec.groupname !== usernameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.blockedgroup'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
removeFromMyGroups($q: any, username: string, groupnameDest: string) {
|
removeFromMyGroups($q: any, username: string, groupnameDest: string) {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
@@ -4743,6 +4821,44 @@ export const tools = {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setCmd($q: any, cmd: number, username: string, value: any, dest: string) {
|
||||||
|
if (cmd === shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUP) {
|
||||||
|
tools.removeFromMyGroups($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.GROUPSCMD.BLOCK_GROUP) {
|
||||||
|
tools.blockGroup($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
|
||||||
|
tools.addToMyGroups($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.GROUPSCMD.REQGROUP) {
|
||||||
|
tools.setRequestGroup($q, username, dest, value)
|
||||||
|
} else if (cmd === shared_consts.GROUPSCMD.CANCEL_REQ_GROUP) {
|
||||||
|
tools.cancelReqGroups($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS) {
|
||||||
|
tools.removeFromMyFriends($q, username, value)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.BLOCK_USER) {
|
||||||
|
tools.blockUser($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.SETFRIEND) {
|
||||||
|
tools.addToMyFriends($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.REQFRIEND) {
|
||||||
|
tools.setRequestFriendship($q, username, dest, value)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.REFUSE_REQ_FRIEND) {
|
||||||
|
tools.refuseReqFriends($q, username, dest)
|
||||||
|
} else if (cmd === shared_consts.FRIENDSCMD.CANCEL_REQ_FRIEND) {
|
||||||
|
tools.cancelReqFriends($q, username, dest)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
isCallable(anything: any) {
|
||||||
|
return typeof anything === 'function'
|
||||||
|
},
|
||||||
|
|
||||||
|
getValueByFunzOrVal(value: any, keyfunz: any) {
|
||||||
|
if (typeof keyfunz === 'function') {
|
||||||
|
return keyfunz(value)
|
||||||
|
} else {
|
||||||
|
return value[keyfunz]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// getLocale() {
|
// getLocale() {
|
||||||
// if (navigator.languages && navigator.languages.length > 0) {
|
// if (navigator.languages && navigator.languages.length > 0) {
|
||||||
// return navigator.languages[0]
|
// return navigator.languages[0]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<q-page padding class="signup">
|
<q-page padding class="signup">
|
||||||
<CSignUp :showcell="false" :showaportador="true">
|
<CSignUp :showcell="false" :showaportador="true" :show_namesurname="false">
|
||||||
|
|
||||||
</CSignUp>
|
</CSignUp>
|
||||||
</q-page>
|
</q-page>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import { useI18n } from '@/boot/i18n'
|
|||||||
import { toolsext } from '@store/Modules/toolsext'
|
import { toolsext } from '@store/Modules/toolsext'
|
||||||
import { useQuasar } from 'quasar'
|
import { useQuasar } from 'quasar'
|
||||||
import { costanti } from '@costanti'
|
import { costanti } from '@costanti'
|
||||||
|
import { static_data } from '@/db/static_data'
|
||||||
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
@@ -87,6 +88,7 @@ export default defineComponent({
|
|||||||
getpayment,
|
getpayment,
|
||||||
tools,
|
tools,
|
||||||
costanti,
|
costanti,
|
||||||
|
static_data,
|
||||||
filtroutente,
|
filtroutente,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="myrow">
|
<div class="myrow">
|
||||||
|
<div v-if="static_data.functionality.SHOW_NAMESURNAME">
|
||||||
<CMyFieldDb
|
<CMyFieldDb
|
||||||
:title="$t('reg.name')"
|
:title="$t('reg.name')"
|
||||||
table="users"
|
table="users"
|
||||||
@@ -20,6 +21,7 @@
|
|||||||
:type="costanti.FieldType.string">
|
:type="costanti.FieldType.string">
|
||||||
</CMyFieldDb>
|
</CMyFieldDb>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div class="myrow">
|
<div class="myrow">
|
||||||
<CMyFieldDb
|
<CMyFieldDb
|
||||||
:title="$t('reg.username')"
|
:title="$t('reg.username')"
|
||||||
|
|||||||
@@ -16,3 +16,9 @@
|
|||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.members, .admins{
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: center;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||||
import { CMyFriends } from '@/components/CMyFriends'
|
import { CMyFriends } from '@/components/CMyFriends'
|
||||||
|
import { CMyUser } from '@/components/CMyUser'
|
||||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||||
import { CProfile } from '@/components/CProfile'
|
import { CProfile } from '@/components/CProfile'
|
||||||
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
import { CMyFieldRec } from '@/components/CMyFieldRec'
|
||||||
@@ -21,7 +22,7 @@ import { colmyUserPeople, colmyUserGroup } from '@store/Modules/fieldsTable'
|
|||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'mygroup',
|
name: 'mygroup',
|
||||||
components: { CProfile, CTitleBanner, CMyFieldRec, CSkill, CDateTime, CMyFriends, CGridTableRec },
|
components: { CProfile, CTitleBanner, CMyFieldRec, CSkill, CDateTime, CMyFriends, CGridTableRec, CMyUser },
|
||||||
props: {},
|
props: {},
|
||||||
setup() {
|
setup() {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
@@ -39,6 +40,7 @@ export default defineComponent({
|
|||||||
const mygrp = ref(<IMyGroup|null>{})
|
const mygrp = ref(<IMyGroup|null>{})
|
||||||
const users_in_group = ref(<IFriends[]>[])
|
const users_in_group = ref(<IFriends[]>[])
|
||||||
|
|
||||||
|
const tabgrp = ref('info')
|
||||||
const tab = ref('membri')
|
const tab = ref('membri')
|
||||||
|
|
||||||
const arrfilterand: any = ref([])
|
const arrfilterand: any = ref([])
|
||||||
@@ -54,10 +56,10 @@ export default defineComponent({
|
|||||||
return userStore.my.username
|
return userStore.my.username
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadGroup() {
|
async function loadGroup() {
|
||||||
// Carica il profilo di quest'utente
|
// Carica il profilo di quest'utente
|
||||||
if (groupname.value) {
|
if (groupname.value) {
|
||||||
userStore.loadGroup(groupname.value).then((ris) => {
|
await userStore.loadGroup(groupname.value).then((ris) => {
|
||||||
if (ris) {
|
if (ris) {
|
||||||
mygrp.value = ris.mygroup
|
mygrp.value = ris.mygroup
|
||||||
users_in_group.value = ris.users_in_group
|
users_in_group.value = ris.users_in_group
|
||||||
@@ -75,13 +77,14 @@ export default defineComponent({
|
|||||||
loadGroup()
|
loadGroup()
|
||||||
})
|
})
|
||||||
|
|
||||||
function mounted() {
|
async function mounted() {
|
||||||
loadGroup()
|
await loadGroup()
|
||||||
|
|
||||||
searchList.value = []
|
searchList.value = []
|
||||||
filtercustom.value = [{ 'profile.mygroups': { $elemMatch: {groupname: {$eq: groupname.value }} } } ]
|
filtercustom.value = [{ 'profile.mygroups': { $elemMatch: {groupname: {$eq: groupname.value }} } } ]
|
||||||
filtercustom_rich.value = [{ req_users: { $elemMatch: {username: {$eq: userStore.my.username }} } } ]
|
|
||||||
arrfilterand.value = []
|
arrfilterand.value = []
|
||||||
|
filtercustom_rich.value = []
|
||||||
//++TODO: sistemare la filtercustom ... richieste...
|
//++TODO: sistemare la filtercustom ... richieste...
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,11 +127,11 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
function extraparams() {
|
function extraparams() {
|
||||||
let lk_tab = 'users'
|
let lk_tab = ''
|
||||||
let lk_LF = 'userId'
|
let lk_LF = ''
|
||||||
let lk_FF = '_id'
|
let lk_FF = ''
|
||||||
let lk_as = 'user'
|
let lk_as = ''
|
||||||
let af_objId_tab = 'myId'
|
let af_objId_tab = ''
|
||||||
|
|
||||||
return {
|
return {
|
||||||
lookup1: {
|
lookup1: {
|
||||||
@@ -138,13 +141,29 @@ export default defineComponent({
|
|||||||
lk_as,
|
lk_as,
|
||||||
af_objId_tab,
|
af_objId_tab,
|
||||||
lk_proj: {
|
lk_proj: {
|
||||||
username: 1,
|
'username': 1,
|
||||||
name: 1,
|
|
||||||
'profile.img': 1,
|
'profile.img': 1,
|
||||||
'profile.qualifica': 1,
|
'profile.qualifica': 1,
|
||||||
}
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function extraparams_rich() {
|
||||||
|
return {
|
||||||
|
querytype: shared_consts.QUERYTYPE_MYGROUP,
|
||||||
|
myid: mygrp.value ? mygrp.value._id : '',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function numUsers() {
|
||||||
|
return users_in_group.value ? users_in_group.value.length : 0
|
||||||
|
}
|
||||||
|
function numAdmins() {
|
||||||
|
return (mygrp.value && mygrp.value.admins) ? mygrp.value.admins.length : 0
|
||||||
|
}
|
||||||
|
function listaAdmins() {
|
||||||
|
return (mygrp.value && mygrp.value.admins) ? mygrp.value.admins.map((rec) => rec.username).join(', ') : ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -174,7 +193,12 @@ export default defineComponent({
|
|||||||
colmyUserPeople,
|
colmyUserPeople,
|
||||||
colmyUserGroup,
|
colmyUserGroup,
|
||||||
extraparams,
|
extraparams,
|
||||||
|
extraparams_rich,
|
||||||
tab,
|
tab,
|
||||||
|
tabgrp,
|
||||||
|
numUsers,
|
||||||
|
numAdmins,
|
||||||
|
listaAdmins,
|
||||||
users_in_group,
|
users_in_group,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,19 +15,6 @@
|
|||||||
<div class="col-12 text-h7 text-blue text-shadow-2">
|
<div class="col-12 text-h7 text-blue text-shadow-2">
|
||||||
{{ mygrp.groupname }}
|
{{ mygrp.groupname }}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
<CMyFieldRec
|
|
||||||
title="Visibilità"
|
|
||||||
table="mygroups"
|
|
||||||
:columns="colmyUserGroup"
|
|
||||||
:rec="mygrp"
|
|
||||||
field="visibility"
|
|
||||||
:canModify="false">
|
|
||||||
</CMyFieldRec>
|
|
||||||
</div>
|
|
||||||
<div class="col-12 text-h7">
|
|
||||||
<span v-if="checkifShow('descr')">{{ mygrp.descr }}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<q-btn
|
<q-btn
|
||||||
@@ -45,24 +32,57 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="mygrp.title">
|
<q-tabs v-model="tabgrp" class="text-blue">
|
||||||
<br>
|
<q-tab label="Info" name="info" icon="fas fa-info"></q-tab>
|
||||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
<q-tab v-if="!!mygrp.note && userStore.IsMyGroupByGroupname(mygrp.groupname)" label="Pagina" name="page" icon="fas fa-file-word"></q-tab>
|
||||||
<div v-if="mygrp.note" v-html="mygrp.note">
|
<q-tab v-if="userStore.IsMyGroupByGroupname(mygrp.groupname)" label="Iscritti" name="membri" icon="fas fa-users"></q-tab>
|
||||||
</div>
|
<q-tab v-if="tools.iAmAdminGroup(groupname)" label="Richieste" name="rich" icon="fas fa-user-plus"></q-tab>
|
||||||
</div>
|
</q-tabs>
|
||||||
</div>
|
|
||||||
|
|
||||||
<q-btn
|
<q-tab-panels v-model="tabgrp" animated>
|
||||||
v-if="mygrp.admins.includes(userStore.my.username)" icon="fas fa-pencil-alt"
|
<q-tab-panel name="info">
|
||||||
color="blue"
|
<div>
|
||||||
size="md"
|
<q-card>
|
||||||
:label="$t('otherpages.modifgrp')"
|
<CMyFieldRec
|
||||||
to="/editgrp">
|
title="Visibilità"
|
||||||
</q-btn>
|
table="mygroups"
|
||||||
|
:id="mygrp._id"
|
||||||
|
:columns="colmyUserGroup"
|
||||||
|
:rec="mygrp"
|
||||||
|
field="visibility"
|
||||||
|
:canEdit="true"
|
||||||
|
:canModify="true">
|
||||||
|
</CMyFieldRec>
|
||||||
|
</q-card>
|
||||||
|
<q-card>
|
||||||
|
<div class="members">
|
||||||
|
<q-icon name="fas fa-users"></q-icon>
|
||||||
|
{{ numUsers() }} {{ numUsers() === 1 ? t('groups.member') : t('groups.members') }}
|
||||||
|
</div>
|
||||||
|
<div class="admins">
|
||||||
|
<q-icon name="fas fa-user-cog"></q-icon>
|
||||||
|
{{ numAdmins() }} {{ numAdmins() === 1 ? t('groups.admin') : t('groups.admins') }}
|
||||||
|
</div>
|
||||||
|
<div v-for="(user, index) of mygrp.admins" :key="index">
|
||||||
|
<CMyUser
|
||||||
|
:mycontact="user"
|
||||||
|
:visu="costanti.FIND_PEOPLE"
|
||||||
|
@setCmd="setCmd"
|
||||||
|
>
|
||||||
|
</CMyUser>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<q-card>
|
||||||
|
<br>
|
||||||
|
<div class="col-12 text-h7">
|
||||||
|
<span v-if="checkifShow('descr')">{{ mygrp.descr }}</span>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
<div v-if="mygrp.title" class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
<div v-if="mygrp.title" class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
||||||
|
<q-card>
|
||||||
<div class="col-6 q-ma-xs">
|
<div class="col-6 q-ma-xs">
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="getLinkGrpTelegram()" icon="fab fa-telegram"
|
v-if="getLinkGrpTelegram()" icon="fab fa-telegram"
|
||||||
@@ -84,15 +104,22 @@
|
|||||||
:href="getLinkWebSite()" target="__blank">
|
:href="getLinkWebSite()" target="__blank">
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div v-if="tools.iAmAdminGroup(groupname)">
|
|
||||||
<q-tabs v-model="tab" class="text-blue">
|
|
||||||
<q-tab label="Membri" name="membri" icon="fas fa-users"></q-tab>
|
|
||||||
<q-tab label="Richieste" name="rich" icon="fas fa-user-plus"></q-tab>
|
|
||||||
</q-tabs>
|
|
||||||
|
|
||||||
<q-tab-panels v-model="tab" animated>
|
</q-tab-panel>
|
||||||
|
|
||||||
|
<q-tab-panel name="page">
|
||||||
|
<div v-if="mygrp.title">
|
||||||
|
<br>
|
||||||
|
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||||
|
<div v-if="mygrp.note" v-html="mygrp.note">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-tab-panel>
|
||||||
|
|
||||||
<q-tab-panel name="membri">
|
<q-tab-panel name="membri">
|
||||||
<CGridTableRec
|
<CGridTableRec
|
||||||
ref="tabMembri"
|
ref="tabMembri"
|
||||||
@@ -102,7 +129,7 @@
|
|||||||
prop_colkey="_id"
|
prop_colkey="_id"
|
||||||
col_title="username"
|
col_title="username"
|
||||||
:vertical="costanti.VISUTABLE_LISTA"
|
:vertical="costanti.VISUTABLE_LISTA"
|
||||||
nodataLabel="Nessun Membro"
|
nodataLabel="Nessun Iscritto"
|
||||||
:prop_search="true"
|
:prop_search="true"
|
||||||
hint="Username da trovare"
|
hint="Username da trovare"
|
||||||
:finder="false"
|
:finder="false"
|
||||||
@@ -119,12 +146,13 @@
|
|||||||
:showCol="false"
|
:showCol="false"
|
||||||
:extrafield="groupname"
|
:extrafield="groupname"
|
||||||
:extraparams="extraparams()"
|
:extraparams="extraparams()"
|
||||||
:visufind="costanti.REQ_REMOVE_USER_TO_GROUP"
|
:visufind="tools.iAmAdminGroup(groupname) ? costanti.REQ_REMOVE_USER_TO_GROUP : costanti.FIND_PEOPLE"
|
||||||
>
|
>
|
||||||
|
|
||||||
</CGridTableRec>
|
</CGridTableRec>
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
<q-tab-panel name="rich">
|
<q-tab-panel name="rich">
|
||||||
|
|
||||||
<CGridTableRec
|
<CGridTableRec
|
||||||
prop_mytable="mygroups"
|
prop_mytable="mygroups"
|
||||||
prop_mytitle=""
|
prop_mytitle=""
|
||||||
@@ -132,7 +160,7 @@
|
|||||||
prop_colkey="_id"
|
prop_colkey="_id"
|
||||||
col_title="username"
|
col_title="username"
|
||||||
:vertical="costanti.VISUTABLE_LISTA"
|
:vertical="costanti.VISUTABLE_LISTA"
|
||||||
nodataLabel=" "
|
nodataLabel="Nessuna Richiesta in sospeso"
|
||||||
:prop_search="false"
|
:prop_search="false"
|
||||||
hint="Username da trovare"
|
hint="Username da trovare"
|
||||||
:finder="false"
|
:finder="false"
|
||||||
@@ -147,7 +175,7 @@
|
|||||||
:showType="costanti.SHOW_USERINFO"
|
:showType="costanti.SHOW_USERINFO"
|
||||||
keyMain=""
|
keyMain=""
|
||||||
:showCol="false"
|
:showCol="false"
|
||||||
:extraparams="extraparams()"
|
:extraparams="extraparams_rich()"
|
||||||
:extrafield="groupname"
|
:extrafield="groupname"
|
||||||
:visufind="costanti.REQ_ADD_USER_TO_GROUP"
|
:visufind="costanti.REQ_ADD_USER_TO_GROUP"
|
||||||
>
|
>
|
||||||
@@ -156,7 +184,13 @@
|
|||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
</q-tab-panels>
|
</q-tab-panels>
|
||||||
|
|
||||||
</div>
|
<q-btn
|
||||||
|
v-if="mygrp.admins.includes(userStore.my.username)" icon="fas fa-pencil-alt"
|
||||||
|
color="blue"
|
||||||
|
size="md"
|
||||||
|
:label="$t('otherpages.modifgrp')"
|
||||||
|
to="/editgrp">
|
||||||
|
</q-btn>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="fit column no-wrap justify-evenly items-center content-start">
|
<div v-else class="fit column no-wrap justify-evenly items-center content-start">
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
prop_colkey="_id"
|
prop_colkey="_id"
|
||||||
col_title="groupname"
|
col_title="groupname"
|
||||||
:vertical="costanti.VISUTABLE_LISTA"
|
:vertical="costanti.VISUTABLE_LISTA"
|
||||||
nodataLabel="Nessuna Richiesta in sospeso"
|
nodataLabel=" Nessun Gruppo"
|
||||||
:prop_search="true"
|
:prop_search="true"
|
||||||
hint="nome del gruppo da trovare"
|
hint="nome del gruppo da trovare"
|
||||||
:finder="true"
|
:finder="true"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import { useQuasar } from 'quasar'
|
|||||||
import { costanti } from '@costanti'
|
import { costanti } from '@costanti'
|
||||||
import { IUserFields } from 'model'
|
import { IUserFields } from 'model'
|
||||||
import { shared_consts } from '@/common/shared_vuejs'
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
|
import { static_data } from '@/db/static_data'
|
||||||
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
@@ -106,6 +107,7 @@ export default defineComponent({
|
|||||||
myusername,
|
myusername,
|
||||||
userStore,
|
userStore,
|
||||||
t,
|
t,
|
||||||
|
static_data,
|
||||||
animation,
|
animation,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,11 +8,13 @@
|
|||||||
</q-avatar>
|
</q-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div v-if="static_data.functionality.SHOW_NAMESURNAME">
|
||||||
<div class="text-h6">
|
<div class="text-h6">
|
||||||
<span v-if="checkifShow('name')"> {{ myuser.name }}</span> <span v-if="checkifShow('surname')">{{
|
<span v-if="checkifShow('name')"> {{ myuser.name }}</span> <span v-if="checkifShow('surname')">{{
|
||||||
myuser.surname
|
myuser.surname
|
||||||
}}</span>
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div class="col-12 text-h7 text-blue text-shadow-2">
|
<div class="col-12 text-h7 text-blue text-shadow-2">
|
||||||
{{ myuser.username }}
|
{{ myuser.username }}
|
||||||
</div>
|
</div>
|
||||||
@@ -38,7 +40,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="myuser.name">
|
<div v-if="myuser._id">
|
||||||
<div class="col-12 text-h8 q-mt-sm" v-if="myuser.profile.qualifica">
|
<div class="col-12 text-h8 q-mt-sm" v-if="myuser.profile.qualifica">
|
||||||
<em><span class="qualifica">{{ myuser.profile.qualifica }}</span></em>
|
<em><span class="qualifica">{{ myuser.profile.qualifica }}</span></em>
|
||||||
</div>
|
</div>
|
||||||
@@ -55,7 +57,7 @@
|
|||||||
to="/editprofile">
|
to="/editprofile">
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
|
||||||
<div v-if="myuser.name" class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
<div v-if="myuser._id" class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
||||||
|
|
||||||
<div class="col-6 q-ma-xs">
|
<div class="col-6 q-ma-xs">
|
||||||
<q-btn
|
<q-btn
|
||||||
@@ -117,7 +119,7 @@
|
|||||||
|
|
||||||
</CTitleBanner>
|
</CTitleBanner>
|
||||||
|
|
||||||
<div v-if="myuser.name">
|
<div v-if="myuser._id">
|
||||||
<CTitleBanner
|
<CTitleBanner
|
||||||
class="" :title="$t('dashboard.info')" bgcolor="bg-primary" clcolor="text-white"
|
class="" :title="$t('dashboard.info')" bgcolor="bg-primary" clcolor="text-white"
|
||||||
myclass="myshad" :canopen="true">
|
myclass="myshad" :canopen="true">
|
||||||
|
|||||||