diff --git a/.snyk b/.snyk
new file mode 100644
index 00000000..f02f7ae0
--- /dev/null
+++ b/.snyk
@@ -0,0 +1,8 @@
+# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
+version: v1.25.0
+ignore: {}
+# patches apply the minimum changes required to fix a vulnerability
+patch:
+ SNYK-JS-LODASH-567746:
+ - express-oauth-server > oauth2-server > lodash:
+ patched: '2022-06-06T14:57:24.390Z'
diff --git a/CHANGELOG b/CHANGELOG
index 45db2ae4..b1823bf7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
- new Tag page!
- new Place page!
- new search flow
- - new meta-tag-place / group / cohort page!
+ - new meta-tag-place / group / collection page!
- allow footer links reordering
- new Docker image
- add GANCIO_DB_PORT environment
@@ -12,6 +12,7 @@ All notable changes to this project will be documented in this file.
- add dynamic sitemap.xml !
- calendar attributes refactoring (a dot each day, colors represents n. events)
- fix event mime type response
+ - new **undocumented** gancio CLI accounts management (list / create / remove / modify accounts)
### 1.4.4 - 10 may '22
diff --git a/assets/style.css b/assets/style.css
index c9d76ce4..02b4fcf3 100644
--- a/assets/style.css
+++ b/assets/style.css
@@ -42,9 +42,10 @@ li {
.v-dialog {
width: 600px;
max-width: 800px;
- &.v-dialog--fullscreen {
- max-width: 100%;
- }
+}
+
+.v-dialog .v-dialog--fullscreen {
+ max-width: 100%;
}
.theme--dark.v-list {
diff --git a/components/DateInput.vue b/components/DateInput.vue
index ee8fd699..30381170 100644
--- a/components/DateInput.vue
+++ b/components/DateInput.vue
@@ -47,7 +47,6 @@ v-col(cols=12)
:disabled='!value.from'
:prepend-icon="mdiClockTimeFourOutline"
:rules="[$validators.required('event.from')]"
- readonly
v-bind="attrs"
v-on="on")
v-time-picker(
@@ -72,7 +71,6 @@ v-col(cols=12)
:value="dueHour"
:disabled='!fromHour'
:prepend-icon="mdiClockTimeEightOutline"
- readonly
v-bind="attrs"
v-on="on")
v-time-picker(
@@ -103,7 +101,7 @@ export default {
data () {
return {
mdiClockTimeFourOutline, mdiClockTimeEightOutline,
- allowedMinutes: [0, 15, 30, 45],
+ allowedMinutes: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55],
menuFromHour: false,
menuDueHour: false,
type: 'normal',
diff --git a/components/Event.vue b/components/Event.vue
index 43863be1..3f5f58ef 100644
--- a/components/Event.vue
+++ b/components/Event.vue
@@ -8,7 +8,7 @@
v-card-text.body.pt-0.pb-0
time.dt-start.subtitle-1(:datetime='event.start_datetime|unixFormat("YYYY-MM-DD HH:mm")' itemprop="startDate" :content="event.start_datetime|unixFormat('YYYY-MM-DDTHH:mm')") {{ event|when }}
.d-none.dt-end(itemprop="endDate" :content="event.end_datetime|unixFormat('YYYY-MM-DDTHH:mm')") {{event.end_datetime|unixFormat('YYYY-MM-DD HH:mm')}}
- nuxt-link.place.d-block.p-location.pl-0(text color='primary' :to='`/p/${event.place.name}`' itemprop="location" :content="event.place.name") {{event.place.name}}
+ nuxt-link.place.d-block.p-location.pl-0(text color='primary' :to='`/place/${event.place.name}`' itemprop="location" :content="event.place.name") {{event.place.name}}
.d-none(itemprop='location.address') {{event.place.address}}
v-card-actions.pt-0.actions.justify-space-between
diff --git a/components/Nav.vue b/components/Nav.vue
index 3569577f..d1a49283 100644
--- a/components/Nav.vue
+++ b/components/Nav.vue
@@ -1,55 +1,55 @@
- v-app-bar(app aria-label='Menu' height=64)
+v-app-bar(app aria-label='Menu' height=64)
- //- logo, title and description
- v-list-item.pa-0(:to='$route.name==="index"?"/about":"/"')
- v-list-item-avatar.ma-xs-1(tile)
- img(src='/logo.png' height='40')
- v-list-item-content.d-flex
- v-list-item-title.d-flex
- h2 {{settings.title}}
- v-list-item-subtitle.d-none.d-sm-flex {{settings.description}}
+ //- logo, title and description
+ v-list-item(:to='$route.name==="index"?"/about":"/"')
+ v-list-item-avatar.ma-xs-1(tile)
+ img(src='/logo.png' height='40')
+ v-list-item-content
+ v-list-item-title.d-flex
+ h2 {{settings.title}}
+ v-list-item-subtitle.d-none.d-sm-flex {{settings.description}}
- v-spacer
- v-btn(v-if='$auth.loggedIn || settings.allow_anon_event' icon nuxt to='/add' :aria-label='$t("common.add_event")' :title='$t("common.add_event")')
- v-icon(large color='primary' v-text='mdiPlus')
+ v-spacer
+ v-btn(v-if='$auth.loggedIn || settings.allow_anon_event' icon nuxt to='/add' :aria-label='$t("common.add_event")' :title='$t("common.add_event")')
+ v-icon(large color='primary' v-text='mdiPlus')
- v-btn(icon nuxt to='/export' :title='$t("common.share")' :aria-label='$t("common.share")')
- v-icon(v-text='mdiShareVariant')
+ v-btn(icon nuxt to='/export' :title='$t("common.share")' :aria-label='$t("common.share")')
+ v-icon(v-text='mdiShareVariant')
- v-btn(v-if='!$auth.loggedIn' icon nuxt to='/login' :title='$t("common.login")' :aria-label='$t("common.login")')
- v-icon(v-text='mdiLogin')
+ v-btn(v-if='!$auth.loggedIn' icon nuxt to='/login' :title='$t("common.login")' :aria-label='$t("common.login")')
+ v-icon(v-text='mdiLogin')
- client-only
- v-menu(v-if='$auth.loggedIn' offset-y eager)
- template(v-slot:activator="{ on, attrs }")
- v-btn(icon v-bind='attrs' v-on='on' title='Menu' aria-label='Menu')
- v-icon(v-text='mdiDotsVertical')
- v-list
- v-list-item(nuxt to='/settings')
- v-list-item-icon
- v-icon(v-text='mdiCog')
- v-list-item-content
- v-list-item-title {{$t('common.settings')}}
-
- v-list-item(v-if='$auth.user.is_admin' nuxt to='/admin')
- v-list-item-icon
- v-icon(v-text='mdiAccount')
- v-list-item-content
- v-list-item-title {{$t('common.admin')}}
-
- v-list-item(@click='logout')
- v-list-item-icon
- v-icon(v-text='mdiLogout')
- v-list-item-content
- v-list-item-title {{$t('common.logout')}}
- template(#placeholder)
- v-btn(v-if='$auth.loggedIn' icon aria-label='Menu' title='Menu')
+ client-only
+ v-menu(v-if='$auth.loggedIn' offset-y eager)
+ template(v-slot:activator="{ on, attrs }")
+ v-btn(icon v-bind='attrs' v-on='on' title='Menu' aria-label='Menu')
v-icon(v-text='mdiDotsVertical')
+ v-list
+ v-list-item(nuxt to='/settings')
+ v-list-item-icon
+ v-icon(v-text='mdiCog')
+ v-list-item-content
+ v-list-item-title {{$t('common.settings')}}
+
+ v-list-item(v-if='$auth.user.is_admin' nuxt to='/admin')
+ v-list-item-icon
+ v-icon(v-text='mdiAccount')
+ v-list-item-content
+ v-list-item-title {{$t('common.admin')}}
+
+ v-list-item(@click='logout')
+ v-list-item-icon
+ v-icon(v-text='mdiLogout')
+ v-list-item-content
+ v-list-item-title {{$t('common.logout')}}
+ template(#placeholder)
+ v-btn(v-if='$auth.loggedIn' icon aria-label='Menu' title='Menu')
+ v-icon(v-text='mdiDotsVertical')
- v-btn(icon target='_blank' :href='`${settings.baseurl}/feed/rss`' title='RSS' aria-label='RSS')
- v-icon(color='orange' v-text='mdiRss')
+ v-btn(icon target='_blank' :href='`${settings.baseurl}/feed/rss`' title='RSS' aria-label='RSS')
+ v-icon(color='orange' v-text='mdiRss')
\ No newline at end of file
diff --git a/pages/event/_slug.vue b/pages/event/_slug.vue
index 38f6285a..d1490283 100644
--- a/pages/event/_slug.vue
+++ b/pages/event/_slug.vue
@@ -30,7 +30,7 @@ v-container#event.pa-0.pa-sm-2
.text-h6.p-location.h-adr(itemprop="location" itemscope itemtype="https://schema.org/Place")
v-icon(v-text='mdiMapMarker')
- b.vcard.ml-2.p-name(itemprop="name") {{event.place && event.place.name}}
+ nuxt-link.vcard.ml-2.p-name.text-decoration-none(itemprop="name" :to='`/place/${event.place.name}`') {{event.place && event.place.name}}
.text-subtitle-1.p-street-address(itemprop='address') {{event.place && event.place.address}}
//- tags, hashtags
diff --git a/pages/g/_cohort.vue b/pages/g/_cohort.vue
deleted file mode 100644
index 308b2339..00000000
--- a/pages/g/_cohort.vue
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
- {{cohort}}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/index.vue b/pages/index.vue
index 43bb72d8..95194351 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -1,8 +1,8 @@
-v-container#home(fluid)
+v-container.pa-0
//- Announcements
- #announcements.mx-1.mt-1(v-if='announcements.length')
+ #announcements.ma-2(v-if='announcements.length')
Announcement(v-for='announcement in announcements' :key='`a_${announcement.id}`' :announcement='announcement')
//- Calendar and search bar
@@ -68,7 +68,8 @@ export default {
{ property: 'og:image', content: this.settings.baseurl + '/logo.png' }
],
link: [
- { rel: 'alternate', type: 'application/rss+xml', title: this.settings.title, href: this.settings.baseurl + '/feed/rss' }
+ { rel: 'alternate', type: 'application/rss+xml', title: this.settings.title, href: this.settings.baseurl + '/feed/rss' },
+ { rel: 'alternate', type: 'text/calendar', title: this.settings.title, href: this.settings.baseurl + '/feed/ics' }
]
}
},
diff --git a/pages/p/_place.vue b/pages/place/_place.vue
similarity index 50%
rename from pages/p/_place.vue
rename to pages/place/_place.vue
index 47792734..c9d201f8 100644
--- a/pages/p/_place.vue
+++ b/pages/place/_place.vue
@@ -1,7 +1,6 @@
-
-
- {{place.name}}
+
+ {{place.name}}
{{place.address}}
@@ -12,15 +11,27 @@