- added Footer (mobile version)

- fix menu and qselect
This commit is contained in:
paoloar77
2022-02-10 01:04:17 +01:00
parent b4ad353aef
commit e2875e2400
24 changed files with 144 additions and 52 deletions

View File

@@ -416,7 +416,7 @@ const baseroutes: IListRoutes[] = [
active: true, active: true,
order: 130, order: 130,
path: '/friends', path: '/friends',
materialIcon: 'fas fa-users', materialIcon: 'eva-people-outline',
name: 'mypages.friends', name: 'mypages.friends',
component: () => import('@/views/user/myfriends/myfriends.vue'), component: () => import('@/views/user/myfriends/myfriends.vue'),
meta: { requiresAuth: true }, meta: { requiresAuth: true },
@@ -583,7 +583,7 @@ const baseroutes: IListRoutes[] = [
inmenu: true, inmenu: true,
}, },
{ {
active: true, active: false,
order: 80, order: 80,
path: '/calendario-eventi', path: '/calendario-eventi',
materialIcon: 'event', materialIcon: 'event',

View File

@@ -23,15 +23,6 @@
<div v-if="isUserOk()"> <div v-if="isUserOk()">
<div v-if="isUserOk()"> <div v-if="isUserOk()">
<q-banner rounded class="bg-primary text-white">
<div class="text-h6 text-center">
Ora Accedi al Bot Telegram <br>
per vedere tutti i Menu e le chat !
</div>
<template v-slot:action>
<q-btn icon="fab fa-telegram" flat color="white" label="Accedi al Bot Telegram" type="a" target="__blank" :href="getLinkBotTelegram()"/>
</template>
</q-banner>
</div> </div>
</div> </div>

View File

@@ -583,7 +583,7 @@ const baseroutes: IListRoutes[] = [
inmenu: true, inmenu: true,
}, },
{ {
active: true, active: false,
order: 80, order: 80,
path: '/calendario-eventi', path: '/calendario-eventi',
materialIcon: 'event', materialIcon: 'event',

BIN
public/images/noimg.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -49,7 +49,7 @@ module.exports = configure((ctx) => ({
extras: [ extras: [
// 'ionicons-v4', // 'ionicons-v4',
// 'mdi-v5', // 'mdi-v5',
// 'eva-icons', 'eva-icons',
// 'themify', // 'themify',
// 'line-awesome', // 'line-awesome',
'ionicons-v4', 'ionicons-v4',

View File

@@ -5,6 +5,7 @@ import { useI18n } from '@src/boot/i18n'
import { useGlobalStore } from '@store/globalStore' import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore' import { useUserStore } from '@store/UserStore'
import { Header } from '@/components/Header' import { Header } from '@/components/Header'
import { MyFooter } from '@/components/MyFooter'
import { computed } from 'vue' import { computed } from 'vue'
import { CProvaPao } from '@/components/CProvaPao' import { CProvaPao } from '@/components/CProvaPao'
import { tools } from '@store/Modules/tools' import { tools } from '@store/Modules/tools'
@@ -12,6 +13,7 @@ import { tools } from '@store/Modules/tools'
export default { export default {
components: { components: {
appHeader: Header, appHeader: Header,
appFooter: MyFooter,
CProvaPao, CProvaPao,
BannerCookies, /* , CPreloadImages */ BannerCookies, /* , CPreloadImages */
}, },

View File

@@ -1,12 +1,14 @@
<template> <template>
<div> <div>
<q-layout view="hHh Lpr lff" class="shadow-2 rounded-borders"> <q-layout view="lHh Lpr lFf" class="shadow-2 rounded-borders">
<app-header></app-header> <app-header></app-header>
<q-ajax-bar></q-ajax-bar> <q-ajax-bar></q-ajax-bar>
<!--<CPreloadImages :arrimg="static_data.preLoadImages"> <!--<CPreloadImages :arrimg="static_data.preLoadImages">
</CPreloadImages>--> </CPreloadImages>-->
<app-footer></app-footer>
<q-page-container id="mypage"> <q-page-container id="mypage">
<div v-if="finishLoading"> <div v-if="finishLoading">
<router-view/> <router-view/>

View File

@@ -90,11 +90,11 @@ export default defineComponent({
label: 'Settore', label: 'Settore',
table: 'sectors', table: 'sectors',
key: 'idSector', key: 'idSector',
value: tools.getCookie(tools.COOK_SEARCH + 'sectors', costanti.FILTER_TUTTI), value: tools.getCookie(tools.COOK_SEARCH + 'sectors', 0),
arrvalue: [], arrvalue: [],
type: costanti.FieldType.select, type: costanti.FieldType.select,
filter: null, filter: null,
addall: true, addall: false,
notinsearch: true, notinsearch: true,
useinput: false, useinput: false,
}, },
@@ -165,6 +165,7 @@ export default defineComponent({
key: 'numLevel', key: 'numLevel',
value: tools.getCookie(tools.COOK_SEARCH + 'levels', costanti.FILTER_TUTTI), value: tools.getCookie(tools.COOK_SEARCH + 'levels', costanti.FILTER_TUTTI),
arrvalue: [], arrvalue: [],
addall: true,
type: costanti.FieldType.select, type: costanti.FieldType.select,
filter: null, filter: null,
useinput: false, useinput: false,
@@ -174,7 +175,7 @@ export default defineComponent({
table: 'statusSkills', table: 'statusSkills',
key: 'idStatusSkill', key: 'idStatusSkill',
value: 0, value: 0,
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'statusSkills', [costanti.FILTER_TUTTI]), arrvalue: tools.getCookie(tools.COOK_SEARCH + 'statusSkills', []),
type: costanti.FieldType.multiselect, type: costanti.FieldType.multiselect,
filter: null, filter: null,
useinput: false, useinput: false,
@@ -185,7 +186,7 @@ export default defineComponent({
table: 'contribtypes', table: 'contribtypes',
key: 'idContribType', key: 'idContribType',
value: 0, value: 0,
arrvalue: tools.getCookie(tools.COOK_SEARCH + 'contribtypes', [costanti.FILTER_TUTTI]), arrvalue: tools.getCookie(tools.COOK_SEARCH + 'contribtypes', []),
type: costanti.FieldType.multiselect, type: costanti.FieldType.multiselect,
filter: null, filter: null,
useinput: false, useinput: false,

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="bi-border-all"> <div class="bi-border-all">
<div class="q-ma-xs q-gutter-xs q-pa-xs bg-green"> <div class="q-ma-xs q-gutter-xs q-pa-xs">
<CGridTableRec <CGridTableRec
v-if="searchList.length > 0" v-if="searchList.length > 0"
prop_mytable="myskills" prop_mytable="myskills"

View File

@@ -110,7 +110,7 @@
:label="labelcombo(item)" :label="labelcombo(item)"
v-model:value="item.value" v-model:value="item.value"
@update:value="searchval(item.value, item.table)" @update:value="searchval(item.value, item.table)"
:addall="true" :addall="item.addall"
:tablesel="item.type === costanti.FieldType.select_by_server ? item.tablesel : ''" :tablesel="item.type === costanti.FieldType.select_by_server ? item.tablesel : ''"
:pickup="item.type === costanti.FieldType.select_by_server" :pickup="item.type === costanti.FieldType.select_by_server"
label-color="primary" label-color="primary"
@@ -135,7 +135,7 @@
:label="labelcombo(item)" :label="labelcombo(item)"
v-model:arrvalue="item.arrvalue" v-model:arrvalue="item.arrvalue"
@update:arrvalue="searchval(item.arrvalue, item.table)" @update:arrvalue="searchval(item.arrvalue, item.table)"
:addall="true" :addall="item.addall"
:tablesel="item.tablesel" :tablesel="item.tablesel"
:pickup="true" :pickup="true"
:param1="item.param1" :param1="item.param1"
@@ -309,6 +309,7 @@
:mycontact="props.row" :mycontact="props.row"
:visu="visufind" :visu="visufind"
:groupname="extrafield" :groupname="extrafield"
:labelextra="props.row[col_title]"
/> />
</div> </div>

View File

@@ -42,6 +42,11 @@ export default defineComponent({
type: String, type: String,
required: false, required: false,
default: '', default: '',
},
labelextra: {
type: String,
required: false,
default: '',
} }
}, },
setup(props, { emit }) { setup(props, { emit }) {
@@ -206,7 +211,7 @@ export default defineComponent({
function setCmd($q: any, cmd: number, usernameDest: string, value: any, groupname: string) { function setCmd($q: any, cmd: number, usernameDest: string, value: any, groupname: string) {
tools.setCmd($q, cmd, usernameDest, value, username.value) tools.setCmd($q, cmd, username.value, value, usernameDest)
if (cmd === shared_consts.FRIENDSCMD.SETTRUST) { if (cmd === shared_consts.FRIENDSCMD.SETTRUST) {
setRequestTrust(usernameDest, value) setRequestTrust(usernameDest, value)

View File

@@ -38,7 +38,8 @@
:mycontact="mycontact" :mycontact="mycontact"
@setCmd="setCmd" @setCmd="setCmd"
:visu="visu" :visu="visu"
:groupname="groupname"> :groupname="groupname"
:labelextra="labelextra">
</CMyUser> </CMyUser>
</span> </span>
</q-list> </q-list>

View File

@@ -30,6 +30,11 @@ export default defineComponent({
type: String, type: String,
required: false, required: false,
default: '', default: '',
},
labelextra: {
type: String,
required: false,
default: '',
} }
}, },

View File

@@ -8,7 +8,8 @@
</q-item-section> </q-item-section>
<q-item-section @click="naviga(`/my/` + contact.username)"> <q-item-section @click="naviga(`/my/` + contact.username)">
<q-item-label><strong>{{ contact.username }}</strong> <span v-if="contact.name">({{ contact.name }} {{ contact.surname }})</span> <q-item-label v-if="labelextra"><strong>{{ labelextra }}</strong></q-item-label>
<q-item-label>{{ contact.username }} <span v-if="contact.name">({{ contact.name }} {{ contact.surname }})</span>
</q-item-label> </q-item-label>
<q-item-label v-if="contact.profile" caption lines="1"><em>{{ contact.profile.qualifica }}</em></q-item-label> <q-item-label v-if="contact.profile" caption lines="1"><em>{{ contact.profile.qualifica }}</em></q-item-label>
</q-item-section> </q-item-section>

View File

View File

@@ -0,0 +1,47 @@
import { useQuasar } from 'quasar'
import {
defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRefs, watch, inject, computed,
} from 'vue'
import { tools } from '@store/Modules/tools'
import { shared_consts } from '@src/common/shared_vuejs'
import { useI18n } from '@src/boot/i18n'
import { useRouter } from 'vue-router'
import { static_data } from '@/db/static_data'
import { useGlobalStore } from '@store/globalStore'
import { useUserStore } from '@store/UserStore'
import MixinUsers from '../../mixins/mixin-users'
export default defineComponent({
name: 'MyFooter',
components: {},
props: {},
setup() {
const $q = useQuasar()
const { t } = useI18n()
const $router = useRouter()
const userStore = useUserStore()
const globalStore = useGlobalStore()
const { getMyUsername, Username } = MixinUsers()
function mounted() {
// mounted
}
onMounted(mounted)
return {
static_data,
globalStore,
t,
getMyUsername,
Username,
}
},
})

View File

@@ -0,0 +1,36 @@
<template>
<q-footer
class="bg-white small-screen-only"
bordered
>
<q-tabs
class="text-grey-10 text-h6"
active-color="primary"
indicator-color="transparent"
>
<q-route-tab
to="/"
icon="fas fa-home"
/>
<q-route-tab
to="/groups"
icon="fas fa-users"
/>
<q-route-tab
to="/friends"
icon="fas fa-user-friends"
/>
<q-route-tab
:to="`/my/`+getMyUsername()"
icon="person"
/>
</q-tabs>
</q-footer>
</template>
<script lang="ts" src="./MyFooter.ts">
</script>
<style lang="scss" scoped>
@import './MyFooter.scss';
</style>

View File

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

View File

@@ -918,3 +918,21 @@ $heightBtn: 100%;
.fill-all-width { .fill-all-width {
width: -webkit-fill-available; width: -webkit-fill-available;
} }
.small-screen-only{
@media (max-width: $breakpoint-xs-max) {
display: block;
}
@media (min-width: $breakpoint-sm-min) {
display: none;
}
}
.large-screen-only{
@media (max-width: $breakpoint-xs-max) {
display: none;
}
@media (min-width: $breakpoint-sm-min) {
display: block;
}
}

View File

@@ -416,7 +416,7 @@ const baseroutes: IListRoutes[] = [
active: true, active: true,
order: 130, order: 130,
path: '/friends', path: '/friends',
materialIcon: 'fas fa-users', materialIcon: 'fas fa-user-friends',
name: 'mypages.friends', name: 'mypages.friends',
component: () => import('@/views/user/myfriends/myfriends.vue'), component: () => import('@/views/user/myfriends/myfriends.vue'),
meta: { requiresAuth: true }, meta: { requiresAuth: true },
@@ -583,7 +583,7 @@ const baseroutes: IListRoutes[] = [
inmenu: true, inmenu: true,
}, },
{ {
active: true, active: false,
order: 80, order: 80,
path: '/calendario-eventi', path: '/calendario-eventi',
materialIcon: 'event', materialIcon: 'event',

View File

@@ -27,15 +27,6 @@
</CFinder> </CFinder>
<q-banner rounded class="bg-primary text-white">
<div class="text-h6 text-center">
Ora Accedi al Bot Telegram <br>
per vedere tutti i Menu e le chat !
</div>
<template v-slot:action>
<q-btn icon="fab fa-telegram" flat color="white" label="Accedi al Bot Telegram" type="a" target="__blank" :href="getLinkBotTelegram()"/>
</template>
</q-banner>
</div> </div>
</div> </div>

View File

@@ -28,16 +28,6 @@
</CFinder> </CFinder>
<q-banner rounded class="bg-primary text-white">
<div class="text-h6 text-center">
Ora Accedi al Bot Telegram <br>
per vedere tutti i Menu e le chat !
</div>
<template v-slot:action>
<q-btn icon="fab fa-telegram" flat color="white" label="Accedi al Bot Telegram" type="a" target="__blank" :href="getLinkBotTelegram()"/>
</template>
</q-banner>
</div> </div>
</div> </div>

View File

@@ -2,13 +2,13 @@
<q-page class=""> <q-page class="">
<div class="landing"> <div class="landing">
<PagePolicy <PagePolicy
owneremail="info@associazioneshen.it" owneremail=""
SiteName="Associazione Shen" SiteName=""
ownerDataName="Associazione Shen" ownerDataName=""
managerData="Cristina Barattoni" managerData=""
includeData="dati anagrafici (ragione sociale, nome, cognome), recapiti (telefono, indirizzo email)" includeData="dati anagrafici (ragione sociale, nome, cognome), recapiti (telefono, indirizzo email)"
url="www.associazioneshen.it" url=""
lastdataupdate="11 luglio 2019" lastdataupdate=""
country="Italia" country="Italia"
> >

View File

@@ -4833,7 +4833,7 @@ export const tools = {
} else if (cmd === shared_consts.GROUPSCMD.CANCEL_REQ_GROUP) { } else if (cmd === shared_consts.GROUPSCMD.CANCEL_REQ_GROUP) {
tools.cancelReqGroups($q, username, dest) tools.cancelReqGroups($q, username, dest)
} else if (cmd === shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS) { } else if (cmd === shared_consts.FRIENDSCMD.REMOVE_FROM_MYFRIENDS) {
tools.removeFromMyFriends($q, username, value) tools.removeFromMyFriends($q, username, dest)
} else if (cmd === shared_consts.FRIENDSCMD.BLOCK_USER) { } else if (cmd === shared_consts.FRIENDSCMD.BLOCK_USER) {
tools.blockUser($q, username, dest) tools.blockUser($q, username, dest)
} else if (cmd === shared_consts.FRIENDSCMD.SETFRIEND) { } else if (cmd === shared_consts.FRIENDSCMD.SETFRIEND) {