| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <!--
- Switch year bar
- Barre d'alerte qui s'affiche lorsque l'utilisateur n'est pas sur l'année courante.
- -->
- <template>
- <!-- TODO : fonctionnement à valider -->
- <UiSystemBar v-if="show" class="theme-warning flex-column">
- {{ $t('not_current_year') }}
- <a
- class="text-decoration-none on-warning"
- style="cursor: pointer"
- @click="resetYear"
- >
- <strong class="pl-2 text-neutral-strong">
- {{ $t('not_current_year_reset') }}
- </strong>
- </a>
- </UiSystemBar>
- </template>
- <script setup lang="ts">
- import type { ComputedRef } from 'vue'
- import { useAccessProfileStore } from '~/stores/accessProfile'
- import { useOrganizationProfileStore } from '~/stores/organizationProfile'
- import { useFormStore } from '~/stores/form'
- import Access from '~/models/Access/Access'
- import { usePageStore } from '~/stores/page'
- import { useEntityManager } from '~/composables/data/useEntityManager'
- import { useRefreshProfile } from '~/composables/data/useRefreshProfile'
- const { em } = useEntityManager()
- const accessProfile = useAccessProfileStore()
- const organizationProfile = useOrganizationProfileStore()
- const { setDirty } = useFormStore()
- const pageStore = usePageStore()
- const { refreshProfile } = useRefreshProfile()
- const show: ComputedRef<boolean> = computed(() => {
- return (
- accessProfile.historical.past ||
- accessProfile.historical.future ||
- (accessProfile.historical.dateStart &&
- accessProfile.historical.dateStart.length > 0) ||
- (accessProfile.historical.dateEnd &&
- accessProfile.historical.dateEnd.length > 0) ||
- accessProfile.activityYear !== organizationProfile.currentActivityYear
- )
- })
- const resetYear = async () => {
- const defaultValues = {
- historical: {
- future: false,
- past: false,
- present: true,
- },
- activityYear: organizationProfile.currentActivityYear,
- }
- // Il faut ajouter un patch sur le profile ici
- setDirty(false)
- pageStore.loading = true
- await em.patch(Access, accessProfile.currentAccessId, defaultValues)
- if (import.meta.server) {
- // Force profile refresh server side to avoid a bug where server and client stores diverge on profile refresh
- await refreshProfile()
- }
- window.location.reload()
- }
- </script>
- <style scoped lang="scss">
- .v-system-bar {
- font-size: 14px;
- }
- .v-icon {
- height: 20px;
- margin: 0 6px;
- }
- #resetLink:hover {
- cursor: pointer;
- }
- </style>
|