update quasar
This commit is contained in:
@@ -150,7 +150,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
|
||||
143
package copy_nuovo.json
Executable file
143
package copy_nuovo.json
Executable file
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "0.6.1",
|
||||
"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",
|
||||
"private": true,
|
||||
"keywords": [],
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "quasar build -m pwa",
|
||||
"buildspa": "quasar build -m spa",
|
||||
"lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./",
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@quasar/extras": "^1.16.7",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.16",
|
||||
"@vue-leaflet/vue-leaflet": "^0.10.1",
|
||||
"@vue/compat": "^3.3.4",
|
||||
"@vue/compiler-sfc": "^3.3.4",
|
||||
"@vue/eslint-config-standard": "7.0.0",
|
||||
"@vuelidate/core": "^2.0.3",
|
||||
"@vuelidate/validators": "^2.0.4",
|
||||
"acorn": "^8.10.0",
|
||||
"animate.css": "^4.1.1",
|
||||
"autoprefixer": "^10.4.16",
|
||||
"axios": "^1.5.1",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"chart.js": "3.9.1",
|
||||
"core-js": "^3.32.2",
|
||||
"crypto": "^1.0.1",
|
||||
"date-fns": "^2.30.0",
|
||||
"dotenv": "^16.3.1",
|
||||
"echarts": "5.4.3",
|
||||
"eslint-plugin-quasar": "^1.1.0",
|
||||
"eslint-plugin-standard": "^5.0.0",
|
||||
"graphql": "^16.8.1",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"gsap": "^3.12.2",
|
||||
"jquery": "^3.7.1",
|
||||
"js-cookie": "^3.0.5",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash": "^4.17.21",
|
||||
"normalize.css": "^8.0.1",
|
||||
"npm": "^10.1.0",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.1.6",
|
||||
"prerender-spa-plugin": "^3.4.0",
|
||||
"quasar": "^2.12.7",
|
||||
"quasar-extras": "^2.0.9",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"vee-validate": "^4.11.7",
|
||||
"vue": "^3.3.4",
|
||||
"vue-chart-3": "^3.1.8",
|
||||
"vue-class-component": "^8.0.0-rc.1",
|
||||
"vue-country-code": "^1.1.3",
|
||||
"vue-echarts": "^6.6.1",
|
||||
"vue-i18n": "^9.4.1",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-loader": "^17.2.2",
|
||||
"vue-property-decorator": "^10.0.0-rc.3",
|
||||
"vue-router": "^4.2.5",
|
||||
"vue-scroll-reveal": "^2.1.0",
|
||||
"vue-social-sharing": "^4.0.0-alpha4",
|
||||
"vue-svgicon": "^4.0.0-alpha.3",
|
||||
"vue-timeago3": "^2.3.1",
|
||||
"vue2-dragula": "^2.5.5",
|
||||
"vuex": "^4.1.0",
|
||||
"vuex-router-sync": "^6.0.0-rc.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@quasar/app": "^3.3.3",
|
||||
"@types/bcryptjs": "^2.4.4",
|
||||
"@types/dotenv": "^8.2.0",
|
||||
"@types/google.maps": "^1.0.0",
|
||||
"@types/jest": "^29.5.5",
|
||||
"@types/js-cookie": "^3.0.4",
|
||||
"@types/node": "20.7.1",
|
||||
"@types/nprogress": "^0.2.1",
|
||||
"@types/vue-tel-input": "^2.1.3",
|
||||
"@types/vuelidate": "^0.7.19",
|
||||
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
||||
"@typescript-eslint/parser": "^6.7.3",
|
||||
"eslint": "^8.50.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-import": "^2.28.1",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-vue": "^9.17.0",
|
||||
"file-loader": "^6.2.0",
|
||||
"html-webpack-plugin": "^5.5.3",
|
||||
"http-proxy-middleware": "^2.0.6",
|
||||
"jest": "^29.7.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"node-sass": "7.0.0",
|
||||
"npm-check-updates": "^16.14.4",
|
||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
||||
"postcss": "^8.4.30",
|
||||
"postcss-loader": "^7.3.3",
|
||||
"sass-loader": "^13.3.2",
|
||||
"strip-ansi": "=7.1.0",
|
||||
"ts-jest": "^29.1.1",
|
||||
"ts-loader": "^9.4.4",
|
||||
"tslint": "^6.1.3",
|
||||
"tslint-config-standard": "^9.0.0",
|
||||
"tslint-loader": "^3.5.4",
|
||||
"typescript": "^5.2.2",
|
||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||
"vueify": "^9.4.1",
|
||||
"webpack": "^5.78.0",
|
||||
"workbox-webpack-plugin": "^6.5.4"
|
||||
},
|
||||
"browser": {
|
||||
"crypto": false
|
||||
},
|
||||
"browserslist": [
|
||||
"last 80 Chrome versions",
|
||||
"last 40 Firefox versions",
|
||||
"last 20 Edge versions",
|
||||
"last 55 Safari versions",
|
||||
"last 90 Android versions",
|
||||
"last 250 ChromeAndroid versions",
|
||||
"last 60 FirefoxAndroid versions",
|
||||
"last 30 iOS versions",
|
||||
"last 10 Opera versions",
|
||||
"> 0.03%",
|
||||
"not dead"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 18.18.0",
|
||||
"npm": ">= 6.14.8",
|
||||
"yarn": ">= 1.21.1"
|
||||
}
|
||||
}
|
||||
14
package.json
14
package.json
@@ -22,7 +22,7 @@
|
||||
"generate-sw": "workbox generateSW workbox-config.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@quasar/extras": "^1.16.2",
|
||||
"@quasar/extras": "^1.16.7",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.16",
|
||||
"@vue-leaflet/vue-leaflet": "^0.9.0",
|
||||
"@vue/compat": "^3.2.47",
|
||||
@@ -42,7 +42,6 @@
|
||||
"dotenv": "^16.0.3",
|
||||
"echarts": "5.4.2",
|
||||
"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",
|
||||
@@ -55,9 +54,10 @@
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.0.33",
|
||||
"prerender-spa-plugin": "^3.4.0",
|
||||
"quasar": "^2.11.10",
|
||||
"quasar": "^2.12.07",
|
||||
"quasar-extras": "^2.0.9",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"typescript-eslint": "^0.0.1-alpha.0",
|
||||
"vee-validate": "^4.8.4",
|
||||
"vue": "^3.2.47",
|
||||
"vue-chart-3": "^3.1.8",
|
||||
@@ -88,8 +88,8 @@
|
||||
"@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",
|
||||
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
||||
"@typescript-eslint/parser": "^6.7.2",
|
||||
"eslint": "^8.37.0",
|
||||
"eslint-config-prettier": "^8.8.0",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
@@ -101,7 +101,7 @@
|
||||
"http-proxy-middleware": "^2.0.6",
|
||||
"jest": "^29.5.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"node-sass": "7.0.0",
|
||||
"node-sass": "^9.0.0",
|
||||
"npm-check-updates": "^16.10.7",
|
||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
||||
"postcss": "^8.4.21",
|
||||
@@ -113,7 +113,7 @@
|
||||
"tslint": "^6.1.3",
|
||||
"tslint-config-standard": "^9.0.0",
|
||||
"tslint-loader": "^3.5.4",
|
||||
"typescript": "^5.0.3",
|
||||
"typescript": "^5.2.2",
|
||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||
"vueify": "^9.4.1",
|
||||
"webpack": "^5.78.0",
|
||||
|
||||
@@ -17,7 +17,8 @@ export default defineComponent({
|
||||
props: {
|
||||
discipline: {
|
||||
Type: Object as PropType<IDiscipline>,
|
||||
required: true,
|
||||
required: false,
|
||||
default: {}
|
||||
},
|
||||
directory: {
|
||||
type: String,
|
||||
@@ -54,7 +55,7 @@ export default defineComponent({
|
||||
return calendarStore.eventlist.find((myevent: IEvents) => (myevent.typol === typol) && (new Date(myevent.dateTimeEnd!) >= datenow))
|
||||
}
|
||||
|
||||
function disciplinechanged(myrec: IDiscipline | any) {
|
||||
function disciplinechanged(myrec: IDiscipline) {
|
||||
nextlesson.value = getNextLesson(myrec.typol_code)
|
||||
// console.log('nextlesson', this.nextlesson)
|
||||
}
|
||||
@@ -73,7 +74,8 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function created() {
|
||||
disciplinechanged(props.discipline)
|
||||
if (tools.isObject(props.discipline))
|
||||
disciplinechanged(props.discipline)
|
||||
}
|
||||
|
||||
created()
|
||||
|
||||
@@ -1075,6 +1075,8 @@ export default defineComponent({
|
||||
const myfilternow = myfilter.value
|
||||
const myfilterandnow = myfilterand.value
|
||||
|
||||
console.log('onUpdateData')
|
||||
|
||||
if (ordinam.value) {
|
||||
sortBy = ordinam.value
|
||||
descending = ordinam_desc.value
|
||||
@@ -1085,6 +1087,7 @@ export default defineComponent({
|
||||
savefilter()
|
||||
|
||||
if (!mytable.value) {
|
||||
console.log(' startsearch.value', startsearch.value)
|
||||
startsearch.value = false
|
||||
if (myinfscroll.value) {
|
||||
// @ts-ignore
|
||||
@@ -1102,6 +1105,9 @@ export default defineComponent({
|
||||
const endRow = startRow + fetchCount
|
||||
// console.log('startRow', startRow, 'endRow', endRow, 'rowsNumber', pagination.value.rowsNumber)
|
||||
|
||||
startsearch.value = true
|
||||
|
||||
console.log(' TRUE: startsearch.value', startsearch.value)
|
||||
|
||||
if ((startRow < pagination.value.rowsNumber) || clickbuttsearch.value) {
|
||||
|
||||
@@ -1143,6 +1149,8 @@ export default defineComponent({
|
||||
changetable.value = false
|
||||
startsearch.value = false
|
||||
|
||||
console.log(' FINE- startsearch.value', startsearch.value)
|
||||
|
||||
if (myinfscroll.value) {
|
||||
// @ts-ignore
|
||||
myinfscroll.value.resume()
|
||||
@@ -2360,6 +2368,7 @@ export default defineComponent({
|
||||
showInnerDialog,
|
||||
lengthopt,
|
||||
update_col,
|
||||
startsearch,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
color="primary"
|
||||
class="centermydiv q-mb-sm"
|
||||
:label="labelBtnAddExtra"
|
||||
:disable="loading"
|
||||
:disable="startsearch"
|
||||
icon="fas fa-plus"
|
||||
@click="createNewRecord"
|
||||
>
|
||||
@@ -361,6 +361,9 @@
|
||||
:offset="350"
|
||||
debounce="300"
|
||||
>
|
||||
<div v-if="numRecLoaded === 0 && !startsearch">
|
||||
<div class="text-grey text-italic">{{ nodataLabel }}</div>
|
||||
</div>
|
||||
<div v-if="showHeaderCol">
|
||||
<div
|
||||
v-for="col in mycolumns"
|
||||
@@ -568,9 +571,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<template v-slot:loading>
|
||||
<div v-if="!hidetitleIfEmpty" class="text-center">
|
||||
<q-spinner-dots color="primary" size="40px" />
|
||||
</div>
|
||||
<div class="row justify-center q-my-md">
|
||||
<q-spinner-dots color="primary" size="40px" />
|
||||
</div>
|
||||
</template>
|
||||
</q-infinite-scroll>
|
||||
<q-table
|
||||
@@ -590,7 +593,7 @@
|
||||
@request="onRequest"
|
||||
virtual-scroll
|
||||
:row-key="colkey"
|
||||
:loading="loading"
|
||||
:loading="startsearch"
|
||||
@selection="selectionclick"
|
||||
binary-state-sort
|
||||
:visible-columns="colVisib"
|
||||
|
||||
@@ -1172,7 +1172,7 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function refresh_infscroll(done: any) {
|
||||
// console.log('refresh_infscroll', 'pag', pagination.value.rowsNumber)
|
||||
console.log('refresh_infscroll', 'pag', pagination.value.rowsNumber)
|
||||
rowclicksel.value = null
|
||||
|
||||
onUpdateData(0,
|
||||
@@ -2157,7 +2157,7 @@ export default defineComponent({
|
||||
function onLoadScroll(index: number, done: any) {
|
||||
|
||||
if (index > 1) {
|
||||
// console.log('onLoadScroll', index, 'RECLOAD', numRecLoaded.value, 'ROWS: ', pagination.value.rowsNumber, 'PAGE: ', pagination.value.page)
|
||||
console.log('onLoadScroll', index, 'RECLOAD', numRecLoaded.value, 'ROWS: ', pagination.value.rowsNumber, 'PAGE: ', pagination.value.page)
|
||||
if (numRecLoaded.value < pagination.value.rowsNumber || (pagination.value.rowsNumber <= 0 && clickbuttsearch.value)) {
|
||||
if (pagination.value.rowsNumber === 0) {
|
||||
pagination.value.page = 0
|
||||
|
||||
@@ -1,361 +1,8 @@
|
||||
<template>
|
||||
<div v-if="tools.isDebugOn()"></div>
|
||||
<div :class="$q.screen.lt.sm ? `` : `q-pa-xs`" v-if="isfinishLoading">
|
||||
<q-toggle
|
||||
v-if="tools.isManager()"
|
||||
v-model="editOn"
|
||||
color="green"
|
||||
icon="fas fa-pencil-alt"
|
||||
>
|
||||
</q-toggle>
|
||||
<div
|
||||
v-if="mytable && visButtRow()"
|
||||
class="centermydiv q-my-sm"
|
||||
style="text-align: center"
|
||||
>
|
||||
<q-btn
|
||||
v-if="mytable && visButtRow()"
|
||||
rounded
|
||||
dense
|
||||
color="primary"
|
||||
size="lg"
|
||||
:label="getlabelAddRow()"
|
||||
@click="createNewRecordDialog"
|
||||
></q-btn>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="butt_modif_new || mytitle"
|
||||
:class="$q.screen.lt.sm ? `` : `q-gutter-md q-ma-xs` + ` row`"
|
||||
>
|
||||
<div class="q-table__title" style="min-width: 150px">
|
||||
{{ mytitle }}
|
||||
</div>
|
||||
<q-space></q-space>
|
||||
<div v-if="butt_modif_new">
|
||||
<q-btn
|
||||
v-if="mytable && !shared_consts.TABLES_FINDER.includes(mytable)"
|
||||
rounded
|
||||
dense
|
||||
size="sm"
|
||||
flat
|
||||
:color="canEdit ? 'positive' : 'light-gray'"
|
||||
:disable="disabilita()"
|
||||
:val="lists.MenuAction.CAN_EDIT_TABLE"
|
||||
icon="fas fa-pencil-alt"
|
||||
@update:model-value="changefuncAct"
|
||||
@click="canEdit = !canEdit"
|
||||
>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="mytable && labelBtnAddExtra"
|
||||
rounded
|
||||
outline
|
||||
size="md"
|
||||
color="primary"
|
||||
class="centermydiv q-mb-sm"
|
||||
:label="labelBtnAddExtra"
|
||||
:disable="loading"
|
||||
icon="fas fa-plus"
|
||||
@click="createNewRecord"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<q-inner-loading :showing="spinner_visible">
|
||||
<q-spinner-tail size="2em" color="primary" />
|
||||
</q-inner-loading>
|
||||
|
||||
<div v-if="shared_consts.VERTIC_SHOW_GRID.includes(myvertical)">
|
||||
<div v-if="(prop_search || canEdit) && finder" class="q-my-xs text-right">
|
||||
<!--<q-btn
|
||||
size="sm"
|
||||
dense
|
||||
icon="fas fa-filter"
|
||||
:label="$t('grid.showfilters')"
|
||||
@click="showfilter = !showfilter"
|
||||
></q-btn>
|
||||
-->
|
||||
</div>
|
||||
<q-slide-transition>
|
||||
<div v-show="showfilter || prop_showfilter">
|
||||
<div
|
||||
v-show="searchList"
|
||||
:class="$q.screen.lt.sm ? `` : `row` + ` text-blue `"
|
||||
>
|
||||
<span v-for="(item, index) in searchList" :key="index">
|
||||
<CMySelect
|
||||
:col="fieldsTable.getColByColumns(mycolumns, item.key)"
|
||||
v-if="
|
||||
(item.type === costanti.FieldType.select ||
|
||||
item.type === costanti.FieldType.select_by_server) &&
|
||||
lengthopt(item, false) > 1
|
||||
"
|
||||
:label="labelcombo(item)"
|
||||
v-model:value="item.value"
|
||||
@update:value="searchval(item.value, item.table)"
|
||||
:addall="item.addall"
|
||||
:addnone="item.addnone"
|
||||
:tablesel="
|
||||
item.type === costanti.FieldType.select_by_server
|
||||
? item.tablesel
|
||||
: ''
|
||||
"
|
||||
:pickup="item.type === costanti.FieldType.select_by_server"
|
||||
label-color="primary"
|
||||
class="combowidth"
|
||||
color="primary"
|
||||
:icon_alternative="item.icon"
|
||||
:optval="fieldsTable.getKeyByTable(item.table)"
|
||||
:optlab="fieldsTable.getLabelByTable(item.table)"
|
||||
:options="valoriopt(item, false)"
|
||||
:filter="item.filter"
|
||||
:filter_extra="item.filter_extra"
|
||||
:useinput="
|
||||
item.useinput &&
|
||||
item.type !== costanti.FieldType.select_by_server
|
||||
"
|
||||
>
|
||||
</CMySelect>
|
||||
|
||||
<!--<div v-if="item.type === costanti.FieldType.multiselect_by_server">
|
||||
item: {{ item}}
|
||||
</div>-->
|
||||
|
||||
<CMySelect
|
||||
v-if="
|
||||
item.type === costanti.FieldType.multiselect_by_server &&
|
||||
lengthopt(item, false) > 1
|
||||
"
|
||||
:col="fieldsTable.getColByColumns(mycolumns, item.key)"
|
||||
:multiselect_by_server="true"
|
||||
:label="labelcombo(item)"
|
||||
v-model:arrvalue="item.arrvalue"
|
||||
@update:arrvalue="searchval(item.arrvalue, item.table)"
|
||||
:addall="item.addall"
|
||||
:addnone="item.addnone"
|
||||
:tablesel="item.tablesel"
|
||||
:pickup="true"
|
||||
:param1="item.param1"
|
||||
label-color="primary"
|
||||
class="combowidth"
|
||||
color="primary"
|
||||
:icon_alternative="item.icon"
|
||||
:optval="fieldsTable.getKeyByTable(item.table)"
|
||||
:optlab="fieldsTable.getLabelByTable(item.table)"
|
||||
:filter="item.filter"
|
||||
:filter_extra="item.filter_extra"
|
||||
:options="valoriopt(item, false)"
|
||||
:useinput="true"
|
||||
>
|
||||
</CMySelect>
|
||||
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
v-if="item.type === costanti.FieldType.multiselect"
|
||||
v-model="item.arrvalue"
|
||||
label-color="primary"
|
||||
:label="labelcombo(item)"
|
||||
@update:model-value="searchval(item.arrvalue, item.table)"
|
||||
rounded
|
||||
dense
|
||||
outlined
|
||||
multiple
|
||||
options-dense
|
||||
emit-value
|
||||
map-options
|
||||
stack-label
|
||||
:useinput="item.useinput"
|
||||
:options="valoriopt(item, item.addall, item.addnone)"
|
||||
:filter="item.filter"
|
||||
class="combowidth"
|
||||
:option-value="fieldsTable.getKeyByTable(item.table)"
|
||||
>
|
||||
<template v-if="item.icon" v-slot:prepend>
|
||||
<q-icon :name="item.icon" />
|
||||
</template>
|
||||
<template
|
||||
v-if="item.arrvalue.length >= 1"
|
||||
v-slot:selected-item="scope"
|
||||
>
|
||||
<div
|
||||
v-if="
|
||||
scope.opt[fieldsTable.getLabelByTable(item.table)] ||
|
||||
(scope.opt && checkIfShowRec(scope.opt))
|
||||
"
|
||||
>
|
||||
<q-chip
|
||||
removable
|
||||
dense
|
||||
@remove="scope.removeAtIndex(scope.index)"
|
||||
v-if="checkIfShowRec(scope.opt)"
|
||||
color="white"
|
||||
text-color="mycol"
|
||||
class="q-my-none q-ml-xs q-mr-none"
|
||||
>
|
||||
<q-avatar
|
||||
color="primary"
|
||||
text-color="white"
|
||||
:icon="item.icon"
|
||||
size="12px"
|
||||
/>
|
||||
{{
|
||||
scope.opt[fieldsTable.getLabelByTable(item.table)] ||
|
||||
scope.opt
|
||||
}}
|
||||
</q-chip>
|
||||
</div>
|
||||
</template>
|
||||
<template
|
||||
v-slot:option="{ itemProps, opt, selected, toggleOption }"
|
||||
>
|
||||
<q-item v-bind="itemProps">
|
||||
<q-item-section>
|
||||
<q-item-label>{{
|
||||
opt[fieldsTable.getLabelByTable(item.table)]
|
||||
}}</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
<q-toggle
|
||||
:model-value="selected"
|
||||
@update:model-value="toggleOption(opt)"
|
||||
/>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</template>
|
||||
</q-select>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</q-slide-transition>
|
||||
|
||||
<div v-if="prop_search || canEdit">
|
||||
<div
|
||||
v-if="searchList && finder"
|
||||
class="row justify-evenly q-mb-sm q-mx-sm"
|
||||
>
|
||||
<q-btn
|
||||
dense
|
||||
label="Filtra Ricerca"
|
||||
color="positive"
|
||||
icon="fas fa-filter"
|
||||
@click="showfilter = !showfilter"
|
||||
><q-badge
|
||||
v-if="getNumFilterSelected()"
|
||||
color="red"
|
||||
floating
|
||||
transparent
|
||||
>
|
||||
{{ getNumFilterSelected() }}
|
||||
</q-badge>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
dense
|
||||
icon="add"
|
||||
color="primary"
|
||||
@click="createNewRecordDialog"
|
||||
/>
|
||||
|
||||
<q-btn
|
||||
dense
|
||||
color="orange"
|
||||
icon="fas fa-bell"
|
||||
label="Avvisami se..."
|
||||
@click="showNotification = !showNotification"
|
||||
></q-btn>
|
||||
</div>
|
||||
<div v-if="prop_search" class="q-mr-sm full-width">
|
||||
<q-input
|
||||
v-model="search"
|
||||
filled
|
||||
dense
|
||||
type="search"
|
||||
debounce="500"
|
||||
:hint="hint"
|
||||
label="Cerca"
|
||||
v-on:keyup.enter="doSearch"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="search" />
|
||||
</template>
|
||||
<template v-slot:after>
|
||||
<q-select
|
||||
v-if="prop_SortFieldsAvailable.length > 0"
|
||||
:behavior="'menu'"
|
||||
rounded
|
||||
outlined
|
||||
dense
|
||||
v-model="ordinam"
|
||||
:options="prop_SortFieldsAvailable"
|
||||
label="Ordinamento:"
|
||||
emit-value
|
||||
map-options
|
||||
style="min-width: 120px"
|
||||
>
|
||||
</q-select>
|
||||
<q-btn
|
||||
dense
|
||||
label=""
|
||||
color="primary"
|
||||
@click="doSearch"
|
||||
icon="fas fa-search"
|
||||
></q-btn>
|
||||
</template>
|
||||
</q-input>
|
||||
</div>
|
||||
|
||||
<q-space></q-space>
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
v-if="
|
||||
mytable &&
|
||||
pagination.rowsNumber > 0 &&
|
||||
(prop_search || canEdit) &&
|
||||
showCol &&
|
||||
myvertical === 0
|
||||
"
|
||||
v-model="colVisib"
|
||||
rounded
|
||||
outlined
|
||||
multiple
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$t('grid.columns')"
|
||||
emit-value
|
||||
map-options
|
||||
:options="mycolumns"
|
||||
option-value="name"
|
||||
@update:model-value="changeCol"
|
||||
>
|
||||
</q-select>
|
||||
</div>
|
||||
|
||||
<div v-if="pagination.rowsNumber === 1 && prop_search">
|
||||
{{ pagination.rowsNumber }} elemento trovato
|
||||
</div>
|
||||
<div v-if="pagination.rowsNumber > 1 && prop_search">
|
||||
{{ pagination.rowsNumber }} {{ labelElemFind }}
|
||||
</div>
|
||||
|
||||
<div v-if="choose_visutype && $q.screen.gt.xs" class="">
|
||||
<q-radio v-model="myvertical" :val="2" label="Lista" />
|
||||
<!--<q-radio v-if="mytable === toolsext.TAB" v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_GROUP"
|
||||
label="Scheda"
|
||||
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
|
||||
<q-radio v-else-if="mytable !== toolsext.TABMYGROUPS && !finder" v-model="myvertical"
|
||||
:val="costanti.VISUTABLE_SCHEDA_USER" slabel="Scheda"
|
||||
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>-->
|
||||
<q-radio
|
||||
v-if="$q.screen.gt.xs"
|
||||
v-model="myvertical"
|
||||
:val="0"
|
||||
label="Tabella"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<q-infinite-scroll
|
||||
ref="myinfscroll"
|
||||
v-if="shared_consts.VERTIC_SHOW_GRID.includes(myvertical) && !loading"
|
||||
:initial-index="0"
|
||||
@load="onLoadScroll"
|
||||
:offset="350"
|
||||
@@ -566,544 +213,6 @@
|
||||
</div>
|
||||
</template>
|
||||
</q-infinite-scroll>
|
||||
<q-table
|
||||
v-else
|
||||
:grid="shared_consts.VERTIC_SHOW_GRID.includes(myvertical)"
|
||||
:grid-header="
|
||||
shared_consts.VERTIC_SHOW_GRID.includes(myvertical) &&
|
||||
shared_consts.TABLES_WITH_SORTING.includes(mytable)
|
||||
"
|
||||
flat
|
||||
bordered
|
||||
class="my-sticky-header-table"
|
||||
:rows="serverData"
|
||||
:columns="mycolumns"
|
||||
:filter="myfilter"
|
||||
v-model:pagination="pagination"
|
||||
@request="onRequest"
|
||||
virtual-scroll
|
||||
:row-key="colkey"
|
||||
:loading="loading"
|
||||
@selection="selectionclick"
|
||||
binary-state-sort
|
||||
:visible-columns="colVisib"
|
||||
:no-data-label="nodataLabel"
|
||||
:no-results-label="noresultLabel"
|
||||
:selected-rows-label="getSelectedString"
|
||||
selection="single"
|
||||
v-model:selected="selected"
|
||||
>
|
||||
<template
|
||||
v-if="
|
||||
!(
|
||||
myvertical === costanti.VISUTABLE_SCHEDA_USER ||
|
||||
myvertical === 2 ||
|
||||
myvertical === costanti.VISUTABLE_SCHEDA_GROUP
|
||||
)
|
||||
"
|
||||
v-slot:header="props"
|
||||
>
|
||||
<q-tr :props="props">
|
||||
<q-th> </q-th>
|
||||
<q-th
|
||||
v-for="col in props.cols"
|
||||
:key="col.name"
|
||||
:props="props"
|
||||
class="text-italic text-weight-bold"
|
||||
>
|
||||
<span
|
||||
v-if="col && showColCheck(col, tools.TIPOVIS_SHOW_RECORD, true)"
|
||||
>
|
||||
{{ col.label }}
|
||||
</span>
|
||||
</q-th>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-else v-slot:header="props">
|
||||
<q-tr :props="props">
|
||||
<q-th> </q-th>
|
||||
|
||||
<span v-for="col in props.cols" :key="col.name">
|
||||
<q-th
|
||||
v-if="col.sortable"
|
||||
:key="col.name"
|
||||
:props="props"
|
||||
class="text-italic text-weight-bold"
|
||||
>
|
||||
<span>
|
||||
{{ col.label }}
|
||||
</span>
|
||||
</q-th>
|
||||
</span>
|
||||
</q-tr>
|
||||
</template>
|
||||
|
||||
<template
|
||||
v-slot:top-right
|
||||
v-if="tablesList || arrfilters || enableExport"
|
||||
>
|
||||
<span style="display: none">{{ (actual = null) }}</span>
|
||||
|
||||
<q-btn
|
||||
v-if="enableExport"
|
||||
color="primary"
|
||||
icon-right="archive"
|
||||
:label="t('export.csv')"
|
||||
no-caps
|
||||
@click="exportTable"
|
||||
/>
|
||||
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
v-if="tablesList"
|
||||
v-model="tablesel"
|
||||
rounded
|
||||
outlined
|
||||
dense
|
||||
:options="tablesList"
|
||||
:display-value="mytitle"
|
||||
emit-value
|
||||
@update:model-value="changeTable"
|
||||
>
|
||||
</q-select>
|
||||
|
||||
<div class="row">
|
||||
<q-toggle
|
||||
v-for="(filt, index) of arrfilters"
|
||||
:key="index"
|
||||
v-model="myfilterand"
|
||||
:disable="filt.hide"
|
||||
:val="filt.value"
|
||||
:label="filt.label"
|
||||
>
|
||||
</q-toggle>
|
||||
</div>
|
||||
|
||||
<!--<q-input borderless dense debounce="300" v-model="filter" placeholder="Search">
|
||||
<template v-slot:append>
|
||||
<q-icon name="search" />
|
||||
</template>
|
||||
</q-input>-->
|
||||
</template>
|
||||
|
||||
<template v-slot:top-left>
|
||||
<div
|
||||
v-if="searchList"
|
||||
:class="$q.screen.lt.sm ? `` : `row` + ` text-blue `"
|
||||
>
|
||||
<span v-for="(item, index) in searchList" :key="index">
|
||||
<!--<div class="text-center q-my-xs" v-if="(item.type === costanti.FieldType.separator)">
|
||||
<q-btn size="sm" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'" label="Filtri Avanzati" @click="showfilteradv = !showfilteradv"></q-btn>
|
||||
</div>-->
|
||||
|
||||
<CMySelect
|
||||
:col="fieldsTable.getColByColumns(mycolumns, item.key)"
|
||||
v-if="
|
||||
item.type === costanti.FieldType.select ||
|
||||
item.type === costanti.FieldType.select_by_server
|
||||
"
|
||||
:label="labelcombo(item)"
|
||||
v-model:value="item.value"
|
||||
@update:value="searchval(item.value, item.table)"
|
||||
:addall="item.addall"
|
||||
:addnone="item.addnone"
|
||||
:tablesel="
|
||||
item.type === costanti.FieldType.select_by_server
|
||||
? item.tablesel
|
||||
: ''
|
||||
"
|
||||
:pickup="item.type === costanti.FieldType.select_by_server"
|
||||
label-color="primary"
|
||||
class="combowidth"
|
||||
color="primary"
|
||||
:icon_alternative="item.icon"
|
||||
:optval="fieldsTable.getKeyByTable(item.table)"
|
||||
:optlab="fieldsTable.getLabelByTable(item.table)"
|
||||
:options="valoriopt(item, false)"
|
||||
:filter="item.filter"
|
||||
:filter_extra="item.filter_extra"
|
||||
:useinput="
|
||||
item.useinput &&
|
||||
item.type !== costanti.FieldType.select_by_server
|
||||
"
|
||||
>
|
||||
</CMySelect>
|
||||
|
||||
<!--<div v-if="item.type === costanti.FieldType.multiselect_by_server">
|
||||
item: {{ item}}
|
||||
</div>-->
|
||||
|
||||
<CMySelect
|
||||
v-if="item.type === costanti.FieldType.multiselect_by_server"
|
||||
:col="fieldsTable.getColByColumns(mycolumns, item.key)"
|
||||
:multiselect_by_server="true"
|
||||
:label="labelcombo(item)"
|
||||
v-model:arrvalue="item.arrvalue"
|
||||
@update:arrvalue="searchval(item.arrvalue, item.table)"
|
||||
:addall="item.addall"
|
||||
:addnone="item.addnone"
|
||||
:tablesel="item.tablesel"
|
||||
:pickup="true"
|
||||
:param1="item.param1"
|
||||
label-color="primary"
|
||||
class="combowidth"
|
||||
color="primary"
|
||||
:icon_alternative="item.icon"
|
||||
:optval="fieldsTable.getKeyByTable(item.table)"
|
||||
:optlab="fieldsTable.getLabelByTable(item.table)"
|
||||
:filter="item.filter"
|
||||
:filter_extra="item.filter_extra"
|
||||
:options="valoriopt(item, false)"
|
||||
:useinput="true"
|
||||
>
|
||||
</CMySelect>
|
||||
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
v-if="item.type === costanti.FieldType.multiselect"
|
||||
v-model="item.arrvalue"
|
||||
label-color="primary"
|
||||
:label="labelcombo(item)"
|
||||
@update:model-value="searchval(item.arrvalue, item.table)"
|
||||
rounded
|
||||
dense
|
||||
outlined
|
||||
multiple
|
||||
options-dense
|
||||
emit-value
|
||||
map-options
|
||||
stack-label
|
||||
:useinput="item.useinput"
|
||||
:options="valoriopt(item, item.addall, item.addnone)"
|
||||
:filter="item.filter"
|
||||
class="combowidth"
|
||||
:option-value="fieldsTable.getKeyByTable(item.table)"
|
||||
>
|
||||
<template v-if="item.icon" v-slot:prepend>
|
||||
<q-icon :name="item.icon" />
|
||||
</template>
|
||||
<template
|
||||
v-if="item.arrvalue.length >= 1"
|
||||
v-slot:selected-item="scope"
|
||||
>
|
||||
<div
|
||||
v-if="
|
||||
scope.opt[fieldsTable.getLabelByTable(item.table)] ||
|
||||
(scope.opt && checkIfShowRec(scope.opt))
|
||||
"
|
||||
>
|
||||
<q-chip
|
||||
removable
|
||||
dense
|
||||
@remove="scope.removeAtIndex(scope.index)"
|
||||
v-if="checkIfShowRec(scope.opt)"
|
||||
color="white"
|
||||
text-color="mycol"
|
||||
class="q-my-none q-ml-xs q-mr-none"
|
||||
>
|
||||
<q-avatar
|
||||
color="primary"
|
||||
text-color="white"
|
||||
:icon="item.icon"
|
||||
size="12px"
|
||||
/>
|
||||
{{
|
||||
scope.opt[fieldsTable.getLabelByTable(item.table)] ||
|
||||
scope.opt
|
||||
}}
|
||||
</q-chip>
|
||||
</div>
|
||||
</template>
|
||||
<template
|
||||
v-slot:option="{ itemProps, opt, selected, toggleOption }"
|
||||
>
|
||||
<q-item v-bind="itemProps">
|
||||
<q-item-section>
|
||||
<q-item-label>{{
|
||||
opt[fieldsTable.getLabelByTable(item.table)]
|
||||
}}</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
<q-toggle
|
||||
:model-value="selected"
|
||||
@update:model-value="toggleOption(opt)"
|
||||
/>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</template>
|
||||
</q-select>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="prop_search || canEdit"
|
||||
class="row justify-center vertical-middle"
|
||||
>
|
||||
<div v-if="prop_search" class="q-mr-sm full-width">
|
||||
<q-input
|
||||
v-model="search"
|
||||
filled
|
||||
dense
|
||||
type="search"
|
||||
debounce="500"
|
||||
:hint="hint"
|
||||
label="Cerca"
|
||||
v-on:keyup.enter="doSearch"
|
||||
>
|
||||
<template v-slot:after>
|
||||
<q-btn
|
||||
v-if="mytable"
|
||||
dense
|
||||
label=""
|
||||
color="primary"
|
||||
@click="refresh"
|
||||
icon="search"
|
||||
></q-btn>
|
||||
</template>
|
||||
</q-input>
|
||||
</div>
|
||||
|
||||
<q-space></q-space>
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
v-if="
|
||||
mytable &&
|
||||
pagination.rowsNumber > 0 &&
|
||||
(prop_search || canEdit) &&
|
||||
showCol &&
|
||||
myvertical === 0
|
||||
"
|
||||
v-model="colVisib"
|
||||
rounded
|
||||
outlined
|
||||
multiple
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$t('grid.columns')"
|
||||
emit-value
|
||||
map-options
|
||||
:options="mycolumns"
|
||||
option-value="name"
|
||||
@update:model-value="changeCol"
|
||||
>
|
||||
</q-select>
|
||||
</div>
|
||||
|
||||
<div v-if="pagination.rowsNumber === 1 && prop_search">
|
||||
{{ pagination.rowsNumber }} elemento trovato
|
||||
</div>
|
||||
<div v-if="pagination.rowsNumber > 1 && prop_search">
|
||||
{{ pagination.rowsNumber }} elementi trovati
|
||||
</div>
|
||||
|
||||
<div v-if="choose_visutype && $q.screen.gt.xs" class="">
|
||||
<q-radio v-model="myvertical" :val="2" label="Lista" />
|
||||
<!--<q-radio v-if="mytable === toolsext.TAB" v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_GROUP"
|
||||
label="Scheda"
|
||||
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
|
||||
<q-radio v-else-if="mytable !== toolsext.TABMYGROUPS && !finder" v-model="myvertical"
|
||||
:val="costanti.VISUTABLE_SCHEDA_USER" slabel="Scheda"
|
||||
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>-->
|
||||
<q-radio
|
||||
v-if="$q.screen.gt.xs"
|
||||
v-model="myvertical"
|
||||
:val="0"
|
||||
label="Tabella"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-slot:body="props">
|
||||
<q-tr :props="props" class="trclass">
|
||||
<q-td auto-width class="tdclass">
|
||||
<q-checkbox dense v-model="props.selected"></q-checkbox>
|
||||
</q-td>
|
||||
<q-td v-for="col in mycolumns" :key="col.name" :props="props">
|
||||
<div
|
||||
v-if="
|
||||
showColCheck(col, tools.TIPOVIS_SHOW_RECORD, true, 1, props.row)
|
||||
"
|
||||
class="tdclass"
|
||||
>
|
||||
<div :class="getclrow(props.row)">
|
||||
<CMyPopupEdit
|
||||
:table="mytable"
|
||||
:canEdit="canEdit"
|
||||
:canModify="
|
||||
tools.canModifyThisRec(props.row, tablesel) || editOn
|
||||
"
|
||||
:disable="disabilita()"
|
||||
:mycol="col"
|
||||
v-model:row="props.row"
|
||||
:field="col.field"
|
||||
:subfield="col.subfield"
|
||||
minuteinterval="1"
|
||||
@save="SaveValue"
|
||||
@show="selItem(props.row, col)"
|
||||
@showandsave="showandsel"
|
||||
>
|
||||
</CMyPopupEdit>
|
||||
</div>
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td v-for="col in mycolumns" :key="col.name" :props="props">
|
||||
<div v-if="colExtra.includes(col.name)" class="tdclass">
|
||||
<div v-if="col.action && visCol(col)">
|
||||
<q-btn
|
||||
flat
|
||||
round
|
||||
color="red"
|
||||
:icon="col.icon"
|
||||
size="sm"
|
||||
@click="clickFunz(props.row, col)"
|
||||
></q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</q-td>
|
||||
</q-tr>
|
||||
<br />
|
||||
</template>
|
||||
|
||||
<template v-slot:item="props">
|
||||
<div
|
||||
class="q-pa-xs col-xs-12 col-sm-6 col-md-4 col-lg-3"
|
||||
:style="props.selected ? 'transform: scale(0.95);' : ''"
|
||||
>
|
||||
<q-card
|
||||
:class="
|
||||
props.selected
|
||||
? 'bg-grey-2 my-card-withshadow no-padding'
|
||||
: 'my-card-withshadow no-padding'
|
||||
"
|
||||
style="
|
||||
background: radial-gradient(circle, #ffffff 0%, #bbddff 100%);
|
||||
"
|
||||
>
|
||||
<q-bar
|
||||
v-if="
|
||||
!visuinpage &&
|
||||
(tools.canModifyThisRec(props.row, tablesel) || editOn)
|
||||
"
|
||||
dense
|
||||
class="bg-primary text-white full-height"
|
||||
>
|
||||
<q-badge
|
||||
v-if="props.row['adType']"
|
||||
:color="fieldsTable.getColByAdType(props.row['adType'])"
|
||||
>
|
||||
{{
|
||||
fieldsTable.getValByTabAndId(
|
||||
tablesel,
|
||||
'adType',
|
||||
props.row['adType']
|
||||
)
|
||||
}}
|
||||
<q-icon
|
||||
:name="fieldsTable.getIconByAdType(props.row['adType'])"
|
||||
color="white"
|
||||
class="q-ml-xs"
|
||||
/>
|
||||
</q-badge>
|
||||
|
||||
<q-space />
|
||||
|
||||
<q-btn
|
||||
v-if="tools.canModifyThisRec(props.row, tablesel) || editOn"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="fas fa-pencil-alt"
|
||||
size="sm"
|
||||
@click="
|
||||
clickFunz(
|
||||
props.row,
|
||||
prop_mycolumns.find(
|
||||
(rec) => rec.action === lists.MenuAction.CAN_EDIT_TABLE
|
||||
)
|
||||
)
|
||||
"
|
||||
></q-btn>
|
||||
<q-btn
|
||||
v-if="tools.canModifyThisRec(props.row, tablesel) || editOn"
|
||||
flat
|
||||
round
|
||||
color="white"
|
||||
icon="fas fa-trash-alt"
|
||||
size="sm"
|
||||
@click="
|
||||
clickFunz(
|
||||
props.row,
|
||||
prop_mycolumns.find(
|
||||
(rec) => rec.action === lists.MenuAction.DELETE_RECTABLE
|
||||
)
|
||||
)
|
||||
"
|
||||
></q-btn>
|
||||
</q-bar>
|
||||
<!--<q-toolbar dense v-if="col_title" class="bg-primary text-white centeritems">
|
||||
<q-toolbar-title>
|
||||
{{ props.row[col_title] }}
|
||||
</q-toolbar-title>
|
||||
</q-toolbar>-->
|
||||
|
||||
<q-card-section class="">
|
||||
<q-list dense>
|
||||
<div v-for="col in mycolumns" :key="col.name">
|
||||
<q-item
|
||||
v-if="
|
||||
showColCheck(
|
||||
col,
|
||||
tools.TIPOVIS_SHOW_RECORD,
|
||||
false,
|
||||
tools.getValue(props.row, col.field, col.subfield)
|
||||
)
|
||||
"
|
||||
:class="clByCol(col)"
|
||||
class="riduci_pad"
|
||||
>
|
||||
<q-item-section avatar v-if="col.icon">
|
||||
<q-item-label class="q-table__col">
|
||||
<q-icon :name="col.icon"></q-icon>
|
||||
</q-item-label>
|
||||
</q-item-section>
|
||||
|
||||
<q-item-section avatar v-if="visuIntestazCol(col)">
|
||||
<q-item-label class="q-table__col">{{
|
||||
col.label
|
||||
}}</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<div class="tdclass">
|
||||
<div :class="getclrow(props.row)">
|
||||
<CMyPopupEdit
|
||||
:table="mytable"
|
||||
:canEdit="canEdit"
|
||||
:canModify="
|
||||
tools.canModifyThisRec(props.row, tablesel) ||
|
||||
editOn
|
||||
"
|
||||
:disable="disabilita()"
|
||||
:mycol="col"
|
||||
v-model:row="props.row"
|
||||
:field="col.field"
|
||||
:subfield="col.subfield"
|
||||
minuteinterval="1"
|
||||
@save="SaveValue"
|
||||
@show="selItem(props.row, col)"
|
||||
@showandsave="showandsel"
|
||||
>
|
||||
</CMyPopupEdit>
|
||||
</div>
|
||||
</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</div>
|
||||
</q-list>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
</template>
|
||||
</q-table>
|
||||
|
||||
<q-page-sticky
|
||||
v-if="mytable && butt_modif_new && !hidetitleIfEmpty"
|
||||
|
||||
@@ -22,7 +22,7 @@ export default defineComponent({
|
||||
required: true,
|
||||
},
|
||||
prop_myrec: {
|
||||
type: Object as PropType<any | null>,
|
||||
type: Object as PropType<any>,
|
||||
required: false,
|
||||
default: null,
|
||||
},
|
||||
@@ -46,7 +46,7 @@ export default defineComponent({
|
||||
const { t } = useI18n()
|
||||
const $router = useRouter()
|
||||
|
||||
const myrec = ref(<any | null>null)
|
||||
const myrec = ref(<any>null)
|
||||
|
||||
const visupage = ref(false)
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ export default defineComponent({
|
||||
required: true,
|
||||
},
|
||||
prop_myrec: {
|
||||
type: Object as PropType<any | null>,
|
||||
type: Object as PropType<any>,
|
||||
required: false,
|
||||
default: null,
|
||||
},
|
||||
@@ -40,7 +40,7 @@ export default defineComponent({
|
||||
const { t } = useI18n()
|
||||
// const $router = useRouter()
|
||||
|
||||
const circuit = ref(<any | null>null)
|
||||
const circuit = ref(<any>null)
|
||||
|
||||
const showingtooltip = ref(false)
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ export default defineComponent({
|
||||
required: true,
|
||||
},
|
||||
prop_myrec: {
|
||||
type: Object as PropType<any | null>,
|
||||
type: Object as PropType<any>,
|
||||
required: false,
|
||||
default: null,
|
||||
},
|
||||
@@ -34,7 +34,7 @@ export default defineComponent({
|
||||
const { t } = useI18n()
|
||||
// const $router = useRouter()
|
||||
|
||||
const myrec = ref(<any | null>null)
|
||||
const myrec = ref(<any>null)
|
||||
|
||||
const visupage = ref(false)
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
|
||||
@@ -160,13 +160,15 @@ export default function () {
|
||||
function getNotifText($t: any, notif: INotif) {
|
||||
|
||||
let descr = notif.descr
|
||||
let status = notif.status
|
||||
|
||||
if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_FRIENDS) {
|
||||
if (notif.status === shared_consts.StatusNotifs.STATUS_FRIENDS_ACCEPTED) {
|
||||
if (status === shared_consts.StatusNotifs.STATUS_FRIENDS_ACCEPTED) {
|
||||
descr += '<br><em>' + $t('friends.accepted') + '</em>'
|
||||
} else if (notif.status === shared_consts.StatusNotifs.STATUS_FRIENDS_REFUSED) {
|
||||
} else if (status === shared_consts.StatusNotifs.STATUS_FRIENDS_REFUSED) {
|
||||
descr += '<br><em>' + $t('friends.refused') + '</em>'
|
||||
}
|
||||
|
||||
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_CIRCUITS) {
|
||||
if (notif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ) {
|
||||
// console.log('notif.extrarec', notif.extrarec)
|
||||
@@ -175,11 +177,11 @@ export default function () {
|
||||
}
|
||||
}
|
||||
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_HANDSHAKE) {
|
||||
if (notif.status === shared_consts.StatusNotifs.STATUS_HANDSHAKE_ACCEPTED) {
|
||||
if (status === shared_consts.StatusNotifs.STATUS_HANDSHAKE_ACCEPTED) {
|
||||
descr += '<br><em>' + $t('handshake.accepted') + '</em>'
|
||||
}
|
||||
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_FAVORITE) {
|
||||
// if (notif.status === shared_consts.StatusNotifs.STATUS_HANDSHAKE_ACCEPTED) {
|
||||
// if (status === shared_consts.StatusNotifs.STATUS_HANDSHAKE_ACCEPTED) {
|
||||
// descr += '<br><em>' + $t('handshake.accepted') + '</em>'
|
||||
// }
|
||||
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_CIRCUITS) {
|
||||
@@ -190,15 +192,15 @@ export default function () {
|
||||
}
|
||||
}
|
||||
} else if (notif.typedir === shared_consts.TypeNotifs.TYPEDIR_GROUPS) {
|
||||
if (notif.status === shared_consts.GroupsNotifs.STATUS_GROUPS_ACCEPTED) {
|
||||
if (status === shared_consts.GroupsNotifs.STATUS_GROUPS_ACCEPTED) {
|
||||
descr += '<br><em>' + $t('groups.accepted') + '</em>'
|
||||
} else if (notif.status === shared_consts.GroupsNotifs.STATUS_GROUPS_REFUSED) {
|
||||
} else if (status === shared_consts.GroupsNotifs.STATUS_GROUPS_REFUSED) {
|
||||
descr += '<br><em>' + $t('groups.refused') + '</em>'
|
||||
} else if (notif.status === shared_consts.GroupsNotifs.STATUS_GROUPS_BLOCKED) {
|
||||
} else if (status === shared_consts.GroupsNotifs.STATUS_GROUPS_BLOCKED) {
|
||||
descr += '<br><em>' + $t('groups.blocked') + '</em>'
|
||||
} else if (notif.status === shared_consts.GroupsNotifs.STATUS_GROUPS_DELETED) {
|
||||
} else if (status === shared_consts.GroupsNotifs.STATUS_GROUPS_DELETED) {
|
||||
descr += '<br><em>' + $t('groups.deleted') + '</em>'
|
||||
} else if (notif.status === shared_consts.GroupsNotifs.STATUS_GROUPS_REMOVED) {
|
||||
} else if (status === shared_consts.GroupsNotifs.STATUS_GROUPS_REMOVED) {
|
||||
descr += '<br><em>' + $t('groups.removed') + '</em>'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ export interface INotData {
|
||||
receiveRislist?: IUserFields[]
|
||||
receiveRislistgroup?: IMyGroup[]
|
||||
strettelist?: IUserFields[]
|
||||
checkuser?: ICheckUser | any
|
||||
checkuser?: any // ICheckUser
|
||||
numreg_untilday?: number
|
||||
reg_daily?: string
|
||||
imbarcati_daily?: string
|
||||
@@ -588,7 +588,7 @@ export interface ITimeLineEntry {
|
||||
}
|
||||
|
||||
export interface ITimeLineMain {
|
||||
titlemain: IAllLang | any
|
||||
titlemain: any
|
||||
body: ITimeLineEntry[]
|
||||
}
|
||||
|
||||
@@ -621,9 +621,9 @@ export interface IGallery {
|
||||
}
|
||||
|
||||
export interface IColl {
|
||||
title: IAllLang | any
|
||||
title: any // IAllLang
|
||||
date?: string
|
||||
subtitle?: IAllLang | any
|
||||
subtitle?: any //IAllLang
|
||||
img: string
|
||||
img2?: string
|
||||
linkagg?: string
|
||||
@@ -635,7 +635,7 @@ export interface IColl {
|
||||
}
|
||||
|
||||
export interface ICollaborations {
|
||||
withwhom_title: IAllLang | any
|
||||
withwhom_title: any
|
||||
list: IColl[]
|
||||
}
|
||||
|
||||
@@ -827,7 +827,7 @@ export interface IDataToSet {
|
||||
table?: string
|
||||
fieldsvalue?: any
|
||||
unset?: any,
|
||||
notifBot?: any | null
|
||||
notifBot?: any
|
||||
tipomsg?: number
|
||||
invitante_username?: string
|
||||
ind_order?: any
|
||||
|
||||
@@ -86,7 +86,7 @@ export interface INotif {
|
||||
title: string
|
||||
descr: string
|
||||
datenotif?: Date
|
||||
status?: StatusMessage
|
||||
status?: number
|
||||
openUrl?: string
|
||||
read?: boolean
|
||||
tablerec?: string
|
||||
|
||||
@@ -1084,6 +1084,7 @@ const msg_it = {
|
||||
follow_groups: 'Gruppi di cui fai parte',
|
||||
create_group: 'Crea Gruppo',
|
||||
friends: 'Amici',
|
||||
iscritti: 'Iscritti',
|
||||
bacheca: 'Bacheca',
|
||||
services: 'Servizi',
|
||||
handshake: 'Rapporti di Fiducia',
|
||||
@@ -1392,7 +1393,7 @@ const msg_it = {
|
||||
home: 'Home',
|
||||
groups: 'Gruppi',
|
||||
eventi: 'Eventi',
|
||||
friends: 'Amici',
|
||||
friends: 'Iscritti',
|
||||
bookings: 'Prenotaz.',
|
||||
profile: 'Profilo',
|
||||
circuits: 'Circuiti',
|
||||
|
||||
@@ -91,7 +91,7 @@ export const useCalendarStore = defineStore('CalendarStore', {
|
||||
ris = myarr.reduce((sum, bookedevent) => sum + bookedevent.numpeopleDinnerShared!, 0)
|
||||
}
|
||||
|
||||
return ris!
|
||||
return ris ? ris : 0
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -46,9 +46,9 @@ import { PayloadMessageTypes } from '@/common'
|
||||
import { useNotifStore } from '@store/NotifStore'
|
||||
|
||||
export interface INotify {
|
||||
color?: string | 'primary'
|
||||
color?: string
|
||||
textColor?: string
|
||||
icon?: string | ''
|
||||
icon?: string
|
||||
}
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
@@ -159,7 +159,7 @@ export const toolsext = {
|
||||
// this.$q.lang.set(mylang)
|
||||
},
|
||||
|
||||
getValDb(keystr: string, serv: boolean, def?: any, table?: string, subkey?: string, id?: any, idmain?: any, indrec?: number, subsubkey?: string, specialField?: ISpecialField): any | undefined {
|
||||
getValDb(keystr: string, serv: boolean, def?: any, table?: string, subkey?: string, id?: any, idmain?: any, indrec?: number, subsubkey?: string, specialField?: ISpecialField): any {
|
||||
|
||||
const todos = useTodoStore()
|
||||
const userStore = useUserStore()
|
||||
|
||||
@@ -31,6 +31,7 @@ export const useNotifStore = defineStore('NotifStore', {
|
||||
|
||||
},
|
||||
|
||||
|
||||
getnotifs_coinsreq: (mystate: INotifState) => (): INotif[] => {
|
||||
const ctrec = (mystate.last_notifs) ? mystate.last_notifs.slice(0, 20).filter((rec) => rec.typedir === shared_consts.TypeNotifs.TYPEDIR_CIRCUITS && rec.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SENDCOINSREQ && rec.status === shared_consts.CircuitsNotif.STATUS_NONE) : []
|
||||
return (ctrec)
|
||||
|
||||
@@ -270,7 +270,7 @@ export const useProjectStore = defineStore({
|
||||
idparent = tipovisuproj.id_parent!
|
||||
proj = tipovisuproj
|
||||
}
|
||||
return tipovisuproj!.tipovisu
|
||||
return tipovisuproj ? tipovisuproj.tipovisu : null
|
||||
},
|
||||
|
||||
getarrByCategory(category: string) {
|
||||
|
||||
@@ -385,7 +385,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
}
|
||||
},
|
||||
|
||||
getValueSettingsByKey(key: any, serv: any): any | undefined {
|
||||
getValueSettingsByKey(key: any, serv: any): any {
|
||||
const myrec = this.getrecSettingsByKey(key, serv)
|
||||
// console.log('getValueSettingsByKey', myrec, 'key=', key, 'srv=', serv)
|
||||
if (myrec) {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
prop_colkey="_id"
|
||||
col_title="username"
|
||||
:vertical="costanti.VISUTABLE_LISTA"
|
||||
nodataLabel=" "
|
||||
nodataLabel="Nessuna persona trovata con questo nome, cognome o username"
|
||||
:prop_search="true"
|
||||
:prop_showfilter="true"
|
||||
hint="Scegli una Regione o Provincia oppure digita il nome o Username"
|
||||
|
||||
Reference in New Issue
Block a user