- Inserted Prerendering plugin('prerender-spa-plugin') to create HTML pages (for Google... crawler)

- Added Meta Tags (title, description and keywords)
This commit is contained in:
Paolo Arena
2019-11-08 23:43:00 +01:00
parent cd746e7ad3
commit 9c35b5d73a
8 changed files with 74 additions and 50 deletions

View File

@@ -153,6 +153,9 @@ $graytext: #555;
border-radius: 1rem; border-radius: 1rem;
} }
&__table tr:hover {
background-color: #deecef;
}
&__align_center_mobile { &__align_center_mobile {
text-align: left; text-align: left;
@@ -273,11 +276,11 @@ $graytext: #555;
// background: radial-gradient(circle, #ffffff 0%, #94dbfb 100%) // background: radial-gradient(circle, #ffffff 0%, #94dbfb 100%)
} }
.mysel{ .mysel {
color: white; color: white;
} }
.myflex{ .myflex {
display: flex; display: flex;
flex: 1; flex: 1;
@media (max-width: 400px) { @media (max-width: 400px) {

View File

@@ -40,10 +40,22 @@ import { CMySingleEvent } from '../CMySingleEvent'
@Component({ @Component({
mixins: [MixinOperator, MixinUsers, MixinEvents], mixins: [MixinOperator, MixinUsers, MixinEvents],
name: 'CEventsCalendar', name: 'CEventsCalendar',
components: { Logo, Footer, CTitle, CImgText, QDateTimeScroller, QDateScroller, CMySelect, CMyEditor, CDateTime, CMyAvatar, CMySingleEvent } components: {
Logo,
Footer,
CTitle,
CImgText,
QDateTimeScroller,
QDateScroller,
CMySelect,
CMyEditor,
CDateTime,
CMyAvatar,
CMySingleEvent
}
}) })
export default class CEventsCalendar extends MixinEvents { export default class CEventsCalendar extends MixinEvents {
@Prop ({required: false, default: null}) public mysingleevent: IEvents @Prop({ required: false, default: null }) public mysingleevent: IEvents
public $q public $q
public $t: any public $t: any
public calendarView = 'month' public calendarView = 'month'
@@ -524,14 +536,15 @@ export default class CEventsCalendar extends MixinEvents {
tools.CancelEvent(this, eventparam) tools.CancelEvent(this, eventparam)
} }
public duplicateEvent(eventparam, numgg, numev: number = 1 ) { public duplicateEvent(eventparam, numgg, numev: number = 1) {
for (let i = 0; i < numev; ++i) { for (let i = 0; i < numev; ++i) {
GlobalStore.actions.DuplicateRec({ table: tools.TABEVENTS, id: eventparam._id }).then((rec) => { GlobalStore.actions.DuplicateRec({ table: tools.TABEVENTS, id: eventparam._id }).then((rec) => {
if (rec) {
rec.dateTimeStart = tools.addDays(new Date(rec.dateTimeStart), numgg * (i + 1)) rec.dateTimeStart = tools.addDays(new Date(rec.dateTimeStart), numgg * (i + 1))
rec.dateTimeEnd = tools.addDays(new Date(rec.dateTimeEnd), numgg * (i + 1)) rec.dateTimeEnd = tools.addDays(new Date(rec.dateTimeEnd), numgg * (i + 1))
CalendarStore.state.eventlist.push(rec) CalendarStore.state.eventlist.push(rec)
this.editEvent(rec) this.editEvent(rec)
}
}) })
} }
// tools.ActionRecTable(this, lists.MenuAction.DUPLICATE_RECTABLE, tools.TABEVENTS, eventparam._id, eventparam, 'db.duplicatedrecord') // tools.ActionRecTable(this, lists.MenuAction.DUPLICATE_RECTABLE, tools.TABEVENTS, eventparam._id, eventparam, 'db.duplicatedrecord')

View File

@@ -72,7 +72,7 @@
<span class="cal__where-content"> <span class="cal__where-content">
<q-chip> <q-chip>
<q-avatar v-if="getWhereIcon(myevent.wherecode)"> <q-avatar v-if="getWhereIcon(myevent.wherecode)">
<img :src="`../../statics/images/avatar/` + getWhereIcon(myevent.wherecode)"> <img :src="`../../statics/images/avatar/` + getWhereIcon(myevent.wherecode)" alt="Località">
</q-avatar> </q-avatar>
<q-avatar v-else color="blue" font-size="20px" text-color="white" icon="home"> <q-avatar v-else color="blue" font-size="20px" text-color="white" icon="home">
</q-avatar>showpage </q-avatar>showpage
@@ -487,7 +487,7 @@
<span class="">{{ getTitleEv(event) }}</span> <span class="">{{ getTitleEv(event) }}</span>
</q-badge> </q-badge>
<div class="text-center"><img :src="getImgEvent(event)" <div class="text-center"><img :src="getImgEvent(event)"
class="text-center listaev__tdimg_small"> class="text-center listaev__tdimg_small" alt="Evento">
</div> </div>
</template> </template>
</template> </template>
@@ -595,7 +595,7 @@
@click="deleteEvent(myevent)"></q-btn> @click="deleteEvent(myevent)"></q-btn>
<q-btn v-if="editable" flat round color="white" icon="edit" v-close-popup <q-btn v-if="editable" flat round color="white" icon="edit" v-close-popup
@click="editEvent(myevent)"></q-btn> @click="editEvent(myevent)"></q-btn>
<q-btn flat round color="white" icon="cancel" @click="selectEvent(null)"></q-btn> <q-btn v-if="editable" flat round color="white" icon="cancel" @click="selectEvent(null)"></q-btn>
</q-chip> </q-chip>
<q-chip v-if="event.news" class="cltexth4 chipnews shadow-5 glossy text-right" <q-chip v-if="event.news" class="cltexth4 chipnews shadow-5 glossy text-right"
color="red" color="red"
@@ -629,7 +629,8 @@
:to="`/event/` + event._id" :to="`/event/` + event._id"
target="_blank" target="_blank"
:style="`background-color: ${event.bgcolor} !important; color: white !important;`" :style="`background-color: ${event.bgcolor} !important; color: white !important;`"
ripple rounded ripple
rounded
:label="event.title" :icon="event.icon" :label="event.title" :icon="event.icon"
:color="event.bgcolor" text-color="white" glossy> :color="event.bgcolor" text-color="white" glossy>
@@ -709,16 +710,16 @@
:label="$t('event.showpage')"> :label="$t('event.showpage')">
</q-btn> </q-btn>
</div> </div>
<q-btn rounded outline class="q-mx-sm" <q-btn rounded outline class="q-ma-sm"
color="primary" @click="askForInfoEventMenu(event)" color="primary" @click="askForInfoEventMenu(event)"
:label="$t('event.askinfo')"> :label="$t('event.askinfo')">
</q-btn> </q-btn>
<q-btn rounded outline class="q-mx-sm" <q-btn rounded outline class="q-ma-sm"
v-if="!event.nobookable && !isAlreadyBooked(event) && static_data.functionality.BOOKING_EVENTS" v-if="!event.nobookable && !isAlreadyBooked(event) && static_data.functionality.BOOKING_EVENTS"
color="primary" @click="addBookEventMenu(event)" color="primary" @click="addBookEventMenu(event)"
:label="$t('cal.booking')" :disable="!isEventEnabled(event)"> :label="$t('cal.booking')" :disable="!isEventEnabled(event)">
</q-btn> </q-btn>
<q-btn rounded outline class="q-mx-sm" <q-btn rounded outline class="q-ma-sm"
v-if="!event.nobookable && isAlreadyBooked(event) && static_data.functionality.BOOKING_EVENTS" v-if="!event.nobookable && isAlreadyBooked(event) && static_data.functionality.BOOKING_EVENTS"
text-color="red" text-color="red"
@click.native="EditBookEvent(event)" @click.native="EditBookEvent(event)"

View File

@@ -12,7 +12,8 @@
color="green" text-color="white" color="green" text-color="white"
icon="event_available">{{$t('cal.booked')}} icon="event_available">{{$t('cal.booked')}}
</q-chip> </q-chip>
<q-chip v-if="selected" class="text-center shadow-5 glossy bg-blue chipmodif"> <div v-if="selected">
<q-chip v-if="editable" class="text-center shadow-5 glossy bg-blue chipmodif">
<q-btn v-if="editable" flat round color="white" icon="fas fa-copy"> <q-btn v-if="editable" flat round color="white" icon="fas fa-copy">
<q-menu <q-menu
@@ -35,8 +36,10 @@
@click="deleteEvent(myevent)"></q-btn> @click="deleteEvent(myevent)"></q-btn>
<q-btn v-if="editable" flat round color="white" icon="edit" v-close-popup <q-btn v-if="editable" flat round color="white" icon="edit" v-close-popup
@click="editEvent(myevent)"></q-btn> @click="editEvent(myevent)"></q-btn>
<q-btn flat round color="white" icon="cancel" @click="selectEvent(null)"></q-btn> <q-btn v-if="editable" flat round color="white" icon="cancel"
@click="selectEvent(null)"></q-btn>
</q-chip> </q-chip>
</div>
<q-chip v-if="myevent.news" class="cltexth4 chipnews shadow-5 glossy text-right" color="red" <q-chip v-if="myevent.news" class="cltexth4 chipnews shadow-5 glossy text-right" color="red"
text-color="white" icon-right="star" icon="star" dense text-color="white" icon-right="star" icon="star" dense
style=""> style="">
@@ -142,7 +145,7 @@
:label="$t('event.showpage')"> :label="$t('event.showpage')">
</q-btn> </q-btn>
</div> </div>
<div class="row justify-end q-ma-md"> <div class="row justify-end q-mb-lg">
<q-btn rounded outline class="q-mx-sm" <q-btn rounded outline class="q-mx-sm"
color="primary" @click="askForInfoEventMenu(myevent)" color="primary" @click="askForInfoEventMenu(myevent)"
:label="$t('event.askinfo')"> :label="$t('event.askinfo')">

View File

@@ -31,18 +31,20 @@
class="q-icon fas fa-envelope q-mx-sm"></i> class="q-icon fas fa-envelope q-mx-sm"></i>
<a :href="`mailto:` + getValDb('MAIN_EMAIL')" class="links">{{ getValDb('MAIN_EMAIL') <a :href="`mailto:` + getValDb('MAIN_EMAIL')" class="links">{{ getValDb('MAIN_EMAIL')
}}</a><br> }}</a><br>
<br> <q-separator dark spaced></q-separator>
<span v-for="rec in getarrValDb('CONTACTS_EMAIL_CELL')"> <span v-for="rec in getarrValDb('CONTACTS_EMAIL_CELL')">
{{ rec.name }}: {{ rec.phone }} {{ rec.name }}: {{ rec.phone }}
<br>
<a v-if="!!tools.getHttpForWhatsapp(rec.phone)" :href="tools.getHttpForWhatsapp(rec.phone)" target="_blank"> <a v-if="!!tools.getHttpForWhatsapp(rec.phone)" :href="tools.getHttpForWhatsapp(rec.phone)" target="_blank">
<i aria-hidden="true" class="q-icon fab fa-whatsapp icon_contact links q-mx-xs"></i></a> <i aria-hidden="true" class="q-icon fab fa-whatsapp landing__footer-icons icon_contact links q-mx-xs"></i></a>
<a v-if="!!tools.getHttpForTelegram(rec.usertelegram)" :href="tools.getHttpForTelegram(rec.usertelegram)" target="_blank"> <a v-if="!!tools.getHttpForTelegram(rec.usertelegram)" :href="tools.getHttpForTelegram(rec.usertelegram)" target="_blank">
<i aria-hidden="true" class="q-icon fab fa-telegram icon_contact links q-mx-xs"></i></a> <i aria-hidden="true" class="q-icon fab fa-telegram landing__footer-icons icon_contact links q-mx-xs"></i></a>
<br> <br>
<i v-if="rec.email" aria-hidden="true" <i v-if="rec.email" aria-hidden="true"
class="q-icon fas fa-envelope q-mx-sm"></i> <a :href="`mailto:`+ rec.email " class="q-icon fas fa-envelope q-mx-sm"></i> <a :href="`mailto:`+ rec.email "
class="links">{{rec.email}}</a> class="links">{{rec.email}}</a>
<br> <br>
<q-separator dark spaced></q-separator>
</span> </span>
<span v-if="getValDb('CALL_WORKING_DAYS')"><br>orari per chiamate:<br> <span v-if="getValDb('CALL_WORKING_DAYS')"><br>orari per chiamate:<br>
<span v-html="getValDb('CALL_WORKING_DAYS')"></span></span> <span v-html="getValDb('CALL_WORKING_DAYS')"></span></span>

View File

@@ -37,7 +37,7 @@
<q-toolbar-title> <q-toolbar-title>
<q-avatar> <q-avatar>
<img :src="imglogo" height="27"> <img :src="imglogo" height="27" alt="Immagine Logo">
</q-avatar> </q-avatar>
{{tools.getappname()}} {{tools.getappname()}}
<div slot="subtitle">{{$t('msg.myDescriz')}} {{ getAppVersion() }}</div> <div slot="subtitle">{{$t('msg.myDescriz')}} {{ getAppVersion() }}</div>

View File

@@ -676,12 +676,12 @@ namespace Actions {
async function loadSite(context) { async function loadSite(context) {
// console.log('CalendarStore: loadAfterLogin') // console.log('CalendarStore: loadAfterLogin')
// Load local data // Load local data
CalendarStore.state.editable = UserStore.state.isAdmin || UserStore.state.isManager
const showall = UserStore.state.isAdmin || UserStore.state.isManager ? '1' : '0' const showall = UserStore.state.isAdmin || UserStore.state.isManager ? '1' : '0'
const myuserid = (UserStore.state.my._id) ? UserStore.state.my._id : '0' const myuserid = (UserStore.state.my._id) ? UserStore.state.my._id : '0'
CalendarStore.state.editable = false
return await Api.SendReq('/loadsite/' + myuserid + '/' + process.env.APP_ID + '/' + showall, 'GET', null) return await Api.SendReq('/loadsite/' + myuserid + '/' + process.env.APP_ID + '/' + showall, 'GET', null)
.then((res) => { .then((res) => {
CalendarStore.state.bookedevent = (res.data.bookedevent) ? res.data.bookedevent : [] CalendarStore.state.bookedevent = (res.data.bookedevent) ? res.data.bookedevent : []
@@ -691,6 +691,8 @@ namespace Actions {
CalendarStore.state.contribtype = (res.data.contribtype) ? res.data.contribtype : [] CalendarStore.state.contribtype = (res.data.contribtype) ? res.data.contribtype : []
GlobalStore.state.settings = (res.data.settings) ? [...res.data.settings] : [] GlobalStore.state.settings = (res.data.settings) ? [...res.data.settings] : []
CalendarStore.state.editable = UserStore.state.isAdmin || UserStore.state.isManager
}) })
.catch((error) => { .catch((error) => {
console.log('error dbLoad', error) console.log('error dbLoad', error)

View File

@@ -1742,7 +1742,7 @@ export const tools = {
mystr = `<span class="cal__where-content">${tools.getstrDate(myevent.dateTimeStart)}</span> mystr = `<span class="cal__where-content">${tools.getstrDate(myevent.dateTimeStart)}</span>
<span class="cal__hours-content">${mythis.$t('cal.starttime')} ${ tools.getstrTime(myevent.dateTimeStart) } </span> <span class="cal__hours-content">${mythis.$t('cal.starttime')} ${ tools.getstrTime(myevent.dateTimeStart) } </span>
${ mythis.$t('cal.enddate')} ${tools.getstrDate(myevent.dateTimeEnd)} ${ mythis.$t('cal.enddate')} ${tools.getstrDate(myevent.dateTimeEnd)}
<span class="cal__hours-content">${ mythis.$t('cal.endtime')}: ${ tools.getstrTime(myevent.dateTimeEnd) } </span>` <span class="cal__hours-content">${ mythis.$t('cal.endtime')} ${ tools.getstrTime(myevent.dateTimeEnd) } </span>`
} }
if (myevent.infoextra) { if (myevent.infoextra) {