7 Commits

Author SHA1 Message Date
Surya Paolo
41fa886bc8 aggiornamento... 2023-04-07 21:10:16 +02:00
Surya Paolo
a8eb6344ef Revert "Aggiornamento a 0.6.1"
This reverts commit 701e1f1968.
2023-04-07 20:07:56 +02:00
Surya Paolo
9c08ebaacd Revert "Aggiornamento a 0.6.1"
This reverts commit 701e1f1968.
2023-04-07 18:38:46 +02:00
Surya Paolo
eb4998dcd2 Revert "Aggiornamento a 0.6.1"
This reverts commit 701e1f1968.
2023-04-07 18:38:22 +02:00
Surya Paolo
799a8a0e15 Revert "nuova veste grafica: myskills, mygoods, mybachecas, myhosps,"
This reverts commit 6fad472211.
2023-04-07 18:24:15 +02:00
Surya Paolo
6e6e363059 Revert "Aggiornamento a 0.6.1"
This reverts commit 701e1f1968.
2023-04-07 18:01:48 +02:00
Surya Paolo
7148b773ea Revert "cambio nome ai circuiti"
This reverts commit 0365c58326.
2023-04-07 17:21:22 +02:00
81 changed files with 262 additions and 1298 deletions

View File

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

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

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

View File

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

View File

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

View File

@@ -19,7 +19,7 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
echo "Sincronizzazione in remoto..." echo "Sincronizzazione in remoto..."
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..." echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a --exclude 'upload' dist/pwa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/ sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a dist/pwa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/
echo "Finito $SERVERDIR_WEBSITE " echo "Finito $SERVERDIR_WEBSITE "
fi fi

View File

@@ -19,7 +19,7 @@ sleep 1
npm run buildpwa npm run buildpwa
echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..." echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..."
sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a --exclude 'upload' dist/pwa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/ sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a dist/pwa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/
cp .env.prod.bak .env.production cp .env.prod.bak .env.production

View File

@@ -18,7 +18,7 @@ sleep 1
npm run buildpwa npm run buildpwa
echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..." echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..."
rsync -e 'ssh -p 5522' -a --exclude 'upload' dist/pwa/ root@risosrv:/home/$SERVERDIR_WEBSITE rsync -e 'ssh -p 5522' -a dist/pwa/ root@risosrv:/home/$SERVERDIR_WEBSITE
cp .env.prod.bak .env.production cp .env.prod.bak .env.production

View File

@@ -1,6 +1,6 @@
{ {
"name": "riso", "name": "riso",
"version": "0.6.1", "version": "0.5.3",
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.", "description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
"productName": "Riso", "productName": "Riso",
"author": "Paolo Arena", "author": "Paolo Arena",
@@ -22,48 +22,48 @@
"generate-sw": "workbox generateSW workbox-config.js" "generate-sw": "workbox generateSW workbox-config.js"
}, },
"dependencies": { "dependencies": {
"@quasar/extras": "^1.16.2", "@quasar/extras": "^1.15.8",
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.16", "@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13",
"@vue-leaflet/vue-leaflet": "^0.9.0", "@vue-leaflet/vue-leaflet": "^0.7.0",
"@vue/compat": "^3.2.47", "@vue/compat": "^3.2.45",
"@vue/compiler-sfc": "^3.2.47", "@vue/compiler-sfc": "^3.2.45",
"@vue/eslint-config-standard": "7.0.0", "@vue/eslint-config-standard": "7.0.0",
"@vuelidate/core": "^2.0.2", "@vuelidate/core": "^2.0.0",
"@vuelidate/validators": "^2.0.2", "@vuelidate/validators": "^2.0.0",
"acorn": "^8.8.2", "acorn": "^8.8.1",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
"autoprefixer": "^10.4.14", "autoprefixer": "^10.4.13",
"axios": "^1.3.5", "axios": "^1.2.1",
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"chart.js": "3.9.1", "chart.js": "3.9.1",
"core-js": "^3.30.0", "core-js": "^3.26.1",
"crypto": "^1.0.1", "crypto": "^1.0.1",
"date-fns": "^2.29.3", "date-fns": "^2.29.3",
"dotenv": "^16.0.3", "dotenv": "^16.0.3",
"echarts": "5.4.2", "echarts": "5.3.3",
"eslint-plugin-quasar": "^1.1.0", "eslint-plugin-quasar": "^1.1.0",
"eslint-plugin-standard": "^5.0.0", "eslint-plugin-standard": "^5.0.0",
"graphql": "^16.6.0", "graphql": "^16.6.0",
"graphql-tag": "^2.12.6", "graphql-tag": "^2.12.6",
"gsap": "^3.11.5", "gsap": "^3.11.3",
"jquery": "^3.6.4", "jquery": "^3.6.2",
"js-cookie": "^3.0.1", "js-cookie": "^3.0.1",
"localforage": "^1.10.0", "localforage": "^1.10.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"npm": "^9.6.4", "npm": "^9.2.0",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"pinia": "^2.0.33", "pinia": "^2.0.28",
"prerender-spa-plugin": "^3.4.0", "prerender-spa-plugin": "^3.4.0",
"quasar": "^2.11.10", "quasar": "^2.11.0",
"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.8.4", "vee-validate": "^4.7.3",
"vue": "^3.2.47", "vue": "^3.2.45",
"vue-chart-3": "^3.1.8", "vue-chart-3": "^3.1.8",
"vue-class-component": "^8.0.0-rc.1", "vue-class-component": "^8.0.0-rc.1",
"vue-country-code": "^1.1.3", "vue-country-code": "^1.1.3",
"vue-echarts": "^6.5.4", "vue-echarts": "^6.3.1",
"vue-i18n": "^9.2.2", "vue-i18n": "^9.2.2",
"vue-idb": "^0.2.0", "vue-idb": "^0.2.0",
"vue-loader": "^17.0.1", "vue-loader": "^17.0.1",
@@ -82,47 +82,56 @@
"@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",
"@types/jest": "^29.5.0", "@types/jest": "^29.2.4",
"@types/js-cookie": "^3.0.3", "@types/js-cookie": "^3.0.2",
"@types/node": "18.15.11", "@types/node": "18.11.16",
"@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.16", "@types/vuelidate": "^0.7.15",
"@typescript-eslint/eslint-plugin": "^5.57.1", "@typescript-eslint/eslint-plugin": "^5.46.1",
"@typescript-eslint/parser": "^5.57.1", "@typescript-eslint/parser": "^5.46.1",
"eslint": "^8.37.0", "eslint": "^8.30.0",
"eslint-config-prettier": "^8.8.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.27.5", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"eslint-plugin-vue": "^9.10.0", "eslint-plugin-vue": "^9.8.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.6", "http-proxy-middleware": "^2.0.6",
"jest": "^29.5.0", "jest": "^29.3.1",
"json-loader": "^0.5.7", "json-loader": "^0.5.7",
"node-sass": "7.0.0", "node-sass": "7.0.1",
"npm-check-updates": "^16.10.7", "npm-check-updates": "^16.6.0",
"optimize-css-assets-webpack-plugin": "^6.0.1", "optimize-css-assets-webpack-plugin": "^6.0.1",
"postcss": "^8.4.21", "postcss": "^8.4.20",
"postcss-loader": "^7.2.4", "postcss-loader": "^7.0.2",
"sass-loader": "^13.2.2", "sass-loader": "^13.2.0",
"strip-ansi": "=7.0.1", "strip-ansi": "=7.0.1",
"ts-jest": "^29.1.0", "ts-jest": "^29.0.3",
"ts-loader": "^9.4.2", "ts-loader": "^9.4.2",
"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": "^5.0.3", "typescript": "^4.9.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",
"webpack": "^5.78.0", "webpack": "^5.75.0",
"workbox-webpack-plugin": "^6.5.4" "workbox-webpack-plugin": "^6.5.4"
}, },
"browser": { "browser": {
"crypto": false "crypto": false
}, },
"browserslist": [ "browserslist": [
"last 40 Chrome versions",
"last 40 Firefox versions",
"last 10 Edge versions",
"last 35 Safari versions",
"last 60 Android versions",
"last 250 ChromeAndroid versions",
"last 60 FirefoxAndroid versions",
"last 30 iOS versions",
"last 10 Opera versions",
"> 0.05%", "> 0.05%",
"not dead" "not dead"
], ],

View File

@@ -1 +0,0 @@
/Users/suryapaolo/backups/upload

View File

@@ -9,6 +9,6 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..." echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a --exclude 'upload' dist/pwa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/ sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a dist/pwa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/
echo "Finito $SERVERDIR_WEBSITE " echo "Finito $SERVERDIR_WEBSITE "
fi fi

View File

@@ -5,7 +5,7 @@ source .env.test.risosrv
cp .env.test.risosrv .env.production cp .env.test.risosrv .env.production
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..." echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
rsync -e 'ssh -p 5522' -a --exclude 'upload' dist/pwa/ root@risosrv:/home/$SERVERDIR_WEBSITE/ rsync -e 'ssh -p 5522' -a dist/pwa/ root@risosrv:/home/$SERVERDIR_WEBSITE/
echo "Finito $SERVERDIR_WEBSITE" echo "Finito $SERVERDIR_WEBSITE"
cp .env.prod.bak .env.production cp .env.prod.bak .env.production

View File

@@ -5,7 +5,7 @@ source ./.env.test
cp .env.test .env.production cp .env.test .env.production
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..." echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a --exclude 'upload' dist/pwa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/ sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a dist/pwa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/
echo "Finito $SERVERDIR_WEBSITE" echo "Finito $SERVERDIR_WEBSITE"
cp .env.prod.bak .env.production cp .env.prod.bak .env.production

View File

@@ -9,6 +9,6 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..." echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a --exclude 'upload' dist/spa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/ sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a dist/spa/ ftpadmin@servereng:/var/www/$SERVERDIR_WEBSITE/
echo "Finito $SERVERDIR_WEBSITE " echo "Finito $SERVERDIR_WEBSITE "
fi fi

View File

@@ -18,7 +18,7 @@ import { CacheableResponsePlugin } from 'workbox-cacheable-response'
import { ExpirationPlugin } from 'workbox-expiration' import { ExpirationPlugin } from 'workbox-expiration'
console.log( console.log(
' [ VER-0.6.1 ] _---------________------ PAO: this is my custom service worker') ' [ VER-0.5.4 ] _---------________------ PAO: this is my custom service worker')
importScripts('js/idb.js') importScripts('js/idb.js')
importScripts('js/storage.js') importScripts('js/storage.js')
@@ -36,7 +36,7 @@ let port = 3000
if (self.location.hostname.startsWith('test')) { if (self.location.hostname.startsWith('test')) {
port = 3001 port = 3001
} }
console.log('SW- app ver 0.6.1') console.log('SW- app ver 0.5.4')
const cfgenv = { const cfgenv = {
serverweb: `${self.location.protocol}//${self.location.hostname}:${port}`, serverweb: `${self.location.protocol}//${self.location.hostname}:${port}`,

View File

@@ -99,7 +99,6 @@ export const shared_consts = {
OPTIONS_SEARCH_ONLY_FULL_WORDS: 1, OPTIONS_SEARCH_ONLY_FULL_WORDS: 1,
OPTIONS_SEARCH_USER_ONLY_FULL_WORDS: 2, OPTIONS_SEARCH_USER_ONLY_FULL_WORDS: 2,
OPTIONS_SEARCH_USER_ALL_WORDS: 4, OPTIONS_SEARCH_USER_ALL_WORDS: 4,
OPTIONS_ADD_COUNT_FAVORITE: 8,
FRIENDSCMD: { FRIENDSCMD: {
SETTRUST: 121, SETTRUST: 121,
@@ -1556,7 +1555,7 @@ export const shared_consts = {
return ['_id', 'username', 'group', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'notask_verif', 'verified_by_aportador', 'trust_modified', 'img', 'ipaddr', 'lasttimeonline', 'profile', 'news_on'] return ['_id', 'username', 'group', 'email', 'name', 'surname', 'perm', 'date_reg', 'verified_email', 'notask_verif', 'verified_by_aportador', 'trust_modified', 'img', 'ipaddr', 'lasttimeonline', 'profile', 'news_on']
}, },
getProjectForAll(proj_add: string) { getProjectForAll(proj_add: any) {
let proj = { let proj = {
idContribType: 1, idContribType: 1,
idCity: 1, idCity: 1,

View File

@@ -30,7 +30,7 @@ export default defineComponent({
title: String, title: String,
mylist: { mylist: {
type: [Array, String, undefined, null] as PropType<IAccomodation[] | string | undefined | null>, type: [Array, String, undefined, null] as PropType<IAccomodation[] | string | undefined | null>,
required: false, required: true,
}, },
}, },
emits: ['showandsave'], emits: ['showandsave'],
@@ -68,7 +68,7 @@ export default defineComponent({
}) })
function created() { function created() {
console.log('created CAccomodation', props.mylist) // console.log('created CAccomodation', props.mylist)
if (isValid(props.mylist)) { if (isValid(props.mylist)) {
// @ts-ignore // @ts-ignore
let myarr: any = props.mylist let myarr: any = props.mylist

View File

@@ -81,7 +81,6 @@ export default defineComponent({
const myoptions = ref(<any>[]) const myoptions = ref(<any>[])
const col = ref(<IColGridTable>{}) const col = ref(<IColGridTable>{})
/* /*
@@ -150,7 +149,7 @@ export default defineComponent({
else if (props.table === toolsext.TABUSER) else if (props.table === toolsext.TABUSER)
return userStore.getMypaginationMembers() return userStore.getMypaginationMembers()
else if (shared_consts.TABLES_ORDER_DATE_UPDATED.includes(props.table)) else if (shared_consts.TABLES_ORDER_DATE_UPDATED.includes(props.table))
return { sortBy: 'date_updated', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 10 } // date_updated return { sortBy: 'date_created', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 10 } // date_updated
else if (shared_consts.TABLES_ORDER_DESCR.includes(props.table)) else if (shared_consts.TABLES_ORDER_DESCR.includes(props.table))
return { sortBy: 'desc', descending: false, page: 1, rowsNumber: 0, rowsPerPage: 10 } return { sortBy: 'desc', descending: false, page: 1, rowsNumber: 0, rowsPerPage: 10 }
@@ -1160,8 +1159,6 @@ export default defineComponent({
idStatusSkill: 1, idStatusSkill: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
numLevel: 1, numLevel: 1,
@@ -1187,7 +1184,7 @@ export default defineComponent({
reported: 1, reported: 1,
date_report: 1, date_report: 1,
username_who_report: 1, username_who_report: 1,
} }
}, },
lookup3: { lookup3: {
lk_tab: 'sectorgoods', lk_tab: 'sectorgoods',
@@ -1231,8 +1228,6 @@ export default defineComponent({
idStatusSkill: 1, idStatusSkill: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
dateTimeStart: 1, dateTimeStart: 1,
@@ -1260,7 +1255,7 @@ export default defineComponent({
reported: 1, reported: 1,
date_report: 1, date_report: 1,
username_who_report: 1, username_who_report: 1,
} }
}, },
lookup3: { lookup3: {
lk_tab: toolsext.TABSECTORS, lk_tab: toolsext.TABSECTORS,
@@ -1310,8 +1305,6 @@ export default defineComponent({
preferences: 1, preferences: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
photos: 1, photos: 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
@@ -1329,7 +1322,7 @@ export default defineComponent({
comune: 1, comune: 1,
mycities: 1, mycities: 1,
'profile.img': 1, 'profile.img': 1,
} }
}, },
} }
@@ -1359,8 +1352,6 @@ export default defineComponent({
idStatusSkill: 1, idStatusSkill: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
numLevel: 1, numLevel: 1,
@@ -1386,7 +1377,7 @@ export default defineComponent({
reported: 1, reported: 1,
date_report: 1, date_report: 1,
username_who_report: 1, username_who_report: 1,
} }
}, },
lookup3: { lookup3: {
lk_tab: toolsext.TABSECTORS, lk_tab: toolsext.TABSECTORS,

View File

@@ -34,7 +34,6 @@
<CGridTableRec <CGridTableRec
v-if="searchList.length > 0" v-if="searchList.length > 0"
:prop_mytable="table" :prop_mytable="table"
:options="tools.optionsTable(table)"
prop_mytitle="" prop_mytitle=""
:prop_mycolumns="col" :prop_mycolumns="col"
:prop_colkey="prop_colkey" :prop_colkey="prop_colkey"

View File

@@ -1,65 +0,0 @@
$heightBtn: 100%;
$grayshadow: #555;
.text-subtitle-gallery {
font-size: 1rem;
font-weight: 400;
line-height: 1.75rem;
letter-spacing: .00937em;
text-shadow: .1rem .1rem .1rem $grayshadow;
}
@media (max-width: 718px) {
// PER VERSIONE MOBILE
.text-subtitle-gallery {
font-size: 1rem;
}
}
.myimg {
border-radius: 10px !important;
height: 200px;
cursor: pointer;
}
.myimg-modify {
cursor: grab;
}
.barwidth{
width: 250px !important;
}
.q-img {
&__image {
border-radius: 10px !important;
}
}
.my-card-gallery {
width: 100%;
max-width: 300px;
min-width: 200px;
padding: 0.5rem 0.5rem;
height: 350px;
margin: auto;
}
.my-card-gallery-noModif {
width: 100%;
max-width: 300px;
min-width: 200px;
padding: 1rem 1rem;
height: 220px;
}
.my-card-gallery-view {
width: 100px;
height: 100px;
padding: 0.25rem 0.25rem;
margin: auto;
}

View File

@@ -1,40 +0,0 @@
import { defineComponent, ref, PropType, watch, onMounted, computed } from 'vue'
import { useI18n } from '@src/boot/i18n'
import { useUserStore } from '@store/UserStore'
import { useQuasar } from 'quasar'
import { IGallery, IImgGallery } from 'model'
import { CMyPage } from '@/components/CMyPage'
import { tools } from '@store/Modules/tools'
import { useGlobalStore } from '@store/globalStore'
import { costanti } from '@costanti'
export default defineComponent({
name: 'CGalleryImages',
props: {
imgGallery: {
type: Object as PropType<IImgGallery[] | string | undefined | null>,
required: true,
},
directory: {
type: String,
required: true,
}
},
components: { CMyPage },
setup(props, { emit }) {
const $q = useQuasar()
const { t } = useI18n()
const userStore = useUserStore()
const globalStore = useGlobalStore()
const slide = ref(0)
const autoplay = ref(5000)
return {
tools,
costanti,
slide,
autoplay,
}
}
})

View File

@@ -1,30 +0,0 @@
<template>
<q-carousel
swipeable
animated
:autoplay="autoplay"
transition-prev="slide-right"
transition-next="slide-left"
@mouseenter="autoplay = false"
@mouseleave="autoplay = 5000"
:arrows="imgGallery.length > 1"
v-model="slide"
:thumbnails="imgGallery.length > 1"
infinite
>
<q-carousel-slide
v-for="(myimg, index) in imgGallery"
:name="index"
:key="index"
:img-src="directory + '/' + myimg.imagefile"
>
</q-carousel-slide>
</q-carousel>
</template>
<script lang="ts" src="./CGalleryImages.ts">
</script>
<style lang="scss" scoped>
@import './CGalleryImages.scss';
</style>

View File

@@ -1 +0,0 @@
export {default as CGalleryImages} from './CGalleryImages.vue'

View File

@@ -36,7 +36,6 @@ import { costanti } from '@costanti'
import translate from '@/globalroutines/util' import translate from '@/globalroutines/util'
import { toolsext } from '@store/Modules/toolsext' import { toolsext } from '@store/Modules/toolsext'
import { CMyCardPopup } from '@/components/CMyCardPopup' import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CMyCardGood } from '@/components/CMyCardGood'
import { CMyCardService } from '@/components/CMyCardService' import { CMyCardService } from '@/components/CMyCardService'
import { CMyCardGrpPopup } from '@/components/CMyCardGrpPopup' import { CMyCardGrpPopup } from '@/components/CMyCardGrpPopup'
import { CMyCardCircuitPopup } from '@/components/CMyCardCircuitPopup' import { CMyCardCircuitPopup } from '@/components/CMyCardCircuitPopup'
@@ -289,7 +288,7 @@ export default defineComponent({
components: { components: {
CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends, CMyGroups, CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends, CMyGroups,
CMyUser, CMyRecCard, CMyCardPopup, CMyRecGrpCard, CMyCardGrpPopup, CMyCardCircuitPopup, CMyUser, CMyRecCard, CMyCardPopup, CMyRecGrpCard, CMyCardGrpPopup, CMyCardCircuitPopup,
CMyRecCircuitCard, CMyCardService, CMyCardGood CMyRecCircuitCard, CMyCardService
}, },
setup(props, { emit }) { setup(props, { emit }) {
const $q = useQuasar() const $q = useQuasar()

View File

@@ -1088,7 +1088,6 @@
<q-dialog <q-dialog
v-model="visupagedialog" v-model="visupagedialog"
@hide="hidewindow" @hide="hidewindow"
class="q-ma-sm"
:maximized="$q.screen.lt.sm" :maximized="$q.screen.lt.sm"
> >

View File

@@ -24,7 +24,7 @@ import { useI18n } from '@/boot/i18n'
import { toolsext } from '@store/Modules/toolsext' import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar' import { useQuasar } from 'quasar'
import { costanti } from '@costanti' import { costanti } from '@costanti'
import { IBookmark, ICircuit, IFavorite, IMyCircuit, IMyGroup, IUserFields } from 'model' import { ICircuit, IMyCircuit, IMyGroup, IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs' import { shared_consts } from '@/common/shared_vuejs'
import { static_data } from '@/db/static_data' import { static_data } from '@/db/static_data'
import { fieldsTable } from '@store/Modules/fieldsTable' import { fieldsTable } from '@store/Modules/fieldsTable'
@@ -53,7 +53,6 @@ export default defineComponent({
const { getRefLink } = MixinUsers() const { getRefLink } = MixinUsers()
const animation = ref('fade') const animation = ref('fade')
const mytab = ref('my')
const username = computed(() => $route.params.username ? $route.params.username.toString() : userStore.my.username) const username = computed(() => $route.params.username ? $route.params.username.toString() : userStore.my.username)
const idnotif = computed(() => $route.query.idnotif ? $route.query.idnotif.toString() : '') const idnotif = computed(() => $route.query.idnotif ? $route.query.idnotif.toString() : '')
@@ -181,25 +180,6 @@ export default defineComponent({
return '' return ''
} }
function filtrofavorite(table: string) {
const tab = tools.getNumTabByTable(table)
if (myuser.value && myuser.value.profile.favorite) {
let arrfav = myuser.value.profile.favorite.filter((rec: IBookmark) => rec.tab === tab)
if (arrfav)
return myuser.value.profile.favorite ? [{ _id: { $in: arrfav.map((rec: any) => rec.id) } }] : []
}
return []
}
function filtrobookmark(table: string) {
const tab = tools.getNumTabByTable(table)
if (myuser.value && myuser.value.profile.bookmark) {
let arrfav = myuser.value.profile.bookmark.filter((rec: IBookmark) => rec.tab === tab)
if (arrfav)
return myuser.value.profile.bookmark ? [{ _id: { $in: arrfav.map((rec: any) => rec.id) } }] : []
}
return []
}
onMounted(mounted) onMounted(mounted)
return { return {
@@ -214,8 +194,6 @@ export default defineComponent({
getLinkUserTelegram, getLinkUserTelegram,
getLinkWebSite, getLinkWebSite,
filtroutente, filtroutente,
filtrofavorite,
filtrobookmark,
showPic, showPic,
myusername, myusername,
userStore, userStore,
@@ -234,7 +212,6 @@ export default defineComponent({
listcircuitsfiltered, listcircuitsfiltered,
optionsMainCards, optionsMainCards,
getlinkpage, getlinkpage,
mytab,
} }
} }
}) })

View File

@@ -61,7 +61,7 @@ export default defineComponent({
function load() { function load() {
// Carica il profilo di quest'utente // Carica il profilo di quest'utente
if (props.idRec) { if (props.idRec && props.idRec > 0) {
userStore.loadGeneric(props.table, props.idRec, idnotif.value).then((ris) => { userStore.loadGeneric(props.table, props.idRec, idnotif.value).then((ris) => {
myrec.value = ris myrec.value = ris
notifStore.setAsRead(idnotif.value) notifStore.setAsRead(idnotif.value)

View File

@@ -1,127 +0,0 @@
.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;
}
.text-bacheca{
margin: 10px;
border: solid 2px #4198ef;
border-radius: 1rem;
padding: 10px;
}
.note-bacheca{
border: solid 2px #C10015;
border-radius: 1rem;
padding: 10px;
}
.img {
margin-left: auto;
margin-right: auto;
max-height: 500px;
max-width: 350px;
@media (max-width: 500px) {
max-height: 500px;
max-width: 400px;
}
}
$graytext: #555;
.cal {
color: black;
font-size: 1rem;
font-weight: 400;
line-height: 1.25rem;
letter-spacing: 0.03333em;
&__title {
color: white;
font-weight: 700;
font-size: 1rem;
padding-bottom: 10px;
}
&__details {
color: black;
}
&__hours {
color: blue;
&-title {
color: $graytext;
}
&-content {
font-weight: 400;
}
}
&__where {
margin-top: 5px;
color: blue;
&-title {
color: $graytext;
}
&-content {
color: darkblue !important;
}
}
&__when {
margin-top: 5px;
color: blue;
&-title {
color: $graytext;
}
&-content {
color: darkblue !important;;
}
}
&__teacher {
margin-top: 5px;
&-title {
color: $graytext;
}
&-content {
color: darkblue !important;;
}
}
&__quota {
margin-top: 5px;
&-title {
color: $graytext;
}
&-content {
}
}
&__img {
width: 100px;
height: 100px;
padding: 10px;
}
}

View File

@@ -1,136 +0,0 @@
import { computed, defineComponent, onMounted, PropType, ref, watch } from 'vue'
import { CMyFieldDb } from '@/components/CMyFieldDb'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CProfile } from '@/components/CProfile'
import { CDateTime } from '@/components/CDateTime'
import { CMyPage } from '@/components/CMyPage'
import { CMyFieldRec } from '@/components/CMyFieldRec'
import { CMyUser } from '@/components/CMyUser'
import { CGalleryImages } from '@/components/CGalleryImages'
import { CAccomodation } from '@/components/CAccomodation'
import { tools } from '@store/Modules/tools'
import { useUserStore } from '@store/UserStore'
import { useCalendarStore } from '@store/CalendarStore'
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 { IColGridTable, IImgGallery, IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { colCitys, fieldsTable } from '@store/Modules/fieldsTable'
import { useRoute } from 'vue-router'
import { useNotifStore } from '@store/NotifStore'
export default defineComponent({
name: 'CMyCardGood',
components: { CProfile, CTitleBanner,
CMyFieldDb, CDateTime, CMyPage, CMyFieldRec, CAccomodation,
CMyUser, CGalleryImages },
props: {
table: {
type: String,
required: true,
},
prop_myrec: {
type: Object as PropType<any>,
required: false,
default: null,
},
idRec: {
type: Number,
required: false,
default: 0
},
nopopup: {
type: Boolean,
required: false,
default: false
},
},
setup(props) {
const userStore = useUserStore()
const calendarStore = useCalendarStore()
const notifStore = useNotifStore()
const globalStore = useGlobalStore()
const $q = useQuasar()
const $route = useRoute()
const { t } = useI18n()
const showPic = ref(false)
const myrec = ref(<any>{})
const col = ref(<IColGridTable>{})
const idnotif = computed(() => $route.query.idnotif ? $route.query.idnotif.toString() : '')
function profile() {
return userStore.my.profile
}
function load() {
// Carica il profilo di quest'utente
if (props.idRec) {
userStore.loadGeneric(props.table, props.idRec, idnotif.value).then((ris) => {
myrec.value = ris
notifStore.setAsRead(idnotif.value)
})
} else {
myrec.value = props.prop_myrec
}
col.value = fieldsTable.getArrColsByTable(props.table)
}
watch(() => props.idRec, (to: any, from: any) => {
load()
})
function mounted() {
load()
}
function getlinkpage() {
return self.location.host + tools.getPathByTable(props.table, myrec.value._id)
}
function condividipag() {
const mystr = getlinkpage()
tools.copyStringToClipboard($q, mystr, true)
tools.sendMsgTelegramCmd($q, t, shared_consts.MsgTeleg.SHARE_TEXT, false, mystr)
return true
}
function showBadge() {
if (shared_consts.TABLES_SHOW_ADTYPE.includes(props.table)) {
return true
}
return false
}
onMounted(mounted)
return {
profile,
tools,
costanti,
myrec,
shared_consts,
globalStore,
showPic,
userStore,
t,
fieldsTable,
colCitys,
toolsext,
col,
condividipag,
showBadge,
getlinkpage,
calendarStore,
}
}
})

View File

@@ -1,252 +0,0 @@
<template>
<div v-if="myrec._id" class="fulldiv">
<div class="q-pa-sm row items-start q-gutter-sm full-height fulldiv">
<q-card class="my-card fulldiv" bordered>
<CGalleryImages
v-if="myrec.photos.length > 0"
:imgGallery="myrec.photos"
:directory="'upload/' + tools.getDirectoryGall(myrec, table, '')"
>
</CGalleryImages>
<q-card-actions align="right">
<q-btn
flat
round
:color="userStore.isFavorite(myrec._id, table) ? 'red' : ''"
icon="favorite"
@click="
userStore.setFavorite($q, t, myrec._id, toolsext.TABMYGOODS)
"
/>
<q-btn
flat
round
:color="userStore.isBookmarked(myrec._id, table) ? 'teal' : ''"
icon="bookmark"
@click="
userStore.setBookmark($q, t, myrec._id, toolsext.TABMYGOODS)
"
/>
<q-btn
flat
round
color="primary"
icon="share"
@click="tools.copyToClip($q, getlinkpage(), true)"
/>
</q-card-actions>
<q-separator />
<q-list>
<q-item clickable>
<q-item-section avatar>
<div v-if="showBadge()" class="text-center">
<q-chip
dense
:color="fieldsTable.getColByAdType(myrec.adType)"
text-color="white"
>{{
fieldsTable.getValByTabAndId(table, 'adType', myrec.adType)
}}
</q-chip>
</div>
</q-item-section>
<q-item-section>
<q-item-label class="text-bold text-h7">{{
myrec.descr
}}</q-item-label>
</q-item-section>
</q-item>
<q-item>
<q-item-section avatar>
<q-icon color="blue" name="category" />
</q-item-section>
<q-item-section>
<q-item-label>
<q-chip
v-if="myrec.sectorGood && myrec.sectorGood[0].descr"
class="glossy"
color="blue"
text-color="white"
dense
>
<span class="cal__quota-content">{{
myrec.sectorGood[0].descr
}}</span>
</q-chip>
<q-chip
v-if="myrec.recGood.length > 0 && myrec.recGood[0].descr"
class="glossy"
dense
color="blue"
text-color="white"
>
<span class="cal__quota-content">{{
myrec.recGood[0].descr
}}</span>
</q-chip>
</q-item-label>
</q-item-section>
</q-item>
<q-item-label v-if="myrec.note"
><div v-html="myrec.note" class="clBorderService"></div
></q-item-label>
<q-card class="my-card clBorderUser" bordered>
<CMyUser
:mycontact="myrec"
:visu="costanti.FIND_PEOPLE"
@setCmd="tools.setCmd"
>
</CMyUser>
</q-card>
<q-item v-if="myrec.mycities[0].comune">
<q-item-section avatar>
<q-icon color="amber" name="fas fa-map-marker-alt" />
</q-item-section>
<q-item-section>
<q-item-label>
<span v-for="(city, index) in myrec.mycities" :key="index">
<span v-if="city.comune">
{{ city.comune }} ({{ city.prov }})</span
><span v-if="myrec.mycities.length > 1"> - </span>
</span>
</q-item-label>
<q-item-label v-if="myrec.profile.qualifica" caption>{{
myrec.biografia
}}</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-if="myrec.website">
<q-item-section avatar>
<q-icon color="blue" name="fas fa-globe" />
</q-item-section>
<q-item-section>
<q-item-label lines="1">
<span v-html="tools.getlinkhref(myrec.website, 'Visita il Sito Web')"
/></q-item-label>
</q-item-section>
</q-item>
<q-item v-if="myrec.idContribType && myrec.idContribType.length > 0">
<q-item-section avatar>
<q-icon color="green" name="fas fa-hand-holding" />
</q-item-section>
<q-item-section>
<q-item-label>
<span
v-for="(reccontr, index) in myrec.idContribType"
:key="index"
>
<q-chip
dense
:color="calendarStore.getColByContribType(reccontr)"
text-color="white"
>
{{ calendarStore.getContribtypeById(reccontr) }}
</q-chip>
</span>
</q-item-label>
</q-item-section>
</q-item>
<q-item>
<q-item-section avatar>
<q-icon color="blue" name="far fa-edit" />
</q-item-section>
<q-item-section>
<q-item-label
><span v-if="myrec.date_updated">{{
tools.getstrDateMonthLong(myrec.date_updated)
}}</span
><span v-else>{{
tools.getstrDateMonthLong(myrec.date_created)
}}</span></q-item-label
>
</q-item-section>
</q-item>
<q-item clickable v-if="false">
<q-item-section avatar>
<q-icon color="red" name="local_gas_station" />
</q-item-section>
<q-item-section>
<q-item-label></q-item-label>
<q-item-label caption>Fill your gas tank.</q-item-label>
</q-item-section>
</q-item>
</q-list>
<q-separator />
<div class="q-mb-xl"></div>
<q-card-actions
v-if="$q.screen.gt.sm"
class="text-center justify-center"
>
<q-btn
v-if="myrec.profile.username_telegram"
:label="$t('dialog.contact')"
color="primary"
icon="far fa-comment"
target="_blank"
:type="tools.isUserOk() ? 'a' : 'btn'"
size="md"
rounded
:href="
tools.isUserOk()
? tools.getHttpForTelegram(myrec.profile.username_telegram)
: null
"
/>
<q-btn
rounded
outline
:label="$t('dialog.close')"
color="primary"
icon="close"
v-close-popup
/>
</q-card-actions>
</q-card>
<div
v-if="!$q.screen.gt.sm"
class="row absolute-bottom text-shadow custom-caption q-px-md buttons_bottom"
>
<q-btn
v-if="myrec.profile.username_telegram"
:label="$t('dialog.contact')"
color="primary"
icon="far fa-comment"
target="_blank"
:type="tools.isUserOk() ? 'a' : 'btn'"
size="md"
rounded
:href="
tools.isUserOk()
? tools.getHttpForTelegram(myrec.profile.username_telegram)
: null
"
/>
<q-btn
rounded
outline
:label="$t('dialog.close')"
color="primary"
icon="close"
v-close-popup
/>
</div>
</div>
</div>
</template>
<script lang="ts" src="./CMyCardGood.ts">
</script>
<style lang="scss" scoped>
@import './CMyCardGood.scss';
</style>

View File

@@ -1 +0,0 @@
export { default as CMyCardGood } from './CMyCardGood.vue'

View File

@@ -61,7 +61,7 @@ export default defineComponent({
function load() { function load() {
// Carica il profilo di quest'utente // Carica il profilo di quest'utente
if (props.idRec) { if (props.idRec && props.idRec > 0) {
userStore.loadGeneric(props.table, props.idRec, idnotif.value).then((ris) => { userStore.loadGeneric(props.table, props.idRec, idnotif.value).then((ris) => {
myrec.value = ris myrec.value = ris
notifStore.setAsRead(idnotif.value) notifStore.setAsRead(idnotif.value)

View File

@@ -137,10 +137,10 @@ export default defineComponent({
} }
function clicca(tipo: any, set: any, title: string) { function clicca(tipo: any, set: any, title: string) {
if (set && tipo === costanti.TIPOFAVBOOK.FAVORITE) { if (set && myrec.value.username !== userStore.my.username && tipo === costanti.TIPOFAVBOOK.FAVORITE) {
userStore.setFavorite($q, t, myrec.value._id, props.table, myrec.value); userStore.setFavorite($q, t, myrec.value._id, props.table, myrec.value);
} }
if (set && tipo === costanti.TIPOFAVBOOK.BOOKMARK) { if (set && myrec.value.username !== userStore.my.username && tipo === costanti.TIPOFAVBOOK.BOOKMARK) {
userStore.setBookmark($q, t, myrec.value._id, props.table, myrec.value); userStore.setBookmark($q, t, myrec.value._id, props.table, myrec.value);
} }

View File

@@ -1,177 +1,77 @@
<!--suppress ALL --> <!--suppress ALL -->
<template> <template>
<div <div class="q-py-xs centermydiv cardrec"
class="q-py-xs centermydiv cardrec" :style="`max-width: `+ (tools.getwidth($q) - 20) +`px; ` + ($q.screen.lt.sm ? (`min-width: `+ (tools.getwidth($q) - (20 + margin_right)) +`px;`) : ``)">
:style=" <q-item v-if="myrec" clickable v-ripple :class="`shadow-2 q-btn--rounded ` + ($q.dark.isActive ? `bg-black`: `bg-teal-1`)">
`max-width: ` +
(tools.getwidth($q) - 20) +
`px; ` +
($q.screen.lt.sm <q-item-section v-if="(shared_consts.TABLES_VISU_IMG.includes(table)) && (myrec.photos && myrec.photos.length > 0)" avatar
? `min-width: ` + (tools.getwidth($q) - (20 + margin_right)) + `px;` @click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)">
: ``) <q-badge v-if="showBadge()" class="q-my-xs self-center" :color="fieldsTable.getColByAdType(myrec.adType)">
"
>
<q-item v-if="myrec" clickable v-ripple :class="`shadow-2 butt_rounded `">
<q-item-section
v-if="
shared_consts.TABLES_VISU_IMG.includes(table) &&
myrec.photos &&
myrec.photos.length > 0
"
avatar
@click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)"
>
<q-badge
v-if="showBadge()"
class="q-my-xs self-center"
:color="fieldsTable.getColByAdType(myrec.adType)"
>
{{ fieldsTable.getValByTabAndId(table, 'adType', myrec.adType) }} {{ fieldsTable.getValByTabAndId(table, 'adType', myrec.adType) }}
<q-icon <q-icon :name="fieldsTable.getIconByAdType(myrec.adType)" color="white"
:name="fieldsTable.getIconByAdType(myrec.adType)" class="q-ml-xs"/>
color="white"
class="q-ml-xs"
/>
</q-badge> </q-badge>
<q-avatar size="60px"> <q-avatar size="60px">
<q-img <q-img :src="tools.getFullFileName(myrec.photos, table, myrec.username, '')" :alt="myrec.descr"
:src=" img-class="imgprofile" height="60px"/>
tools.getFullFileName(myrec.photos, table, myrec.username, '')
"
:alt="myrec.descr"
img-class="imgprofile"
height="60px"
/>
</q-avatar> </q-avatar>
</q-item-section> </q-item-section>
<q-item-section v-else avatar @click="naviga(`/my/` + myrec.username)"> <q-item-section v-else avatar @click="naviga(`/my/` + myrec.username)">
<q-badge
v-if="showBadge()" <q-badge v-if="showBadge()" class="q-my-xs self-center" :color="fieldsTable.getColByAdType(myrec.adType)">
class="q-my-xs self-center"
:color="fieldsTable.getColByAdType(myrec.adType)"
>
{{ fieldsTable.getValByTabAndId(table, 'adType', myrec.adType) }} {{ fieldsTable.getValByTabAndId(table, 'adType', myrec.adType) }}
<q-icon <q-icon :name="fieldsTable.getIconByAdType(myrec.adType)" color="white"
:name="fieldsTable.getIconByAdType(myrec.adType)" class="q-ml-xs"/>
color="white"
class="q-ml-xs"
/>
</q-badge> </q-badge>
<q-avatar size="60px"> <q-avatar size="60px">
<q-img <q-img :src="getImgUser(myrec)" :alt="myrec.username" img-class="imgprofile" height="60px"/>
:src="getImgUser(myrec)"
:alt="myrec.username"
img-class="imgprofile"
height="60px"
/>
</q-avatar> </q-avatar>
</q-item-section> </q-item-section>
<q-item-section @click="navigaExt(myrec)"> <q-item-section @click="navigaExt(myrec)">
<q-item-label lines="2" class="full-width"> <q-item-label lines="2" class="full-width" >
<span <span v-for="(rec, ind) of tools.getArrSubSector(table, myrec)" :key="ind">
v-for="(rec, ind) of tools.getArrSubSector(table, myrec)" <q-chip dense class="text-center shadow-5 glossy text-white bg-green">{{ rec.descr }}</q-chip>
:key="ind"
>
<q-chip
dense
class="text-center shadow-5 glossy text-white bg-green"
>{{ rec.descr }}</q-chip
>
</span> </span>
<span> <span>
<span <span v-for="(rec, ind) of tools.getArrSector(table, myrec)" :key="ind">
v-for="(rec, ind) of tools.getArrSector(table, myrec)" <q-chip dense class="text-center shadow-5 glossy text-white bg-blue">{{ rec.descr }}</q-chip></span>
:key="ind"
>
<q-chip
dense
class="text-center shadow-5 glossy text-white bg-blue"
>{{ rec.descr }}</q-chip
></span
>
</span> </span>
<!--<span class="dateevent" v-if="myrec.dateTimeStart">dal <span class="datainizio">{{tools.getstrVeryShortDate(myrec.dateStart) }}</span> al <span class="datafine">{{ tools.getstrVeryShortDate(myrec.dateEnd) }}</span> <!--<span class="dateevent" v-if="myrec.dateTimeStart">dal <span class="datainizio">{{tools.getstrVeryShortDate(myrec.dateStart) }}</span> al <span class="datafine">{{ tools.getstrVeryShortDate(myrec.dateEnd) }}</span>
</span>--> </span>-->
</q-item-label> </q-item-label>
<q-item-label lines="4" v-if="myrec.descr" <q-item-label lines="4" v-if="myrec.descr">{{ myrec.descr }}<br>
>{{ myrec.descr }}<br />
</q-item-label> </q-item-label>
<q-item-label lines="1" style="" class="text_user_city"> <q-item-label lines="2" style="text-align: right" class="text_user_city">
<div class="row justify-between"> <span class="text-weight-bold">{{ tools.getNameToShow(myrec) }}</span> -
<div class="text-weight-bold text-italic"> <span v-for="(rec, ind) of myrec.mycities" :key="ind"><span v-if="ind > 0">, </span>{{ rec.comune }} ({{ rec.prov }})</span>
{{ tools.getNameToShow(myrec) }}
</div>
<div class="q-mx-sm">
(<span class="">{{ myrec.myfav.length }}</span>
<span class="q-mx-xxs"
><q-icon
dense
color="red"
:name="
userStore.isFavorite(myrec._id, table)
? 'favorite'
: 'far fa-heart'
"
/>
</span>
<span class="q-mx-xxs">&nbsp;</span
><span class="">{{ myrec.mybook.length }}</span>
<span class="q-mx-xxs"
><q-icon
dense
color="teal"
:name="
userStore.isBookmarked(myrec._id, table)
? 'bookmark'
: 'far fa-bookmark'
"
/>
</span>
)
</div>
</div>
</q-item-label> </q-item-label>
<q-item-label
lines="1"
style="text-align: right"
class="text_user_city"
>
<span v-for="(rec, ind) of myrec.mycities" :key="ind"
><span v-if="ind > 0">, </span>{{ rec.comune }} ({{
rec.prov
}})</span
>
</q-item-label>
</q-item-section> </q-item-section>
<q-item-section side v-if="tools.canModifyThisRec(myrec) || editOn"> <q-item-section side v-if="tools.canModifyThisRec(myrec) || editOn">
<q-item-label> <q-item-label>
<q-btn rounded dense icon="fas fa-pencil-alt"> <q-btn rounded dense icon="fas fa-pencil-alt">
<q-menu> <q-menu>
<q-list style="min-width: 150px"> <q-list style="min-width: 150px">
<q-item <q-item clickable v-close-popup
clickable @click="cmdExt(costanti.CMD_MODIFY, myrec._id)">
v-close-popup
@click="cmdExt(costanti.CMD_MODIFY, myrec._id)"
>
<q-item-section side> <q-item-section side>
<q-icon name="fas fa-pencil-alt" /> <q-icon name="fas fa-pencil-alt"/>
</q-item-section> </q-item-section>
<q-item-section>{{ $t('reg.edit') }}</q-item-section> <q-item-section>{{ $t('reg.edit') }}</q-item-section>
</q-item> </q-item>
</q-list> </q-list>
<q-list style="min-width: 150px"> <q-list style="min-width: 150px">
<q-item <q-item clickable v-close-popup @click="cmdExt(costanti.CMD_DELETE, myrec._id)">
clickable
v-close-popup
@click="cmdExt(costanti.CMD_DELETE, myrec._id)"
>
<q-item-section side> <q-item-section side>
<q-icon name="fas fa-trash-alt" /> <q-icon name="fas fa-trash-alt"/>
</q-item-section> </q-item-section>
<q-item-section>{{ $t('reg.elimina') }}</q-item-section> <q-item-section>{{ $t('reg.elimina') }}</q-item-section>
</q-item> </q-item>
@@ -180,9 +80,11 @@
</q-btn> </q-btn>
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-separator inset="item" /> <q-separator inset="item"/>
</div> </div>
</template> </template>
<script lang="ts" src="./CMyRecCard.ts"> <script lang="ts" src="./CMyRecCard.ts">

View File

@@ -43,7 +43,7 @@
<q-item-label v-if="labelFooter" lines="1" <q-item-label v-if="labelFooter" lines="1"
><em>{{ labelFooter }}</em></q-item-label ><em>{{ labelFooter }}</em></q-item-label
> >
<span v-if="contact.profile && contact.profile.resid_province" class="show_province_title">Prov: <span class="show_province">{{ contact.profile.resid_province }}</span></span> <span v-if="contact.profile.resid_province" class="show_province_title">Prov: <span class="show_province">{{ contact.profile.resid_province }}</span></span>
<q-item-label v-if="contact.account" caption lines="2"> <q-item-label v-if="contact.account" caption lines="2">
<CSaldo <CSaldo
:small="true" :small="true"

View File

@@ -24,7 +24,7 @@
label="Circuito" label="Circuito"
> >
</q-select> </q-select>
<div v-else>{{ circuitname }}</div> <div v-else>Circuito: {{ circuitname }}</div>
<q-banner <q-banner
rounded rounded

View File

@@ -115,8 +115,6 @@ export default defineComponent({
idStatusSkill: 1, idStatusSkill: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
numLevel: 1, numLevel: 1,
@@ -157,8 +155,6 @@ export default defineComponent({
idStatusSkill: 1, idStatusSkill: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
numLevel: 1, numLevel: 1,
@@ -199,8 +195,6 @@ export default defineComponent({
idStatusSkill: 1, idStatusSkill: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
numLevel: 1, numLevel: 1,
@@ -265,8 +259,6 @@ export default defineComponent({
idStatusSkill: 1, idStatusSkill: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
numLevel: 1, numLevel: 1,
@@ -308,8 +300,6 @@ export default defineComponent({
idStatusSkill: 1, idStatusSkill: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
numLevel: 1, numLevel: 1,
@@ -351,8 +341,6 @@ export default defineComponent({
idStatusSkill: 1, idStatusSkill: 1,
idContribType: 1, idContribType: 1,
'profile.username_telegram': 1, 'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1, idCity: 1,
pub_to_share: 1, pub_to_share: 1,
numLevel: 1, numLevel: 1,

View File

@@ -7,7 +7,6 @@
:prop_mytitle="title" :prop_mytitle="title"
:prop_mycolumns="col" :prop_mycolumns="col"
:prop_colkey="prop_colkey" :prop_colkey="prop_colkey"
:options="tools.optionsTable(table)"
:col_title="col_title" :col_title="col_title"
:col_footer="col_footer" :col_footer="col_footer"
:vertical="costanti.VISUTABLE_LISTA" :vertical="costanti.VISUTABLE_LISTA"

View File

@@ -2,18 +2,11 @@ body {
font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
color: #333333;
line-height: 1.5; line-height: 1.5;
//font-size: 1rem; //font-size: 1rem;
} }
body.body--light {
color: #333333;
}
body.body--dark {
color: #AAAAAA;
}
.text-mycol { .text-mycol {
color: #333333 !important; color: #333333 !important;
} }
@@ -330,8 +323,8 @@ h3 {
min-width: 250px; min-width: 250px;
padding: 1rem 1rem; padding: 1rem 1rem;
@media (max-width: 800px) { @media (max-width: 500px) {
max-width: 600px; max-width: 400px;
min-width: 250px; min-width: 250px;
} }
@@ -691,7 +684,6 @@ h3 {
font-size: 1rem; font-size: 1rem;
padding: 6px; padding: 6px;
} }
.clBorderUser { .clBorderUser {
border-radius: 16px; border-radius: 16px;
font-size: 1rem; font-size: 1rem;
@@ -828,8 +820,7 @@ h3 {
border: solid 2px #49b502; border: solid 2px #49b502;
} }
.bordo_stondato_pending, .bordo_stondato_pending, .bordo_quadrato_pending {
.bordo_quadrato_pending {
margin: 4px; margin: 4px;
padding-left: 14px; padding-left: 14px;
padding-right: 14px; padding-right: 14px;
@@ -1026,8 +1017,7 @@ h3 {
place-content: center; place-content: center;
} }
.combowidth, .combowidth, .comboselector {
.comboselector {
min-width: 190px; min-width: 190px;
@media (max-width: 450px) { @media (max-width: 450px) {
@@ -1399,7 +1389,6 @@ h3 {
.anim_toBottom { .anim_toBottom {
animation: moveToBottom 2s ease-in-out; animation: moveToBottom 2s ease-in-out;
} }
.anim_toRight { .anim_toRight {
animation: moveToRight 2s ease-in-out; animation: moveToRight 2s ease-in-out;
} }
@@ -1425,222 +1414,100 @@ h3 {
} }
.film, .film, .effect {
.effect { width: 100%;
width: 100%; height: 100%;
height: 100%; filter: blur(0.45px) drop-shadow(0px 0px 0px #fff1);
filter: blur(0.45px) drop-shadow(0px 0px 0px #fff1);
} }
.film:after, .film:after, .effect:after {
.effect:after { content: '';
content: ''; width: 120%;
width: 120%; height: 100%;
height: 100%; top: 0;
top: 0; left: 0;
left: 0; padding-left: 100px;
padding-left: 100px; opacity: 0.5;
opacity: 0.5; animation: film-scratch 0.45s steps(1) infinite;
animation: film-scratch 0.45s steps(1) infinite; background: repeating-linear-gradient(90deg, #0002 0 2px, transparent 4px 37vmin);
background: repeating-linear-gradient(90deg, #0002 0 2px, transparent 4px 37vmin);
} }
.effect:after { .effect:after {
left: 30%; left: 30%;
animation: effect-scratch 2s infinite; animation: effect-scratch 2s infinite;
} }
.grain { .grain {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.grain:after { .grain:after {
content: ''; content: '';
width: 110%; width: 110%;
height: 110%; height: 110%;
top: -5%; top: -5%;
left: -5%; left: -5%;
opacity: .25; opacity: .25;
background-image: background-image:
repeating-conic-gradient(var(--black) 0%, transparent .00003%, transparent .0005%, transparent .00095%), repeating-conic-gradient(var(--black) 0%, transparent .00003%, transparent .0005%, transparent .00095%),
repeating-conic-gradient(var(--black) 0%, transparent .00005%, transparent 0.00015%, transparent 0.0009%); repeating-conic-gradient(var(--black) 0%, transparent .00005%, transparent 0.00015%, transparent 0.0009%);
animation: grain 0.5s steps(1) infinite; animation: grain 0.5s steps(1) infinite;
filter: drop-shadow(0px 0px 1px black); filter: drop-shadow(0px 0px 1px black);
} }
@keyframes grain { @keyframes grain {
0%, 100% { transform: translate(0, 0); }
0%, 10% { transform: translate(-1%, -1%); }
100% { 20% { transform: translate(1%, 1%); }
transform: translate(0, 0); 30% { transform: translate(-2%, -2%); }
} 40% { transform: translate(3%, 3%); }
50% { transform: translate(-3%, -3%); }
10% { 60% { transform: translate(4%, 4%); }
transform: translate(-1%, -1%); 70% { transform: translate(-4%, -4%); }
} 80% { transform: translate(2%, 2%); }
90% { transform: translate(-3%, -3%); }
20% {
transform: translate(1%, 1%);
}
30% {
transform: translate(-2%, -2%);
}
40% {
transform: translate(3%, 3%);
}
50% {
transform: translate(-3%, -3%);
}
60% {
transform: translate(4%, 4%);
}
70% {
transform: translate(-4%, -4%);
}
80% {
transform: translate(2%, 2%);
}
90% {
transform: translate(-3%, -3%);
}
} }
@keyframes film-scratch { @keyframes film-scratch {
0%, 100% { transform: translateX(0); opacity: 0.5; }
0%, 10% { transform: translateX(-1%); }
100% { 20% { transform: translateX(1%); }
transform: translateX(0); 30% { transform: translateX(-2%); opacity: 0.75; }
opacity: 0.5; 40% { transform: translateX(3%); }
} 50% { transform: translateX(-3%); opacity: 0.5; }
60% { transform: translateX(8%); }
10% { 70% { transform: translateX(-3%); }
transform: translateX(-1%); 80% { transform: translateX(10%); opacity: 0.25; }
} 90% { transform: translateX(-2%); }
20% {
transform: translateX(1%);
}
30% {
transform: translateX(-2%);
opacity: 0.75;
}
40% {
transform: translateX(3%);
}
50% {
transform: translateX(-3%);
opacity: 0.5;
}
60% {
transform: translateX(8%);
}
70% {
transform: translateX(-3%);
}
80% {
transform: translateX(10%);
opacity: 0.25;
}
90% {
transform: translateX(-2%);
}
} }
@keyframes effect-scratch { @keyframes effect-scratch {
0% { 0% { transform: translateX(0); opacity: 0.75; }
transform: translateX(0); 10% { transform: translateX(-1%); }
opacity: 0.75; 20% { transform: translateX(1%); }
} 30% { transform: translateX(-2%); }
40% { transform: translateX(3%); }
10% { 50% { transform: translateX(-3%); opacity: 0.5; }
transform: translateX(-1%); 60% { transform: translateX(8%); }
} 70% { transform: translateX(-3%); }
80% { transform: translateX(10%); opacity: 0.25; }
20% { 90% { transform: translateX(20%); }
transform: translateX(1%); 100% { transform: translateX(30%); }
}
30% {
transform: translateX(-2%);
}
40% {
transform: translateX(3%);
}
50% {
transform: translateX(-3%);
opacity: 0.5;
}
60% {
transform: translateX(8%);
}
70% {
transform: translateX(-3%);
}
80% {
transform: translateX(10%);
opacity: 0.25;
}
90% {
transform: translateX(20%);
}
100% {
transform: translateX(30%);
}
} }
/**** OLD FILM EFFECT END ****/ /**** OLD FILM EFFECT END ****/
@keyframes zoomImg { @keyframes zoomImg {
0% { 0% { transform: translate(-75%, 10%) scale(1.5); opacity: 0.6; }
transform: translate(-75%, 10%) scale(1.5); 20% { transform: translate(-15%, 10%) scale(1.5); opacity: 1; }
opacity: 0.6; 50% { transform: translate(-15%, 25%) scale(1.4); opacity: 1; }
} 80% { transform: translate(-65%, 25%) scale(1.4); opacity: 1; }
100% { transform: translate(-75%, 10%) scale(1.5); opacity: 0.6; }
20% {
transform: translate(-15%, 10%) scale(1.5);
opacity: 1;
}
50% {
transform: translate(-15%, 25%) scale(1.4);
opacity: 1;
}
80% {
transform: translate(-65%, 25%) scale(1.4);
opacity: 1;
}
100% {
transform: translate(-75%, 10%) scale(1.5);
opacity: 0.6;
}
} }
.zoomImg { .zoomImg {
animation: zoomImg 20s linear infinite; animation: zoomImg 20s linear infinite;
} }
.animate__animated.animate__slow3 { .animate__animated.animate__slow3 {
@@ -1649,28 +1516,24 @@ h3 {
-webkit-animation-duration: calc(var(--animate-duration) * 3); -webkit-animation-duration: calc(var(--animate-duration) * 3);
animation-duration: calc(var(--animate-duration) * 3); animation-duration: calc(var(--animate-duration) * 3);
} }
.animate__animated.animate__slow4 { .animate__animated.animate__slow4 {
-webkit-animation-duration: calc(1s * 4); -webkit-animation-duration: calc(1s * 4);
animation-duration: calc(1s * 4); animation-duration: calc(1s * 4);
-webkit-animation-duration: calc(var(--animate-duration) * 4); -webkit-animation-duration: calc(var(--animate-duration) * 4);
animation-duration: calc(var(--animate-duration) * 4); animation-duration: calc(var(--animate-duration) * 4);
} }
.animate__animated.animate__slow5 { .animate__animated.animate__slow5 {
-webkit-animation-duration: calc(1s * 5); -webkit-animation-duration: calc(1s * 5);
animation-duration: calc(1s * 5); animation-duration: calc(1s * 5);
-webkit-animation-duration: calc(var(--animate-duration) * 5); -webkit-animation-duration: calc(var(--animate-duration) * 5);
animation-duration: calc(var(--animate-duration) * 5); animation-duration: calc(var(--animate-duration) * 5);
} }
.animate__animated.animate__slow10 { .animate__animated.animate__slow10 {
-webkit-animation-duration: calc(1s * 10); -webkit-animation-duration: calc(1s * 10);
animation-duration: calc(1s * 10); animation-duration: calc(1s * 10);
-webkit-animation-duration: calc(var(--animate-duration) * 10); -webkit-animation-duration: calc(var(--animate-duration) * 10);
animation-duration: calc(var(--animate-duration) * 10); animation-duration: calc(var(--animate-duration) * 10);
} }
.animate__animated.animate__slow20 { .animate__animated.animate__slow20 {
-webkit-animation-duration: calc(1s * 20); -webkit-animation-duration: calc(1s * 20);
animation-duration: calc(1s * 20); animation-duration: calc(1s * 20);
@@ -1681,19 +1544,15 @@ h3 {
.animate__animated.animate__ease-in-out { .animate__animated.animate__ease-in-out {
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
} }
.animate__animated.animate__linear { .animate__animated.animate__linear {
transition-timing-function: linear; transition-timing-function: linear;
} }
.animate__animated.animate__ease-in { .animate__animated.animate__ease-in {
transition-timing-function: cubic-bezier(0.4, 0, 1, 1); transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
} }
.animate__animated.animate__ease-out { .animate__animated.animate__ease-out {
transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
} }
.animate__animated.animate__ease { .animate__animated.animate__ease {
transition-timing-function: ease; transition-timing-function: ease;
} }
@@ -1724,14 +1583,13 @@ h3 {
height: auto; height: auto;
} }
.show_province_title { .show_province_title{
font-size: 0.85rem; font-size: 0.85rem;
font-style: italic; font-style: italic;
text-align: right; text-align: right;
color: #A0A0A0; color:#A0A0A0;
} }
.show_province{
.show_province {
font-size: 0.85rem; font-size: 0.85rem;
font-style: italic; font-style: italic;
text-align: right; text-align: right;

View File

@@ -67,9 +67,6 @@ export interface IFavorite {
tab: number tab: number
} }
export interface IFavBook {
username: string
}
export interface IUserProfile { export interface IUserProfile {
img?: string img?: string
@@ -132,8 +129,6 @@ export interface IUserProfile {
noFoto: boolean noFoto: boolean
bookmark: IBookmark[] bookmark: IBookmark[]
favorite: IFavorite[] favorite: IFavorite[]
myfav: IFavBook[]
mybook: IFavBook[]
// in memory // in memory
asked_friends: any[] asked_friends: any[]

View File

@@ -1200,7 +1200,6 @@ const msg_it = {
lista_ricev_title: 'Questa è la lista degli Utenti che hanno cliccato su "Ricevi RIS" nelle ultime 8 ore', lista_ricev_title: 'Questa è la lista degli Utenti che hanno cliccato su "Ricevi RIS" nelle ultime 8 ore',
info: 'Informazioni su questo Circuito', info: 'Informazioni su questo Circuito',
aggiuntive: 'Il Circuito è una una rete di individui, che fanno riferimento ad un territorio provinciale, nella quale ciascuno può offrire i propri talenti, competenze e produzioni (Beni, Servizi, Ospitalità, ecc.) e riceverne da altri, utilizzando anche i <strong>RIS</strong> come metodo di scambio, sulla base di <strong>relazioni di fiducia</strong>.', aggiuntive: 'Il Circuito è una una rete di individui, che fanno riferimento ad un territorio provinciale, nella quale ciascuno può offrire i propri talenti, competenze e produzioni (Beni, Servizi, Ospitalità, ecc.) e riceverne da altri, utilizzando anche i <strong>RIS</strong> come metodo di scambio, sulla base di <strong>relazioni di fiducia</strong>.',
collettivi_info: 'Il Conto Collettivo è affidato ad un gruppo di persone, attivo nel territorio provinciale, che lo utilizza per organizzare iniziative di interesse comune, nello spirito di Riso.',
name: 'Nome Circuito', name: 'Nome Circuito',
path: 'Nome Pagina', path: 'Nome Pagina',
subname: 'SottoNome', subname: 'SottoNome',
@@ -1489,8 +1488,8 @@ const msg_it = {
favorite_unset: 'Rimosso dai Preferiti', favorite_unset: 'Rimosso dai Preferiti',
bookmark_set: 'Aggiunto ai Segnalibri', bookmark_set: 'Aggiunto ai Segnalibri',
bookmark_unset: 'Rimosso dai Segnalibri', bookmark_unset: 'Rimosso dai Segnalibri',
favorite: 'Piace a {num} utenti', favorite: 'Utenti Favoriti',
bookmark: 'Salvato da {num} utenti', bookmark: 'Utenti Segnalibri',
}, },
}, },

View File

@@ -12,7 +12,7 @@ import {
ITodo, ITodo,
IUserFields, IUserFields,
Privacy, Privacy,
TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery, IMsgGlobParam, IUserExport, ISpecialField, IAccount, IMyCircuit, ISendCoin, IMovement, IMovVisu, INotif, IMyElem, IMyCard, ILabelValue, ILabelValueStr, IAnim, ILang, IGroupShort, IPagination, IFavorite, IBookmark, TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery, IMsgGlobParam, IUserExport, ISpecialField, IAccount, IMyCircuit, ISendCoin, IMovement, IMovVisu, INotif, IMyElem, IMyCard, ILabelValue, ILabelValueStr, IAnim, ILang, IGroupShort, IPagination,
} from '@model' } from '@model'
import { fieldsTable } from '@store/Modules/fieldsTable' import { fieldsTable } from '@store/Modules/fieldsTable'
@@ -116,19 +116,7 @@ export const tools = {
'teal', 'teal',
'lime', 'lime',
'orange', 'orange',
'deep-orange', 'deeporange',
'yellow',
'blue',
'green',
'purple',
'deep-purple',
'indigo',
'light-blue',
'cyan',
'teal',
'lime',
'orange',
'deep-orange',
'yellow', 'yellow',
], ],
@@ -3115,16 +3103,10 @@ export const tools = {
${$t('cal.endtime')} ${this.getstrTime(myevent.dateTimeEnd)}` ${$t('cal.endtime')} ${this.getstrTime(myevent.dateTimeEnd)}`
} }
} else { } else {
if (withhtml) {
mystr = `<span class="cal__where-content">${this.getstrDateLong(myevent.dateTimeStart)}</span> mystr = `<span class="cal__where-content">${this.getstrDateLong(myevent.dateTimeStart)}</span>
<span class="cal__hours-content">${$t('cal.starttime')} ${this.getstrTime(myevent.dateTimeStart)} </span> <span class="cal__hours-content">${$t('cal.starttime')} ${this.getstrTime(myevent.dateTimeStart)} </span>
${$t('cal.enddate')} ${this.getstrDateLong(myevent.dateTimeEnd)} ${$t('cal.enddate')} ${this.getstrDateLong(myevent.dateTimeEnd)}
<span class="cal__hours-content">${$t('cal.endtime')} ${this.getstrTime(myevent.dateTimeEnd)} </span>` <span class="cal__hours-content">${$t('cal.endtime')} ${this.getstrTime(myevent.dateTimeEnd)} </span>`
} else {
mystr = `${this.getstrDateLong(myevent.dateTimeStart)}
${$t('cal.starttime')} ${this.getstrTime(myevent.dateTimeStart)}
${this.getstrDateLong(myevent.dateTimeEnd)}: ${$t('cal.endtime')} ${this.getstrTime(myevent.dateTimeEnd)}`
}
} }
if (myevent.infoextra) { if (myevent.infoextra) {
@@ -4210,7 +4192,7 @@ export const tools = {
}, },
scrollToTopAll() { scrollToTopAll() {
window.scrollTo(0, 0); window.scrollTo(0,0);
}, },
scrollToTop() { scrollToTop() {
const element = document.getElementById('mypage') const element = document.getElementById('mypage')
@@ -4530,16 +4512,7 @@ export const tools = {
}, },
getlinkhref(mylink: string, text: string) { getlinkhref(mylink: string, text: string) {
if (mylink) { return '<a href="' + mylink + '" target="_blank">' + text + '</a>'
if (!mylink.startsWith('http')) {
mylink = 'https://' + mylink
}
return '<a href="' + mylink + '" target="_blank">' + text + '</a>'
} else {
return ''
}
}, },
getNationsByNationality(nat: string) { getNationsByNationality(nat: string) {
@@ -5042,7 +5015,7 @@ export const tools = {
} }
let add = '' let add = ''
if (aportador_solidario) { if (aportador_solidario) {
add = '?start=inv#' + aportador_solidario + '#ex#' + regexpire add = '?start=inv_' + aportador_solidario + '_ex_' + regexpire
} }
return mylink + add return mylink + add
@@ -6371,7 +6344,7 @@ export const tools = {
title: t('db.domanda') title: t('db.domanda')
}).onOk(() => { }).onOk(() => {
userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST, null, { groupname }).then((res) => { userStore.setCircuitCmd($q, t, username, circuitname, shared_consts.CIRCUITCMD.REMOVE_FROM_MYLIST, null, {groupname}).then((res) => {
if (res && res.result) { if (res && res.result) {
if (userStore.my.profile.mycircuits && username === userStore.my.username) { if (userStore.my.profile.mycircuits && username === userStore.my.username) {
userStore.my.profile.mycircuits = userStore.my.profile.mycircuits.filter((rec: IMyCircuit) => rec.circuitname !== circuitname) userStore.my.profile.mycircuits = userStore.my.profile.mycircuits.filter((rec: IMyCircuit) => rec.circuitname !== circuitname)
@@ -6970,10 +6943,10 @@ export const tools = {
visibile: true, visibile: true,
typeHosp: tools.getSelectionByTable(toolsext.TABTYPEHOSP, 2), typeHosp: tools.getSelectionByTable(toolsext.TABTYPEHOSP, 2),
idContribType: tools.getSelectionByTable('contribtypes', []), idContribType: tools.getSelectionByTable('contribtypes', []),
accomodation: [],
idCity: this.getCitySel(), idCity: this.getCitySel(),
pub_to_share: tools.getSelectionByTable('pub_to_share', shared_consts.PUBTOSHARE.ALL, true), pub_to_share: tools.getSelectionByTable('pub_to_share', shared_consts.PUBTOSHARE.ALL, true),
photos: [], photos: [],
accomodation: [],
descr: '', descr: '',
note: '', note: '',
website: '', website: '',
@@ -7064,7 +7037,6 @@ export const tools = {
}, },
getPathByTableAndRec(table: string, rec: any) { getPathByTableAndRec(table: string, rec: any) {
if (shared_consts.TABLES_REC_ID.includes(table)) { if (shared_consts.TABLES_REC_ID.includes(table)) {
return '/' + tools.getDirectoryByTable(table) + '/' + rec['_id'] return '/' + tools.getDirectoryByTable(table) + '/' + rec['_id']
} else if (table === toolsext.TABMYGROUPS) { } else if (table === toolsext.TABMYGROUPS) {
@@ -7758,7 +7730,7 @@ export const tools = {
await userStore.setUserReceiveRIS(username, '').then((data) => { await userStore.setUserReceiveRIS(username, '').then((data) => {
if (data.code === serv_constants.RIS_CODE_OK) { if (data.code === serv_constants.RIS_CODE_OK) {
this.showPositiveNotif($q, t('circuit.coins_requestedris', { username }), 6000) this.showPositiveNotif($q, t('circuit.coins_requestedris', {username}), 6000)
} else { } else {
this.showNegativeNotif($q, t('db.recfailed')) this.showNegativeNotif($q, t('db.recfailed'))
} }
@@ -7772,7 +7744,7 @@ export const tools = {
await userStore.setUserReceiveRIS('', groupname).then((data) => { await userStore.setUserReceiveRIS('', groupname).then((data) => {
if (data.code === serv_constants.RIS_CODE_OK) { if (data.code === serv_constants.RIS_CODE_OK) {
this.showPositiveNotif($q, t('circuit.coins_requestedrisgroup', { groupname }), 6000) this.showPositiveNotif($q, t('circuit.coins_requestedrisgroup', {groupname}), 6000)
} else { } else {
this.showNegativeNotif($q, t('db.recfailed')) this.showNegativeNotif($q, t('db.recfailed'))
} }
@@ -7786,8 +7758,7 @@ export const tools = {
}, },
getNumTabByTable(table: string) { getNumTabByTable(table: string) {
const myrec = shared_consts.MYTABS.find((rec: any) => rec.table === table) return shared_consts.MYTABS.findIndex((rec: any) => rec.table === table)
return myrec ? myrec.id : -1
}, },
removeItemOnce(arr: any, value: any) { removeItemOnce(arr: any, value: any) {
@@ -7796,39 +7767,7 @@ export const tools = {
arr.splice(index, 1) arr.splice(index, 1)
} }
return arr; return arr;
}, }
indexOfObject(arr: any, obj: any) {
let l = arr.length, i, k, ok;
for (let i = 0; i < l; i++) {
ok = true;
for (k in obj) if (obj.hasOwnProperty(k)) {
if (arr[i][k] !== obj[k]) {
ok = false;
break;
}
}
if (ok) return i;
}
return -1; // no match
},
removeIObjectOnce(arr: any, obj: IBookmark | IFavorite) {
const index = this.indexOfObject(arr, obj)
if (index > -1) {
arr.splice(index, 1)
}
return arr;
},
optionsTable(table: string) {
if (shared_consts.TABLES_FAVORITE_BOOKMARK.includes(table))
return shared_consts.OPTIONS_ADD_COUNT_FAVORITE
return 0
},
// FINE ! // FINE !

View File

@@ -35,7 +35,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 { IBookmark, IFavBook, IFavorite, IGroupShort, IMyGroup, IUserAdmins } from '@model/UserStore' import { IBookmark, IGroupShort, IMyGroup, IUserAdmins } from '@model/UserStore'
import globalroutines from '../globalroutines/index' import globalroutines from '../globalroutines/index'
import { useNotifStore } from '@store/NotifStore' import { useNotifStore } from '@store/NotifStore'
@@ -83,8 +83,6 @@ export const DefaultUser: IUserFields = {
notifs: [], notifs: [],
bookmark: [], bookmark: [],
favorite: [], favorite: [],
myfav: [],
mybook: [],
notif_idCities: [], notif_idCities: [],
notif_provinces: [], notif_provinces: [],
notif_regions: [], notif_regions: [],
@@ -152,8 +150,6 @@ export const DefaultProfile: IUserProfile = {
notifs: [], notifs: [],
bookmark: [], bookmark: [],
favorite: [], favorite: [],
myfav: [],
mybook: [],
notif_idCities: [], notif_idCities: [],
notif_provinces: [], notif_provinces: [],
notif_regions: [], notif_regions: [],
@@ -1478,7 +1474,6 @@ export const useUserStore = defineStore('UserStore', {
return Api.SendReq('/myskills/page', 'POST', data) return Api.SendReq('/myskills/page', 'POST', data)
.then((res) => { .then((res) => {
console.log('res.data', res)
return res.data return res.data
}).catch((error) => { }).catch((error) => {
return {} return {}
@@ -1497,7 +1492,6 @@ export const useUserStore = defineStore('UserStore', {
.then((res) => { .then((res) => {
return res.data return res.data
}).catch((error) => { }).catch((error) => {
console.error('err', error)
return {} return {}
}) })
@@ -1646,28 +1640,19 @@ export const useUserStore = defineStore('UserStore', {
}, },
async setFavorite($q: any, t: any, id: any, table: string, myrec: any) { async setFavorite($q: any, t: any, id: any, table: string) {
let value = false let value = {}
console.log('table', table)
const tab = tools.getNumTabByTable(table) const tab = tools.getNumTabByTable(table)
value = this.isFavorite(id, table) ? false : true
return await Api.SendReq('/users/cmd', 'POST', { cmd: CMD_USER.SET_FAVORITE, id, tab, value }) return await Api.SendReq('/users/cmd', 'POST', { cmd: CMD_USER.SET_FAVORITE, id, tab, value })
.then((res) => { .then((res) => {
if (res && res.data.state === 1) { if (res && res.data.state === 1) {
if (!myrec.myfav)
myrec.myfav = []
this.my.profile.favorite.push({ id, tab }) this.my.profile.favorite.push({ id, tab })
if (myrec)
myrec.myfav.push({ username: this.my.username })
tools.showPositiveNotif($q, t('cmd.favorite_set')) tools.showPositiveNotif($q, t('cmd.favorite_set'))
} else if (res && res.data.state === -1) { } else if (res && res.data.state === -1) {
this.my.profile.favorite = tools.removeIObjectOnce(this.my.profile.favorite, { id, tab }) this.my.profile.favorite = tools.removeItemOnce(this.my.profile.favorite, { id, tab })
if (myrec && myrec.myfav) tools.showPositiveNotif($q, t('db.favorite_unset'))
myrec.myfav = myrec.myfav.filter((rec: IFavBook) => rec.username !== this.my.username)
tools.showPositiveNotif($q, t('cmd.favorite_unset'))
} }
}).catch((error) => { }).catch((error) => {
tools.showNegativeNotif($q, t('db.recfailed')) tools.showNegativeNotif($q, t('db.recfailed'))
@@ -1684,34 +1669,23 @@ export const useUserStore = defineStore('UserStore', {
isFavorite(id: string, table: string) { isFavorite(id: string, table: string) {
const tab = tools.getNumTabByTable(table) const tab = tools.getNumTabByTable(table)
const myfavorite = this.my.profile.favorite.find((rec: IFavorite) => ((rec.id === id) && (rec.tab === tab))) const myfavorite = this.my.profile.favorite.find((rec: IBookmark) => ((rec.id === id) && (rec.tab === tab)))
return myfavorite return myfavorite
}, },
async setBookmark($q: any, t: any, id: any, table: string, myrec: any) { async setBookmark($q: any, t: any, id: any, table: string) {
let value = false let value = {}
const tab = tools.getNumTabByTable(table) const tab = tools.getNumTabByTable(table)
value = this.isBookmarked(id, table) ? false : true
return await Api.SendReq('/users/cmd', 'POST', { cmd: CMD_USER.SET_BOOKMARK, id, tab, value }) return await Api.SendReq('/users/cmd', 'POST', { cmd: CMD_USER.SET_BOOKMARK, id, tab, value })
.then((res) => { .then((res) => {
if (res && res.data.state === 1) { if (res && res.data.state === 1) {
if (!myrec.mybook)
myrec.mybook = []
this.my.profile.bookmark.push({ id, tab })
if (myrec)
myrec.mybook.push({ username: this.my.username })
tools.showPositiveNotif($q, t('cmd.bookmark_set')) tools.showPositiveNotif($q, t('cmd.bookmark_set'))
} else if (res && res.data.state === -1) { } else if (res && res.data.state === -1) {
this.my.profile.bookmark = tools.removeIObjectOnce(this.my.profile.bookmark, { id, tab }) tools.showPositiveNotif($q, t('db.bookmark_unset'))
if (myrec && myrec.mybook)
myrec.mybook = myrec.mybook.filter((rec: IFavBook) => rec.username !== this.my.username)
tools.showPositiveNotif($q, t('cmd.bookmark_unset'))
} }
}).catch((error) => { }).catch((error) => {
console.error('error', error)
tools.showNegativeNotif($q, t('db.recfailed')) tools.showNegativeNotif($q, t('db.recfailed'))
return {} return {}
}) })

View File

@@ -316,13 +316,6 @@
EseguiFunz('ReplaceUsername', search_username, replace_username) EseguiFunz('ReplaceUsername', search_username, replace_username)
" "
></q-btn> ></q-btn>
<q-btn
label="Replace Circuit"
color="primary"
@click="
EseguiFunz('ReplaceCircuitName', search_username, replace_username)
"
></q-btn>
<br /> <br />
</div> </div>
<div class="row"> <div class="row">
@@ -335,16 +328,6 @@
></q-btn> ></q-btn>
<br /> <br />
</div> </div>
<div class="row">
<q-btn
label="Replace All Circuits with 'Circuito RIS nomeprovincia'"
color="primary"
@click="
EseguiFunz('ReplaceAllCircuits')
"
></q-btn>
<br />
</div>
<div class="row"> <div class="row">
<q-input <q-input
v-model="valmin" v-model="valmin"
@@ -414,22 +397,6 @@
></q-btn> ></q-btn>
<br /> <br />
</div> </div>
<div class="row">
<q-btn
label="Converti Tabelle: myskills, mygoods da INT a STRING"
color="primary"
@click="EseguiFunz('ConvTablesFromIntToString', '', '')"
></q-btn>
<br />
</div>
<div class="row">
<q-btn
label="Removeinteger"
color="primary"
@click="EseguiFunz('Removeinteger', '', '')"
></q-btn>
<br />
</div>
<q-field stack-label dense> <q-field stack-label dense>
<template v-slot:control> <template v-slot:control>

View File

@@ -256,9 +256,6 @@
style="max-width: 500px" style="max-width: 500px"
v-if="tools.iCanShowCircuitsMember(circuit)" v-if="tools.iCanShowCircuitsMember(circuit)"
> >
<div class="text-h7 q-mb-sm">
<div v-html="$t('circuit.collettivi_info')"></div>
</div>
<q-tabs <q-tabs
v-show="tools.iAmAdminCircuit(circuit.name)" v-show="tools.iAmAdminCircuit(circuit.name)"
v-model="tabmembers" v-model="tabmembers"

View File

@@ -3,7 +3,7 @@ import { useUserStore } from '@store/UserStore'
import { useRoute, useRouter } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import { useI18n } from '@/boot/i18n' import { useI18n } from '@/boot/i18n'
import { useQuasar } from 'quasar' import { useQuasar } from 'quasar'
import { CMyCardService } from '@/components/CMyCardService' import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CMyPage } from '@/components/CMyPage' import { CMyPage } from '@/components/CMyPage'
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged' import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
import { toolsext } from '@store/Modules/toolsext' import { toolsext } from '@store/Modules/toolsext'
@@ -11,7 +11,7 @@ import { tools } from '@store/Modules/tools'
export default defineComponent({ export default defineComponent({
name: 'mypagegood', name: 'mypagegood',
components: { CMyCardService, CMyPage, CCheckIfIsLogged }, components: { CMyCardPopup, CMyPage, CCheckIfIsLogged },
props: {}, props: {},
setup() { setup() {
const userStore = useUserStore() const userStore = useUserStore()

View File

@@ -1,24 +1,23 @@
<template> <template>
<CMyPage <CMyPage title="Bene"
title="Bene" imgbackground="images/calendario_eventi.jpg"
imgbackground="images/calendario_eventi.jpg" sizes="max-height: 120px" styleadd="bottom: -20px !important;">
sizes="max-height: 120px"
styleadd="bottom: -20px !important;"
>
<div v-if="!tools.isLogged()"> <div v-if="!tools.isLogged()">
<CCheckIfIsLogged></CCheckIfIsLogged> <CCheckIfIsLogged></CCheckIfIsLogged>
</div> </div>
<CMyCardService <CMyCardPopup
v-if="idGood" v-if="!!idGood"
:table="toolsext.TABMYGOODS" :table="toolsext.TABMYGOODS"
:nopopup="true" :nopopup="true"
:idRec="idGood" :idRec="idGood">
>
</CMyCardService> </CMyCardPopup>
<br>
<br>
<br />
<br />
</CMyPage> </CMyPage>
</template> </template>

View File

@@ -3,7 +3,7 @@ import { useUserStore } from '@store/UserStore'
import { useRoute, useRouter } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import { useI18n } from '@/boot/i18n' import { useI18n } from '@/boot/i18n'
import { useQuasar } from 'quasar' import { useQuasar } from 'quasar'
import { CMyCardService } from '@/components/CMyCardService' import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CMyPage } from '@/components/CMyPage' import { CMyPage } from '@/components/CMyPage'
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged' import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
import { toolsext } from '@store/Modules/toolsext' import { toolsext } from '@store/Modules/toolsext'
@@ -11,7 +11,7 @@ import { tools } from '@store/Modules/tools'
export default defineComponent({ export default defineComponent({
name: 'mypagehosp', name: 'mypagehosp',
components: { CMyCardService, CMyPage, CCheckIfIsLogged }, components: { CMyCardPopup, CMyPage, CCheckIfIsLogged },
props: {}, props: {},
setup() { setup() {
const userStore = useUserStore() const userStore = useUserStore()

View File

@@ -7,13 +7,13 @@
<CCheckIfIsLogged></CCheckIfIsLogged> <CCheckIfIsLogged></CCheckIfIsLogged>
</div> </div>
<CMyCardService <CMyCardPopup
v-if="!!idHosp" v-if="!!idHosp"
:table="toolsext.TABMYHOSPS" :table="toolsext.TABMYHOSPS"
:nopopup="true" :nopopup="true"
:idRec="idHosp"> :idRec="idHosp">
</CMyCardService> </CMyCardPopup>
<br> <br>
<br> <br>

View File

@@ -5,7 +5,7 @@ import { CDateTime } from '@/components/CDateTime'
import { CMyPage } from '@/components/CMyPage' import { CMyPage } from '@/components/CMyPage'
import { CMyCardPopup } from '@/components/CMyCardPopup' import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged' import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
import { CMyCardService } from '@/components/CMyCardService' import { CSkill } from '@/components/CSkill'
import { tools } from '@store/Modules/tools' import { tools } from '@store/Modules/tools'
import { computed, defineComponent, onMounted, ref, watch } from 'vue' import { computed, defineComponent, onMounted, ref, watch } from 'vue'
import { useUserStore } from '@store/UserStore' import { useUserStore } from '@store/UserStore'
@@ -24,7 +24,7 @@ import { colCitys } from '@store/Modules/fieldsTable'
export default defineComponent({ export default defineComponent({
name: 'myservice', name: 'myservice',
components: { CProfile, CTitleBanner, CMyFieldDb, CMyCardService, CDateTime, CMyPage, CCheckIfIsLogged, CMyCardPopup }, components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CMyPage, CCheckIfIsLogged, CMyCardPopup },
props: {}, props: {},
setup() { setup() {
const userStore = useUserStore() const userStore = useUserStore()
@@ -54,12 +54,37 @@ export default defineComponent({
return userStore.my.username return userStore.my.username
} }
function loadSkill() {
// Carica il profilo di quest'utente
if (idSkill.value) {
userStore.loadSkill(idSkill.value).then((ris) => {
myskill.value = ris
if (ris.userId) {
filtroutente.value = [{ userId: ris.userId , _id: ris._id }]
}
})
}
}
watch(() => idSkill.value, (to: any, from: any) => {
loadSkill()
})
function mounted() {
loadSkill()
}
function checkifShow(col: string) { function checkifShow(col: string) {
//++Todo: checkifShow Permessi ! //++Todo: checkifShow Permessi !
return true return true
} }
onMounted(mounted)
return { return {
profile, profile,
tools, tools,

View File

@@ -7,11 +7,13 @@
<CCheckIfIsLogged></CCheckIfIsLogged> <CCheckIfIsLogged></CCheckIfIsLogged>
</div> </div>
<div v-else> <div v-else>
<CMyCardService v-if="idSkill" <CMyCardPopup
v-if="!!idSkill"
:table="toolsext.TABMYSKILLS" :table="toolsext.TABMYSKILLS"
:nopopup="true" :nopopup="true"
:idRec="idSkill"> :idRec="idSkill">
</CMyCardService>
</CMyCardPopup>
</div> </div>
<!-- <!--

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 897 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 897 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB