Compare commits

...

10 Commits

Author SHA1 Message Date
Paolo Arena
8b4cbe153b - Iscrizione Conacreis 2021-06-04 17:28:44 +02:00
Paolo Arena
cec0b4857f - Iscrizione Conacreis 2021-05-10 01:50:15 +02:00
Paolo Arena
1e8f58b930 - Iscrizione Conacreis
- Ordini
- Carrello
2021-04-30 01:31:44 +02:00
Paolo Arena
8ae63c3357 ECommerce Ordini Email 1 2021-03-30 02:21:59 +02:00
Paolo Arena
fada2ec2be Reportistica Ore 3 2021-02-25 03:00:02 +01:00
Paolo Arena
594fdcbee4 Reportistica Ore 3 2021-02-25 02:59:08 +01:00
Paolo Arena
8f9028ddba Reportistica Ore 2 2021-02-24 04:48:01 +01:00
Paolo Arena
e752c406dc Reportistica Ore 1 2021-02-21 02:05:17 +01:00
Paolo Arena
7a202fbe8e Progetti 2021-02-18 12:19:17 +01:00
Paolo Arena
0e6a350f4e Calcolo Hours 2021-02-11 02:21:08 +01:00
54 changed files with 723 additions and 79 deletions

1
note.txt Executable file
View File

@@ -0,0 +1 @@
"@quasar/app": "1.9.6",

View File

@@ -70,7 +70,6 @@
"vue-scroll-reveal": "^1.0.11",
"vue-svgicon": "^3.1.0",
"vue-tel-input": "^4.1.1",
"vue2-dragula": "2.5.5",
"vuelidate": "^0.7.4",
"vuex": "^3.0.1",
"vuex-class": "^0.3.1",
@@ -94,7 +93,7 @@
"@babel/plugin-syntax-import-meta": "^7.2.0",
"@babel/preset-env": "^7.4.2",
"@quasar/app": "1.5.2",
"@quasar/quasar-app-extension-qcalendar": "^1.3.14",
"@quasar/quasar-app-extension-qcalendar": "^2.0.0",
"@quasar/quasar-app-extension-qmediaplayer": "^1.0.17",
"@quasar/quasar-app-extension-qscroller": "1.0.5",
"@quasar/quasar-app-extension-typescript": "^1.0.0-alpha.11",

View File

@@ -105,7 +105,7 @@ module.exports = function (ctx) {
{ path: 'error-handler', server: true, client: true },
{ path: 'globalroutines', server: true, client: true },
{ path: 'vue-idb', server: true, client: true },
{ path: 'dragula', server: true, client: true },
// { path: 'dragula', server: true, client: true },
{ path: 'guard', server: true, client: true },
{ path: 'vuetelinput', server: true, client: true },
{ path: 'mycharts', server: true, client: true }],
@@ -168,6 +168,8 @@ module.exports = function (ctx) {
framework: {
components: [
'QLayout',
'QBreadcrumbs',
'QBreadcrumbsEl',
'QDrawer',
'QItemSection',
'QHeader',

View File

@@ -6,7 +6,7 @@
// Questo è il swSrc
console.log(' [ VER-0.0.62 ] _---------________------ PAO: this is my custom service worker');
console.log(' [ VER-0.0.83 ] _---------________------ PAO: this is my custom service worker');
importScripts('../statics/js/idb.js');
importScripts('../statics/js/storage.js');
@@ -23,7 +23,7 @@ if (self.location.hostname.startsWith('test')) {
const cfgenv = {
serverweb: self.location.protocol + "//" + self.location.hostname + ':' + port,
dbname: 'mydb3',
dbversion: 11,
dbversion: 12,
}
// console.log('serverweb', cfgenv.serverweb)
@@ -221,7 +221,11 @@ if (workbox) {
}
workbox.routing.registerRoute(function (routeData) {
return (routeData.event.request.headers.get('accept').includes('text/html'));
const myaccept = routeData.event.request.headers.get('accept')
if (myaccept)
return (myaccept.includes('text/html'));
else
return null
}, function (args) {
return caches.match(args.event.request)
.then(function (response) {

View File

@@ -85,7 +85,7 @@ $heightBtn: 100%;
margin-left: 3px;
margin-right: 3px;
color: #000;
font-size: 1rem;
font-size: 0.9rem;
height: $heightBtn;
line-height: $heightBtn;
vertical-align: middle;
@@ -273,12 +273,32 @@ $heightBtn: 100%;
box-shadow: none;
}
.myimgtitle {
margin-left: auto;
margin-right: auto;
width: 400px;
@media (max-width: 718px) {
margin-left: auto;
margin-right: auto;
width: 300px;
}
}
.my-card-big {
width: 100%;
max-width: 400px;
padding: 1rem 1rem;
box-shadow: none;
@media (max-width: 718px) {
// PER VERSIONE MOBILE
max-width: 400px;
padding: 1rem 1rem;
}
}
.text-trans {
@@ -812,6 +832,18 @@ $heightBtn: 100%;
}
}
.img2 {
margin-left: auto;
margin-right: auto;
max-height: 550px;
max-width: 550px;
@media (max-width: 718px) {
max-height: 350px;
max-width: 350px;
}
}
.center-150 {
width: 150px;
margin-left: auto;
@@ -944,5 +976,45 @@ $heightBtn: 100%;
}
.clpos{
color: gray;
color: #C0C0C0;
}
.clresp{
color: #206d24;
}
.clrespempty{
color: #DDDDDD;
}
@media (max-width: 600px) {
.flex-item {
padding: 1px;
margin: 1px;
}
.flex-container {
margin: 0;
padding: 0;
}
.q-tab-panel {
padding: 4px;
}
.q-item {
padding: 2px 4px;
}
}
.underline {
text-decoration: underline;
color: blue;
}
.underline:hover {
font-weight: bold;
cursor: pointer;
}
.centeritems{
place-content: center;
}

View File

@@ -10,13 +10,23 @@ const msg_website_it = {
weight: 'Peso',
stars: 'Voto',
},
hours: {
descr: 'Descrizione',
date: 'Data',
time_start: 'Ora Inizio',
time_end: 'Ora Fine',
hours: 'Ore',
note: 'Note Extra',
},
pages: {
home: 'Home',
profile: 'Profilo',
projects: 'Progetti',
report: 'Report Ore',
producer: 'Produttore',
orderinfo: 'Ordini Effettuati',
products: 'Prodotti',
productslist: 'Lista Prodotti',
collabora: 'Collabora',
storehouses: 'Magazzino',
departments: 'Uffici',
@@ -30,6 +40,7 @@ const msg_website_it = {
presentazione2: 'Presentazione',
invita: 'Invita Persone',
SignUp: 'Nuova Registrazione',
SignUpIscrizione: 'Diventa Socio CNM',
SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !',
SignUp2: 'Registrazione',
SignIn: 'Login',
@@ -46,20 +57,22 @@ const msg_website_it = {
Test: 'Test',
Category: 'Categorie',
Admin: 'Admin',
Sites: 'Siti Web',
extralist: 'Lista Extra',
Test1: 'Test1',
Test2: 'Test2',
chisiamo: 'Chi Siamo',
linkamici: 'Link Amici',
dovesiamo: 'Dove Siamo',
calendarioeventi: 'Calendario Eventi',
evento: 'Evento',
eventodef: 'Evento:',
prova: 'prova',
dbop: 'Operazioni',
projall: 'Tutti',
groups: 'Gruppi',
projectsShared: 'Miei Condivisi',
myprojects: 'Miei Personali',
projall: 'Comunitari',
groups: 'Lista Gruppi',
projectsShared: 'Condivisi da me',
myprojects: 'Privati',
favproj: 'Favoriti',
statusreg: {
reg: 'Partecipanti',
@@ -67,6 +80,7 @@ const msg_website_it = {
giainlista: 'Gia in Lista',
newreg: 'Ultime Registrazioni:',
nationality: 'Nazionalità',
nationality_born: 'Nazione di Nascita',
verified: 'Verificata',
nonverified: 'Non Verificata',
req7: 'Con 5 passi entri nella lista d\'Imbarco',
@@ -76,9 +90,9 @@ const msg_website_it = {
peoplelegend: 'Numero d\'Invitati'
},
admin_ecommerce: 'ECommerce',
ecommerce: 'E-Commerce',
ecommerce_menu: 'ECommerce1'
ecommerce: 'Prodotti',
ecommerce_menu: 'ECommerce1',
hours: 'Ore',
},
msg: {
myAppDescription: '',

View File

@@ -28,6 +28,19 @@ const functionality: IFunctionality = {
}
const routes_admin: IListRoutes[] = [
{
active: true,
order: 10,
path: '/admin/sites',
materialIcon: 'event_seat',
name: 'pages.Sites',
component: () => import('@/rootgen/admin/sites/sites.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true
},
{
active: true,
order: 1000,
@@ -94,8 +107,10 @@ const routes_projects: IListRoutes[] = [
level_parent: 0.0,
level_child: 0.5,
component: () => import('@/views/projects/proj-list/proj-list.vue'),
inmenu: functionality.SHOW_MESSAGES,
inmenu: functionality.ENABLE_PROJECTS_LOADING,
infooter: functionality.ENABLE_PROJECTS_LOADING,
onlySocioResidente: true,
onlyAdmin: true,
idelem: process.env.PROJECT_ID_MAIN
},
{
@@ -107,8 +122,10 @@ const routes_projects: IListRoutes[] = [
urlroute: 'myprojects',
level_parent: 0.0,
level_child: 0.5,
onlySocioResidente: true,
onlyAdmin: true,
component: () => import('@/views/projects/proj-list/proj-list.vue'),
inmenu: functionality.SHOW_MESSAGES,
inmenu: functionality.ENABLE_PROJECTS_LOADING,
infooter: functionality.ENABLE_PROJECTS_LOADING,
idelem: process.env.PROJECT_ID_MAIN
},
@@ -122,13 +139,41 @@ const routes_projects: IListRoutes[] = [
level_parent: 0.0,
level_child: 0.5,
component: () => import('@/views/projects/proj-list/proj-list.vue'),
inmenu: functionality.SHOW_MESSAGES,
inmenu: functionality.ENABLE_PROJECTS_LOADING,
onlySocioResidente: true,
onlyAdmin: true,
infooter: functionality.ENABLE_PROJECTS_LOADING,
idelem: process.env.PROJECT_ID_MAIN
},
{
active: functionality.ENABLE_PROJECTS_LOADING,
order: 40,
path: '/report',
materialIcon: 'fas fa-chart-line',
name: 'pages.report',
level_parent: 0.0,
level_child: 0.5,
component: () => import('@/views/projects/report/report.vue'),
inmenu: functionality.ENABLE_PROJECTS_LOADING,
onlySocioResidente: true,
onlyAdmin: true,
infooter: functionality.ENABLE_PROJECTS_LOADING,
}
]
const routes_ecommerce: IListRoutes[] = [
{
active: true,
order: 30,
path: '/products',
materialIcon: 'fas fa-shopping-cart',
name: 'pages.productslist',
component: () => import('@/views/ecommerce/productsList/productsList.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
},
{
active: true,
order: 30,
@@ -181,7 +226,7 @@ const routes_admin_ecommerce: IListRoutes[] = [
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyTraduttrici: true
onlyEditor: true
},
{
active: true,
@@ -195,7 +240,7 @@ const routes_admin_ecommerce: IListRoutes[] = [
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyTraduttrici: true
onlyEditor: true
},
{
active: true,
@@ -209,7 +254,7 @@ const routes_admin_ecommerce: IListRoutes[] = [
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyTraduttrici: true
onlyEditor: true
},
{
active: true,
@@ -223,7 +268,7 @@ const routes_admin_ecommerce: IListRoutes[] = [
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyTraduttrici: true
onlyEditor: true
},
]
@@ -334,6 +379,22 @@ const routes_newsletter: IListRoutes[] = [
]
const routes_manager: IListRoutes[] = [
{
active: functionality.BOOKING_EVENTS,
order: 70,
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,
onlyConsiglio: true,
onlyAdmin: true
},
{
active: true,
order: 10,
@@ -348,6 +409,20 @@ const routes_manager: IListRoutes[] = [
onlyManager: true,
onlyTutor: true
},
{
active: true,
order: 10,
path: '/admin/iscritticonacreis',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.iscritticonacreis',
component: () => import('@/rootgen/admin/iscritticonacreis/iscritticonacreis.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyTutor: true
},
{
active: true,
order: 10,
@@ -388,7 +463,7 @@ const routes_manager: IListRoutes[] = [
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyTraduttrici: true
onlyEditor: true
},
{
active: true,
@@ -466,21 +541,6 @@ const routes_manager: IListRoutes[] = [
onlyAdmin: true,
onlyManager: true
},
{
active: functionality.BOOKING_EVENTS,
order: 70,
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,
onlyAdmin: true
}
]
const baseroutes: IListRoutes[] = [
@@ -502,6 +562,29 @@ const baseroutes: IListRoutes[] = [
isseparator: true,
inmenu: true,
},
{
active: true,
order: 55,
path: '/iscrizione',
materialIcon: 'how_to_reg',
name: 'pages.SignUpIscrizione',
component: () => import('@/views/login/iscrizioneconacreis/iscrizioneconacreis.vue'),
inmenu: true,
infooter: true,
separator: false,
onlyNotSoci: false,
},
{
active: true,
order: 80,
path: '/calendario-eventi',
materialIcon: 'event',
name: 'pages.calendarioeventi',
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
extraclass: 'isCalendar',
inmenu: true,
infooter: true
},
{
active: true,
order: 120,
@@ -513,6 +596,16 @@ const baseroutes: IListRoutes[] = [
inmenu: true,
infooter: true,
},
{
active: true,
order: 90,
path: '/event/:typol/:eventid',
materialIcon: 'event',
name: 'pages.evento',
component: () => import('@/root/evento/evento.vue'),
inmenu: false,
infooter: false
},
{
active: true,
order: 1000,
@@ -523,6 +616,16 @@ const baseroutes: IListRoutes[] = [
inmenu: false,
infooter: false
},
{
active: true,
order: 110,
path: '/event/:typol',
materialIcon: 'event',
name: 'pages.eventodef',
component: () => import('@/root/evento/evento.vue'),
inmenu: false,
infooter: false
},
{
active: true,
order: 1000,
@@ -567,6 +670,8 @@ const baseroutes: IListRoutes[] = [
name: 'pages.ecommerce',
routes2: routes_ecommerce,
inmenu: true,
onlyif_logged: true,
// onlySocioResidente: true,
solotitle: true,
infooter: true
},
@@ -597,7 +702,7 @@ const baseroutes: IListRoutes[] = [
onlyAdmin: true,
onlyManager: true,
onlyTutor: true,
onlyTraduttrici: true
onlyEditor: true
},
...routes_manager,
{
@@ -698,9 +803,6 @@ const baseroutes: IListRoutes[] = [
materialIcon: 'accessibility_new',
name: 'pages.groups',
component: () => import('@/rootgen/admin/groups/groups.vue'),
inmenu: true,
onlyManager: true,
onlyAdmin: true,
infooter: functionality.ENABLE_PROJECTS_LOADING,
},
{
@@ -715,6 +817,18 @@ const baseroutes: IListRoutes[] = [
infooter: false,
// idelem: process.env.PROJECT_ID_MAIN
},
{
active: functionality.ENABLE_PROJECTS_LOADING,
order: 10,
path: '/todos/:idProj',
materialIcon: 'accessibility_new',
name: 'pages.todos',
urlroute: 'todos',
component: () => import('@/views/projects/proj-list/proj-list.vue'),
inmenu: false,
infooter: false,
// idelem: process.env.PROJECT_ID_MAIN
},
{
active: functionality.ENABLE_PROJECTS_LOADING,
order: 20,
@@ -738,6 +852,26 @@ const baseroutes: IListRoutes[] = [
inmenu: false,
infooter: false,
// idelem: process.env.PROJECT_ID_MAIN
},
{
active: true,
path: '/separator',
name: 'separator',
order: 35,
isseparator: true,
inmenu: true,
},
{
active: functionality.ENABLE_PROJECTS_LOADING,
order: 40,
path: '/report',
urlroute: 'report',
materialIcon: 'accessibility_new',
name: 'pages.report',
component: () => import('@/views/projects/report/report.vue'),
inmenu: false,
infooter: false,
// idelem: process.env.PROJECT_ID_MAIN
}
]

View File

@@ -0,0 +1,19 @@
import Vue from 'vue'
import { Component } from 'vue-property-decorator'
import { CEventsCalendar, CMyPage } from '@components'
import MixinBase from '@src/mixins/mixin-base'
import MixinMetaTags from '@src/mixins/mixin-metatags'
import { tools } from '@src/store/Modules/tools'
@Component({
mixins: [MixinBase],
components: { CEventsCalendar, CMyPage }
})
export default class Calendarioeventi extends MixinMetaTags {
public $t: any
public $q
public meta() {
return tools.metafunc(this)
}
}

View File

@@ -0,0 +1,25 @@
<template>
<CMyPage title='Calendario Eventi' imgbackground="../../statics/images/calendario_eventi.jpg" sizes="max-height: 120px" styleadd="bottom: -16px !important;">
<span>{{ setmeta({
title: 'Calendario Eventi',
description: "Calendario degli Eventi che si svolgono all'Associazione Shen di Lugo (RA)",
keywords: 'calendario eventi centro olistico' } ) }}
</span>
<CEventsCalendar :mysingleevent="null">
</CEventsCalendar>
<br>
<p class="cltexth3 text-blue q-ma-md" v-for="mycal in getarrValDb('EVENTS_CAL')">
<a :href="`../../statics/files/eventi/` + mycal.file" target="_blank">Calendario Eventi {{ mycal.label }} (PDF)</a><br>
</p>
<br>
</CMyPage>
</template>
<script lang="ts" src="./calendarioeventi.ts">
</script>
<style lang="scss" scoped>
@import './calendarioeventi.scss';
</style>

86
src/root/evento/evento.scss Executable file
View File

@@ -0,0 +1,86 @@
.listaev {
color: black;
font-size: 0.75rem;
font-weight: 400;
line-height: 1.25rem;
letter-spacing: 0.03333em;
&__date {
font-weight: bold;
color: #2ba0fd;
font-size: 1rem;
}
&__title {
color: red;
font-weight: 700;
letter-spacing: 0.066em;
}
&__details {
color: black;
}
&__tdimg {
width: 150px;
height: 150px;
}
&__tdimg_small {
width: auto;
height: 50px !important;
@media (max-width: 800px) {
height: 40px !important;
}
}
&__table {
margin: 10px;
border: solid 1px #4198ef;
border-radius: 1rem;
padding: 2px;
}
&__table tr {
border: solid 1px #4198ef;
border-radius: 1rem;
}
&__align_center_mobile {
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
}
&__align_chips {
text-align: center;
display: flex;
flex-direction: column-reverse;
align-items: center;
}
&__img {
padding: 0.25rem !important;
float: left;
width: 150px;
height: 150px;
border-radius: 1rem;
@media (max-width: 718px) {
// PER VERSIONE MOBILE
float: none;
text-align: center;
margin: 0 auto;
}
}
&__img:hover {
transition: transform .2s;
transform: scale(1.05);
border: inset;
border-color: blue;
border-width: 1px;
}
}

127
src/root/evento/evento.ts Executable file
View File

@@ -0,0 +1,127 @@
import Vue from 'vue'
import { Component, Prop, Watch } from 'vue-property-decorator'
import { CalendarStore, GlobalStore, UserStore } from '@store'
import { Logo } from '../../components/logo/index'
import { Footer } from '../../components/Footer/index'
import { tools } from '../../store/Modules/tools'
import { toolsext } from '@src/store/Modules/toolsext'
import { static_data } from '@src/db/static_data'
import { Screen } from 'quasar'
import { CImgText } from '../../components/CImgText/index'
import { CCard, CEventsCalendar, CMyAvatar, CMyPage, CMySingleEvent } from '@components'
import MixinOperator from '@src/mixins/mixin-operator'
import MixinEvents from '../../mixins/mixin-events'
import { IEvents } from '@src/model'
import MixinBase from '@src/mixins/mixin-base'
import MixinUsers from '@src/mixins/mixin-users'
import MixinMetaTags from '@src/mixins/mixin-metatags'
@Component({
mixins: [MixinOperator, MixinBase, MixinEvents, MixinUsers],
components: { Logo, CImgText, CCard, CMyPage, CMyAvatar, CEventsCalendar }
})
export default class Evento extends MixinMetaTags {
public $q
public $t
public myevent: IEvents = null
public mylastevtypol: IEvents[] = []
public selected: boolean = false
public meta() {
return tools.metafunc(this)
}
@Watch('$route.params.typol')
public changetypol() {
// this.mytypetransgroup = ''
const datenow = tools.addDays(tools.getDateNow(), -1)
this.mylastevtypol = CalendarStore.state.eventlist.filter((rec) => ((rec.typol === this.$route.params.typol) && (new Date(rec.dateTimeEnd) >= datenow))).slice(-5)
console.log('[1] this.mylastevtypol', this.mylastevtypol)
if (this.mylastevtypol.length === 0) {
this.mylastevtypol = CalendarStore.state.eventlist.filter((rec) => (rec.typol === this.$route.params.typol)).slice(-1)
}
// console.log('myevent', this.myevent, 'eventid=', this.$route.params.eventid)
}
get nextevents() {
if (!!this.mylastevtypol && this.mylastevtypol.length > 1) {
return this.mylastevtypol
} else {
return []
}
}
public isnotmyevent(ev) {
if (!!this.$route.params.eventid)
return ev._id !== this.$route.params.eventid
else
return true
}
@Watch('$route.params.eventid')
public changeevent() {
let eventid = null
if (!!this.$route.params.eventid)
eventid = this.$route.params.eventid
if (!!this.$route.query.eventid)
eventid = this.$route.query.eventid
console.log('changeevent', eventid)
// this.mytypetransgroup = ''
if (!!eventid) {
this.myevent = CalendarStore.state.eventlist.find((rec) => rec._id === eventid)
} else {
if (!!this.mylastevtypol)
this.myevent = this.mylastevtypol[0]
}
}
@Watch('$route.query.eventid')
public changeeventquery() {
// console.log('changeevent QUERY', this.$route.query.eventid)
// this.mytypetransgroup = ''
if (!!this.$route.query.eventid) {
this.myevent = CalendarStore.state.eventlist.find((rec) => rec._id === this.$route.query.eventid)
} else {
if (!!this.mylastevtypol)
this.myevent = this.mylastevtypol[0]
}
}
public selectEvent(eventparam: IEvents) {
this.selected = !this.selected
}
public getTextEvent(myevent: IEvents) {
if (myevent.bodytext === '') {
return myevent.details
} else {
return myevent.bodytext
}
}
public mounted() {
this.changetypol()
this.changeevent()
// console.log('myevent', this.myevent)
}
get static_data() {
return static_data
}
get gettitle() {
if (!!this.myevent && (!!this.myevent.title))
return this.myevent.title
else
return ''
}
}

56
src/root/evento/evento.vue Executable file
View File

@@ -0,0 +1,56 @@
<template>
<div>
<CMyPage imgbackground="../../statics/images/calendario_eventi.jpg" :title="gettitle" sizes="max-height: 110px;"
styleadd="bottom: -36px !important;">
<span>{{ setmeta({
title: gettitle,
description: "",
keywords: '' } ) }}
</span>
<CEventsCalendar :mysingleevent="myevent" v-if="myevent">
</CEventsCalendar>
<q-separator>
</q-separator>
<div class="q-pa-md text-center" style="max-width: 380px; margin: auto auto 2px; " v-if="nextevents.length > 0">
<q-list bordered>
<q-item>
<q-item-section>
<q-item-label overline>PROSSIME DATE:</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-ripple
v-for="(ev, index) in nextevents"
v-if="isnotmyevent(ev)"
:to="`/event/${ev.typol}/${ev._id}`"
:key="index">
<q-item-section avatar v-if="tools.getimgev(ev)">
<q-avatar>
<img :src="tools.getimgev(ev)" :alt="ev.title">
</q-avatar>
</q-item-section>
<q-item-section>{{ev.title}}</q-item-section>
<q-item-section side top>{{tools.getstrDateTimeEventShort(mythis, ev)}}</q-item-section>
</q-item>
</q-list>
</div>
<div class="q-ma-md text-center">
<q-btn rounded outline type="a" to="/calendario-eventi" color="primary" icon="event"
:label="$t('pages.calendarioeventi')">
</q-btn>
</div>
</CMyPage>
</div>
</template>
<script lang="ts" src="./evento.ts">
</script>
<style lang="scss" scoped>
@import './evento.scss';
</style>

View File

@@ -17,7 +17,7 @@ import {
CStatus,
CStatusReg,
CNextZoom,
CVerifyTelegram, CVerifyEmail, CECommerce, CShareWithUs
CVerifyTelegram, CVerifyEmail, CECommerce, CShareWithUs, CEventsCalendar
} from '@components'
import MixinBase from '@src/mixins/mixin-base'
import { static_data } from '@src/db/static_data'
@@ -38,6 +38,7 @@ import { INotData } from '@src/model'
CVerifyTelegram,
CVerifyEmail,
CECommerce,
CEventsCalendar,
CShareWithUs
}
})
@@ -66,7 +67,6 @@ export default class Home extends MixinBase {
public arrvideo_yt = []
public arrvideo_mp4 = []
public arrsteps = [
{
label: '1',
@@ -182,6 +182,10 @@ export default class Home extends MixinBase {
return UserStore.state.my.profile.socioresidente
}
get isConsiglio() {
return UserStore.state.my.profile.consiglio
}
get static_data() {
return static_data
}

View File

@@ -1,14 +1,14 @@
<template>
<q-page>
<CMyPage title="">
<span>{{
setmeta({
title: 'Home',
description: $t('msg.myAppDescription'),
keywords: $t('msg.keywords_base')
})
}}
</span>
<CMyPage title="Home">
<!--<span>{{
setmeta({
title: 'Home',
description: $t('msg.myAppDescription'),
keywords: $t('msg.keywords_base')
})
}}
</span>-->
<div class="landing">
<div v-if="!isLogged">
@@ -19,6 +19,11 @@
</div>
</div>
<q-banner class="bg-positive text-white boldhigh"
style="text-align: center; ">
Benvenuti nella Nuova App della Comunità Nuovo Mondo
</q-banner>
<div v-if="!tools.sito_online(true)" class="row text-h4 text-center bg-warning">
{{ $t('otherpages.sito_offline') }}
</div>
@@ -99,6 +104,7 @@
</div>
</div>
<q-btn class="enable-notifications shadow add-button" v-if="showbuttonHS" @click="addtoHomeScreen"
color="primary" rounded
size="md"
@@ -106,6 +112,13 @@
label="Aggiungi alle tue Applicazioni">
</q-btn>
<CEventsCalendar :mysingleevent="null" :showfirstN="getValDb('SHOW_LAST_EVENTS', false, 3)">
</CEventsCalendar>
<br>
<div class="q-pt-md q-pl-sm">
<div class="text-body2 text-italic text-grey">Versione App {{ getenv('APP_VERSION') }}</div>
</div>

View File

@@ -1,6 +1,6 @@
<template>
<q-page>
<CMyPage title="">
<CMyPage title="Intro">
<div class="q-ma-xs">
<div class="text-center">
<q-img src="statics/images/background.jpg" class="logo"></q-img>

View File

@@ -24,15 +24,16 @@ export default class Mypage extends MixinMetaTags {
public imgback
public rec: IMyPage = {}
public mounted() {
public async mounted() {
// console.log('this.$route.path', this.$route.path)
this.rec = GlobalStore.getters.getPage(this.$route.path)
console.log(this.rec)
this.rec = await GlobalStore.actions.loadPage(this.$route.path)
// console.log('mounted', this.rec)
}
@Watch('$route.path')
public changepage() {
this.rec = GlobalStore.getters.getPage(this.$route.path)
public async changepage() {
// console.log('changepage')
this.rec = await GlobalStore.actions.loadPage(this.$route.path)
}
public meta() {

View File

@@ -1,21 +1,47 @@
<template>
<div>
<CMyPage :title="rec.title" :imgbackground="`statics/` + rec.imgback" :sizes="`max-height: ` + rec.heightimg + `px`">
<span>{{ setmeta({
title: rec.title,
description: rec.description,
keywords: rec.keywords } ) }}
<div>
<CMyPage :title="rec.title" :imgbackground="`statics/` + rec.imgback"
:sizes="`max-height: ` + rec.heightimg + `px`">
<span>{{
setmeta({
title: rec.title,
description: rec.description,
keywords: rec.keywords
})
}}
</span>
<div class="q-ma-sm q-gutter-sm q-pa-xs">
<div v-html="rec.content"></div>
</div>
</CMyPage>
</div>
<div class="q-ma-sm q-gutter-sm q-pa-xs">
<div v-if="!!rec.img1" class="text-center">
<q-img :src="`statics/`+ rec.img1" class="img"></q-img>
</div>
<div v-if="!!rec.content" v-html="rec.content"></div>
<q-video v-if="!!rec.video1" :src="rec.video1" :ratio="rec.ratio1">
</q-video>
<div v-if="!!rec.img2" class="text-center">
<q-img :src="`statics/`+ rec.img2" class="img"></q-img>
</div>
<div v-if="!!rec.content2" v-html="rec.content2"></div>
<q-video v-if="!!rec.video2" :src="rec.video2" :ratio="rec.ratio2"></q-video>
<div v-if="!!rec.img3" class="text-center">
<q-img :src="`statics/`+ rec.img2" class="img"></q-img>
</div>
<div v-if="!!rec.content3" v-html="rec.content3"></div>
<q-video v-if="!!rec.video3" :src="rec.video3" :ratio="rec.ratio3"></q-video>
<div v-if="!!rec.content4" v-html="rec.content4"></div>
</div>
</CMyPage>
</div>
</template>
<script lang="ts" src="./mypage.ts">
</script>
<style lang="scss" scoped>
@import 'mypage.scss';
@import 'mypage.scss';
</style>

53
src/root/pr.html Executable file
View File

@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<span id="docs-internal-guid-b6caaa89-7fff-7a30-fbd4-76b2341de2b7"><p dir="ltr"
style="line-height:1.4007525444030762;margin-left: 39.875091552734375pt;margin-right: 61.662750244140625pt;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span
style="font-size: 28.021pt; font-family: &quot;Times New Roman&quot;; color: rgb(0, 176, 80); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">E.M. Microrganismi Effettivi </span></p><p
dir="ltr"
style="line-height:1.4007525444030762;margin-left: 39.875091552734375pt;margin-right: 61.662750244140625pt;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span
style="font-size: 20.0118pt; font-family: &quot;Times New Roman&quot;; color: rgb(152, 72, 6); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">Cosa sono e i loro molteplici usi e benefici. </span></p><p
dir="ltr"
style="line-height:1.4007525444030762;margin-left: 39.875091552734375pt;margin-right: 61.662750244140625pt;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span
style="font-size: 14.0068pt; font-family: &quot;Times New Roman&quot;; color: rgb(152, 72, 6); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">Ambiente - Agricoltura - Acqua - Salute - Casa&nbsp;</span></p><p
dir="ltr"
style="line-height:1.2;margin-right: 119.82754516601562pt;text-align: right;margin-top:0pt;margin-bottom:0pt;"><span
style="font-size: 16.0109pt; font-family: &quot;Times New Roman&quot;; color: rgb(152, 72, 6); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;"><br></span></p><p
dir="ltr" style="text-align: center; line-height: 1.2; margin-right: 119.828pt; margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 16.0109pt; font-family: &quot;Times New Roman&quot;; color: rgb(152, 72, 6); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">con il </span><span
style="font-size: 20.0118pt; font-family: &quot;Times New Roman&quot;; color: rgb(152, 72, 6); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">Dott. Vanni Ficola&nbsp;</span></p><p
dir="ltr"
style="line-height:1.3744505882263183;margin-left: 8.128738403320312pt;text-align: center;margin-top:4.91497802734375pt;margin-bottom:0pt;"><span
style="font-size: 12.0101pt; font-family: &quot;Times New Roman&quot;; color: rgb(152, 72, 6); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">Agronomo, esperto della tecnologia EM nelle pratiche agricole utili e sane per lAmbiente </span></p><p
dir="ltr"
style="line-height:1.3744505882263183;margin-left: 8.128738403320312pt;text-align: center;margin-top:4.91497802734375pt;margin-bottom:0pt;"><span
style="font-size: 12.0101pt; font-family: &quot;Times New Roman&quot;; color: rgb(152, 72, 6); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">e per la Salute, Fondatore dellAssociazione Nazionale “Puliti senza Chimica”&nbsp;</span></p><p
dir="ltr"
style="text-align: center; line-height: 1.2; margin-right: 91.4182pt; margin-top: 27.7748pt; margin-bottom: 0pt;"><span
style="font-size: 12.0101pt; font-family: &quot;Times New Roman&quot;; color: rgb(152, 72, 6); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;"><span
style="border:none;display:inline-block;overflow:hidden;width:344px;height:188px;"><img
src="https://lh3.googleusercontent.com/Xumk5ylO3JuNynq2nalClacFU-IcwU1u7PNopArJO3xr4Z19B1vIz0H0QdmSWEzQLb7DBmVRsOw_ifxyRPJrFkq9b25wvu7IInwamxJ_3KXjfUFiWMvt4nWIisSuxNYOVjkLc5Or"
width="344" height="188" style="margin-left:0px;margin-top:0px;"></span></span></p><p dir="ltr"
style="line-height:1.2;margin-left: 129.79080200195312pt;margin-top:0pt;margin-bottom:0pt;"><span
style="font-size: 18.0151pt; font-family: &quot;Times New Roman&quot;; color: rgb(0, 112, 192); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;"><br></span></p><p
dir="ltr"
style="text-align: center; line-height: 1.2; margin-left: 129.791pt; margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 18.0151pt; font-family: &quot;Times New Roman&quot;; color: rgb(0, 112, 192); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Incontro In-formativo</span></p><p
dir="ltr"
style="line-height:1.3667760372161866;margin-right: 26.9189453125pt;text-align: center;margin-top:28.270233154296875pt;margin-bottom:0pt;"><span
style="font-size: 16.0109pt; font-family: &quot;Times New Roman&quot;; color: rgb(0, 112, 192); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">E possibile sostenersi e vivere meglio con unagricoltura Senza Chimica che rispetti la Vita e la nostra amata Madre Terra&nbsp; </span><span
style="font-size: 18.0151pt; font-family: &quot;Times New Roman&quot;; color: rgb(255, 0, 0); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">Scopriamolo Insieme&nbsp;</span></p><p
dir="ltr"
style="text-align: center; line-height: 1.2; margin-left: 136.773pt; margin-top: 12.6207pt; margin-bottom: 0pt;"><span
style="font-size: 14.0068pt; font-family: &quot;Times New Roman&quot;; color: rgb(0, 32, 96); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">con INGRESSO LIBERO </span></p><div
style="text-align: center;"><span
style="font-size: 14.0068pt; font-family: &quot;Times New Roman&quot;; color: rgb(0, 32, 96); background-color: transparent; font-weight: 700; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;"><br></span></div></span>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
src/statics/images/produttori.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 KiB

View File

@@ -208,6 +208,7 @@
}
UpgradeDB.prototype.createObjectStore = function() {
console.log('createObjectStore');
return new ObjectStore(this._db.createObjectStore.apply(this._db, arguments));
};

View File

@@ -1,4 +1,4 @@
const OtherTables = ['categories', 'config', 'swmsg']
const OtherTables = ['config', 'swmsg']
const MainTables = ['todos', 'projects']
const allMethod = ['sync_post_', 'sync_patch_', 'delete_', 'hide_']
@@ -15,7 +15,8 @@ let idbKeyval = (() => {
if (!db) {
// console.log('CREO DB STORAGE JS !')
db = new Promise((resolve, reject) => {
const openreq = indexedDB.open('mydb3', 11);
// console.log('open mydb3')
const openreq = indexedDB.open('mydb3', 12);
openreq.onerror = () => {
reject(openreq.error);
@@ -24,14 +25,15 @@ let idbKeyval = (() => {
openreq.onupgradeneeded = () => {
// First time setup: create an empty object store
for (let mytab of MainTables) {
openreq.result.createObjectStore(mytab, { keyPath: '_id' });
openreq.result.createObjectStore(mytab, { keyPath: 'BOMID', autoIncrement: true });
for (let mymeth of allMethod) {
const tab = mymeth + mytab
openreq.result.createObjectStore(tab, { keyPath: '_id' });
openreq.result.createObjectStore(tab, { keyPath: 'BOMID', autoIncrement: true });
}
}
for (let mytab of OtherTables) {
openreq.result.createObjectStore(mytab, { keyPath: '_id' });
console.log('mytab', mytab);
openreq.result.createObjectStore(mytab, { keyPath: 'BOMID', autoIncrement: true });
}
};

View File

@@ -4,7 +4,7 @@ function geturl() {
if (miaurl.includes('localhost')) {
return 'http://localhost:8090/'
} else {
return 'https://ayni.gifteconomy.app/'
return 'https://comunitanuovomondo.app/'
}
}

View File

@@ -5,5 +5,5 @@ $_CONFIG['user'] = '';
$_CONFIG['pass'] = '';
$_CONFIG['dbname'] = '';
$_SITO['conndb'] = mysqli_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass'], $_CONFIG['dbname']) or die('Impossibile stabilire una connessione. ' . mysqli_connect_error());
// $_SITO['conndb'] = mysqli_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass'], $_CONFIG['dbname']) or die('Impossibile stabilire una connessione. ' . mysqli_connect_error());

View File

@@ -0,0 +1,5 @@
[Dolphin]
PreviewsShown=true
Timestamp=2021,3,26,23,47,48
Version=4
ViewMode=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.