Fixed refresh problem of video... during change tabpage...

This commit is contained in:
Paolo Arena
2019-12-28 17:47:27 +01:00
parent 5d32378df8
commit ae5770f79b
6 changed files with 554 additions and 390 deletions

View File

@@ -23,7 +23,8 @@
"serve": "quasar serve ./dist/spa",
"serve:coverage": "quasar serve test/coverage/lcov-report/ --cache 0 --port 8788",
"deploy": "deploy.sh",
"deploy_server_test": "NODE_ENV=test quasar build -m pwa",
"test": "NODE_ENV=test DEBUG=v8:* quasar build",
"deploy_server_test_pwa": "NODE_ENV=test quasar build -m pwa",
"generate-sw": "workbox generateSW workbox-config.js"
},
"dependencies": {

View File

@@ -158,7 +158,7 @@ module.exports = function (ctx) {
},
devServer: {
https: false,
port: 8084,
port: 8085,
open: false // opens browser window automatically
},
// framework: 'all' --- includes everything; for dev only!

View File

@@ -31,6 +31,12 @@ export default class App extends Vue {
console.info('SESSIONE IN SVILUPPO ! (DEV)')
console.info(process.env)
}
if (process.env.TEST) {
console.info('SESSIONE IN TEST ! (TEST)')
console.info(process.env)
}
console.info('NodeEnv', process.env.NODE_ENV)
if (process.env.PROD) {
console.info('SESSIONE IN PRODUZIONE!')
// console.info(process.env)

View File

@@ -19,8 +19,60 @@ const functionality: IFunctionality = {
BOOKING_EVENTS: false
}
const routes_newsletter: IListRoutes[] = [
{
active: true,
name: 'newsletter.template', path: '/admin/newsletter/templemail', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true
},
{
active: true,
name: 'newsletter.sendemail', path: '/admin/newsletter/newnewsletter', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true
},
{
active: true,
name: 'newsletter.check', path: '/admin/newsletter/check', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true
},
{
active: true,
name: 'newsletter.sent', path: '/admin/newsletter/newslist', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true
},
{
active: true,
name: 'newsletter.mailinglist', path: '/admin/newsletter/mailinglist', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true
},
{
active: true,
name: 'newsletter.settings', path: '/admin/newsletter/settings', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true
},
{
active: true,
name: 'newsletter.serversettings', path: '/admin/newsletter/main_settings', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true
},
{
active: true,
name: 'newsletter.others', path: '/admin/newsletter/events', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true
},
]
const routes_manager: IListRoutes[] = [
{
active: true,
path: '/admin/userlist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.userlist',
@@ -32,6 +84,7 @@ const routes_manager: IListRoutes[] = [
onlyManager: true
},
{
active: true,
path: '/admin/tableslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.tableslist',
@@ -42,10 +95,73 @@ const routes_manager: IListRoutes[] = [
level_child: 0.5,
onlyManager: true
},
{
active: true,
path: '/admin/pages',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.pages',
component: () => import('@/rootgen/admin/pages/pages.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true
},
{
active: true,
path: '/admin/gallery',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.gallery',
component: () => import('@/rootgen/admin/gallery/gallery.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true
},
{
active: true,
path: '/admin/media',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.media',
component: () => import('@/rootgen/admin/uploader/uploader.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true
},
{
active: true,
path: '/admin/newsletter',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.newsletter',
inmenu: false,
submenu: true,
routes2: routes_newsletter,
solotitle: true,
level_parent: 0.5,
level_child: 0.5,
onlyManager: true
},
{
active: functionality.BOOKING_EVENTS,
path: '/admin/usereventlist',
materialIcon: 'edit',
name: 'otherpages.admin.usereventlist',
component: () => import('@/rootgen/admin/eventlist/eventlist.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
infooter: true,
onlyManager: true
}
]
const routes: IListRoutes[] = [
{
active: true,
path: '/',
materialIcon: 'home',
name: 'pages.home',
@@ -65,6 +181,7 @@ const routes: IListRoutes[] = [
},
*/
{
active: true,
path: '/manage',
materialIcon: 'fas fa-users-cog',
name: 'otherpages.manage.menu',
@@ -76,6 +193,7 @@ const routes: IListRoutes[] = [
},
...routes_manager,
{
active: functionality.SHOW_MESSAGES,
path: '/messages/:un',
materialIcon: 'fas fa-comment',
name: 'otherpages.messages.menu',
@@ -85,8 +203,10 @@ const routes: IListRoutes[] = [
reqauth: true
},
// --- NOT IN MENU: ---
{ path: '/policy', name: 'pages.policy', component: () => import('@/root/policy/policy.vue') },
{ active: true,
path: '/policy', name: 'pages.policy', component: () => import('@/root/policy/policy.vue') },
{
active: functionality.ENABLE_REGISTRATION,
path: '/signup',
materialIcon: 'how_to_reg',
name: 'pages.SignUp',
@@ -96,6 +216,7 @@ const routes: IListRoutes[] = [
separator: false
},
{
active: true,
path: '/signin',
materialIcon: 'account_circle',
name: 'pages.SignIn',
@@ -103,8 +224,8 @@ const routes: IListRoutes[] = [
inmenu: false,
infooter: true
},
{ path: '/vreg', name: 'Verify Reg', component: () => import('@/views/login/vreg/vreg.vue') },
{ path: '/offline', name: 'Offline', component: () => import('@/views/offline/offline.vue') },
{ active: true, path: '/vreg', name: 'Verify Reg', component: () => import('@/views/login/vreg/vreg.vue') },
{ active: true, path: '/offline', name: 'Offline', component: () => import('@/views/offline/offline.vue') },
]
const preLoadImages: IPreloadImages[] = [

View File

@@ -50,6 +50,9 @@ export default class Home extends MixinBase {
public slide2 = 0
public animare: number = 0
public endload: boolean = false
public indvideo: number = 0
public arrvideo_yt = []
public arrvideo_mp4 = []
public arrsteps = [
{
@@ -143,7 +146,7 @@ export default class Home extends MixinBase {
public audiofiles = {
it: [
{
title: 'Chiara (1)',
title: 'Elisa (1)',
label: '1',
value: 0,
src: 'statics/audio/it/spiegazione_Billettera.mp3',
@@ -286,8 +289,10 @@ export default class Home extends MixinBase {
// console.log('this.firstClassSection', this.firstClassSection)
}, mytime)
}
public beforeDestroy() {
// console.log('beforeDestroy')
clearInterval(this.polling)
@@ -296,6 +301,15 @@ export default class Home extends MixinBase {
public created() {
this.animare = process.env.DEV ? 0 : 8000
for (let index = 0; index <= this.getvideonum(true); ++index) {
this.arrvideo_yt.push(this.getvideomp4yt(index))
}
for (let index = 0; index <= this.getvideonum(false); ++index) {
this.arrvideo_mp4.push(this.getvideomp4src(index))
}
console.log(this.arrvideo_mp4)
GlobalStore.actions.prova()
this.endload = true
@@ -415,6 +429,19 @@ export default class Home extends MixinBase {
return this.getValDb(this.getkey(youtube, false, true), false)
}
get getvideonum_youtube() {
return this.getvideonum(true)
}
get getvideonum_mp4() {
return this.getvideonum(false)
}
get heightgallvideo() {
const h = tools.heightgallery(this.getValDb('MP4_W', false) / this.getValDb('MP4_H', false))
return h
}
public mygetarrValDb(keystr, serv) {
const myval = GlobalStore.getters.getValueSettingsByKey(keystr, serv)
// console.log('AA: myval', myval)
@@ -469,6 +496,11 @@ export default class Home extends MixinBase {
]
}
public getvideomp4yt(index) {
return [{ src: this.getvideourl(index, true), type: 'video/mp4' }
]
}
public getvideoposter(index) {
return ''
}

View File

@@ -1,414 +1,418 @@
<template>
<q-page>
<CMyPage title="">
<q-page>
<CMyPage title="">
<span>{{ setmeta({
title: 'Home',
description: $t('msg.myAppDescription'),
keywords: $t('msg.keywords_base') } ) }}
</span>
<div class="landing">
<section>
<div class="landing__hero maxwidth1200 text-white">
<q-carousel
animated
swipeable
infinite
navigation
transition-next="slide-left"
transition-prev="slide-right"
v-model="slide"
height="400px"
>
<q-carousel-slide name="first"
:img-src="getsrcbyimg('../../statics/images/background.jpg')">
<div class="landing__header"></div>
<div class="landing__hero-content row justify-center q-gutter-xs clgutter">
<div class="row">
&nbsp;
</div>
<div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter">
<h1 class="text-h1 shadow-max">{{getappname}}</h1>
<br>
<h2 class="text-h4 shadow text-italic q-pl-sm">
{{$t('msg.sottoTitoloApp')}}
</h2>
<h2 class="text-h4 shadow-max text-italic q-pl-sm">
{{$t('msg.sottoTitoloApp2')}}
</h2>
</div>
</div>
</div>
<div class="landing__arrow absolute-bottom text-center">
<i aria-hidden="true"
class="q-icon text-h2 text-white material-icons">expand_more</i>
</div>
</q-carousel-slide>
<q-carousel-slide name="second"
:img-src="getsrcbyimg('../../statics/images/background2.jpg')" alt="">
<div class="landing__header"></div>
<div class="landing__hero2-content row justify-center q-gutter-xs clgutter">
<div class="row">
<logo></logo>
</div>
<div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter">
<h1 class="text-h1 shadow-max">{{getappname}}</h1>
</div>
</div>
</div>
<div class="landing__arrow absolute-bottom text-center">
<i aria-hidden="true"
class="q-icon text-h2 text-white material-icons">expand_more</i>
</div>
</q-carousel-slide>
<q-carousel-slide name="third"
:img-src="getsrcbyimg('../../statics/images/background3.jpg')">
<div class="landing__header"></div>
<div class="landing__hero2-content row justify-center q-gutter-xs clgutter">
<div class="row">
<logo></logo>
</div>
<div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter">
<div class="text-h1 shadow-max">{{getappname}}</div>
</div>
</div>
</div>
<div class="landing__arrow absolute-bottom text-center">
<!--<i aria-hidden="true"-->
<!--class="q-icon text-h2 text-white material-icons">expand_more</i>-->
</div>
</q-carousel-slide>
</q-carousel>
<div class="landing">
<section>
<div class="landing__hero maxwidth1200 text-white">
<q-carousel
animated
swipeable
infinite
navigation
transition-next="slide-left"
transition-prev="slide-right"
v-model="slide"
height="400px"
>
<q-carousel-slide name="first"
:img-src="getsrcbyimg('../../statics/images/background.jpg')">
<div class="landing__header"></div>
<div class="landing__hero-content row justify-center q-gutter-xs clgutter">
<div class="row">
&nbsp;
</div>
<div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter">
<h1 class="text-h1 shadow-max">{{getappname}}</h1>
<br>
<h2 class="text-h4 shadow text-italic q-pl-sm">
{{$t('msg.sottoTitoloApp')}}
</h2>
<h2 class="text-h4 shadow-max text-italic q-pl-sm">
{{$t('msg.sottoTitoloApp2')}}
</h2>
</div>
</section>
<div class="q-pa-md q-gutter-md">
<div v-if="isLogged && !isVerified" class="text-verified">{{
$t('components.authentication.email_verification.link_sent') }}
</div>
</div>
<div class="landing__arrow absolute-bottom text-center">
<i aria-hidden="true"
class="q-icon text-h2 text-white material-icons">expand_more</i>
</div>
</q-carousel-slide>
<q-carousel-slide name="second"
:img-src="getsrcbyimg('../../statics/images/background2.jpg')" alt="">
<div class="landing__header"></div>
<div class="landing__hero2-content row justify-center q-gutter-xs clgutter">
<div class="row">
<logo></logo>
</div>
<div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter">
<h1 class="text-h1 shadow-max">{{getappname}}</h1>
</div>
</div>
</div>
<div class="landing__arrow absolute-bottom text-center">
<i aria-hidden="true"
class="q-icon text-h2 text-white material-icons">expand_more</i>
</div>
</q-carousel-slide>
<q-carousel-slide name="third"
:img-src="getsrcbyimg('../../statics/images/background3.jpg')">
<div class="landing__header"></div>
<div class="landing__hero2-content row justify-center q-gutter-xs clgutter">
<div class="row">
<logo></logo>
</div>
<div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter">
<div class="text-h1 shadow-max">{{getappname}}</div>
</div>
</div>
</div>
<div class="landing__arrow absolute-bottom text-center">
<!--<i aria-hidden="true"-->
<!--class="q-icon text-h2 text-white material-icons">expand_more</i>-->
</div>
</q-carousel-slide>
</q-carousel>
</div>
</section>
<div class="q-pa-md q-gutter-md">
<div v-if="isLogged && !isVerified" class="text-verified">{{
$t('components.authentication.email_verification.link_sent') }}
</div>
</div>
<CTitleBanner class="q-pa-xs" :title="$t('text.how')" bgcolor="bg-primary" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; " myclass="myshad">
<CImgText src="">
<q-icon name="fas fa-gift" size="lg" inverted color="primary"></q-icon>
<div class="q-pa-sm" v-if="toolsext.isLang('it')">
<p class="cltexth4 text-green-8">È un gioco etico di <span class="boldhigh">Economia Circolare</span>
dove ognuno
entrando porta in dono <span class="boldhigh">33 </span> ed esce con <span
class="boldhigh">1848 </span> alla fine del ciclo.</p>
<p class="cltexth4 text-red-8">E' uno scambio di Reciproco Aiuto</p>
<p class="cltexth4 text-blue-8">
E' un sistema Circolare UMANO, che, se seguito bene, con il minimo sforzo, si ottieme il massimo
apporto.
</p>
</div>
</CImgText>
</CTitleBanner>
<CTitleBanner class="q-pa-xs" :title="$t('text.step')" bgcolor="bg-positive" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; ">
<div class="q-gutter-md">
<q-carousel
v-model="mysteps"
transition-prev="slide-right"
transition-next="slide-left"
swipeable
control-color="white"
padding
ref="mysteps"
height="400px"
class="bg-primary text-white shadow-1 rounded-borders"
>
<template v-slot:control>
<q-carousel-control
position="top-left"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="arrow_left"
@click="$refs.mysteps.previous()"></q-btn>
</q-carousel-control>
<q-carousel-control
position="top-right"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="arrow_right"
@click="$refs.mysteps.next()"></q-btn>
</q-carousel-control>
</template>
<q-carousel-slide v-for="(rec, index) in arrsteps" :key="index" :name="index"
class="column no-wrap flex-center">
<div class="row no-wrap items-center justify-around q-gutter-lg">
<q-icon :name="rec.myicon" size="56px"></q-icon>
<q-icon v-if="rec.myicon2" :name="rec.myicon2" size="56px"></q-icon>
<q-icon v-if="rec.myicon3" :name="rec.myicon3" size="56px"></q-icon>
<q-img v-if="rec.myimg" :src="rec.myimg" style="height: 56px; width: 56px;"></q-img>
</div>
<div class="q-mt-md text-center step-text" v-html="gettitle_advise(rec)">
</div>
</q-carousel-slide>
</q-carousel>
<div class="row justify-center">
<q-btn-toggle
glossy
v-model="mysteps"
:options="arrsteps"
></q-btn-toggle>
</div>
</div>
</CTitleBanner>
<section class="q-pa-sm bg-primary landing__swirl-bg">
<div class="landing__features row justify-sm-around column">
<q-carousel
animated
swipeable
navigation
infinite
transition-next="slide-left"
transition-prev="slide-right"
v-model="slide_video"
ref="slide_video"
:height="heightgallvideo"
width="100%"
>
<template v-slot:control>
<q-carousel-control
position="top-left"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="keyboard_arrow_left"
@click="$refs.slide_video.previous()"></q-btn>
</q-carousel-control>
<q-carousel-control
position="top-right"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="keyboard_arrow_right"
@click="$refs.slide_video.next()"></q-btn>
</q-carousel-control>
</template>
<q-carousel-slide v-for="index in getvideonum_mp4" :name="`mp4_`+index" :key="index">
<div v-if="getvideourl(index, false)"
class="row justify-evenly items-center q-gutter-sm ">
<div class="text-center">
<div class="subtitle_small text-blue"
v-html="getvideotitle(index, false)"></div>
<div class="">
<q-media-player
type="video"
:sources="arrvideo_mp4[index]"
:poster="getvideoposter(index)"
>
</q-media-player>
</div>
</div>
</div>
</q-carousel-slide>
<CTitleBanner class="q-pa-xs" :title="$t('text.how')" bgcolor="bg-primary" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; " myclass="myshad">
<CImgText src="">
<q-icon name="fas fa-gift" size="lg" inverted color="primary"></q-icon>
<div class="q-pa-sm" v-if="toolsext.isLang('it')">
<p class="cltexth4 text-green-8">È un gioco etico di <span class="boldhigh">Economia Circolare</span>
dove ognuno
entrando porta in dono <span class="boldhigh">33 </span> ed esce con <span
class="boldhigh">1848 </span> alla fine del ciclo.</p>
<p class="cltexth4 text-red-8">E' uno scambio di Reciproco Aiuto</p>
<q-carousel-slide v-for="index in getvideonum_youtube" :name="`yt_`+index" :key="index">
<div v-if="getvideourl(index, true)"
class="row justify-evenly items-center q-gutter-sm ">
<p class="cltexth4 text-blue-8">
E' un sistema Circolare UMANO, che, se seguito bene, con il minimo sforzo, si ottieme il massimo apporto.
</p>
</div>
</CImgText>
</CTitleBanner>
<CTitleBanner class="q-pa-xs" :title="$t('text.step')" bgcolor="bg-positive" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; ">
<div class="q-gutter-md">
<q-carousel
v-model="mysteps"
transition-prev="slide-right"
transition-next="slide-left"
swipeable
control-color="white"
padding
ref="mysteps"
height="400px"
class="bg-primary text-white shadow-1 rounded-borders"
>
<template v-slot:control>
<q-carousel-control
position="top-left"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="arrow_left"
@click="$refs.mysteps.previous()"></q-btn>
</q-carousel-control>
<q-carousel-control
position="top-right"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="arrow_right"
@click="$refs.mysteps.next()"></q-btn>
</q-carousel-control>
</template>
<q-carousel-slide v-for="(rec, index) in arrsteps" :key="index" :name="index"
class="column no-wrap flex-center">
<div class="row no-wrap items-center justify-around q-gutter-lg">
<q-icon :name="rec.myicon" size="56px"></q-icon>
<q-icon v-if="rec.myicon2" :name="rec.myicon2" size="56px"></q-icon>
<q-icon v-if="rec.myicon3" :name="rec.myicon3" size="56px"></q-icon>
<q-img v-if="rec.myimg" :src="rec.myimg" style="height: 56px; width: 56px;"></q-img>
</div>
<div class="q-mt-md text-center step-text" v-html="gettitle_advise(rec)">
</div>
</q-carousel-slide>
</q-carousel>
<div class="row justify-center">
<q-btn-toggle
glossy
v-model="mysteps"
:options="arrsteps"
></q-btn-toggle>
</div>
<div class="text-center">
<div class="subtitle_small text-blue" v-html="getvideotitle(index, true)"></div>
<div class="">
<iframe
:width="tools.getwidthscale(mythis(), getValDb('YT_W', false), 800)"
:height="tools.getheightbywidth(mythis(), getValDb('YT_W', false), getValDb('YT_H', false), 800)"
:src="arrvideo_yt[index]"
frameborder="0"
allowfullscreen
></iframe>
</div>
</CTitleBanner>
</div>
<section class="q-pa-sm bg-primary landing__swirl-bg">
<div class="landing__features row justify-sm-around column">
<q-carousel
animated
swipeable
navigation
infinite
transition-next="slide-left"
transition-prev="slide-right"
v-model="slide_video"
ref="slide_video"
:height="tools.heightgallery(getValDb('MP4_W', false) / getValDb('MP4_H', false))"
width="100%"
>
<template v-slot:control>
<q-carousel-control
position="top-left"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="keyboard_arrow_left"
@click="$refs.slide_video.previous()"></q-btn>
</q-carousel-control>
<q-carousel-control
position="top-right"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="keyboard_arrow_right"
@click="$refs.slide_video.next()"></q-btn>
</q-carousel-control>
</template>
</div>
<q-carousel-slide v-for="index in getvideonum(false)" :name="`mp4_`+index" :key="index">
<div v-if="getvideourl(index, false)"
class="row justify-evenly items-center q-gutter-sm ">
<div class="text-center">
<div class="subtitle_small text-blue"
v-html="getvideotitle(index, false)"></div>
<div class="">
<q-media-player
type="video"
:sources="getvideomp4src(index)"
:poster="getvideoposter(index)"
>
</q-media-player>
</div>
</div>
</div>
</q-carousel-slide>
<q-carousel-slide v-for="index in getvideonum(true)" :name="`yt_`+index" :key="index">
<div v-if="getvideourl(index, true)"
class="row justify-evenly items-center q-gutter-sm ">
<div class="text-center">
<div class="subtitle_small text-blue" v-html="getvideotitle(index, true)"></div>
<div class="">
<iframe
:width="tools.getwidthscale(mythis(), getValDb('YT_W', false), 800)"
:height="tools.getheightbywidth(mythis(), getValDb('YT_W', false), getValDb('YT_H', false), 800)"
:src="getvideourl(index, true)"
frameborder="0"
allowfullscreen
></iframe>
</div>
</div>
</div>
</q-carousel-slide>
</q-carousel>
</div>
</section>
</q-carousel-slide>
</q-carousel>
<CTitleBanner class="q-pa-xs" :title="$t('text.what')" bgcolor="bg-secondary" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; ">
<div class="q-mx-md cltexth4" >
1) Voglia di giocare, e desiderio di Donare 33 per aiutare un'altra persona a realizzare i propri sogni.<br><br>
<q-img src="/statics/images/it/Esempio_di_Billettera_di_Vera.jpg"></q-img>
2) L'impegno di seguire delle indicazioni nei tempi stabiliti all' interno di una chat whatsapp, dove ogni passaggio è spiegato e guidato.<br><br>
3) Parlare e condividere ai tuoi amici un messaggio dove spieghi questo sistema, impegnandoti così a trovare 2 persone interessate ad entrare.
</div>
</CTitleBanner>
<!-- SUGGERIMENTI -->
<CTitleBanner cl ass="q-pa-xs" :title="$t('text.advise')" bgcolor="bg-primary" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; " myclass="myshad">
<div v-if="toolsext.isLang('it')">
<q-list dense bordered padding class="rounded-borders">
<div v-for="(rec, index) in advise" :key="index">
<q-item :class="rec.color">
<q-item-section avatar>
<q-icon :name="geticonlist(rec)" :color="rec.iconcolor" inverted></q-icon>
</q-item-section>
<q-item-section>
<span v-html="gettitle_advise(rec)" :style="`color: `+rec.textcolor"></span>
</q-item-section>
</q-item>
<q-separator spaced/>
</div>
</q-list>
</div>
</CTitleBanner>
<CTitleBanner class="q-pa-xs" :title="$t('text.testimonial')" bgcolor="bg-negative" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; ">
<q-carousel
v-model="myaudio"
transition-prev="slide-right"
transition-next="slide-left"
swipeable
animated
control-color="white"
padding
ref="myaudio"
height="150px"
class="text-white shadow-1 rounded-borders"
>
<template v-slot:control>
<q-carousel-control
position="top-left"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="arrow_left"
@click="$refs.myaudio.previous()"></q-btn>
</q-carousel-control>
<q-carousel-control
position="top-right"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="arrow_right"
@click="$refs.myaudio.next()"></q-btn>
</q-carousel-control>
</template>
<q-carousel-slide v-for="(recaudio, index) in getaudiofiles()" :key="index" :name="index"
class="column no-wrap flex-center">
<div class="q-pa-sm text-subtitle2 text-blue">{{ recaudio.title }}</div>
<q-media-player
type="audio"
:sources="[...recaudio]"
background-color="deep-purple-3"
:playback-rates="[ { label: 'Normal', value: 1 }, { label: '1.15x', value: 1.15 } ]"
></q-media-player>
</q-carousel-slide>
</q-carousel>
<div class="row justify-center">
<q-btn-toggle
glossy
v-model="myaudio"
:options="getaudiofiles()"
></q-btn-toggle>
</div>
<q-carousel
v-model="mytestimonianze"
transition-prev="slide-right"
transition-next="slide-left"
swipeable
animated
control-color="white"
padding
ref="mytestimonianze"
height="450px"
class="text-white shadow-1 rounded-borders"
>
<template v-slot:control>
<q-carousel-control
position="bottom-left"
class="q-gutter-xs"
style="opacity: 0.4;">
<q-btn
push round color="white" text-color="black" icon="arrow_left"
@click="$refs.mytestimonianze.previous()"></q-btn>
</q-carousel-control>
<q-carousel-control
position="bottom-right"
class="q-gutter-xs"
style="opacity: 0.4;">
<q-btn
push round color="white" text-color="black" icon="arrow_right"
@click="$refs.mytestimonianze.next()"></q-btn>
</q-carousel-control>
</template>
<q-carousel-slide v-for="(rec, index) in gettestimonianze()" :key="index" :name="index"
class="row flex-center">
<div class="q-pa-sm text-subtitle2 text-blue">{{ rec.title }}</div>
<div v-html="rec.text" class="text-black"></div>
</q-carousel-slide>
</q-carousel>
<div class="row justify-center">
<q-btn-toggle
glossy
v-model="mytestimonianze"
:options="gettestimonianze()"
></q-btn-toggle>
</div>
</div>
</section>
</CTitleBanner>
<CTitleBanner class="q-pa-xs" :title="$t('text.download')" bgcolor="bg-warning" clcolor="text-white"
mystyle="letter-spacing: 0.125rem;">
<div v-for="(rec, index) in todownload[toolsext.getLocale()]" :key="index" :name="index">
<div class="q-pa-xs text-center text-subtitle1"><a :href="rec.file" target="_blank">{{rec.title}}</a></div>
</div>
</CTitleBanner>
<!--<CTitleBanner class="q-pa-xs" :title="$t('text.faq')" bgcolor="bg-info" clcolor="text-white"
mystyle="letter-spacing: 0.125rem;">
</CTitleBanner>-->
<div v-if="!tools.isMobile()" style="margin: 60px 60px;"></div>
<CTitleBanner class="q-pa-xs" :title="$t('text.what')" bgcolor="bg-secondary" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; ">
<div class="q-mx-md cltexth4">
1) Voglia di giocare, e desiderio di Donare 33 per aiutare un'altra persona a realizzare i propri
sogni.<br><br>
<div class="text-center row block">
<q-img src="/statics/images/it/Esempio_di_Billettera_di_Vera.jpg"
style="height: 400px; max-width: 400px;"></q-img>
</div>
</CMyPage>
</q-page>
2) L'impegno di seguire delle indicazioni nei tempi stabiliti all' interno di una chat whatsapp, dove ogni
passaggio è spiegato e guidato.<br><br>
3) Parlare e condividere ai tuoi amici un messaggio dove spieghi questo sistema, impegnandoti così a trovare
2 persone interessate ad entrare.
</div>
</CTitleBanner>
<!-- SUGGERIMENTI -->
<CTitleBanner cl ass="q-pa-xs" :title="$t('text.advise')" bgcolor="bg-primary" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; " myclass="myshad">
<div v-if="toolsext.isLang('it')">
<q-list dense bordered padding class="rounded-borders">
<div v-for="(rec, index) in advise" :key="index">
<q-item :class="rec.color">
<q-item-section avatar>
<q-icon :name="geticonlist(rec)" :color="rec.iconcolor" inverted></q-icon>
</q-item-section>
<q-item-section>
<span v-html="gettitle_advise(rec)" :style="`color: `+rec.textcolor"></span>
</q-item-section>
</q-item>
<q-separator spaced/>
</div>
</q-list>
</div>
</CTitleBanner>
<CTitleBanner class="q-pa-xs" :title="$t('text.testimonial')" bgcolor="bg-negative" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; ">
<q-carousel
v-model="myaudio"
transition-prev="slide-right"
transition-next="slide-left"
swipeable
animated
control-color="white"
padding
ref="myaudio"
height="150px"
class="text-white shadow-1 rounded-borders"
>
<template v-slot:control>
<q-carousel-control
position="top-left"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="arrow_left"
@click="$refs.myaudio.previous()"></q-btn>
</q-carousel-control>
<q-carousel-control
position="top-right"
class="q-gutter-xs"
style="opacity: 0.6;">
<q-btn
push round color="white" text-color="black" icon="arrow_right"
@click="$refs.myaudio.next()"></q-btn>
</q-carousel-control>
</template>
<q-carousel-slide v-for="(recaudio, index) in getaudiofiles()" :key="index" :name="index"
class="column no-wrap flex-center">
<div class="q-pa-sm text-subtitle2 text-blue">{{ recaudio.title }}</div>
<q-media-player
type="audio"
:sources="[...recaudio]"
background-color="deep-purple-3"
:playback-rates="[ { label: 'Normal', value: 1 }, { label: '1.15x', value: 1.15 } ]"
></q-media-player>
</q-carousel-slide>
</q-carousel>
<div class="row justify-center">
<q-btn-toggle
glossy
v-model="myaudio"
:options="getaudiofiles()"
></q-btn-toggle>
</div>
<q-carousel
v-model="mytestimonianze"
transition-prev="slide-right"
transition-next="slide-left"
swipeable
animated
control-color="white"
padding
ref="mytestimonianze"
height="450px"
class="text-white shadow-1 rounded-borders"
>
<template v-slot:control>
<q-carousel-control
position="bottom-left"
class="q-gutter-xs"
style="opacity: 0.4;">
<q-btn
push round color="white" text-color="black" icon="arrow_left"
@click="$refs.mytestimonianze.previous()"></q-btn>
</q-carousel-control>
<q-carousel-control
position="bottom-right"
class="q-gutter-xs"
style="opacity: 0.4;">
<q-btn
push round color="white" text-color="black" icon="arrow_right"
@click="$refs.mytestimonianze.next()"></q-btn>
</q-carousel-control>
</template>
<q-carousel-slide v-for="(rec, index) in gettestimonianze()" :key="index" :name="index"
class="row flex-center">
<div class="q-pa-sm text-subtitle2 text-blue">{{ rec.title }}</div>
<div v-html="rec.text" class="text-black"></div>
</q-carousel-slide>
</q-carousel>
<div class="row justify-center">
<q-btn-toggle
glossy
v-model="mytestimonianze"
:options="gettestimonianze()"
></q-btn-toggle>
</div>
</CTitleBanner>
<CTitleBanner class="q-pa-xs" :title="$t('text.download')" bgcolor="bg-warning" clcolor="text-white"
mystyle="letter-spacing: 0.125rem;">
<div v-for="(rec, index) in todownload[toolsext.getLocale()]" :key="index" :name="index">
<div class="q-pa-xs text-center text-subtitle1"><a :href="rec.file" target="_blank">{{rec.title}}</a></div>
</div>
</CTitleBanner>
<!--<CTitleBanner class="q-pa-xs" :title="$t('text.faq')" bgcolor="bg-info" clcolor="text-white"
mystyle="letter-spacing: 0.125rem;">
</CTitleBanner>-->
<div v-if="!tools.isMobile()" style="margin: 60px 60px;"></div>
</div>
</CMyPage>
</q-page>
</template>
<script lang="ts" src="./home.ts">
</script>
<style lang="scss" scoped>
@import './home.scss';
@import './home.scss';
</style>