Altre modifiche...

This commit is contained in:
Paolo Arena
2020-05-04 19:33:15 +02:00
parent 38daf60dfc
commit 4dc599859e
20 changed files with 15792 additions and 28094 deletions

80
README.md Executable file
View File

@@ -0,0 +1,80 @@
<div>
# AYNI
Circolar Economy !<br>
</div>
<div>
This app was made mixing all this languages and tools:<br>
<ul>
<li>Quasar Framework</li>
<li>Vue.js</li>
<li>Typescript</li>
<li>Progressive Web App (PWA) amazing native-looking apps</li>
</ul>
Thanks to the Quasar Framework and TypeScript !
</div>
<br>
<br>
<div align="center">
[![Made with Quasar](https://img.shields.io/badge/made%20with-Quasar-blue.svg?style=for-the-badge)](https://github.com/quasarframework/quasar)
[![Uses TypeScript](https://img.shields.io/badge/uses-TypeScript-3F51B5.svg?style=for-the-badge)](https://github.com/Microsoft/TypeScript)
<!--[![License MIT](https://img.shields.io/github/license/paoloar77/freeplanet-blue.svg?style=for-the-badge)](https://opensource.org/licenses/MIT) -->
</div>
<div align="center">
[![js-standard-style](https://cdn.rawgit.com/standard/standard/master/badge.svg)](https://github.com/standard/standard)
</div>
## Features ⚡️
- [TypeScript](https://github.com/Microsoft/TypeScript) ✔
- Internationalization (I18n) ✔
## Built-in Tools 🔨
- [TSlint](https://github.com/palantir/tslint) TypeScript Linter configured with the [Standard](https://github.com/standard/standard) JavaScript Code Style
## Installation 🔧
**System prerequisites :**
- Node.js 8.9.0
## Usage
```bash
$ npm run dev # Start a SPA
```
## Building
You can build your application for production using :
```bash
$ npm run build # Build
```
## References
* **Quasar TypeScript (Kevin Marrec proj)** : [GitHub](https://github.com/kevinmarrec/quasar-typescript)
* **Quasar 0.17.15** : [Website](https://quasar-framework.org) | [Documentation](https://quasar-framework.org/guide) | [Github](https://github.com/quasarframework/quasar)
* **Vue I18n 8.1.0** : [Website](https://kazupon.github.io/vue-i18n) | [Documentation](https://kazupon.github.io/vue-i18n/guide/started.html) | [Github](https://github.com/kazupon/vue-i18n)
## License
[MIT](https://opensource.org/licenses/MIT)
Copyright (c) 2020-present, Paolo Arena
* Quasar TypeScript Example:
https://github.com/kevinmarrec/quasar-typescript
Copyright (c) 2018, Kevin Marrec

View File

@@ -7,8 +7,8 @@ const autoprefixer = require('autoprefixer');
const cssNext = require('postcss-cssnext'); const cssNext = require('postcss-cssnext');
const postcssImport = require('postcss-import'); const postcssImport = require('postcss-import');
const PrerenderSPAPlugin = require('prerender-spa-plugin') // const PrerenderSPAPlugin = require('prerender-spa-plugin')
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer // const Renderer = PrerenderSPAPlugin.PuppeteerRenderer
const baseConfig = { const baseConfig = {
entry: { entry: {
@@ -62,7 +62,7 @@ const baseConfig = {
scss: ['vue-style-loader', 'css-loader','sass-loader', { scss: ['vue-style-loader', 'css-loader','sass-loader', {
loader: 'sass-resources-loader', loader: 'sass-resources-loader',
options: { options: {
resources: helpers.root('src/styles/variables.scss'), resources: helpers.root('src/statics/variables.scss'),
esModule: true, esModule: true,
} }
}], }],

View File

@@ -1,3 +1,10 @@
npm VERSIONE 8.9.0
nvm use default 8.9.0
npm install
npm run build
<div v-if="$q.screen.gt.xs"> <div v-if="$q.screen.gt.xs">
..... .....
</div> </div>

26664
package-lock.json generated Executable file → Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@
"", "",
"" ""
], ],
"author": "FreePlanet", "author": "Paolo Arena",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"lint": "tslint --project tsconfig.json", "lint": "tslint --project tsconfig.json",
@@ -20,18 +20,18 @@
"build": "quasar build", "build": "quasar build",
"buildpwa": "quasar build -m pwa", "buildpwa": "quasar build -m pwa",
"build:clean": "quasar clean", "build:clean": "quasar clean",
"serve": "quasar serve ./dist/spa", "serve": "quasar serve ./dist/pwa",
"serve:coverage": "quasar serve test/coverage/lcov-report/ --cache 0 --port 8788", "serve:coverage": "quasar serve test/coverage/lcov-report/ --cache 0 --port 8788",
"deploy": "deploy.sh", "deploy": "deploy.sh",
"test": "NODE_ENV=test DEBUG=v8:* quasar build", "test": "NODE_ENV=test DEBUG=v8:* quasar build",
"deploy_server_test_pwa": "NODE_ENV=test quasar build -m pwa", "deploy_server_test": "NODE_ENV=test quasar build -m pwa",
"generate-sw": "workbox generateSW workbox-config.js" "generate-sw": "workbox generateSW workbox-config.js"
}, },
"dependencies": { "dependencies": {
"@babel/plugin-transform-runtime": "^7.4.0", "@babel/plugin-transform-runtime": "^7.4.0",
"@babel/runtime": "^7.0.0", "@babel/runtime": "^7.0.0",
"@quasar/babel-preset-app": "^1.1.9", "@quasar/babel-preset-app": "^1.1.8",
"@quasar/extras": "^1.5.2", "@quasar/extras": "1.5.0",
"@types/googlemaps": "^3.38.0", "@types/googlemaps": "^3.38.0",
"@types/lodash": "^4.14.142", "@types/lodash": "^4.14.142",
"@types/vuelidate": "^0.7.0", "@types/vuelidate": "^0.7.0",
@@ -54,8 +54,8 @@
"npm": "^6.10.0", "npm": "^6.10.0",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"prerender-spa-plugin": "^3.4.0", "prerender-spa-plugin": "^3.4.0",
"quasar": "^1.9.3", "quasar": "1.8.2",
"quasar-extras": "^2.0.8", "quasar-extras": "2.0.8",
"register-service-worker": "^1.0.0", "register-service-worker": "^1.0.0",
"vee-validate": "^2.1.2", "vee-validate": "^2.1.2",
"vue": "^2.6.10", "vue": "^2.6.10",
@@ -93,10 +93,10 @@
"@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-syntax-import-meta": "^7.2.0", "@babel/plugin-syntax-import-meta": "^7.2.0",
"@babel/preset-env": "^7.4.2", "@babel/preset-env": "^7.4.2",
"@quasar/app": "^1.5.8", "@quasar/app": "1.5.2",
"@quasar/quasar-app-extension-qcalendar": "^1.4.0", "@quasar/quasar-app-extension-qcalendar": "^1.3.14",
"@quasar/quasar-app-extension-qmediaplayer": "^1.0.17", "@quasar/quasar-app-extension-qmediaplayer": "^1.0.17",
"@quasar/quasar-app-extension-qscroller": "^1.0.8", "@quasar/quasar-app-extension-qscroller": "1.0.5",
"@quasar/quasar-app-extension-typescript": "^1.0.0-alpha.11", "@quasar/quasar-app-extension-typescript": "^1.0.0-alpha.11",
"@types/dotenv": "^4.0.3", "@types/dotenv": "^4.0.3",
"@types/jest": "^23.1.4", "@types/jest": "^23.1.4",
@@ -117,7 +117,7 @@
"babel-loader": "8.0.0-beta.2", "babel-loader": "8.0.0-beta.2",
"babel-plugin-transform-imports": "1.5.1", "babel-plugin-transform-imports": "1.5.1",
"eslint": "^5.5.0", "eslint": "^5.5.0",
"file-loader": "^3.0.1", "file-loader": "3.0.1",
"html-webpack-plugin": "^2.8.1", "html-webpack-plugin": "^2.8.1",
"http-proxy-middleware": "^0.19.1", "http-proxy-middleware": "^0.19.1",
"jest": "^24.5.0", "jest": "^24.5.0",
@@ -143,7 +143,7 @@
"workbox-cli": "^3.6.3" "workbox-cli": "^3.6.3"
}, },
"engines": { "engines": {
"node": ">= 10.16.0", "node": ">= 8.9.0",
"npm": ">= 5.6.0", "npm": ">= 5.6.0",
"yarn": ">= 1.15.2" "yarn": ">= 1.15.2"
}, },

View File

@@ -217,6 +217,7 @@ module.exports = function (ctx) {
'QInnerLoading', 'QInnerLoading',
'QSpinnerTail', 'QSpinnerTail',
'QSpinnerHourglass', 'QSpinnerHourglass',
'QSpinnerGears',
'QDate', 'QDate',
'QTime', 'QTime',
'QSlideTransition', 'QSlideTransition',

View File

@@ -35,12 +35,7 @@ export default class App extends Vue {
console.info('SESSIONE IN TEST ! (TEST)') console.info('SESSIONE IN TEST ! (TEST)')
console.info(process.env) console.info(process.env)
} }
console.info('NodeEnv', process.env.NODE_ENV) console.info('Vers:', process.env.APP_VERSION)
if (process.env.PROD) {
console.info('SESSIONE IN PRODUZIONE!')
// console.info(process.env)
}
// Make autologin only if some routing // Make autologin only if some routing
@@ -54,7 +49,7 @@ export default class App extends Vue {
}) })
if (chiamaautologin) { if (chiamaautologin) {
console.log('CHIAMA autologin_FromLocalStorage') // console.log('CHIAMA autologin_FromLocalStorage')
await UserStore.actions.autologin_FromLocalStorage() await UserStore.actions.autologin_FromLocalStorage()
.then((loadstorage) => { .then((loadstorage) => {
if (loadstorage) { if (loadstorage) {

View File

@@ -41,6 +41,7 @@ const msg_website_de = {
dbop: 'Operazioni', dbop: 'Operazioni',
statusreg: { statusreg: {
reg: 'Partecipanti', reg: 'Partecipanti',
passeggeri: 'Passeggeri Navi',
giainlista: 'Gia in Lista', giainlista: 'Gia in Lista',
newreg: 'Ultime Registrazioni:', newreg: 'Ultime Registrazioni:',
nationality: 'Nazionalità', nationality: 'Nazionalità',

View File

@@ -33,6 +33,7 @@ const msg_website_enUs = {
Test2: 'Test2', Test2: 'Test2',
statusreg: { statusreg: {
reg: 'Participants', reg: 'Participants',
passeggeri: 'Passengers Ships',
giainlista: 'Already in the List', giainlista: 'Already in the List',
newreg: 'New registrations:', newreg: 'New registrations:',
nationality: 'Nationality', nationality: 'Nationality',

View File

@@ -33,6 +33,7 @@ const msg_website_es = {
Test2: 'Test2', Test2: 'Test2',
statusreg: { statusreg: {
reg: 'Participantes', reg: 'Participantes',
passeggeri: 'Barcos de pasajeros',
giainlista: 'Gia in Lista', giainlista: 'Gia in Lista',
newreg: 'Nuevas inscripciones :', newreg: 'Nuevas inscripciones :',
nationality: 'Nacionalidad', nationality: 'Nacionalidad',

View File

@@ -36,6 +36,7 @@ const msg_website_fr = {
Test2: 'Test2', Test2: 'Test2',
statusreg: { statusreg: {
reg: 'Participants', reg: 'Participants',
passeggeri: 'Navires à passagers',
giainlista: 'Gia in Lista', giainlista: 'Gia in Lista',
newreg: 'Nouvelles inscriptions:', newreg: 'Nouvelles inscriptions:',
nationality: 'Nationalité', nationality: 'Nationalité',

View File

@@ -41,6 +41,7 @@ const msg_website_it = {
dbop: 'Operazioni', dbop: 'Operazioni',
statusreg: { statusreg: {
reg: 'Partecipanti', reg: 'Partecipanti',
passeggeri: 'Passeggeri Navi',
giainlista: 'Gia in Lista', giainlista: 'Gia in Lista',
newreg: 'Ultime Registrazioni:', newreg: 'Ultime Registrazioni:',
nationality: 'Nazionalità', nationality: 'Nazionalità',

View File

@@ -33,6 +33,7 @@ const msg_website_pt = {
Test2: 'Test2', Test2: 'Test2',
statusreg: { statusreg: {
reg: 'Participantes', reg: 'Participantes',
passeggeri: 'Navios de Passageiros',
giainlista: 'Já na lista', giainlista: 'Já na lista',
newreg: 'Últimas Inscrições:', newreg: 'Últimas Inscrições:',
nationality: 'Nacionalidade', nationality: 'Nacionalidade',

View File

@@ -29,6 +29,7 @@ const msg_website_si = {
eventodef: 'Dogodek:', eventodef: 'Dogodek:',
statusreg: { statusreg: {
reg: 'Udeleženci', reg: 'Udeleženci',
passeggeri: 'Potniki Ladjic',
giainlista: 'Že na seznamu', giainlista: 'Že na seznamu',
newreg: 'Zadnje Registracije:', newreg: 'Zadnje Registracije:',
nationality: 'Nacionalnost', nationality: 'Nacionalnost',

View File

@@ -136,7 +136,8 @@ const routes_manager: IListRoutes[] = [
submenu: true, submenu: true,
level_parent: 0, level_parent: 0,
level_child: 0.5, level_child: 0.5,
onlyManager: true onlyManager: true,
onlyTutor: true
}, },
{ {
active: true, active: true,
@@ -207,7 +208,7 @@ const routes_manager: IListRoutes[] = [
level_parent: 0, level_parent: 0,
level_child: 0.5, level_child: 0.5,
onlyAdmin: true, onlyAdmin: true,
onlyManager: true onlyManager: true,
}, },
{ {
active: true, active: true,
@@ -220,7 +221,8 @@ const routes_manager: IListRoutes[] = [
submenu: true, submenu: true,
level_parent: 0, level_parent: 0,
level_child: 0.5, level_child: 0.5,
onlyManager: true onlyManager: true,
onlyTraduttrici: true
}, },
{ {
active: true, active: true,

View File

@@ -19,11 +19,11 @@ p {
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
max-height: 250px; max-height: 200px;
max-width: 250px; max-width: 200px;
@media (max-width: 718px) { @media (max-width: 718px) {
max-height: 180px; max-height: 100px;
max-width: 180px; max-width: 100px;
} }
} }

View File

@@ -1,280 +1,289 @@
<template> <template>
<q-page> <q-page>
<CMyPage title=""> <CMyPage title="">
<span>{{ setmeta({ <span>{{ setmeta({
title: 'Home', title: 'Home',
description: $t('msg.myAppDescription'), description: $t('msg.myAppDescription'),
keywords: $t('msg.keywords_base') } ) }} keywords: $t('msg.keywords_base') } ) }}
</span> </span>
<div class="landing"> <div class="landing">
<div style="height: 50px;"> <div v-if="!isLogged">
&nbsp; <div style="height: 15px;">
</div>
<div class="text-center">
<q-img src="statics/images/background.jpg" class="logo"></q-img>
</div>
<!--
<div class="row justify-center">
<div class="text-h5 boldhigh text-uppercase"> {{ $t('event.dateTimeStart') }}</div>
</div>
<div class="text-center">
<q-img src="statics/images/data_start.jpg" class="data_start"></q-img>
</div>
-->
<div v-if="isLogged">
<CVerifyEmail v-if="!isEmailVerified">
</CVerifyEmail>
<CVerifyTelegram v-if="TelegCode || !TelegVerificato">
</CVerifyTelegram>
</div>
<div v-else>
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin:20px;">
<q-btn rounded size="lg" color="primary" @click="openrighttoolbar">{{$t('login.enter')}}
</q-btn>
</div>
<!--
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin:20px;">
<q-btn rounded size="lg" color="primary" to="/signup">{{$t('reg.submit')}}
</q-btn>
</div>
-->
</div>
<div v-if="false">
<CTitleBanner v-if="false" class="q-pa-xs" :title="$t('text.how')" bgcolor="bg-primary" clcolor="text-white"
mystyle=" " myclass="myshad" canopen="true">
<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:<br>
"Con il minimo sforzo ottengo il massimo apporto".
</p>
</div>
</CImgText>
</CTitleBanner>
<CTitleBanner class="q-pa-xs" :title="$t('text.step')" bgcolor="bg-positive" clcolor="text-white"
mystyle=" " canopen="true">
<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 text-center">
<div class="landing__features row justify-center column" style="max-width: 800px;">
<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-if="getvideonum_mp4 > 0" v-for="index in getvideonum_mp4" :name="`mp4_`+index"
:key="index">
<div v-if="tools.getvideourl(index, false)"
class="row justify-evenly items-center q-gutter-sm ">
<div class="text-center">
<div class="subtitle_small text-blue"
v-html="tools.getvideotitle(index, false)"></div>
<div class="">
<q-media-player
type="video"
:sources="arrvideo_mp4[index]"
:poster="tools.getvideoposter(index)"
>
</q-media-player>
</div>
</div> </div>
</div>
</q-carousel-slide>
<q-carousel-slide v-if="getvideonum_youtube > 0" v-for="index in getvideonum_youtube"
:name="`yt_`+index"
:key="index">
<div v-if="tools.getvideourl(index, true)"
class="row justify-evenly items-center q-gutter-sm ">
<div class="text-center"> <div class="text-center">
<div class="subtitle_small text-blue" v-html="tools.getvideotitle(index, true)"></div> <q-img src="statics/images/background.jpg" class="logo"></q-img>
<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>
</div> </div>
</div>
</q-carousel-slide>
</q-carousel>
</div>
</section>
<CTitleBanner class="q-pa-xs" :title="$t('text.what')" bgcolor="bg-secondary" clcolor="text-white"
mystyle=" " canopen="true">
<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>
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.
</div>
</CTitleBanner>
<CTitleBanner cl ass="q-pa-xs" :title="$t('text.advise')" bgcolor="bg-primary" clcolor="text-white"
mystyle=" " myclass="myshad" canopen="true">
<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> </div>
</q-list>
<!--
<div class="row justify-center">
<div class="text-h5 boldhigh text-uppercase"> {{ $t('event.dateTimeStart') }}</div>
</div>
<div class="text-center">
<q-img src="statics/images/data_start.jpg" class="data_start"></q-img>
</div>
-->
<div v-if="isLogged">
<CVerifyEmail v-if="!isEmailVerified">
</CVerifyEmail>
<CVerifyTelegram v-if="TelegCode || !TelegVerificato">
</CVerifyTelegram>
</div>
<div v-else>
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center"
style="margin:20px;">
<q-btn rounded size="lg" color="primary" @click="openrighttoolbar">{{$t('login.enter')}}
</q-btn>
</div>
<!--
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin:20px;">
<q-btn rounded size="lg" color="primary" to="/signup">{{$t('reg.submit')}}
</q-btn>
</div>
-->
</div>
<div v-if="false">
<CTitleBanner v-if="false" class="q-pa-xs" :title="$t('text.how')" bgcolor="bg-primary"
clcolor="text-white"
mystyle=" " myclass="myshad" canopen="true">
<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:<br>
"Con il minimo sforzo ottengo il massimo apporto".
</p>
</div>
</CImgText>
</CTitleBanner>
<CTitleBanner class="q-pa-xs" :title="$t('text.step')" bgcolor="bg-positive" clcolor="text-white"
mystyle=" " canopen="true">
<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 text-center">
<div class="landing__features row justify-center column" style="max-width: 800px;">
<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-if="getvideonum_mp4 > 0" v-for="index in getvideonum_mp4"
:name="`mp4_`+index"
:key="index">
<div v-if="tools.getvideourl(index, false)"
class="row justify-evenly items-center q-gutter-sm ">
<div class="text-center">
<div class="subtitle_small text-blue"
v-html="tools.getvideotitle(index, false)"></div>
<div class="">
<q-media-player
type="video"
:sources="arrvideo_mp4[index]"
:poster="tools.getvideoposter(index)"
>
</q-media-player>
</div>
</div>
</div>
</q-carousel-slide>
<q-carousel-slide v-if="getvideonum_youtube > 0" v-for="index in getvideonum_youtube"
:name="`yt_`+index"
:key="index">
<div v-if="tools.getvideourl(index, true)"
class="row justify-evenly items-center q-gutter-sm ">
<div class="text-center">
<div class="subtitle_small text-blue"
v-html="tools.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>
</div>
</div>
</q-carousel-slide>
</q-carousel>
</div>
</section>
<CTitleBanner class="q-pa-xs" :title="$t('text.what')" bgcolor="bg-secondary" clcolor="text-white"
mystyle=" " canopen="true">
<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>
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.
</div>
</CTitleBanner>
<CTitleBanner cl ass="q-pa-xs" :title="$t('text.advise')" bgcolor="bg-primary" clcolor="text-white"
mystyle=" " myclass="myshad" canopen="true">
<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.faq')" bgcolor="bg-info" clcolor="text-white"
mystyle="letter-spacing: 0.125rem;">
</CTitleBanner>-->
<div v-if="!tools.isMobile()" style="margin: 60px 60px;"></div>
</div>
<CNextZoom>
</CNextZoom>
<CStatusReg>
</CStatusReg>
<div v-if="isLogged">
<CStatus :dense="false"></CStatus>
</div>
</div> </div>
</CTitleBanner> </CMyPage>
</q-page>
<!--<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>
<CNextZoom>
</CNextZoom>
<CStatusReg>
</CStatusReg>
<div v-if="isLogged">
<CStatus :dense="false"></CStatus>
</div>
</div>
</CMyPage>
</q-page>
</template> </template>
<script lang="ts" src="./home.ts"> <script lang="ts" src="./home.ts">
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './home.scss'; @import './home.scss';
</style> </style>

View File

@@ -17,9 +17,9 @@ Vue.use(VueRouter)
*/ */
let TIMER = null let TIMER = null
let TIMER_RITORNA = '' let URL_RITORNA = ''
let TIMER_STATE = 0 let TIMER_STATE = 0
let TIMER_RESTORE = '' let URL_RESTORE = ''
const Router = new VueRouter({ const Router = new VueRouter({
scrollBehavior: () => ({ x: 0, y: 0 } as PositionResult), scrollBehavior: () => ({ x: 0, y: 0 } as PositionResult),
@@ -78,6 +78,8 @@ Router.beforeEach(async (to: IMyRoute, from: IMyRoute, next) => {
} }
if (eseguicheck) { if (eseguicheck) {
// Qui arrivano gli URL che non sono della lista ROUTE.
// quindi ad esempio http://localhost:8085/signup/paoloar77
if (!TIMER && to.path !== '/') { if (!TIMER && to.path !== '/') {
// console.log('TIMER') // console.log('TIMER')
@@ -85,7 +87,7 @@ Router.beforeEach(async (to: IMyRoute, from: IMyRoute, next) => {
// console.log('SETINTERVAL') // console.log('SETINTERVAL')
if (GlobalStore.state.finishLoading) { if (GlobalStore.state.finishLoading) {
if (!!TIMER) { if (!!TIMER) {
// console.log('TIMER_STATE', TIMER_STATE, 'TIMER_RITORNA', TIMER_RITORNA) // console.log('TIMER_STATE', TIMER_STATE, 'URL_RITORNA', URL_RITORNA)
if (TIMER_STATE === 2) { if (TIMER_STATE === 2) {
clearInterval(TIMER) clearInterval(TIMER)
TIMER = null TIMER = null
@@ -93,14 +95,15 @@ Router.beforeEach(async (to: IMyRoute, from: IMyRoute, next) => {
// next('/prova') // next('/prova')
// return // return
} }
if (TIMER_RITORNA !== '') { // se mi ero salvato un url per doverci ritornare, allora puntalo a questo:
next(TIMER_RITORNA) if (URL_RITORNA !== '') {
// next(URL_RITORNA)
TIMER_STATE = 2 TIMER_STATE = 2
return return
} else { } else {
if (TIMER_STATE === 0) { if (TIMER_STATE === 0) {
TIMER_RESTORE = to.path URL_RESTORE = to.path
next('/') // next('/')
TIMER_STATE = 1 TIMER_STATE = 1
return return
} }
@@ -115,9 +118,9 @@ Router.beforeEach(async (to: IMyRoute, from: IMyRoute, next) => {
if (GlobalStore.state.finishLoading) { if (GlobalStore.state.finishLoading) {
if (!!TIMER) { if (!!TIMER) {
// console.log('TIMER_STATE', TIMER_STATE, 'to.path', to.path) // console.log('TIMER_STATE', TIMER_STATE, 'to.path', to.path)
if (TIMER_RITORNA === '' && TIMER_RESTORE !== '') { if (URL_RITORNA === '' && URL_RESTORE !== '') {
TIMER_RITORNA = TIMER_RESTORE URL_RITORNA = URL_RESTORE
// onsole.log('TIMER_RITORNA', TIMER_RITORNA) // onsole.log('URL_RITORNA', URL_RITORNA)
} }
} }
} }

View File

@@ -1 +1 @@
module.exports = require("./config/webpack.config.dev"); module.exports = require("./config/webpack.config.dev");

16516
yarn.lock

File diff suppressed because it is too large Load Diff