diff --git a/quasar.conf.js b/quasar.conf.js
index 46a05ac..ad5b97d 100755
--- a/quasar.conf.js
+++ b/quasar.conf.js
@@ -168,6 +168,8 @@ module.exports = function (ctx) {
framework: {
components: [
'QLayout',
+ 'QBreadcrumbs',
+ 'QBreadcrumbsEl',
'QDrawer',
'QItemSection',
'QHeader',
diff --git a/src/App.scss b/src/App.scss
index ea29cab..5f64e14 100755
--- a/src/App.scss
+++ b/src/App.scss
@@ -944,5 +944,11 @@ $heightBtn: 100%;
}
.clpos{
- color: gray;
+ color: #C0C0C0;
+}
+.clresp{
+ color: #206d24;
+}
+.clrespempty{
+ color: #DDDDDD;
}
diff --git a/src/db/lang/ws_it.js b/src/db/lang/ws_it.js
index 38bc7b8..09fc170 100755
--- a/src/db/lang/ws_it.js
+++ b/src/db/lang/ws_it.js
@@ -16,6 +16,7 @@ const msg_website_it = {
time_start: 'Ora Inizio',
time_end: 'Ora Fine',
hours: 'Ore',
+ note: 'Note Extra',
},
pages: {
home: 'Home',
@@ -59,14 +60,15 @@ const msg_website_it = {
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',
@@ -83,7 +85,7 @@ const msg_website_it = {
peoplelegend: 'Numero d\'Invitati'
},
admin_ecommerce: 'ECommerce',
- ecommerce: 'E-Commerce',
+ ecommerce: 'Prodotti',
ecommerce_menu: 'ECommerce1',
hours: 'Ore',
},
diff --git a/src/db/static_data.ts b/src/db/static_data.ts
index 292fdcf..8864bdd 100755
--- a/src/db/static_data.ts
+++ b/src/db/static_data.ts
@@ -96,6 +96,8 @@ const routes_projects: IListRoutes[] = [
component: () => import('@/views/projects/proj-list/proj-list.vue'),
inmenu: functionality.SHOW_MESSAGES,
infooter: functionality.ENABLE_PROJECTS_LOADING,
+ onlySocioResidente: true,
+ onlyAdmin: true,
idelem: process.env.PROJECT_ID_MAIN
},
{
@@ -107,6 +109,8 @@ 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,
infooter: functionality.ENABLE_PROJECTS_LOADING,
@@ -123,6 +127,8 @@ const routes_projects: IListRoutes[] = [
level_child: 0.5,
component: () => import('@/views/projects/proj-list/proj-list.vue'),
inmenu: functionality.SHOW_MESSAGES,
+ onlySocioResidente: true,
+ onlyAdmin: true,
infooter: functionality.ENABLE_PROJECTS_LOADING,
idelem: process.env.PROJECT_ID_MAIN
}
@@ -513,6 +519,27 @@ const baseroutes: IListRoutes[] = [
inmenu: true,
infooter: true,
},
+ {
+ 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: 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 +550,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 +604,7 @@ const baseroutes: IListRoutes[] = [
name: 'pages.ecommerce',
routes2: routes_ecommerce,
inmenu: true,
+ onlySocioResidente: true,
solotitle: true,
infooter: true
},
diff --git a/src/root/calendarioeventi/calendarioeventi.scss b/src/root/calendarioeventi/calendarioeventi.scss
new file mode 100755
index 0000000..e69de29
diff --git a/src/root/calendarioeventi/calendarioeventi.ts b/src/root/calendarioeventi/calendarioeventi.ts
new file mode 100755
index 0000000..e79f6db
--- /dev/null
+++ b/src/root/calendarioeventi/calendarioeventi.ts
@@ -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)
+ }
+
+}
diff --git a/src/root/calendarioeventi/calendarioeventi.vue b/src/root/calendarioeventi/calendarioeventi.vue
new file mode 100755
index 0000000..635860b
--- /dev/null
+++ b/src/root/calendarioeventi/calendarioeventi.vue
@@ -0,0 +1,25 @@
+
+
+
+ {{ setmeta({
+ title: 'Calendario Eventi',
+ description: "Calendario degli Eventi che si svolgono all'Associazione Shen di Lugo (RA)",
+ keywords: 'calendario eventi centro olistico' } ) }}
+
+
+
+
+
+
+
+ Calendario Eventi {{ mycal.label }} (PDF)
+
+
+
+
+
+
+
diff --git a/src/root/evento/evento.scss b/src/root/evento/evento.scss
new file mode 100755
index 0000000..50a72ae
--- /dev/null
+++ b/src/root/evento/evento.scss
@@ -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;
+ }
+
+}
diff --git a/src/root/evento/evento.ts b/src/root/evento/evento.ts
new file mode 100755
index 0000000..88da262
--- /dev/null
+++ b/src/root/evento/evento.ts
@@ -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 ''
+ }
+
+}
diff --git a/src/root/evento/evento.vue b/src/root/evento/evento.vue
new file mode 100755
index 0000000..9be7e21
--- /dev/null
+++ b/src/root/evento/evento.vue
@@ -0,0 +1,56 @@
+
+
+
+
+ {{ setmeta({
+ title: gettitle,
+ description: "",
+ keywords: '' } ) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PROSSIME DATE:
+
+
+
+
+
+
+
+
+ {{ev.title}}
+ {{tools.getstrDateTimeEventShort(mythis, ev)}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/root/home/home.ts b/src/root/home/home.ts
index 805e423..776a115 100755
--- a/src/root/home/home.ts
+++ b/src/root/home/home.ts
@@ -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',
diff --git a/src/root/home/home.vue b/src/root/home/home.vue
index 6e3e6ad..e66d128 100755
--- a/src/root/home/home.vue
+++ b/src/root/home/home.vue
@@ -99,6 +99,7 @@
+
+
+
+
+
+
+
+
Versione App {{ getenv('APP_VERSION') }}