- Gruppi
@@ -1,23 +1,23 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="12"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
DIRECTORY_SERVER="freeplanet_serverside"
|
DIRECTORY_SERVER="freeplanet_serverside"
|
||||||
SERVERDIR_WEBSITE=""
|
SERVERDIR_WEBSITE=""
|
||||||
SERVERPW_WEBSITE=""
|
SERVERPW_WEBSITE=""
|
||||||
APP_URL="http://localhost"
|
APP_URL="http://localhost"
|
||||||
URL_FACEBOOK="https://www.facebook.com/"
|
URL_FACEBOOK="https://www.facebook.com/freeplanetapp"
|
||||||
PROVA_PAOLO="PROVA ENV FUNZIONA!"
|
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="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="perseo@freeplanet.app"
|
TEST_EMAIL="paolo@freeplanet.app"
|
||||||
TEST_USERNAME="paoloar773"
|
TEST_USERNAME="paoloar773"
|
||||||
TEST_PASSWORD="passpao1fr@1A"
|
TEST_PASSWORD=""
|
||||||
TEST_APORTADOR=""
|
TEST_APORTADOR=""
|
||||||
PUBLICKEY_PUSH='BDncvMiUZmjaCG2Kr1V9N0_33hOG-AuNSbHSvL24y2dzBiUjAxKm02emx5SeJvz2IGmtRf6YqCgopeQwCwUmZw8'
|
PUBLICKEY_PUSH='BDncvMiUZmjaCG2Kr1V9N0_33hOG-AuNSbHSvL24y2dzBiUjAxKm02emx5SeJvz2IGmtRf6YqCgopeQwCwUmZw8'
|
||||||
IN_CONSTRUCTION="0"
|
IN_CONSTRUCTION="0"
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="12"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
DIRECTORY_SERVER=freeplanet_serverside
|
DIRECTORY_SERVER=freeplanet_serverside
|
||||||
SERVERDIR_WEBSITE=popolodelnuovomondo.app
|
SERVERDIR_WEBSITE=www.insiemesipuo.app
|
||||||
SERVERPW_WEBSITE=pwdadmin@1AOK
|
SERVERPW_WEBSITE=pwdadmin@1AOK
|
||||||
APP_URL="https://popolodelnuovomondo.insiemesipuo.app"
|
APP_URL="https://www.insiemesipuo.app"
|
||||||
URL_FACEBOOK="https://www.facebook.com/"
|
URL_FACEBOOK=""
|
||||||
PROVA_PAOLO="PROVA ENV FUNZIONA!"
|
PROVA_PAOLO=""
|
||||||
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='freeplanet-logo-full.svg'
|
LOGO_REG='insiemesipuo-logo-full.png'
|
||||||
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/freeplanet_supporto"
|
TELEGRAM_SUPPORT="https://t.me/"
|
||||||
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||||
TEST_CELL=""
|
TEST_CELL=""
|
||||||
ISTEST=0
|
ISTEST=0
|
||||||
|
|||||||
16
.env.test
@@ -1,23 +1,23 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="12"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
DIRECTORY_SERVER=test.freeplanet_serverside
|
DIRECTORY_SERVER=test.freeplanet_serverside
|
||||||
SERVERDIR_WEBSITE="testpopolodelnuovomondo.app"
|
SERVERDIR_WEBSITE="test.insiemesipuo.app"
|
||||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||||
APP_URL="https://testpopolodelnuovomondo.insiemesipuo.app"
|
APP_URL="https://test.insiemesipuo.app"
|
||||||
URL_FACEBOOK="https://www.facebook.com/"
|
URL_FACEBOOK=""
|
||||||
PROVA_PAOLO="PROVA ENV FUNZIONA!"
|
PROVA_PAOLO=""
|
||||||
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="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"
|
||||||
TEST_USERNAME="paoloar77"
|
TEST_USERNAME="paoloar77"
|
||||||
TEST_PASSWORD="passpao1fr@1A"
|
TEST_PASSWORD=""
|
||||||
TEST_APORTADOR=""
|
TEST_APORTADOR=""
|
||||||
PUBLICKEY_PUSH="BNRBtL3iaLVGW-aQckwQBmh5uKKzcizOZsMjnzCtSuHkssEhbyioEN2E_CwItDLDShMO-OQ1uhK51ty6zG_gCT8"
|
PUBLICKEY_PUSH="BNRBtL3iaLVGW-aQckwQBmh5uKKzcizOZsMjnzCtSuHkssEhbyioEN2E_CwItDLDShMO-OQ1uhK51ty6zG_gCT8"
|
||||||
IN_CONSTRUCTION="0"
|
IN_CONSTRUCTION="0"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="1"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
@@ -11,7 +11,7 @@ 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="http://192.168.1.8:3000"
|
MONGODB_HOST="http://192.168.0.200:3000"
|
||||||
LOGO_REG="freeplanet-logo-full.svg"
|
LOGO_REG="freeplanet-logo-full.svg"
|
||||||
TEST_NAME="Paolo"
|
TEST_NAME="Paolo"
|
||||||
TEST_SURNAME="Arena"
|
TEST_SURNAME="Arena"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="1"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="1"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
448
_ALL_SITES/freeplanet.app/db/data/popolazione.js
Normal file
@@ -422,6 +422,17 @@ const baseroutes: IListRoutes[] = [
|
|||||||
inmenu: true,
|
inmenu: true,
|
||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
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 +444,17 @@ const baseroutes: IListRoutes[] = [
|
|||||||
inmenu: false,
|
inmenu: false,
|
||||||
infooter: false,
|
infooter: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
order: 135,
|
||||||
|
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/freeplanet.app/favicon.ico
Executable file
|
After Width: | Height: | Size: 15 KiB |
BIN
_ALL_SITES/freeplanet.app/images/favicon-16x16.png
Executable file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
_ALL_SITES/freeplanet.app/images/favicon-32x32.png
Executable file
|
After Width: | Height: | Size: 2.2 KiB |
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="1"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
@@ -11,7 +11,7 @@ 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="http://192.168.1.8:3000"
|
MONGODB_HOST="http://192.168.0.200:3000"
|
||||||
LOGO_REG="freeplanet-logo-full.svg"
|
LOGO_REG="freeplanet-logo-full.svg"
|
||||||
TEST_NAME="Paolo"
|
TEST_NAME="Paolo"
|
||||||
TEST_SURNAME="Arena"
|
TEST_SURNAME="Arena"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="1"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
@@ -12,7 +12,7 @@ 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='freeplanet-logo-full.svg'
|
LOGO_REG='insiemesipuo-logo-full.png'
|
||||||
TEST_NAME=""
|
TEST_NAME=""
|
||||||
TEST_SURNAME=""
|
TEST_SURNAME=""
|
||||||
TEST_EMAIL=""
|
TEST_EMAIL=""
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="1"
|
APP_ID="1"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
BIN
_ALL_SITES/insiemesipuo.app/images/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-android-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-android-icon-48x48.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-android-icon-96x96.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-apple-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-apple-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-apple-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-apple-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-apple-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
_ALL_SITES/insiemesipuo.app/images/isp-favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="12"
|
APP_ID="12"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="12"
|
APP_ID="12"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.1.6"
|
APP_VERSION="0.1.7"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="12"
|
APP_ID="12"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
58
package.json
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "popolodelnuovomondo",
|
"name": "insiemesipuo",
|
||||||
"version": "0.0.8",
|
"version": "0.1.0",
|
||||||
"description": "Popolo Del Nuovo Mondo",
|
"description": "Insieme Si Puo",
|
||||||
"productName": "Popolo Del Nuovo Mondo",
|
"productName": "Insieme Si Puo",
|
||||||
"author": "Paolo Arena",
|
"author": "Paolo Arena",
|
||||||
"private": true,
|
"private": true,
|
||||||
"keywords": [
|
"keywords": [
|
||||||
@@ -23,25 +23,25 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "0.21.4",
|
"axios": "0.21.4",
|
||||||
"@vue/eslint-config-standard": "5.1.2",
|
"@vue/eslint-config-standard": "5.1.2",
|
||||||
"@quasar/extras": "^1.12.4",
|
"@quasar/extras": "^1.12.2",
|
||||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.12",
|
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.11",
|
||||||
"@vue/compat": "^3.2.26",
|
"@vue/compat": "^3.2.26",
|
||||||
"@vue/compiler-sfc": "^3.2.26",
|
"@vue/compiler-sfc": "^3.2.26",
|
||||||
"@vuelidate/core": "^2.0.0-alpha.34",
|
"@vuelidate/core": "^2.0.0-alpha.32",
|
||||||
"@vuelidate/validators": "^2.0.0-alpha.26",
|
"@vuelidate/validators": "^2.0.0-alpha.25",
|
||||||
"acorn": "^8.7.0",
|
"acorn": "^8.6.0",
|
||||||
"autoprefixer": "^10.4.2",
|
"autoprefixer": "^10.4.0",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"core-js": "^3.20.3",
|
"core-js": "^3.20.0",
|
||||||
"crypto": "^1.0.1",
|
"crypto": "^1.0.1",
|
||||||
"date-fns": "^2.28.0",
|
"date-fns": "^2.27.0",
|
||||||
"dotenv": "^11.0.0",
|
"dotenv": "^10.0.0",
|
||||||
"echarts": "^5.2.2",
|
"echarts": "^5.2.2",
|
||||||
"eslint-plugin-quasar": "^1.1.0",
|
"eslint-plugin-quasar": "^1.0.0",
|
||||||
"eslint-plugin-standard": "^5.0.0",
|
"eslint-plugin-standard": "^5.0.0",
|
||||||
"graphql": "^16.2.0",
|
"graphql": "^16.1.0",
|
||||||
"graphql-tag": "^2.12.6",
|
"graphql-tag": "^2.12.6",
|
||||||
"gsap": "^3.9.1",
|
"gsap": "^3.9.0",
|
||||||
"jquery": "^3.6.0",
|
"jquery": "^3.6.0",
|
||||||
"js-cookie": "^3.0.1",
|
"js-cookie": "^3.0.1",
|
||||||
"localforage": "^1.10.0",
|
"localforage": "^1.10.0",
|
||||||
@@ -49,9 +49,9 @@
|
|||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"npm": "^8.3.0",
|
"npm": "^8.3.0",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pinia": "^2.0.9",
|
"pinia": "^2.0.6",
|
||||||
"prerender-spa-plugin": "^3.4.0",
|
"prerender-spa-plugin": "^3.4.0",
|
||||||
"quasar": "^2.4.12",
|
"quasar": "^2.3.4",
|
||||||
"quasar-extras": "^2.0.9",
|
"quasar-extras": "^2.0.9",
|
||||||
"register-service-worker": "^1.7.2",
|
"register-service-worker": "^1.7.2",
|
||||||
"vee-validate": "^4.4.10",
|
"vee-validate": "^4.4.10",
|
||||||
@@ -72,9 +72,9 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"node-sass": "6.0.1",
|
"node-sass": "6.0.1",
|
||||||
"webpack": "^5.66.0",
|
"webpack": "^5.0.0",
|
||||||
"@quasar/app": "^3.2.9",
|
"@quasar/app": "^3.2.5",
|
||||||
"@quasar/quasar-app-extension-qcalendar": "^4.0.0-beta.12",
|
"@quasar/quasar-app-extension-qcalendar": "^4.0.0-beta.11",
|
||||||
"@types/bcryptjs": "^2.4.2",
|
"@types/bcryptjs": "^2.4.2",
|
||||||
"@types/dotenv": "^8.2.0",
|
"@types/dotenv": "^8.2.0",
|
||||||
"@types/googlemaps": "^3.43.3",
|
"@types/googlemaps": "^3.43.3",
|
||||||
@@ -84,31 +84,31 @@
|
|||||||
"@types/nprogress": "^0.2.0",
|
"@types/nprogress": "^0.2.0",
|
||||||
"@types/vue-tel-input": "^2.1.2",
|
"@types/vue-tel-input": "^2.1.2",
|
||||||
"@types/vuelidate": "^0.7.15",
|
"@types/vuelidate": "^0.7.15",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.10.0",
|
"@typescript-eslint/eslint-plugin": "^5.7.0",
|
||||||
"@typescript-eslint/parser": "^5.10.0",
|
"@typescript-eslint/parser": "^5.7.0",
|
||||||
"eslint": "^8.7.0",
|
"eslint": "^8.4.1",
|
||||||
"eslint-config-prettier": "^8.3.0",
|
"eslint-config-prettier": "^8.3.0",
|
||||||
"eslint-plugin-import": "^2.25.4",
|
"eslint-plugin-import": "^2.25.3",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-promise": "^5.2.0",
|
"eslint-plugin-promise": "^5.2.0",
|
||||||
"eslint-plugin-vue": "^8.3.0",
|
"eslint-plugin-vue": "^8.2.0",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"html-webpack-plugin": "^5.5.0",
|
"html-webpack-plugin": "^5.5.0",
|
||||||
"http-proxy-middleware": "^2.0.1",
|
"http-proxy-middleware": "^2.0.1",
|
||||||
"jest": "^27.4.5",
|
"jest": "^27.4.5",
|
||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"npm-check-updates": "^12.1.0",
|
"npm-check-updates": "^12.0.5",
|
||||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
||||||
"postcss": "^8.4.5",
|
"postcss": "^8.4.5",
|
||||||
"postcss-loader": "^6.2.1",
|
"postcss-loader": "^6.2.1",
|
||||||
"sass-loader": "^12.4.0",
|
"sass-loader": "^12.4.0",
|
||||||
"strip-ansi": "=7.0.1",
|
"strip-ansi": "=7.0.1",
|
||||||
"ts-jest": "^27.1.2",
|
"ts-jest": "^27.1.1",
|
||||||
"ts-loader": "^9.2.6",
|
"ts-loader": "^9.2.6",
|
||||||
"tslint": "^6.1.3",
|
"tslint": "^6.1.3",
|
||||||
"tslint-config-standard": "^9.0.0",
|
"tslint-config-standard": "^9.0.0",
|
||||||
"tslint-loader": "^3.5.4",
|
"tslint-loader": "^3.5.4",
|
||||||
"typescript": "^4.5.5",
|
"typescript": "^4.5.4",
|
||||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||||
"vueify": "^9.4.1",
|
"vueify": "^9.4.1",
|
||||||
"workbox-webpack-plugin": "^6.4.2"
|
"workbox-webpack-plugin": "^6.4.2"
|
||||||
|
|||||||
BIN
public/favicon.ico
Executable file → Normal file
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
public/images/favicon-16x16.png
Executable file → Normal file
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
public/images/favicon-32x32.png
Executable file → Normal file
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
public/images/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 200 KiB |
BIN
public/images/insiemesipuo-logo-full.png
Normal file
|
After Width: | Height: | Size: 205 KiB |
BIN
public/images/isp-android-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/images/isp-android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
public/images/isp-android-icon-48x48.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
public/images/isp-android-icon-96x96.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
public/images/isp-apple-icon-114x114.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/images/isp-apple-icon-120x120.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/images/isp-apple-icon-144x144.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/images/isp-apple-icon-152x152.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
public/images/isp-apple-icon-180x180.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
public/images/isp-favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 190 KiB |
BIN
public/upload/mygroups/noi_siamo_magia.jpg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
public/upload/mygroups/sm_noi_siamo_magia.jpg
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
@@ -146,9 +146,8 @@ module.exports = configure((ctx) => ({
|
|||||||
},
|
},
|
||||||
devServer: {
|
devServer: {
|
||||||
https: false,
|
https: false,
|
||||||
port: 8083,
|
port: 8082,
|
||||||
open: false, // opens browser window automatically
|
open: false, // opens browser window automatically
|
||||||
liveReload: false,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
|
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
|
||||||
@@ -285,21 +284,31 @@ module.exports = configure((ctx) => ({
|
|||||||
},
|
},
|
||||||
|
|
||||||
manifest: {
|
manifest: {
|
||||||
name: 'PopoloDelNuovoMondo',
|
name: 'InsiemeSiPuo',
|
||||||
short_name: 'PdNM',
|
short_name: 'InsiemeSiPuo',
|
||||||
description: 'Popolo del Nuovo Mondo',
|
description: 'Insieme Si Può',
|
||||||
display: 'standalone',
|
display: 'standalone',
|
||||||
orientation: 'portrait',
|
orientation: 'portrait',
|
||||||
background_color: '#ffffff',
|
background_color: '#ffffff',
|
||||||
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',
|
||||||
},
|
},
|
||||||
@@ -337,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
|
||||||
|
|||||||
@@ -54,6 +54,17 @@ export const shared_consts = {
|
|||||||
FIND_PEOPLE: 166,
|
FIND_PEOPLE: 166,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
GROUPSCMD: {
|
||||||
|
SETTRUST: 1121,
|
||||||
|
REQGROUP: 1125,
|
||||||
|
SETGROUP: 1132,
|
||||||
|
REMOVE_FROM_MYGROUP: 1144,
|
||||||
|
REFUSE_REQ_GROUP: 1145,
|
||||||
|
CANCEL_REQ_GROUP: 1146,
|
||||||
|
BLOCK_GROUP: 1155,
|
||||||
|
FIND_GROUP: 1166,
|
||||||
|
},
|
||||||
|
|
||||||
REPORT_FILT_RESP: 1,
|
REPORT_FILT_RESP: 1,
|
||||||
REPORT_FILT_ATTIVITA: 2,
|
REPORT_FILT_ATTIVITA: 2,
|
||||||
|
|
||||||
@@ -673,6 +684,21 @@ export const shared_consts = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
VisibilGroup: [
|
||||||
|
{
|
||||||
|
value: 1,
|
||||||
|
label: 'Pubblico',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 2,
|
||||||
|
label: 'Privato',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 4,
|
||||||
|
label: 'Nascosto',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
Permissions: {
|
Permissions: {
|
||||||
Admin: {
|
Admin: {
|
||||||
value: 1,
|
value: 1,
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ export default defineComponent({
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
let myarr: any = props.imgGall
|
let myarr: any = props.imgGall
|
||||||
gallerylist.value = []
|
gallerylist.value = []
|
||||||
if (myarr) {
|
if (Array.isArray(myarr)) {
|
||||||
myarr.forEach((pic: any) => {
|
myarr.forEach((pic: any) => {
|
||||||
if (pic.imagefile) {
|
if (pic.imagefile) {
|
||||||
gallerylist.value.push(pic)
|
gallerylist.value.push(pic)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import { lists } from '@store/Modules/lists'
|
|||||||
import { IParamsQuery } from 'model'
|
import { IParamsQuery } from 'model'
|
||||||
import { CMyPopupEdit } from '../CMyPopupEdit'
|
import { CMyPopupEdit } from '../CMyPopupEdit'
|
||||||
import { CMyFriends } from '../CMyFriends'
|
import { CMyFriends } from '../CMyFriends'
|
||||||
|
import { CMyGroups } from '../CMyGroups'
|
||||||
import { CMyFieldDb } from '../CMyFieldDb'
|
import { CMyFieldDb } from '../CMyFieldDb'
|
||||||
import { CMySelect } from '../CMySelect'
|
import { CMySelect } from '../CMySelect'
|
||||||
import { CTitleBanner } from '../CTitleBanner'
|
import { CTitleBanner } from '../CTitleBanner'
|
||||||
@@ -27,6 +28,7 @@ import { useGlobalStore } from '@store/globalStore'
|
|||||||
import { useQuasar } from 'quasar'
|
import { useQuasar } from 'quasar'
|
||||||
import { costanti } from '@costanti'
|
import { costanti } from '@costanti'
|
||||||
import translate from '@/globalroutines/util'
|
import translate from '@/globalroutines/util'
|
||||||
|
import { toolsext } from '@store/Modules/toolsext'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'CGridTableRec',
|
name: 'CGridTableRec',
|
||||||
@@ -179,7 +181,7 @@ export default defineComponent({
|
|||||||
default: false
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: { CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends },
|
components: { CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends, CMyGroups },
|
||||||
setup(props, { emit }) {
|
setup(props, { emit }) {
|
||||||
const $q = useQuasar()
|
const $q = useQuasar()
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
@@ -234,6 +236,7 @@ export default defineComponent({
|
|||||||
const selected: any = ref([])
|
const selected: any = ref([])
|
||||||
|
|
||||||
const filter = ref(0)
|
const filter = ref(0)
|
||||||
|
const filtergrp = ref(costanti.MY_GROUPS)
|
||||||
|
|
||||||
const mycodeid = toRef(props, 'prop_codeId')
|
const mycodeid = toRef(props, 'prop_codeId')
|
||||||
|
|
||||||
@@ -1320,6 +1323,7 @@ export default defineComponent({
|
|||||||
myfilterand,
|
myfilterand,
|
||||||
tools,
|
tools,
|
||||||
costanti,
|
costanti,
|
||||||
|
toolsext,
|
||||||
fieldsTable,
|
fieldsTable,
|
||||||
globalStore,
|
globalStore,
|
||||||
searchList,
|
searchList,
|
||||||
@@ -1329,6 +1333,7 @@ export default defineComponent({
|
|||||||
valoriopt,
|
valoriopt,
|
||||||
labelcombo,
|
labelcombo,
|
||||||
filter,
|
filter,
|
||||||
|
filtergrp,
|
||||||
myvertical,
|
myvertical,
|
||||||
showColCheck,
|
showColCheck,
|
||||||
getValueExtra,
|
getValueExtra,
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
<q-spinner-tail size="2em" color="primary"/>
|
<q-spinner-tail size="2em" color="primary"/>
|
||||||
</q-inner-loading>
|
</q-inner-loading>
|
||||||
<q-table
|
<q-table
|
||||||
:grid="myvertical === -1 || myvertical === 2"
|
:grid="myvertical === costanti.VISUTABLE_SCHEDA_USER || myvertical === 2 || myvertical === costanti.VISUTABLE_SCHEDA_GROUP"
|
||||||
flat
|
flat
|
||||||
bordered
|
bordered
|
||||||
class="my-sticky-header-table"
|
class="my-sticky-header-table"
|
||||||
@@ -89,11 +89,11 @@
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<q-toggle
|
<q-toggle
|
||||||
v-for="(filter, index) of arrfilters"
|
v-for="(filt, index) of arrfilters"
|
||||||
:key="index"
|
:key="index"
|
||||||
v-model="myfilterand" :disable="filter.hide"
|
v-model="myfilterand" :disable="filt.hide"
|
||||||
:val="filter.value"
|
:val="filt.value"
|
||||||
:label="filter.label">
|
:label="filt.label">
|
||||||
|
|
||||||
</q-toggle>
|
</q-toggle>
|
||||||
</div>
|
</div>
|
||||||
@@ -244,7 +244,9 @@
|
|||||||
<div v-if="choose_visutype" class="">
|
<div v-if="choose_visutype" class="">
|
||||||
<q-radio v-model="myvertical" :val="2" label="Lista"
|
<q-radio v-model="myvertical" :val="2" label="Lista"
|
||||||
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
||||||
<q-radio v-model="myvertical" :val="-1" label="Scheda"
|
<q-radio v-if="mytable === toolsext.TABMYGROUPS" v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_GROUP" label="Scheda"
|
||||||
|
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
||||||
|
<q-radio v-else v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_USER" label="Scheda"
|
||||||
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
||||||
<q-radio v-model="myvertical" :val="0" label="Tabella"
|
<q-radio v-model="myvertical" :val="0" label="Tabella"
|
||||||
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
@update:model-value="tools.setCookie('myv', myvertical) "/>
|
||||||
@@ -297,7 +299,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<template v-slot:item="props">
|
<template v-slot:item="props">
|
||||||
<div v-if="(showType === costanti.SHOW_USERINFO) || (myvertical === 2)" class="fill-all-width">
|
<div v-if="((showType === costanti.SHOW_USERINFO) && myvertical !== costanti.VISUTABLE_SCHEDA_USER) || ((myvertical === 2) && (tablesel === 'users' || tablesel === 'myskills'))" class="fill-all-width">
|
||||||
<div>
|
<div>
|
||||||
<CMyFriends
|
<CMyFriends
|
||||||
v-model="filter"
|
v-model="filter"
|
||||||
@@ -307,6 +309,18 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div v-else-if="((showType === costanti.SHOW_GROUPINFO) && myvertical !== costanti.VISUTABLE_SCHEDA_GROUP) || ((myvertical === 2) && (tablesel === 'mygroups'))" class="fill-all-width">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<CMyGroups
|
||||||
|
v-model="filtergrp"
|
||||||
|
:finder="false"
|
||||||
|
:mygrp="props.row"
|
||||||
|
:visu="costanti.FIND_GROUP"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else
|
||||||
|
|||||||
@@ -114,6 +114,11 @@ export default defineComponent({
|
|||||||
return (arr) ? arr.length : 0
|
return (arr) ? arr.length : 0
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const numAskSentGroups = computed(() => {
|
||||||
|
const arr = userStore.my.profile.asked_groups
|
||||||
|
return (arr) ? arr.length : 0
|
||||||
|
})
|
||||||
|
|
||||||
const numAskTrust = computed(() => {
|
const numAskTrust = computed(() => {
|
||||||
if (!listTrusted.value)
|
if (!listTrusted.value)
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
4
src/components/CMyGroup/CMyGroup.scss
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
.myflex{
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
86
src/components/CMyGroup/CMyGroup.ts
Executable file
@@ -0,0 +1,86 @@
|
|||||||
|
import { defineComponent, onMounted, PropType, ref, watch } from 'vue'
|
||||||
|
import { useUserStore } from '@store/UserStore'
|
||||||
|
import { IMyGroup, IImgGallery, IUserFields, IUserProfile } from 'model'
|
||||||
|
import { costanti } from '@costanti'
|
||||||
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
|
import { tools } from '@store/Modules/tools'
|
||||||
|
import { useQuasar } from 'quasar'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'CMyGroup',
|
||||||
|
emits: ['setCmd'],
|
||||||
|
props: {
|
||||||
|
mygrp: {
|
||||||
|
type: Object as PropType<IMyGroup | null>,
|
||||||
|
required: false,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
mygroupname: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
visu: {
|
||||||
|
type: Number,
|
||||||
|
required: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
setup(props, { emit }) {
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
const $q = useQuasar()
|
||||||
|
const { t } = useI18n()
|
||||||
|
const $router = useRouter()
|
||||||
|
const $route = useRoute()
|
||||||
|
|
||||||
|
const groupname = ref('')
|
||||||
|
|
||||||
|
const grp = ref(<IMyGroup | null>null)
|
||||||
|
|
||||||
|
watch(() => props.mygrp, (newval, oldval) => {
|
||||||
|
mounted()
|
||||||
|
})
|
||||||
|
|
||||||
|
function mounted() {
|
||||||
|
if (!props.mygrp) {
|
||||||
|
if (props.mygroupname) {
|
||||||
|
groupname.value = props.mygroupname
|
||||||
|
//++Todo: carica contact
|
||||||
|
grp.value = null
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (props.mygrp) {
|
||||||
|
grp.value = props.mygrp
|
||||||
|
groupname.value = props.mygrp.groupname
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getImgGroup(group: IMyGroup) {
|
||||||
|
return userStore.getImgByGroup(group)
|
||||||
|
}
|
||||||
|
|
||||||
|
function naviga(path: string) {
|
||||||
|
$router.push(path)
|
||||||
|
}
|
||||||
|
|
||||||
|
function setCmd(cmd: number, myusername: string, value: any = '') {
|
||||||
|
emit('setCmd', cmd, myusername, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(mounted)
|
||||||
|
|
||||||
|
return {
|
||||||
|
grp,
|
||||||
|
costanti,
|
||||||
|
getImgGroup,
|
||||||
|
naviga,
|
||||||
|
setCmd,
|
||||||
|
shared_consts,
|
||||||
|
userStore,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
123
src/components/CMyGroup/CMyGroup.vue
Executable file
@@ -0,0 +1,123 @@
|
|||||||
|
<template>
|
||||||
|
<div v-if="grp">
|
||||||
|
<q-item class="q-my-sm" clickable>
|
||||||
|
<q-item-section avatar @click="naviga(`/grp/` + grp.groupname)">
|
||||||
|
<q-avatar size="60px">
|
||||||
|
<q-img :src="getImgGroup(grp)" :alt="grp.groupname" img-class="imgprofile" height="60px"/>
|
||||||
|
</q-avatar>
|
||||||
|
</q-item-section>
|
||||||
|
|
||||||
|
<q-item-section @click="naviga(`/grp/` + grp.groupname)">
|
||||||
|
<q-item-label><strong>{{ grp.name }} {{ grp.surname }}</strong> ({{ grp.groupname }})
|
||||||
|
</q-item-label>
|
||||||
|
<q-item-label v-if="grp.profile" caption lines="1"><em>{{ grp.profile.qualifica }}</em></q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
|
||||||
|
<q-item-section side v-if="visu === costanti.MY_GROUPS">
|
||||||
|
<q-item-label>
|
||||||
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
|
<q-menu>
|
||||||
|
<q-list style="min-width: 150px">
|
||||||
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
|
@click="setCmd(shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUP, grp.groupname)">
|
||||||
|
<q-item-section>{{ $t('groups.remove_from_mygroups') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
<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-section>{{ $t('groups.block_group') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
</q-menu>
|
||||||
|
</q-btn>
|
||||||
|
</q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section side v-if="visu === costanti.REQ_GROUP">
|
||||||
|
<q-item-label>
|
||||||
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
|
<q-menu>
|
||||||
|
<q-list v-if="true" style="min-width: 150px">
|
||||||
|
<q-item clickable v-close-popup @click="setCmd(shared_consts.GROUPSCMD.SETGROUP, grp.groupname)">
|
||||||
|
<q-item-section>{{ $t('groups.accept_group') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
<q-list style="min-width: 150px">
|
||||||
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
|
@click="setCmd(shared_consts.GROUPSCMD.REQGROUP, grp.groupname, false)">
|
||||||
|
<q-item-section>{{ $t('groups.reject_ask_group') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
</q-menu>
|
||||||
|
</q-btn>
|
||||||
|
</q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section side v-if="visu === costanti.ASK_SENT_GROUPS">
|
||||||
|
<q-item-label>
|
||||||
|
<q-btn rounded icon="fas fa-ellipsis-h">
|
||||||
|
<q-menu>
|
||||||
|
<q-list style="min-width: 150px">
|
||||||
|
<q-item clickable icon="fas fa-user-minus" v-close-popup
|
||||||
|
@click="setCmd(shared_consts.GROUPSCMD.CANCEL_REQ_GROUP, grp.groupname)">
|
||||||
|
<q-item-section>{{ $t('groups.cancel_ask_group') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
</q-menu>
|
||||||
|
</q-btn>
|
||||||
|
</q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section side v-if="visu === costanti.FIND_GROUP">
|
||||||
|
<q-item-label>
|
||||||
|
<q-btn v-if="grp.admins && grp.admins.includes(userStore.my.username)" rounded :icon="userStore.IsMyGroupByGroupname(grp.groupname) ? `fas fa-ellipsis-h` : `fas fa-user`">
|
||||||
|
<q-menu>
|
||||||
|
<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-section>{{ $t('groups.ask_group') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
<q-list v-else-if="(!userStore.IsMyGroupByGroupname(grp.groupname) && userStore.IsAskedGroupByUsername(grp.groupname))" style="min-width: 200px">
|
||||||
|
<q-item clickable v-close-popup @click="setCmd(shared_consts.GROUPSCMD.REQGROUP, grp.groupname, false)">
|
||||||
|
<q-item-section>{{ $t('groups.cancel_ask_group') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
<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-section>{{ $t('groups.remove_from_mygroups') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
</q-menu>
|
||||||
|
</q-btn>
|
||||||
|
</q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
<q-item-section side v-if="visu === costanti.FIND_GROUP">
|
||||||
|
<q-item-label>
|
||||||
|
<q-btn v-if="grp.admins && grp.admins.includes(userStore.my.username)" rounded :icon="userStore.IsMyGroupByGroupname(grp.groupname) ? `fas fa-ellipsis-h` : `fas fa-user`">
|
||||||
|
<q-menu>
|
||||||
|
<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-section>{{ $t('groups.ask_group') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
<q-list v-else-if="(!userStore.IsMyGroupByGroupname(grp.groupname) && userStore.IsAskedGroupByUsername(grp.groupname))" style="min-width: 200px">
|
||||||
|
<q-item clickable v-close-popup @click="setCmd(shared_consts.GROUPSCMD.REQGROUP, grp.groupname, false)">
|
||||||
|
<q-item-section>{{ $t('groups.cancel_ask_group') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
<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-section>{{ $t('groups.remove_from_mygroups') }}</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</q-list>
|
||||||
|
</q-menu>
|
||||||
|
</q-btn>
|
||||||
|
</q-item-label>
|
||||||
|
</q-item-section>
|
||||||
|
</q-item>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./CMyGroup.ts">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './CMyGroup.scss';
|
||||||
|
</style>
|
||||||
1
src/components/CMyGroup/index.ts
Executable file
@@ -0,0 +1 @@
|
|||||||
|
export { default as CMyGroup } from './CMyGroup.vue'
|
||||||
0
src/components/CMyGroups/CMyGroups.scss
Executable file
180
src/components/CMyGroups/CMyGroups.ts
Executable file
@@ -0,0 +1,180 @@
|
|||||||
|
import { CMyGroup } from '@/components/CMyGroup'
|
||||||
|
import { computed, defineComponent, onMounted, PropType, ref, toRef } from 'vue'
|
||||||
|
import { useUserStore } from '@store/UserStore'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
import { useQuasar } from 'quasar'
|
||||||
|
import { costanti } from '@costanti'
|
||||||
|
import { IMyGroup, ISearchList, IUserFields } from 'model'
|
||||||
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
|
import { tools } from '@store/Modules/tools'
|
||||||
|
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'CMyGroups',
|
||||||
|
components: { CMyGroup },
|
||||||
|
emits: ['update:modelValue'],
|
||||||
|
props: {
|
||||||
|
modelValue: {
|
||||||
|
type: Number,
|
||||||
|
required: false,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
finder: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
mygrp: {
|
||||||
|
type: Object as PropType<IMyGroup | null>,
|
||||||
|
required: false,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
mygroupname: {
|
||||||
|
type: String,
|
||||||
|
required: false,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
visu: {
|
||||||
|
type: Number,
|
||||||
|
required: false,
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup(props, { emit }) {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
const $q = useQuasar()
|
||||||
|
const { t } = useI18n()
|
||||||
|
|
||||||
|
const username = ref('')
|
||||||
|
|
||||||
|
const filtroutente = ref(<any[]>[])
|
||||||
|
|
||||||
|
const listgroupsfiltered = computed(() => {
|
||||||
|
let arr: any[] = []
|
||||||
|
try {
|
||||||
|
if (props.modelValue === costanti.GROUPS) {
|
||||||
|
arr = userStore.my.profile.groups
|
||||||
|
} else if (props.modelValue === costanti.MY_GROUPS) {
|
||||||
|
arr = userStore.my.profile.groups
|
||||||
|
// } else if (props.modelValue === costanti.REQ_GROUP) {
|
||||||
|
// arr = userStore.my.profile.req_groups
|
||||||
|
} else if (props.modelValue === costanti.ASK_SENT_GROUP) {
|
||||||
|
arr = userStore.my.profile.asked_groups
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
arr = []
|
||||||
|
}
|
||||||
|
|
||||||
|
return arr
|
||||||
|
})
|
||||||
|
|
||||||
|
const myoptions = computed(() => {
|
||||||
|
const mybutt = []
|
||||||
|
mybutt.push({ label: t('mypages.find_group'), value: costanti.FIND_GROUP })
|
||||||
|
mybutt.push({ label: t('mypages.my_groups') + ' (' + numGroups.value + ')', value: costanti.MY_GROUPS })
|
||||||
|
|
||||||
|
if (numAskSentGroups.value > 0 || props.modelValue === costanti.ASK_SENT_GROUP)
|
||||||
|
mybutt.push({
|
||||||
|
label: t('mypages.request_sent_groups') + ' (' + numAskSentGroups.value + ')',
|
||||||
|
value: costanti.ASK_SENT_GROUP
|
||||||
|
})
|
||||||
|
|
||||||
|
return mybutt
|
||||||
|
})
|
||||||
|
|
||||||
|
const numGroups = computed(() => {
|
||||||
|
const arr = userStore.my.profile.groups
|
||||||
|
return (arr) ? arr.length : 0
|
||||||
|
})
|
||||||
|
|
||||||
|
const numAskSentGroups = computed(() => {
|
||||||
|
const arr = userStore.my.profile.asked_groups
|
||||||
|
return (arr) ? arr.length : 0
|
||||||
|
})
|
||||||
|
|
||||||
|
function loadGroups() {
|
||||||
|
// Carica il profilo di quest'utente
|
||||||
|
if (username.value) {
|
||||||
|
userStore.loadGroups(username.value).then((ris) => {
|
||||||
|
// console.log('ris', ris)
|
||||||
|
if (ris) {
|
||||||
|
userStore.my.profile.groups = ris.listUsersGroup ? ris.listUsersGroup : []
|
||||||
|
userStore.groups = ris.listgroups ? ris.listgroups : []
|
||||||
|
userStore.my.profile.asked_groups = ris.listSentRequestGroups ? ris.listSentRequestGroups : []
|
||||||
|
filtroutente.value = [{ userId: userStore.my._id }]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeFromMyGroups(groupnameDest: string) {
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_removegroup', { username: groupnameDest }),
|
||||||
|
ok: { label: t('dialog.yes'), push: true },
|
||||||
|
cancel: { label: t('dialog.cancel') },
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
|
||||||
|
userStore.setGroupsCmd($q, t, username.value, groupnameDest, shared_consts.GROUPSCMD.REMOVE_FROM_MYGROUP, null).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
userStore.my.profile.groups = userStore.my.profile.groups.filter((rec: IMyGroup) => rec.groupname !== groupnameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.removedgroup'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
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.groups = userStore.my.profile.groups.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) {
|
||||||
|
removeFromMyGroups(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() {
|
||||||
|
username.value = userStore.my.username
|
||||||
|
loadGroups()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateValue(val: number) {
|
||||||
|
emit('update:modelValue', val)
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(mounted)
|
||||||
|
|
||||||
|
return {
|
||||||
|
tools,
|
||||||
|
costanti,
|
||||||
|
shared_consts,
|
||||||
|
filtroutente,
|
||||||
|
listgroupsfiltered,
|
||||||
|
setCmd,
|
||||||
|
updateValue,
|
||||||
|
myoptions,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
53
src/components/CMyGroups/CMyGroups.vue
Executable file
@@ -0,0 +1,53 @@
|
|||||||
|
<template>
|
||||||
|
<div v-if="finder" class="q-gutter-sm q-pa-sm q-pb-sm">
|
||||||
|
<q-btn-toggle
|
||||||
|
:model-value="modelValue"
|
||||||
|
@update:model-value="updateValue"
|
||||||
|
class="my-custom-toggle"
|
||||||
|
no-caps
|
||||||
|
rounded
|
||||||
|
unelevated
|
||||||
|
push
|
||||||
|
toggle-color="primary"
|
||||||
|
color="white"
|
||||||
|
text-color="primary"
|
||||||
|
:options="myoptions"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div v-if="finder" class="">
|
||||||
|
|
||||||
|
<div v-if="modelValue === costanti.FIND_GROUP">
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<q-list>
|
||||||
|
<span v-for="(grp, index) in listgroupsfiltered" :key="index" class="q-my-sm" clickable>
|
||||||
|
<CMyGroup
|
||||||
|
:mygrp="grp"
|
||||||
|
@setCmd="setCmd"
|
||||||
|
:visu="modelValue">
|
||||||
|
</CMyGroup>
|
||||||
|
</span>
|
||||||
|
</q-list>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<q-list class="width-container">
|
||||||
|
<span class="q-my-sm" clickable>
|
||||||
|
<CMyGroup
|
||||||
|
:mygrp="mygrp"
|
||||||
|
@setCmd="setCmd"
|
||||||
|
:visu="visu">
|
||||||
|
</CMyGroup>
|
||||||
|
</span>
|
||||||
|
</q-list>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./CMyGroups.ts">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './CMyGroups';
|
||||||
|
</style>
|
||||||
|
|
||||||
1
src/components/CMyGroups/index.ts
Executable file
@@ -0,0 +1 @@
|
|||||||
|
export {default as CMyGroups} from './CMyGroups.vue'
|
||||||
@@ -399,9 +399,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-else-if="col.fieldtype === costanti.FieldType.html">
|
<div v-else-if="col.fieldtype === costanti.FieldType.html">
|
||||||
<div v-if="isInModif">
|
<div v-if="isInModif">
|
||||||
<div v-if="insertMode">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<p v-if="isInModif" class="text-center">
|
<p v-if="isInModif" class="text-center">
|
||||||
{{ $t('event.testo_di_spiegazione') }}:
|
{{ $t('event.testo_di_spiegazione') }}:
|
||||||
</p>
|
</p>
|
||||||
@@ -692,7 +689,17 @@
|
|||||||
|
|
||||||
</q-input>
|
</q-input>
|
||||||
</div>
|
</div>
|
||||||
</q-popup-edit>
|
<div v-else-if="col.fieldtype === costanti.FieldType.html">
|
||||||
|
<div v-if="!isFieldDb()">
|
||||||
|
<CMyEditor
|
||||||
|
v-model:value="myvalue" :title="!isInModif ? getTitleEditor(col, row) : ''" @keyup.enter.stop
|
||||||
|
:showButtons="false"
|
||||||
|
:canModify="canModify"
|
||||||
|
@update:value="changevalRec"
|
||||||
|
@showandsave="Savedb">
|
||||||
|
</CMyEditor>
|
||||||
|
</div>
|
||||||
|
</div> </q-popup-edit>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,4 +37,5 @@ export * from './CVerifyEmail'
|
|||||||
export * from './CMyUser'
|
export * from './CMyUser'
|
||||||
export * from './CVerifyTelegram'
|
export * from './CVerifyTelegram'
|
||||||
export * from './CMyFriends'
|
export * from './CMyFriends'
|
||||||
|
export * from './CMyGroups'
|
||||||
// export * from './CPreloadImages'
|
// export * from './CPreloadImages'
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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: 'PopoloDelNuovoMondo',
|
sitename: 'InsiemeSuPuò',
|
||||||
siteshortname: 'PDNM',
|
siteshortname: 'InsiemeSuPuò',
|
||||||
botname: 'il Bot di PdNM',
|
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',
|
||||||
|
|||||||
@@ -373,7 +373,7 @@ const baseroutes: IListRoutes[] = [
|
|||||||
path: '/',
|
path: '/',
|
||||||
materialIcon: 'home',
|
materialIcon: 'home',
|
||||||
name: 'pages.home',
|
name: 'pages.home',
|
||||||
component: () => import('@src/root/home_pdnm/home_pdnm.vue'),
|
component: () => import('@src/root/home_insiemesipuo/home_insiemesipuo.vue'),
|
||||||
reqauth: false,
|
reqauth: false,
|
||||||
inmenu: true,
|
inmenu: true,
|
||||||
infooter: true,
|
infooter: true,
|
||||||
@@ -422,6 +422,17 @@ const baseroutes: IListRoutes[] = [
|
|||||||
inmenu: true,
|
inmenu: true,
|
||||||
infooter: true,
|
infooter: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
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 +444,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 +581,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 +591,7 @@ const baseroutes: IListRoutes[] = [
|
|||||||
extraclass: 'isCalendar',
|
extraclass: 'isCalendar',
|
||||||
inmenu: true,
|
inmenu: true,
|
||||||
infooter: true
|
infooter: true
|
||||||
},*/
|
},
|
||||||
{
|
{
|
||||||
active: true,
|
active: true,
|
||||||
order: 1000,
|
order: 1000,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { IToken } from '@model/other'
|
import { IToken } from '@model/other'
|
||||||
import { ICart, IOrderCart, IShareWithUs } from '@src/model/Products'
|
import { ICart, IOrderCart, IShareWithUs } from '@src/model/Products'
|
||||||
|
import { IGallery } from '@model/GlobalStore'
|
||||||
|
|
||||||
const enum ESexType {
|
const enum ESexType {
|
||||||
None = 0,
|
None = 0,
|
||||||
@@ -8,10 +9,26 @@ const enum ESexType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface IFriends {
|
export interface IFriends {
|
||||||
username?: string
|
username: string
|
||||||
date?: Date
|
date?: Date
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IMyGroup {
|
||||||
|
groupname: string
|
||||||
|
title?: string
|
||||||
|
descr?: string
|
||||||
|
photos: IGallery[]
|
||||||
|
visibility?: number
|
||||||
|
date_created?: Date
|
||||||
|
admins?: IFriends[]
|
||||||
|
req_users?: IFriends[]
|
||||||
|
blocked?: boolean
|
||||||
|
website?: string
|
||||||
|
link_telegram?: string
|
||||||
|
username_who_block?: string
|
||||||
|
date_blocked?: Date
|
||||||
|
}
|
||||||
|
|
||||||
export interface IUserProfile {
|
export interface IUserProfile {
|
||||||
img?: string
|
img?: string
|
||||||
nationality?: string
|
nationality?: string
|
||||||
@@ -52,9 +69,11 @@ export interface IUserProfile {
|
|||||||
myshares: IShareWithUs[]
|
myshares: IShareWithUs[]
|
||||||
friends: IFriends[]
|
friends: IFriends[]
|
||||||
req_friends: IFriends[]
|
req_friends: IFriends[]
|
||||||
|
groups: IMyGroup[]
|
||||||
|
|
||||||
// in memory
|
// in memory
|
||||||
asked_friends: any[]
|
asked_friends: any[]
|
||||||
|
asked_groups: any[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IPaymentType {
|
export interface IPaymentType {
|
||||||
|
|||||||
@@ -22,17 +22,20 @@
|
|||||||
</CVerifyTelegram>
|
</CVerifyTelegram>
|
||||||
|
|
||||||
<div v-if="isUserOk()">
|
<div v-if="isUserOk()">
|
||||||
<div v-if="isUserOk()">
|
|
||||||
<q-banner rounded class="bg-primary text-white">
|
<CFinder>
|
||||||
<div class="text-h6 text-center">
|
|
||||||
Ora Accedi al Bot Telegram <br>
|
</CFinder>
|
||||||
per vedere tutti i Menu e le chat !
|
|
||||||
</div>
|
<q-banner rounded class="bg-primary text-white">
|
||||||
<template v-slot:action>
|
<div class="text-h6 text-center">
|
||||||
<q-btn icon="fab fa-telegram" flat color="white" label="Accedi al Bot Telegram" type="a" target="__blank" :href="getLinkBotTelegram()"/>
|
Ora Accedi al Bot Telegram <br>
|
||||||
</template>
|
per vedere tutti i Menu e le chat !
|
||||||
</q-banner>
|
</div>
|
||||||
</div>
|
<template v-slot:action>
|
||||||
|
<q-btn icon="fab fa-telegram" flat color="white" label="Accedi al Bot Telegram" type="a" target="__blank" :href="getLinkBotTelegram()"/>
|
||||||
|
</template>
|
||||||
|
</q-banner>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,6 +23,12 @@
|
|||||||
|
|
||||||
<div v-if="isUserOk()">
|
<div v-if="isUserOk()">
|
||||||
<div v-if="isUserOk()">
|
<div v-if="isUserOk()">
|
||||||
|
|
||||||
|
<CFinder>
|
||||||
|
|
||||||
|
</CFinder>
|
||||||
|
|
||||||
|
|
||||||
<q-banner rounded class="bg-primary text-white">
|
<q-banner rounded class="bg-primary text-white">
|
||||||
<div class="text-h6 text-center">
|
<div class="text-h6 text-center">
|
||||||
Ora Accedi al Bot Telegram <br>
|
Ora Accedi al Bot Telegram <br>
|
||||||
|
|||||||
@@ -461,7 +461,7 @@ const msg_enUs = {
|
|||||||
titlegranted: 'Notification Permission Granted!',
|
titlegranted: 'Notification Permission Granted!',
|
||||||
statusnot: 'status Notification',
|
statusnot: 'status Notification',
|
||||||
titledenied: 'Notification Permission Denied!',
|
titledenied: 'Notification Permission Denied!',
|
||||||
title_subscribed: 'Subscribed to FreePlanet.app!',
|
title_subscribed: 'Subscribed to the App!',
|
||||||
subscribed: 'You can now receive Notification and Messages.',
|
subscribed: 'You can now receive Notification and Messages.',
|
||||||
newVersionAvailable: 'Upgrade',
|
newVersionAvailable: 'Upgrade',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ const msg_it = {
|
|||||||
product: 'Prodotto',
|
product: 'Prodotto',
|
||||||
sito_offline: 'Sito in Aggiornamento',
|
sito_offline: 'Sito in Aggiornamento',
|
||||||
modifprof: 'Modifica Profilo',
|
modifprof: 'Modifica Profilo',
|
||||||
|
modifgrp: 'Modifica Gruppo',
|
||||||
biografia: 'Biografia',
|
biografia: 'Biografia',
|
||||||
qualifica: 'Qualifica (in breve)',
|
qualifica: 'Qualifica (in breve)',
|
||||||
update: 'Aggiornamento in Corso...',
|
update: 'Aggiornamento in Corso...',
|
||||||
@@ -182,19 +183,29 @@ const msg_it = {
|
|||||||
friendsadded: 'Aggiunto alla lista di Amici',
|
friendsadded: 'Aggiunto alla lista di Amici',
|
||||||
domanda_removefriend: 'Rimuovi dagli Amici {username}?',
|
domanda_removefriend: 'Rimuovi dagli Amici {username}?',
|
||||||
removedfriend: 'Rimosso dalla lista di Amici',
|
removedfriend: 'Rimosso dalla lista di Amici',
|
||||||
|
removedgroup: 'Rimosso dal Gruppo',
|
||||||
domanda_addtofriend: 'Aggiungere agli amici {username}?',
|
domanda_addtofriend: 'Aggiungere agli amici {username}?',
|
||||||
|
domanda_addtogroup: 'Aggiungi {username} al gruppo {groupname}?',
|
||||||
addedfriend: 'Aggiunto alla lista di Amici',
|
addedfriend: 'Aggiunto alla lista di Amici',
|
||||||
|
addedgroup: 'Aggiunto al Gruppo',
|
||||||
domanda_trusted: 'Accettare la Fiducia a {username}?',
|
domanda_trusted: 'Accettare la Fiducia a {username}?',
|
||||||
trusted: 'Accettato la Fiducia',
|
trusted: 'Accettato la Fiducia',
|
||||||
domanda_ask_friend: 'Chiedere l\'Amicizia a {username}?',
|
domanda_ask_friend: 'Chiedere l\'Amicizia a {username}?',
|
||||||
|
domanda_ask_group: 'Chiedere l\'invito al Gruppo {groupname}?',
|
||||||
askedtofriend: 'Chiesto l\'Amicizia a {username}',
|
askedtofriend: 'Chiesto l\'Amicizia a {username}',
|
||||||
|
askedtogroup: 'Chiesto l\'invito al Gruppo {groupname}',
|
||||||
domanda_revoke_friend: 'Revocare la richiesta di Amicizia a {username}?',
|
domanda_revoke_friend: 'Revocare la richiesta di Amicizia a {username}?',
|
||||||
|
domanda_revoke_group: 'Revocare la richiesta al gruppo {groupname}?',
|
||||||
revoketofriend: 'Revocato la richiesta di Amicizia a {username}',
|
revoketofriend: 'Revocato la richiesta di Amicizia a {username}',
|
||||||
|
revoketogroup: 'Revocato la richiesta d\'invito al gruppo {groupname}',
|
||||||
domanda_cancel_req_friend: 'Annullare la richiesta di Amicizia a {username}?',
|
domanda_cancel_req_friend: 'Annullare la richiesta di Amicizia a {username}?',
|
||||||
|
domanda_cancel_req_group: 'Annullare la richiesta d\'invito al gruppo {groupname}?',
|
||||||
cancel_req_friend: 'Annullata la richiesta di Amicizia a {username}',
|
cancel_req_friend: 'Annullata la richiesta di Amicizia a {username}',
|
||||||
|
cancel_req_group: 'Annullata la richiesta al gruppo {groupname}',
|
||||||
domanda_rejectedtrust: 'Rifiutare la Fiducia a {username}?',
|
domanda_rejectedtrust: 'Rifiutare la Fiducia a {username}?',
|
||||||
rejected: 'Rifiutato la Fiducia',
|
rejected: 'Rifiutato la Fiducia',
|
||||||
domanda_blockuser: 'Bloccare {username}?',
|
domanda_blockuser: 'Bloccare {username}?',
|
||||||
|
domanda_blockgroup: 'Bloccare il gruppo {groupname}?',
|
||||||
blockedfriend: 'Utente Bloccato',
|
blockedfriend: 'Utente Bloccato',
|
||||||
domanda: 'Domanda',
|
domanda: 'Domanda',
|
||||||
},
|
},
|
||||||
@@ -409,6 +420,7 @@ const msg_it = {
|
|||||||
note_payment: 'Note Aggiuntive',
|
note_payment: 'Note Aggiuntive',
|
||||||
country_pay: 'Paese di Destinazione Pagamenti',
|
country_pay: 'Paese di Destinazione Pagamenti',
|
||||||
username_telegram: 'Username Telegram',
|
username_telegram: 'Username Telegram',
|
||||||
|
groupname: 'Codice Gruppo',
|
||||||
firstname_telegram: 'Nome Telegram',
|
firstname_telegram: 'Nome Telegram',
|
||||||
lastname_telegram: 'Cognome Telegram',
|
lastname_telegram: 'Cognome Telegram',
|
||||||
telegram: 'Chat Telegram \'{botname}\'',
|
telegram: 'Chat Telegram \'{botname}\'',
|
||||||
@@ -618,6 +630,7 @@ const msg_it = {
|
|||||||
themecolor: 'Tema Colore',
|
themecolor: 'Tema Colore',
|
||||||
themebgcolor: 'Tema Colore Sfondo',
|
themebgcolor: 'Tema Colore Sfondo',
|
||||||
group: 'Gruppo',
|
group: 'Gruppo',
|
||||||
|
group2: 'Gruppo2',
|
||||||
respUsername: 'Responsabile',
|
respUsername: 'Responsabile',
|
||||||
viceRespUsername: 'Vice Responsabile',
|
viceRespUsername: 'Vice Responsabile',
|
||||||
vice2RespUsername: 'Vice 2 Responsabile',
|
vice2RespUsername: 'Vice 2 Responsabile',
|
||||||
@@ -683,7 +696,7 @@ const msg_it = {
|
|||||||
showlastschedule: 'Vedi tutto il Calendario',
|
showlastschedule: 'Vedi tutto il Calendario',
|
||||||
},
|
},
|
||||||
msgs: {
|
msgs: {
|
||||||
telegrammsg: 'Msg Telegram',
|
telegrammsg: 'Telegram',
|
||||||
message: 'Messaggio',
|
message: 'Messaggio',
|
||||||
messages: 'Messaggi',
|
messages: 'Messaggi',
|
||||||
nomessage: 'Nessun Messaggio',
|
nomessage: 'Nessun Messaggio',
|
||||||
@@ -846,7 +859,11 @@ const msg_it = {
|
|||||||
},
|
},
|
||||||
mypages: {
|
mypages: {
|
||||||
find_people: 'Cerca Persone',
|
find_people: 'Cerca Persone',
|
||||||
|
find_group: 'Cerca Gruppo',
|
||||||
|
my_groups: 'Miei Gruppi',
|
||||||
|
create_group: 'Crea Gruppo',
|
||||||
friends: 'Amici',
|
friends: 'Amici',
|
||||||
|
groups: 'Gruppi',
|
||||||
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',
|
||||||
@@ -864,6 +881,15 @@ const msg_it = {
|
|||||||
cancel_ask_friend: 'Annulla la richiesta di Amicizia',
|
cancel_ask_friend: 'Annulla la richiesta di Amicizia',
|
||||||
cancel_ask_friend_short: 'Annulla richiesta',
|
cancel_ask_friend_short: 'Annulla richiesta',
|
||||||
reject_ask_friend: 'Rifiuta la richiesta di Amicizia',
|
reject_ask_friend: 'Rifiuta la richiesta di Amicizia',
|
||||||
|
},
|
||||||
|
groups: {
|
||||||
|
admins: 'Amministratori',
|
||||||
|
ask_group: 'Chiedi di entrare nel Gruppo',
|
||||||
|
accept_group: 'Accetta la richiesta per entrare',
|
||||||
|
remove_from_mygroups: 'Rimuovi dai tuoi Gruppi',
|
||||||
|
block_group: 'Blocca Gruppo',
|
||||||
|
cancel_ask_group: 'Annulla la richiesta',
|
||||||
|
cancel_ask_group_short: 'Annulla richiesta',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -474,7 +474,7 @@ const msg_pt = {
|
|||||||
titlegranted: 'Permesso Notifiche Abilitato!',
|
titlegranted: 'Permesso Notifiche Abilitato!',
|
||||||
statusnot: 'Stato Notifiche',
|
statusnot: 'Stato Notifiche',
|
||||||
titledenied: 'Permesso Notifiche Disabilitato!',
|
titledenied: 'Permesso Notifiche Disabilitato!',
|
||||||
title_subscribed: 'Sottoscrizione a FreePlanet.app!',
|
title_subscribed: 'Sottoscrizione alla App!',
|
||||||
subscribed: 'Ora potrai ricevere i messaggi e le notifiche.',
|
subscribed: 'Ora potrai ricevere i messaggi e le notifiche.',
|
||||||
newVersionAvailable: 'Aggiorna',
|
newVersionAvailable: 'Aggiorna',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -9,6 +9,10 @@ export const costanti = {
|
|||||||
CONFIG_ID_SHOW_TYPE_TODOS: '3',
|
CONFIG_ID_SHOW_TYPE_TODOS: '3',
|
||||||
|
|
||||||
SHOW_USERINFO: 1,
|
SHOW_USERINFO: 1,
|
||||||
|
SHOW_GROUPINFO: 5,
|
||||||
|
|
||||||
|
VISUTABLE_SCHEDA_USER: -1,
|
||||||
|
VISUTABLE_SCHEDA_GROUP: -3,
|
||||||
|
|
||||||
DIR_UPLOAD: 'upload/', // upload/
|
DIR_UPLOAD: 'upload/', // upload/
|
||||||
|
|
||||||
@@ -20,7 +24,17 @@ export const costanti = {
|
|||||||
ASK_SENT_FRIENDS: 6,
|
ASK_SENT_FRIENDS: 6,
|
||||||
FIND_PEOPLE: 10,
|
FIND_PEOPLE: 10,
|
||||||
|
|
||||||
|
GROUPS: 11,
|
||||||
|
GRP_REJECTED: 14,
|
||||||
|
REQ_GROUP: 15,
|
||||||
|
ASK_SENT_GROUP: 16,
|
||||||
|
FIND_GROUP: 20,
|
||||||
|
MY_GROUPS: 21,
|
||||||
|
CREATE_GROUP: 30,
|
||||||
|
|
||||||
FILTER_TUTTI: -100,
|
FILTER_TUTTI: -100,
|
||||||
|
TABLES_ARRAY: ['mygroups'],
|
||||||
|
TABLES_USERNAME_DATE: ['friends', 'friendsandme'],
|
||||||
|
|
||||||
FuncDialog: {
|
FuncDialog: {
|
||||||
CANCEL_BOOKING: 1,
|
CANCEL_BOOKING: 1,
|
||||||
|
|||||||
@@ -368,6 +368,18 @@ export const colTablePhones = [
|
|||||||
AddCol({ name: 'flag', label_trans: 'city.flag' }),
|
AddCol({ name: 'flag', label_trans: 'city.flag' }),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
export const colTableUsersGeneric = [
|
||||||
|
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
|
||||||
|
AddCol({ name: 'date', label_trans: 'reg.date', fieldtype: costanti.FieldType.onlydate,
|
||||||
|
showWhen: costanti.showWhen.InPage + costanti.showWhen.InView_OnlyifExist }),
|
||||||
|
]
|
||||||
|
|
||||||
|
export const colTableMyGroup = [
|
||||||
|
AddCol({ name: 'groupname', label_trans: 'reg.groupname' }),
|
||||||
|
AddCol({ name: 'date', label_trans: 'reg.date', fieldtype: costanti.FieldType.onlydate,
|
||||||
|
showWhen: costanti.showWhen.InPage + costanti.showWhen.InView_OnlyifExist }),
|
||||||
|
]
|
||||||
|
|
||||||
export const colSkills = [
|
export const colSkills = [
|
||||||
// AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
// AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
|
||||||
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
AddCol({ name: 'descr', label_trans: 'store.description' }),
|
||||||
@@ -408,11 +420,54 @@ export const colmyUserPeople = [
|
|||||||
AddCol({ name: 'name', label_trans: 'reg.name' }),
|
AddCol({ name: 'name', label_trans: 'reg.name' }),
|
||||||
AddCol({
|
AddCol({
|
||||||
name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false,
|
name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false,
|
||||||
|
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||||
}),
|
}),
|
||||||
// AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: costanti.FieldType.boolean }),
|
// AddCol({ name: 'sospeso', label_trans: 'reg.sospeso', fieldtype: costanti.FieldType.boolean }),
|
||||||
// AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: costanti.FieldType.boolean }),
|
// AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: costanti.FieldType.boolean }),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
export const colmyUserGroup = [
|
||||||
|
// AddCol({ name: '_id', label_trans: 'reg.id' }),
|
||||||
|
AddCol({ name: 'groupname', label_trans: 'reg.groupname', required: true }),
|
||||||
|
AddCol({ name: 'title', label_trans: 'reg.name', required: true }),
|
||||||
|
AddCol({
|
||||||
|
name: 'idSector',
|
||||||
|
label_trans: 'sectors.name',
|
||||||
|
fieldtype: costanti.FieldType.select,
|
||||||
|
required: true,
|
||||||
|
jointable: 'sectors',
|
||||||
|
visible: true,
|
||||||
|
icon: 'category',
|
||||||
|
}),
|
||||||
|
AddCol({ name: 'descr', label_trans: 'proj.longdescr', required: true }),
|
||||||
|
AddCol({ name: 'visibility', label_trans: 'bot.visibility', fieldtype: costanti.FieldType.select, jointable: 'visibilGroup', required: true }),
|
||||||
|
AddCol({
|
||||||
|
name: 'admins',
|
||||||
|
label_trans: 'groups.admins',
|
||||||
|
fieldtype: costanti.FieldType.multiselect,
|
||||||
|
jointable: 'friendsandme',
|
||||||
|
}),
|
||||||
|
AddCol({
|
||||||
|
name: 'photos',
|
||||||
|
label_trans: 'skill.photos',
|
||||||
|
fieldtype: costanti.FieldType.listimages,
|
||||||
|
jointable: '',
|
||||||
|
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||||
|
}),
|
||||||
|
AddCol({
|
||||||
|
name: 'idCity',
|
||||||
|
label_trans: 'skill.city',
|
||||||
|
fieldtype: costanti.FieldType.multiselect_by_server,
|
||||||
|
jointable: 'cities',
|
||||||
|
tablesel: 'cities',
|
||||||
|
noshowlabel: true,
|
||||||
|
icon: 'fas fa-map-marker-alt',
|
||||||
|
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
|
||||||
|
}),
|
||||||
|
AddCol({ name: 'date_created', label_trans: 'reg.date_created', fieldtype: costanti.FieldType.onlydate,
|
||||||
|
showWhen: costanti.showWhen.InPage + costanti.showWhen.InView_OnlyifExist }),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export const colmySkills = [
|
export const colmySkills = [
|
||||||
@@ -807,6 +862,11 @@ const colTablePermission = [
|
|||||||
AddCol(DuplicateRec),
|
AddCol(DuplicateRec),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
const colTableGeneric = [
|
||||||
|
AddCol({ name: 'value', label_trans: 'others.value' }),
|
||||||
|
AddCol({ name: 'label', label_trans: 'proj.longdescr' }),
|
||||||
|
]
|
||||||
|
|
||||||
const colTableOperator = [
|
const colTableOperator = [
|
||||||
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
|
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
|
||||||
AddCol({ name: 'name', label_trans: 'reg.name' }),
|
AddCol({ name: 'name', label_trans: 'reg.name' }),
|
||||||
@@ -1502,6 +1562,7 @@ export const fieldsTable = {
|
|||||||
}),
|
}),
|
||||||
AddCol({
|
AddCol({
|
||||||
name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false,
|
name: 'profile.img', field: 'profile', subfield: 'img', label_trans: 'reg.img', sortable: false,
|
||||||
|
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||||
}),
|
}),
|
||||||
AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: costanti.FieldType.date }),
|
AddCol({ name: 'date_reg', label_trans: 'reg.date_reg', fieldtype: costanti.FieldType.date }),
|
||||||
AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: costanti.FieldType.date }),
|
AddCol({ name: 'lasttimeonline', label_trans: 'reg.lasttimeonline', fieldtype: costanti.FieldType.date }),
|
||||||
@@ -1765,13 +1826,21 @@ export const fieldsTable = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 'visibility',
|
value: 'visibility',
|
||||||
label: 'Visibilità',
|
label: 'Visibilità Permessi',
|
||||||
columns: colTablePermission,
|
columns: colTablePermission,
|
||||||
colkey: 'value',
|
colkey: 'value',
|
||||||
collabel: 'label',
|
collabel: 'label',
|
||||||
colicon: 'icon',
|
colicon: 'icon',
|
||||||
noshow: true,
|
noshow: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: 'visibilGroup',
|
||||||
|
label: 'Visibilità',
|
||||||
|
columns: colTableGeneric,
|
||||||
|
colkey: 'value',
|
||||||
|
collabel: 'label',
|
||||||
|
noshow: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
value: 'lang',
|
value: 'lang',
|
||||||
label: 'Lingua',
|
label: 'Lingua',
|
||||||
@@ -1893,6 +1962,27 @@ export const fieldsTable = {
|
|||||||
collabel: 'value',
|
collabel: 'value',
|
||||||
remote: true,
|
remote: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: 'friends',
|
||||||
|
label: 'Amici',
|
||||||
|
columns: colTableUsersGeneric,
|
||||||
|
colkey: 'username',
|
||||||
|
collabel: 'username',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'friendsandme',
|
||||||
|
label: 'Amici',
|
||||||
|
columns: colTableUsersGeneric,
|
||||||
|
colkey: 'username',
|
||||||
|
collabel: 'username',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'mygroups',
|
||||||
|
label: 'Gruppi',
|
||||||
|
columns: colTableMyGroup,
|
||||||
|
colkey: 'groupname',
|
||||||
|
collabel: 'groupname',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import {
|
|||||||
IColGridTable,
|
IColGridTable,
|
||||||
IColl,
|
IColl,
|
||||||
ICollaborations, IDataToSet,
|
ICollaborations, IDataToSet,
|
||||||
IEvents, IFriends,
|
IEvents, IFriends, IMyGroup,
|
||||||
IListRoutes,
|
IListRoutes,
|
||||||
IParamDialog,
|
IParamDialog,
|
||||||
IPathFile,
|
IPathFile,
|
||||||
@@ -56,6 +56,7 @@ export const tools = {
|
|||||||
COOK_SEARCH: 'SEARCH_',
|
COOK_SEARCH: 'SEARCH_',
|
||||||
|
|
||||||
FRIENDS_SEARCH: 'FR_SE',
|
FRIENDS_SEARCH: 'FR_SE',
|
||||||
|
GROUP_SEARCH: 'GR_SE',
|
||||||
|
|
||||||
getprefCountries: ['it', 'es', 'us'],
|
getprefCountries: ['it', 'es', 'us'],
|
||||||
|
|
||||||
@@ -4422,6 +4423,26 @@ export const tools = {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
addToMyGroups($q: any, username: string, groupnameDest: string) {
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_addtogroup', { username, groupname: groupnameDest }),
|
||||||
|
ok: { label: t('dialog.yes'), push: true },
|
||||||
|
cancel: { label: t('dialog.cancel') },
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
|
||||||
|
userStore.setGroupsCmd($q, t, username, groupnameDest, shared_consts.GROUPSCMD.SETGROUP, null)
|
||||||
|
.then((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
userStore.my.profile.groups = [...userStore.my.profile.groups, res]
|
||||||
|
tools.showPositiveNotif($q, t('db.addedgroup'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
setRequestFriendship($q: any, username: string, usernameDest: string, value: boolean) {
|
setRequestFriendship($q: any, username: string, usernameDest: string, value: boolean) {
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
@@ -4464,6 +4485,48 @@ export const tools = {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
setRequestGroup($q: any, username: string, groupnameDest: string, value: boolean) {
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
let msg = ''
|
||||||
|
if (value) {
|
||||||
|
msg = t('db.domanda_ask_group', { groupname: groupnameDest })
|
||||||
|
} else {
|
||||||
|
msg = t('db.domanda_revoke_group', { groupname: groupnameDest })
|
||||||
|
}
|
||||||
|
|
||||||
|
$q.dialog({
|
||||||
|
message: msg,
|
||||||
|
ok: {
|
||||||
|
label: t('dialog.yes'),
|
||||||
|
push: true
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
label: t('dialog.cancel')
|
||||||
|
},
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
|
||||||
|
userStore.setGroupsCmd($q, t, username, groupnameDest, shared_consts.GROUPSCMD.REQGROUP, value)
|
||||||
|
.then((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
if (value) {
|
||||||
|
// ADD to req Friends
|
||||||
|
userStore.my.profile.asked_groups.push(res)
|
||||||
|
tools.showPositiveNotif($q, t('db.askedtogroup', { groupname: groupnameDest }))
|
||||||
|
} else {
|
||||||
|
// REMOVE to req Friends
|
||||||
|
userStore.my.profile.asked_groups = userStore.my.profile.asked_groups.filter((rec: IMyGroup) => rec.groupname !== groupnameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.revoketogroup', { groupname: groupnameDest }))
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
tools.showNegativeNotif($q, t('db.recfailed'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
cancelReqFriends($q: any, username: string, usernameDest: string) {
|
cancelReqFriends($q: any, username: string, usernameDest: string) {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
$q.dialog({
|
$q.dialog({
|
||||||
@@ -4480,6 +4543,23 @@ export const tools = {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
cancelReqGroups($q: any, username: string, groupnameDest: string) {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
$q.dialog({
|
||||||
|
message: t('db.domanda_cancel_req_group', { groupname: groupnameDest }),
|
||||||
|
ok: { label: t('dialog.yes'), push: true },
|
||||||
|
cancel: { label: t('dialog.cancel') },
|
||||||
|
title: t('db.domanda')
|
||||||
|
}).onOk(() => {
|
||||||
|
|
||||||
|
userStore.setGroupsCmd($q, t, username, groupnameDest, shared_consts.GROUPSCMD.CANCEL_REQ_GROUP, null).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
userStore.my.profile.asked_groups = userStore.my.profile.asked_groups.filter((rec: IMyGroup) => rec.groupname !== groupnameDest)
|
||||||
|
tools.showPositiveNotif($q, t('db.cancel_req_group'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
},
|
},
|
||||||
CSVToArray(strData: any, strDelimiter: string) {
|
CSVToArray(strData: any, strDelimiter: string) {
|
||||||
// Check to see if the delimiter is defined. If not,
|
// Check to see if the delimiter is defined. If not,
|
||||||
|
|||||||
@@ -58,6 +58,8 @@ export const func_tools = {
|
|||||||
|
|
||||||
export const toolsext = {
|
export const toolsext = {
|
||||||
TABUSER: 'users',
|
TABUSER: 'users',
|
||||||
|
TABFRIENDS: 'friends',
|
||||||
|
TABMYGROUPS: 'mygroups',
|
||||||
TABNAVI: 'navi',
|
TABNAVI: 'navi',
|
||||||
TABLISTAINGRESSO: 'listaingressos',
|
TABLISTAINGRESSO: 'listaingressos',
|
||||||
TABGRADUATORIA: 'graduatorias',
|
TABGRADUATORIA: 'graduatorias',
|
||||||
@@ -65,10 +67,10 @@ export const toolsext = {
|
|||||||
TABNEWSLETTER: 'newstosent',
|
TABNEWSLETTER: 'newstosent',
|
||||||
TABGALLERY: 'gallery',
|
TABGALLERY: 'gallery',
|
||||||
TABMAILINGLIST: 'mailinglist',
|
TABMAILINGLIST: 'mailinglist',
|
||||||
|
TABGROUPS: 'groups',
|
||||||
TABMYPAGE: 'mypage',
|
TABMYPAGE: 'mypage',
|
||||||
TABMYBOT: 'mybots',
|
TABMYBOT: 'mybots',
|
||||||
TABCALZOOM: 'calzoom',
|
TABCALZOOM: 'calzoom',
|
||||||
TABGROUPS: 'groups',
|
|
||||||
TABTEMPLEMAIL: 'templemail',
|
TABTEMPLEMAIL: 'templemail',
|
||||||
TABOPZEMAIL: 'opzemail',
|
TABOPZEMAIL: 'opzemail',
|
||||||
TABSHAREWITHUS: 'sharewithus',
|
TABSHAREWITHUS: 'sharewithus',
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import { Router } from 'vue-router'
|
|||||||
import { useProjectStore } from '@store/Projects'
|
import { useProjectStore } from '@store/Projects'
|
||||||
import { shared_consts } from '@/common/shared_vuejs'
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
import { costanti } from '@costanti'
|
import { costanti } from '@costanti'
|
||||||
|
import { IMyGroup } from '@model/UserStore'
|
||||||
|
|
||||||
export const DefaultUser: IUserFields = {
|
export const DefaultUser: IUserFields = {
|
||||||
_id: '',
|
_id: '',
|
||||||
@@ -49,7 +50,9 @@ export const DefaultUser: IUserFields = {
|
|||||||
myshares: [],
|
myshares: [],
|
||||||
friends: [],
|
friends: [],
|
||||||
req_friends: [],
|
req_friends: [],
|
||||||
|
groups: [],
|
||||||
asked_friends: [],
|
asked_friends: [],
|
||||||
|
asked_groups: [],
|
||||||
},
|
},
|
||||||
cart: {
|
cart: {
|
||||||
userId: '',
|
userId: '',
|
||||||
@@ -91,12 +94,15 @@ export const DefaultProfile: IUserProfile = {
|
|||||||
myshares: [],
|
myshares: [],
|
||||||
friends: [],
|
friends: [],
|
||||||
req_friends: [],
|
req_friends: [],
|
||||||
|
groups: [],
|
||||||
asked_friends: [],
|
asked_friends: [],
|
||||||
|
asked_groups: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useUserStore = defineStore('UserStore', {
|
export const useUserStore = defineStore('UserStore', {
|
||||||
state: () => ({
|
state: () => ({
|
||||||
my: { ...DefaultUser },
|
my: { ...DefaultUser },
|
||||||
|
groups: [],
|
||||||
lang: process.env.LANG_DEFAULT ? process.env.LANG_DEFAULT : 'it',
|
lang: process.env.LANG_DEFAULT ? process.env.LANG_DEFAULT : 'it',
|
||||||
repeatPassword: '',
|
repeatPassword: '',
|
||||||
categorySel: 'personal',
|
categorySel: 'personal',
|
||||||
@@ -170,6 +176,13 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
IsMyGroupByGroupname(groupname: string): boolean {
|
||||||
|
if (this.my.profile.friends)
|
||||||
|
return this.my.profile.groups.findIndex((rec) => rec.groupname === groupname) >= 0
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
},
|
||||||
|
|
||||||
IsAskedFriendByUsername(username: string): boolean {
|
IsAskedFriendByUsername(username: string): boolean {
|
||||||
if (this.my.profile.asked_friends)
|
if (this.my.profile.asked_friends)
|
||||||
return this.my.profile.asked_friends.findIndex((rec) => rec.username === username) >= 0
|
return this.my.profile.asked_friends.findIndex((rec) => rec.username === username) >= 0
|
||||||
@@ -177,6 +190,13 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
IsAskedGroupByGroupname(groupname: string): boolean {
|
||||||
|
if (this.my.profile.asked_groups)
|
||||||
|
return this.my.profile.asked_groups.findIndex((rec: IMyGroup) => rec.groupname === groupname) >= 0
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
},
|
||||||
|
|
||||||
getUserByUsername(username: string): IUserFields | null {
|
getUserByUsername(username: string): IUserFields | null {
|
||||||
// Check if is this User!
|
// Check if is this User!
|
||||||
if (this.my.username === username) return this.my
|
if (this.my.username === username) return this.my
|
||||||
@@ -210,6 +230,16 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
return 'images/noimg.png'
|
return 'images/noimg.png'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getImgByGroup(group: IMyGroup): string {
|
||||||
|
|
||||||
|
try {
|
||||||
|
//++Todo: Sistemare!
|
||||||
|
return costanti.DIR_UPLOAD + 'groups/' + group.groupname + '/' + group.photos[0].directory
|
||||||
|
} catch (e) {
|
||||||
|
}
|
||||||
|
return 'images/noimg.png'
|
||||||
|
},
|
||||||
|
|
||||||
getRefLink(username: string): string {
|
getRefLink(username: string): string {
|
||||||
if (username === '')
|
if (username === '')
|
||||||
username = this.my.username
|
username = this.my.username
|
||||||
@@ -446,6 +476,7 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
|
|
||||||
// Memory
|
// Memory
|
||||||
this.my.profile.asked_friends = []
|
this.my.profile.asked_friends = []
|
||||||
|
this.my.profile.asked_groups = []
|
||||||
}
|
}
|
||||||
|
|
||||||
this.isAdmin = tools.isBitActive(this.my.perm, shared_consts.Permissions.Admin.value)
|
this.isAdmin = tools.isBitActive(this.my.perm, shared_consts.Permissions.Admin.value)
|
||||||
@@ -825,7 +856,7 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
verified_by_aportador,
|
verified_by_aportador,
|
||||||
made_gift,
|
made_gift,
|
||||||
perm,
|
perm,
|
||||||
profile: { img, teleg_id, myshares: [], friends: [], req_friends: [], asked_friends: [] },
|
profile: { img, teleg_id, myshares: [], friends: [], req_friends: [], asked_friends: [], groups: [], asked_groups: [] },
|
||||||
})
|
})
|
||||||
|
|
||||||
isLogged = true
|
isLogged = true
|
||||||
@@ -857,6 +888,20 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async loadGroup(groupname: string) {
|
||||||
|
const data = {
|
||||||
|
groupname
|
||||||
|
}
|
||||||
|
|
||||||
|
return Api.SendReq('/mygroup/load', 'POST', data)
|
||||||
|
.then((res) => {
|
||||||
|
return res.data
|
||||||
|
}).catch((error) => {
|
||||||
|
return {}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
async loadSkill(idSkill: string) {
|
async loadSkill(idSkill: string) {
|
||||||
const data = {
|
const data = {
|
||||||
idSkill
|
idSkill
|
||||||
@@ -881,6 +926,16 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async loadGroups(username: string) {
|
||||||
|
return Api.SendReq('/users/groups', 'POST', null)
|
||||||
|
.then((res) => {
|
||||||
|
return res.data
|
||||||
|
}).catch((error) => {
|
||||||
|
return {}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
async setFriendsCmd($q: any, t: any, usernameOrig: string, usernameDest: string, cmd: number, value: any) {
|
async setFriendsCmd($q: any, t: any, usernameOrig: string, usernameDest: string, cmd: number, value: any) {
|
||||||
return Api.SendReq('/users/friends/cmd', 'POST', { usernameOrig, usernameDest, cmd, value })
|
return Api.SendReq('/users/friends/cmd', 'POST', { usernameOrig, usernameDest, cmd, value })
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
@@ -892,6 +947,17 @@ export const useUserStore = defineStore('UserStore', {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async setGroupsCmd($q: any, t: any, usernameOrig: string, groupnameDest: string, cmd: number, value: any) {
|
||||||
|
return Api.SendReq('/users/groups/cmd', 'POST', { usernameOrig, groupnameDest, cmd, value })
|
||||||
|
.then((res) => {
|
||||||
|
return res.data
|
||||||
|
}).catch((error) => {
|
||||||
|
tools.showNegativeNotif($q, t('db.recfailed'))
|
||||||
|
return {}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
async importToServerCmd($q: any, t: any, cmd: number, data: any) {
|
async importToServerCmd($q: any, t: any, cmd: number, data: any) {
|
||||||
return Api.SendReq('/admin/import', 'POST', { cmd, data })
|
return Api.SendReq('/admin/import', 'POST', { cmd, data })
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|||||||
@@ -219,6 +219,12 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
return calendarStore.bookedevent
|
return calendarStore.bookedevent
|
||||||
else if (table === 'users')
|
else if (table === 'users')
|
||||||
return userStore.usersList
|
return userStore.usersList
|
||||||
|
else if (table === 'friends')
|
||||||
|
return userStore.my.profile.friends
|
||||||
|
else if (table === 'friendsandme')
|
||||||
|
return [{username: userStore.my.username }, ...userStore.my.profile.friends]
|
||||||
|
else if (table === 'mygroups')
|
||||||
|
return userStore.groups
|
||||||
else if (table === 'sendmsgs')
|
else if (table === 'sendmsgs')
|
||||||
return messageStore.last_msgs
|
return messageStore.last_msgs
|
||||||
else if (table === 'settings')
|
else if (table === 'settings')
|
||||||
@@ -1356,12 +1362,22 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
if (table === 'metodo_pagamento') return tools.SelectMetodiPagamento
|
if (table === 'metodo_pagamento') return tools.SelectMetodiPagamento
|
||||||
if (table === 'bottype') return shared_consts.BotType
|
if (table === 'bottype') return shared_consts.BotType
|
||||||
if (table === 'visibility') return shared_consts.Visibility
|
if (table === 'visibility') return shared_consts.Visibility
|
||||||
|
if (table === 'visibilGroup') return shared_consts.VisibilGroup
|
||||||
if (table === 'lang') return shared_consts.Lang
|
if (table === 'lang') return shared_consts.Lang
|
||||||
if (table === 'regions') return shared_consts.Regions
|
if (table === 'regions') return shared_consts.Regions
|
||||||
if (table === 'provinces') return shared_consts.Provinces
|
if (table === 'provinces') return shared_consts.Provinces
|
||||||
|
|
||||||
let myarr = this.getListByTable(table)
|
let myarr = this.getListByTable(table)
|
||||||
|
|
||||||
|
if (costanti.TABLES_ARRAY.includes(table)) {
|
||||||
|
const newarr = []
|
||||||
|
for (const value of myarr) {
|
||||||
|
newarr.push({value, label:value})
|
||||||
|
}
|
||||||
|
|
||||||
|
myarr = newarr
|
||||||
|
}
|
||||||
|
|
||||||
if (addall)
|
if (addall)
|
||||||
myarr = [costanti.FILTER_TUTTI, ...myarr]
|
myarr = [costanti.FILTER_TUTTI, ...myarr]
|
||||||
|
|
||||||
|
|||||||
@@ -70,6 +70,19 @@
|
|||||||
|
|
||||||
</CTitleBanner>
|
</CTitleBanner>
|
||||||
|
|
||||||
|
|
||||||
|
<CTitleBanner
|
||||||
|
class="q-pa-xs" title="Competenze e Talenti" bgcolor="bg-primary" clcolor="text-white"
|
||||||
|
myclass="myshad" :canopen="true">
|
||||||
|
|
||||||
|
<CSkill
|
||||||
|
:filtercustom="filtroutente">
|
||||||
|
|
||||||
|
</CSkill>
|
||||||
|
|
||||||
|
|
||||||
|
</CTitleBanner>
|
||||||
|
|
||||||
<CTitleBanner
|
<CTitleBanner
|
||||||
class="q-pa-xs" title="Informazioni su di te" bgcolor="bg-primary" clcolor="text-white"
|
class="q-pa-xs" title="Informazioni su di te" bgcolor="bg-primary" clcolor="text-white"
|
||||||
myclass="myshad" :canopen="true">
|
myclass="myshad" :canopen="true">
|
||||||
@@ -159,76 +172,64 @@
|
|||||||
|
|
||||||
</CTitleBanner>
|
</CTitleBanner>
|
||||||
|
|
||||||
<CTitleBanner
|
<!--
|
||||||
class="q-pa-xs" title="Competenze e Talenti" bgcolor="bg-primary" clcolor="text-white"
|
<div class="column">
|
||||||
myclass="myshad" :canopen="true">
|
<div class="myrow">
|
||||||
|
<CMyFieldDb
|
||||||
<CSkill
|
title="Motivazioni"
|
||||||
:filtercustom="filtroutente">
|
table="users"
|
||||||
|
mykey="profile"
|
||||||
</CSkill>
|
mysubkey="motivazioni"
|
||||||
|
:type="costanti.FieldType.string">
|
||||||
|
</CMyFieldDb>
|
||||||
</CTitleBanner>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<div class="column">
|
|
||||||
<div class="myrow">
|
|
||||||
<CMyFieldDb
|
|
||||||
title="Motivazioni"
|
|
||||||
table="users"
|
|
||||||
mykey="profile"
|
|
||||||
mysubkey="motivazioni"
|
|
||||||
:type="costanti.FieldType.string">
|
|
||||||
</CMyFieldDb>
|
|
||||||
</div>
|
|
||||||
<div class="myrow">
|
|
||||||
<CMyFieldDb
|
|
||||||
title="Competenze e Professionalità"
|
|
||||||
table="users"
|
|
||||||
mykey="profile"
|
|
||||||
mysubkey="competenze_professionalita"
|
|
||||||
:type="costanti.FieldType.string">
|
|
||||||
</CMyFieldDb>
|
|
||||||
</div>
|
|
||||||
<div class="myrow">
|
|
||||||
<CMyFieldDb
|
|
||||||
title="Cosa potrei offrire?"
|
|
||||||
table="users"
|
|
||||||
mykey="profile"
|
|
||||||
mysubkey="cosa_offrire"
|
|
||||||
:type="costanti.FieldType.string">
|
|
||||||
</CMyFieldDb>
|
|
||||||
</div>
|
|
||||||
<div class="myrow">
|
|
||||||
<CMyFieldDb
|
|
||||||
title="Cosa vorrei ricevere?"
|
|
||||||
table="users"
|
|
||||||
mykey="profile"
|
|
||||||
mysubkey="cosa_ricevere"
|
|
||||||
:type="costanti.FieldType.string">
|
|
||||||
</CMyFieldDb>
|
|
||||||
</div>
|
|
||||||
<div class="myrow">
|
|
||||||
<CMyFieldDb
|
|
||||||
title="Altre Comunicazioni"
|
|
||||||
table="users"
|
|
||||||
mykey="profile"
|
|
||||||
mysubkey="altre_comunicazioni"
|
|
||||||
:type="costanti.FieldType.string">
|
|
||||||
</CMyFieldDb>
|
|
||||||
</div>
|
|
||||||
<div class="myrow">
|
|
||||||
<CMyFieldDb
|
|
||||||
title="Come ci hai conosciuto?"
|
|
||||||
table="users"
|
|
||||||
mykey="profile"
|
|
||||||
mysubkey="come_ci_hai_conosciuto"
|
|
||||||
:type="costanti.FieldType.string">
|
|
||||||
</CMyFieldDb>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
-->
|
<div class="myrow">
|
||||||
|
<CMyFieldDb
|
||||||
|
title="Competenze e Professionalità"
|
||||||
|
table="users"
|
||||||
|
mykey="profile"
|
||||||
|
mysubkey="competenze_professionalita"
|
||||||
|
:type="costanti.FieldType.string">
|
||||||
|
</CMyFieldDb>
|
||||||
|
</div>
|
||||||
|
<div class="myrow">
|
||||||
|
<CMyFieldDb
|
||||||
|
title="Cosa potrei offrire?"
|
||||||
|
table="users"
|
||||||
|
mykey="profile"
|
||||||
|
mysubkey="cosa_offrire"
|
||||||
|
:type="costanti.FieldType.string">
|
||||||
|
</CMyFieldDb>
|
||||||
|
</div>
|
||||||
|
<div class="myrow">
|
||||||
|
<CMyFieldDb
|
||||||
|
title="Cosa vorrei ricevere?"
|
||||||
|
table="users"
|
||||||
|
mykey="profile"
|
||||||
|
mysubkey="cosa_ricevere"
|
||||||
|
:type="costanti.FieldType.string">
|
||||||
|
</CMyFieldDb>
|
||||||
|
</div>
|
||||||
|
<div class="myrow">
|
||||||
|
<CMyFieldDb
|
||||||
|
title="Altre Comunicazioni"
|
||||||
|
table="users"
|
||||||
|
mykey="profile"
|
||||||
|
mysubkey="altre_comunicazioni"
|
||||||
|
:type="costanti.FieldType.string">
|
||||||
|
</CMyFieldDb>
|
||||||
|
</div>
|
||||||
|
<div class="myrow">
|
||||||
|
<CMyFieldDb
|
||||||
|
title="Come ci hai conosciuto?"
|
||||||
|
table="users"
|
||||||
|
mykey="profile"
|
||||||
|
mysubkey="come_ci_hai_conosciuto"
|
||||||
|
:type="costanti.FieldType.string">
|
||||||
|
</CMyFieldDb>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<CTitleBanner class="q-pa-xs" :title="$t('pages.payment')" bgcolor="bg-primary" clcolor="text-white"
|
<CTitleBanner class="q-pa-xs" :title="$t('pages.payment')" bgcolor="bg-primary" clcolor="text-white"
|
||||||
|
|||||||
18
src/views/user/mygroup/mygroup.scss
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
.profile {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 450px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.myrow{
|
||||||
|
display: flex;
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
flex-flow: column;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.qualifica{
|
||||||
|
border: solid 2px #4198ef;
|
||||||
|
border-radius: 1rem;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
113
src/views/user/mygroup/mygroup.ts
Executable file
@@ -0,0 +1,113 @@
|
|||||||
|
import { CMyFieldDb } from '@/components/CMyFieldDb'
|
||||||
|
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||||
|
import { CProfile } from '@/components/CProfile'
|
||||||
|
import { CSkill } from '@/components/CSkill'
|
||||||
|
import { CDateTime } from '@/components/CDateTime'
|
||||||
|
import { tools } from '@store/Modules/tools'
|
||||||
|
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
|
||||||
|
import { useUserStore } from '@store/UserStore'
|
||||||
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
import { toolsext } from '@store/Modules/toolsext'
|
||||||
|
import { useQuasar } from 'quasar'
|
||||||
|
import { costanti } from '@costanti'
|
||||||
|
import { IMyGroup, IUserFields } from 'model'
|
||||||
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
|
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'mygroup',
|
||||||
|
components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime },
|
||||||
|
props: {},
|
||||||
|
setup() {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
const $route = useRoute()
|
||||||
|
const $q = useQuasar()
|
||||||
|
const { t } = useI18n()
|
||||||
|
|
||||||
|
const animation = ref('fade')
|
||||||
|
|
||||||
|
const groupname = computed(() => $route.params.groupname ? $route.params.groupname.toString() : '')
|
||||||
|
|
||||||
|
const filtroutente = ref(<any[]>[])
|
||||||
|
const showPic = ref(false)
|
||||||
|
|
||||||
|
const mygrp = ref(<IMyGroup>{})
|
||||||
|
|
||||||
|
function profile() {
|
||||||
|
return userStore.my.profile
|
||||||
|
}
|
||||||
|
|
||||||
|
function mygrpname() {
|
||||||
|
return userStore.my.username
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadGroup() {
|
||||||
|
// Carica il profilo di quest'utente
|
||||||
|
if (groupname.value) {
|
||||||
|
userStore.loadGroup(groupname.value).then((ris) => {
|
||||||
|
mygrp.value = ris
|
||||||
|
// filtroutente.value = [{ userId: userStore.my._id }]
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(() => groupname.value, (to: any, from: any) => {
|
||||||
|
loadGroup()
|
||||||
|
})
|
||||||
|
|
||||||
|
function mounted() {
|
||||||
|
loadGroup()
|
||||||
|
}
|
||||||
|
|
||||||
|
function getImgGrp() {
|
||||||
|
return userStore.getImgByGroup(mygrp.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkifShow(col: string) {
|
||||||
|
//++Todo: checkifShow Permessi !
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLinkGrpTelegram() {
|
||||||
|
|
||||||
|
if (!!mygrp.value.link_telegram) {
|
||||||
|
return 'https://t.me/' + mygrp.value.link_telegram
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLinkWebSite() {
|
||||||
|
|
||||||
|
let site = mygrp.value.website!
|
||||||
|
if (site) {
|
||||||
|
if (!site.startsWith('http')) {
|
||||||
|
site = 'https://' + site
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return site
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(mounted)
|
||||||
|
|
||||||
|
return {
|
||||||
|
groupname,
|
||||||
|
profile,
|
||||||
|
tools,
|
||||||
|
costanti,
|
||||||
|
mygrp,
|
||||||
|
shared_consts,
|
||||||
|
getImgGrp,
|
||||||
|
checkifShow,
|
||||||
|
getLinkGrpTelegram,
|
||||||
|
getLinkWebSite,
|
||||||
|
filtroutente,
|
||||||
|
showPic,
|
||||||
|
mygrpname,
|
||||||
|
userStore,
|
||||||
|
t,
|
||||||
|
animation,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
114
src/views/user/mygroup/mygroup.vue
Executable file
@@ -0,0 +1,114 @@
|
|||||||
|
<template>
|
||||||
|
<div class="q-gutter-sm q-pa-sm q-pb-md">
|
||||||
|
<div v-if="mygrp.descr" class="fit column no-wrap justify-evenly items-center content-start">
|
||||||
|
|
||||||
|
<div class="">
|
||||||
|
<q-avatar size="140px">
|
||||||
|
<q-img :src="getImgGrp()" :alt="username" img-class="imgprofile" height="140px" @click="showPic = true"/>
|
||||||
|
</q-avatar>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-h6">
|
||||||
|
<span v-if="checkifShow('name')"> {{ mygrp.title }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 text-h7 text-blue text-shadow-2">
|
||||||
|
{{ mygrp.groupname }}
|
||||||
|
</div>
|
||||||
|
<div class="col-12 text-h7">
|
||||||
|
<span v-if="checkifShow('descr')">{{ mygrp.descr }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-if="mygrp.admins && !mygrp.admins.includes(userStore.my.username)">
|
||||||
|
<q-btn
|
||||||
|
v-if="!userStore.IsMyGroupByGroupname(mygrp.groupname) && !userStore.IsAskedGroupByGroupname(mygrp.groupname)"
|
||||||
|
icon="fas fa-user-plus"
|
||||||
|
color="primary" :label="$t('groups.ask_group')"
|
||||||
|
@click="tools.setRequestGroup($q, userStore.my.username, mygrp.groupname, true)"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<q-btn
|
||||||
|
v-if="userStore.IsAskedGroupByGroupname(mygrp.groupname) && !userStore.IsMyGroupByGroupname(mygrp.groupname)"
|
||||||
|
icon="fas fa-user-minus"
|
||||||
|
flat :label="$t('groups.cancel_ask_group_short')"
|
||||||
|
@click="tools.cancelReqGroups($q, userStore.my.username, mygrp.groupname)"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-if="mygrp.title">
|
||||||
|
<br>
|
||||||
|
</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 v-if="mygrp.title" class="myrow justify-evenly items-center q-pa-sm q-ma-sm">
|
||||||
|
|
||||||
|
<div class="col-6 q-ma-xs">
|
||||||
|
<q-btn
|
||||||
|
v-if="getLinkGrpTelegram()" icon="fab fa-telegram"
|
||||||
|
color="blue" type="a"
|
||||||
|
size="md"
|
||||||
|
rounded
|
||||||
|
:label="$t('msgs.telegrammsg')"
|
||||||
|
:href="getLinkGrpTelegram()" target="__blank">
|
||||||
|
</q-btn>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-6 q-ma-xs">
|
||||||
|
<q-btn
|
||||||
|
v-if="getLinkWebSite()" icon="fas fa-globe"
|
||||||
|
color="blue" type="a"
|
||||||
|
size="md"
|
||||||
|
rounded
|
||||||
|
:label="$t('reg.website')"
|
||||||
|
:href="getLinkWebSite()" target="__blank">
|
||||||
|
</q-btn>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else class="fit column no-wrap justify-evenly items-center content-start">
|
||||||
|
<q-skeleton type="QAvatar" size="140px" height="140px" animation="fade"/>
|
||||||
|
<q-card flat bordered style="width: 250px">
|
||||||
|
<div class="text-h6">
|
||||||
|
<q-skeleton :animation="animation"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 text-h7 text-grey text-center">
|
||||||
|
{{ groupname }}
|
||||||
|
</div>
|
||||||
|
<div class="col-12 text-h7">
|
||||||
|
<q-skeleton :animation="animation"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 text-h8 q-mt-sm">
|
||||||
|
<q-skeleton :animation="animation"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 text-h8 q-mt-sm">
|
||||||
|
<q-skeleton :animation="animation"/>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<q-dialog
|
||||||
|
v-model="showPic"
|
||||||
|
full-height full-width
|
||||||
|
>
|
||||||
|
|
||||||
|
<img :src="getImgGrp()" :alt="groupname" class="full-width">
|
||||||
|
|
||||||
|
</q-dialog>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./mygroup.ts">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './mygroup.scss';
|
||||||
|
</style>
|
||||||
|
|
||||||
0
src/views/user/mygroups/mygroups.scss
Normal file
105
src/views/user/mygroups/mygroups.ts
Executable file
@@ -0,0 +1,105 @@
|
|||||||
|
import { CMyGroups } from '@/components/CMyGroups'
|
||||||
|
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||||
|
import { tools } from '@store/Modules/tools'
|
||||||
|
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
|
||||||
|
import { useUserStore } from '@store/UserStore'
|
||||||
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
|
import { useI18n } from '@/boot/i18n'
|
||||||
|
import { colmyUserGroup } from '@store/Modules/fieldsTable'
|
||||||
|
import { ISearchList } from 'model'
|
||||||
|
import { costanti } from '@costanti'
|
||||||
|
import { shared_consts } from '@/common/shared_vuejs'
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
name: 'mygroups',
|
||||||
|
components: { CMyGroups, CGridTableRec },
|
||||||
|
props: {},
|
||||||
|
setup() {
|
||||||
|
const userStore = useUserStore()
|
||||||
|
const $route = useRoute()
|
||||||
|
const { t } = useI18n()
|
||||||
|
|
||||||
|
const arrfilterand: any = ref([])
|
||||||
|
const filtercustom: any = ref([])
|
||||||
|
const searchList = ref(<ISearchList[]>[])
|
||||||
|
|
||||||
|
const filter = ref(costanti.FIND_GROUP)
|
||||||
|
|
||||||
|
function mounted() {
|
||||||
|
searchList.value = []
|
||||||
|
filtercustom.value = []
|
||||||
|
arrfilterand.value = []
|
||||||
|
|
||||||
|
const filt_loaded = tools.getCookie(tools.COOK_SEARCH + tools.GROUP_SEARCH)
|
||||||
|
filter.value = filt_loaded ? filt_loaded : costanti.FIND_GROUP
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(() => filter.value, (newval: any, oldval) => {
|
||||||
|
tools.setCookie(tools.COOK_SEARCH + tools.GROUP_SEARCH, newval)
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
function extraparams() {
|
||||||
|
let lk_tab = 'mygroups'
|
||||||
|
let lk_LF = 'userId'
|
||||||
|
let lk_FF = '_id'
|
||||||
|
let lk_as = 'group'
|
||||||
|
let af_objId_tab = 'myId'
|
||||||
|
|
||||||
|
return {
|
||||||
|
lookup1: {
|
||||||
|
lk_tab,
|
||||||
|
lk_LF,
|
||||||
|
lk_FF,
|
||||||
|
lk_as,
|
||||||
|
af_objId_tab,
|
||||||
|
lk_proj: {
|
||||||
|
groupname: 1,
|
||||||
|
title: 1,
|
||||||
|
descr: 1,
|
||||||
|
img: 1,
|
||||||
|
visibility: 1,
|
||||||
|
admins: 1,
|
||||||
|
idSector: 1,
|
||||||
|
photos: 1,
|
||||||
|
idCity: 1,
|
||||||
|
comune: 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
lookup2: {
|
||||||
|
lk_tab: 'cities',
|
||||||
|
lk_LF: 'idCity',
|
||||||
|
lk_FF: '_id',
|
||||||
|
lk_as: 'comune',
|
||||||
|
lk_proj: {
|
||||||
|
groupname: 1,
|
||||||
|
title: 1,
|
||||||
|
descr: 1,
|
||||||
|
img: 1,
|
||||||
|
idSector: 1,
|
||||||
|
visibility: 1,
|
||||||
|
admins: 1,
|
||||||
|
photos: 1,
|
||||||
|
idCity: 1,
|
||||||
|
comune: 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(mounted)
|
||||||
|
|
||||||
|
return {
|
||||||
|
filter,
|
||||||
|
costanti,
|
||||||
|
shared_consts,
|
||||||
|
arrfilterand,
|
||||||
|
filtercustom,
|
||||||
|
searchList,
|
||||||
|
colmyUserGroup,
|
||||||
|
extraparams,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
46
src/views/user/mygroups/mygroups.vue
Executable file
@@ -0,0 +1,46 @@
|
|||||||
|
<template>
|
||||||
|
<div class="">
|
||||||
|
<CMyGroups
|
||||||
|
v-model="filter"
|
||||||
|
:finder="true"
|
||||||
|
>
|
||||||
|
<CGridTableRec
|
||||||
|
prop_mytable="mygroups"
|
||||||
|
prop_mytitle=""
|
||||||
|
:prop_mycolumns="colmyUserGroup"
|
||||||
|
prop_colkey="_id"
|
||||||
|
col_title="groupname"
|
||||||
|
:vertical="true"
|
||||||
|
nodataLabel=" "
|
||||||
|
:prop_search="true"
|
||||||
|
hint="nome del gruppo da trovare"
|
||||||
|
:finder="true"
|
||||||
|
:choose_visutype="true"
|
||||||
|
:finder_noNull="false"
|
||||||
|
:options="shared_consts.OPTIONS_SEARCH_ONLY_FULL_WORDS"
|
||||||
|
:butt_modif_new="true"
|
||||||
|
noresultLabel="nome del gruppo non trovato"
|
||||||
|
:arrfilters="arrfilterand"
|
||||||
|
:filtercustom="filtercustom"
|
||||||
|
:prop_searchList="searchList"
|
||||||
|
:showType="costanti.SHOW_GROUPINFO"
|
||||||
|
keyMain=""
|
||||||
|
:showCol="false"
|
||||||
|
:extraparams="extraparams()">
|
||||||
|
|
||||||
|
</CGridTableRec>
|
||||||
|
</CMyGroups>
|
||||||
|
|
||||||
|
<div v-if="filter === costanti.CREATE_GROUP">
|
||||||
|
Nuovo Gruppo:
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" src="./mygroups.ts">
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import './mygroups.scss';
|
||||||
|
</style>
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ import { shared_consts } from '@/common/shared_vuejs'
|
|||||||
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'myuser',
|
name: 'myprofile',
|
||||||
components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime },
|
components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime },
|
||||||
props: {},
|
props: {},
|
||||||
setup() {
|
setup() {
|
||||||
|
|||||||
@@ -102,6 +102,21 @@
|
|||||||
</q-card>
|
</q-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<CTitleBanner
|
||||||
|
class="" title="Competenze e Talenti" bgcolor="bg-positive" clcolor="text-white"
|
||||||
|
myclass="myshad" :canopen="true">
|
||||||
|
|
||||||
|
<CSkill
|
||||||
|
:filtercustom="filtroutente"
|
||||||
|
:butt_modif_new="false"
|
||||||
|
|
||||||
|
>
|
||||||
|
|
||||||
|
</CSkill>
|
||||||
|
|
||||||
|
|
||||||
|
</CTitleBanner>
|
||||||
|
|
||||||
<div v-if="myuser.name">
|
<div v-if="myuser.name">
|
||||||
<CTitleBanner
|
<CTitleBanner
|
||||||
class="" :title="$t('dashboard.info')" bgcolor="bg-primary" clcolor="text-white"
|
class="" :title="$t('dashboard.info')" bgcolor="bg-primary" clcolor="text-white"
|
||||||
@@ -124,20 +139,6 @@
|
|||||||
</CTitleBanner>
|
</CTitleBanner>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<CTitleBanner
|
|
||||||
class="" title="Competenze e Talenti" bgcolor="bg-positive" clcolor="text-white"
|
|
||||||
myclass="myshad" :canopen="true">
|
|
||||||
|
|
||||||
<CSkill
|
|
||||||
:filtercustom="filtroutente"
|
|
||||||
:butt_modif_new="false"
|
|
||||||
|
|
||||||
>
|
|
||||||
|
|
||||||
</CSkill>
|
|
||||||
|
|
||||||
|
|
||||||
</CTitleBanner>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<q-dialog
|
<q-dialog
|
||||||
|
|||||||
12
yarn.lock
@@ -6881,9 +6881,9 @@ is-absolute-url@^3.0.3:
|
|||||||
resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
|
resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
|
||||||
integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==
|
integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==
|
||||||
|
|
||||||
is-accessor-descriptor@^0.1.6:
|
is-accessor-descriptor@^0.1.7:
|
||||||
version "0.1.6"
|
version "0.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
|
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.7.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
|
||||||
integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
|
integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
|
||||||
dependencies:
|
dependencies:
|
||||||
kind-of "^3.0.2"
|
kind-of "^3.0.2"
|
||||||
@@ -6983,11 +6983,11 @@ is-date-object@^1.0.1:
|
|||||||
has-tostringtag "^1.0.0"
|
has-tostringtag "^1.0.0"
|
||||||
|
|
||||||
is-descriptor@^0.1.0:
|
is-descriptor@^0.1.0:
|
||||||
version "0.1.6"
|
version "0.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
|
resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
|
||||||
integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
|
integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
|
||||||
dependencies:
|
dependencies:
|
||||||
is-accessor-descriptor "^0.1.6"
|
is-accessor-descriptor "^0.1.7"
|
||||||
is-data-descriptor "^0.1.4"
|
is-data-descriptor "^0.1.4"
|
||||||
kind-of "^5.0.0"
|
kind-of "^5.0.0"
|
||||||
|
|
||||||
|
|||||||