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>

27254
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

@@ -8,12 +8,13 @@
</span> </span>
<div class="landing"> <div class="landing">
<div style="height: 50px;"> <div v-if="!isLogged">
&nbsp; <div style="height: 15px;">
</div> </div>
<div class="text-center"> <div class="text-center">
<q-img src="statics/images/background.jpg" class="logo"></q-img> <q-img src="statics/images/background.jpg" class="logo"></q-img>
</div> </div>
</div>
<!-- <!--
<div class="row justify-center"> <div class="row justify-center">
@@ -35,7 +36,8 @@
</div> </div>
<div v-else> <div v-else>
<div v-if="!isLogged && static_data.functionality.ENABLE_REGISTRATION" align="center" style="margin:20px;"> <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 rounded size="lg" color="primary" @click="openrighttoolbar">{{$t('login.enter')}}
</q-btn> </q-btn>
</div> </div>
@@ -50,7 +52,8 @@
</div> </div>
<div v-if="false"> <div v-if="false">
<CTitleBanner v-if="false" class="q-pa-xs" :title="$t('text.how')" bgcolor="bg-primary" clcolor="text-white" <CTitleBanner v-if="false" class="q-pa-xs" :title="$t('text.how')" bgcolor="bg-primary"
clcolor="text-white"
mystyle=" " myclass="myshad" canopen="true"> mystyle=" " myclass="myshad" canopen="true">
<CImgText src=""> <CImgText src="">
<q-icon name="fas fa-gift" size="lg" inverted color="primary"></q-icon> <q-icon name="fas fa-gift" size="lg" inverted color="primary"></q-icon>
@@ -108,7 +111,8 @@
<q-icon :name="rec.myicon" size="56px"></q-icon> <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.myicon2" :name="rec.myicon2" size="56px"></q-icon>
<q-icon v-if="rec.myicon3" :name="rec.myicon3" 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> <q-img v-if="rec.myimg" :src="rec.myimg"
style="height: 56px; width: 56px;"></q-img>
</div> </div>
<div class="q-mt-md text-center step-text" v-html="gettitle_advise(rec)"> <div class="q-mt-md text-center step-text" v-html="gettitle_advise(rec)">
</div> </div>
@@ -157,7 +161,8 @@
</q-carousel-control> </q-carousel-control>
</template> </template>
<q-carousel-slide v-if="getvideonum_mp4 > 0" v-for="index in getvideonum_mp4" :name="`mp4_`+index" <q-carousel-slide v-if="getvideonum_mp4 > 0" v-for="index in getvideonum_mp4"
:name="`mp4_`+index"
:key="index"> :key="index">
<div v-if="tools.getvideourl(index, false)" <div v-if="tools.getvideourl(index, false)"
@@ -187,7 +192,8 @@
class="row justify-evenly items-center q-gutter-sm "> 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> <div class="subtitle_small text-blue"
v-html="tools.getvideotitle(index, true)"></div>
<div class=""> <div class="">
<iframe <iframe
:width="tools.getwidthscale(mythis, getValDb('YT_W', false), 800)" :width="tools.getwidthscale(mythis, getValDb('YT_W', false), 800)"
@@ -213,11 +219,14 @@
<CTitleBanner class="q-pa-xs" :title="$t('text.what')" bgcolor="bg-secondary" clcolor="text-white" <CTitleBanner class="q-pa-xs" :title="$t('text.what')" bgcolor="bg-secondary" clcolor="text-white"
mystyle=" " canopen="true"> mystyle=" " canopen="true">
<div class="q-mx-md cltexth4"> <div class="q-mx-md cltexth4">
1) Voglia di giocare, e desiderio di Donare 33 per aiutare un'altra persona a realizzare i propri 1) Voglia di giocare, e desiderio di Donare 33 per aiutare un'altra persona a realizzare i
propri
sogni.<br><br> sogni.<br><br>
2) L'impegno di seguire delle indicazioni nei tempi stabiliti all' interno di una chat, dove ogni 2) L'impegno di seguire delle indicazioni nei tempi stabiliti all' interno di una chat, dove
ogni
passaggio è spiegato e guidato.<br><br> passaggio è spiegato e guidato.<br><br>
3) Parlare e condividere ai tuoi amici un messaggio dove spieghi questo sistema, impegnandoti così a 3) Parlare e condividere ai tuoi amici un messaggio dove spieghi questo sistema,
impegnandoti così a
trovare trovare
2 persone interessate ad entrare. 2 persone interessate ad entrare.
</div> </div>

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)
} }
} }
} }

16516
yarn.lock

File diff suppressed because it is too large Load Diff