Compare commits
1 Commits
main
..
4fdc45a205
| Author | SHA1 | Date | |
|---|---|---|---|
| 4fdc45a205 |
+1
-1
@@ -12,7 +12,7 @@ COPY . /build
|
||||
RUN npm run postinstall && npm run generate && npm run lint
|
||||
#RUN yarn start:ci & yarn wait && yarn test:cypress
|
||||
|
||||
FROM amd64/nginx:1.30.0@sha256:56b5242e586f44c59e6de3b831207225c810ed23bb22d67e8e0af902a0c2ed88
|
||||
FROM amd64/nginx:1.29.5@sha256:c2a63cf3b2905e3ff73b0746cbd79e4d5b88fb70c56e9ce63d6537c1e5cc68d8
|
||||
MAINTAINER Joakim Olsson <joakim@unbound.se>
|
||||
|
||||
COPY --from=builder /build/.output/public/ /usr/share/nginx/html/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<v-card flat variant="outlined" rounded="xl">
|
||||
<v-card-title v-if="event.band">
|
||||
<h3 class="text-h6 mb-0">
|
||||
<v-card-title v-if="event.band" primary-title>
|
||||
<h3 class="headline mb-0">
|
||||
<v-icon
|
||||
v-if="hasUser"
|
||||
class="ml-1 mr-1 text-medium-emphasis"
|
||||
@@ -17,6 +17,7 @@
|
||||
<v-row dense>
|
||||
<v-col
|
||||
cols="12"
|
||||
xs="12"
|
||||
sm="6"
|
||||
>
|
||||
<strong class="mr-1" v-text="t('events.date')" />{{
|
||||
@@ -24,7 +25,7 @@
|
||||
}}
|
||||
({{ weekday }} {{ daysUntil }})
|
||||
</v-col>
|
||||
<v-col v-if="event.time" cols="12" sm="6">
|
||||
<v-col v-if="event.time" cols="12" xs="12" sm="6">
|
||||
<strong class="mr-1" v-text="t('events.time')" />{{
|
||||
event.time
|
||||
}}
|
||||
@@ -33,6 +34,7 @@
|
||||
<v-row v-if="event.danceHall" dense>
|
||||
<v-col
|
||||
cols="12"
|
||||
xs="12"
|
||||
sm="6"
|
||||
>
|
||||
<strong class="mr-1" v-text="t('events.hall')" />
|
||||
@@ -48,6 +50,7 @@
|
||||
</v-col>
|
||||
<v-col
|
||||
cols="12"
|
||||
xs="12"
|
||||
sm="6"
|
||||
>
|
||||
<strong class="mr-1" v-text="t('events.city')" />
|
||||
@@ -63,6 +66,7 @@
|
||||
</v-col>
|
||||
<v-col
|
||||
cols="12"
|
||||
xs="12"
|
||||
sm="6"
|
||||
>
|
||||
<strong class="mr-1" v-text="t('events.municipality')" />
|
||||
@@ -80,6 +84,7 @@
|
||||
</v-col>
|
||||
<v-col
|
||||
cols="12"
|
||||
xs="12"
|
||||
sm="6"
|
||||
>
|
||||
<strong class="mr-1" v-text="t('events.state')" />
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<v-row v-for="event in events" :key="event.id">
|
||||
<v-col cols="12">
|
||||
<v-row v-for="event in events" :key="event.id" wrap>
|
||||
<v-col xs="12">
|
||||
<event-card
|
||||
:event="event"
|
||||
:has-user="hasUser"
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div :key="isAuthenticated ? 'true' : 'false'">
|
||||
<v-container :key="range" fluid class="app-fade-in">
|
||||
<v-row v-if="!isAuthenticated">
|
||||
<v-col cols="12">
|
||||
<v-container :key="range" fluid grid-list-md class="app-fade-in">
|
||||
<v-row v-if="!isAuthenticated" wrap>
|
||||
<v-col xs="12">
|
||||
<p><b v-text="t('events.login')" /></p>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col cols="12">
|
||||
<v-row wrap>
|
||||
<v-col xs="12">
|
||||
<v-text-field
|
||||
v-model="origin"
|
||||
variant="underlined"
|
||||
@@ -16,7 +16,7 @@
|
||||
:placeholder="t('origins.geolocation')"
|
||||
>
|
||||
<template #append>
|
||||
<v-tooltip location="top">
|
||||
<v-tooltip top>
|
||||
<template #activator="{ props }">
|
||||
<v-icon
|
||||
icon='mdi-crosshairs-gps'
|
||||
@@ -28,7 +28,7 @@
|
||||
</v-tooltip>
|
||||
</template>
|
||||
<template #prepend>
|
||||
<v-tooltip v-if="isAuthenticated" location="top">
|
||||
<v-tooltip v-if="isAuthenticated" top>
|
||||
<template #activator="{ props }">
|
||||
<v-icon
|
||||
icon='mdi-bookmark-plus-outline'
|
||||
@@ -43,7 +43,7 @@
|
||||
</v-text-field>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-row wrap>
|
||||
<v-col>
|
||||
<v-btn-toggle
|
||||
v-if="smAndUp"
|
||||
@@ -65,12 +65,12 @@
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-row wrap>
|
||||
<v-col cols="12" sm="8">
|
||||
<v-text-field
|
||||
v-model="state.search"
|
||||
variant="underlined"
|
||||
append-icon="mdi-magnify"
|
||||
append-outer-icon="mdi-magnify"
|
||||
:label="t('events.filter')"
|
||||
:placeholder="t('events.filter')"
|
||||
hide-details
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<v-list-item v-for="item in model" :key="item" :title="item">
|
||||
<template #prepend>
|
||||
<v-list-item-action @click="toggleIgnore(type, item)">
|
||||
<v-tooltip location="top">
|
||||
<v-tooltip top>
|
||||
<template #activator="{ props }">
|
||||
<v-icon icon='mdi-delete-outline' v-bind="props" />
|
||||
</template>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div :key="isAuthenticated ? 'true' : 'false'">
|
||||
<v-container fluid class="app-fade-in">
|
||||
<v-row>
|
||||
<v-container fluid grid-list-md class="app-fade-in">
|
||||
<v-row wrap>
|
||||
<v-col cols="12">
|
||||
<v-card>
|
||||
<v-container fluid>
|
||||
<v-row>
|
||||
<v-col cols="12" sm="12" md="4" lg="4">
|
||||
<v-container fluid grid-list-md>
|
||||
<v-row wrap>
|
||||
<v-col xs="12" sm="12" md="4" lg="4">
|
||||
<list
|
||||
:model="bands || []"
|
||||
title-key="filters.band"
|
||||
@@ -14,7 +14,7 @@
|
||||
:toggle-ignore="toggleIgnore"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col cols="12" sm="12" md="4" lg="4">
|
||||
<v-col xs="12" sm="12" md="4" lg="4">
|
||||
<v-row>
|
||||
<v-col cols="12">
|
||||
<list
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<div :key="isAuthenticated ? 'true' : 'false'">
|
||||
<v-container fluid class="app-fade-in">
|
||||
<v-row>
|
||||
<v-col cols="12">
|
||||
<v-container fluid grid-list-md class="app-fade-in">
|
||||
<v-layout row wrap>
|
||||
<v-col xs="12">
|
||||
<v-text-field
|
||||
v-model="origin"
|
||||
variant="underlined"
|
||||
@@ -10,7 +10,7 @@
|
||||
:placeholder="t('origins.geolocation')"
|
||||
>
|
||||
<template #append>
|
||||
<v-tooltip location="top">
|
||||
<v-tooltip top>
|
||||
<template #activator="{ props }">
|
||||
<v-icon
|
||||
icon='mdi-crosshairs-gps'
|
||||
@@ -22,7 +22,7 @@
|
||||
</v-tooltip>
|
||||
</template>
|
||||
<template #prepend>
|
||||
<v-tooltip location="top">
|
||||
<v-tooltip top>
|
||||
<template #activator="{ props }">
|
||||
<v-icon
|
||||
icon='mdi-bookmark-plus-outline'
|
||||
@@ -36,10 +36,10 @@
|
||||
</template>
|
||||
</v-text-field>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row v-for="o in origins" :key="o">
|
||||
<v-col cols="12">
|
||||
<v-tooltip location="top">
|
||||
</v-layout>
|
||||
<v-layout v-for="o in origins" :key="o" row wrap>
|
||||
<v-col xs="12">
|
||||
<v-tooltip top>
|
||||
<template #activator="{ props }">
|
||||
<v-icon
|
||||
icon='mdi-delete-outline'
|
||||
@@ -51,7 +51,7 @@
|
||||
</v-tooltip>
|
||||
<span>{{ o }}</span>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-layout>
|
||||
</v-container>
|
||||
<v-snackbar
|
||||
v-model="snackbar.active"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<v-app :key='locale + isAuthenticated'>
|
||||
<v-navigation-drawer v-model='nav' temporary>
|
||||
<v-list density="compact">
|
||||
<v-navigation-drawer v-model='nav' temporary app>
|
||||
<v-list dense>
|
||||
<v-list-item v-if='isAuthenticated && user' :title='user.name' :prepend-avatar='user.picture' />
|
||||
<v-list-item>
|
||||
<v-switch v-model='darkMode' color='primary' :label="t('app.darkMode')" hide-details class='ms-1' />
|
||||
@@ -35,7 +35,7 @@ v-if='isAuthenticated' link :title="t('app.logout')" prepend-icon='mdi-logout'
|
||||
@click='doLogout' />
|
||||
</v-list>
|
||||
</v-navigation-drawer>
|
||||
<v-app-bar scroll-behavior="hide">
|
||||
<v-app-bar app scroll-off-screen>
|
||||
<v-app-bar-nav-icon @click='nav = !nav' />
|
||||
<v-toolbar-title :title='title' />
|
||||
<v-spacer />
|
||||
|
||||
+1
-13
@@ -18,22 +18,10 @@ const cache = new InMemoryCache({
|
||||
},
|
||||
})
|
||||
|
||||
const STALE_AUTH_ERRORS = new Set([
|
||||
'login_required',
|
||||
'consent_required',
|
||||
'interaction_required',
|
||||
'invalid_grant',
|
||||
'missing_refresh_token',
|
||||
])
|
||||
|
||||
const getToken = async (options: GetTokenSilentlyOptions) => {
|
||||
const nuxtApp = useNuxtApp()
|
||||
const auth0: Auth0VueClient = nuxtApp.$auth0 as Auth0VueClient
|
||||
return await auth0.getAccessTokenSilently(options).catch((err) => {
|
||||
const code = err && typeof err === 'object' && 'error' in err ? (err as { error?: string }).error : undefined
|
||||
if (code && STALE_AUTH_ERRORS.has(code)) {
|
||||
auth0.logout({ openUrl: false }).catch(() => {})
|
||||
}
|
||||
return await auth0.getAccessTokenSilently(options).catch(() => {
|
||||
return undefined
|
||||
})
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@ spec:
|
||||
cpu: 10m
|
||||
memory: 10Mi
|
||||
limits:
|
||||
cpu: 300m
|
||||
memory: 300Mi
|
||||
|
||||
|
||||
|
||||
@@ -66,22 +66,6 @@ export default defineNuxtConfig({
|
||||
},
|
||||
},
|
||||
},
|
||||
optimizeDeps: {
|
||||
include: [
|
||||
'@vue/devtools-core',
|
||||
'@vue/devtools-kit',
|
||||
'@auth0/auth0-vue',
|
||||
'@apollo/client/core',
|
||||
'@apollo/client/link/context',
|
||||
'@apollo/client/link/ws',
|
||||
'@apollo/client/utilities',
|
||||
'@opentelemetry/api',
|
||||
'@vue/apollo-composable',
|
||||
'@grafana/faro-web-sdk',
|
||||
'@grafana/faro-web-tracing',
|
||||
'@opentelemetry/instrumentation-fetch',
|
||||
],
|
||||
},
|
||||
resolve: {
|
||||
dedupe: ['pinia'],
|
||||
},
|
||||
|
||||
Generated
+7181
-6410
File diff suppressed because it is too large
Load Diff
+31
-29
@@ -16,46 +16,48 @@
|
||||
"codegen": "graphql-codegen && eslint graphql/generated/operations.ts --fix"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "20.5.3",
|
||||
"@commitlint/config-conventional": "20.5.3",
|
||||
"@graphql-codegen/cli": "7.0.0",
|
||||
"@graphql-codegen/fragment-matcher": "7.0.0",
|
||||
"@graphql-codegen/typescript": "6.0.0",
|
||||
"@graphql-codegen/typescript-operations": "6.0.0",
|
||||
"@graphql-codegen/typescript-vue-apollo": "5.0.1",
|
||||
"@nuxt/devtools": "3.2.4",
|
||||
"@nuxt/eslint": "1.15.2",
|
||||
"@nuxtjs/i18n": "10.3.0",
|
||||
"@stylistic/eslint-plugin": "5.10.0",
|
||||
"@vue/test-utils": "2.4.10",
|
||||
"esbuild": "0.28.0",
|
||||
"eslint": "10.3.0",
|
||||
"eslint-plugin-simple-import-sort": "13.0.0",
|
||||
"eslint-plugin-vue": "10.9.1",
|
||||
"nuxt": "4.4.4",
|
||||
"@commitlint/cli": "20.4.2",
|
||||
"@commitlint/config-conventional": "20.4.2",
|
||||
"@graphql-codegen/cli": "6.1.2",
|
||||
"@graphql-codegen/fragment-matcher": "6.0.0",
|
||||
"@graphql-codegen/typescript": "5.0.8",
|
||||
"@graphql-codegen/typescript-operations": "5.0.8",
|
||||
"@graphql-codegen/typescript-vue-apollo": "4.1.2",
|
||||
"@nuxt/devtools": "3.2.1",
|
||||
"@nuxt/eslint": "1.15.1",
|
||||
"@nuxtjs/eslint-module": "4.1.0",
|
||||
"@nuxtjs/i18n": "10.2.3",
|
||||
"@stylistic/eslint-plugin": "5.9.0",
|
||||
"@vue/test-utils": "2.4.6",
|
||||
"esbuild": "0.27.3",
|
||||
"eslint": "9.39.3",
|
||||
"eslint-plugin-nuxt": "4.0.0",
|
||||
"eslint-plugin-simple-import-sort": "12.1.1",
|
||||
"eslint-plugin-vue": "10.8.0",
|
||||
"nuxt": "4.3.1",
|
||||
"postcss-html": "1.8.1",
|
||||
"sass": "1.99.0",
|
||||
"stylelint": "17.11.0",
|
||||
"sass": "1.97.3",
|
||||
"stylelint": "17.3.0",
|
||||
"stylelint-config-recommended-vue": "1.6.1",
|
||||
"stylelint-config-standard": "40.0.0",
|
||||
"typescript": "6.0.3",
|
||||
"typescript-eslint": "8.59.2",
|
||||
"typescript": "5.9.3",
|
||||
"typescript-eslint": "8.56.0",
|
||||
"vite-plugin-vuetify": "2.1.3",
|
||||
"vue": "3.5.33",
|
||||
"vue": "3.5.28",
|
||||
"vue-eslint-parser": "10.4.0",
|
||||
"vue-router": "5.0.6",
|
||||
"vuetify": "4.0.6"
|
||||
"vue-router": "5.0.3",
|
||||
"vuetify": "3.12.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apollo/client": "3.14.1",
|
||||
"@auth0/auth0-vue": "2.6.1",
|
||||
"@grafana/faro-web-sdk": "2.5.0",
|
||||
"@grafana/faro-web-tracing": "2.5.0",
|
||||
"@apollo/client": "3.14.0",
|
||||
"@auth0/auth0-vue": "2.5.0",
|
||||
"@grafana/faro-web-sdk": "2.2.4",
|
||||
"@grafana/faro-web-tracing": "2.2.4",
|
||||
"@mdi/font": "7.4.47",
|
||||
"@pinia/nuxt": "0.11.3",
|
||||
"@vue/apollo-composable": "4.2.2",
|
||||
"date-fns": "4.1.0",
|
||||
"graphql": "16.13.2",
|
||||
"graphql": "16.12.0",
|
||||
"graphql-tag": "2.12.6",
|
||||
"pinia": "3.0.4",
|
||||
"pinia-plugin-persistedstate": "4.7.1",
|
||||
|
||||
+1
-4
@@ -17,8 +17,5 @@
|
||||
"stylelint-config-standard"
|
||||
]
|
||||
}
|
||||
],
|
||||
"constraints": {
|
||||
"node": ">=24"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user