SwitchYear.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <!--
  2. Switch year bar
  3. Barre d'alerte qui s'affiche lorsque l'utilisateur n'est pas sur l'année courante.
  4. -->
  5. <template>
  6. <!-- TODO : fonctionnement à valider -->
  7. <UiSystemBar v-if="show" text-color="warning">
  8. {{$t('not_current_year')}}
  9. <a @click="resetYear">
  10. <strong class="text-neutral-strong">
  11. {{$t('not_current_year_reset')}}
  12. </strong>
  13. </a>
  14. </UiSystemBar>
  15. </template>
  16. <script setup lang="ts">
  17. import {useAccessProfileStore} from "~/stores/accessProfile";
  18. import {useOrganizationProfileStore} from "~/stores/organizationProfile";
  19. import {ComputedRef} from "@vue/reactivity";
  20. import {useFormStore} from "~/stores/form";
  21. const accessProfile = useAccessProfileStore()
  22. const organizationProfile = useOrganizationProfileStore()
  23. const { setDirty } = useFormStore()
  24. const show: ComputedRef<boolean> = computed(() => {
  25. return (
  26. accessProfile.historical.past || accessProfile.historical.future ||
  27. (accessProfile.historical.dateStart && accessProfile.historical.dateStart.length > 0) ||
  28. (accessProfile.historical.dateEnd && accessProfile.historical.dateEnd.length > 0) ||
  29. accessProfile.activityYear !== organizationProfile.currentActivityYear
  30. )
  31. })
  32. const resetYear = async () => {
  33. accessProfile.setHistorical(false, true, false)
  34. if (organizationProfile.currentActivityYear) {
  35. accessProfile.activityYear = organizationProfile.currentActivityYear
  36. }
  37. setDirty(false)
  38. window.location.reload()
  39. }
  40. </script>
  41. <style scoped lang="scss">
  42. .v-system-bar {
  43. font-size: 14px;
  44. }
  45. .v-icon {
  46. height: 20px;
  47. margin: 0 6px;
  48. }
  49. </style>