Add support for modal option for event in calender page block
This commit is contained in:
parent
1c4c4c4a29
commit
4e49034f5e
@ -340,7 +340,18 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$router.push({ name: 'page.record', params: { recordID, pageID: page.pageID } })
|
const route = { name: 'page.record', params: { recordID, pageID: page.pageID } }
|
||||||
|
|
||||||
|
if (this.options.eventDisplayOption === 'newTab') {
|
||||||
|
window.open(this.$router.resolve(route).href)
|
||||||
|
} else if (this.options.eventDisplayOption === 'modal') {
|
||||||
|
this.$root.$emit('show-record-modal', {
|
||||||
|
recordID,
|
||||||
|
recordPageID: page.pageID,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$router.push(route)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
getHeight () {
|
getHeight () {
|
||||||
|
|||||||
@ -57,6 +57,23 @@
|
|||||||
:options="views"
|
:options="views"
|
||||||
/>
|
/>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
|
|
||||||
|
<b-row>
|
||||||
|
<b-col
|
||||||
|
cols="12"
|
||||||
|
md="6"
|
||||||
|
>
|
||||||
|
<b-form-group
|
||||||
|
:label="$t('calendar.view.onEventClick')"
|
||||||
|
label-class="text-primary"
|
||||||
|
>
|
||||||
|
<b-form-select
|
||||||
|
v-model="options.eventDisplayOption"
|
||||||
|
:options="eventDisplayOptions"
|
||||||
|
/>
|
||||||
|
</b-form-group>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -75,6 +92,14 @@ export default {
|
|||||||
return compose.PageBlockCalendar.availableViews()
|
return compose.PageBlockCalendar.availableViews()
|
||||||
.map(view => ({ value: view, text: this.$t(`calendar.view.${view}`) }))
|
.map(view => ({ value: view, text: this.$t(`calendar.view.${view}`) }))
|
||||||
},
|
},
|
||||||
|
|
||||||
|
eventDisplayOptions () {
|
||||||
|
return [
|
||||||
|
{ value: 'sameTab', text: this.$t('calendar.view.openInSameTab') },
|
||||||
|
{ value: 'newTab', text: this.$t('calendar.view.openInNewTab') },
|
||||||
|
{ value: 'modal', text: this.$t('calendar.view.openInModal') },
|
||||||
|
]
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -38,6 +38,7 @@ class CalendarOptions {
|
|||||||
public refreshRate = 0
|
public refreshRate = 0
|
||||||
public showRefresh = false
|
public showRefresh = false
|
||||||
public magnifyOption = ''
|
public magnifyOption = ''
|
||||||
|
public eventDisplayOption = 'sameTab'
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,7 +64,7 @@ export class PageBlockCalendar extends PageBlock {
|
|||||||
|
|
||||||
Apply(this.options, o, Boolean, 'showRefresh')
|
Apply(this.options, o, Boolean, 'showRefresh')
|
||||||
|
|
||||||
Apply(this.options, o, String, 'magnifyOption')
|
Apply(this.options, o, String, 'magnifyOption', 'eventDisplayOption')
|
||||||
|
|
||||||
this.options.defaultView = PageBlockCalendar.handleLegacyView(o.defaultView) || 'dayGridMonth'
|
this.options.defaultView = PageBlockCalendar.handleLegacyView(o.defaultView) || 'dayGridMonth'
|
||||||
this.options.feeds = (o.feeds || []).map(f => new Feed(f))
|
this.options.feeds = (o.feeds || []).map(f => new Feed(f))
|
||||||
|
|||||||
@ -72,6 +72,10 @@ calendar:
|
|||||||
listMonth: Agenda
|
listMonth: Agenda
|
||||||
timeGridDay: Day
|
timeGridDay: Day
|
||||||
timeGridWeek: Week
|
timeGridWeek: Week
|
||||||
|
onEventClick: On event click
|
||||||
|
openInSameTab: Open record in the same tab
|
||||||
|
openInNewTab: Open record in a new tab
|
||||||
|
openInModal: Open record in a modal
|
||||||
viewLabel: Calendar
|
viewLabel: Calendar
|
||||||
chart:
|
chart:
|
||||||
add: New Chart
|
add: New Chart
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user