Circuits...

Circuits Fido e Max Qta
Fixed error eslint: 7.0.0 is OK
This commit is contained in:
Paolo Arena
2022-09-11 11:45:13 +02:00
parent 0332059c8f
commit d28050e71f
35 changed files with 1862 additions and 1435 deletions

View File

@@ -114,6 +114,13 @@ const baseConfig = {
new CopyWebpackPlugin([{ new CopyWebpackPlugin([{
from: path.resolve(__dirname, 'src/assets'), from: path.resolve(__dirname, 'src/assets'),
}]), }]),
new ForkTsCheckerWebpackPlugin({
async: false,
watch: paths.appSrc,
tsconfig: paths.appTsConfig,
tslint: paths.appTsLint,
memoryLimit: 5000,
}),
], ],
}; };

View File

@@ -49,6 +49,13 @@ const webpackDevConfig = {
new DefinePlugin({ new DefinePlugin({
'process.env': env, 'process.env': env,
}), }),
new ForkTsCheckerWebpackPlugin({
async: false,
watch: paths.appSrc,
tsconfig: paths.appTsConfig,
tslint: paths.appTsLint,
memoryLimit: 5000,
}),
new WebpackDashboard(), new WebpackDashboard(),
new FriendlyErrorsPlugin(), new FriendlyErrorsPlugin(),
new webpack.HotModuleReplacementPlugin(), new webpack.HotModuleReplacementPlugin(),

View File

@@ -22,52 +22,52 @@
"generate-sw": "workbox generateSW workbox-config.js" "generate-sw": "workbox generateSW workbox-config.js"
}, },
"dependencies": { "dependencies": {
"@quasar/extras": "^1.14.2", "@quasar/extras": "^1.15.2",
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13", "@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13",
"@vue-leaflet/vue-leaflet": "^0.6.1", "@vue-leaflet/vue-leaflet": "^0.6.1",
"@vue/compat": "^3.2.37", "@vue/compat": "^3.2.38",
"@vue/compiler-sfc": "^3.2.37", "@vue/compiler-sfc": "^3.2.38",
"@vue/eslint-config-standard": "7.0.0", "@vue/eslint-config-standard": "7.0.0",
"@vuelidate/core": "^2.0.0-alpha.42", "@vuelidate/core": "^2.0.0-alpha.44",
"@vuelidate/validators": "^2.0.0-alpha.30", "@vuelidate/validators": "^2.0.0-alpha.31",
"acorn": "^8.7.1", "acorn": "^8.8.0",
"autoprefixer": "^10.4.7", "autoprefixer": "^10.4.8",
"axios": "^0.26.0", "axios": "^0.27.2",
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"chart.js": "^3.8.0", "chart.js": "^3.9.1",
"core-js": "^3.23.3", "core-js": "^3.25.0",
"crypto": "^1.0.1", "crypto": "^1.0.1",
"date-fns": "^2.28.0", "date-fns": "^2.29.2",
"dotenv": "^16.0.1", "dotenv": "^16.0.2",
"echarts": "^5.3.3", "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.5.0", "graphql": "^16.6.0",
"graphql-tag": "^2.12.6", "graphql-tag": "^2.12.6",
"gsap": "^3.10.4", "gsap": "^3.11.1",
"jquery": "^3.6.0", "jquery": "^3.6.1",
"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": "^8.13.2", "npm": "^8.19.1",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"pinia": "^2.0.14", "pinia": "^2.0.22",
"prerender-spa-plugin": "^3.4.0", "prerender-spa-plugin": "^3.4.0",
"quasar": "^2.7.5", "quasar": "^2.7.7",
"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.5.11", "vee-validate": "^4.6.7",
"vue": "^3.2.37", "vue": "^3.2.38",
"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.1.0", "vue-echarts": "^6.2.3",
"vue-i18n": "^9.2.0-beta.26", "vue-i18n": "^9.2.2",
"vue-idb": "^0.2.0", "vue-idb": "^0.2.0",
"vue-loader": "^17.0.0", "vue-loader": "^17.0.0",
"vue-property-decorator": "^10.0.0-rc.3", "vue-property-decorator": "^10.0.0-rc.3",
"vue-router": "^4.1.0", "vue-router": "^4.1.5",
"vue-scroll-reveal": "^1.0.11", "vue-scroll-reveal": "^1.0.11",
"vue-svgicon": "^4.0.0-alpha.3", "vue-svgicon": "^4.0.0-alpha.3",
"vue2-dragula": "^2.5.5", "vue2-dragula": "^2.5.5",
@@ -79,56 +79,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": "^28.1.4", "@types/jest": "^29.0.0",
"@types/js-cookie": "^3.0.2", "@types/js-cookie": "^3.0.2",
"@types/node": "18.0.1", "@types/node": "18.7.15",
"@types/nprogress": "^0.2.0", "@types/nprogress": "^0.2.0",
"@types/vue-tel-input": "^2.1.2", "@types/vue-tel-input": "^2.1.2",
"@types/vuelidate": "^0.7.15", "@types/vuelidate": "^0.7.15",
"@typescript-eslint/eslint-plugin": "^5.30.5", "@typescript-eslint/eslint-plugin": "^5.36.2",
"@typescript-eslint/parser": "^5.30.5", "@typescript-eslint/parser": "^5.36.2",
"eslint": "^8.19.0", "eslint": "^8.23.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.0.0", "eslint-plugin-promise": "^6.0.1",
"eslint-plugin-vue": "^9.1.1", "eslint-plugin-vue": "^9.4.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": "^28.1.2", "jest": "^29.0.2",
"json-loader": "^0.5.7", "json-loader": "^0.5.7",
"node-sass": "7.0.1", "node-sass": "7.0.1",
"npm-check-updates": "^15.0.3", "npm-check-updates": "^16.1.0",
"optimize-css-assets-webpack-plugin": "^6.0.1", "optimize-css-assets-webpack-plugin": "^6.0.1",
"postcss": "^8.4.14", "postcss": "^8.4.16",
"postcss-loader": "^7.0.0", "postcss-loader": "^7.0.1",
"sass-loader": "^13.0.2", "sass-loader": "^13.0.2",
"strip-ansi": "=7.0.1", "strip-ansi": "=7.0.1",
"ts-jest": "^28.0.5", "ts-jest": "^28.0.8",
"ts-loader": "^9.3.1", "ts-loader": "^9.3.1",
"tslint": "^6.1.3", "tslint": "^6.1.3",
"tslint-config-standard": "^9.0.0", "tslint-config-standard": "^9.0.0",
"tslint-loader": "^3.5.4", "tslint-loader": "^3.5.4",
"typescript": "^4.7.4", "typescript": "^4.8.2",
"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.0.0", "webpack": "^5.74.0",
"workbox-webpack-plugin": "^6.5.3" "workbox-webpack-plugin": "^6.5.4"
}, },
"browser": { "browser": {
"crypto": false "crypto": false
}, },
"browserslist": [ "browserslist": [
"last 16 Chrome versions", "last 26 Chrome versions",
"last 16 Firefox versions", "last 26 Firefox versions",
"last 4 Edge versions", "last 4 Edge versions",
"last 13 Safari versions", "last 23 Safari versions",
"last 16 Android versions", "last 26 Android versions",
"last 16 ChromeAndroid versions", "last 26 ChromeAndroid versions",
"last 16 FirefoxAndroid versions", "last 26 FirefoxAndroid versions",
"last 12 iOS versions", "last 12 iOS versions",
"last 7 Opera versions" "last 17 Opera versions"
], ],
"engines": { "engines": {
"node": ">= 16.14.0", "node": ">= 16.14.0",

View File

@@ -2,7 +2,7 @@ function geturl() {
const miaurl = document.location.href const miaurl = document.location.href
if (miaurl.includes('localhost')) { if (miaurl.includes('localhost')) {
return 'http://localhost:8084/' // return 'http://192.168.170.47:8084'
} }
return '' return ''
} }

View File

@@ -1,280 +1,119 @@
db.getCollection('myskills').aggregate( db.getCollection('movements').aggregate(
[ [
{ {
"$match": { "$match": {
"idapp": "13" "idapp": "13",
} "$or": [
},
{
"$sort": {
"date_created": -1
}
},
{
"$addFields": {
"myId1": {
"$toObjectId": "$userId"
}
}
},
{
"$lookup": {
"from": "users",
"localField": "myId1",
"foreignField": "_id",
"as": "user"
}
},
{
"$replaceRoot": {
"newRoot": {
"$mergeObjects": [
{
"$arrayElemAt": [
"$user",
0
]
},
"$$ROOT"
]
}
}
},
{
"$project": {
"recGood": 1,
"sectorGood": 1,
"idSectorGood": 1,
"idGood": 1,
"mygood": 1,
"idStatusSkill": 1,
"idContribType": 1,
"idCity": 1,
"pub_to_share": 1,
"numLevel": 1,
"adType": 1,
"photos": 1,
"note": 1,
"website": 1,
"descr": 1,
"date_created": 1,
"date_updated": 1,
"userId": 1,
"username": 1,
"name": 1,
"surname": 1,
"comune": 1,
"mycities": 1,
"profile.img": 1,
reported: 1,
date_report: 1,
username_who_report: 1,
"profile.mygroups": 1,
"profile.qualifica": 1
}
},
{
"$lookup": {
"from": "goods",
"localField": "idGood",
"foreignField": "_id",
"as": "recGood"
}
},
{
"$replaceRoot": {
"newRoot": {
"$mergeObjects": [
{
"$arrayElemAt": [
"$recGood",
0
]
},
"$$ROOT"
]
}
}
},
{
"$project": {
"recGood": 1,
"sectorGood": 1,
"idSectorGood": 1,
"idGood": 1,
"mygood": 1,
"idStatusSkill": 1,
"idContribType": 1,
"idCity": 1,
"pub_to_share": 1,
"numLevel": 1,
"adType": 1,
"photos": 1,
"note": 1,
"website": 1,
"descr": 1,
"date_created": 1,
"date_updated": 1,
"userId": 1,
"username": 1,
"name": 1,
"surname": 1,
"comune": 1,
"mycities": 1,
"profile.img": 1,
reported: 1,
date_report: 1,
username_who_report: 1,
"profile.mygroups": 1,
"profile.qualifica": 1
}
},
{
"$lookup": {
"from": "sectorgoods",
"localField": "recGood.idSectorGood",
"foreignField": "_id",
"as": "sectorGood"
}
},
{
"$replaceRoot": {
"newRoot": {
"$mergeObjects": [
{
"$arrayElemAt": [
"$sectorgood",
0
]
},
"$$ROOT"
]
}
}
},
{
"$project": {
"recGood": 1,
"sectorGood": 1,
"idSectorGood": 1,
"idGood": 1,
"mygood": 1,
"idStatusSkill": 1,
"idContribType": 1,
"idCity": 1,
"pub_to_share": 1,
"numLevel": 1,
"adType": 1,
"photos": 1,
"note": 1,
"website": 1,
"descr": 1,
"date_created": 1,
"date_updated": 1,
"userId": 1,
"username": 1,
"name": 1,
"surname": 1,
"comune": 1,
"mycities": 1,
"profile.img": 1,
reported: 1,
date_report: 1,
username_who_report: 1,
"profile.mygroups": 1,
"profile.qualifica": 1
}
},
{
"$lookup": {
"from": "cities",
"localField": "idCity",
"foreignField": "_id",
"as": "mycities"
}
},
{
"$replaceRoot": {
"newRoot": {
"$mergeObjects": [
{
"$arrayElemAt": [
"$mycities",
0
]
},
"$$ROOT"
]
}
}
},
{
"$project": {
"recGood": 1,
"sectorGood": 1,
"idSectorGood": 1,
"idGood": 1,
"mygood": 1,
"idStatusSkill": 1,
"idContribType": 1,
"idCity": 1,
"pub_to_share": 1,
"numLevel": 1,
"adType": 1,
"photos": 1,
"note": 1,
"website": 1,
"descr": 1,
"date_created": 1,
"date_updated": 1,
"userId": 1,
"username": 1,
"name": 1,
"surname": 1,
"comune": 1,
"mycities": 1,
"profile.img": 1,
reported: 1,
date_report: 1,
username_who_report: 1,
"profile.mygroups": 1,
"profile.qualifica": 1
}
},
{
"$match": {
"$and": [
{ {
"mycities.reg": "EMR" "accountFromId": 1
}, },
{ {
"idCity": 5730 "accountToId": 1
} }
] ]
} }
}, },
{ {
"$group": { "$lookup": {
"_id": null, "from": "accounts",
"count": { "localField": "accountFromId",
"$sum": 1 "foreignField": "_id",
}, "as": "accfrom"
"results": {
"$push": "$$ROOT"
}
} }
}, },
{
"$lookup": {
"from": "accounts",
"localField": "accountToId",
"foreignField": "_id",
"as": "accto"
}
},
{
"$unwind": "$accfrom"
},
{
"$unwind": "$accto"
},
{
"$lookup": {
"from": "users",
"let": {
"username": "$accfrom.username",
"idapp": "$accfrom.idapp"
},
"pipeline": [
{
"$match": {
"$expr": {
"$and": [
{
"$eq": [
"$$username",
"$username"
]
},
{
"$eq": [
"$$idapp",
"$idapp"
]
}
]
}
}
}
],
"as": "userfrom"
}
},
{
"$unwind": "$userfrom"
},
{
"$lookup": {
"from": "users",
"let": {
"username": "$accto.username",
"idapp": "$accto.idapp"
},
"pipeline": [
{
"$match": {
"$expr": {
"$and": [
{
"$eq": [
"$$username",
"$username"
]
},
{
"$eq": [
"$$idapp",
"$idapp"
]
}
]
}
}
}
],
"as": "userto"
}
},
{
"$unwind": "$userto"
},
{ {
"$project": { "$project": {
"count": 1, "transactionDate": 1,
"rows": { "amount": 1,
"$slice": [ "causal": 1,
"$results", "userfrom.username": 1,
0, "userfrom.profile.img": 1
20 "userto.username": 1,
] "userto.profile.img": 1
}
} }
} }
] ])
)

View File

@@ -20,6 +20,7 @@ export const shared_consts = {
ALL_SAW_AND_ACCEPTED: 3, ALL_SAW_AND_ACCEPTED: 3,
QUERYTYPE_CIRCUIT: 10, QUERYTYPE_CIRCUIT: 10,
QUERYTYPE_REFUSED_USER_CIRCUIT: 12, QUERYTYPE_REFUSED_USER_CIRCUIT: 12,
QUERYTYPE_LIST_MOVEMENTS: 15,
FILTER_EXTRALIST_NOT_REGISTERED: 1, FILTER_EXTRALIST_NOT_REGISTERED: 1,
FILTER_EXTRALIST_NOT_CONTACTED: 2, FILTER_EXTRALIST_NOT_CONTACTED: 2,

View File

@@ -15,7 +15,7 @@
<div class="q-ma-sm"> <div class="q-ma-sm">
<q-btn v-if="!small" :flat="flat" class="mybox" :color="color" rounded push :to="to" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 0)"> <q-btn v-if="!small" :flat="flat" class="mybox" :color="color" rounded push :to="to" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 0)">
<q-icon class="q-ma-sm" size="3rem" :name="icon"/> <q-icon class="q-ma-sm" size="3rem" :name="icon"/>
<div class="q-ma-sm text-h5 text-cls no-wrap"><span v-html="label"></span></div> <div class="q-ma-sm text-h5-diff text-cls no-wrap"><span v-html="label"></span></div>
</q-btn> </q-btn>
<q-btn v-if="small" :flat="flat" class="mybox_small" :color="color" rounded push :to="to" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 0)"> <q-btn v-if="small" :flat="flat" class="mybox_small" :color="color" rounded push :to="to" v-bind="$attrs" :style="tools.getbackgroundGradient(color, 0)">
<q-icon class="q-ma-sm" :name="icon" size="sm"/> <q-icon class="q-ma-sm" :name="icon" size="sm"/>

View File

@@ -202,6 +202,11 @@ export default defineComponent({
required: false, required: false,
default: true default: true
}, },
showHeaderCol: {
type: Boolean,
required: false,
default: false
},
choose_visutype: { choose_visutype: {
type: Boolean, type: Boolean,
required: false, required: false,
@@ -1856,9 +1861,12 @@ export default defineComponent({
action = lists.MenuAction.CAN_EDIT_TABLE action = lists.MenuAction.CAN_EDIT_TABLE
} }
if (action > 0) { if (action > 0) {
const col = props.prop_mycolumns.find((rec: any) => rec.action === action) const col = props.prop_mycolumns.find((rec: any) => rec.action === action)
if (col) { if (col) {
console.log('col action', col)
const myarr = serverData.value.find((rec: any) => rec._id === id) const myarr = serverData.value.find((rec: any) => rec._id === id)
if (myarr) if (myarr)
clickFunz(myarr, col) clickFunz(myarr, col)
@@ -1988,6 +1996,7 @@ export default defineComponent({
onLoadScroll, onLoadScroll,
numRecLoaded, numRecLoaded,
myinfscroll, myinfscroll,
t,
} }
} }
}) })

View File

@@ -209,7 +209,20 @@
> >
<div v-for="(row, index) in serverData" :key="index" class="caption"> <div v-if="showHeaderCol">
<div
v-for="col in mycolumns" :key="col.name"
class="text-italic text-weight-bold"
>
<span v-if="col && showColCheck(col, tools.TIPOVIS_SHOW_RECORD, true)">
{{ col.label }}
</span>
</div>
</div>
<div v-for="(row, index) in serverData" :key="index">
<div <div
v-if="showType === costanti.SHOW_MYCARD || (myvertical !== costanti.VISUTABLE_USER_TABGROUP && v-if="showType === costanti.SHOW_MYCARD || (myvertical !== costanti.VISUTABLE_USER_TABGROUP &&
myvertical !== costanti.VISUTABLE_USER_TABCIRCUIT && myvertical === costanti.VISUTABLE_LISTA && shared_consts.TABLES_VISU_CMYSRECCARD.includes(tablesel)) "> myvertical !== costanti.VISUTABLE_USER_TABCIRCUIT && myvertical === costanti.VISUTABLE_LISTA && shared_consts.TABLES_VISU_CMYSRECCARD.includes(tablesel)) ">
@@ -277,6 +290,47 @@
/> />
</div> </div>
</div> </div>
<div
v-else-if="((showType === costanti.SHOW_MOVEMENTS) && (tablesel === 'movements'))"
>
<div class="q-pa-xs row items-start q-gutter-xs">
<q-card class="my-card text-white"
:style="`background: radial-gradient(circle, #cccccc 0%, ` + ((tools.isEntrataByRecMov(row)) ? `#aaffaa` : `#ffaaaa`) + ` 100%)`">
<q-toolbar class="bg-primary text-white" style="min-height: 30px;">
<q-toolbar-title>
{{ tools.isEntrataByRecMov(row) ? t('movement.movin') : t('movement.movout') }}
</q-toolbar-title>
</q-toolbar>
<q-card-section>
<div
v-for="col in mycolumns" :key="col.name">
<div
v-if="showColCheck(col, tools.TIPOVIS_SHOW_RECORD, true, 1, row)" class="tdclass">
<div :class="getclrow(row)">
<CMyPopupEdit
:table="mytable"
:canEdit="false"
:canModify="false"
:disable="false"
:mycol="col"
:row="row"
:field="col.field"
:visulabel="true"
:subfield="col.subfield"
minuteinterval="1"
@save="SaveValue"
@show="selItem(row, col)"
@showandsave="showandsel">
</CMyPopupEdit>
</div>
</div>
</div>
</q-card-section>
</q-card>
</div>
</div>
</div> </div>
<template v-slot:loading> <template v-slot:loading>

View File

@@ -1,5 +1,5 @@
<template> <template>
<div> <div class="q-gutter-y-xs column" style="min-width: 100px">
<q-field <q-field
:label="label" :label="label"
stack-label stack-label

View File

@@ -21,10 +21,10 @@
<div class="text-center"> <div class="text-center">
<q-img <q-img
v-if="userStore.getImgByCircuit(myrec)" v-if="tools.getValue(myrec, 'photos', '')"
:src="userStore.getImgByCircuit(myrec)" :src="tools.getFullFileName(tools.getValue(myrec, 'photos', ''), table, myrec.username, myrec.path)"
class="img" class="img"
alt="immagine del Circuito"></q-img> alt="immagine del circuito"></q-img>
</div> </div>
<!--:title="t(mycol.label_trans)"--> <!--:title="t(mycol.label_trans)"-->
@@ -38,6 +38,11 @@
</div> </div>
</div> </div>
<div v-else-if="mycol.name === 'descr'">
<div class="text-bacheca">
{{ tools.getValue(myrec, mycol.field, mycol.subfield) }}
</div>
</div>
<div v-else-if="mycol.name === 'path'"> <div v-else-if="mycol.name === 'path'">
</div> </div>
@@ -54,7 +59,7 @@
{{ tools.getValue(myrec, mycol.field, mycol.subfield) }} {{ tools.getValue(myrec, mycol.field, mycol.subfield) }}
</div> </div>
</div> </div>
<div v-else-if="mycol.name === 'img_logo' && myrec.img_logo"> <div v-else-if="mycol.name === 'photos' && myrec.photos.length <= 1">
</div> </div>
<div v-else-if="mycol.name === 'admins'"> <div v-else-if="mycol.name === 'admins'">
<CMyFieldRec <CMyFieldRec

View File

@@ -38,7 +38,7 @@
</div> </div>
</div> </div>
<div v-else-if="mycol.name === 'descr'"> <div v-else-if="mycol.name === 'name'">
<div class="text-bacheca"> <div class="text-bacheca">
{{ tools.getValue(myrec, mycol.field, mycol.subfield) }} {{ tools.getValue(myrec, mycol.field, mycol.subfield) }}
</div> </div>

View File

@@ -685,6 +685,9 @@ export default defineComponent({
} else if (props.table === 'mygroups') { } else if (props.table === 'mygroups') {
if (myrow.value.hasOwnProperty('groupname')) if (myrow.value.hasOwnProperty('groupname'))
ris = 'mygroups/' + myrow.value['groupname'] ris = 'mygroups/' + myrow.value['groupname']
} else if (props.table === 'circuits') {
if (myrow.value.hasOwnProperty('path'))
ris = 'circuits/' + myrow.value['path']
} else if (!!myrow.value && !!myrow.value.directory) { } else if (!!myrow.value && !!myrow.value.directory) {
ris = myrow.value.directory ris = myrow.value.directory
} else { } else {

View File

@@ -85,7 +85,8 @@
@keyup.enter.stop @keyup.enter.stop
@update:model-value="changevalRec" @update:model-value="changevalRec"
autofocus autofocus
:label="col.label"> :label="col.visulabel ? t(col.label_trans) : (col.label)"
>
</q-input> </q-input>
</div> </div>
<div v-else-if="col.tipovisu === costanti.TipoVisu.TESTO_BORDATO" :class="{ flex: !isInModif}"> <div v-else-if="col.tipovisu === costanti.TipoVisu.TESTO_BORDATO" :class="{ flex: !isInModif}">
@@ -118,10 +119,11 @@
<div v-if="canEdit || isInModif"> <div v-if="canEdit || isInModif">
<q-input <q-input
v-bind="$attrs" v-bind="$attrs"
debounce="1000"
v-model="myvalue" v-model="myvalue"
:maxlength="col.maxlength ? col.maxlength : undefined" :maxlength="col.maxlength ? col.maxlength : undefined"
@update:model-value="Savedb" @update:model-value="Savedb"
:label="visulabel ? t(col.label_trans) : ''" :label="col.visulabel ? t(col.label_trans) : (visulabel ? t(col.label_trans) : '')"
type="number" type="number"
autofocus> autofocus>
@@ -615,6 +617,7 @@
:maxlength="col.maxlength ? col.maxlength : undefined" :maxlength="col.maxlength ? col.maxlength : undefined"
:minlength="col.minlength ? col.minlength : undefined" :minlength="col.minlength ? col.minlength : undefined"
v-model="scope.value" v-model="scope.value"
:label="col.visulabel ? t(col.label_trans) :''"
:autogrow="col.fieldtype !== costanti.FieldType.crypted" :autogrow="col.fieldtype !== costanti.FieldType.crypted"
@keyup.enter.stop @keyup.enter.stop
autofocus> autofocus>
@@ -625,9 +628,11 @@
<div v-if="visulabel"> <div v-if="visulabel">
<q-input <q-input
v-model="scope.value" type="number" v-model="scope.value" type="number"
debounce="1000"
:maxlength="col.maxlength ? col.maxlength : undefined" :maxlength="col.maxlength ? col.maxlength : undefined"
autofocus autofocus
:label="visulabel ? col.label : ''"> :label="col.visulabel ? t(col.label_trans) : (visulabel ? col.label : '')"
>
</q-input> </q-input>
</div> </div>

View File

@@ -4,7 +4,7 @@
<q-item v-if="myrec" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1"> <q-item v-if="myrec" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1">
<q-item-section v-if="myrec.img_logo" avatar <q-item-section v-if="myrec.photo" avatar
@click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)"> @click="cmdExt(costanti.CMD_SHOW_PAGE, myrec)">
<q-avatar size="60px"> <q-avatar size="60px">
<q-img :src="userStore.getImgByCircuit(myrec)" :alt="myrec.descr" <q-img :src="userStore.getImgByCircuit(myrec)" :alt="myrec.descr"

View File

@@ -37,7 +37,7 @@ export default defineComponent({
watch(() => circuitsel.value, (newval, oldval) => { watch(() => circuitsel.value, (newval, oldval) => {
circuitloaded.value = circuitStore.listcircuits.find((rec: ICircuit) => rec.name === newval) aggiorna()
}) })
watch(() => props.showprop, (newval, oldval) => { watch(() => props.showprop, (newval, oldval) => {
@@ -45,6 +45,11 @@ export default defineComponent({
show.value = newval show.value = newval
}) })
function aggiorna() {
circuitloaded.value = circuitStore.listcircuits.find((rec: ICircuit) => rec.name === circuitsel.value)
console.log('circuitStore.listcircuits', circuitStore.listcircuits, 'aggiorna', circuitloaded.value)
}
function mounted() { function mounted() {
@@ -56,7 +61,7 @@ export default defineComponent({
circuitsel.value = bothcircuits.value[0] circuitsel.value = bothcircuits.value[0]
} }
circuitloaded.value = circuitStore.listcircuits.find((rec: ICircuit) => rec.name === circuitsel.value) aggiorna()
show.value = true show.value = true
} }
@@ -78,7 +83,11 @@ export default defineComponent({
} }
console.log('myrecsendcoin', myrecsendcoin) console.log('myrecsendcoin', myrecsendcoin)
if (circuitloaded.value) { if (circuitloaded.value) {
tools.sendCoinsByCircuit($q, circuitloaded.value, myrecsendcoin) tools.sendCoinsByCircuit($q, circuitloaded.value, myrecsendcoin).then((ris: any) => {
if (ris) {
show.value = false
}
})
} }
} }
} }

View File

@@ -17,9 +17,10 @@
</q-input> </q-input>
<q-input v-model="to_user.username" label="Destinatario" class="full-width" disable> <q-input v-model="to_user.username" label="Destinatario" class="full-width" disable>
</q-input> </q-input>
<q-input v-model="causal" label="Causale" class="full-width"> <q-input v-model="causal" label="Note" class="full-width">
</q-input> </q-input>
<q-input outlined v-model="qty" type="number" <q-input outlined v-model="qty" type="number"
label="Quantità" label="Quantità"
@@ -31,6 +32,7 @@
</template> </template>
</q-input> </q-input>
</q-card-section> </q-card-section>
<q-card-actions align="center"> <q-card-actions align="center">
<q-btn <q-btn

View File

@@ -61,6 +61,8 @@ export default defineComponent({
const testStore = useTestStore() const testStore = useTestStore()
const stateconn = ref(globalStore.stateConnection) const stateconn = ref(globalStore.stateConnection)
const rightCartOpen = ref(globalStore.rightCartOpen)
const rightNotifOpen = ref(globalStore.rightNotifOpen)
const { const {
getUsernameChatByMsg, getUsernameChatByMsg,
@@ -171,15 +173,15 @@ export default defineComponent({
set: val => { set: val => {
globalStore.rightDrawerOpen = val globalStore.rightDrawerOpen = val
if (globalStore.rightDrawerOpen) globalStore.rightCartOpen = false if (globalStore.rightDrawerOpen) globalStore.rightCartOpen = false
if (globalStore.rightDrawerOpen) globalStore.rightNotifOpen = false
}, },
}) })
const rightCartOpen = computed({ watch(() => rightNotifOpen, (newval, oldval) => {
get: () => globalStore.rightCartOpen, if (newval) {
set: val => { globalStore.rightDrawerOpen = false
globalStore.rightCartOpen = val globalStore.rightCartOpen = false
if (globalStore.rightCartOpen) globalStore.rightDrawerOpen = false }
},
}) })
const lang = computed({ const lang = computed({
@@ -426,6 +428,7 @@ export default defineComponent({
leftDrawerOpen, leftDrawerOpen,
rightDrawerOpen, rightDrawerOpen,
rightCartOpen, rightCartOpen,
rightNotifOpen,
lang, lang,
langshort, langshort,
getnumOrdersCart, getnumOrdersCart,

View File

@@ -92,7 +92,8 @@
<message-popover></message-popover> <message-popover></message-popover>
</div> </div>
<div v-if="static_data.functionality.SHOW_NOTIF"> <div v-if="static_data.functionality.SHOW_NOTIF">
<notif-popover></notif-popover> <notifPopover
v-model="rightNotifOpen"></notifPopover>
</div> </div>
<!-- <!--
@@ -161,7 +162,10 @@
</q-drawer> </q-drawer>
<!-- USER BAR --> <!-- USER BAR -->
<q-drawer v-if="static_data.functionality.ENABLE_ECOMMERCE" v-model="rightCartOpen" side="right" elevated> <q-drawer v-if="static_data.functionality.ENABLE_ECOMMERCE"
v-model="rightCartOpen"
side="right" elevated>
<q-btn <q-btn
class="absolute-top-right" style="margin-right: 10px; color: white;" class="absolute-top-right" style="margin-right: 10px; color: white;"
dense flat round icon="close" @click="rightCartOpen = !rightCartOpen"> dense flat round icon="close" @click="rightCartOpen = !rightCartOpen">
@@ -171,7 +175,8 @@
<CMyCart></CMyCart> <CMyCart></CMyCart>
</q-drawer> </q-drawer>
<!-- USER BAR --> <!-- USER BAR -->
<q-drawer v-if="static_data.functionality.SHOW_USER_MENU" v-model="rightDrawerOpen" side="right" elevated> <q-drawer v-if="static_data.functionality.SHOW_USER_MENU"
v-model="rightDrawerOpen" side="right" elevated>
<div id="profile"> <div id="profile">
<q-img <q-img
class="absolute-top" src="images/landing_first_section.png" class="absolute-top" src="images/landing_first_section.png"

View File

@@ -662,9 +662,9 @@ $heightBtn: 100%;
border-color: green; border-color: green;
} }
.text-h5 { .text-h5-diff {
@media (max-width: 600px) { @media (max-width: 600px) {
font-size: 1rem; font-size: 1.25rem;
font-weight: 400; font-weight: 400;
line-height: 1.5rem; line-height: 1.5rem;
letter-spacing: normal; letter-spacing: normal;

View File

@@ -23,13 +23,18 @@ import { useQuasar } from 'quasar'
import { costanti } from '@costanti' import { costanti } from '@costanti'
import { waitAndcheckPendingNotif } from '../../../store/Modules/ApiTables' import { waitAndcheckPendingNotif } from '../../../store/Modules/ApiTables'
const namespace = 'notifModule'
export default defineComponent({ export default defineComponent({
name: 'notifPopover', name: 'notifPopover',
components: { CTitleBanner, CMyFieldRec, CMyFieldDb }, components: { CTitleBanner, CMyFieldRec, CMyFieldDb },
emits: ['update:modelValue'],
props: {
modelValue: {
required: true,
type: [String, Number, Boolean],
}
},
setup(props) { setup(props, { emit }) {
const $router = useRouter() const $router = useRouter()
const userStore = useUserStore() const userStore = useUserStore()
const notifStore = useNotifStore() const notifStore = useNotifStore()
@@ -49,7 +54,6 @@ export default defineComponent({
const usernotifs = computed(() => userStore.my.profile.notifs) const usernotifs = computed(() => userStore.my.profile.notifs)
const userId = ref('') const userId = ref('')
const open = ref(false)
const polling = ref(<any> null) const polling = ref(<any> null)
const eseguipolling = ref(true) const eseguipolling = ref(true)
@@ -59,6 +63,16 @@ export default defineComponent({
datenotif: new Date() datenotif: new Date()
}) })
const open = computed({
get () {
return props.modelValue
},
set (value) {
return emit('update:modelValue', value)
}
})
const { getNumNotifUnread, getNumNotif, getUsernameChatByNotif, getImgByNotif, getNotifText, getTypeDirNotif, getTypeIdNotif } = MixinUsers() const { getNumNotifUnread, getNumNotif, getUsernameChatByNotif, getImgByNotif, getNotifText, getTypeDirNotif, getTypeIdNotif } = MixinUsers()
// function lasts_notifs (state: IUserState) => IMessage[] { // function lasts_notifs (state: IUserState) => IMessage[] {

View File

@@ -8,9 +8,11 @@
</q-btn> </q-btn>
<q-drawer v-model="open" side="right" elevated class="text-black"
<q-drawer v-model="open" side="right" elevated class="text-black" :width="$q.screen.lt.sm ? 370 : 450"> :overlay="true"
:breakpoint="1200"
:width="$q.screen.lt.sm ? 370 : 450"
>
<q-bar class="bg-primary text-white"> <q-bar class="bg-primary text-white">
{{ $t('notifs.notifs') }} {{ $t('notifs.notifs') }}
<q-space/> <q-space/>

View File

@@ -261,6 +261,7 @@ export interface IGlobalState {
menuCollapse: boolean menuCollapse: boolean
leftDrawerOpen: boolean leftDrawerOpen: boolean
rightDrawerOpen: boolean rightDrawerOpen: boolean
rightNotifOpen: boolean
rightCartOpen: boolean rightCartOpen: boolean
category: string category: string
stateConnection: string stateConnection: string
@@ -565,6 +566,7 @@ export interface IColGridTable {
align?: string align?: string
field?: string field?: string
sortable?: boolean sortable?: boolean
visulabel?: boolean
disable?: boolean disable?: boolean
titlepopupedit?: string titlepopupedit?: string
visible?: boolean visible?: boolean
@@ -889,12 +891,12 @@ export interface IMyHosp extends IMyMain {
} }
export interface ICircuitList { export interface ICircuitList {
Num: number, _id: string,
inscription_date?: Date inscription_date?: Date
} }
export interface IMyCircuit { export interface IMyCircuit {
_id: number _id: string
circuitname: string circuitname: string
date: Date date: Date
} }
@@ -908,7 +910,7 @@ export interface ISendCoin {
} }
export interface ICircuit { export interface ICircuit {
Num: number _id: number
groupnameId: string groupnameId: string
name: string name: string
path: string path: string
@@ -925,6 +927,7 @@ export interface ICircuit {
compara_euro?: number compara_euro?: number
valuta_per_euro?: number valuta_per_euro?: number
fido_scoperto_default?: number fido_scoperto_default?: number
qta_max_default?: number
data_costituz?: Date data_costituz?: Date
deperimento: boolean deperimento: boolean
freq_deper?: string freq_deper?: string
@@ -934,19 +937,43 @@ export interface ICircuit {
mese_deper?: string mese_deper?: string
ultimo_deper?: Date ultimo_deper?: Date
durata_deper?: number durata_deper?: number
img_logo?: string photos?: IImgGallery[]
date_created?: Date date_created?: Date
date_updated?: Date date_updated?: Date
admins?: IFriends[] admins?: IFriends[]
createdBy?: string createdBy?: string
// --- Mem:
movements: IMovement[]
}
export interface IMovement {
transactionDate: Date
accountFromId: string
accountToId: string
amount: number
causal: string
residual: number
expiringDate: Date
}
export interface IMovVisu {
transactionDate: Date
userfrom: IUserFields
userto: IUserFields
amount: number
causal: string
residual: number
expiringDate: Date
} }
export interface IAccount { export interface IAccount {
username: string username: string
circuitId: number circuitId: number
circuit: ICircuit circuit: ICircuit[]
name: string name: string
deperibile?: boolean deperibile?: boolean
fidoConcesso?: number
qta_maxConcessa?: number
importo_iniziale?: number importo_iniziale?: number
saldo?: number saldo?: number
} }

View File

@@ -1109,7 +1109,8 @@ const msg_it = {
compara_valuta: 'Compara Valuta', compara_valuta: 'Compara Valuta',
compara_euro: 'Compara Euro', compara_euro: 'Compara Euro',
valuta_per_euro: 'Valuta per Euro', valuta_per_euro: 'Valuta per Euro',
fido_scoperto_default: 'Fido scoperto default', fido_scoperto_default: 'Capacità di finanziamento concessa',
qta_max_default: 'Quantità massima concessa',
data_costituz: 'Data Costituzione', data_costituz: 'Data Costituzione',
deperimento: 'Deperimento', deperimento: 'Deperimento',
freq_deper: 'Frequenza Deperimento', freq_deper: 'Frequenza Deperimento',
@@ -1128,7 +1129,7 @@ const msg_it = {
revoketo: 'Revocato la richiesta d\'invito al Circuito {circuitname}', revoketo: 'Revocato la richiesta d\'invito al Circuito {circuitname}',
domanda_remove: 'Rimuovere dal Circuito {username} ?', domanda_remove: 'Rimuovere dal Circuito {username} ?',
removed: 'Rimosso dal Circuito', removed: 'Rimosso dal Circuito',
domanda_removerecord: 'Sicuro di voler Eliminare il Circuito {circuitname} ?', domanda_removecircuit: 'Sicuro di voler Eliminare il Circuito {circuitname} ?',
deleted: 'Circuito {circuitname} Eliminato', deleted: 'Circuito {circuitname} Eliminato',
delete: 'Elimina il Circuito', delete: 'Elimina il Circuito',
addasadmin: 'Aggiungi come Admin del Circuito', addasadmin: 'Aggiungi come Admin del Circuito',
@@ -1156,26 +1157,30 @@ const msg_it = {
coins_refused: 'Monete rifiutate', coins_refused: 'Monete rifiutate',
accept_coins: 'Accetta Monete', accept_coins: 'Accetta Monete',
refuse_coins: 'Rifiuta Monete', refuse_coins: 'Rifiuta Monete',
movements: 'Movimenti',
}, },
account: { account: {
deperibile: 'Deperibile', deperibile: 'Deperibile',
fidoConcesso: 'Capacità di finanziamento',
qta_maxConcessa: 'Capacità massima accumulabile',
importo_iniziale: 'Importo Iniziale', importo_iniziale: 'Importo Iniziale',
saldo: 'Saldo', saldo: 'Saldo',
user: 'Utente', user: 'Utente',
}, },
movement: { movement: {
transactionDate: 'Data Transaz', transactionDate: 'Data Transazione',
accountFromId: 'Dal Conto', accountFromId: 'Dal Conto',
accountToId: 'Al Conto', accountToId: 'Al Conto',
amount: 'Quantità', amount: 'Quantità',
causal: 'Causale', causal: 'Note',
causal_table: 'Tabella Causale', causal_table: 'Tabella Causale',
causal_IdRec: 'Id Record Causale', causal_IdRec: 'Id Record Causale',
residual: 'Residuo', residual: 'Residuo',
expiringDate: 'Data Scadenza', expiringDate: 'Data Scadenza',
movin: 'In Entrata',
movout: 'In Uscita',
}, },
editor: { editor: {
showtool: 'Mostra strumenti per formattare il testo', showtool: 'Mostra strumenti per formattare il testo',

View File

@@ -30,16 +30,6 @@ export const useCircuitStore = defineStore('CircuitStore', {
actions: { actions: {
getImgByCircuit(circ: ICircuit): string {
try {
return costanti.DIR_UPLOAD + 'circuits/' + circ.img_logo
} catch (e) {
}
return 'images/noimg.png'
},
async loadCircuits() { async loadCircuits() {
return Api.SendReq('/users/circuits', 'POST', null) return Api.SendReq('/users/circuits', 'POST', null)
.then((res) => { .then((res) => {

View File

@@ -28,6 +28,7 @@ export const costanti = {
SHOW_USERINFO: 1, SHOW_USERINFO: 1,
SHOW_GROUPINFO: 5, SHOW_GROUPINFO: 5,
SHOW_MOVEMENTS: 8,
SHOW_MYCARD: 10, SHOW_MYCARD: 10,
MAINCARDS: [ MAINCARDS: [
@@ -273,9 +274,16 @@ export const costanti = {
username_chip: 12000, username_chip: 12000,
link: 12500, link: 12500,
listobj: 13000, listobj: 13000,
label: 14000,
}, },
TypeMov: {
Nessuno: 0,
Entrata: 1,
Uscita: -1,
},
FieldTypeArr: [ FieldTypeArr: [
{ label: 'Boolean', value: 1 }, { label: 'Boolean', value: 1 },
{ label: 'Date', value: 2 }, { label: 'Date', value: 2 },

View File

@@ -54,6 +54,7 @@ function AddCol(params: IColGridTable) {
visibleif: (params.visibleif === undefined) ? 0 : params.visibleif, visibleif: (params.visibleif === undefined) ? 0 : params.visibleif,
visib_field: (params.visib_field === undefined) ? '' : params.visib_field, visib_field: (params.visib_field === undefined) ? '' : params.visib_field,
visib_value: (params.visib_value === undefined) ? '' : params.visib_value, visib_value: (params.visib_value === undefined) ? '' : params.visib_value,
visulabel: (params.visulabel === undefined) ? true : params.visulabel,
align: (params.align === undefined) ? 'left' : params.align, align: (params.align === undefined) ? 'left' : params.align,
field: (params.field === undefined) ? params.name : params.field, field: (params.field === undefined) ? params.name : params.field,
subfield: (params.subfield === undefined) ? '' : params.subfield, subfield: (params.subfield === undefined) ? '' : params.subfield,
@@ -517,6 +518,38 @@ export const colSubSkills = [
*/ */
export const colmyMovement = [
// AddCol({ name: '_id', label_trans: 'reg.id' }),
AddCol({ name: 'transactionDate', label_trans: 'movement.transactionDate', fieldtype: costanti.FieldType.date }),
AddCol({
name: 'userfrom.username',
label_trans: 'reg.username',
field: 'userfrom',
subfield: 'username',
foredit: false,
tipovisu: costanti.TipoVisu.LINK,
fieldtype: costanti.FieldType.username_chip,
link: '/my/userfrom.username',
noshowlabel: true,
}),
AddCol({
name: 'userto.username',
label_trans: 'reg.username',
field: 'userto',
subfield: 'username',
foredit: false,
tipovisu: costanti.TipoVisu.LINK,
fieldtype: costanti.FieldType.username_chip,
link: '/my/userto.username',
noshowlabel: true,
}),
AddCol({ name: 'amount', label_trans: 'movement.amount',
fieldtype: costanti.FieldType.string, required: true, tipovisu: costanti.TipoVisu.TESTO_BORDATO }),
AddCol({ name: 'causal', label_trans: 'movement.causal', tipovisu: costanti.TipoVisu.TESTO_BORDATO }),
]
export const colmyUserPeople = [ export const colmyUserPeople = [
// AddCol({ name: '_id', label_trans: 'reg.id' }), // AddCol({ name: '_id', label_trans: 'reg.id' }),
AddCol({ name: 'username', label_trans: 'reg.username_short' }), AddCol({ name: 'username', label_trans: 'reg.username_short' }),
@@ -2402,6 +2435,7 @@ export const colTableCircuitComplete = [
AddCol({ name: 'compara_euro', label_trans: 'circuit.compara_euro', fieldtype: costanti.FieldType.number }), AddCol({ name: 'compara_euro', label_trans: 'circuit.compara_euro', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'valuta_per_euro', label_trans: 'circuit.valuta_per_euro', fieldtype: costanti.FieldType.number }), AddCol({ name: 'valuta_per_euro', label_trans: 'circuit.valuta_per_euro', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'fido_scoperto_default', label_trans: 'circuit.fido_scoperto_default', fieldtype: costanti.FieldType.number }), AddCol({ name: 'fido_scoperto_default', label_trans: 'circuit.fido_scoperto_default', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'qta_max_default', label_trans: 'circuit.qta_max_default', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }), AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }),
AddCol({ name: 'deperimento', label_trans: 'circuit.deperimento', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'deperimento', label_trans: 'circuit.deperimento', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'freq_deper', label_trans: 'circuit.freq_deper' }), AddCol({ name: 'freq_deper', label_trans: 'circuit.freq_deper' }),
@@ -2411,7 +2445,13 @@ export const colTableCircuitComplete = [
AddCol({ name: 'mese_deper', label_trans: 'circuit.mese_deper', fieldtype: costanti.FieldType.number }), AddCol({ name: 'mese_deper', label_trans: 'circuit.mese_deper', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'ultimo_deper', label_trans: 'circuit.ultimo_deper', fieldtype: costanti.FieldType.date }), AddCol({ name: 'ultimo_deper', label_trans: 'circuit.ultimo_deper', fieldtype: costanti.FieldType.date }),
AddCol({ name: 'durata_deper', label_trans: 'circuit.durata_deper', fieldtype: costanti.FieldType.number }), AddCol({ name: 'durata_deper', label_trans: 'circuit.durata_deper', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'img_logo', label_trans: 'circuit.img_logo' }), AddCol({
name: 'photos',
label_trans: 'skill.photos',
fieldtype: costanti.FieldType.listimages,
jointable: '',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
}),
AddCol({ AddCol({
name: 'admins', name: 'admins',
label_trans: 'shared.admins', label_trans: 'shared.admins',
@@ -2434,6 +2474,7 @@ export const colTableCircuitComplete = [
sortable: true, sortable: true,
showWhen: 0 showWhen: 0
}), }),
AddCol(ModifRec),
AddCol(DeleteRec), AddCol(DeleteRec),
AddCol(DuplicateRec), AddCol(DuplicateRec),
] ]
@@ -2441,9 +2482,10 @@ export const colTableCircuitComplete = [
export const colTableCircuit = [ export const colTableCircuit = [
AddCol({ name: 'groupnameId', label_trans: 'circuit.groupnameId', fieldtype: costanti.FieldType.select, jointable: 'mygroups' }), // da togliere poi AddCol({ name: 'groupnameId', label_trans: 'circuit.groupnameId', fieldtype: costanti.FieldType.select, jointable: 'mygroups' }), // da togliere poi
AddCol({ name: 'name', label_trans: 'circuit.name', AddCol({ name: 'name', label_trans: 'circuit.name',
required: true,
maxlength: 40, maxlength: 40,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage }), showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InView }),
AddCol({ name: 'path', label_trans: 'circuit.path' }), AddCol({ name: 'path', label_trans: 'circuit.path', required: true }),
AddCol({ name: 'subname', label_trans: 'circuit.subname' }), AddCol({ name: 'subname', label_trans: 'circuit.subname' }),
AddCol({ name: 'longdescr', label_trans: 'circuit.descr', fieldtype: costanti.FieldType.html }), AddCol({ name: 'longdescr', label_trans: 'circuit.descr', fieldtype: costanti.FieldType.html }),
AddCol({ name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users', }), AddCol({ name: 'systemUserId', label_trans: 'circuit.systemUserId', fieldtype: costanti.FieldType.select, jointable: 'users', }),
@@ -2462,10 +2504,21 @@ export const colTableCircuit = [
sortable: true, sortable: true,
showWhen: 0 showWhen: 0
}), }),
AddCol({ name: 'nome_valuta', label_trans: 'circuit.nome_valuta' }), AddCol({ name: 'nome_valuta', label_trans: 'circuit.nome_valuta', required: true }),
AddCol({ name: 'symbol', label_trans: 'circuit.symbol' }), AddCol({ name: 'symbol', label_trans: 'circuit.symbol' }),
AddCol({ name: 'fido_scoperto_default', label_trans: 'circuit.fido_scoperto_default',
fieldtype: costanti.FieldType.number, required: true, visulabel: true }),
AddCol({ name: 'qta_max_default', label_trans: 'circuit.qta_max_default',
fieldtype: costanti.FieldType.number, required: true, visulabel: true }),
AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }), AddCol({ name: 'data_costituz', label_trans: 'circuit.data_costituz', fieldtype: costanti.FieldType.date }),
AddCol({ name: 'img_logo', label_trans: 'circuit.img_logo' }), AddCol({
name: 'photos',
label_trans: 'skill.photos',
fieldtype: costanti.FieldType.listimages,
jointable: '',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
}),
AddCol(ModifRec),
AddCol(DeleteRec), AddCol(DeleteRec),
AddCol(DuplicateRec), AddCol(DuplicateRec),
] ]
@@ -2475,6 +2528,8 @@ export const colmyUserCircuit = [
AddCol({ name: 'userId', label_trans: 'account.users', fieldtype: costanti.FieldType.select, jointable: 'users', }), AddCol({ name: 'userId', label_trans: 'account.users', fieldtype: costanti.FieldType.select, jointable: 'users', }),
AddCol({ name: 'name', label_trans: 'circuit.name' }), AddCol({ name: 'name', label_trans: 'circuit.name' }),
AddCol({ name: 'deperibile', label_trans: 'account.deperibile', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'deperibile', label_trans: 'account.deperibile', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'fidoConcesso', label_trans: 'account.fidoConcesso', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'qta_maxConcessa', label_trans: 'account.qta_maxConcessa', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'importo_iniziale', label_trans: 'account.importo_iniziale', fieldtype: costanti.FieldType.number }), AddCol({ name: 'importo_iniziale', label_trans: 'account.importo_iniziale', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'saldo', label_trans: 'account.saldo', fieldtype: costanti.FieldType.number }), AddCol({ name: 'saldo', label_trans: 'account.saldo', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'deleted', label_trans: 'reg.deleted', fieldtype: costanti.FieldType.boolean }),
@@ -3079,6 +3134,13 @@ export const fieldsTable = {
colkey: 'groupname', colkey: 'groupname',
collabel: 'groupname', collabel: 'groupname',
}, },
{
value: 'movements',
label: 'Movimenti',
columns: colmyMovement,
colkey: '_id',
collabel: 'transactionDate',
},
{ {
value: 'shippings', value: 'shippings',
label: 'Spedizione', label: 'Spedizione',

View File

@@ -12,7 +12,7 @@ import {
ITodo, ITodo,
IUserFields, IUserFields,
Privacy, Privacy,
TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery, IMsgGlobParam, IUserExport, ISpecialField, IAccount, IMyCircuit, ISendCoin, TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery, IMsgGlobParam, IUserExport, ISpecialField, IAccount, IMyCircuit, ISendCoin, IMovement, IMovVisu,
} from '@model' } from '@model'
import { addToDate } from '@quasar/quasar-ui-qcalendar' import { addToDate } from '@quasar/quasar-ui-qcalendar'
@@ -5259,7 +5259,7 @@ export const tools = {
}) })
}, },
sendCoinsByCircuit($q: any, circuit: ICircuit, sendcoinrec: ISendCoin) { sendCoinsByCircuit($q: any, circuit: ICircuit, sendcoinrec: ISendCoin): any {
const userStore = useUserStore() const userStore = useUserStore()
@@ -5280,13 +5280,12 @@ export const tools = {
title: t('db.domanda') title: t('db.domanda')
}).onOk(() => { }).onOk(() => {
userStore.setCircuitCmd($q, t, username, sendcoinrec.circuitname, shared_consts.CIRCUITCMD.SENDCOINS_REQ, true, sendcoinrec) return userStore.setCircuitCmd($q, t, username, sendcoinrec.circuitname, shared_consts.CIRCUITCMD.SENDCOINS_REQ, true, sendcoinrec)
.then((res: any) => { .then((res: any) => {
if (res) { if (res) {
tools.showPositiveNotif($q, t('circuit.coins_sendrequest_sent')) tools.showPositiveNotif($q, t('circuit.coins_sendrequest_sent'))
} else { } else {
tools.showNegativeNotif($q, t('db.coins_sendrequest_failed')) tools.showNegativeNotif($q, t('circuit.coins_sendrequest_failed'))
} }
}) })
}) })
@@ -5408,7 +5407,7 @@ export const tools = {
const userStore = useUserStore() const userStore = useUserStore()
$q.dialog({ $q.dialog({
message: domanda ? domanda : t('db.domanda_removerecord', { circuitname }), message: domanda ? domanda : t('circuit.domanda_removecircuit', { circuitname }),
ok: { label: t('dialog.yes'), push: true }, ok: { label: t('dialog.yes'), push: true },
cancel: { label: t('dialog.cancel') }, cancel: { label: t('dialog.cancel') },
title: t('db.domanda') title: t('db.domanda')
@@ -6263,6 +6262,22 @@ export const tools = {
return common return common
}, },
isTypeByRecMov(rec: IMovVisu) {
const userStore = useUserStore()
let type = costanti.TypeMov.Nessuno
if (userStore.my.username === rec.userfrom.username) {
type = rec.amount > 0 ? costanti.TypeMov.Uscita : (rec.amount < 0 ? costanti.TypeMov.Entrata : costanti.TypeMov.Nessuno)
} else if (userStore.my.username === rec.userto.username) {
type = rec.amount > 0 ? costanti.TypeMov.Entrata : (rec.amount < 0 ? costanti.TypeMov.Uscita : costanti.TypeMov.Nessuno)
}
return type
},
isEntrataByRecMov(rec: IMovVisu) {
return this.isTypeByRecMov(rec) === costanti.TypeMov.Entrata
},
// getLocale() { // getLocale() {
// if (navigator.languages && navigator.languages.length > 0) { // if (navigator.languages && navigator.languages.length > 0) {
// return navigator.languages[0] // return navigator.languages[0]

View File

@@ -309,12 +309,14 @@ export const useUserStore = defineStore('UserStore', {
IsMyCircuitByUser(user: IUserFields): any[] { IsMyCircuitByUser(user: IUserFields): any[] {
if (!this.my.profile.mycircuits || !user.profile.mycircuits)
return []
return tools.getCommon(this.my.profile.mycircuits, user.profile.mycircuits, 'circuitname') return tools.getCommon(this.my.profile.mycircuits, user.profile.mycircuits, 'circuitname')
}, },
getAccountByCircuitName(circuitname: string): any { getAccountByCircuitId(circuitId: number): any {
return this.my.profile.useraccounts.find((rec: IAccount) => rec.circuit.name === circuitname) return this.my.profile.useraccounts.find((rec: IAccount) => rec.circuitId === circuitId)
}, },
IsRefusedCircuitByName(circuitname: string): boolean { IsRefusedCircuitByName(circuitname: string): boolean {
@@ -328,7 +330,8 @@ export const useUserStore = defineStore('UserStore', {
getImgByCircuit(circ: ICircuit): string { getImgByCircuit(circ: ICircuit): string {
try { try {
return costanti.DIR_UPLOAD + 'circuits/' + circ.img_logo if (circ.photos && circ.photos.length > 0)
return costanti.DIR_UPLOAD + 'circuits/' + circ.path + '/' + circ.photos[0].imagefile
} catch (e) { } catch (e) {
} }
return 'images/noimg.png' return 'images/noimg.png'

View File

@@ -67,6 +67,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
menuCollapse: true, menuCollapse: true,
leftDrawerOpen: false, leftDrawerOpen: false,
rightDrawerOpen: false, rightDrawerOpen: false,
rightNotifOpen: false,
rightCartOpen: false, rightCartOpen: false,
stateConnection: stateConnDefault, stateConnection: stateConnDefault,
serverError: false, serverError: false,
@@ -1675,7 +1676,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
myserv = window.location.host myserv = window.location.host
if (process.env.DEBUGGING) { if (process.env.DEBUGGING) {
myserv = ' http://192.168.1.102:3000'; // 'http://192.168.1.54:3000' myserv = 'http://localhost:3000'; // 'http://192.168.1.54:3000'
} }
if (!myserv) { if (!myserv) {

View File

@@ -18,13 +18,14 @@ import { useQuasar } from 'quasar'
import { costanti } from '@costanti' import { costanti } from '@costanti'
import { ICity, IFriends, ICircuit, ISearchList, IUserFields, IAccount } from 'model' import { ICity, IFriends, ICircuit, ISearchList, IUserFields, IAccount } from 'model'
import { shared_consts } from '@/common/shared_vuejs' import { shared_consts } from '@/common/shared_vuejs'
import { colmyUserPeople, colmyUserCircuit } from '@store/Modules/fieldsTable' import { colmyUserPeople, colmyUserCircuit, colmyMovement } from '@store/Modules/fieldsTable'
import { useNotifStore } from '@store/NotifStore' import { useNotifStore } from '@store/NotifStore'
export default defineComponent({ export default defineComponent({
name: 'mycircuit', name: 'mycircuit',
components: { CProfile, CTitleBanner, CMyFieldRec, CSkill, CDateTime, CMyFriends, CGridTableRec, CMyUser, CCheckIfIsLogged }, components: { CProfile, CTitleBanner, CMyFieldRec, CSkill, CDateTime, CMyFriends,
CGridTableRec, CMyUser, CCheckIfIsLogged },
props: {}, props: {},
setup() { setup() {
const userStore = useUserStore() const userStore = useUserStore()
@@ -82,8 +83,10 @@ export default defineComponent({
users_in_circuit.value = [] users_in_circuit.value = []
} }
if (circuit.value) if (circuit.value) {
account.value = userStore.getAccountByCircuitName(circuit.value.name) account.value = userStore.getAccountByCircuitId(circuit.value._id)
console.log('account', account.value)
}
mystatus.value = status mystatus.value = status
@@ -150,14 +153,22 @@ export default defineComponent({
function extraparams_rich() { function extraparams_rich() {
return { return {
querytype: shared_consts.QUERYTYPE_CIRCUIT, querytype: shared_consts.QUERYTYPE_CIRCUIT,
myid: circuit.value ? circuit.value.Num : '', myid: circuit.value ? circuit.value._id : '',
}
}
function extraparams_movs() {
return {
querytype: shared_consts.QUERYTYPE_LIST_MOVEMENTS,
myid: circuit.value ? circuit.value._id : '',
username: userStore.my.username,
} }
} }
function extraparams_refused() { function extraparams_refused() {
return { return {
querytype: shared_consts.QUERYTYPE_REFUSED_USER_CIRCUIT, querytype: shared_consts.QUERYTYPE_REFUSED_USER_CIRCUIT,
myid: circuit.value ? circuit.value.Num : '', myid: circuit.value ? circuit.value._id : '',
} }
} }
@@ -193,11 +204,13 @@ export default defineComponent({
filtercustom, filtercustom,
filtercustom_rich, filtercustom_rich,
searchList, searchList,
colmyMovement,
colmyUserPeople, colmyUserPeople,
colmyUserCircuit, colmyUserCircuit,
extraparams, extraparams,
extraparams_rich, extraparams_rich,
extraparams_refused, extraparams_refused,
extraparams_movs,
tab, tab,
tabgrp, tabgrp,
tabmembers, tabmembers,
@@ -208,6 +221,7 @@ export default defineComponent({
loading, loading,
mystatus, mystatus,
cities, cities,
path,
} }
} }
}) })

View File

@@ -39,8 +39,34 @@
<em style="font-weight: bold">{{ $t('db.youarerefusedcircuit') }}</em><br> <em style="font-weight: bold">{{ $t('db.youarerefusedcircuit') }}</em><br>
</q-banner> </q-banner>
<div v-if="account"> <div v-if="account" style="width: 300px;" class="text-h5">
Saldo: {{ account.saldo}} <q-field outlined
dense
:type="number"
rounded
class="q-pa-sm text-h5"
color="green"
>
<template v-slot:prepend>
<q-avatar>
<!--<img src="https://cdn.quasar.dev/logo-v2/svg/logo.svg">-->
<q-icon name="fas fa-coins" size="sm"/>
</q-avatar>
<div class="text-h6">
Saldo
</div>
</template>
<template v-slot:control>
<div>{{account.saldo ? account.saldo.toFixed(2) : 'N/D'}}</div>
</template>
<template v-slot:append>
<div class="text-h5">
<em class="q-px-sm bg-deep-orange text-white rounded-borders">{{ account.circuit[0].symbol }}</em>
</div>
</template>
</q-field>
</div> </div>
@@ -91,12 +117,46 @@
<q-tabs v-model="tabgrp" class="text-blue"> <q-tabs v-model="tabgrp" class="text-blue">
<q-tab :label="t('shared.info1')" name="info" icon="fas fa-info"></q-tab> <q-tab :label="t('shared.info1')" name="info" icon="fas fa-info"></q-tab>
<q-tab :label="t('circuit.movements')" name="mov" icon="fas fa-coins"></q-tab>
<q-tab v-if="!!circuit.note" :label="t('circuit.page')" name="page" icon="fas fa-file-word"></q-tab> <q-tab v-if="!!circuit.note" :label="t('circuit.page')" name="page" icon="fas fa-file-word"></q-tab>
<q-tab v-if="tools.iCanShowCircuitsMember(circuit) || tools.iAmAdminCircuit(circuit.name)" <q-tab v-if="tools.iCanShowCircuitsMember(circuit) || tools.iAmAdminCircuit(circuit.name)"
:label="t('shared.subscribes')" name="members" icon="fas fa-users"></q-tab> :label="t('shared.subscribes')" name="members" icon="fas fa-users"></q-tab>
</q-tabs> </q-tabs>
<q-tab-panels v-model="tabgrp" animated> <q-tab-panels v-model="tabgrp" animated>
<q-tab-panel name="mov">
<CGridTableRec
prop_mytable="movements"
prop_mytitle=""
:prop_mycolumns="colmyMovement"
prop_colkey="_id"
col_title="Lista Movimenti"
:vertical="costanti.VISUTABLE_LISTA"
nodataLabel="Nessun Movimento effettuato"
:prop_search="false"
hint="Username da trovare"
:finder="false"
:choose_visutype="false"
:finder_noNull="false"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
:butt_modif_new="false"
noresultLabel="Username non trovato"
:arrfilters="arrfilterand"
:filtercustom="filtercustom_rich"
:prop_searchList="searchList"
:showType="costanti.SHOW_MOVEMENTS"
keyMain=""
:showCol="false"
:showHeaderCol="false"
:extraparams="extraparams_movs()"
extrafield=""
:visufind="costanti.FRIENDS"
>
</CGridTableRec>
</q-tab-panel>
<q-tab-panel name="info"> <q-tab-panel name="info">
<div> <div>
<q-card> <q-card>
@@ -109,15 +169,19 @@
<q-card-section> <q-card-section>
<div v-if="circuit.createdBy" class="element"> <div v-if="circuit.createdBy" class="element">
<q-icon name="fas fa-lightbulb"></q-icon> <q-icon name="fas fa-lightbulb"></q-icon>
{{ $t('shared.createdby', { {{
username: circuit.createdBy, $t('shared.createdby', {
date: tools.getstrDateYY(circuit.date_created), }) username: circuit.createdBy,
date: tools.getstrDateYY(circuit.date_created),
})
}} }}
</div> </div>
<div v-if="!!circuit.date_updated && tools.getstrDate(circuit.date_updated) !== tools.getstrDate(circuit.date_created)" class="element"> <div v-if="!!circuit.date_updated && tools.getstrDate(circuit.date_updated) !== tools.getstrDate(circuit.date_created)" class="element">
<q-icon name="fas fa-pencil-alt"></q-icon> <q-icon name="fas fa-pencil-alt"></q-icon>
{{ $t('shared.lastmodify', { {{
date: tools.getstrDateYY(circuit.date_updated), }) $t('shared.lastmodify', {
date: tools.getstrDateYY(circuit.date_updated),
})
}} }}
</div> </div>
@@ -137,6 +201,18 @@
> >
</CMyUser> </CMyUser>
</div> </div>
<div v-if="circuit.fido_scoperto_default" class="members">
<q-icon name="fas fa-battery-quarter"></q-icon>
{{ circuit.fido_scoperto_default }} {{ t('circuit.fido_scoperto_default') }}
</div>
<div v-if="circuit.qta_max_default" class="members">
<q-icon name="fas fa-battery-full"></q-icon>
{{ circuit.qta_max_default }} {{ t('circuit.qta_max_default') }}
</div>
<div v-if="circuit.deperimento" class="members">
<q-icon name="fas fa-battery-full"></q-icon>
{{ t('circuit.deperimento') }}{{ circuit.deperimento ? t('dialog.yes') : t('dialog.no') }} {{ }}
</div>
</q-card-section> </q-card-section>
</q-card> </q-card>
@@ -178,101 +254,104 @@
</q-tabs> </q-tabs>
<q-tab-panels v-model="tabmembers" animated> <q-tab-panels v-model="tabmembers" animated>
<q-tab-panel name="all"> <q-tab-panel name="all">
<CGridTableRec <CGridTableRec
ref="tabMembri" ref="tabMembri"
prop_mytable="users" prop_mytable="users"
prop_mytitle="" prop_mytitle=""
:prop_mycolumns="colmyUserPeople" :prop_mycolumns="colmyUserPeople"
prop_colkey="_id" prop_colkey="_id"
col_title="username" col_title="username"
:vertical="costanti.VISUTABLE_LISTA" :vertical="costanti.VISUTABLE_LISTA"
nodataLabel="Nessun Iscritto" nodataLabel="Nessun Iscritto"
:prop_search="true" :prop_search="true"
hint="Username da trovare" hint="Username da trovare"
:finder="false" :finder="false"
:choose_visutype="true" :choose_visutype="true"
:finder_noNull="false" :finder_noNull="false"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS" :options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
:butt_modif_new="false" :butt_modif_new="false"
noresultLabel="Username non trovato" noresultLabel="Username non trovato"
:arrfilters="arrfilterand" :arrfilters="arrfilterand"
:filtercustom="filtercustom" :filtercustom="filtercustom"
:prop_searchList="searchList" :prop_searchList="searchList"
:showType="costanti.SHOW_USERINFO" :showType="costanti.SHOW_USERINFO"
:showCol="false" :showCol="false"
:circuitname="circuit.name" :circuitname="circuit.name"
:extraparams="extraparams()" :extraparams="extraparams()"
:visufind="tools.iAmAdminCircuit(circuit.name) ? costanti.REQ_REMOVE_USER_TO_CIRCUIT : costanti.FIND_PEOPLE" :visufind="tools.iAmAdminCircuit(circuit.name) ? costanti.REQ_REMOVE_USER_TO_CIRCUIT : costanti.FIND_PEOPLE"
> >
</CGridTableRec> </CGridTableRec>
</q-tab-panel> </q-tab-panel>
<q-tab-panel name="rich"> <q-tab-panel name="rich">
<CGridTableRec <CGridTableRec
prop_mytable="circuits" prop_mytable="circuits"
prop_mytitle="" prop_mytitle=""
:prop_mycolumns="colmyUserPeople" :prop_mycolumns="colmyUserPeople"
prop_colkey="_id" prop_colkey="_id"
col_title="" col_title=""
:vertical="costanti.VISUTABLE_USER_TABCIRCUIT" :vertical="costanti.VISUTABLE_USER_TABCIRCUIT"
nodataLabel="Nessuna Richiesta in sospeso" nodataLabel="Nessuna Richiesta in sospeso"
:prop_search="false" :prop_search="false"
hint="Username da trovare" hint="Username da trovare"
:finder="false" :finder="false"
:choose_visutype="false" :choose_visutype="false"
:finder_noNull="false" :finder_noNull="false"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS" :options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
:butt_modif_new="false" :butt_modif_new="false"
noresultLabel="Username non trovato" noresultLabel="Username non trovato"
:arrfilters="arrfilterand" :arrfilters="arrfilterand"
:filtercustom="filtercustom_rich" :filtercustom="filtercustom_rich"
:prop_searchList="searchList" :prop_searchList="searchList"
:showType="costanti.SHOW_USERINFO" :showType="costanti.SHOW_USERINFO"
keyMain="" keyMain=""
:showCol="false" :showCol="false"
:extraparams="extraparams_rich()" :extraparams="extraparams_rich()"
:circuitname="circuit.name" :circuitname="circuit.name"
:visufind="costanti.REQ_ADD_USER_TO_CIRCUIT" :visufind="costanti.REQ_ADD_USER_TO_CIRCUIT"
> >
</CGridTableRec> </CGridTableRec>
</q-tab-panel> </q-tab-panel>
<q-tab-panel name="refused"> <q-tab-panel name="refused">
<CGridTableRec <CGridTableRec
prop_mytable="circuits" prop_mytable="circuits"
prop_mytitle="" prop_mytitle=""
:prop_mycolumns="colmyUserPeople" :prop_mycolumns="colmyUserPeople"
prop_colkey="_id" prop_colkey="_id"
col_title="" col_title=""
:vertical="costanti.VISUTABLE_USER_TABCIRCUIT" :vertical="costanti.VISUTABLE_USER_TABCIRCUIT"
nodataLabel="Nessun utente Rifiutato" nodataLabel="Nessun utente Rifiutato"
:prop_search="false" :prop_search="false"
hint="Username da trovare" hint="Username da trovare"
:finder="false" :finder="false"
:choose_visutype="false" :choose_visutype="false"
:finder_noNull="false" :finder_noNull="false"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS" :options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
:butt_modif_new="false" :butt_modif_new="false"
noresultLabel="Username non trovato" noresultLabel="Username non trovato"
:arrfilters="arrfilterand" :arrfilters="arrfilterand"
:filtercustom="filtercustom_rich" :filtercustom="filtercustom_rich"
:prop_searchList="searchList" :prop_searchList="searchList"
:showType="costanti.SHOW_USERINFO" :showType="costanti.SHOW_USERINFO"
keyMain="" keyMain=""
:showCol="false" :showCol="false"
:extraparams="extraparams_refused()" :extraparams="extraparams_refused()"
:circuitname="circuit.name" :circuitname="circuit.name"
:visufind="costanti.REQ_ADD_USER_TO_CIRCUIT" :visufind="costanti.REQ_ADD_USER_TO_CIRCUIT"
> >
</CGridTableRec> </CGridTableRec>
</q-tab-panel> </q-tab-panel>
</q-tab-panels> </q-tab-panels>
</q-tab-panel>
<q-tab-panel name="mov">
</q-tab-panel> </q-tab-panel>
</q-tab-panels> </q-tab-panels>
@@ -284,7 +363,7 @@
<q-skeleton :animation="animation"/> <q-skeleton :animation="animation"/>
</div> </div>
<div class="col-12 text-h7 text-grey text-center"> <div class="col-12 text-h7 text-grey text-center">
{{ circuit.path }} {{ path }}
</div> </div>
<div class="col-12 text-h7"> <div class="col-12 text-h7">
<q-skeleton :animation="animation"/> <q-skeleton :animation="animation"/>

View File

@@ -154,7 +154,7 @@
</div> </div>
<div class="col-md-6 col-sm-6 q-ma-xs col-xs-12"> <div class="col-md-6 col-sm-6 q-ma-xs col-xs-12">
<q-btn <q-btn
v-if="userStore.IsMyCircuitByUser(myuser).length > 0" icon="fab fa-telegram" v-if="userStore.IsMyCircuitByUser(myuser).length > 0 && myuser.username !== myusername()" icon="fab fa-telegram"
color="blue" color="blue"
size="md" size="md"
rounded rounded
@@ -311,7 +311,7 @@
<img :src="getImgUser()" :alt="username" class="full-width"> <img :src="getImgUser()" :alt="username" class="full-width">
</q-dialog> </q-dialog>
showsendCoinTo: {{ showsendCoinTo}}
<div v-if="showsendCoinTo"> <div v-if="showsendCoinTo">
<CSendCoins <CSendCoins
:showprop="showsendCoinTo" :showprop="showsendCoinTo"

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

2166
yarn.lock

File diff suppressed because it is too large Load Diff