1 Commits

Author SHA1 Message Date
Surya Paolo
e47772ab34 Revert "Aggiornamento a 0.6.1"
This reverts commit 701e1f1968.
2023-04-07 18:01:09 +02:00
97 changed files with 406 additions and 1746 deletions

View File

@@ -1,4 +1,8 @@
APP_VERSION="0.6.1"
<<<<<<< HEAD
APP_VERSION="0.5.83"
=======
APP_VERSION="0.5.85"
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,8 @@
APP_VERSION="0.6.1"
<<<<<<< HEAD
APP_VERSION="0.5.83"
=======
APP_VERSION="0.5.85"
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,8 @@
APP_VERSION="0.6.1"
<<<<<<< HEAD
APP_VERSION="0.5.83"
=======
APP_VERSION="0.5.85"
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -1,4 +1,8 @@
APP_VERSION="0.6.1"
<<<<<<< HEAD
APP_VERSION="0.5.83"
=======
APP_VERSION="0.5.85"
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,8 @@
APP_VERSION="0.6.1"
<<<<<<< HEAD
APP_VERSION="0.5.83"
=======
APP_VERSION="0.5.85"
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,8 @@
APP_VERSION="0.6.1"
<<<<<<< HEAD
APP_VERSION="0.5.83"
=======
APP_VERSION="0.5.85"
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="14"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -19,7 +19,7 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
echo "Sincronizzazione in remoto..."
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 "
fi

View File

@@ -19,7 +19,7 @@ sleep 1
npm run buildpwa
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

View File

@@ -18,7 +18,7 @@ sleep 1
npm run buildpwa
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

View File

@@ -1,6 +1,6 @@
{
"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.",
"productName": "Riso",
"author": "Paolo Arena",
@@ -22,48 +22,48 @@
"generate-sw": "workbox generateSW workbox-config.js"
},
"dependencies": {
"@quasar/extras": "^1.16.2",
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.16",
"@vue-leaflet/vue-leaflet": "^0.9.0",
"@vue/compat": "^3.2.47",
"@vue/compiler-sfc": "^3.2.47",
"@quasar/extras": "^1.15.8",
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13",
"@vue-leaflet/vue-leaflet": "^0.7.0",
"@vue/compat": "^3.2.45",
"@vue/compiler-sfc": "^3.2.45",
"@vue/eslint-config-standard": "7.0.0",
"@vuelidate/core": "^2.0.2",
"@vuelidate/validators": "^2.0.2",
"acorn": "^8.8.2",
"@vuelidate/core": "^2.0.0",
"@vuelidate/validators": "^2.0.0",
"acorn": "^8.8.1",
"animate.css": "^4.1.1",
"autoprefixer": "^10.4.14",
"axios": "^1.3.5",
"autoprefixer": "^10.4.13",
"axios": "^1.2.1",
"bcryptjs": "^2.4.3",
"chart.js": "3.9.1",
"core-js": "^3.30.0",
"core-js": "^3.26.1",
"crypto": "^1.0.1",
"date-fns": "^2.29.3",
"dotenv": "^16.0.3",
"echarts": "5.4.2",
"echarts": "5.3.3",
"eslint-plugin-quasar": "^1.1.0",
"eslint-plugin-standard": "^5.0.0",
"graphql": "^16.6.0",
"graphql-tag": "^2.12.6",
"gsap": "^3.11.5",
"jquery": "^3.6.4",
"gsap": "^3.11.3",
"jquery": "^3.6.2",
"js-cookie": "^3.0.1",
"localforage": "^1.10.0",
"lodash": "^4.17.21",
"normalize.css": "^8.0.1",
"npm": "^9.6.4",
"npm": "^9.2.0",
"nprogress": "^0.2.0",
"pinia": "^2.0.33",
"pinia": "^2.0.28",
"prerender-spa-plugin": "^3.4.0",
"quasar": "^2.11.10",
"quasar": "^2.11.0",
"quasar-extras": "^2.0.9",
"register-service-worker": "^1.7.2",
"vee-validate": "^4.8.4",
"vue": "^3.2.47",
"vee-validate": "^4.7.3",
"vue": "^3.2.45",
"vue-chart-3": "^3.1.8",
"vue-class-component": "^8.0.0-rc.1",
"vue-country-code": "^1.1.3",
"vue-echarts": "^6.5.4",
"vue-echarts": "^6.3.1",
"vue-i18n": "^9.2.2",
"vue-idb": "^0.2.0",
"vue-loader": "^17.0.1",
@@ -82,48 +82,70 @@
"@types/bcryptjs": "^2.4.2",
"@types/dotenv": "^8.2.0",
"@types/googlemaps": "^3.43.3",
"@types/jest": "^29.5.0",
"@types/js-cookie": "^3.0.3",
"@types/node": "18.15.11",
"@types/jest": "^29.2.4",
"@types/js-cookie": "^3.0.2",
"@types/node": "18.11.16",
"@types/nprogress": "^0.2.0",
"@types/vue-tel-input": "^2.1.2",
"@types/vuelidate": "^0.7.16",
"@typescript-eslint/eslint-plugin": "^5.57.1",
"@typescript-eslint/parser": "^5.57.1",
"eslint": "^8.37.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-import": "^2.27.5",
"@types/vuelidate": "^0.7.15",
"@typescript-eslint/eslint-plugin": "^5.46.1",
"@typescript-eslint/parser": "^5.46.1",
"eslint": "^8.30.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-vue": "^9.10.0",
"eslint-plugin-vue": "^9.8.0",
"file-loader": "^6.2.0",
"html-webpack-plugin": "^5.5.0",
"http-proxy-middleware": "^2.0.6",
"jest": "^29.5.0",
"jest": "^29.3.1",
"json-loader": "^0.5.7",
"node-sass": "7.0.0",
"npm-check-updates": "^16.10.7",
"node-sass": "7.0.1",
"npm-check-updates": "^16.6.0",
"optimize-css-assets-webpack-plugin": "^6.0.1",
"postcss": "^8.4.21",
"postcss-loader": "^7.2.4",
"sass-loader": "^13.2.2",
"postcss": "^8.4.20",
"postcss-loader": "^7.0.2",
"sass-loader": "^13.2.0",
"strip-ansi": "=7.0.1",
"ts-jest": "^29.1.0",
"ts-jest": "^29.0.3",
"ts-loader": "^9.4.2",
"tslint": "^6.1.3",
"tslint-config-standard": "^9.0.0",
"tslint-loader": "^3.5.4",
"typescript": "^5.0.3",
"typescript": "^4.9.4",
"vue-cli-plugin-element-ui": "^1.1.4",
"vueify": "^9.4.1",
"webpack": "^5.78.0",
"webpack": "^5.75.0",
"workbox-webpack-plugin": "^6.5.4"
},
"browser": {
"crypto": false
},
"browserslist": [
<<<<<<< HEAD
"last 20 Chrome versions",
"last 20 Firefox versions",
"last 10 Edge versions",
"last 15 Safari versions",
"last 60 Android versions",
"last 180 ChromeAndroid versions",
"last 40 FirefoxAndroid versions",
"last 20 iOS versions",
"last 10 Opera versions",
"> 0.1%",
=======
"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%",
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
"not dead"
],
"engines": {

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 ..."
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 "
fi

View File

@@ -5,7 +5,7 @@ source .env.test.risosrv
cp .env.test.risosrv .env.production
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"
cp .env.prod.bak .env.production

View File

@@ -5,7 +5,7 @@ source ./.env.test
cp .env.test .env.production
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"
cp .env.prod.bak .env.production

View File

@@ -9,6 +9,6 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
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 "
fi

View File

@@ -18,7 +18,7 @@ import { CacheableResponsePlugin } from 'workbox-cacheable-response'
import { ExpirationPlugin } from 'workbox-expiration'
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/storage.js')
@@ -36,7 +36,7 @@ let port = 3000
if (self.location.hostname.startsWith('test')) {
port = 3001
}
console.log('SW- app ver 0.6.1')
console.log('SW- app ver 0.5.4')
const cfgenv = {
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_USER_ONLY_FULL_WORDS: 2,
OPTIONS_SEARCH_USER_ALL_WORDS: 4,
OPTIONS_ADD_COUNT_FAVORITE: 8,
FRIENDSCMD: {
SETTRUST: 121,
@@ -171,14 +170,6 @@ export const shared_consts = {
TABLES_MYGOODS: 'mygoods',
TABLES_MYEVENTS: 'myevents',
MYTABS: [{id: 0, table: 'none' },
{id: 1, table: 'myskills'},
{id: 2, table: 'mybachecas' },
{id: 3, table: 'myhosps'} ,
{id: 4, table: 'mygoods'},
{id: 5, table: 'myevents'}
],
TABLES_ENABLE_GETREC_BYID: ['mybachecas', 'myhosps'],
TABLES_USER_INCLUDE_MY: ['mygroups'],
@@ -190,7 +181,6 @@ export const shared_consts = {
TABLES_WITH_DATE: ['mybachecas', 'myhosps'],
TABLES_WITH_SORTING: ['mybachecas', 'myhosps'],
TABLES_REC_ID: ['skills', 'goods', 'subskills', 'myskills', 'mybachecas', 'myhosps', 'mygoods'],
TABLES_FAVORITE_BOOKMARK: ['myskills', 'mygoods', 'mybachecas', 'myhosps'],
// costanti.VISUTABLE_SCHEDA_USER, VISUTABLE_SCHEDA_GROUP, VISUTABLE_USER_TABGROUP, VISUTABLE_USER_TABCIRCUIT, VISUTABLE_GROUP_CIRCUIT
VERTIC_SHOW_GRID: [-1, 2, -3, -4, -5, -6],
@@ -541,14 +531,6 @@ export const shared_consts = {
value: 23,
label: 'Asciugacapelli',
},
{
value: 24,
label: 'Riscaldamento a legna',
},
{
value: 25,
label: 'Riscaldamento a gas',
},
],
Regions: [
@@ -1556,41 +1538,4 @@ 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']
},
getProjectForAll(proj_add: string) {
let proj = {
idContribType: 1,
idCity: 1,
pub_to_share: 1,
adType: 1,
photos: 1,
note: 1,
descr: 1,
date_created: 1,
date_updated: 1,
userId: 1,
username: 1,
name: 1,
surname: 1,
lasttimeonline: 1,
comune: 1,
mycities: 1,
'profile.img': 1,
'profile.mygroups': 1,
'profile.mycircuits': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
reported: 1,
date_report: 1,
username_who_report: 1,
};
if (proj_add)
proj = Object.assign({}, proj, proj_add);
return proj;
},
}

View File

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

View File

@@ -1,8 +1,12 @@
<template>
<div class="">
<div class="bordo_stondato_blu">
<CTitleBanner class="column" title="Tipi di ospitalità"></CTitleBanner>
<div class="">
<q-btn
v-if="isInModif"
rounded label="Aggiungi Letti" color="positive" @click="add_newbed()">
</q-btn>
<div v-for="(myaccom, index) in getlist()" :key="index">
<div v-if="isInModif" class="row justify-center bordo_stondato_small">
@@ -13,8 +17,6 @@
v-model:value="myaccom.num"
optval="value"
optlab="label"
style="min-width:80px;"
:sola_lettura="!isInModif"
:options="shared_consts.People" :useinput="false"
>
@@ -56,10 +58,6 @@
</div>
</div>
</div>
<q-btn
v-if="isInModif"
rounded label="Aggiungi Letti" color="positive" @click="add_newbed()">
</q-btn>
</div>
</div>
</template>

View File

@@ -81,7 +81,6 @@ export default defineComponent({
const myoptions = ref(<any>[])
const col = ref(<IColGridTable>{})
/*
@@ -150,7 +149,7 @@ export default defineComponent({
else if (props.table === toolsext.TABUSER)
return userStore.getMypaginationMembers()
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))
return { sortBy: 'desc', descending: false, page: 1, rowsNumber: 0, rowsPerPage: 10 }
@@ -1159,9 +1158,6 @@ export default defineComponent({
mygood: 1,
idStatusSkill: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1,
pub_to_share: 1,
numLevel: 1,
@@ -1183,11 +1179,10 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
reported: 1,
date_report: 1,
username_who_report: 1,
}
}
},
lookup3: {
lk_tab: 'sectorgoods',
@@ -1230,9 +1225,6 @@ export default defineComponent({
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1,
pub_to_share: 1,
dateTimeStart: 1,
@@ -1256,11 +1248,10 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
reported: 1,
date_report: 1,
username_who_report: 1,
}
}
},
lookup3: {
lk_tab: toolsext.TABSECTORS,
@@ -1309,9 +1300,6 @@ export default defineComponent({
accomodation: 1,
preferences: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
photos: 1,
idCity: 1,
pub_to_share: 1,
@@ -1329,7 +1317,7 @@ export default defineComponent({
comune: 1,
mycities: 1,
'profile.img': 1,
}
}
},
}
@@ -1358,9 +1346,6 @@ export default defineComponent({
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1,
pub_to_share: 1,
numLevel: 1,
@@ -1382,11 +1367,10 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
reported: 1,
date_report: 1,
username_who_report: 1,
}
}
},
lookup3: {
lk_tab: toolsext.TABSECTORS,

View File

@@ -34,7 +34,6 @@
<CGridTableRec
v-if="searchList.length > 0"
:prop_mytable="table"
:options="tools.optionsTable(table)"
prop_mytitle=""
:prop_mycolumns="col"
: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,8 +36,6 @@ import { costanti } from '@costanti'
import translate from '@/globalroutines/util'
import { toolsext } from '@store/Modules/toolsext'
import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CMyCardGood } from '@/components/CMyCardGood'
import { CMyCardService } from '@/components/CMyCardService'
import { CMyCardGrpPopup } from '@/components/CMyCardGrpPopup'
import { CMyCardCircuitPopup } from '@/components/CMyCardCircuitPopup'
import { useRouter } from 'vue-router'
@@ -289,7 +287,7 @@ export default defineComponent({
components: {
CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends, CMyGroups,
CMyUser, CMyRecCard, CMyCardPopup, CMyRecGrpCard, CMyCardGrpPopup, CMyCardCircuitPopup,
CMyRecCircuitCard, CMyCardService, CMyCardGood
CMyRecCircuitCard
},
setup(props, { emit }) {
const $q = useQuasar()
@@ -663,7 +661,7 @@ export default defineComponent({
for (const item of searchList.value) {
if (!item.notinsearch) {
if (item.value && item.value !== -100) {
// console.log(item.label, item.value)
console.log(item.label, item.value)
numfilter++
}
}

View File

@@ -1088,10 +1088,8 @@
<q-dialog
v-model="visupagedialog"
@hide="hidewindow"
class="q-ma-sm"
:maximized="$q.screen.lt.sm"
>
<CMyCardGrpPopup
v-if="mytable === toolsext.TABMYGROUPS"
:table="mytable"
@@ -1104,9 +1102,18 @@
:prop_myrec="myrecdialog"
>
</CMyCardCircuitPopup>
<CMyCardService v-else-if="shared_consts.TABLES_FAVORITE_BOOKMARK.includes(mytable)"
<<<<<<< HEAD
=======
<CMyCardService v-else-if="mytable === 'myskills'"
:table="mytable" :prop_myrec="myrecdialog">
</CMyCardService>
<CMyCardService v-else-if="mytable === 'mygoods'"
:table="mytable" :prop_myrec="myrecdialog">
</CMyCardService>
<CMyCardService v-else-if="mytable === 'myhosps'"
:table="mytable" :prop_myrec="myrecdialog">
</CMyCardService>
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
<CMyCardPopup v-else :table="mytable" :prop_myrec="myrecdialog">
</CMyCardPopup>
</q-dialog>

View File

@@ -24,7 +24,7 @@ import { useI18n } from '@/boot/i18n'
import { toolsext } from '@store/Modules/toolsext'
import { useQuasar } from 'quasar'
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 { static_data } from '@/db/static_data'
import { fieldsTable } from '@store/Modules/fieldsTable'
@@ -53,7 +53,6 @@ export default defineComponent({
const { getRefLink } = MixinUsers()
const animation = ref('fade')
const mytab = ref('my')
const username = computed(() => $route.params.username ? $route.params.username.toString() : userStore.my.username)
const idnotif = computed(() => $route.query.idnotif ? $route.query.idnotif.toString() : '')
@@ -181,25 +180,6 @@ export default defineComponent({
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)
return {
@@ -214,8 +194,6 @@ export default defineComponent({
getLinkUserTelegram,
getLinkWebSite,
filtroutente,
filtrofavorite,
filtrobookmark,
showPic,
myusername,
userStore,
@@ -234,7 +212,6 @@ export default defineComponent({
listcircuitsfiltered,
optionsMainCards,
getlinkpage,
mytab,
}
}
})

View File

@@ -91,15 +91,30 @@
myclass="myshad"
:canopen="true"
>
<<<<<<< HEAD
<div v-for="(card, ind) of mycards" :key="ind" :name="card.table">
<q-card class="q-my-md">
<div v-if="card.table === 'mygroups'">
<q-list>
<span
v-for="(grp, index) in listgroupsfiltered"
:key="index"
class="q-my-sm q-mx-none"
clickable
>
<CMyGroup
:mygrp="grp"
:visu="costanti.USER_GROUPS"
=======
<q-tabs
v-model="mytab"
inline-label
dense
class="shadow-2"
class="text-black shadow-2"
>
<q-tab name="my" icon="far fa-user" />
<q-tab name="favorite" icon="favorite" content-class="text-red" />
<q-tab name="bookmark" icon="bookmark" content-class="text-teal" />
<q-tab name="favorite" icon="far fa-heart" />
<q-tab name="bookmark" icon="far fa-bookmark" />
</q-tabs>
<q-tab-panels
@@ -158,55 +173,43 @@
:filtercustom="filtroutente"
:butt_modif_new="isMyRecord(myuser.username)"
:visuinpage="true"
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
:noaut="true"
:title="card.title"
/>
</div>
</q-card>
>
</CMyGroup>
</span>
</q-list>
</div>
</q-tab-panel>
<q-tab-panel name="favorite">
<div
v-for="(card, ind) of mycards"
:key="ind"
:name="card.table"
>
<q-card class="q-my-md">
<div v-if="card.showfavorite && filtrofavorite(card.table)">
<CSkill
:table="card.table"
:filtercustom="filtrofavorite(card.table)"
:butt_modif_new="false"
:visuinpage="true"
:noaut="false"
:title="card.title"
/>
</div>
</q-card>
</div>
</q-tab-panel>
<q-tab-panel name="bookmark">
<div
v-for="(card, ind) of mycards"
:key="ind"
:name="card.table"
>
<q-card class="q-my-md">
<div v-if="card.showfavorite && filtrobookmark(card.table)">
<CSkill
:table="card.table"
:filtercustom="filtrobookmark(card.table)"
:butt_modif_new="isMyRecord(myuser.username)"
:visuinpage="true"
<div v-else-if="card.table === 'circuits'">
<div class="text-h6">{{ card.title }}</div>
<q-list>
<span
v-for="(circuit, index) in listcircuitsfiltered"
:key="index"
class="q-my-sm q-mx-none"
clickable
>
<CMyCircuit
:mycircuit="circuit"
:visu="costanti.USER_CIRCUITS"
:noaut="true"
:title="card.title"
/>
</div>
</q-card>
>
</CMyCircuit>
</span>
</q-list>
</div>
</q-tab-panel>
</q-tab-panels>
<div v-else>
<CSkill
:table="card.table"
:filtercustom="filtroutente"
:butt_modif_new="isMyRecord(myuser.username)"
:visuinpage="true"
:noaut="true"
:title="card.title"
/>
</div>
</q-card>
</div>
</CTitleBanner>
</div>
</div>

View File

@@ -61,7 +61,7 @@ export default defineComponent({
function load() {
// 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) => {
myrec.value = ris
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() {
// 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) => {
myrec.value = ris
notifStore.setAsRead(idnotif.value)

View File

@@ -34,9 +34,9 @@ export default defineComponent({
default: null,
},
idRec: {
type: String,
type: Number,
required: false,
default: ''
default: 0
},
nopopup: {
type: Boolean,
@@ -66,7 +66,7 @@ export default defineComponent({
function load() {
// Carica il profilo di quest'utente
if (props.idRec) {
if (props.idRec > 0) {
userStore.loadGeneric(props.table, props.idRec, idnotif.value).then((ris) => {
myrec.value = ris
notifStore.setAsRead(idnotif.value)

View File

@@ -1,6 +1,6 @@
<template>
<q-card class="dialog_card q-mb-lg" v-if="myrec && myrec._id">
<q-card class="dialog_card q-mb-lg" v-if="myrec._id">
<q-footer
v-if="!nopopup"

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

@@ -137,10 +137,10 @@ export default defineComponent({
}
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);
}
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);
}

View File

@@ -14,9 +14,9 @@
<q-btn
flat
round
color="red"
:icon="userStore.isFavorite(myrec._id, table) ? 'favorite' : 'far fa-heart'"
@click="clicca(costanti.TIPOFAVBOOK.FAVORITE, true, '')"
:color="userStore.isFavorite(myrec._id, table) ? 'red' : ''"
icon="favorite"
@click="clicca(costanti.TIPOFAVBOOK.FAVORITE, true)"
>
<q-badge
v-if="myrec.myfav"
@@ -31,9 +31,9 @@
<q-btn
flat
round
color="teal"
:icon="userStore.isBookmarked(myrec._id, table) ? 'bookmark' : 'far fa-bookmark'"
@click="clicca(costanti.TIPOFAVBOOK.BOOKMARK, true, '')"
:color="userStore.isBookmarked(myrec._id, table) ? 'teal' : ''"
icon="bookmark"
@click="clicca(costanti.TIPOFAVBOOK.BOOKMARK, true)"
>
<q-badge
v-if="myrec.mybook"
@@ -56,19 +56,7 @@
<div>
<q-btn flat round icon="fas fa-ellipsis-h">
<q-menu>
<q-list v-if="true" style="min-width: 200px">
<q-item
v-if="myrec.profile.username_telegram"
clickable
v-close-popup
>
<q-item-section avatar>
<q-icon color="blue" name="far fa-comment" />
</q-item-section>
<q-item-section>
<a :href="tools.getHttpForTelegram(myrec.profile.username_telegram)" target="_blank">{{ $t('dialog.contact') }} - {{tools.getNomeUtenteByRecUser(myrec)}}</a>
</q-item-section>
</q-item>
<q-list v-if="true" style="min-width: 150px">
<q-item
v-if="!nopopup"
clickable
@@ -90,7 +78,7 @@
clicca(
costanti.TIPOFAVBOOK.FAVORITE,
false,
$t('cmd.favorite', {num: myrec.myfav ? myrec.myfav.length : 0})
$t('cmd.favorite')
)
"
>
@@ -98,7 +86,7 @@
<q-icon color="red" name="favorite" />
</q-item-section>
<q-item-section>
{{ $t('cmd.favorite', {num: myrec.myfav ? myrec.myfav.length : 0}) }}
{{ $t('cmd.favorite') }}
</q-item-section>
</q-item>
<q-item
@@ -108,7 +96,7 @@
clicca(
costanti.TIPOFAVBOOK.BOOKMARK,
false,
$t('cmd.bookmark', {num: myrec.mybook ? myrec.mybook.length : 0})
$t('cmd.bookmark')
)
"
>
@@ -116,7 +104,7 @@
<q-icon color="teal" name="bookmark" />
</q-item-section>
<q-item-section>
{{ $t('cmd.bookmark', {num: myrec.mybook ? myrec.mybook.length : 0}) }}
{{ $t('cmd.bookmark') }}
</q-item-section>
</q-item>
</q-list>
@@ -154,29 +142,6 @@
</q-item-section>
</q-item>
<q-item v-if="myrec.dateTimeStart">
<q-item-section avatar>
<q-icon color="green" name="far fa-calendar-alt" />
</q-item-section>
<q-item-section>
<q-item-label>
<span>{{tools.getstrDateMonthTimeLong(myrec.dateTimeStart)}}</span>
</q-item-label>
</q-item-section>
</q-item>
<q-item v-if="myrec.dateTimeEnd">
<q-item-section avatar>
<q-icon color="red" name="far fa-calendar-alt" />
</q-item-section>
<q-item-section>
<q-item-label>
<span>{{tools.getstrDateMonthTimeLong(myrec.dateTimeEnd)}}</span>
</q-item-label>
</q-item-section>
</q-item>
<q-item v-if="getSectorByRec(myrec)">
<q-item-section avatar>
<q-icon color="blue" name="category" />
@@ -406,7 +371,7 @@
</q-card-actions>
</q-card>
<div
v-if="!$q.screen.gt.sm && !nopopup"
v-if="!$q.screen.gt.sm || !nopopup"
class="row absolute-bottom text-shadow custom-caption q-px-md buttons_bottom"
>
<q-btn

View File

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

View File

@@ -88,7 +88,7 @@ export default defineComponent({
})
function load() {
// console.log('load', mypathin.value)
console.log('load', mypathin.value)
if (mypathin.value !== '') {
globalStore.loadPage('/' + mypathin.value, 'cmypageelem').then(ris => {
@@ -102,7 +102,7 @@ export default defineComponent({
}
watch(() => props.mypath, (to: string, from: string) => {
// console.log('... load', mypathin.value, props.mypath)
console.log('... load', mypathin.value, props.mypath)
selElem.value = {}
load()
})
@@ -116,7 +116,7 @@ export default defineComponent({
})
function selElemClick(myelem: IMyElem) {
// console.log('mypageelem selElemClick', myelem)
console.log('mypageelem selElemClick', myelem)
selElem.value = {}
selElem.value = myelem
visuEditor.value = !!myelem

View File

@@ -1,177 +1,77 @@
<!--suppress ALL -->
<template>
<div
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;`
: ``)
"
>
<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)"
>
<div 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;`) : ``)">
<q-item v-if="myrec" clickable v-ripple :class="`shadow-2 q-btn--rounded ` + ($q.dark.isActive ? `bg-black`: `bg-teal-1`)">
<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) }}
<q-icon
:name="fieldsTable.getIconByAdType(myrec.adType)"
color="white"
class="q-ml-xs"
/>
<q-icon :name="fieldsTable.getIconByAdType(myrec.adType)" color="white"
class="q-ml-xs"/>
</q-badge>
<q-avatar size="60px">
<q-img
:src="
tools.getFullFileName(myrec.photos, table, myrec.username, '')
"
:alt="myrec.descr"
img-class="imgprofile"
height="60px"
/>
<q-img :src="tools.getFullFileName(myrec.photos, table, myrec.username, '')" :alt="myrec.descr"
img-class="imgprofile" height="60px"/>
</q-avatar>
</q-item-section>
<q-item-section v-else avatar @click="naviga(`/my/` + myrec.username)">
<q-badge
v-if="showBadge()"
class="q-my-xs self-center"
:color="fieldsTable.getColByAdType(myrec.adType)"
>
<q-badge v-if="showBadge()" class="q-my-xs self-center" :color="fieldsTable.getColByAdType(myrec.adType)">
{{ fieldsTable.getValByTabAndId(table, 'adType', myrec.adType) }}
<q-icon
:name="fieldsTable.getIconByAdType(myrec.adType)"
color="white"
class="q-ml-xs"
/>
<q-icon :name="fieldsTable.getIconByAdType(myrec.adType)" color="white"
class="q-ml-xs"/>
</q-badge>
<q-avatar size="60px">
<q-img
:src="getImgUser(myrec)"
:alt="myrec.username"
img-class="imgprofile"
height="60px"
/>
<q-img :src="getImgUser(myrec)" :alt="myrec.username" img-class="imgprofile" height="60px"/>
</q-avatar>
</q-item-section>
<q-item-section @click="navigaExt(myrec)">
<q-item-label lines="2" class="full-width">
<span
v-for="(rec, ind) of tools.getArrSubSector(table, myrec)"
:key="ind"
>
<q-chip
dense
class="text-center shadow-5 glossy text-white bg-green"
>{{ rec.descr }}</q-chip
>
<q-item-label lines="2" class="full-width" >
<span v-for="(rec, ind) of tools.getArrSubSector(table, myrec)" :key="ind">
<q-chip dense class="text-center shadow-5 glossy text-white bg-green">{{ rec.descr }}</q-chip>
</span>
<span>
<span
v-for="(rec, ind) of tools.getArrSector(table, myrec)"
:key="ind"
>
<q-chip
dense
class="text-center shadow-5 glossy text-white bg-blue"
>{{ rec.descr }}</q-chip
></span
>
<span v-for="(rec, ind) of tools.getArrSector(table, myrec)" :key="ind">
<q-chip dense class="text-center shadow-5 glossy text-white bg-blue">{{ rec.descr }}</q-chip></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>-->
</q-item-label>
<q-item-label lines="4" v-if="myrec.descr"
>{{ myrec.descr }}<br />
<q-item-label lines="4" v-if="myrec.descr">{{ myrec.descr }}<br>
</q-item-label>
<q-item-label lines="1" style="" class="text_user_city">
<div class="row justify-between">
<div class="text-weight-bold text-italic">
{{ 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 lines="2" style="text-align: right" class="text_user_city">
<span class="text-weight-bold">{{ tools.getNameToShow(myrec) }}</span> -
<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-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 side v-if="tools.canModifyThisRec(myrec) || editOn">
<q-item-label>
<q-btn rounded dense icon="fas fa-pencil-alt">
<q-menu>
<q-list style="min-width: 150px">
<q-item
clickable
v-close-popup
@click="cmdExt(costanti.CMD_MODIFY, myrec._id)"
>
<q-item clickable v-close-popup
@click="cmdExt(costanti.CMD_MODIFY, myrec._id)">
<q-item-section side>
<q-icon name="fas fa-pencil-alt" />
<q-icon name="fas fa-pencil-alt"/>
</q-item-section>
<q-item-section>{{ $t('reg.edit') }}</q-item-section>
</q-item>
</q-list>
<q-list style="min-width: 150px">
<q-item
clickable
v-close-popup
@click="cmdExt(costanti.CMD_DELETE, myrec._id)"
>
<q-item clickable v-close-popup @click="cmdExt(costanti.CMD_DELETE, myrec._id)">
<q-item-section side>
<q-icon name="fas fa-trash-alt" />
<q-icon name="fas fa-trash-alt"/>
</q-item-section>
<q-item-section>{{ $t('reg.elimina') }}</q-item-section>
</q-item>
@@ -180,9 +80,11 @@
</q-btn>
</q-item-label>
</q-item-section>
</q-item>
<q-separator inset="item" />
<q-separator inset="item"/>
</div>
</template>
<script lang="ts" src="./CMyRecCard.ts">

View File

@@ -13,7 +13,7 @@
:optlab="fieldsTable.getLabelByTable(jointable)"
:options="globalStore.getTableJoinByName(jointable, false, false, '')"
:useinput="false"
:dark="$q.dark.isActive"
:dark="true"
@update:value="changevalRec"
>
</CMySelect>

View File

@@ -43,7 +43,6 @@
<q-item-label v-if="labelFooter" lines="1"
><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>
<q-item-label v-if="contact.account" caption lines="2">
<CSaldo
:small="true"

View File

@@ -114,9 +114,6 @@ export default defineComponent({
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1,
pub_to_share: 1,
numLevel: 1,
@@ -138,7 +135,6 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
reported: 1,
}
},
@@ -156,9 +152,6 @@ export default defineComponent({
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1,
pub_to_share: 1,
numLevel: 1,
@@ -180,7 +173,6 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
reported: 1,
}
},
@@ -198,9 +190,6 @@ export default defineComponent({
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1,
pub_to_share: 1,
numLevel: 1,
@@ -221,7 +210,6 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
reported: 1,
}
},
@@ -264,9 +252,6 @@ export default defineComponent({
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1,
pub_to_share: 1,
numLevel: 1,
@@ -287,7 +272,6 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
reported: 1,
}
},
@@ -307,9 +291,6 @@ export default defineComponent({
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1,
pub_to_share: 1,
numLevel: 1,
@@ -330,7 +311,6 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
reported: 1,
}
},
@@ -350,9 +330,6 @@ export default defineComponent({
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
'profile.username_telegram': 1,
'profile.favorite': 1,
'profile.bookmark': 1,
idCity: 1,
pub_to_share: 1,
numLevel: 1,
@@ -374,7 +351,6 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
}
},
lookup4: {

View File

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

View File

@@ -2,18 +2,11 @@ body {
font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #333333;
line-height: 1.5;
//font-size: 1rem;
}
body.body--light {
color: #333333;
}
body.body--dark {
color: #AAAAAA;
}
.text-mycol {
color: #333333 !important;
}
@@ -330,8 +323,8 @@ h3 {
min-width: 250px;
padding: 1rem 1rem;
@media (max-width: 800px) {
max-width: 600px;
@media (max-width: 500px) {
max-width: 400px;
min-width: 250px;
}
@@ -686,19 +679,6 @@ h3 {
border: #666cf6 solid 5px;
}
.clBorderService {
border-radius: 16px;
font-size: 1rem;
padding: 6px;
}
.clBorderUser {
border-radius: 16px;
font-size: 1rem;
margin-top: 2px;
padding: 0px !important;
}
.clBorderTutor {
border-radius: 16px;
border: #f634b5 solid 2px;
@@ -828,8 +808,7 @@ h3 {
border: solid 2px #49b502;
}
.bordo_stondato_pending,
.bordo_quadrato_pending {
.bordo_stondato_pending, .bordo_quadrato_pending {
margin: 4px;
padding-left: 14px;
padding-right: 14px;
@@ -1026,8 +1005,7 @@ h3 {
place-content: center;
}
.combowidth,
.comboselector {
.combowidth, .comboselector {
min-width: 190px;
@media (max-width: 450px) {
@@ -1399,7 +1377,6 @@ h3 {
.anim_toBottom {
animation: moveToBottom 2s ease-in-out;
}
.anim_toRight {
animation: moveToRight 2s ease-in-out;
}
@@ -1425,222 +1402,100 @@ h3 {
}
.film,
.effect {
width: 100%;
height: 100%;
filter: blur(0.45px) drop-shadow(0px 0px 0px #fff1);
.film, .effect {
width: 100%;
height: 100%;
filter: blur(0.45px) drop-shadow(0px 0px 0px #fff1);
}
.film:after,
.effect:after {
content: '';
width: 120%;
height: 100%;
top: 0;
left: 0;
padding-left: 100px;
opacity: 0.5;
animation: film-scratch 0.45s steps(1) infinite;
background: repeating-linear-gradient(90deg, #0002 0 2px, transparent 4px 37vmin);
.film:after, .effect:after {
content: '';
width: 120%;
height: 100%;
top: 0;
left: 0;
padding-left: 100px;
opacity: 0.5;
animation: film-scratch 0.45s steps(1) infinite;
background: repeating-linear-gradient(90deg, #0002 0 2px, transparent 4px 37vmin);
}
.effect:after {
left: 30%;
animation: effect-scratch 2s infinite;
left: 30%;
animation: effect-scratch 2s infinite;
}
.grain {
width: 100%;
height: 100%;
width: 100%;
height: 100%;
}
.grain:after {
content: '';
width: 110%;
height: 110%;
top: -5%;
left: -5%;
opacity: .25;
background-image:
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%);
animation: grain 0.5s steps(1) infinite;
filter: drop-shadow(0px 0px 1px black);
content: '';
width: 110%;
height: 110%;
top: -5%;
left: -5%;
opacity: .25;
background-image:
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%);
animation: grain 0.5s steps(1) infinite;
filter: drop-shadow(0px 0px 1px black);
}
@keyframes grain {
0%,
100% {
transform: translate(0, 0);
}
10% {
transform: translate(-1%, -1%);
}
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%);
}
0%, 100% { transform: translate(0, 0); }
10% { transform: translate(-1%, -1%); }
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 {
0%,
100% {
transform: translateX(0);
opacity: 0.5;
}
10% {
transform: translateX(-1%);
}
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%);
}
0%, 100% { transform: translateX(0); opacity: 0.5; }
10% { transform: translateX(-1%); }
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 {
0% {
transform: translateX(0);
opacity: 0.75;
}
10% {
transform: translateX(-1%);
}
20% {
transform: translateX(1%);
}
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%);
}
0% { transform: translateX(0); opacity: 0.75; }
10% { transform: translateX(-1%); }
20% { transform: translateX(1%); }
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 ****/
@keyframes zoomImg {
0% {
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;
}
0% { 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 {
animation: zoomImg 20s linear infinite;
animation: zoomImg 20s linear infinite;
}
.animate__animated.animate__slow3 {
@@ -1649,28 +1504,24 @@ h3 {
-webkit-animation-duration: calc(var(--animate-duration) * 3);
animation-duration: calc(var(--animate-duration) * 3);
}
.animate__animated.animate__slow4 {
-webkit-animation-duration: calc(1s * 4);
animation-duration: calc(1s * 4);
-webkit-animation-duration: calc(var(--animate-duration) * 4);
animation-duration: calc(var(--animate-duration) * 4);
}
.animate__animated.animate__slow5 {
-webkit-animation-duration: calc(1s * 5);
animation-duration: calc(1s * 5);
-webkit-animation-duration: calc(var(--animate-duration) * 5);
animation-duration: calc(var(--animate-duration) * 5);
}
.animate__animated.animate__slow10 {
-webkit-animation-duration: calc(1s * 10);
animation-duration: calc(1s * 10);
-webkit-animation-duration: calc(var(--animate-duration) * 10);
animation-duration: calc(var(--animate-duration) * 10);
}
.animate__animated.animate__slow20 {
-webkit-animation-duration: calc(1s * 20);
animation-duration: calc(1s * 20);
@@ -1681,19 +1532,15 @@ h3 {
.animate__animated.animate__ease-in-out {
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.animate__animated.animate__linear {
transition-timing-function: linear;
}
.animate__animated.animate__ease-in {
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.animate__animated.animate__ease-out {
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.animate__animated.animate__ease {
transition-timing-function: ease;
}
@@ -1723,6 +1570,8 @@ h3 {
max-width: 100%;
height: auto;
}
<<<<<<< HEAD
=======
.show_province_title {
font-size: 0.85rem;
@@ -1770,21 +1619,4 @@ h3 {
color: grey;
font-size: 0.8rem;
}
.butt_rounded{
border-radius: 12px;
}
.body--light {
.butt_rounded{
background-color: rgb(234, 241, 244);
}
}.body--dark {
.butt_rounded{
background-color: black;
}
}
.q-mx-xxs {
margin-left: 2px;
}
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)

View File

@@ -69,7 +69,6 @@ export interface IContribtype {
_id: any
label: string
showprice: boolean
color: string
}
export interface ILabelValue {

View File

@@ -955,7 +955,7 @@ export interface IProvince {
}
export interface IMySkill extends IMyMain {
_id: string
_id: number
idSector: number
idSkill: number
// idSubSkill: number[]
@@ -980,7 +980,7 @@ export interface IMyMain {
}
export interface IMyGoods extends IMyMain {
_id: string
_id: number
idSector: number
idSkill: number
idShipping: number[]
@@ -1000,7 +1000,7 @@ export interface IMyGoods extends IMyMain {
}
export interface IMyBacheca extends IMyMain {
_id: string
_id: number
idSector: number
idSkill: number
// idSubSkill: number[]
@@ -1027,7 +1027,7 @@ export interface IAccomodation {
}
export interface IMyHosp extends IMyMain {
_id: string
_id: number
visibile: boolean
typeHosp: number
numMaxPeopleHosp: number

View File

@@ -57,19 +57,6 @@ export interface IUserNotifType {
value: number
}
export interface IBookmark {
id: string
tab: number
}
export interface IFavorite {
id: string
tab: number
}
export interface IFavBook {
username: string
}
export interface IUserProfile {
img?: string
@@ -130,10 +117,6 @@ export interface IUserProfile {
noNameSurname: boolean
noCircuit: boolean
noFoto: boolean
bookmark: IBookmark[]
favorite: IFavorite[]
myfav: IFavBook[]
mybook: IFavBook[]
// in memory
asked_friends: any[]

View File

@@ -193,7 +193,6 @@ const msg_it = {
indietro: 'Indietro',
finish: 'Fine',
sendmsg: 'Invia Messaggio',
contact: 'Messaggia',
sendonlymsg: 'Invia solo un Msg',
msg: {
titledeleteTask: 'Elimina Task',
@@ -1483,15 +1482,18 @@ const msg_it = {
step_fine_title: 'Fine',
step_fine: 'Hai completato l\'aggiornamento del tuo Profilo. Ricorda che potrai modificarlo, cliccando sulla prima icona in alto a destra 🙎🏻‍♂️ .',
},
<<<<<<< HEAD
=======
cmd: {
favorite_set: 'Aggiunto ai Preferiti',
favorite_unset: 'Rimosso dai Preferiti',
bookmark_set: 'Aggiunto ai Segnalibri',
bookmark_unset: 'Rimosso dai Segnalibri',
favorite: 'Piace a {num} utenti',
bookmark: 'Salvato da {num} utenti',
favorite: 'Utenti Favoriti',
bookmark: 'Utenti Segnalibri',
},
>>>>>>> parent of 701e1f1 (Aggiornamento a 0.6.1)
},
};

View File

@@ -88,11 +88,6 @@ export const useCalendarStore = defineStore('CalendarStore', {
const ctrec = mystate.contribtype.find((mycontr) => mycontr._id === id)
return (ctrec) ? ctrec.label : ''
},
getColByContribType: (mystate: ICalendarState) => (id: string) => {
const ctrec = mystate.contribtype.find((mycontr) => mycontr._id === id)
return (ctrec && ctrec.color) ? ctrec.color : 'green'
},
getContribtypeRecByLabel: (mystate: ICalendarState) => (label: string) => {
const ctrec = mystate.contribtype.find((mycontr) => mycontr.label === label)

View File

@@ -17,11 +17,6 @@ export const costanti = {
CERCO: 2,
},
TIPOFAVBOOK: {
FAVORITE: 1,
BOOKMARK: 2,
},
ENABLE_FRIENDS: false,
ENABLE_CONTI_COLLETTIVI: true,
@@ -110,7 +105,6 @@ export const costanti = {
table: 'mygoods',
visuonstat: true,
small: false,
showfavorite: true,
},
{
visible: true,
@@ -124,7 +118,6 @@ export const costanti = {
table: 'myskills',
visuonstat: true,
small: false,
showfavorite: true,
},
{
visible: true,
@@ -140,7 +133,6 @@ export const costanti = {
small: false,
table: 'myhosps',
visuonstat: true,
showfavorite: true,
},
{
visible: false,
@@ -194,7 +186,6 @@ export const costanti = {
table: 'mybachecas',
visuonstat: true,
small: false,
showfavorite: true,
},
{
visible: false,

View File

@@ -12,7 +12,7 @@ import {
ITodo,
IUserFields,
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'
import { fieldsTable } from '@store/Modules/fieldsTable'
@@ -116,19 +116,7 @@ export const tools = {
'teal',
'lime',
'orange',
'deep-orange',
'yellow',
'blue',
'green',
'purple',
'deep-purple',
'indigo',
'light-blue',
'cyan',
'teal',
'lime',
'orange',
'deep-orange',
'deeporange',
'yellow',
],
@@ -3115,16 +3103,10 @@ export const tools = {
${$t('cal.endtime')} ${this.getstrTime(myevent.dateTimeEnd)}`
}
} else {
if (withhtml) {
mystr = `<span class="cal__where-content">${this.getstrDateLong(myevent.dateTimeStart)}</span>
<span class="cal__hours-content">${$t('cal.starttime')} ${this.getstrTime(myevent.dateTimeStart)} </span>
${$t('cal.enddate')} ${this.getstrDateLong(myevent.dateTimeEnd)}
<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) {
@@ -3195,17 +3177,6 @@ export const tools = {
return ''
},
getstrDateMonthTimeLong(mytimestamp: Date | number | string | undefined) {
// console.log('getstrDate', mytimestamp)
if (mytimestamp) return date.formatDate(mytimestamp, 'DD MMM YY - HH:mm')
return ''
},
getstrDateMonthLong(mytimestamp: Date | number | string | undefined) {
// console.log('getstrDate', mytimestamp)
if (mytimestamp) return date.formatDate(mytimestamp, 'DD MMMM YYYY')
return ''
},
getstrDateMonthWeekTimeShort(mytimestamp: Date | number | string | undefined) {
// console.log('getstrDate', mytimestamp)
if (mytimestamp) return `${this.getDayOfWeek(mytimestamp)} ${date.formatDate(mytimestamp, 'DD MMM - HH:mm')}`
@@ -4210,7 +4181,7 @@ export const tools = {
},
scrollToTopAll() {
window.scrollTo(0, 0);
window.scrollTo(0,0);
},
scrollToTop() {
const element = document.getElementById('mypage')
@@ -4530,16 +4501,7 @@ export const tools = {
},
getlinkhref(mylink: string, text: string) {
if (mylink) {
if (!mylink.startsWith('http')) {
mylink = 'https://' + mylink
}
return '<a href="' + mylink + '" target="_blank">' + text + '</a>'
} else {
return ''
}
return '<a href="' + mylink + '" target="_blank">' + text + '</a>'
},
getNationsByNationality(nat: string) {
@@ -5042,7 +5004,7 @@ export const tools = {
}
let add = ''
if (aportador_solidario) {
add = '?start=inv#' + aportador_solidario + '#ex#' + regexpire
add = '?start=inv_' + aportador_solidario + '_ex_' + regexpire
}
return mylink + add
@@ -6371,7 +6333,7 @@ export const tools = {
title: t('db.domanda')
}).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 (userStore.my.profile.mycircuits && username === userStore.my.username) {
userStore.my.profile.mycircuits = userStore.my.profile.mycircuits.filter((rec: IMyCircuit) => rec.circuitname !== circuitname)
@@ -6865,6 +6827,7 @@ export const tools = {
getdefaultnewrec_MySkill(): any {
return {
_id: 0,
idSector: tools.getSelectionByTable('sectors', 0, true),
idSkill: tools.getSelectionByTable('skills', 0, true),
idStatusSkill: tools.getSelectionByTable('statusSkills', [1]),
@@ -6883,6 +6846,8 @@ export const tools = {
getdefaultnewrec_MyGoods(): any {
return {
_id: 0,
// idSectorGood: 0,
// idGood: 0,
// idStatusSkill: [],
@@ -6912,6 +6877,7 @@ export const tools = {
getdefaultnewrec_MyGroup(): any {
return {
_id: 0,
groupname: '',
photos: [],
visibility: 0,
@@ -6946,6 +6912,7 @@ export const tools = {
getdefaultnewrec_MyBacheca(): any {
return {
_id: 0,
idSector: tools.getSelectionByTable('sectors', 0, true),
idSkill: tools.getSelectionByTable('skills', 0, true),
idStatusSkill: tools.getSelectionByTable('statusSkills', []),
@@ -6968,9 +6935,9 @@ export const tools = {
getdefaultnewrec_MyHosp(): any {
return {
visibile: true,
_id: 0,
typeHosp: tools.getSelectionByTable(toolsext.TABTYPEHOSP, 2),
idContribType: tools.getSelectionByTable('contribtypes', []),
accomodation: [],
idCity: this.getCitySel(),
pub_to_share: tools.getSelectionByTable('pub_to_share', shared_consts.PUBTOSHARE.ALL, true),
photos: [],
@@ -7064,7 +7031,6 @@ export const tools = {
},
getPathByTableAndRec(table: string, rec: any) {
if (shared_consts.TABLES_REC_ID.includes(table)) {
return '/' + tools.getDirectoryByTable(table) + '/' + rec['_id']
} else if (table === toolsext.TABMYGROUPS) {
@@ -7758,7 +7724,7 @@ export const tools = {
await userStore.setUserReceiveRIS(username, '').then((data) => {
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 {
this.showNegativeNotif($q, t('db.recfailed'))
}
@@ -7772,7 +7738,7 @@ export const tools = {
await userStore.setUserReceiveRIS('', groupname).then((data) => {
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 {
this.showNegativeNotif($q, t('db.recfailed'))
}
@@ -7783,52 +7749,7 @@ export const tools = {
getPagination(table: string): IPagination {
return { sortBy: 'desc', descending: true, page: 1, rowsNumber: 0, rowsPerPage: 10 }
},
getNumTabByTable(table: string) {
const myrec = shared_consts.MYTABS.find((rec: any) => rec.table === table)
return myrec ? myrec.id : -1
},
removeItemOnce(arr: any, value: any) {
const index = arr.indexOf(value)
if (index > -1) {
arr.splice(index, 1)
}
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 !

View File

@@ -35,17 +35,12 @@ import { Router } from 'vue-router'
import { useProjectStore } from '@store/Projects'
import { shared_consts } from '@/common/shared_vuejs'
import { costanti } from '@costanti'
import { IBookmark, IFavBook, IFavorite, IGroupShort, IMyGroup, IUserAdmins } from '@model/UserStore'
import { IGroupShort, IMyGroup, IUserAdmins } from '@model/UserStore'
import globalroutines from '../globalroutines/index'
import { useNotifStore } from '@store/NotifStore'
import { useCircuitStore } from './CircuitStore'
export const CMD_USER = {
SET_FAVORITE: 1,
SET_BOOKMARK: 2,
}
export const DefaultUser: IUserFields = {
_id: '',
email: '',
@@ -81,10 +76,6 @@ export const DefaultUser: IUserFields = {
asked_groups: [],
refused_groups: [],
notifs: [],
bookmark: [],
favorite: [],
myfav: [],
mybook: [],
notif_idCities: [],
notif_provinces: [],
notif_regions: [],
@@ -150,10 +141,6 @@ export const DefaultProfile: IUserProfile = {
asked_groups: [],
refused_groups: [],
notifs: [],
bookmark: [],
favorite: [],
myfav: [],
mybook: [],
notif_idCities: [],
notif_provinces: [],
notif_regions: [],
@@ -249,7 +236,7 @@ export const useUserStore = defineStore('UserStore', {
return { sortBy: 'name,username', descending: '1,1', page: 1, rowsNumber: 0, rowsPerPage: 10 }
},
getSortFieldsAvailable(): any[] {
return [{ label: 'Username', value: { 'username': 1, 'name': 1 } }, { label: 'Nome', value: { 'name': 1, 'username': 1 } }, { label: 'Ultimi reg.', value: { 'date_reg': -1, 'username': 1 } }]
return [{ label: 'Username', value: {'username': 1, 'name': 1} }, { label: 'Nome', value: {'name': 1, 'username': 1} }, { label: 'Ultimi reg.', value: {'date_reg': -1, 'username': 1} }]
},
IsMyFriendByUsername(username: string): boolean {
@@ -878,7 +865,7 @@ export const useUserStore = defineStore('UserStore', {
value: step,
}
this.my.profile.stepTutorial = step
const ris = await this.execDbOpUser({ mydata })
const ris = await this.execDbOpUser({mydata})
return ris
},
@@ -890,7 +877,7 @@ export const useUserStore = defineStore('UserStore', {
}
if (this.my.profile.noNameSurname !== val) {
this.my.profile.noNameSurname = val
return await this.execDbOpUser({ mydata })
return await this.execDbOpUser({mydata})
}
},
async savenoCircuit(val: boolean) {
@@ -901,7 +888,7 @@ export const useUserStore = defineStore('UserStore', {
}
if (this.my.profile.noCircuit !== val) {
this.my.profile.noCircuit = val
return await this.execDbOpUser({ mydata })
return await this.execDbOpUser({mydata})
}
},
async savenoFoto(val: boolean) {
@@ -912,7 +899,7 @@ export const useUserStore = defineStore('UserStore', {
}
if (this.my.profile.noFoto !== val) {
this.my.profile.noFoto = val
return await this.execDbOpUser({ mydata })
return await this.execDbOpUser({mydata})
}
},
@@ -1478,7 +1465,6 @@ export const useUserStore = defineStore('UserStore', {
return Api.SendReq('/myskills/page', 'POST', data)
.then((res) => {
console.log('res.data', res)
return res.data
}).catch((error) => {
return {}
@@ -1486,7 +1472,7 @@ export const useUserStore = defineStore('UserStore', {
},
async loadGeneric(table: string, id: any, idnotif: string) {
async loadGeneric(table: string, id: number, idnotif: string) {
const data = {
table,
id,
@@ -1497,7 +1483,6 @@ export const useUserStore = defineStore('UserStore', {
.then((res) => {
return res.data
}).catch((error) => {
console.error('err', error)
return {}
})
@@ -1644,79 +1629,6 @@ export const useUserStore = defineStore('UserStore', {
return {}
})
},
async setFavorite($q: any, t: any, id: any, table: string, myrec: any) {
let value = false
console.log('table', 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 })
.then((res) => {
if (res && res.data.state === 1) {
if (!myrec.myfav)
myrec.myfav = []
this.my.profile.favorite.push({ id, tab })
if (myrec)
myrec.myfav.push({ username: this.my.username })
tools.showPositiveNotif($q, t('cmd.favorite_set'))
} else if (res && res.data.state === -1) {
this.my.profile.favorite = tools.removeIObjectOnce(this.my.profile.favorite, { id, tab })
if (myrec && myrec.myfav)
myrec.myfav = myrec.myfav.filter((rec: IFavBook) => rec.username !== this.my.username)
tools.showPositiveNotif($q, t('cmd.favorite_unset'))
}
}).catch((error) => {
tools.showNegativeNotif($q, t('db.recfailed'))
return {}
})
},
isBookmarked(id: string, table: string) {
const tab = tools.getNumTabByTable(table)
const mybookmark = this.my.profile.bookmark.find((rec: IBookmark) => ((rec.id === id) && (rec.tab === tab)))
return mybookmark
},
isFavorite(id: string, table: string) {
const tab = tools.getNumTabByTable(table)
const myfavorite = this.my.profile.favorite.find((rec: IFavorite) => ((rec.id === id) && (rec.tab === tab)))
return myfavorite
},
async setBookmark($q: any, t: any, id: any, table: string, myrec: any) {
let value = false
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 })
.then((res) => {
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'))
} else if (res && res.data.state === -1) {
this.my.profile.bookmark = tools.removeIObjectOnce(this.my.profile.bookmark, { id, tab })
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) => {
console.error('error', error)
tools.showNegativeNotif($q, t('db.recfailed'))
return {}
})
},
}
},
})

View File

@@ -1025,7 +1025,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
path = path.substring(1)
const mypage = this.getPage(`/${path}`)
// console.log('mypage', mypage)
console.log('mypage', mypage)
// Controlla se l'ho già caricato
if (!!mypage && (!!mypage.content || mypage.loadFirst || mypage.loaded)) {

View File

@@ -414,22 +414,6 @@
></q-btn>
<br />
</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>
<template v-slot:control>

View File

@@ -127,9 +127,7 @@
</CMyFieldDb>
<div class="myrow">
<CMyFieldDb
v-if="false"
:title="$t('reg.nationality')"
table="users"
tablesel="countries"

View File

@@ -330,7 +330,6 @@ export default defineComponent({
'profile.img': 1,
'profile.mycircuits': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
'account._id': 1,
'account.saldo': 1,
'account.fidoConcesso': 1,

View File

@@ -197,7 +197,6 @@ export default defineComponent({
'profile.img': 1,
'profile.mygroups': 1,
'profile.qualifica': 1,
'profile.resid_province': 1,
reported: 1,
date_report: 1,
username_who_report: 1,

View File

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

View File

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

View File

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

View File

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

View File

@@ -619,7 +619,9 @@
<div
v-if="
userStore.userprofile &&
userStore.userprofile._id
userStore.userprofile._id &&
(userStore.IsMyFriendByUsername(userStore.userprofile.username) ||
isMyRecord(userStore.userprofile.username))
"
>
<CTitleBanner
@@ -635,13 +637,6 @@
class="fit column no-wrap justify-evenly content-start"
>
<div class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
<CLabel
v-if="!!userStore.userprofile.profile.resid_province"
v-bind="$attrs"
:copy="false"
:value="globalStore.getProvinceByProv(userStore.userprofile.profile.resid_province)"
label="Provincia"
/>
<CDateTime
v-if="
checkifShow('profile.dateofbirth') &&
@@ -662,6 +657,13 @@
"
label="Cellulare"
/>
<CLabel
v-if="!!userStore.userprofile.profile.resid_province"
v-bind="$attrs"
:copy="true"
:value="globalStore.getProvinceByProv(userStore.userprofile.profile.resid_province)"
label="Provincia"
/>
<!--
<CMyFieldRec

View File

@@ -5,7 +5,7 @@ import { CDateTime } from '@/components/CDateTime'
import { CMyPage } from '@/components/CMyPage'
import { CMyCardPopup } from '@/components/CMyCardPopup'
import { CCheckIfIsLogged } from '@/components/CCheckIfIsLogged'
import { CMyCardService } from '@/components/CMyCardService'
import { CSkill } from '@/components/CSkill'
import { tools } from '@store/Modules/tools'
import { computed, defineComponent, onMounted, ref, watch } from 'vue'
import { useUserStore } from '@store/UserStore'
@@ -24,7 +24,7 @@ import { colCitys } from '@store/Modules/fieldsTable'
export default defineComponent({
name: 'myservice',
components: { CProfile, CTitleBanner, CMyFieldDb, CMyCardService, CDateTime, CMyPage, CCheckIfIsLogged, CMyCardPopup },
components: { CProfile, CTitleBanner, CMyFieldDb, CSkill, CDateTime, CMyPage, CCheckIfIsLogged, CMyCardPopup },
props: {},
setup() {
const userStore = useUserStore()
@@ -37,7 +37,7 @@ export default defineComponent({
const table = ref(toolsext.TABMYSKILLS)
const idSkill = computed(() => $route.params.idSkill ? $route.params.idSkill.toString() : '')
const idSkill = computed(() => $route.params.idSkill ? $route.params.idSkill.toString() : 0)
const filtroutente = ref(<any[]>[])
const showPic = ref(false)
@@ -54,12 +54,37 @@ export default defineComponent({
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) {
//++Todo: checkifShow Permessi !
return true
}
onMounted(mounted)
return {
profile,
tools,

View File

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