Nuova Grafica , Nuovi settori e categorie, Beni e Servizi.

Nella Nazionalità non c'è Repubblica di San Marino
Aggiungere Bottone di "Chiudi" nella visualizzazione della Card
cerca persona, mettere solo una parte della parola da cercare...
Gruppi sistemare il bottone di Nuovo e controllare altro..
adTypeBacheca per la tabella mybachecas (Evento, Offro, Cerco)
Semplificare le CATEGORIE ?! o togliere la Specializzazione?  (con Giovanna)
This commit is contained in:
paoloar77
2022-02-19 22:02:54 +01:00
parent 9161909003
commit 1aea88a1fa
61 changed files with 1669 additions and 399 deletions

View File

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

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.2.5"
APP_VERSION="0.2.6"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="1"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -392,11 +392,22 @@ const baseroutes: IListRoutes[] = [
},
{
active: true,
order: 15,
path: '/work',
order: 12,
path: '/goods',
materialIcon: 'fas fa-briefcase',
name: 'mypages.work',
component: () => import('@/root/work/work.vue'),
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/services',
materialIcon: 'fas fa-briefcase',
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,

View File

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

View File

@@ -392,11 +392,22 @@ const baseroutes: IListRoutes[] = [
},
{
active: true,
order: 15,
path: '/work',
order: 12,
path: '/goods',
materialIcon: 'fas fa-briefcase',
name: 'mypages.work',
component: () => import('@/root/work/work.vue'),
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/services',
materialIcon: 'fas fa-briefcase',
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.2.5"
APP_VERSION="0.2.6"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="12"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -392,11 +392,22 @@ const baseroutes: IListRoutes[] = [
},
{
active: true,
order: 15,
path: '/work',
order: 12,
path: '/goods',
materialIcon: 'fas fa-briefcase',
name: 'mypages.work',
component: () => import('@/root/work/work.vue'),
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/services',
materialIcon: 'fas fa-briefcase',
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,

View File

@@ -41,10 +41,9 @@ export const shared_consts = {
FILTER_TO_MAKE_MEMBERSHIP_CARD: 524288,
FILTER_MEMBERSHIP_CARD_OK: 1048576,
FILTER_MYSKILL_SKILL: 1,
OPTIONS_SEARCH_ONLY_FULL_WORDS: 1,
OPTIONS_SEARCH_USER_ONLY_FULL_WORDS: 2,
OPTIONS_SEARCH_USER_ALL_WORDS: 4,
FRIENDSCMD: {
SETTRUST: 121,
@@ -86,21 +85,24 @@ export const shared_consts = {
TABLES_MYSKILLS: 'myskills',
TABLES_MYBACHECAS: 'mybachecas',
TABLES_MYGOODS: 'mygoods',
TABLES_ENABLE_GETREC_BYID: ['mybachecas'],
TABLES_USER_INCLUDE_MY: ['mygroups'],
TABLES_GETCOMPLETEREC: ['myskills'],
TABLES_PERM_NEWREC: ['skills', 'subskills', 'mygroups'],
TABLES_REC_ID: ['skills', 'subskills'],
TABLES_GETCOMPLETEREC: ['myskills', 'mybachecas', 'mygoods'],
TABLES_PERM_NEWREC: ['skills', 'goods', 'subskills', 'mygroups'],
TABLES_REC_ID: ['skills', 'goods', 'subskills'],
TABLES_ID_NUMBER: ['permissions', 'levels', 'adtypes', 'statusSkills', 'sectors', 'catgrps', 'skills', 'subskills', 'cities', 'provinces', 'myskills', 'mybachecas', 'mygroups'],
TABLES_USER_ID: ['myskills', 'mybachecas'],
TABLES_UPDATE_LASTMODIFIED: ['myskills', 'mybots'],
TABLES_FINDER: ['myskills', 'mybachecas', 'mygroups'],
TABLES_VISU_CMYSRECCARD: ['myskills', 'mybachecas'],
TABLES_ID_NUMBER: ['permissions', 'levels', 'adtypes', 'adtypegoods', 'statusSkills', 'sectors', 'sectorgoods', 'catgrps', 'skills', 'subskills', 'cities', 'provinces',
'myskills', 'mybachecas', 'mygoods', 'mygroups'],
TABLES_USER_ID: ['myskills', 'mybachecas', 'mygoods'],
TABLES_UPDATE_LASTIFIED: ['myskills', 'mybachecas', 'mygoods', 'mybots'],
TABLES_FINDER: ['myskills', 'mybachecas', 'mygoods', 'mygroups'],
TABLES_VISU_CMYSRECCARD: ['myskills', 'mybachecas', 'mygoods'],
TABLES_PERM_CHANGE_FOR_USERS: ['myskills', 'mybachecas'],
TABLES_VISU_LISTA_USER: ['myskills', 'mybachecas', 'users'],
TABLES_NOT_SHOW_IF_USERNAME: ['myskills', 'mybachecas'],
TABLES_PERM_CHANGE_FOR_USERS: ['myskills', 'mybachecas', 'mygoods'],
TABLES_VISU_LISTA_USER: ['myskills', 'mybachecas', 'mygoods', 'users'],
VISIB_ALL: 0,
VISIB_ONLYIF_VERIFIED: 1,
@@ -122,8 +124,9 @@ export const shared_consts = {
PROVINCE: 1,
COMUNI: 2,
CITIES_SERVER: 3,
CAT_TXT: 4,
CAT_SKILL_TXT: 4,
CAT_NO_SPAZI: 5,
CAT_GOODS_TXT: 10,
},
BotType: [
@@ -145,6 +148,21 @@ export const shared_consts = {
},
],
Shippings: [
{
label: 'Di Persona',
value: 1,
},
{
label: 'Tramite Corriere',
value: 2,
},
{
label: 'Tramite Posta',
value: 3,
},
],
Provinces: [
{
label: 'Agrigento',

View File

@@ -0,0 +1,38 @@
.my-text {
font-size: 1rem;
font-weight: bold;
line-height: 1.5rem;
letter-spacing: 0.0125em;
}
.my-text_3 {
font-size: 1rem;
font-weight: bold;
line-height: 1.5rem;
letter-spacing: 0.0125em;
}
.my-text-small {
font-size: 1rem;
line-height: 1rem;
letter-spacing: 0.0125em;
}
.mybox_3 {
min-width: 100px;
min-height: 100px;
width: 100%;
}
.mybox {
min-width: 125px;
min-height: 137px;
width: 100%;
}
.mybox_small {
min-width: 110px;
width: 100%;
}

View File

@@ -29,6 +29,16 @@ export default defineComponent({
required: false,
default: 'grey'
},
small: {
type: Boolean,
required: false,
default: false
},
numcol: {
type: Number,
required: false,
default: 3
},
},
setup(props, { emit }) {

View File

@@ -1,10 +1,26 @@
<template>
<div class="q-pa-xs col-xs-6 col-sm-6 col-md-4 col-lg-2">
<div v-if="numcol === 3" class="col-xs-4 col-sm-4 col-md-3 col-lg-2">
<div class="q-ma-xs">
<q-btn v-if="!small" class="mybox_3" :color="color" rounded :to="to" v-bind="$attrs">
<q-icon class="q-ma-sm" :name="icon"/>
<div class="q-ma-sm my-text_3">{{ label }}</div>
</q-btn>
<q-btn v-if="small" class="mybox_small" :color="color" rounded :to="to" v-bind="$attrs">
<q-icon class="q-ma-xs" :name="icon" size="sm"/>
<div class="q-ma-xs my-text-small">{{ label }}</div>
</q-btn>
</div>
</div>
<div v-else class="col-xs-6 col-sm-6 col-md-4 col-lg-3">
<div class="q-ma-sm">
<q-btn :color="color" rounded :to="to" v-bind="$attrs">
<q-icon class="q-ma-sm" size="4em" :name="icon"/>
<q-btn v-if="!small" class="mybox" :color="color" rounded :to="to" v-bind="$attrs">
<q-icon class="q-ma-sm" size="4.5rem" :name="icon"/>
<div class="q-ma-sm text-h5">{{ label }}</div>
</q-btn>
<q-btn v-if="small" class="mybox_small" :color="color" rounded :to="to" v-bind="$attrs">
<q-icon class="q-ma-xs" :name="icon" size="sm"/>
<div class="q-ma-xs my-text-small">{{ label }}</div>
</q-btn>
</div>
</div>
</template>

View File

@@ -19,7 +19,7 @@ export default defineComponent({
const globalStore = useGlobalStore()
const { t } = useI18n();
const calcstat = computed(() => userStore.my.calcstat ? userStore.my.calcstat : {numUsersReg: 0, numMySkills: 0, numMyBachecas: 0} )
const calcstat = computed(() => userStore.my.calcstat ? userStore.my.calcstat : {numUsersReg: 0, numMySkills: 0, numMyGoods: 0, numMyBachecas: 0} )
return {
userStore,

View File

@@ -51,7 +51,29 @@
<q-item class="q-pb-none q-pt-xs">
<q-item-section>
<q-item-label class="text-h4" style="font-weight: 500;letter-spacing: 3px;">{{ calcstat.numMyBachecas }}</q-item-label>
<q-item-label :class="!$q.dark.isActive? 'text-grey-7':'text-white'" style="letter-spacing: 1px;">Annunci</q-item-label>
<q-item-label :class="!$q.dark.isActive? 'text-grey-7':'text-white'" style="letter-spacing: 1px;">Dacci un Occhio</q-item-label>
</q-item-section>
<q-item-section side>
<q-icon name="engineering" class="box_3" size="60px"></q-icon>
</q-item-section>
</q-item>
<q-item class="q-py-xs" style="min-height: unset">
<q-item-section>
<div class="progress-base q-my-sm">
<div class="progress-bar-3" style="width:100%"></div>
</div>
</q-item-section>
</q-item>
</q-card>
</div>
<div class="col-md-3 col-lg-3 col-sm-12 col-xs-12 box_3" style="border-left: 1px solid #efefef;"
v-bind:class="{'border-top': $q.platform.is.mobile}">
<q-card class="no-shadow q-pa-sm">
<q-item class="q-pb-none q-pt-xs">
<q-item-section>
<q-item-label class="text-h4" style="font-weight: 500;letter-spacing: 3px;">{{ calcstat.numMyGoods }}</q-item-label>
<q-item-label :class="!$q.dark.isActive? 'text-grey-7':'text-white'" style="letter-spacing: 1px;">Beni</q-item-label>
</q-item-section>
<q-item-section side>

View File

@@ -28,14 +28,14 @@ export default defineComponent({
CMyFieldDb, CGridTableRec,
},
setup(props, { attrs, slots, emit }) {
const mytable = 'users'
const { t } = useI18n()
const globalStore = useGlobalStore()
const userStore = useUserStore()
const arrfilterand: any = ref([])
const filtercustom: any = ref([])
const searchList = ref(<ISearchList[]>[])
const searchList_Servizi = ref(<ISearchList[]>[])
const searchList_Beni = ref(<ISearchList[]>[])
const search = ref('')
const myrecfiltertoggle = ref(tools.FILTER_ALL)
@@ -45,22 +45,25 @@ export default defineComponent({
const col_footer = ref('idCity')
const col_tabfooter = ref('mycities')
const mypagination = ref({ sortBy: 'date_created', descending: true, page: 1, rowsNumber: 10, rowsPerPage: 10 })
const mypagination = ref({ sortBy: 'date_created', descending: true, page: 1, rowsNumber: 20, rowsPerPage: 20 })
const col = ref(<IColGridTable>{})
const idSector = computed(() => {
/*
const idSectorServizi = computed(() => {
let myval: any = null
myval = searchList.value.find((rec) => (rec.table === 'sectors'))
myval = searchList_Servizi.value.find((rec) => (rec.table === 'sectors'))
if (myval) {
const ris = myval.value || 0
// console.log('idSector=', ris)
// console.log('idSectorServizi=', ris)
return ris
} else {
return 0
}
})
*/
watch(() => myrecfiltertoggle.value, (value: any, oldval: any) => {
if (value === tools.FILTER_MYREC) {
filtercustom.value = [{ userId: userStore.my._id }]
@@ -70,6 +73,15 @@ export default defineComponent({
},
)
const searchList = computed(() => {
if (props.table === 'mygoods')
return searchList_Beni.value
else if (props.table === 'myskills')
return searchList_Servizi.value
return searchList_Servizi.value
})
function mounted() {
@@ -93,6 +105,16 @@ export default defineComponent({
}
}
function getFilterGoods(recGood: any, index: number, arr: any) {
const recsectorGoods: any = searchList.value.find((rec) => rec.table === 'sectorgoods')
// console.log('getFilterSkills', recSkill.idSector, recsectors.value)
if (recsectorGoods) {
return recGood.idSectorGood.includes(recsectorGoods.value)
} else {
return true
}
}
function getFilterSubSkills(recSubSkill: any, index: number, arr: any) {
const recskills: any = searchList.value.find((rec) => rec.table === 'skills')
// console.log('recSubSkill', recSubSkill, 'recskills', recskills)
@@ -114,9 +136,30 @@ export default defineComponent({
}
searchList.value = [
searchList_Servizi.value = [
{
label: 'Stato',
table: 'statusSkills',
key: 'idStatusSkill',
value: 0,
// arrvalue: tools.getCookie(tools.COOK_SEARCH + 'statusSkills', []),
arrvalue: [],
type: costanti.FieldType.multiselect,
filter: null,
useinput: false,
icon: 'mood',
filteradv: true,
},
/*{
label: 'Regione',
table: 'regions',
key: 'idReg',
value: 0,
type: costanti.FieldType.select,
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'regions', [costanti.FILTER_TUTTI]),
filter: null,
useinput: true,
},*/
{
label: 'Provincia',
table: 'provinces',
@@ -130,7 +173,7 @@ export default defineComponent({
icon: 'flag',
},
{
label: 'Città',
label: 'Comune',
table: 'cities',
key: 'idCity',
type: costanti.FieldType.select_by_server,
@@ -167,7 +210,7 @@ export default defineComponent({
useinput: false,
},
{
label: 'Competenza',
label: 'Categoria',
table: 'skills',
key: 'idSkill',
value: tools.getCookie(tools.COOK_SEARCH + 'skills' + '_' + tools.getCookie(tools.COOK_SEARCH + 'sectors', costanti.FILTER_TUTTI), costanti.FILTER_TUTTI),
@@ -178,7 +221,7 @@ export default defineComponent({
showcount: true,
useinput: false,
},
{
/*{
label: 'Specializzazione',
table: 'subskills',
key: 'idSubSkill',
@@ -191,16 +234,11 @@ export default defineComponent({
useinput: false,
icon: 'far fa-id-card',
},
/*{
label: 'Regione',
table: 'regions',
key: 'idReg',
value: 0,
type: costanti.FieldType.select,
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'regions', [costanti.FILTER_TUTTI]),
filter: null,
useinput: true,
},*/
*/
/*
{
label: 'Livello',
table: 'levels',
@@ -213,20 +251,160 @@ export default defineComponent({
useinput: false,
filteradv: true,
},
*/
{
label: 'Stato',
table: 'statusSkills',
key: 'idStatusSkill',
label: 'In cambio di',
table: 'contribtypes',
key: 'idContribType',
value: 0,
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'statusSkills', []),
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'contribtypes', []),
type: costanti.FieldType.multiselect,
filter: null,
useinput: false,
icon: 'mood',
icon: 'fas fa-hand-holding',
filteradv: true,
//icon: 'swap_horizontal_circle',
},
/*
{
label: '',
table: '',
key: '',
value: 0,
type: costanti.FieldType.separator,
arrvalue: [],
addall: true,
filter: null,
showcount: true,
useinput: false,
notinsearch: true,
icon: '',
},
*/
]
searchList_Beni.value = [
/*{
label: 'Regione',
table: 'regions',
key: 'idReg',
value: 0,
type: costanti.FieldType.select,
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'regions', [costanti.FILTER_TUTTI]),
filter: null,
useinput: true,
},*/
{
label: 'Provincia',
table: 'provinces',
key: 'idProvince',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + 'provinces', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: null,
useinput: true,
icon: 'flag',
},
{
label: 'Contributo',
label: 'Comune',
table: 'cities',
key: 'idCity',
type: costanti.FieldType.select_by_server,
value: tools.getCookie(tools.COOK_SEARCH + 'cities', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
useinput: true,
filter: null,
// filter: getFilterCitiesByProvince,
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
},
{
label: 'Offro/Cerco',
table: 'adtypegoods',
key: 'adType',
value: tools.getCookie(tools.COOK_SEARCH + 'adtypegoods', costanti.FILTER_TUTTI),
arrvalue: [],
addall: true,
type: costanti.FieldType.select,
filter: null,
useinput: false,
},
{
label: 'Settore',
table: 'sectorgoods',
key: 'idSectorGood',
value: tools.getCookie(tools.COOK_SEARCH + 'sectorgoods', 0),
arrvalue: [],
type: costanti.FieldType.select,
filter: null,
addall: true,
notinsearch: true,
useinput: false,
},
{
label: 'Categoria',
table: 'goods',
key: 'idGood',
value: tools.getCookie(tools.COOK_SEARCH + 'goods' + '_' + tools.getCookie(tools.COOK_SEARCH + 'sectorgoods', costanti.FILTER_TUTTI), costanti.FILTER_TUTTI),
arrvalue: [],
type: costanti.FieldType.select,
addall: true,
filter: getFilterGoods,
showcount: true,
useinput: false,
},
{
label: 'Spedizione',
table: 'shippings',
key: 'idShipping',
value: tools.getCookie(tools.COOK_SEARCH + 'shippings', costanti.FILTER_TUTTI),
arrvalue: [],
type: costanti.FieldType.select,
addall: true,
filter: null,
useinput: false,
},
/*{
label: 'Specializzazione',
table: 'subskills',
key: 'idSubSkill',
value: tools.getCookie(tools.COOK_SEARCH + 'subskills' + '_' + tools.getCookie(tools.COOK_SEARCH + 'skills', costanti.FILTER_TUTTI), costanti.FILTER_TUTTI),
type: costanti.FieldType.select,
arrvalue: [],
addall: true,
filter: getFilterSubSkills,
showcount: true,
useinput: false,
icon: 'far fa-id-card',
},
*/
/*
{
label: 'Livello',
table: 'levels',
key: 'numLevel',
value: tools.getCookie(tools.COOK_SEARCH + 'levels', costanti.FILTER_TUTTI),
arrvalue: [],
addall: true,
type: costanti.FieldType.select,
filter: null,
useinput: false,
filteradv: true,
},
*/
{
label: 'In cambio di',
table: 'contribtypes',
key: 'idContribType',
value: 0,
@@ -259,73 +437,124 @@ export default defineComponent({
}
function extraparams() {
return {
lookup1: {
lk_tab: 'users',
lk_LF: 'userId',
lk_FF: '_id',
lk_as: 'user',
af_objId_tab: 'myId',
},
lookup2: {
lk_tab: 'skills',
lk_LF: 'idSkill',
lk_FF: '_id',
lk_as: 'recSkill',
af_objId_tab: '',
lk_proj: {
recSkill: 1,
sector: 1,
idSector: 1,
idSkill: 1,
idSubSkill: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
idCity: 1,
numLevel: 1,
adType: 1,
photos: 1,
note: 1,
website: 1,
//**ADDFIELD_MYSKILL
descr: 1,
date_created: 1,
date_updated: 1,
userId: 1,
username: 1,
name: 1,
surname: 1,
comune: 1,
mycities: 1,
'profile.img': 1,
'profile.qualifica': 1,
}
},
lookup3: {
lk_tab: 'sectors',
lk_LF: 'recSkill.idSector',
lk_FF: '_id',
lk_as: 'sector',
af_objId_tab: '',
},
lookup4: {
lk_tab: 'subskills',
lk_LF: 'idSubSkill',
lk_FF: '_id',
lk_as: 'myrec',
af_objId_tab: '',
},
lookup5: {
lk_tab: 'cities',
lk_LF: 'idCity',
lk_FF: '_id',
lk_as: 'mycities',
af_objId_tab: '',
},
if (props.table === 'myskills') {
return {
lookup1: {
lk_tab: 'users',
lk_LF: 'userId',
lk_FF: '_id',
lk_as: 'user',
af_objId_tab: 'myId',
},
lookup2: {
lk_tab: 'skills',
lk_LF: 'idSkill',
lk_FF: '_id',
lk_as: 'recSkill',
af_objId_tab: '',
lk_proj: {
recSkill: 1,
sector: 1,
idSector: 1,
idSkill: 1,
// idSubSkill: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
idCity: 1,
numLevel: 1,
adType: 1,
photos: 1,
note: 1,
website: 1,
//**ADDFIELD_MYSKILL
descr: 1,
date_created: 1,
date_updated: 1,
userId: 1,
username: 1,
name: 1,
surname: 1,
comune: 1,
mycities: 1,
'profile.img': 1,
'profile.qualifica': 1,
}
},
lookup3: {
lk_tab: 'sectors',
lk_LF: 'recSkill.idSector',
lk_FF: '_id',
lk_as: 'sector',
af_objId_tab: '',
},
lookup5: {
lk_tab: 'cities',
lk_LF: 'idCity',
lk_FF: '_id',
lk_as: 'mycities',
af_objId_tab: '',
},
}
} else if (props.table === 'myskills') {
return {
lookup1: {
lk_tab: 'users',
lk_LF: 'userId',
lk_FF: '_id',
lk_as: 'user',
af_objId_tab: 'myId',
},
lookup2: {
lk_tab: 'goods',
lk_LF: 'idGood',
lk_FF: '_id',
lk_as: 'recGood',
af_objId_tab: '',
lk_proj: {
recGood: 1,
sectorGood: 1,
idSectorGood: 1,
idGood: 1,
mygood: 1,
idStatusSkill: 1,
idContribType: 1,
idCity: 1,
numLevel: 1,
adType: 1,
photos: 1,
note: 1,
website: 1,
//**ADDFIELD_MYSKILL
descr: 1,
date_created: 1,
date_updated: 1,
userId: 1,
username: 1,
name: 1,
surname: 1,
comune: 1,
mycities: 1,
'profile.img': 1,
'profile.qualifica': 1,
}
},
lookup3: {
lk_tab: 'sectorgoods',
lk_LF: 'recGood.idSectorGood',
lk_FF: '_id',
lk_as: 'sectorgood',
af_objId_tab: '',
},
lookup5: {
lk_tab: 'cities',
lk_LF: 'idCity',
lk_FF: '_id',
lk_as: 'mycities',
af_objId_tab: '',
},
}
}
}
@@ -334,6 +563,8 @@ export default defineComponent({
return tools.getdefaultnewrec_MySkill()
} else if (props.table === toolsext.TABMYBACHECAS) {
return tools.getdefaultnewrec_MyBacheca()
} else if (props.table === toolsext.TABMYGOODS) {
return tools.getdefaultnewrec_MyGoods()
}
return null
}
@@ -353,7 +584,6 @@ export default defineComponent({
arrfilterand,
filtercustom,
searchList,
idSector,
search,
doSearch,
myrecfiltertoggle,

View File

@@ -37,7 +37,7 @@
:vertical="costanti.VISUTABLE_LISTA"
:prop_pagination="mypagination"
:showType="costanti.SHOW_MYCARD"
:nodataLabel="'Nessuna Competenza trovata'"
:nodataLabel="'Nessun annuncio trovato con i filtri selezionati'"
:prop_search="true"
:finder="true"
:choose_visutype="$q.screen.gt.xs"

View File

@@ -1,6 +1,6 @@
<template>
<div v-if="tools.isTest()">
<q-banner
<!--<q-banner
rounded
dense
class="bg-primary text-white"
@@ -10,7 +10,7 @@
<q-icon name="fas fa-exclamation-triangle" color="yellow" size="xs" />
</template>
<span class="mybanner">Ambiente di Test</span>
</q-banner>
</q-banner>-->
</div>
</template>

View File

@@ -299,50 +299,40 @@ export default defineComponent({
refresh()
})
function setCategBySector(tablecat: string, tabsector: string, newval: any) {
const recSector = searchList.value.find((rec) => rec.table === tabsector)
if (recSector)
tools.setCookie(tools.COOK_SEARCH + tablecat + '_' + recSector.value, newval)
for (const item of searchList.value) {
if (item.table === tablecat) {
const valsaved = tools.getCookie(tools.COOK_SEARCH + tablecat + '_' + newval, costanti.FILTER_TUTTI)
const rec = searchList.value.find((rec) => rec.table === tablecat) // check if exist
let trovato = false
if (rec) {
const arrvalues = valoriopt.value(rec.value, false)
if (arrvalues)
trovato = arrvalues.find((rec: any) => rec[rec.key] === valsaved)
}
if (valsaved && trovato)
item.value = valsaved
else
item.value = costanti.FILTER_TUTTI
}
}
}
function searchval(newval: any, table: any) {
// console.log('searchval', newval, table)
tools.setCookie(tools.COOK_SEARCH + table, newval)
if (table === 'skills') {
const recSector = searchList.value.find((rec) => rec.table === 'sectors')
if (recSector)
tools.setCookie(tools.COOK_SEARCH + table + '_' + recSector.value, newval)
setCategBySector(table, 'sectors', newval)
}else if (table === 'goods') {
setCategBySector(table, 'sectorgoods', newval)
}
if (table === 'sectors') {
for (const item of searchList.value) {
if ((item.table === 'subskills')) {
// item.arrvalue = [costanti.FILTER_TUTTI]
}
if (item.table === 'skills') {
// console.log('---PRIMA ', item.value)
const valsaved = tools.getCookie(tools.COOK_SEARCH + 'skills' + '_' + newval, costanti.FILTER_TUTTI)
// check if exist
const recSkill = searchList.value.find((rec) => rec.table === 'skills')
let trovato = false
if (recSkill) {
// console.log('recSkill.value', recSkill)
const arrvalues = valoriopt.value(recSkill.value, false)
// console.log('arrvalues', arrvalues)
if (arrvalues)
trovato = arrvalues.find((rec: any) => rec[recSkill.key] === valsaved)
}
if (valsaved && trovato)
item.value = valsaved
else
item.value = costanti.FILTER_TUTTI
// console.log('---DOPO ', item.value)
}
}
}
/*if (table === 'skills') {
for (const item of searchList.value) {
if (item.table === 'subskills') {
item.arrvalue = [costanti.FILTER_TUTTI]
}
}
} */
refresh()
}
@@ -412,15 +402,21 @@ export default defineComponent({
let filtersearch3or: any[] = []
let recSector = null
let recSectorGood = null
let recProvince = null
let recSkill = null
let idSector = 0
let idSectorGood = 0
let idProvince = 0
let idSkill = 0
if (searchList.value) {
recSector = searchList.value.find((item: ISearchList) => item.table === 'sectors')
idSector = recSector ? recSector.value : 0
}
if (searchList.value) {
recSectorGood = searchList.value.find((item: ISearchList) => item.table === 'sectorgoods')
idSectorGood = recSectorGood ? recSectorGood.value : 0
}
if (searchList.value) {
recProvince = searchList.value.find((item: ISearchList) => item.table === 'provinces')
idProvince = recProvince ? recProvince.value : 0
@@ -494,6 +490,14 @@ export default defineComponent({
filtersearch2.push(obj2)
}
}
if ((item.table === 'goods') && item.value === costanti.FILTER_TUTTI) {
let obj2: any = {}
if (idSectorGood > 0) {
// idSectorGood
obj2['sectorgood._id'] = idSectorGood
filtersearch2.push(obj2)
}
}
if ((item.table === 'subskills') && item.value === costanti.FILTER_TUTTI) {
let obj2: any = {}
// idSector

View File

@@ -106,9 +106,10 @@
<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)">
<!--<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>
</div>-->
<CMySelect
:col="fieldsTable.getColByTable(mytable, item.key)"
@@ -223,6 +224,7 @@
<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"
>
@@ -497,7 +499,7 @@
v-for="col in mycolumns" :key="col.name" class="newrec_fields">
<div class="text-center q-my-xs" v-if="(col.fieldtype === costanti.FieldType.separator)">
<q-btn size="sm" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'" label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn>
<q-btn color="primary" size="md" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'" label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn>
</div>
<div
v-if="showColCheck(col, tools.TIPOVIS_NEW_RECORD, true, 0, newRecord) && col.foredit ">
@@ -542,7 +544,7 @@
<div
v-for="col in mycolumns" :key="col.name">
<div class="text-center q-my-xs" v-if="(col.fieldtype === costanti.FieldType.separator)">
<q-btn size="sm" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'" label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn>
<q-btn color="primary" size="md" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'" label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn>
</div>
<div
v-else-if="showColCheck(col, tools.TIPOVIS_EDIT_RECORD, false) && col.foredit">

View File

@@ -4,6 +4,7 @@ import { useRouter } from 'vue-router'
import { useGlobalStore } from '@store/globalStore'
import { useI18n } from '@/boot/i18n'
import { tools } from '@store/Modules/tools'
import { costanti } from '@store/Modules/costanti'
import { CBigBtn } from '@/components/CBigBtn'
@@ -18,9 +19,23 @@ export default defineComponent({
const globalStore = useGlobalStore()
const { t } = useI18n()
const showInfo = ref(false)
const cardsbig = computed(() => {
return costanti.MAINCARDS.filter((rec: any) => !rec.small)
})
const cardssmall = computed(() => {
return costanti.MAINCARDS.filter((rec: any) => rec.small)
})
return {
userStore,
tools,
costanti,
cardsbig,
cardssmall,
showInfo,
}
}
})

View File

@@ -1,32 +1,34 @@
<template>
<div>
<div class="row q-ma-sm shadow justify-center" style="border-radius: 4px;border: 1px solid rgba(0, 0, 0, 0.12);">
<CBigBtn
label="Bacheca" to="/bacheca" icon="fas fa-bullhorn" color="indigo">
</CBigBtn>
<CBigBtn
label="Lavoro" to="/work" icon="fas fa-briefcase" color="blue">
</CBigBtn>
<CBigBtn
label="Scuola" to="/school" icon="fas fa-book-reader" color="orange" disable>
</CBigBtn>
<CBigBtn
label="Luoghi" to="/places" icon="fas fa-map-marker-alt" color="cyan" disable>
</CBigBtn>
<CBigBtn
label="Mobilità" to="/mobility" icon="fas fa-car-side" color="red" disable>
</CBigBtn>
<CBigBtn
label="Alimentari" to="/grocery" icon="fas fa-utensils" color="green" disable>
</CBigBtn>
<CBigBtn
label="Socializza" to="/socialising" icon="fas fa-users" color="purple" disable>
</CBigBtn>
<div class="row q-ma-xs shadow justify-center" style="border-radius: 4px;border: 1px solid rgba(0, 0, 0, 0.12);">
<CBigBtn
v-for="(card, ind) of cardsbig" :key="ind"
:label="card.title" :to="card.to" :icon="card.icon" :color="card.color" :text-color="!!card.textcolor ? card.textcolor : ''"
:small="card.small"
:numcol="2"
:hint="card.hint" :disable="card.disable">
</CBigBtn>
</div>
<div class="row shadow justify-center" style="border-radius: 4px;border: 1px solid rgba(0, 0, 0, 0.12);">
<CBigBtn
v-for="(card, ind) of cardssmall" :key="ind"
:label="card.title" :to="card.to" :icon="card.icon" :color="card.color" :text-color="!!card.textcolor ? card.textcolor : ''"
:small="card.small"
:numcol="3"
:hint="card.hint" :disable="card.disable">
</CBigBtn>
</div>
<div class="text-center">P.S: Attualmente sono attivi il bottone <b>Bacheca e Lavoro</b>.<br>
Gli altri verranno attivati prossimamente .</div>
</div>
<!--<div class="row justify-center">
<CBigBtn
label="Info" to="" @click="showInfo = true" icon="fas fa-info" color="primary"
:numcol="3"
>
</CBigBtn>
</div>
<div v-if="showInfo">
</div>-->
</template>
<script lang="ts" src="./CMainView.ts">

View File

@@ -1,5 +1,12 @@
<template>
<q-card class="dialog_card" v-if="mybacheca">
<q-footer
class="bg-white small-screen-only text-center"
bordered
>
<q-btn push rounded color="primary" icon="close" label="Chiudi" v-close-popup></q-btn>
</q-footer>
<q-bar dense class="bg-primary text-white">
{{ mybacheca.username }}
<q-space/>

View File

@@ -253,17 +253,26 @@
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.date">
<CDateTime
:label="col.label"
class="cursor-pointer"
v-model:value="myvalue"
:readonly="false"
:minuteinterval="minuteinterval"
:dense="true"
:canEdit="canEdit"
@savetoclose="SaveValueInt"
@show="OpenEdit">
</CDateTime>
<div v-if="myvalue">
<CDateTime
:label="col.label"
class="cursor-pointer"
v-model:value="myvalue"
:readonly="false"
:minuteinterval="minuteinterval"
:dense="true"
:canEdit="canEdit"
@savetoclose="SaveValueInt"
@show="OpenEdit">
</CDateTime>
</div>
<div v-else-if="canEdit">
<q-btn
dense
color="primary" @click="OpenEdit"
icon="fas fa-calendar-day"
/>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.onlydate">
<CDateTime
@@ -461,7 +470,7 @@
:color="tools.getColByLevel(myvalue)"
icon="star_border"
icon-selected="star"
:max="costanti.FieldType.star5 ? 5 : 3"
:max="col.fieldtype === costanti.FieldType.star5 ? 5 : 3"
:readonly="true"
/>
</div>
@@ -745,6 +754,34 @@
</CMySelect>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.date">
<CDateTime
:label="col.label"
class="cursor-pointer"
v-model:value="myvalue"
:readonly="false"
:minuteinterval="minuteinterval"
:dense="true"
:canEdit="canEdit"
@savetoclose="SaveValueInt"
@show="OpenEdit">
</CDateTime>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.onlydate">
<CDateTime
:label="col.label"
class="cursor-pointer"
:valueDate="myvalue"
v-model:value="myvalue"
:readonly="false"
:minuteinterval="minuteinterval"
:dense="true"
:canEdit="canEdit"
@savetoclose="SaveValueInt"
@show="OpenEdit"
view="date">
</CDateTime>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.binary">
<CMyToggleList

View File

@@ -22,7 +22,7 @@
:label="$t('reg.username_login')"
:rules="[
val => !!val || $t('reg.err.required'),
val => val.length > 6 || $t('reg.err.atleast') + ' 6 ' + $t('reg.err.char'),
val => val.length >= 6 || $t('reg.err.atleast') + ' 6 ' + $t('reg.err.char'),
]">
<template v-slot:prepend>
@@ -40,7 +40,7 @@
:label="$t('reg.password')"
:rules="[
val => !!val || $t('reg.err.required'),
val => val.length > 8 || $t('reg.err.atleast') + ' 8 ' + $t('reg.err.char'),
val => val.length >= 8 || $t('reg.err.atleast') + ' 8 ' + $t('reg.err.char'),
]">
<template v-slot:prepend>

View File

@@ -1,5 +1,5 @@
import {
defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch,
defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch, computed,
} from 'vue'
import { tools } from '@store/Modules/tools'
@@ -7,7 +7,6 @@ import { CMyFieldDb } from '@/components/CMyFieldDb'
import { costanti } from '@costanti'
import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore'
import { colmySkills } from '@store/Modules/fieldsTable'
import { CGridTableRec } from '@/components/CGridTableRec'
import { IColGridTable, IMySkill, ISkill } from 'model'
import { toolsext } from '@store/Modules/toolsext'
@@ -58,6 +57,13 @@ export default defineComponent({
const col_footer = ref('')
const col_tabfooter = ref('')
const extraparams = computed(() =>{
if (props.table === 'goods')
return extraparams_Goods()
else
return extraparams_Servizi()
})
function mounted() {
let obj = tools.getParamsByTable(props.table)
@@ -71,7 +77,8 @@ export default defineComponent({
}
function extraparams() {
function extraparams_Servizi() {
let lk_tab = 'users'
let lk_LF = 'userId'
let lk_FF = '_id'
@@ -94,7 +101,6 @@ export default defineComponent({
sector: 1,
idSector: 1,
idSkill: 1,
idSubSkill: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
@@ -129,7 +135,6 @@ export default defineComponent({
sector: 1,
idSector: 1,
idSkill: 1,
idSubSkill: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
@@ -164,7 +169,6 @@ export default defineComponent({
sector: 1,
idSector: 1,
idSkill: 1,
idSubSkill: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
@@ -189,13 +193,134 @@ export default defineComponent({
}
},
lookup4: {
lk_tab: 'subskills',
lk_LF: 'idSubSkill',
lk_tab: 'cities',
lk_LF: 'idCity',
lk_FF: '_id',
lk_as: 'myrec',
lk_as: 'mycities',
af_objId_tab: '',
},
lookup5: {
}
}
function extraparams_Goods() {
let lk_tab = 'users'
let lk_LF = 'userId'
let lk_FF = '_id'
let lk_as = 'user'
let af_objId_tab = 'myId'
if (props.username) {
// lk_LF = 'username'
}
return {
lookup1: {
lk_tab,
lk_LF,
lk_FF,
lk_as,
af_objId_tab,
lk_proj: {
recSkill: 1,
sector: 1,
idSector: 1,
idSkill: 1,
idShipping: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
idCity: 1,
numLevel: 1,
adType: 1,
photos: 1,
note: 1,
//**ADDFIELD_MYSKILL
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,
'profile.qualifica': 1,
}
},
lookup2: {
lk_tab: 'cities',
lk_LF: 'idCity',
lk_FF: '_id',
lk_as: 'comune',
af_objId_tab: '',
lk_proj: {
recSkill: 1,
sector: 1,
idSector: 1,
idSkill: 1,
idShipping: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
idCity: 1,
numLevel: 1,
adType: 1,
photos: 1,
note: 1,
//**ADDFIELD_MYSKILL
website: 1,
descr: 1,
date_created: 1,
date_updated: 1,
comune: 1,
userId: 1,
username: 1,
name: 1,
surname: 1,
mycities: 1,
'profile.img': 1,
'profile.qualifica': 1,
}
},
lookup3: {
lk_tab: 'skills',
lk_LF: 'idSkill',
lk_FF: '_id',
lk_as: 'recSkill',
af_objId_tab: '',
lk_proj: {
recSkill: 1,
sector: 1,
idSector: 1,
idSkill: 1,
idShipping: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
idCity: 1,
numLevel: 1,
adType: 1,
photos: 1,
note: 1,
//**ADDFIELD_MYSKILL
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,
'profile.qualifica': 1,
}
},
lookup4: {
lk_tab: 'cities',
lk_LF: 'idCity',
lk_FF: '_id',
@@ -211,6 +336,8 @@ export default defineComponent({
return tools.getdefaultnewrec_MySkill()
} else if (props.table === toolsext.TABMYBACHECAS) {
return tools.getdefaultnewrec_MyBacheca()
} else if (props.table === toolsext.TABMYGOODS) {
return tools.getdefaultnewrec_MyGoods()
}
return null
}
@@ -220,7 +347,6 @@ export default defineComponent({
return {
tools,
costanti,
colmySkills,
extraparams,
fieldsTable,
col,

View File

@@ -0,0 +1,51 @@
import { computed, defineComponent, onMounted, PropType, ref } from 'vue'
import { costanti } from '@costanti'
export default defineComponent({
name: 'CTitlePage',
props: {
ind: {
type: Number,
required: false,
default: -1,
},
title: {
type: String,
required: false
},
icon: {
type: String,
required: false
},
color: {
type: String,
required: false
},
},
setup(props) {
const mytitle = ref('')
const myicon = ref('')
const mycolor = ref('')
function mount() {
if (props.ind === -1) {
mytitle.value = props.title!
myicon.value = props.icon!
mycolor.value = props.color!
} else {
mytitle.value = costanti.MAINCARDS[props.ind].title
myicon.value = costanti.MAINCARDS[props.ind].icon
mycolor.value = costanti.MAINCARDS[props.ind].color
}
}
onMounted(mount)
return {
mytitle,
myicon,
mycolor,
}
},
})

View File

@@ -0,0 +1,19 @@
<template>
<q-banner
rounded
dense
class="text-white"
:style="`text-align: center; background-color: ${mycolor}`">
<template v-slot:avatar>
<q-icon :name="myicon" size="xs" />
</template>
<span class="mybanner">{{mytitle}}</span>
</q-banner>
</template>
<script lang="ts" src="./CTitlePage.ts">
</script>
<style lang="scss" scoped>
@import './CTitlePage.scss';
</style>

View File

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

View File

@@ -345,13 +345,18 @@ export default defineComponent({
}
function getappname() {
let mystr = tools.getsuffisso() + tools.getappname(tools.isMobile())
if (!tools.isMobile()) {
//if (!tools.isMobile()) {
mystr += ' ' + getAppVersion()
//}
let mystr = ''
if (tools.isTest()){
mystr = 'Ambiente di TEST'
} else {
mystr = ''
let mystr = tools.getsuffisso() + tools.getappname(tools.isMobile())
if (!tools.isMobile()) {
//if (!tools.isMobile()) {
mystr += ' ' + getAppVersion()
//}
} else {
mystr = ''
}
}
return mystr
@@ -420,9 +425,9 @@ export default defineComponent({
}
function getClassColorHeader() {
if (tools.isTest()) return 'bg-warning'
if (tools.isTest()) return 'bg-light-blue'
if (tools.isDebug()) return 'bg-info'
return 'bg-primary'
return 'bg-light-blue'
}
function changecmd(value: any) {

View File

@@ -380,23 +380,34 @@ const baseroutes: IListRoutes[] = [
infooter: true,
},
{
active: true,
active: false,
order: 100,
path: '/bacheca',
materialIcon: 'fas fa-bullhorn',
name: 'mypages.bacheca',
component: () => import('@/root/bacheca/bacheca.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 12,
path: '/goods',
materialIcon: 'fas fa-briefcase',
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/work',
path: '/services',
materialIcon: 'fas fa-briefcase',
name: 'mypages.work',
component: () => import('@/root/work/work.vue'),
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
@@ -507,8 +518,7 @@ const baseroutes: IListRoutes[] = [
materialIcon: 'fas fa-test',
name: 'mypages.test',
component: () => import('@/views/testServer/testServer.vue'),
meta: { requiresAuth: true },
inmenu: false,
inmenu: true,
infooter: false,
},
{

View File

@@ -258,10 +258,13 @@ export interface IGlobalState {
URL_RESTORE: string
levels: ILevel[],
adtypes: IAdType[],
adtypegoods: IAdType[],
skills: ISkill[],
subSkills: ISubSkill[],
goods: IGood[],
// subSkills: ISubSkill[],
statusSkills: IStatusSkill[],
sectors: ISector[],
sectorgoods: ISectorGood[],
catgrps: ICatGrp[],
cities: ICity[],
}
@@ -619,7 +622,15 @@ export interface ISkill {
icon?: string
img?: string
}
export interface IGood {
_id: number
descr: string
idSectorGood: number[]
icon?: string
img?: string
}
/*
export interface ISubSkill {
_id: number
descr: string
@@ -628,13 +639,18 @@ export interface ISubSkill {
img?: string
}
*/
export interface IStatusSkill {
_id: number
descr: string
color: string
icon: string
theme: string
}
export interface ISector {
_id: number
descr: string
@@ -645,6 +661,16 @@ export interface ISector {
theme: string
}
export interface ISectorGood {
_id: number
descr: string
idSectorGood?: number
icon?: string
img?: string
color: string
theme: string
}
export interface ICatGrp {
_id: number
descr: string
@@ -679,7 +705,26 @@ export interface IMySkill {
_id: number
idSector: number
idSkill: number
idSubSkill: number[]
// idSubSkill: number[]
idStatusSkill: number[]
idContribType: string[]
idCity: number[]
photos: IGallery[]
NumLevel: number
adType: number
note: string
//**ADDFIELD_MYSKILL
website: string
descr: string
date_created?: Date,
date_updated?: Date,
}
export interface IMyGoods {
_id: number
idSector: number
idSkill: number
idShipping: number[]
idStatusSkill: number[]
idContribType: string[]
idCity: number[]
@@ -698,7 +743,7 @@ export interface IMyBacheca {
_id: number
idSector: number
idSkill: number
idSubSkill: number[]
// idSubSkill: number[]
idStatusSkill: number[]
idContribType: string[]
idCity: number[]

View File

@@ -59,7 +59,8 @@ export interface IUserProfile {
resplist?: any
workerslist?: any
dateofbirth?: Date|null
born_city?: string
born_city_id?: number
born_city_str?: string
born_province?: string
born_country?: string
my_dream?: string

View File

@@ -9,6 +9,7 @@ import { CFinder } from '@/components/CFinder'
import { CDashboard } from '@/components/CDashboard'
import { CChartMap } from '@src/components/CChartMap'
import { CUserNonVerif } from '@/components/CUserNonVerif'
import { CTitlePage } from '@/components/CTitlePage'
import { CMapsEsempio } from '@src/components/CMapsEsempio'
import { CVerifyEmail } from '@src/components/CVerifyEmail'
import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
@@ -22,7 +23,7 @@ import { colmyBachecas } from '@store/Modules/fieldsTable'
export default defineComponent({
name: 'bacheca',
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif },
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage },
setup() {
const globalStore = useGlobalStore()
const userStore = useUserStore()

View File

@@ -4,6 +4,7 @@
<div v-if="isLogged()">
<div v-if="isUserOk()">
<CTitlePage :ind="0" />
<CFinder
:table="toolsext.TABMYBACHECAS">

0
src/root/goods/goods.scss Executable file
View File

View File

@@ -9,6 +9,7 @@ import { CFinder } from '@/components/CFinder'
import { CDashboard } from '@/components/CDashboard'
import { CChartMap } from '@src/components/CChartMap'
import { CUserNonVerif } from '@/components/CUserNonVerif'
import { CTitlePage } from '@/components/CTitlePage'
import { CMapsEsempio } from '@src/components/CMapsEsempio'
import { CVerifyEmail } from '@src/components/CVerifyEmail'
import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
@@ -18,19 +19,15 @@ import { static_data } from '@/db/static_data'
import MixinBase from '@/mixins/mixin-base'
import MixinUsers from '@/mixins/mixin-users'
import { colmySkills } from '@store/Modules/fieldsTable'
export default defineComponent({
name: 'bacheca',
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif },
name: 'Goods',
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage },
setup() {
const globalStore = useGlobalStore()
const userStore = useUserStore()
const { getValDb } = MixinBase()
const { isEmailVerified, TelegVerificato } = MixinUsers()
function TelegCode() {
return userStore.my.profile.teleg_checkcode
}
@@ -65,7 +62,6 @@ export default defineComponent({
openrighttoolbar,
isUserOk,
getLinkBotTelegram,
colmySkills,
}
},
})

29
src/root/goods/goods.vue Executable file
View File

@@ -0,0 +1,29 @@
<template>
<q-page class="">
<div v-if="isLogged()">
<div v-if="isUserOk()">
<CTitlePage :ind="0" />
<CFinder
:table="toolsext.TABMYGOODS"
/>
<CDashboard></CDashboard>
</div>
<div v-else>
<CUserNonVerif></CUserNonVerif>
</div>
</div>
</q-page>
</template>
<script lang="ts" src="./goods.ts">
</script>
<style lang="scss" scoped>
@import './goods.scss';
</style>

View File

68
src/root/services/services.ts Executable file
View File

@@ -0,0 +1,68 @@
import {
defineComponent, ref, computed,
} from 'vue'
import { tools } from '@src/store/Modules/tools'
import { toolsext } from '@src/store/Modules/toolsext'
import { CSkill } from '@/components/CSkill'
import { CFinder } from '@/components/CFinder'
import { CDashboard } from '@/components/CDashboard'
import { CTitlePage } from '@/components/CTitlePage'
import { CChartMap } from '@src/components/CChartMap'
import { CUserNonVerif } from '@/components/CUserNonVerif'
import { CMapsEsempio } from '@src/components/CMapsEsempio'
import { CVerifyEmail } from '@src/components/CVerifyEmail'
import { CVerifyTelegram } from '@src/components/CVerifyTelegram'
import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore'
import { static_data } from '@/db/static_data'
import MixinBase from '@/mixins/mixin-base'
import MixinUsers from '@/mixins/mixin-users'
import { costanti } from '@costanti'
export default defineComponent({
name: 'Services',
components: { CSkill, CChartMap, CMapsEsempio, CFinder, CVerifyEmail, CVerifyTelegram, CDashboard, CUserNonVerif, CTitlePage },
setup() {
const globalStore = useGlobalStore()
const userStore = useUserStore()
const { getValDb } = MixinBase()
const { isEmailVerified, TelegVerificato } = MixinUsers()
function TelegCode() {
return userStore.my.profile.teleg_checkcode
}
function openrighttoolbar() {
globalStore.rightDrawerOpen = true
}
function isLogged() {
return userStore.isLogged
}
function isUserOk() {
return userStore.isUserOk()
}
function getLinkBotTelegram(): string {
if ( tools.isTest() && !process.env.DEV) {
return getValDb('TELEG_BOT_LINK_TEST', false)
} else{
return getValDb('TELEG_BOT_LINK', false)
}
}
return {
tools,
toolsext,
static_data,
isEmailVerified,
TelegCode,
TelegVerificato,
isLogged,
openrighttoolbar,
isUserOk,
getLinkBotTelegram,
}
},
})

View File

@@ -1,5 +1,6 @@
<template>
<q-page class="">
<CTitlePage :ind="1" />
<div v-if="isLogged()">
@@ -21,8 +22,8 @@
</q-page>
</template>
<script lang="ts" src="./work.ts">
<script lang="ts" src="./services.ts">
</script>
<style lang="scss" scoped>
@import './work.scss';
@import './services.scss';
</style>

View File

@@ -7,13 +7,20 @@ import { CTitleBanner } from '@/components/CTitleBanner'
import { CGridTableRec } from '@/components/CGridTableRec'
import { colTablegroups } from '@src/store/Modules/fieldsTable'
import { tools } from '@store/Modules/tools'
export default defineComponent({
name: 'GroupPage',
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
setup() {
function getdefaultnewrec(): any {
return tools.getdefaultnewrec_MyGroup()
}
return {
colTablegroups
colTablegroups,
getdefaultnewrec
}
}
})

View File

@@ -15,6 +15,7 @@
prop_mytable="groups"
prop_mytitle="Gruppi"
:prop_mycolumns="colTablegroups"
:defaultnewrec="getdefaultnewrec"
prop_colkey="descr"
nodataLabel="Nessun Gruppo"
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">

View File

@@ -20,7 +20,9 @@ export default defineComponent({
const globalStore = useGlobalStore()
const arrSector = ref(<any[]>[])
const arrSectorGood = ref(<any[]>[])
const arrSkill = ref(<any[]>[])
const arrGood = ref(<any[]>[])
const incaricamento = ref(false)
@@ -30,6 +32,8 @@ export default defineComponent({
const inputfile = ref('')
const risultato = ref('')
const caricaDatiToggle = ref(false)
const ListaCmd = ref(
[
{
@@ -45,8 +49,12 @@ export default defineComponent({
value: shared_consts.Cmd.CITIES_SERVER
},
{
label: 'Importa Categorie da TXT',
value: shared_consts.Cmd.CAT_TXT
label: 'Importa Categorie Servizi da TXT',
value: shared_consts.Cmd.CAT_SKILL_TXT
},
{
label: 'Importa Categorie Beni (Goods) da TXT',
value: shared_consts.Cmd.CAT_GOODS_TXT
},
{
label: 'converti da TXT seperato senza spazi',
@@ -55,8 +63,16 @@ export default defineComponent({
]
)
function created() {
inputfile.value = ''
function caricadati() {
if (!caricaDatiToggle.value) {
arrSector.value = []
arrSectorGood.value = []
arrSkill.value = []
arrGood.value = []
return
}
const sortBy = 'descr'
const descending = 1
@@ -67,7 +83,7 @@ export default defineComponent({
myobj[sortBy] = 1
const params: IParamsQuery = {
table: 'sectors',
table: '',
startRow: 0,
endRow: 10000,
filter: '',
@@ -80,42 +96,89 @@ export default defineComponent({
userId: ''
}
globalStore.loadTable(params).then((data) => {
arrSector.value = data.rows
})
if (true) {
params.table = 'sectors'
globalStore.loadTable(params).then((data) => {
arrSector.value = data.rows
})
params.table = 'sectorgoods'
globalStore.loadTable(params).then((data) => {
arrSectorGood.value = data.rows
})
params.table = 'skills'
globalStore.loadTable(params).then((data) => {
arrSkill.value = data.rows
})
params.table = 'skills'
globalStore.loadTable(params).then((data) => {
arrSkill.value = data.rows
})
params.table = 'goods'
globalStore.loadTable(params).then((data) => {
arrGood.value = data.rows
})
}
}
function createSector(cat: string) {
const myid = arrSector.value.length + 1
arrSector.value.push({_id: myid, descr: cat})
function created() {
inputfile.value = ''
if (caricaDatiToggle.value) {
caricadati()
}
}
function createSector(cat: string, cmd: number) {
let arr = []
if (cmd === shared_consts.Cmd.CAT_GOODS_TXT) {
arr = arrSectorGood.value
} else {
arr = arrSector.value
}
const myid = arr.length + 1
arr.push({_id: myid, descr: cat})
return myid
}
function findidSector(cat: string) {
const rec = arrSector.value.find((rec) => rec.descr === cat)
function findidSector(cat: string, cmd: number) {
let arr = []
if (cmd === shared_consts.Cmd.CAT_GOODS_TXT) {
arr = arrSectorGood.value
} else {
arr = arrSector.value
}
const rec = arr.find((rec) => rec.descr === cat)
if (rec) {
return rec._id
}
return 0;
}
function findidSkill(cat: string) {
const rec = arrSkill.value.find((rec) => rec.descr === cat)
function findidSkill(cat: string, cmd: number) {
let arr = []
if (cmd === shared_consts.Cmd.CAT_GOODS_TXT) {
arr = arrGood.value
} else {
arr = arrSkill.value
}
const rec = arr.find((rec) => rec.descr === cat)
if (rec) {
return rec._id
}
return 0;
}
function createSkill(cat: string) {
const myid = arrSkill.value.length + 1
arrSkill.value.push({_id: myid, descr: cat})
function createSkill(cat: string, cmd: number) {
let arr = []
if (cmd === shared_consts.Cmd.CAT_GOODS_TXT) {
arr = arrGood.value
} else {
arr = arrSkill.value
}
const myid = arr.length + 1
arr.push({_id: myid, descr: cat})
return myid
}
@@ -147,7 +210,7 @@ export default defineComponent({
arrstr = myarr[i].split(',')
sector = arrstr[0]
skill = arrstr[1]
sotto_cat = arrstr[2]
// sotto_cat = arrstr[2]
// sotto_cat = myarr[i].replace('\'', '\\\'')
// sector = myarr[i+2]
if (skill)
@@ -156,9 +219,9 @@ export default defineComponent({
sector = sector.replace('\'', '\\\'')
if (sector) {
idSector = findidSector(sector)
idSector = findidSector(sector, cmd)
if (!idSector) {
idSector = createSector(sector)
idSector = createSector(sector, cmd)
// sectors
strsectors += '{ \n'
@@ -168,19 +231,25 @@ export default defineComponent({
}
if (skill !== '') {
idSkill = findidSkill(skill)
idSkill = findidSkill(skill, cmd)
if (!idSkill) {
idSkill = createSkill(skill)
idSkill = createSkill(skill, cmd)
// skills
strskills += '{ \n'
strsectors += ' _id:' + idSkill + ','
strskills += ' idSector: [' + idSector + '],'
strskills += ' _id:' + idSkill + ','
if (cmd === shared_consts.Cmd.CAT_GOODS_TXT) {
strskills += ' idSectorGood: [' + idSector + '],'
}else if (cmd === shared_consts.Cmd.CAT_SKILL_TXT) {
strskills += ' idSector: [' + idSector + '],'
}
strskills += ' descr:\'' + skill + '\','
strskills += '}, \n'
}
}
/*
if (sotto_cat !== '') {
// subskills
strsubskills += '{ \n'
@@ -188,6 +257,8 @@ export default defineComponent({
strsubskills += ' descr:\'' + sotto_cat + '\','
strsubskills += '}, \n'
}
*/
}
indrecsub++
@@ -199,9 +270,11 @@ export default defineComponent({
ris += 'module.exports = {\n' +
' list: [' + strskills + ']'
ris += '<br><br><br><br>'
ris += 'module.exports = {\n' +
/*ris += 'module.exports = {\n' +
' list: [' + strsubskills + ']'
*/
return ris
}
@@ -241,7 +314,9 @@ export default defineComponent({
delim = ','
} else if ((cmd === shared_consts.Cmd.COMUNI) || (cmd === shared_consts.Cmd.CITIES_SERVER)) {
delim = ';'
} else if (cmd === shared_consts.Cmd.CAT_TXT) {
} else if (cmd === shared_consts.Cmd.CAT_SKILL_TXT) {
return importCmdTxt(cmd, testo);
} else if (cmd === shared_consts.Cmd.CAT_GOODS_TXT) {
return importCmdTxt(cmd, testo);
} else if (cmd === shared_consts.Cmd.CAT_NO_SPAZI) {
return importNoSpazi(cmd, testo);
@@ -326,6 +401,8 @@ export default defineComponent({
cosafare,
ListaCmd,
eseguiCmd,
caricaDatiToggle,
caricadati,
}
}
})

View File

@@ -1,6 +1,9 @@
<template>
<CMyPage img="" title="Import Data" keywords="" description="">
<div class="q-ma-sm">
<q-toggle v-model="caricaDatiToggle" @click="caricadati()"
label="Carica Dati"></q-toggle>
<br>
<q-select rounded outlined v-model="cosafare"
:options="ListaCmd"
@@ -16,10 +19,10 @@
<q-btn
label="Esegui"
@click="eseguiCmd"></q-btn>
{{risultato}}
<br><br><br><br><br>
VERSIONE HTML:
<br><br>
<div v-html="risultato"></div>
<br>
<br>

View File

@@ -78,24 +78,11 @@ export default defineComponent({
return fieldsTable
}
function userlist() {
if (static_data.functionality.ENABLE_REG_AYNI) {
return db_fieldsTable().colTableUsers
} else if (static_data.functionality.ENABLE_REG_CNM) {
return db_fieldsTable().colTableUsersCNM
} else if (static_data.functionality.ENABLE_REG_ISP) {
return db_fieldsTable().colTableUsersISP
} else {
return db_fieldsTable().colTableUsersBase
}
}
onMounted(mounted)
return {
arrfilterand,
userlist,
fieldsTable,
}
}
})

View File

@@ -3,7 +3,7 @@
<CGridTableRec
prop_mytable="users"
prop_mytitle="Lista Utenti"
:prop_mycolumns="userlist()"
:prop_mycolumns="fieldsTable.userlist()"
prop_colkey="_id"
nodataLabel="Nessun Utente"
noresultLabel="Il filtro selezionato non ha trovato nessun risultato"

View File

@@ -23,6 +23,7 @@ const msg_it = {
list: 'Lista',
select_image: 'Scegli un\'Immagine',
load_image: 'Carica un\'Immagine',
data_choose: 'Scegli la Data',
},
profile: {
chisei: 'Chi Sei? Raccontaci di te:',
@@ -483,7 +484,7 @@ const msg_it = {
numTesseraInterna: 'Tess',
codiceConacreis: 'Conacreis',
residency_address: 'Indirizzo di Residenza',
residency_city: 'Città di Residenza',
residency_city: 'Comune di Residenza',
residency_province: 'Provincia',
residency_zipcode: 'CAP',
residency_country: 'Paese',
@@ -492,7 +493,7 @@ const msg_it = {
dateofreg: 'Registrato',
dateofapproved: 'Approvato',
dateofbirth: 'Data di Nascita',
born_city: 'Città di Nascita',
born_city: 'Comune di Nascita',
born_province: 'Provincia di Nascita',
nationality_born: 'Paese di Nascita',
iscrizione_compilata: 'Iscritto',
@@ -830,8 +831,8 @@ const msg_it = {
ask_to_verify_reg: 'Chiedi Verif. Reg',
},
skill: {
name: 'Competenza',
city: 'Città',
name: 'Categoria',
city: 'Comune',
photos: 'Foto',
note: 'Note',
short_node: 'Breve Nota',
@@ -841,7 +842,7 @@ const msg_it = {
name: 'Livello',
},
statusSkill: {
name: 'Stato',
name: 'Di Persona / On Line',
},
store: {
description: 'Descrizione',
@@ -856,7 +857,7 @@ const msg_it = {
name: 'Categoria',
},
contribtype: {
name: 'Contributo'
name: 'In Cambio di'
},
bot: {
page: 'Pagina',
@@ -879,7 +880,8 @@ const msg_it = {
create_group: 'Crea Gruppo',
friends: 'Amici',
bacheca: 'Bacheca',
work: 'Lavoro',
services: 'Servizi',
goods: 'Beni',
test: 'Test',
groups: 'Gruppi',
request_friends: 'Rich. Amicizia',

View File

@@ -12,6 +12,84 @@ export const costanti = {
SHOW_GROUPINFO: 5,
SHOW_MYCARD: 10,
MAINCARDS: [
{
title: ' Beni ',
to: '/goods',
icon: 'fas fa-tshirt',
color: 'indigo',
hint: '',
},
{
title: 'Servizi',
to: '/services',
icon: 'fas fa-house-user',
color: 'red',
hint: '',
},
{
title: 'Luoghi',
to: '/places',
icon: 'fas fa-map-marker-alt',
color: 'blue',
hint: '',
disable: true,
},
{
title: 'Mobilità',
to: '/places',
icon: 'fas fa-taxi',
color: 'yellow-5',
textcolor: 'grey-10',
hint: '',
disable: true,
},
{
title: 'Scuola',
to: '/school',
icon: 'fas fa-book-open',
color: 'orange',
hint: '',
disable: true,
},
{
title: 'Alimenti',
to: '/foods',
icon: 'fas fa-utensils',
color: 'green-5',
hint: '',
disable: true,
},
{
title: 'Tue_Idee',
to: '/ideas',
icon: 'fas fa-lightbulb',
color: 'red-5',
textcolor: '',
hint: '',
disable: true,
small: true,
},
{
title: 'Aiuto',
to: '/bacheca',
icon: 'event',
color: 'pink-5',
hint: 'eventi, last minute, offerte di lavoro',
disable: true,
small: true,
},
{
title: 'Socializza',
to: '/socialising',
icon: 'fas fa-users',
color: 'purple-5',
hint: '',
disable: true,
small: true,
},
],
BINARY_CHECK: 1,
RISERVATO_PASSWORD: 1,

View File

@@ -4,6 +4,7 @@ import { lists } from './lists'
import { costanti } from './costanti'
import { useGlobalStore } from '@store/globalStore'
import { toolsext } from '@store/Modules/toolsext'
import { static_data } from '@/db/static_data'
const DeleteRec = {
name: 'deleterec',
@@ -351,6 +352,24 @@ export const colSectors = [
AddCol(DuplicateRec),
]
export const colSectorGoods = [
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'descr', label_trans: 'store.description' }),
AddCol({
name: 'idSectorGood',
label_trans: 'sectors.name',
fieldtype: costanti.FieldType.select,
jointable: 'sectorgoods',
}),
AddCol({ name: 'main', label_trans: 'store.main', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'color', label_trans: 'products.color' }),
AddCol({ name: 'theme', label_trans: 'products.theme' }),
AddCol({ name: 'img', label_trans: 'store.img' }),
AddCol({ name: 'icon', label_trans: 'store.icon' }),
AddCol(DeleteRec),
AddCol(DuplicateRec),
]
export const colCatGrps = [
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'descr', label_trans: 'store.description' }),
@@ -444,7 +463,24 @@ export const colSkills = [
AddCol(DuplicateRec),
AddCol(DeleteRec),
]
export const colGoods = [
// AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'descr', label_trans: 'store.description' }),
AddCol({ name: 'img', label_trans: 'store.img' }),
AddCol({ name: 'icon', label_trans: 'store.icon' }),
AddCol({
name: 'idSectorGood',
label_trans: 'sectors.name',
fieldtype: costanti.FieldType.multiselect,
jointable: 'sectorgoods',
}),
AddCol({ name: 'color', label_trans: 'products.color' }),
AddCol({ name: 'theme', label_trans: 'products.theme' }),
AddCol(DuplicateRec),
AddCol(DeleteRec),
]
/*
export const colSubSkills = [
// AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'descr', label_trans: 'store.description' }),
@@ -462,6 +498,8 @@ export const colSubSkills = [
AddCol(DeleteRec),
]
*/
export const colmyUserPeople = [
// AddCol({ name: '_id', label_trans: 'reg.id' }),
AddCol({ name: 'username', label_trans: 'reg.username_short' }),
@@ -493,7 +531,13 @@ export const colmyUserGroup = [
icon: 'category',
noshowlabel: true,
}),
AddCol({ name: 'descr', label_trans: 'proj.longdescr', required: true, noshowlabel: true, }),
AddCol(
{
name: 'descr', label_trans: 'proj.longdescr', required: true,
noshowlabel: true,
maxlength: 40
}
),
AddCol({
name: 'visibility',
label_trans: 'bot.visibility',
@@ -546,7 +590,155 @@ export const colmyUserGroup = [
]
export const colmyGoods = [
AddCol({
name: 'username',
label_trans: 'reg.username',
foredit: false,
tipovisu: costanti.TipoVisu.LINK,
fieldtype: costanti.FieldType.username_chip,
link: '/my/username',
noshowlabel: true,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
}),
AddCol({
name: 'idCity',
label_trans: 'skill.city',
fieldtype: costanti.FieldType.multiselect_by_server,
jointable: 'cities',
tablesel: 'cities',
noshowlabel: true,
icon: 'fas fa-map-marker-alt',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
remote_table: 'mycities',
remote_key: '_id',
remote_field: 'comune',
}),
AddCol({
name: 'adTypeGood',
label_trans: 'adTypes.name',
fieldtype: costanti.FieldType.select,
required: true,
jointable: 'adtypegoods',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit,
icon: 'fas fa-bullhorn',
noshowlabel: true,
}),
AddCol({
name: 'descr',
label_trans: 'proj.shortdescr',
fieldtype: costanti.FieldType.string,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
maxlength: 200,
required: true,
}),
AddCol({
name: 'idSectorGood',
label_trans: 'sectors.name',
fieldtype: costanti.FieldType.select,
required: true,
jointable: 'sectorgoods',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit,
visible: true,
icon: 'category',
}),
AddCol({
name: 'idGood',
label_trans: 'skill.name',
fieldtype: costanti.FieldType.select,
required: true,
jointable: 'goods',
filter_table: 'sectorgoods',
filter_field: 'idSectorGood',
noshowlabel: true,
icon: 'engineering',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
allowNewValue: true,
}),
AddCol({
name: 'idShipping',
label_trans: 'shipping.name',
fieldtype: costanti.FieldType.multiselect,
jointable: 'shippings',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
icon: 'fas fa-shipping-fast',
//icon: 'fas fa-hands-helping',
// isadvanced_field: true,
}),
AddCol({
name: 'idContribType',
label_trans: 'contribtype.name',
fieldtype: costanti.FieldType.multiselect,
jointable: 'contribtypes',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
icon: 'fas fa-hand-holding',
//icon: 'fas fa-hands-helping',
// isadvanced_field: true,
}),
AddCol({
name: '',
fieldtype: costanti.FieldType.separator,
required: false,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit,
visible: false,
}),
/*AddCol({
name: 'idSubSkill',
label_trans: 'skill.subskill',
fieldtype: costanti.FieldType.multiselect,
required: false,
jointable: 'subskills',
filter_table: 'skills',
filter_field: 'idSkill',
noshowlabel: true,
icon: 'far fa-id-card',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
allowNewValue: true,
isadvanced_field: true,
}),
*/
AddCol({
name: 'photos',
label_trans: 'skill.photos',
fieldtype: costanti.FieldType.listimages,
jointable: '',
showpicprofile_ifnotset: true,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
isadvanced_field: true,
}),
AddCol({
name: 'note', label_trans: 'proj.longdescr', fieldtype: costanti.FieldType.html,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
titlepopupedit: 'Dettagli', field_extra1: 'username', subfield_extra1: '',
isadvanced_field: true,
}),
//**ADDFIELD_MYSKILL
AddCol({
name: 'website', label_trans: 'reg.website', isadvanced_field: true, fieldtype: costanti.FieldType.link,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist
}),
AddCol(DuplicateRec),
AddCol(ModifRec),
AddCol(DeleteRec),
]
export const colmySkills = [
AddCol({
name: 'idStatusSkill',
label_trans: 'statusSkill.name',
fieldtype: costanti.FieldType.multiselect,
jointable: 'statusSkills',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
icon: 'mood',
required: true,
}),
AddCol({
name: 'username',
label_trans: 'reg.username',
@@ -586,7 +778,8 @@ export const colmySkills = [
fieldtype: costanti.FieldType.string,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
maxlength: 200
maxlength: 200,
required: true,
}),
AddCol({
name: 'idSector',
@@ -602,7 +795,6 @@ export const colmySkills = [
name: 'idSkill',
label_trans: 'skill.name',
fieldtype: costanti.FieldType.select,
required: true,
jointable: 'skills',
filter_table: 'sectors',
filter_field: 'idSector',
@@ -610,6 +802,18 @@ export const colmySkills = [
icon: 'engineering',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
allowNewValue: true,
required: false,
}),
AddCol({
name: 'idContribType',
label_trans: 'contribtype.name',
fieldtype: costanti.FieldType.multiselect,
jointable: 'contribtypes',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
icon: 'fas fa-hand-holding',
//icon: 'fas fa-hands-helping',
// isadvanced_field: true,
}),
AddCol({
name: '',
@@ -618,7 +822,7 @@ export const colmySkills = [
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit,
visible: false,
}),
AddCol({
/*AddCol({
name: 'idSubSkill',
label_trans: 'skill.subskill',
fieldtype: costanti.FieldType.multiselect,
@@ -633,6 +837,8 @@ export const colmySkills = [
isadvanced_field: true,
}),
*/
AddCol({
name: 'numLevel',
label_trans: 'level.name',
@@ -644,27 +850,6 @@ export const colmySkills = [
icon: 'grading',
isadvanced_field: true,
}),
AddCol({
name: 'idStatusSkill',
label_trans: 'statusSkill.name',
fieldtype: costanti.FieldType.multiselect,
jointable: 'statusSkills',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
icon: 'mood',
isadvanced_field: true,
}),
AddCol({
name: 'idContribType',
label_trans: 'contribtype.name',
fieldtype: costanti.FieldType.multiselect,
jointable: 'contribtypes',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
icon: 'currency_exchange',
//icon: 'fas fa-hands-helping',
isadvanced_field: true,
}),
AddCol({
name: 'photos',
label_trans: 'skill.photos',
@@ -681,14 +866,27 @@ export const colmySkills = [
isadvanced_field: true,
}),
//**ADDFIELD_MYSKILL
AddCol({ name: 'website', label_trans: 'reg.website', isadvanced_field: true, fieldtype: costanti.FieldType.link,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist }),
AddCol({
name: 'website', label_trans: 'reg.website', isadvanced_field: true, fieldtype: costanti.FieldType.link,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist
}),
AddCol(DuplicateRec),
AddCol(ModifRec),
AddCol(DeleteRec),
]
export const colmyBachecas = [
AddCol({
name: 'idStatusSkill',
label_trans: 'statusSkill.name',
fieldtype: costanti.FieldType.multiselect,
jointable: 'statusSkills',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
icon: 'mood',
isadvanced_field: true,
}),
AddCol({
name: 'username',
label_trans: 'reg.username',
@@ -728,7 +926,8 @@ export const colmyBachecas = [
fieldtype: costanti.FieldType.string,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
maxlength: 200
maxlength: 200,
required: true,
}),
AddCol({
name: 'idSector',
@@ -744,7 +943,6 @@ export const colmyBachecas = [
name: 'idSkill',
label_trans: 'skill.name',
fieldtype: costanti.FieldType.select,
required: true,
jointable: 'skills',
filter_table: 'sectors',
filter_field: 'idSector',
@@ -752,6 +950,7 @@ export const colmyBachecas = [
icon: 'engineering',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
allowNewValue: true,
required: false,
}),
AddCol({
name: '',
@@ -786,16 +985,6 @@ export const colmyBachecas = [
icon: 'grading',
isadvanced_field: true,
}),
AddCol({
name: 'idStatusSkill',
label_trans: 'statusSkill.name',
fieldtype: costanti.FieldType.multiselect,
jointable: 'statusSkills',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
icon: 'mood',
isadvanced_field: true,
}),
AddCol({
name: 'idContribType',
label_trans: 'contribtype.name',
@@ -803,7 +992,7 @@ export const colmyBachecas = [
jointable: 'contribtypes',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
noshowlabel: true,
icon: 'currency_exchange',
icon: 'fas fa-hand-holding',
//icon: 'fas fa-hands-helping',
isadvanced_field: true,
}),
@@ -823,8 +1012,10 @@ export const colmyBachecas = [
isadvanced_field: true,
}),
//**ADDFIELD_MYBACHECAS
AddCol({ name: 'website', label_trans: 'reg.website', isadvanced_field: true, fieldtype: costanti.FieldType.link,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist }),
AddCol({
name: 'website', label_trans: 'reg.website', isadvanced_field: true, fieldtype: costanti.FieldType.link,
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist
}),
AddCol(DuplicateRec),
AddCol(ModifRec),
AddCol(DeleteRec),
@@ -835,6 +1026,7 @@ export const colStatusSkills = [
AddCol({ name: 'descr', label_trans: 'store.description' }),
AddCol({ name: 'color', label_trans: 'products.color' }),
AddCol({ name: 'theme', label_trans: 'products.theme' }),
AddCol({ name: 'icon', label_trans: 'pages.icon' }),
AddCol(DeleteRec),
AddCol(DuplicateRec),
]
@@ -1239,6 +1431,19 @@ export const fields = {
}
export const fieldsTable = {
userlist() {
if (static_data.functionality.ENABLE_REG_AYNI) {
return fieldsTable.colTableUsers
} else if (static_data.functionality.ENABLE_REG_CNM) {
return fieldsTable.colTableUsersCNM
} else if (static_data.functionality.ENABLE_REG_ISP) {
return fieldsTable.colTableUsersISP
} else {
return fieldsTable.colTableUsersBase
}
},
getrecTableList(mytable: string) {
return this.tablesList.find((rec) => rec.value === mytable)
},
@@ -1771,7 +1976,10 @@ export const fieldsTable = {
name: 'profile.nationality', field: 'profile', subfield: 'nationality', label_trans: 'reg.nationality',
}),
AddCol({ name: 'profile.dateofbirth', label_trans: 'reg.dateofbirth', fieldtype: costanti.FieldType.date }),
AddCol({ name: 'profile.born_city', label_trans: 'reg.born_city', fieldtype: costanti.FieldType.string }),
AddCol({
name: 'born_city_id', label_trans: 'reg.born_city', fieldtype: costanti.FieldType.select,
jointable: 'cities',
}),
AddCol({ name: 'profile.born_province', label_trans: 'reg.born_province', fieldtype: costanti.FieldType.string }),
AddCol({ name: 'profile.born_country', label_trans: 'reg.born_country', fieldtype: costanti.FieldType.string }),
AddCol({
@@ -1941,6 +2149,7 @@ export const fieldsTable = {
tableForUsers: [
'myskills',
'mygoods',
'mybachecas',
],
@@ -1952,6 +2161,7 @@ export const fieldsTable = {
tableWithUsername: [
'myskills',
'mygoods',
'mybachecas',
],
@@ -2215,6 +2425,13 @@ export const fieldsTable = {
colkey: '_id',
collabel: (rec: any) => `${rec.descr}`,
},
{
value: toolsext.TABMYGOODS,
label: 'Beni',
columns: colmyGoods,
colkey: '_id',
collabel: (rec: any) => `${rec.descr}`,
},
{
value: 'skills',
label: 'Competenze',
@@ -2223,15 +2440,24 @@ export const fieldsTable = {
collabel: 'descr',
},
{
value: 'goods',
label: 'Beni',
columns: colGoods,
colkey: '_id',
collabel: 'descr',
},
/*{
value: 'subskills',
label: 'Specializzazione',
columns: colSubSkills,
colkey: '_id',
collabel: 'descr',
},
*/
{
value: 'statusSkills',
label: 'Stato Attuale',
label: 'Di Persona / OnLine',
columns: colStatusSkills,
colkey: '_id',
collabel: 'descr',
@@ -2243,6 +2469,13 @@ export const fieldsTable = {
colkey: '_id',
collabel: 'descr',
},
{
value: 'sectorgoods',
label: 'Settori Beni',
columns: colSectorGoods,
colkey: '_id',
collabel: 'descr',
},
{
value: 'catgrps',
label: 'Categorie',
@@ -2264,6 +2497,13 @@ export const fieldsTable = {
colkey: '_id',
collabel: 'descr',
},
{
value: 'adtypegoods',
label: 'Offro / Cerco',
columns: colAdType,
colkey: '_id',
collabel: 'descr',
},
{
value: 'cities',
label: 'Comune',
@@ -2314,10 +2554,17 @@ export const fieldsTable = {
{
value: 'mygroups',
label: 'Gruppi',
columns: colTableMyGroup,
columns: colmyUserGroup,
colkey: 'groupname',
collabel: 'groupname',
},
{
value: 'shippings',
label: 'Spedizione',
columns: colTableGeneric,
colkey: 'value',
collabel: 'label',
},
],
}

View File

@@ -12,7 +12,7 @@ import {
ITodo,
IUserFields,
Privacy,
TipoVisu, IGroup, IMySkill, IMyBacheca,
TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery,
} from '@model'
import { lists } from '@store/Modules/lists'
@@ -1751,7 +1751,6 @@ export const tools = {
// console.log('param1', par.param1)
globalStore.DeleteRec({ table, id: par.param1 }).then((ris) => {
if (ris) {
debugger
mythis.ActionAfterYes(func, par.param2, null)
this.showPositiveNotif(mythisq, t('db.deletedrecord'))
} else {
@@ -4928,7 +4927,7 @@ export const tools = {
_id: 0,
idSector: 0,
idSkill: 0,
idSubSkill: [],
// idSubSkill: [],
idStatusSkill: [],
idContribType: [],
idCity: [],
@@ -4942,6 +4941,38 @@ export const tools = {
}
},
getdefaultnewrec_MyGoods(): any {
return {
_id: 0,
idSectorGood: 0,
idGood: 0,
idShipping: [],
idStatusSkill: [],
idContribType: [],
idCity: [],
NumLevel: 0,
adType: 0,
photos: [],
note: '',
//**ADDFIELD_MYSKILL
website: '',
descr: '',
}
},
getdefaultnewrec_MyGroup(): any {
return {
_id: 0,
groupname: '',
photos: [],
visibility: 0,
admins: [],
req_users: [],
blocked: false,
website: '',
link_telegram: '',
}
},
getdefaultnewrec_MyBacheca(): any {
@@ -4949,7 +4980,7 @@ export const tools = {
_id: 0,
idSector: 0,
idSkill: 0,
idSubSkill: [],
// idSubSkill: [],
idStatusSkill: [],
idContribType: [],
idCity: [],

View File

@@ -61,6 +61,7 @@ export const toolsext = {
TABFRIENDS: 'friends',
TABMYGROUPS: 'mygroups',
TABMYSKILLS: 'myskills',
TABMYGOODS: 'mygoods',
TABMYBACHECAS: 'mybachecas',
TABNAVI: 'navi',
TABLISTAINGRESSO: 'listaingressos',

View File

@@ -118,10 +118,13 @@ export const useGlobalStore = defineStore('GlobalStore', {
URL_RESTORE: '',
levels: [],
adtypes: [],
adtypegoods: [],
skills: [],
subSkills: [],
goods: [],
// subSkills: [],
statusSkills: [],
sectors: [],
sectorgoods: [],
catgrps: [],
cities: [],
}),
@@ -235,14 +238,20 @@ export const useGlobalStore = defineStore('GlobalStore', {
return state.levels
else if (table === 'adtypes')
return state.adtypes
else if (table === 'adtypegoods')
return state.adtypegoods
else if (table === 'skills')
return state.skills
else if (table === 'subskills')
return state.subSkills
else if (table === 'goods')
return state.goods
// else if (table === 'subskills')
// return state.subSkills
else if (table === 'statusSkills')
return state.statusSkills
else if (table === 'sectors')
return state.sectors
else if (table === 'sectorgoods')
return state.sectorgoods
else if (table === 'catgrps')
return state.catgrps
else {
@@ -1240,12 +1249,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
this.departments = (res.data.departments) ? [...res.data.departments] : []
this.levels = (res.data.levels) ? [...res.data.levels] : []
this.skills = (res.data.skills) ? [...res.data.skills] : []
this.subSkills = (res.data.subSkills) ? [...res.data.subSkills] : []
this.goods = (res.data.goods) ? [...res.data.goods] : []
// this.subSkills = (res.data.subSkills) ? [...res.data.subSkills] : []
this.statusSkills = (res.data.statusSkills) ? [...res.data.statusSkills] : []
this.sectors = (res.data.sectors) ? [...res.data.sectors] : []
this.sectorgoods = (res.data.sectorgoods) ? [...res.data.sectorgoods] : []
this.cities = (res.data.cities) ? [...res.data.cities] : []
this.catgrps = (res.data.catgrps) ? [...res.data.catgrps] : []
this.adtypes = (res.data.adtypes) ? [...res.data.adtypes] : []
this.adtypegoods = (res.data.adtypegoods) ? [...res.data.adtypegoods] : []
// console.log('res.data.cart', res.data.cart)
@@ -1390,6 +1402,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
if (table === 'lang') return shared_consts.Lang
if (table === 'regions') return shared_consts.Regions
if (table === 'provinces') return shared_consts.Provinces
if (table === 'shippings') return shared_consts.Shippings
let myarr = this.getListByTable(table)

View File

@@ -213,6 +213,12 @@
@click="EseguiFunz('setVerifiedByAportadorToALL')"></q-btn>
<br>
</div>
<div class="row">
<q-btn
label="1. Cancella Tabelle (Sectors, SectorGoods, Skills, Goods)" color="negative"
@click="EseguiFunz('emptyTabCatServiziBeni')"></q-btn>
<br>
</div>
<div class="row">
<q-btn
label="1. Cancella e Ricrea tutte le Tabelle (Sector, Skill, SubSkill, Contribtype, AdType)" color="negative"
@@ -232,12 +238,12 @@
<br>
</div>
<div class="row">
<!--<div class="row">
<q-btn
label="copyFrom1To13" color="negative"
@click="EseguiFunz('copyFrom1To13')"></q-btn>
<br>
</div>
</div>-->
<div class="row">
<q-btn

View File

@@ -1,7 +1,12 @@
<template>
<q-page class="">
<CTestServer></CTestServer>
<CTestServer></CTestServer>
<!--<iframe src="https://discord.com/widget?id=941826887821434890&theme=dark" width="350" height="500"
allowtransparency="true" frameborder="0"
sandbox="allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"></iframe>
-->
</q-page>

View File

@@ -140,9 +140,10 @@
tablesel="cities"
mykey="profile"
:useinput="false"
mysubkey="born_city"
mysubkey="born_city_id"
jointable="cities"
:pickup="true"
:type="costanti.FieldType.string">
:type="costanti.FieldType.select_by_server">
</CMyFieldDb>
<CMyFieldDb

View File

@@ -10,14 +10,14 @@
:prop_mycolumns="colmyUserPeople"
prop_colkey="_id"
col_title="username"
:vertical="-1"
:vertical="costanti.VISUTABLE_LISTA"
nodataLabel=" "
:prop_search="true"
hint="Username da trovare"
:finder="true"
:choose_visutype="true"
:finder_noNull="true"
:options="shared_consts.OPTIONS_SEARCH_ONLY_FULL_WORDS"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
:butt_modif_new="false"
noresultLabel="Username non trovato"
:arrfilters="arrfilterand"

View File

@@ -135,7 +135,7 @@
:finder="false"
:choose_visutype="true"
:finder_noNull="false"
:options="shared_consts.OPTIONS_SEARCH_USER_ONLY_FULL_WORDS"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
:butt_modif_new="false"
noresultLabel="Username non trovato"
:arrfilters="arrfilterand"
@@ -166,7 +166,7 @@
:finder="false"
:choose_visutype="false"
:finder_noNull="false"
:options="shared_consts.OPTIONS_SEARCH_USER_ONLY_FULL_WORDS"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
:butt_modif_new="false"
noresultLabel="Username non trovato"
:arrfilters="arrfilterand"

View File

@@ -32,6 +32,33 @@ export default defineComponent({
arrfilterand.value = []
searchList.value = [
{
label: 'Provincia',
table: 'provinces',
key: 'idProvince',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + 'provinces', costanti.FILTER_TUTTI),
addall: true,
arrvalue: [],
filter: null,
useinput: true,
icon: 'flag',
},
{
label: 'Comune',
table: 'cities',
key: 'idCity',
type: costanti.FieldType.select_by_server,
value: 0,
addall: true,
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'cities', costanti.FILTER_TUTTI),
useinput: true,
filter: null,
// filter: getFilterCitiesByProvince,
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
icon: 'fas fa-map-marker-alt',
},
{
label: 'Categorie',
table: 'catgrps',
@@ -42,32 +69,7 @@ export default defineComponent({
filter: null,
addall: true,
useinput: false,
},
{
label: 'Provincia',
table: 'provinces',
key: 'idProvince',
type: costanti.FieldType.multiselect,
value: 0,
addall: true,
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'provinces', [costanti.FILTER_TUTTI]),
filter: null,
useinput: true,
icon: 'flag',
},
{
label: 'Città',
table: 'cities',
key: 'idCity',
type: costanti.FieldType.multiselect_by_server,
value: 0,
addall: true,
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'cities', [costanti.FILTER_TUTTI]),
useinput: true,
filter: null,
// filter: getFilterCitiesByProvince,
// param1: shared_consts.PARAM_SHOW_PROVINCE,
tablesel: 'cities',
icon: 'engineering',
},
]
@@ -80,6 +82,10 @@ export default defineComponent({
})
function getdefaultnewrec(): any {
return tools.getdefaultnewrec_MyGroup()
}
function extraparams() {
let lk_tab = 'mygroups'
let lk_LF = 'userId'
@@ -149,6 +155,7 @@ export default defineComponent({
searchList,
colmyUserGroup,
extraparams,
getdefaultnewrec,
}
}
})

View File

@@ -17,7 +17,7 @@
:finder="true"
:choose_visutype="true"
:finder_noNull="false"
:options="shared_consts.OPTIONS_SEARCH_ONLY_FULL_WORDS"
:options="shared_consts.OPTIONS_SEARCH_USER_ALL_WORDS"
:butt_modif_new="true"
noresultLabel="nome del gruppo non trovato"
:arrfilters="arrfilterand"
@@ -26,6 +26,7 @@
:showType="costanti.SHOW_GROUPINFO"
keyMain=""
:showCol="false"
:defaultnewrec="getdefaultnewrec"
:extraparams="extraparams()">
</CGridTableRec>

View File

@@ -17,6 +17,7 @@ import { costanti } from '@costanti'
import { IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { static_data } from '@/db/static_data'
import { fieldsTable } from '@store/Modules/fieldsTable'
import MixinUsers from '@/mixins/mixin-users'
@@ -120,6 +121,7 @@ export default defineComponent({
animation,
isMyRecord,
getRefLink,
fieldsTable,
}
}
})

View File

@@ -20,7 +20,20 @@
{{ myuser.username }}
</div>
<div class="col-12 text-h7">
<span v-if="myuser.profile && myuser.profile.born_city">{{ myuser.profile.born_city }}</span> <span
<span v-if="myuser.profile && myuser.profile.born_city_id">
<CMyFieldRec
title="Comune"
table="users"
:id="myuser._id"
:columns="fieldsTable.userlist()"
:rec="mygrp"
field="profile.born_city_id"
:canEdit="false"
:canModify="false">
</CMyFieldRec>
{{ myuser.profile.born_city_str }}</span> <span
v-if="myuser.profile && myuser.profile.nationality && myuser.profile.nationality !== 'Italia'">({{
myuser.profile.nationality
}})</span>