Aggiungere "San Marino" e suoi comuni

Corretto Filtro a mano della ricerca
Creare filtro ricerca per trovare la sottocategoria o categoria -> Skill e SubSkill
This commit is contained in:
paoloar77
2022-02-12 02:19:49 +01:00
parent 7c0c2fef39
commit b21a7d1885
63 changed files with 541 additions and 752 deletions

View File

@@ -90,6 +90,17 @@ export default defineComponent({
searchList.value = [
{
label: 'Offro/Cerco',
table: 'adtypes',
key: 'adType',
value: tools.getCookie(tools.COOK_SEARCH + 'adtypes', costanti.FILTER_TUTTI),
arrvalue: [],
addall: true,
type: costanti.FieldType.select,
filter: null,
useinput: false,
},
{
label: 'Settore',
table: 'sectors',
@@ -204,27 +215,6 @@ export default defineComponent({
}
async function createNewRecordInUserTable() {
console.log('createNewRecordInUserTable')
let mydata = {
table: mytable,
data: {
userId: userStore.my._id,
data: {},
field: 'myskills'
}
};
if (props.defaultnewrec) {
mydata.data.data = props.defaultnewrec
}
console.log('mydata', mydata)
const data = await globalStore.saveSubRec(mydata)
}
function getdefaultnewrec(): IMySkill {
return {
_id: 0,
@@ -235,9 +225,10 @@ export default defineComponent({
idContribType: [],
idCity: [],
NumLevel: 0,
adType: 0,
photos: [],
note: '',
subTitle: '',
descr: '',
}
}
@@ -263,13 +254,15 @@ export default defineComponent({
idSector: 1,
idSkill: 1,
idSubSkill: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
idCity: 1,
numLevel: 1,
adType: 1,
photos: 1,
note: 1,
subTitle: 1,
descr: 1,
date_created: 1,
date_updated: 1,
userId: 1,

View File

@@ -18,7 +18,9 @@
prop_mytitle=""
:prop_mycolumns="colmySkills"
prop_colkey="idSkill"
col_title="subTitle"
col_title="descr"
col_footer="idCity"
col_tabfooter="mycities"
:vertical="-1"
:nodataLabel="idSector > 0 ? 'Nessuna Competenza trovata': 'Selezionare un Settore'"
:prop_search="true"

View File

@@ -18,7 +18,6 @@
</div>
</q-card>
<div v-if="!isInModif && getlistimages().length <= 0 && imagebak">
<q-card :class="getclass()" @click="ImgFullScreen(mygallery)">
<q-img
:src="imagebak" :class="getclimg()">

View File

@@ -20,6 +20,7 @@ import { lists } from '@store/Modules/lists'
import { IParamsQuery } from 'model'
import { CMyPopupEdit } from '../CMyPopupEdit'
import { CMyFriends } from '../CMyFriends'
import { CMyUser } from '../CMyUser'
import { CMyGroups } from '../CMyGroups'
import { CMyFieldDb } from '../CMyFieldDb'
import { CMySelect } from '../CMySelect'
@@ -172,6 +173,16 @@ export default defineComponent({
required: false,
default: '',
},
col_footer: {
type: String,
required: false,
default: '',
},
col_tabfooter: {
type: String,
required: false,
default: '',
},
showCol: {
type: Boolean,
required: false,
@@ -193,7 +204,7 @@ export default defineComponent({
default: '',
},
},
components: { CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends, CMyGroups },
components: { CMyPopupEdit, CTitleBanner, CMyFieldDb, CMySelect, CMyFriends, CMyGroups, CMyUser },
setup(props, { emit }) {
const $q = useQuasar()
const { t } = useI18n()
@@ -342,6 +353,8 @@ export default defineComponent({
if (userId === userStore.my._id) {
// E' il mio, quindi modificalo
return true
} else {
return false
}
} else {
return false
@@ -878,9 +891,7 @@ export default defineComponent({
pagination.value = props.prop_pagination
myvertical.value = props.vertical
if (props.finder) {
myvertical.value = tools.getCookie('myv', 0)
}
myvertical.value = tools.getCookie('myv_' + props.prop_mytable, props.vertical)
}
function mounted() {
@@ -1019,7 +1030,7 @@ export default defineComponent({
function checkIfColShow(field: string | undefined) {
let vis = true
if (props.prop_mytable === 'myskills' && !props.prop_search) {
if (shared_consts.TABLES_NOT_SHOW_IF_USERNAME.includes(props.prop_mytable) && !props.prop_search) {
if (field === 'username') {
vis = false
}
@@ -1333,6 +1344,17 @@ export default defineComponent({
return ''
}
function getLabelFooterByRow(row: any) {
if (props.col_footer) {
let mycol = fieldsTable.getColByTable(tablesel.value, props.col_footer)
if (mycol) {
return tools.getValueByRemoteField(mycol, row, row[props.col_footer], props.col_tabfooter)
}
}
return ''
}
// onMounted(mounted)
created()
@@ -1413,6 +1435,7 @@ export default defineComponent({
showColCheck,
getValueExtra,
shared_consts,
getLabelFooterByRow,
}
}
})

View File

@@ -247,13 +247,13 @@
<div v-if="choose_visutype" class="">
<q-radio v-model="myvertical" :val="2" label="Lista"
@update:model-value="tools.setCookie('myv', myvertical) "/>
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
<q-radio v-if="mytable === toolsext.TABMYGROUPS" v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_GROUP" label="Scheda"
@update:model-value="tools.setCookie('myv', myvertical) "/>
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
<q-radio v-else v-model="myvertical" :val="costanti.VISUTABLE_SCHEDA_USER" label="Scheda"
@update:model-value="tools.setCookie('myv', myvertical) "/>
<q-radio v-model="myvertical" :val="0" label="Tabella"
@update:model-value="tools.setCookie('myv', myvertical) "/>
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
<q-radio v-if="$q.screen.gt.xs" v-model="myvertical" :val="0" label="Tabella"
@update:model-value="tools.setCookie('myv_' + prop_mytable, myvertical) "/>
</div>
</template>
@@ -303,8 +303,18 @@
</template>
<template v-slot:item="props">
<div v-if="((showType === costanti.SHOW_USERINFO) && myvertical !== costanti.VISUTABLE_SCHEDA_USER) || ((myvertical === 2) && (tablesel === 'users' || tablesel === 'myskills'))" class="fill-all-width">
<div v-if="((showType === costanti.SHOW_USERINFO) && myvertical !== costanti.VISUTABLE_SCHEDA_USER) || ((myvertical === 2) && (shared_consts.TABLES_VISU_LISTA_USER.includes(tablesel)))" class="fill-all-width">
<div>
<CMyUser
:mycontact="props.row"
:visu="visufind"
:groupname="extrafield"
:labelextra="col_title ? props.row[col_title] : ''"
:labelFooter="col_footer ? getLabelFooterByRow(props.row) : ''"
>
</CMyUser>
<!--
<CMyFriends
v-model="filter"
:finder="false"
@@ -313,6 +323,8 @@
:groupname="extrafield"
:labelextra="props.row[col_title]"
/>
-->
<q-separator></q-separator>
</div>
</div>
@@ -330,12 +342,14 @@
</div>
<div
v-else
class="q-pa-xs col-xs-12 col-sm-6 col-md-4 col-lg-3 grid-style-transition"
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' : 'my-card'">
<q-bar v-if="!visuinpage" dense class="bg-primary text-white full-height">
<span class=""> {{ props.row[col_title] }} </span>
<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 && canModifyThisRec(props.row)" dense class="bg-primary text-white full-height">
<span v-if="props.row['username']">{{props.row['username']}}</span>
<q-space/>
<q-btn
@@ -352,7 +366,8 @@
{{ props.row[col_title] }}
</q-toolbar-title>
</q-toolbar>-->
<q-card-section class="inset-shadow">
<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))"
@@ -438,7 +453,7 @@
</div>
</div>
</div>
<q-dialog v-model="newRecordBool" @hide="hidewindow">
<q-dialog v-model="newRecordBool" @hide="hidewindow" :maximized="true">
<q-card class="dialog_card">
<q-bar dense class="bg-primary text-white">
Nuovo:
@@ -483,8 +498,7 @@
<q-dialog v-model="editRecordBool">
<q-card class="dialog_card">
<q-bar dense class="bg-primary text-white full-height">
<span v-if="mytitle">{{ mytitle }}</span>
<span v-else>{{ recModif[col_title] }}</span>
<span class="ellipsis">{{ recModif[col_title] }}</span>
<q-space/>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-bar>

View File

@@ -60,8 +60,8 @@ export default defineComponent({
const toolbarcomp = ref([
['left', 'center', 'right', 'justify'],
['bold', 'italic', 'underline', 'strike'],
['token', 'hr', 'link', 'custom_btn'],
['print', 'fullscreen'], [
['token', 'hr', 'link', 'custom_btn', 'print', 'fullscreen'],
[
{
label: $q.lang.editor.formatting,
icon: $q.iconSet.editor.formatting,

View File

@@ -53,7 +53,7 @@
<q-btn v-if="col.tipovisu === costanti.TipoVisu.LINK && myvalue"
type="a" rounded size="md"
:class="{disabled: disable }"
color="white" text-color="blue" :icon="`img:`+userStore.getImgByUsername(myvalue)" :to="col.link.replace(col.name, myvalue)"
color="white" text-color="blue" :icon="`img:`+userStore.getImgUserByUsername(myvalue)" :to="col.link.replace(col.name, myvalue)"
:label="myvalue"
>
</q-btn>
@@ -108,7 +108,7 @@
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.listimages" style="text-align: center;">
<CGallery
:imagebak="col.showpicprofile_ifnotset ? userStore.getImgByProfile(row) : ''"
:imagebak="col.showpicprofile_ifnotset ? userStore.getImgByProfile(row, true) : ''"
:title="getTitleGall()"
:directory="getDirectoryGall()"
:imgGall="myvalue"
@@ -122,7 +122,7 @@
<div v-if="canEdit">
{{ $t('reg.photo') }}
<CGallery
:imagebak="col.showpicprofile_ifnotset ? userStore.getImgByProfile(row['profile']) : ''"
:imagebak="col.showpicprofile_ifnotset ? userStore.getImgByProfile(row['profile'], true) : ''"
:title="getTitleGall()"
:directory="getDirectoryGall()"
:imgGall="[{ imagefile: myvalue }]"

View File

@@ -35,6 +35,16 @@ export default defineComponent({
type: String,
required: false,
default: '',
},
labelFooter: {
type: String,
required: false,
default: '',
},
notsetcmd: {
type: Boolean,
required: false,
default: false,
}
},
@@ -79,7 +89,11 @@ export default defineComponent({
}
function setCmd($q: any, cmd: number, myusername: string, value: any, groupname: string) {
emit('setCmd', $q, cmd, myusername, value, groupname)
if (props.notsetcmd) {
tools.setCmd($q, cmd, myusername, value, groupname)
}else {
emit('setCmd', $q, cmd, myusername, value, groupname)
}
}
onMounted(mounted)

View File

@@ -12,6 +12,8 @@
<q-item-label>{{ contact.username }} <span v-if="contact.name">({{ contact.name }} {{ contact.surname }})</span>
</q-item-label>
<q-item-label v-if="contact.profile" caption lines="1"><em>{{ contact.profile.qualifica }}</em></q-item-label>
<q-item-label caption lines="1"></q-item-label>
<q-item-label v-if="labelFooter" lines="1"><em>{{ labelFooter }}</em></q-item-label>
</q-item-section>
<q-item-section side v-if="visu === costanti.FRIENDS">

View File

@@ -44,26 +44,6 @@ export default defineComponent({
const globalStore = useGlobalStore()
const userStore = useUserStore()
async function createNewRecordInUserTable() {
console.log('createNewRecordInUserTable')
let mydata = {
table: mytable,
data: {
userId: userStore.my._id,
data: {},
field: 'myskills'
}
}
if (props.defaultnewrec) {
mydata.data.data = props.defaultnewrec
}
console.log('mydata', mydata)
const data = await globalStore.saveSubRec(mydata)
}
function getdefaultnewrec(): IMySkill {
return {
@@ -75,9 +55,10 @@ export default defineComponent({
idContribType: [],
idCity: [],
NumLevel: 0,
adType: 0,
photos: [],
note: '',
subTitle: '',
descr: '',
}
}
@@ -106,13 +87,15 @@ export default defineComponent({
idSector: 1,
idSkill: 1,
idSubSkill: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
idCity: 1,
numLevel: 1,
adType: 1,
photos: 1,
note: 1,
subTitle: 1,
descr: 1,
date_created: 1,
date_updated: 1,
userId: 1,
@@ -137,13 +120,15 @@ export default defineComponent({
idSector: 1,
idSkill: 1,
idSubSkill: 1,
myskill: 1,
idStatusSkill: 1,
idContribType: 1,
idCity: 1,
numLevel: 1,
adType: 1,
photos: 1,
note: 1,
subTitle: 1,
descr: 1,
date_created: 1,
date_updated: 1,
comune: 1,

View File

@@ -7,7 +7,8 @@
prop_mytitle=""
:prop_mycolumns="colmySkills"
prop_colkey="idSkill"
col_title="subTitle"
col_title="descr"
col_footer="idCity"
:vertical="-1"
:choose_visutype="!visuinpage"
:butt_modif_new="!visuinpage"

View File

@@ -0,0 +1,30 @@
import { computed, defineComponent, PropType, ref } from 'vue'
import { ICalcStat, IOperators } from '../../model'
import { useUserStore } from '../../store/UserStore'
import { useRouter } from 'vue-router'
import { useGlobalStore } from '../../store/globalStore'
import { useI18n } from '../../boot/i18n'
import { CTitleBanner } from '@/components/CTitleBanner'
import { tools } from '@store/Modules/tools'
export default defineComponent({
name: 'CUserNonVerif',
components: {
CTitleBanner
},
props: {
},
setup(props) {
const userStore = useUserStore()
const $router = useRouter()
const globalStore = useGlobalStore()
const { t } = useI18n();
return {
userStore,
tools,
}
},
})

View File

@@ -0,0 +1,14 @@
<template>
<div class="q-ma-md">
<CTitleBanner title="Verifica">
La verifica è in corso. Ti arriverà un messaggio dal Bot quando sarai abilitato.
</CTitleBanner>
</div>
</template>
<script lang="ts" src="./CUserNonVerif.ts">
</script>
<style lang="scss" scoped>
@import './CUserNonVerif.scss';
</style>

View File

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

View File

@@ -80,6 +80,7 @@ export default defineComponent({
getNumMsg,
getNumMsgUnread,
getMsgText,
isVerified,
paotest } = MixinUsers();
function isonline() {
@@ -382,10 +383,6 @@ export default defineComponent({
return userStore.isLogged
}
function isEmailVerified() {
return userStore.my.verified_email
}
function clickregister() {
rightDrawerOpen.value = false
@@ -445,7 +442,6 @@ export default defineComponent({
lang,
langshort,
isLogged,
isEmailVerified,
getnumOrdersCart,
t,
isonline,
@@ -485,6 +481,7 @@ export default defineComponent({
paotest,
logoutHandler,
isUserNotAuth,
isVerified,
}
},

View File

@@ -129,11 +129,18 @@
<q-img :src="getMyImgforIcon()" :alt="Username()" img-class=""/>
</q-avatar>-->
<q-avatar v-if="static_data.functionality.SHOW_USER_MENU && isLogged()"
<q-avatar v-if="static_data.functionality.SHOW_USER_MENU && isLogged() && getMyImg()"
size="36px" class="center_img cursor-pointer"
@click="rightDrawerOpen = !rightDrawerOpen">
<q-img ratio="1" fit="conver" :src="getMyImg()" :alt="Username()" img-class="imgprofile_small" stretch="false" />
<q-img ratio="1" fit="conver" :src="getMyImg()" :alt="Username()" img-class="imgprofile_small" stretch="false"
placeholder-src="https://placeimg.com/36/36/nature"/>
</q-avatar>
<q-btn
v-else
class="q-mx-xs iconprofile_small" round dense flat
@click="rightDrawerOpen = !rightDrawerOpen" :icon="getMyImgforIcon()" :color="getcolormenu()">
</q-btn>
<!--<q-btn
class="q-mx-xs iconprofile_small" v-if="static_data.functionality.SHOW_USER_MENU && isLogged()" round dense flat
@@ -188,7 +195,7 @@
dense flat round icon="close" @click="rightDrawerOpen = !rightDrawerOpen">
</q-btn>
<div v-if="isLogged()" class="text-weight-bold text-user">{{ Username() }} - {{ myName() }}
<div v-if="isLogged()" class="text-weight-bold text-user">{{ Username() }}<span v-if="myName()"> - {{ myName() }}</span>
</div>
<div class="row justify-evenly q-pa-xs-sm">
<div v-if="isLogged() && isAdmin()" class="text-weight-bold text-user bg-red q-px-xs">Admin</div>
@@ -203,7 +210,7 @@
{{ t('user.loggati') }}
</div>
<div v-if="isLogged() && !isEmailVerified()" class="text-verified">{{
<div v-if="isLogged() && !isVerified()" class="text-verified">{{
t('components.authentication.email_verification.verify_email')
}}
</div>