- Dec 07, 2022
-
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
This is a stopgap measure until we’ve worked on #17 [1] and added a management interface for simple models like funding categories and show types. refs #97 [1] #17
-
Konrad Mohrfeldt authored
Up until now we had two different show selectors based on the number of shows that were available. We now use the same show selector for any number of shows. Apart from that shows are now sorted 1. based on their active state (descending, so inactive last) and 2. their name (ascending, so A-Z) in the show selector so it’s easier to find relevant shows. Other changes: * title handling has been moved into PageHeader component * calendar management has been removed and is now handled locally in the EmissionManager component * inactive shows are badged refs #122
-
Konrad Mohrfeldt authored
Tank only returns an entries property for playlist objects if the entries list would have at least one item. This is a bug [1]. closes #119 [1] tank#46
-
- Dec 06, 2022
-
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
Up until now the application was crammed in a single JavaScript file once bundled. This forces clients to download 1.1MiB of JavaScript all at once. Vite uses dynamic import statements as split-points for bundles. By using dynamic imports for our routes we can delay the loading of some data to a later point in time when the user actually needs it. We should still try to reduce our overall bundle size.
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
closes #125
-
Konrad Mohrfeldt authored
data.start wasn’t always defined so that the generated url would sometimes contain "start=undefined". refs #88
-
Konrad Mohrfeldt authored
* basepath normalization: String.replace is not in-place. * params: unshift adds array items, we wanted to pop the last item.
-
- Dec 05, 2022
-
-
Konrad Mohrfeldt authored
-
- Nov 29, 2022
-
-
Konrad Mohrfeldt authored
It’s nice to be able to select a week in the calendar and share it by simply copying the URL so that another person may view the same week in their browser.
-
Konrad Mohrfeldt authored
This was accidentally removed when migrating to fullcalendar v5 in 14a9ff20.
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
-
- Nov 28, 2022
-
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
Accessing the $parent should only be used in rare cases. Login session handling is already implemented as part of the store, so there is no need to use the App component as handler.
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
URL generation logic is complex and we should handle configuration like basepaths and the use of trailing slashes in a central location to avoid simple, but hard to find mistakes. This change also gets rid of the VUE_APP_API_STEERING_SHOWS env variable, that is just a 'shows/' suffix of the VUE_APP_API_STEERING env variable.
-
Konrad Mohrfeldt authored
-
- Nov 24, 2022
-
-
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
-
Konrad Mohrfeldt authored
-
Konrad Mohrfeldt authored
-
- Nov 18, 2022
-
-
Konrad Mohrfeldt authored
fixes #87
-
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.
-
- Nov 10, 2022
-
-
Konrad Mohrfeldt authored
-
- Nov 09, 2022
-
-
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.
-
- Nov 08, 2022
-
-
Konrad Mohrfeldt authored
moment is still needed as peer dependency but we should’t use it in our own code anymore so we can remove it in the future.
-
Konrad Mohrfeldt authored
We explicitly pass authorization for all requests and so no implicit credentials need to be passed.
-
- Nov 03, 2022
-
-
David Trattnig authored
-
- Oct 26, 2022
-
-
David Trattnig authored
-
- Apr 24, 2022
-
-
Konrad Mohrfeldt authored
The steering API returns HTTP 400 errors for general payload and 409 errors for scheduling conflicts that we didn’t handle yet. fixes #93
-
Konrad Mohrfeldt authored
A simple b-alert list wrapper that handles the standard error format from Django REST framework.
-
Konrad Mohrfeldt authored
Views may want to display a fallback message if the translation key does not exist.
-
Konrad Mohrfeldt authored
The steering API has some deprecated attribute names that we should no longer use. These are: dstart → first_date until → last_date tstart → start_time tend → end_time byweekday → by_weekday These changes in naming have also been applied to variable names, attribute names and translatations in the dashboard code in order to avoid confusion.
-
Konrad Mohrfeldt authored
The currently prevalent API response handling is based on a callback pattern. This has at least two major drawbacks: 1. More broadly it facilitates the use of nested callbacks, which make the code harder to read and clutter stack traces. 2. Our specific callback solution does not follow the traditional node callback pattern that looks like `function (err, data) { ... }`. Instead we have `callback` and `callbackCancel`, none of which are meant to handle actual error/exception objects. The latter makes it hard to write code that is executed irrespective of the specific code path, like in a try-finally clause. In practice it’s also a violation of the separation-of-concerns design principle as it forces error handling to happen in the store function instead of the caller that is best suited to handle error states. This change attempts to facilitate a gradual migration to a Promise-based result handling by it to co-exist with the currently used callback pattern. Callers that don’t provide any callback functions are assumed to handle promises whereas callers that do provide callback functions will see no change in behaviour. This allows us to transition one API-call at a time instead of doing one large and time-consuming refactoring. refs #55
-