- DashBoard, Profile, Order Menu

This commit is contained in:
Paolo Arena
2019-12-31 00:45:06 +01:00
parent b70f0df084
commit 354d1c8b36
38 changed files with 846 additions and 193 deletions

View File

@@ -45,6 +45,7 @@ const baseConfig = {
}
},
module: {
exprContextCritical: false,
rules: [{
test: /\.vue$/,
use: {

View File

@@ -13,6 +13,7 @@ const PrerenderSPAPlugin = require('prerender-spa-plugin')
const webpackDevConfig = {
module: {
exprContextCritical: false,
rules: [{
test: /\.s?css$/,
use: [{

View File

@@ -2,12 +2,14 @@ const msg_website = {
it: {
pages: {
home: 'Home',
profile: 'Profilo',
profile: 'Il tuo Profilo',
payment: 'Pagamenti',
SignUp: 'Registrazione',
SignUp2: 'Registrazione',
SignIn: 'Login',
vreg: 'Verifica Reg',
dashboard:'Lavagna',
dashboard:'La tua Lavagna',
testimonial: 'Testimonianze',
Test: 'Test',
Category: 'Categorie',
Admin: 'Admin',
@@ -47,17 +49,22 @@ const msg_website = {
faq: 'DOMANDE FREQUENTI (FAQ)',
advise: 'SUGGERIMENTI',
download: 'MATERIALE DISPONIBILE',
dashboard: {
madegift: 'Hai fatto il tuo dono?'
},
},
},
es: {
pages: {
home: 'Home',
profile: 'Perfil',
profile: 'Tu Perfil',
payment: 'Paiements',
SignUp: 'Registro',
SignUp2: 'Registro',
SignIn: 'Login',
vreg: 'Verifica Reg',
dashboard:'Tablero',
dashboard:'Tu Tablero',
testimonial: 'Opiniones',
Test: 'Test',
Category: 'Categorie',
Admin: 'Admin',
@@ -87,17 +94,33 @@ const msg_website = {
faq: 'PREGUNTAS FRECUENTES (FAQ)',
advise: 'CONSEJOS',
download: 'MATERIAL DISPONIBLES',
dashboard: {
madegift: '¿Hiciste tu regalo?'
},
},
},
fr: {
homepage: {},
pages: {},
msg: {},
text: {
dashboard: {
madegift: 'Avez-vous fait votre cadeau?'
},
}
},
enUs: {
pages: {
home: 'Home',
profile: 'Profile',
profile: 'Your Profile',
payment: 'Payments',
SignUp: 'Registration',
SignUp2: 'Registration',
SignIn: 'Login',
vreg: 'Check Registration',
dashboard:'Dashboard',
dashboard:'Your Dashboard',
testimonial: 'Reviews',
Test: 'Test',
Category: 'Categorie',
Admin: 'Admin',
@@ -127,17 +150,18 @@ const msg_website = {
faq: 'FREQUENTLY ASKED QUESTIONS (FAQ)',
advise: 'ADVISE',
download: 'AVAILABLE DOCUMENTS',
dashboard: {
madegift: 'Did you make your gift?'
},
},
fr: {
homepage: {},
pages: {},
msg: {}
},
de: {
homepage: {},
pages: {},
msg: {}
msg: {},
text: {
}
}
}

View File

@@ -5,6 +5,7 @@ import { date, Screen } from 'quasar'
import { IListRoutes, ILang, IOperators, IPreloadImages } from '../model/index'
import { IFunctionality } from '@src/model/GlobalStore'
import firebase from '@src/error-handler/firebase'
const functionality: IFunctionality = {
PWA: false,
@@ -23,6 +24,7 @@ const functionality: IFunctionality = {
const routes_admin: IListRoutes[] = [
{
active: true,
order: 1000,
path: '/admin/cfgserv',
materialIcon: 'event_seat',
name: 'pages.Admin',
@@ -38,48 +40,56 @@ const routes_admin: IListRoutes[] = [
const routes_newsletter: IListRoutes[] = [
{
active: true,
order: 10,
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,
order: 20,
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,
order: 30,
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,
order: 40,
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,
order: 50,
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,
order: 60,
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,
order: 70,
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,
order: 80,
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
@@ -89,6 +99,7 @@ const routes_newsletter: IListRoutes[] = [
const routes_manager: IListRoutes[] = [
{
active: true,
order: 10,
path: '/admin/userlist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.userlist',
@@ -101,6 +112,7 @@ const routes_manager: IListRoutes[] = [
},
{
active: true,
order: 20,
path: '/admin/tableslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.tableslist',
@@ -113,6 +125,7 @@ const routes_manager: IListRoutes[] = [
},
{
active: true,
order: 30,
path: '/admin/pages',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.pages',
@@ -125,6 +138,7 @@ const routes_manager: IListRoutes[] = [
},
{
active: true,
order: 40,
path: '/admin/gallery',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.gallery',
@@ -137,6 +151,7 @@ const routes_manager: IListRoutes[] = [
},
{
active: true,
order: 50,
path: '/admin/media',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.media',
@@ -149,6 +164,7 @@ const routes_manager: IListRoutes[] = [
},
{
active: true,
order: 60,
path: '/admin/newsletter',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.newsletter',
@@ -162,6 +178,7 @@ const routes_manager: IListRoutes[] = [
},
{
active: functionality.BOOKING_EVENTS,
order: 70,
path: '/admin/usereventlist',
materialIcon: 'edit',
name: 'otherpages.admin.usereventlist',
@@ -175,39 +192,60 @@ const routes_manager: IListRoutes[] = [
}
]
const routes: IListRoutes[] = [
const baseroutes: IListRoutes[] = [
{
active: true,
order: 10,
path: '/',
materialIcon: 'home',
name: 'pages.home',
component: () => import('@/root/home/home.vue'),
reqauth: false,
inmenu: true,
infooter: true
},
{
active: true,
path: '/profile',
materialIcon: 'user',
name: 'pages.profile',
component: () => import('@/views/user/profile/profile.vue'),
reqauth: false,
order: 30,
path: '/testimonial',
materialIcon: 'fas fa-comments',
name: 'pages.testimonial',
component: () => import('@/root/testimonianze/testimonianze.vue'),
inmenu: true,
infooter: true
},
{
active: true,
path: '/separator',
name: 'separator',
order: 99,
isseparator: true,
inmenu: true,
},
{
active: true,
order: 100,
path: '/dashboard',
materialIcon: 'chalkboard',
materialIcon: 'fas fa-chalkboard',
name: 'pages.dashboard',
component: () => import('@/views/user/dashboard/dashboard.vue'),
reqauth: false,
meta: {requiresAuth: true},
inmenu: true,
infooter: true
},
{
active: true,
order: 110,
path: '/profile',
materialIcon: 'fas fa-user',
name: 'pages.profile',
component: () => import('@/views/user/profile/profile.vue'),
meta: {requiresAuth: true},
inmenu: true,
infooter: true
},
{
active: true,
order: 1000,
path: '/admin/newsletter/:idparam',
materialIcon: 'event',
name: 'pages.newsletter.menu',
@@ -217,6 +255,7 @@ const routes: IListRoutes[] = [
},
{
active: true,
order: 1000,
path: '/404error',
materialIcon: 'fas fa-calendar-plus',
name: 'otherpages.error404',
@@ -226,6 +265,7 @@ const routes: IListRoutes[] = [
},
{
active: true,
order: 2000,
path: '/admin',
materialIcon: 'fas fa-user-shield',
name: 'otherpages.admin.menu',
@@ -238,6 +278,7 @@ const routes: IListRoutes[] = [
...routes_admin,
{
active: true,
order: 2110,
path: '/manage',
materialIcon: 'fas fa-users-cog',
name: 'otherpages.manage.menu',
@@ -250,19 +291,22 @@ const routes: IListRoutes[] = [
...routes_manager,
{
active: functionality.SHOW_MESSAGES,
order: 2150,
path: '/messages/:un',
materialIcon: 'fas fa-comment',
name: 'otherpages.messages.menu',
component: () => import('@/views/messages/messages.vue'),
inmenu: functionality.SHOW_MESSAGES,
infooter: functionality.SHOW_MESSAGES,
reqauth: true
meta: {requiresAuth: true},
},
// --- NOT IN MENU: ---
{ active: true,
order: 1000,
path: '/policy', name: 'pages.policy', component: () => import('@/root/policy/policy.vue') },
{
active: functionality.ENABLE_REGISTRATION,
order: 1000,
path: '/signup',
materialIcon: 'how_to_reg',
name: 'pages.SignUp',
@@ -273,6 +317,7 @@ const routes: IListRoutes[] = [
},
{
active: functionality.ENABLE_REGISTRATION,
order: 1000,
path: '/signup/:invited',
materialIcon: 'how_to_reg',
name: 'pages.SignUp2',
@@ -283,6 +328,7 @@ const routes: IListRoutes[] = [
},
{
active: true,
order: 1000,
path: '/signin',
materialIcon: 'account_circle',
name: 'pages.SignIn',
@@ -290,10 +336,12 @@ const routes: IListRoutes[] = [
inmenu: false,
infooter: true
},
{ 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') },
{ active: true, order: 1000, path: '/vreg', name: 'Verify Reg', component: () => import('@/views/login/vreg/vreg.vue') },
{ active: true, order: 1000, path: '/offline', name: 'Offline', component: () => import('@/views/offline/offline.vue') },
]
export const routes = baseroutes
const preLoadImages: IPreloadImages[] = [
{ imgname: '../../statics/images/logo.png', alt: 'logo', mobile: false },
{ imgname: '../../statics/images/gb.png', alt: 'flag gb', mobile: false },
@@ -327,6 +375,7 @@ const lang_available: ILang[] = [
export const static_data = {
functionality,
baseroutes,
routes,
lang_available,
preLoadImages,

View File

@@ -12,7 +12,7 @@ import { tools } from '@src/store/Modules/tools'
import { func_tools, toolsext } from '@src/store/Modules/toolsext'
import { Screen } from 'quasar'
import MixinMetaTags from '@src/mixins/mixin-metatags'
import { CCardCarousel, CEventsCalendar, CImgText, COpenStreetMap, CTitleBanner } from '@components'
import { CCardCarousel, CImgText, CTitleBanner } from '@components'
import MixinBase from '@src/mixins/mixin-base'
Vue.use(VueScrollReveal, {
@@ -30,7 +30,7 @@ Vue.use(VueScrollReveal, {
@Component({
mixins: [MixinBase],
components: { Logo, Footer, CMyPage, CCardCarousel, CEventsCalendar, COpenStreetMap, CTitleBanner, CImgText }
components: { Logo, Footer, CMyPage, CCardCarousel, CTitleBanner, CImgText }
})
export default class Home extends MixinBase {
public text: string = ''
@@ -59,7 +59,7 @@ export default class Home extends MixinBase {
label: '1',
value: 0,
title: {
it: '<strong>Giorno 1 - Contributore Finanziario</strong><br><br>' +
it: '<strong>Passo 1 - Contributore Finanziario</strong><br><br>' +
'Entro nella chat, dono <strong>33€</strong> e ho già <strong>trovato 2 persone</strong> che vogliono partecipare al gioco.',
es: '',
enUs: ''
@@ -70,8 +70,8 @@ export default class Home extends MixinBase {
label: '2',
value: 1,
title: {
it: '<strong>Giorno 2 - Contributore solidale</strong><br><br>' +
'Inserisco nella chat le mie 2 persone che verseranno i 33€.',
it: '<strong>Passo 2 - Contributore solidale</strong><br><br>' +
'Invio il link per registrarsi alle mie 2 persone, che cosí verseranno i 33€.',
es: '',
enUs: ''
},
@@ -82,7 +82,7 @@ export default class Home extends MixinBase {
label: '3',
value: 2,
title: {
it: '<strong>Giorno 3 - Tesoriere/segretario</strong><br><br>' +
it: '<strong>Passo 3 - Tesoriere/segretario</strong><br><br>' +
'Collaborare, aggiornare doni, fornire informazioni, ma anche conoscersi, condividere esperienze, passioni e sogni.',
es: '',
enUs: ''
@@ -95,8 +95,8 @@ export default class Home extends MixinBase {
label: '4',
value: 3,
title: {
it: '<strong>Giorno 4 - Apertura tua Billettera</strong><br>' +
'Creo il mio gruppo Whatsapp nel quale entrano i miei 2 ospiti, i 2 ospiti dei miei 2 ospiti, che porteranno altre 8 persone (4x2).<br>' +
it: '<strong>Passo 4 - Apertura tua Billettera</strong><br>' +
'Creo il mio gruppo Telegram nel quale entrano i miei 2 ospiti, i 2 ospiti dei miei 2 ospiti, che porteranno altre 8 persone (4x2).<br>' +
'<br>Ricevuti i 33€ da queste 8 persone (264€), mi tengo i mei <strong>iniziali 33€</strong> e <strong>dono 231 €</strong> alla Billettera "Mas Antigua".',
es: '',
enUs: ''
@@ -105,10 +105,10 @@ export default class Home extends MixinBase {
myicon2: 'fas fa-wallet'
},
{
label: '5-6-7-8',
label: '5',
value: 4,
title: {
it: '<strong>Giorno 5-6-7-8</strong><br>' +
it: '<strong>Passo 5</strong><br>' +
'Aspetto, da parte delle 8 nuove Billettere, le donazioni di 231€, per un totale di <strong>1848€</strong>.<br>' +
'<br>Ringrazio l\'<strong>Universo</strong> per il <strong>dono</strong> ricevuto e fornisco <strong>aiuto</strong> a chi ne ha bisogno.<br>' +
'Se desidero, posso <strong>ricominciare</strong> il gioco!',
@@ -146,18 +146,11 @@ export default class Home extends MixinBase {
public audiofiles = {
it: [
{
title: 'Elisa (1)',
title: 'Elisa (Audio 1)',
label: '1',
value: 0,
src: 'statics/audio/it/spiegazione_Billettera.mp3',
type: 'audio/mp3'
},
{
title: 'Altro',
label: '2',
value: 1,
src: 'statics/audio/it/spiegazione_Billettera_2.mp3',
type: 'audio/mp3'
}
]
}
@@ -200,7 +193,7 @@ export default class Home extends MixinBase {
public advise = [
{
title: {
it: 'La forza di questo gioco sono le Persone e la Collaborazione. Non siate timidi e scrivete agli amici su whatsapp, facebook, Telegram',
it: 'La forza di questo gioco sono le Persone e la Collaborazione.<br>Vincete la timidezza e scrivete agli amici su whatsapp, facebook, Telegram.',
es: '',
enUs: ''
},
@@ -209,9 +202,7 @@ export default class Home extends MixinBase {
},
{
title: {
it: 'È un lavoro di squadra ma in cui ognuno deve assolutamente fare la sua parte<br>' +
'La parte di ognuno in questo gioco è fare il dono e portare due persone<br>' +
'Se manca una di queste due parti il gioco si ferma',
it: 'È un lavoro di squadra, dove ognuno fa la sua parte.',
es: '',
enUs: ''
},
@@ -221,44 +212,16 @@ export default class Home extends MixinBase {
},
{
title: {
it: 'Per me personalmente la sto vivendo anche come una bellissima opportunità di risentire ' +
'vecchi amici che non sento da tempo, ed avere un intento comune, anche solo un giochino, ci ' +
'da di nuovo la possibilità di sentirci e di riconnetterci.<br>',
it: 'E\' un\'opportunità di risentire vecchi amici, ed avere un intento comune, per risentirci e di riconnetterci.<br>',
es: '',
enUs: ''
},
color: 'white',
icon: 'fas fa-hand-holding-heart',
textcolor: 'black'
},
{
title: {
it: 'Dietro ogni amico che anche non sentire da un bel pò, c\'è la possibilità di ' +
'riscoprire la gioia ed il motivo che vi ha fatti essere amici, anche molto tempo fa',
es: '',
enUs: ''
},
color: 'white',
icon: 'far fa-smile-beam',
textcolor: 'black'
},
{
title: {
it: 'Ieri sera sono entrati nella mia Billettera 1 persona, che ne ha portate subito altre 2, che ' +
'non sentivo da secoli, portando una gran gioia ed energia ed entusiasmo.<br> ' +
'E\' stato molto bello risentirli 😊 <br>' +
'Se non gli avessi scritto, non sarebbe mai successo.<br>',
es: '',
enUs: ''
},
color: 'white',
icon: 'far fa-sun',
textcolor: 'black'
},
}
]
constructor() {
super()
// console.log('Home constructor...')
@@ -308,7 +271,7 @@ export default class Home extends MixinBase {
this.arrvideo_mp4.push(this.getvideomp4src(index))
}
console.log(this.arrvideo_mp4)
// console.log(this.arrvideo_mp4)
GlobalStore.actions.prova()

View File

@@ -256,11 +256,12 @@
<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">
<!--<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>
2) L'impegno di seguire delle indicazioni nei tempi stabiliti all' interno di una chat whatsapp, dove ogni
</div>-->
2) L'impegno di seguire delle indicazioni nei tempi stabiliti all' interno di una chat, 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.
@@ -289,113 +290,6 @@
</div>
</CTitleBanner>
<CTitleBanner class="q-pa-xs" :title="$t('text.testimonial')" bgcolor="bg-negative" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; " canopen="true">
<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;" canopen="true">
<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;">

View File

@@ -1,5 +1,5 @@
import Vue from 'vue'
import { Component, Prop } from 'vue-property-decorator'
import { Component, Prop, Watch } from 'vue-property-decorator'
import { GlobalStore, UserStore } from '@store'
import { tools } from '../../store/Modules/tools'
@@ -25,11 +25,16 @@ export default class Mypage extends MixinMetaTags {
public rec: IMyPage = {}
public mounted() {
console.log('this.$route.path', this.$route.path)
// console.log('this.$route.path', this.$route.path)
this.rec = GlobalStore.getters.getPage(this.$route.path)
console.log(this.rec)
}
@Watch('$route.path')
public changepage() {
this.rec = GlobalStore.getters.getPage(this.$route.path)
}
public meta() {
return tools.metafunc(this)
}

View File

@@ -0,0 +1,470 @@
.testo-banda {
//background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent));
//background: linear-gradient(180deg, #3144f0, transparent);
//background: rgba(0, 0, 0, .6)
}
$grayshadow: #555;
$textcol: blue;
$textcol_scuro: darkblue;
p {
margin: 0 0 1.25rem;
//text-shadow: .125rem .125rem .25rem $grayshadow;
}
h4 {
font-size: 1.25rem;
}
.mycard {
visibility: hidden;
}
.landing {
}
.landing_background {
background: #000 url(../../statics/images/foto1.jpg) no-repeat 50% fixed;
background-size: cover
}
.landing > section {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
//padding: 0 16px
}
.intro {
display: flex;
justify-content: space-between;
align-items: stretch;
/* flex-flow: row nowrap; */
padding: 1.25rem 0 1.25rem 0;
margin: .125rem;
* {
width: 100%;
flex: 1;
margin-left: auto;
margin-right: auto;
}
&__associazione {
min-width: 350px;
}
&__comeassociarsi {
min-width: 350px;
}
}
.subtitle {
font-weight: 600;
text-align: center;
letter-spacing: 0.125rem;
text-transform: uppercase;
font-size: 1rem;
}
.subtitle_small {
font-weight: 600;
text-align: center;
letter-spacing: 0.125rem;
text-transform: uppercase;
font-size: 1rem;
margin: 0px;
}
.landing > section.padding {
padding: 5.62rem 1rem;
}
.landing > section.padding_testo {
padding-top: 1.25rem;
padding-bottom: 1rem;
}
.landing > section.padding_gallery {
padding-top: 3.125rem;
padding-bottom: 5.625rem;
}
.landing > section > div {
position: relative;
width: 100%
}
.maxwidth1200 {
max-width: 1200px;
}
.landing__toolbar {
background: -webkit-gradient(linear, left top, left bottom, from(#000), to(transparent));
background: linear-gradient(180deg, #000, transparent);
padding: 0 !important
}
.landing__toolbar .q-btn {
border-radius: 0 0 .315rem .315rem;
-ms-flex-item-align: stretch;
align-self: stretch
}
.landing__hero {
min-height: 50vh
}
.landing__header {
height: 18vh
}
.landing__arrow {
bottom: 1.5rem;
opacity: .4
}
.landing__front {
background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(15%, rgba(0, 0, 0, .6)));
background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .6) 15%)
}
.landing__logo {
width: 9.40rem;
height: 9.40rem;
margin-top: 1.315rem;
//-webkit-animation: logo-rotate 240s linear infinite;
//animation: logo-rotate 240s linear infinite
}
.landing__features .q-icon {
font-size: 4rem
}
h4 {
line-height: 1.5;
text-shadow: .25rem .25rem .5rem $grayshadow;
}
.landing__features h4, .landing__features h6 {
margin: 1rem 0
}
.landing__features p {
opacity: .7;
font-size: 1rem;
line-height: 1.5;
}
.landing__footer {
//background: -webkit-gradient(linear, left top, left bottom, color-stop(65%, rgba(0, 0, 0, .1)), to(#000));
background: linear-gradient(180deg, rgba(0, 0, 0, .8) 95%, #FFF);
padding-top: 4.5rem !important;
padding-bottom: 4.5rem !important;
padding-left: 1.25rem;
padding-right: 1.25rem;
color: #9f9f9f;
}
.icon_contact:hover {
color: blue;
border-color: white;
border-width: .0625rem;
}
.landing__footer .doc-link {
color: $textcol;
}
.landing__footer .doc-link:hover {
opacity: .8
}
.landing__swirl-bg {
background-repeat: no-repeat !important;
background-position: top;
background-size: contain !important;
background-image: url(../../statics/images/landing_first_section.png) !important
}
.feat-descr {
font-size: 1.15rem;
}
.feat-descr:hover {
transition: opacity 0.5s ease-in-out;
opacity: 0.9;
}
.q-col-gutter-sm {
padding: 3.125rem 3.125rem;
//margin-left: -48px
}
body.mobile .landing {
//background: unset
}
body.mobile .landing:before {
content: "";
position: fixed;
top: 0;
height: 100vh;
left: 0;
right: 0;
bottom: 0;
z-index: -1;
//background: #000 url(../../statics/images/cover.jpg) 50%;
background-size: cover
}
/*
@-webkit-keyframes logo-rotate {
to {
-webkit-transform: rotate(-1turn);
transform: rotate(-1turn)
}
}
@keyframes logo-rotate {
to {
-webkit-transform: rotate(-1turn);
transform: rotate(-1turn)
}
}
*/
.home {
//background-color: rgb(250, 250, 250);
padding: 3.125rem;
display: flex;
//flex-wrap: nowrap;
flex-direction: column;
align-items: center;
justify-content: space-between;
}
.btn-start {
margin: 3.125rem;
}
.shadow {
//color: white;
text-shadow: 0.125rem 0.125rem 0.25rem $grayshadow;
}
.text-h1, h1 {
font-size: 3rem;
font-weight: bold;
line-height: 3rem;
letter-spacing: -.01562em;
margin-bottom: 8px !important;
}
.text-h2 {
font-size: 3.75rem;
font-weight: 300;
line-height: 3.75rem;
letter-spacing: -.00833em;
}
.text-weight-bold {
font-weight: 700;
}
.text-vers {
font-size: 0.75rem;
font-weight: 400;
line-height: 1.75rem;
letter-spacing: .00937em;
text-shadow: .25rem .25rem .5rem $grayshadow;
}
.homep-cover-img-1 {
background: #000 url(../../statics/images/foto1.jpg) no-repeat 50% fixed;
//transition: background-image 1s ease-in-out;
}
.homep-cover-img-2 {
background: #000 url(../../statics/images/foto2.jpg) no-repeat 50% fixed;
//transition: background-image 1s ease-in-out;
}
.homep-cover-img-3 {
background: #000 url(../../statics/images/foto3.jpg) no-repeat 50% fixed;
//transition: background-image 1s ease-in-out;
}
.homep-cover-img.hide-filter:before {
opacity: 0
}
.landing__footer-icons {
font-size: 1.75rem
}
.landing__footer-icons a {
margin: 0 .5rem .5rem;
text-decoration: none;
outline: 0;
color: $textcol;
transition: color .28s
}
.landing__footer-icons a:hover {
color: $textcol_scuro;
}
.doc-img {
max-width: 100%;
}
.mylist {
background: #3fdaff;
padding-left: 1.25rem;
}
.clgutter {
margin-top: 1.25rem;
padding: .62rem;
}
.carousel_img_3 {
//background-image: url(../../statics/images/cibo_sano.jpg);
background-size: cover !important;
background-position: 50% center !important;
background-repeat: no-repeat !important;
}
@media (max-width: 718px) {
// PER VERSIONE MOBILE
.landing__hero {
text-align: center
}
.landing__header {
height: 7vh
}
.clgutter {
margin-top: 0;
padding: 0;
}
.landing__hero .text-h1, h1 {
font-size: 2rem;
line-height: 2.05rem;
margin-bottom: 1.25rem
}
.landing > section.padding {
padding: 2.5rem 1rem;
}
.landing > section.padding_testo {
padding-top: 1.25rem;
padding-bottom: 1rem;
}
.landing > section.padding_gallery {
padding-top: 3.125rem;
padding-bottom: 5.625rem;
max-width: 800px;
}
.landing > section.padding_gallery > div {
padding-top: 3.125rem;
padding-bottom: 5.625rem;
}
.landing__features h4, .landing__features h6 {
margin: 1.25rem 0
}
h4 {
line-height: 1.4;
text-shadow: 0.25rem 0.25rem 0.5rem $grayshadow;
}
.landing .feature-item {
text-align: center;
margin-top: 1.25rem;
}
.landing__hero-content {
padding-bottom: 11.25rem;
}
.landing__hero2-content {
padding-bottom: 7.25rem;
}
.landing__hero-btns {
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center
}
.q-col-gutter-sm {
padding: .625rem .315rem;
}
.text-subtitle1 {
font-size: 1.25rem;
}
.text-vers {
font-size: 0.6rem;
}
.carousel_img_3 {
//background-image: url(../../statics/images/cibo_sano.jpg);
background-size: 500px 500px !important;
background-position: 50% top !important;
background-repeat: no-repeat !important;
}
}
.custom-caption {
text-align: center;
padding: .75rem;
color: $textcol;
background-color: rgba(0, 0, 0, .3);
}
.sfondo-grigio {
padding: 1rem;
color: $textcol;
background-color: rgba(0, 0, 0, .35);
}
.mycontacts {
color: gray;
letter-spacing: 0.078rem;
}
.mycontacts_title {
text-shadow: 0.125rem 0.125rem 0.125rem #555;
font-weight: bold;
color: #999;
letter-spacing: 0.125rem;
}
.mycontacts_text {
color: #999;
letter-spacing: 0.093rem;
}
.q-carousel__slide{
padding: 8px !important;
}
.step-text{
font-size: 1.15rem;
font-weight: 500;
}

View File

@@ -0,0 +1,116 @@
import Vue from 'vue'
import { Component } from 'vue-property-decorator'
import { GlobalStore, UserStore } from '@store'
import { Logo } from '../../components/logo'
import { Footer } from '../../components/Footer'
import { CMyPage } from '../../components/CMyPage/index'
import VueScrollReveal from 'vue-scroll-reveal'
import { tools } from '@src/store/Modules/tools'
import { func_tools, toolsext } from '@src/store/Modules/toolsext'
import { Screen } from 'quasar'
import MixinMetaTags from '@src/mixins/mixin-metatags'
import { CCardCarousel, CEventsCalendar, CImgText, COpenStreetMap, CTitleBanner } from '@components'
import MixinBase from '@src/mixins/mixin-base'
Vue.use(VueScrollReveal, {
class: 'v-scroll-reveal', // A CSS class applied to elements with the v-scroll-reveal directive; useful for animation overrides.
duration: 1200,
scale: 0.95,
distance: '10px',
rotate: {
x: 0,
y: 0,
z: 0
}
// mobile: true
})
@Component({
mixins: [MixinBase],
components: { CMyPage, CCardCarousel, CTitleBanner, CImgText }
})
export default class Testimonianze extends MixinBase {
public $t: any
public $q
public myaudio = 0
public mytestimonianze = 0
public audiofiles = {
it: [
{
title: 'Elisa (Audio 1)',
label: '1',
value: 0,
src: 'statics/audio/it/spiegazione_Billettera.mp3',
type: 'audio/mp3'
}
]
}
public testimonianze = {
it: [
{
title: '1. Giovanni',
label: '1',
value: 0,
text: '<p>Amici di questa meravigliosa Billettera, mi permetto di dare un mio punto di vista a ' +
'questo meraviglioso gruppo di amici che si stanno sostenendo a partecipare <strong>donando e ricevendo</strong> questo dono economico. ' +
'In questo progetto bisogna entrarci con il <strong>cuore</strong>, in questo gioco di economia circolare, e non con la mente.</p>' +
'<p>L\'ego mentale che ha costruito il giro di denaro sul potere, sul ricevere soldi dal lavoro, sull\'arrivismo, sullo scambiare ore della propria vita con denaro,' +
' e solitamente dalla competizione e dalla fatica, non può concepire che <strong>si può donare dei soldi ad amici conosciuti e sconosciuti e ricevere altrettanti doni indietro</strong>, ' +
'anche in denaro, da altri amici, che ti permetteranno di gioire di questa ricchezza economica che arriva solo da fatto che si possono utilizzare ' +
'i soldi anche con gesti di puro Amore.</p> ' +
'<p>Quando lo proponete ad amici è naturale che vi sentirete chiedere : <em>"Una piramide, dov\'è la fregatura?"</em><br>' +
'Personalmente io parlo della mia esperienza, che sono felice di fare un dono di 33€ e di riceverne altrettanti e non vedo dove sta il problema.<br> ' +
'Forse il sentirsi dire dei no, ci rimanda subito al mentale che si sente rifiutato ed entra subito nel giudizio negativo per se e verso gli altri,' +
'questo è un gioco che ci aiuterà a vedere tante facce dell\'ego che boicotterà, che ci depisterà, che ci illuderà, ma dietro a tutto questo ' +
'ci sta l\'Amore e la Consapevolezza che ci aiuteranno ad andare oltre e a procedere verso questa nuova esperienza di scambi di doni tra belle ' +
'anime che stanno già condividendo e sostenendosi a vicenda per portare una nuova visione sull\'<strong>economia circolare dei soldi</strong>.</p>' +
'<p>Insomma questa è una chance, per riprendere anche gli <strong>schemi già visti</strong> di scambi a diversi livelli, ma con tutta la nuova tecnologia che ' +
'abbiamo a disposizione, che ci aiuta a <strong>rimanere connessi continuamente</strong>, e con la nuova consapevolezza che finalmente l\'essere umano sta ' +
'raggiungendo, e di usarli, i network, per <strong>ridistribuire</strong>, anche se solo in piccola parte, <strong>un po\' di regali, gioia, amore, amicizia e denaro ' +
'sul pianeta</strong>.</p>' +
'<p>Questa billetera è una vera chance di <strong>cooperazione ad una ottava superiore</strong>, che porta con sé, anche molti <strong>regali</strong> di consapevolezza, ' +
'crescita correttezza, precisione, onestà, cooperazione, amore.</p>',
},
{
title: '2. Luca',
label: '2',
value: 1,
text: ''
}
]
}
public meta() {
return tools.metafunc(this)
}
get tools() {
return tools
}
public mounted() {
}
public beforeDestroy() {
}
public gettitle_advise(rec) {
return rec.title[tools.getLocale()]
}
public getaudiofiles() {
return this.audiofiles[tools.getLocale()]
}
public gettestimonianze() {
return this.testimonianze[tools.getLocale()]
}
}

View File

@@ -0,0 +1,126 @@
<template>
<q-page>
<CMyPage title="">
<div class="q-ma-md">
<span>{{ setmeta({
title: 'Home',
description: $t('msg.myAppDescription'),
keywords: $t('msg.keywords_base') } ) }}
</span>
<CTitleBanner class="q-pa-xs" :title="$t('text.testimonial')" bgcolor="bg-primary" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; " canopen="true">
<q-carousel
v-model="mytestimonianze"
transition-prev="slide-right"
transition-next="slide-left"
swipeable
animated
control-color="white"
padding
ref="mytestimonianze"
height="100%"
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="`AUDIO`" bgcolor="bg-primary" clcolor="text-white"
mystyle="letter-spacing: 0.25rem; " canopen="true">
<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>
</CTitleBanner>
</div>
</CMyPage>
</q-page>
</template>
<script lang="ts" src="./testimonianze.ts">
</script>
<style lang="scss" scoped>
@import './testimonianze.scss';
</style>

View File

@@ -50,7 +50,12 @@ Router.beforeEach(async (to: IMyRoute, from: IMyRoute, next) => {
// await LoginStore.actions.checkUserSession();
// }
// console.log(to, from)
/*
if (!from || !to || from.matched.length <= 0) {
next()
return
}
*/
if (from.name && from.matched[0].name === to.name && from.meta.isModal) {
next()
@@ -124,7 +129,7 @@ Router.beforeEach(async (to: IMyRoute, from: IMyRoute, next) => {
// next('/')
}
return Router.push({ name: 'login' })
return Router.push({ name: 'pages.SignIn' })
}
} else if (to.matched.some((m) => m.meta.noAuth) && UserStore.state.isLogged) {
next('/')

View File

@@ -1,5 +1,4 @@
[Dolphin]
PreviewsShown=true
Timestamp=2019,5,3,13,8,13
Timestamp=2019,12,30,10,16,33
Version=4
ViewMode=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB