diff --git a/public/images/arcadei/saluteviva.png b/public/images/arcadei/saluteviva.png index 1dc7ba16..f8da1f0b 100644 Binary files a/public/images/arcadei/saluteviva.png and b/public/images/arcadei/saluteviva.png differ diff --git a/src/common/shared_vuejs.ts b/src/common/shared_vuejs.ts index dc676211..a59dd6bd 100755 --- a/src/common/shared_vuejs.ts +++ b/src/common/shared_vuejs.ts @@ -603,6 +603,41 @@ export const shared_consts = { }, ], + Cat_Interesse_Arcadei: [ + { + value: 1, + label: 'Agricoltura sostenibile e naturale, agro biodiversità, sviluppo delle filiere locali finalizzate all\'autonomia alimentare (orto, g.a.s.)', + }, + { + value: 2, + label: 'Creazione ed Integrazione ecologica di nuove strutture abitative, rimboschimento, conservazione del territorio, del paesaggio e di tutti gli equilibri naturali.', + }, + { + value: 4, + label: 'Economia circolare e creazione di sistemi di unità di conto scambio beni e servizi, sistemi di baratto, dono e solidarietà.', + }, + { + value: 8, + label: 'Ricerca, sviluppo e implementazione di tecnologie di approvigionamento energetico.', + }, + { + value: 16, + label: 'Risveglio del potenziale umano e ricerca spirituale', + }, + { + value: 32, + label: 'Benessere, salute e guarigione relazionale della comunità.', + }, + { + value: 64, + label: 'Formazione, informazione, divulgazione, Educazione e trasmissione generazionale della conoscenza.', + }, + { + value: 128, + label: 'Convivialità, arte e cultura. Tutela, conservazione e promozione delle tradizioni e culture locali.', + }, + ], + Pub_to_Share: [ { value: 0, @@ -1140,6 +1175,102 @@ export const shared_consts = { FASE3_MONETA_ABILITATA: 3, }, + TypesElem: [ + { + value: 5, + label: 'Titolo', + }, + { + value: 6, + label: 'Margine', + }, + { + value: 8, + label: 'ImgTitolo', + }, + { + value: 10, + label: 'Testo', + }, + { + value: 20, + label: 'Html', + }, + { + value: 30, + label: 'Immagine', + }, + { + value: 40, + label: 'Separatore', + }, + { + value: 50, + label: 'Video', + }, + { + value: 55, + label: 'Pagina', + }, + { + value: 58, + label: 'Pagina Intro', + }, + { + value: 60, + label: 'Galleria', + }, + { + value: 70, + label: 'Calendario', + }, + { + value: 80, + label: 'Carosello Discipline', + }, + { + value: 85, + label: 'Carosello Home', + }, + { + value: 110, + label: 'Carosello Immagini', + }, + { + value: 90, + label: 'Footer', + }, + { + value: 100, + label: 'Check Email', + }, + { + value: 120, + label: 'OpenStreetMap', + }, + ], + + ELEMTYPE: { + TITLE: 5, + MARGINI: 6, + IMGTITLE: 8, + TEXT: 10, + HTML: 20, + IMAGE: 30, + SEPARATOR: 40, + VIDEO: 50, + PAGE: 55, + PAGEINTRO: 58, + GALLERY: 60, + CALENDAR: 70, + CAROUSEL_IDISCIPLINE: 80, + CAROUSEL_HOME: 85, + FOOTER: 90, + CHECK_EMAIL: 100, + CAROUSEL_IMGS: 110, + OPENSTREETMAP: 120, + }, + getStatusStr(status: number) { const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status) return (trovatorec) ? trovatorec.label : '' diff --git a/src/components/CGridTableRec/CGridTableRec.ts b/src/components/CGridTableRec/CGridTableRec.ts index b287b79d..d289b6cf 100755 --- a/src/components/CGridTableRec/CGridTableRec.ts +++ b/src/components/CGridTableRec/CGridTableRec.ts @@ -285,7 +285,7 @@ export default defineComponent({ let colsel = ref({ name: '', field: '', sortable: false }) let valPrec = '' - let separator: 'horizontal' + const separator = 'horizontal' const myfilter = ref('') const myfilterand: any = ref([]) let rowsel: any = {} @@ -386,13 +386,13 @@ export default defineComponent({ for (const item of searchList.value) { if (item.table === tablecat) { const valsaved = tools.getCookie(tools.COOK_SEARCH + tablecat + '_' + newval, costanti.FILTER_TUTTI) - const rec = searchList.value.find((rec) => rec.table === tablecat) // check if exist + const rec = searchList.value.find((myrec) => myrec.table === tablecat) // check if exist let trovato = false let arrvalues = [] if (rec) { arrvalues = valoriopt.value(rec.value, false, false) if (arrvalues) - trovato = arrvalues.find((rec: any) => rec[rec.key] === valsaved) + trovato = arrvalues.find((myrec: any) => myrec[myrec.key] === valsaved) } console.log(' ...item', item) if (valsaved && trovato) @@ -417,13 +417,13 @@ export default defineComponent({ for (const item of searchList.value) { if (item.table === tableprov) { const valsaved = tools.getCookie(tools.COOK_SEARCH + tableprov + '_' + newval, costanti.FILTER_TUTTI) - const rec = searchList.value.find((rec) => rec.table === tableprov) // check if exist + const rec = searchList.value.find((myrec) => myrec.table === tableprov) // check if exist let trovato = false let arrvalues = [] if (rec) { arrvalues = valoriopt.value(rec.value, false, false) if (arrvalues) - trovato = arrvalues.find((rec: any) => rec[rec.key] === valsaved) + trovato = arrvalues.find((myrec: any) => myrec[myrec.key] === valsaved) } if (valsaved && trovato) item.value = valsaved @@ -434,13 +434,13 @@ export default defineComponent({ } } else if (item.table === toolsext.TABCITIES) { const valsaved = tools.getCookie(tools.COOK_SEARCH + toolsext.TABCITIES + '_' + newval, costanti.FILTER_TUTTI) - const rec = searchList.value.find((rec) => rec.table === toolsext.TABCITIES) // check if exist + const rec = searchList.value.find((myrec) => myrec.table === toolsext.TABCITIES) // check if exist let trovato = false let arrvalues = [] if (rec) { arrvalues = valoriopt.value(rec.value, false, false) if (arrvalues) - trovato = arrvalues.find((rec: any) => rec[rec.key] === valsaved) + trovato = arrvalues.find((myrec: any) => myrec[myrec.key] === valsaved) } if (valsaved && trovato) item.value = valsaved @@ -837,7 +837,7 @@ export default defineComponent({ pagination.value.rowsNumber = getRowsNumberCount(myfilter) // clear out existing data and add new - if (returnedData.value === []) { + if (!returnedData.value || returnedData.value.length === 0) { serverData.value = [] } else { // if (serverData.length > 0) diff --git a/src/components/CMyElem/CMyElem.scss b/src/components/CMyElem/CMyElem.scss new file mode 100755 index 00000000..0e32f575 --- /dev/null +++ b/src/components/CMyElem/CMyElem.scss @@ -0,0 +1,452 @@ + +.testo-banda { + //background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent)); + //background: linear-gradient(180deg, #3144f0, transparent); + //background: rgba(0, 0, 0, .6) +} + +$grayshadow: #555; + +$textcol: blue; +$textcol_scuro: darkblue; + +p { + margin: 0 0 1.25rem; + //text-shadow: .125rem .125rem .25rem $grayshadow; +} + +h4 { + font-size: 1.25rem; +} + +.mycard { + visibility: hidden; +} + +.landing { +} + +.landing_background { + background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed; + background-size: cover +} + +.landing > section { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + //padding: 0 16px +} + +.intro { + display: flex; + justify-content: space-between; + align-items: stretch; + /* flex-flow: row nowrap; */ + + padding: 1.25rem 0 1.25rem 0; + margin: .125rem; + + * { + width: 100%; + flex: 1; + margin-left: auto; + margin-right: auto; + } + + &__associazione { + min-width: 350px; + } + + &__comeassociarsi { + min-width: 350px; + } +} + +.subtitle { + font-weight: 600; + text-align: center; + letter-spacing: 0.125rem; + text-transform: uppercase; + font-size: 1rem; +} + +.landing > section.padding { + padding: 5.62rem 1rem; +} + +.landing > section.padding_testo { + padding-top: 1.25rem; + padding-bottom: 1rem; +} + +.landing > section.padding_gallery { + padding-top: 3.125rem; + padding-bottom: 5.625rem; +} + +.landing > section > div { + position: relative; + width: 100% +} + +.maxwidth1200 { + max-width: 1200px; +} + +.landing__toolbar { + background: -webkit-gradient(linear, left top, left bottom, from(#000), to(transparent)); + background: linear-gradient(180deg, #000, transparent); + padding: 0 !important +} + +.landing__toolbar .q-btn { + border-radius: 0 0 .315rem .315rem; + -ms-flex-item-align: stretch; + align-self: stretch +} + +.landing__hero { + min-height: 50vh +} + +.landing__header { + height: 18vh +} + +.landing__arrow { + bottom: 1.5rem; + opacity: .4 +} + +.landing__front { + background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(15%, rgba(0, 0, 0, .6))); + background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .6) 15%) +} + +.landing__logo { + width: 9.40rem; + height: 9.40rem; + margin-top: 1.315rem; + //-webkit-animation: logo-rotate 240s linear infinite; + //animation: logo-rotate 240s linear infinite +} + +.landing__features .q-icon { + font-size: 4rem +} + +h4 { + line-height: 1.5; + text-shadow: .25rem .25rem .5rem $grayshadow; +} + +.landing__features h4, .landing__features h6 { + margin: 1rem 0 +} + +.landing__features p { + opacity: .7; + font-size: 1rem; + line-height: 1.5; +} + +.landing__footer { + //background: -webkit-gradient(linear, left top, left bottom, color-stop(65%, rgba(0, 0, 0, .1)), to(#000)); + background: linear-gradient(180deg, rgba(0, 0, 0, .8) 95%, #FFF); + padding-top: 4.5rem !important; + padding-bottom: 4.5rem !important; + padding-left: 1.25rem; + padding-right: 1.25rem; + color: #9f9f9f; +} + +.icon_contact:hover { + color: blue; + border-color: white; + border-width: .0625rem; +} + +.landing__footer .doc-link { + color: $textcol; +} + +.landing__footer .doc-link:hover { + opacity: .8 +} + +.landing__swirl-bg { + background-repeat: no-repeat !important; + background-position: top; + background-size: contain !important; + background-image: url(../../../public/images/landing_first_section.png) !important +} + +.feat-descr { + font-size: 1.15rem; +} + +.feat-descr:hover { + transition: opacity 0.5s ease-in-out; + opacity: 0.9; +} + +.q-col-gutter-sm { + padding: 3.125rem 3.125rem; + //margin-left: -48px +} + +body.mobile .landing { + //background: unset +} + +body.mobile .landing:before { + content: ""; + position: fixed; + top: 0; + height: 100vh; + left: 0; + right: 0; + bottom: 0; + z-index: -1; + //background: #000 url(../../public/images/cover.jpg) 50%; + + background-size: cover +} + +/* +@-webkit-keyframes logo-rotate { + to { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn) + } +} + +@keyframes logo-rotate { + to { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn) + } +} +*/ + +.home { + //background-color: rgb(250, 250, 250); + padding: 3.125rem; + display: flex; + //flex-wrap: nowrap; + flex-direction: column; + align-items: center; + justify-content: space-between; +} + +.btn-start { + margin: 3.125rem; +} + +.shadow { + //color: white; + text-shadow: 0.125rem 0.125rem 0.25rem $grayshadow; +} + +.text-h1, h1 { + font-size: 3rem; + font-weight: bold; + line-height: 3rem; + letter-spacing: -.01562em; + margin-bottom: 8px !important; +} + +.text-h2 { + font-size: 3.75rem; + font-weight: 300; + line-height: 3.75rem; + letter-spacing: -.00833em; +} + +.text-weight-bold { + font-weight: 700; +} + +.text-vers { + font-size: 0.75rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .25rem .25rem .5rem $grayshadow; +} + +.homep-cover-img-1 { + background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed; + //transition: background-image 1s ease-in-out; +} + +.homep-cover-img-2 { + background: #000 url(../../../public/images/foto2.jpg) no-repeat 50% fixed; + //transition: background-image 1s ease-in-out; +} + +.homep-cover-img-3 { + background: #000 url(../../../public/images/foto3.jpg) no-repeat 50% fixed; + //transition: background-image 1s ease-in-out; +} + +.homep-cover-img.hide-filter:before { + opacity: 0 +} + +.landing__footer-icons { + font-size: 1.75rem +} + +.landing__footer-icons a { + margin: 0 .5rem .5rem; + text-decoration: none; + outline: 0; + color: $textcol; + transition: color .28s +} + +.landing__footer-icons a:hover { + color: $textcol_scuro; +} + +.doc-img { + max-width: 100%; +} + +.mylist { + background: #3fdaff; + padding-left: 1.25rem; +} + +.clgutter { + margin-top: 1.25rem; + padding: .62rem; +} + +.carousel_img_3 { + //background-image: url(../../public/images/cibo_sano.jpg); + background-size: cover !important; + background-position: 50% center !important; + background-repeat: no-repeat !important; +} + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + + .landing__hero { + text-align: center + } + .landing__header { + height: 7vh + } + .clgutter { + margin-top: 0; + padding: 0; + } + .landing__hero .text-h1, h1 { + font-size: 2rem; + line-height: 2.05rem; + margin-bottom: 1.25rem + } + + .landing > section.padding { + padding: 2.5rem 1rem; + } + + .landing > section.padding_testo { + padding-top: 1.25rem; + padding-bottom: 1rem; + } + + .landing > section.padding_gallery { + padding-top: 3.125rem; + padding-bottom: 5.625rem; + + max-width: 800px; + } + + .landing > section.padding_gallery > div { + padding-top: 3.125rem; + padding-bottom: 5.625rem; + + } + + .landing__features h4, .landing__features h6 { + margin: 1.25rem 0 + } + + h4 { + line-height: 1.4; + text-shadow: 0.25rem 0.25rem 0.5rem $grayshadow; + } + + .landing .feature-item { + text-align: center; + margin-top: 1.25rem; + } + .landing__hero-content { + padding-bottom: 11.25rem; + } + .landing__hero2-content { + padding-bottom: 7.25rem; + } + .landing__hero-btns { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center + } + + .q-col-gutter-sm { + padding: .625rem .315rem; + } + + .text-subtitle1 { + font-size: 1.25rem; + } + .text-vers { + font-size: 0.6rem; + } + + .carousel_img_3 { + //background-image: url(../../public/images/cibo_sano.jpg); + background-size: 620px 620px !important; + background-position: 50% top !important; + background-repeat: no-repeat !important; + } + +} + +.custom-caption { + text-align: center; + padding: .75rem; + color: $textcol; + background-color: rgba(0, 0, 0, .3); +} + +.sfondo-grigio { + padding: 1rem; + color: $textcol; + background-color: rgba(0, 0, 0, .35); +} + +.mycontacts { + color: gray; + letter-spacing: 0.078rem; +} + +.mycontacts_title { + text-shadow: 0.125rem 0.125rem 0.125rem #555; + font-weight: bold; + color: #999; + letter-spacing: 0.125rem; +} + +.mycontacts_text { + color: #999; + letter-spacing: 0.093rem; +} diff --git a/src/components/CMyElem/CMyElem.ts b/src/components/CMyElem/CMyElem.ts new file mode 100755 index 00000000..0839954a --- /dev/null +++ b/src/components/CMyElem/CMyElem.ts @@ -0,0 +1,62 @@ +import { + defineComponent, onMounted, PropType, ref, toRef, watch, +} from 'vue' + +import { IMyElem, IMyPage, IOperators } from '@src/model' +import { useGlobalStore } from '@store/globalStore' + +import { CImgTitle } from '../CImgTitle/index' +import { CTitle } from '@/components/CTitle/index' +import { tools } from '@store/Modules/tools' +import { shared_consts } from '@/common/shared_vuejs' +import LandingFooter from '@/components/LandingFooter/LandingFooter' +import { COpenStreetMap } from '@src/components/COpenStreetMap' +import { CCardCarousel } from '@src/components/CCardCarousel' +import { CMyPage } from '@src/components/CMyPage' +import { CMyPageIntro } from '@src/components/CMyPageIntro' +import { CEventsCalendar } from '@src/components/CEventsCalendar' +import MixinMetaTags from '@/mixins/mixin-metatags' + +export default defineComponent({ + name: 'CMyElem', + components: { CImgTitle, CTitle, LandingFooter, CEventsCalendar, CCardCarousel, COpenStreetMap, CMyPage, CMyPageIntro }, + props: { + myelem: { + type: Object as PropType, + required: true, + }, + }, + setup(props) { + const globalStore = useGlobalStore() + + const { setmeta, getsrcbyimg } = MixinMetaTags() + + const animare = ref(0) + const slide = ref(0) + const slide2 = ref(0) + + function getArrDisciplines() { + return globalStore.disciplines.filter((rec: any) => rec.showinhome) + } + + function getheightgallery() { + if (tools.isMobile()) + return '400px' + else + return '600px' + } + + return { + tools, + shared_consts, + getArrDisciplines, + getheightgallery, + slide, + slide2, + animare, + setmeta, + getsrcbyimg, + } + }, + +}) diff --git a/src/components/CMyElem/CMyElem.vue b/src/components/CMyElem/CMyElem.vue new file mode 100755 index 00000000..f2d90dda --- /dev/null +++ b/src/components/CMyElem/CMyElem.vue @@ -0,0 +1,156 @@ + + + + diff --git a/src/components/CMyElem/index.ts b/src/components/CMyElem/index.ts new file mode 100755 index 00000000..3386358d --- /dev/null +++ b/src/components/CMyElem/index.ts @@ -0,0 +1 @@ +export { default as CMyElem } from './CMyElem.vue' diff --git a/src/components/CMyPage/CMyPage.ts b/src/components/CMyPage/CMyPage.ts index 6dd1287a..3b8b3da6 100755 --- a/src/components/CMyPage/CMyPage.ts +++ b/src/components/CMyPage/CMyPage.ts @@ -54,12 +54,12 @@ export default defineComponent({ const load = async (): Promise => { // console.log('load', mypath.value) - if (mypath.value !== '') rec.value = await globalStore.loadPage('/'+mypath.value) + if (mypath.value !== '') rec.value = await globalStore.loadPage('/' + mypath.value) } watch(() => props.mypath, async (to: string, from: string) => { // console.log('load', mypath.value) - if (mypath.value !== '') rec.value = await globalStore.loadPage('/'+mypath.value) + if (mypath.value !== '') rec.value = await globalStore.loadPage('/' + mypath.value) }) // onMounted(load) diff --git a/src/components/CMyPage/CMyPage.vue b/src/components/CMyPage/CMyPage.vue index e655754b..99e50dd9 100755 --- a/src/components/CMyPage/CMyPage.vue +++ b/src/components/CMyPage/CMyPage.vue @@ -1,7 +1,6 @@