Skip to content
Snippets Groups Projects
  1. Apr 12, 2024
  2. Apr 10, 2024
    • Konrad Mohrfeldt's avatar
      refactor: rework calendar · bbf1ddfb
      Konrad Mohrfeldt authored
      Up until now the calendar kept a single record of calendar events. This
      record was modified whenever new or other events needed to be displayed.
      Events were added/changed/removed imperatively (i.e. when
      entering/leaving conflict mode), which goes against the principle of
      unidirectional data flow embraced by Vue and other reactive frameworks.
      
      The calendar is now split into separate components most importantly the
      normal week view and a separate conflict view with separate state
      management. The state management itself has been reworked and improved
      so that it uses unidirectional data flow.
      
      These changes massively improve performance, simplify state management,
      and should make it easier to reason about the code (conflict mode was
      hard!).
      
      fixes #287
      bbf1ddfb
  3. Mar 29, 2024
  4. Mar 28, 2024
  5. Mar 26, 2024
  6. Feb 08, 2024
  7. Nov 08, 2023
  8. Nov 07, 2023
  9. Nov 06, 2023
  10. Nov 01, 2023
  11. Oct 13, 2023
  12. Jun 15, 2023
  13. Apr 09, 2023
  14. Mar 28, 2023
  15. Nov 24, 2022
    • Konrad Mohrfeldt's avatar
      feat: migrate to fullcalender v5 · 14a9ff20
      Konrad Mohrfeldt authored
      vue-full-calendar is not the official Vue package of fullcalendar, is
      only compatible with Vue 2.x, uses the outdated fullcalendar v3 library
      and contains a bunch of huge dependencies like jQuery and moment.
      
      The changes in this commit migrate the dashboard to fullcalendar v5 and
      the official vue component. Apart from that there have been a few
      refactors and fixes. These are:
      
      * remove irrelevant stub event callbacks
      * make view updates reactive instead of imperative
        (see removal of renderView method and introduction of renderWatcher)
      * rename methods to better reflect their purpose
          resolve → enterConflictMode
          resolveEvent → resolveConflict
      * emit events in modals instead of call to methods on this.$parent
      * let → const where applicable to prevent accidental reassignments
      * switch to for-of loops (from for-in) for better readability
      * fix some typos
      
      One other major change is that timeslot and collision data is no longer
      mixed with event data for fullcalendar and is assigned to the
      extendedProps property instead. As mentioned in fullcalendars
      documentation on event parsing [1], any data that fullcalendar does not
      handle on its own is moved into the extendedProps object with the
      explicit recommendation to put them there right from the start. We
      follow that recommendation.
      
      closes #94
      
      [1] https://fullcalendar.io/docs/event-parsing
      14a9ff20
  16. Nov 18, 2022
    • Konrad Mohrfeldt's avatar
      fix: embrace the reactivity · cccbdcca
      Konrad Mohrfeldt authored
      Making imperative DOM API calls to apply CSS classes is
      counter-productive when using a reactive frontend framework like Vue.
      DOM attributes should instead be assigned based on reactive data.
      
      fixes #117 and #118.
      cccbdcca
  17. Nov 10, 2022
  18. Nov 09, 2022
    • Konrad Mohrfeldt's avatar
      feat: migrate to vue3/compat and Vite build system · 202388aa
      Konrad Mohrfeldt authored
      Notable changes:
       * Vue 2.6 to Vue 3 + compat migration.
       * Build system migration from vue-cli/webpack to Vite.
       * Application dependencies like bootstrap-vue, vue-router, vuex,
         or vue-toast-nofitication have been updated, if doing so was
         necessary or advisable for the Vue 3 migration.
       * Static file includes for the oidc-client in oidc_callback.html
         and oidc_callback_silentRenew.html have been removed in favor
         of automatic processing in the build system so that all assets
         are versioned and invalid cache hits are prevented.
      
      Fixes #53 and #110.
      202388aa
  19. Nov 25, 2021
  20. Nov 18, 2021
  21. Jul 23, 2021
  22. Dec 15, 2020
Loading