diff --git a/components/Event.vue b/components/Event.vue
index 4d98bd94..4d6cd756 100644
--- a/components/Event.vue
+++ b/components/Event.vue
@@ -1,7 +1,7 @@
v-card.h-event.event.d-flex
nuxt-link(:to='`/event/${event.slug || event.id}`')
- v-img.u-featured.img(:src="`/media/thumb/${event.image_path || 'logo.svg' }`")
+ v-img.u-featured.img(v-if='event.media' :src='thumbnail' :position='thumbnailPosition' :alt='event.media.length ? event.media[0].name : ""')
v-icon.float-right.mr-1(v-if='event.parentId' color='success') mdi-repeat
.title.p-name {{event.title}}
@@ -52,6 +52,22 @@ export default {
},
computed: {
...mapState(['settings']),
+ thumbnail () {
+ let path
+ if (this.event.media && this.event.media.length) {
+ path = this.event.media[0].url
+ } else {
+ path = 'logo.svg'
+ }
+ return '/media/thumb/' + path
+ },
+ thumbnailPosition () {
+ if (this.event.media && this.event.media.length && this.event.media[0].focalpoint) {
+ const focalpoint = this.event.media[0].focalpoint
+ return `${(focalpoint[0] + 1) * 50}% ${(focalpoint[1] + 1) * 50}%`
+ }
+ return 'center center'
+ },
is_mine () {
if (!this.$auth.user) {
return false
diff --git a/pages/add/MediaInput.vue b/pages/add/MediaInput.vue
new file mode 100644
index 00000000..4c4c7ae9
--- /dev/null
+++ b/pages/add/MediaInput.vue
@@ -0,0 +1,97 @@
+
+ span
+ v-dialog(v-model='openMediaDetails' max-width='1000px')
+ v-card
+ v-card-title {{$t('common.media')}}
+ v-card-text
+ v-row
+ v-col(:span='4' :cols='4')
+ p Scegli il punto centrale cliccando
+ v-img(v-if='mediaPreview'
+ :src='mediaPreview'
+ aspect-ratio='1.7778'
+ :position="position")
+
+ v-textarea.mt-4(type='text'
+ label='Alternative text'
+ persistent-hint
+ @input='v => name=v'
+ :value='value.name' filled
+ hint='Descrizione per utenti con disabilita visive')
+ v-card-actions.justify-space-between
+ v-btn(@click='openMediaDetails=false' color='warning') Cancel
+ v-btn(color='primary' @click='save') Save
+
+ v-col(:span='8' :cols='8')
+ v-img(
+ v-if='mediaPreview' :src='mediaPreview'
+ @click='selectFocal'
+ max-width='88%')
+
+ h3.mb-3.font-weight-regular(v-if='mediaPreview') {{$t('common.media')}}
+ v-img.col-12.col-sm-2.ml-3(v-if='mediaPreview' :src='mediaPreview' aspect-ratio='1.7778' :position='position')
+ v-btn-toggle
+ v-btn(text color='primary' @click='openMediaDetails = true') {{$t('common.edit')}}
+ v-btn(text color='primary' @click='remove') {{$t('common.remove')}}
+ p {{event.media[0].name}}
+ v-file-input(
+ v-else
+ :label="$t('common.media')"
+ :hint="$t('event.media_description')"
+ prepend-icon="mdi-camera"
+ :value='value.image'
+ @change="v => $emit('input', { image: v, focalpoint: [0, 0] })"
+ persistent-hint
+ accept='image/*')
+
+
diff --git a/pages/add/_edit.vue b/pages/add/_edit.vue
index 64551851..a6d47872 100644
--- a/pages/add/_edit.vue
+++ b/pages/add/_edit.vue
@@ -45,14 +45,7 @@
//- MEDIA / FLYER / POSTER
v-col(cols=12 md=6)
- v-file-input(
- :label="$t('common.media')"
- :hint="$t('event.media_description')"
- prepend-icon="mdi-camera"
- v-model='event.image'
- persistent-hint
- accept='image/*')
- v-img.col-12.col-sm-2.ml-3(v-if='mediaPreview' :src='mediaPreview')
+ MediaInput(v-model='event.media[0]' :event='event' @remove='event.media=[]')
//- tags
v-col(cols=12 md=6)
@@ -66,7 +59,7 @@
v-card-actions
v-spacer
v-btn(@click='done' :loading='loading' :disabled='!valid || loading'
- color='primary') {{edit?$t('common.edit'):$t('common.send')}}
+ color='primary') {{edit?$t('common.save'):$t('common.send')}}