CHANGELOG.md 17.3 KB
Newer Older
Anton Koch's avatar
Anton Koch committed
1
2
# Changelog

3
4
This document tracks all important changes to the Motion
Bank Systems Frontend.
Anton Koch's avatar
Anton Koch committed
5

6
7
8
9
The format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Anton Koch's avatar
Anton Koch committed
10

Anton's avatar
Anton committed
11
12
## [Unreleased]

Anton Koch's avatar
Anton Koch committed
13
14
15
16
17
18
19
20
### Added

- `media/create` allows uploading asset files

### Updated

- Updated [mbjs-media](https://gitlab.rlp.net/motionbank/mbjs/media)
to 0.6.1
anton's avatar
anton committed
21
22
23
24


## [2.3.1] - 2020-09-30

25
26
27
28
### Fixed

- `media/edit` page breaks when single ISO timestamp
is returned for selectorValue
anton's avatar
anton committed
29
30
31
32


## [2.3.0] - 2020-08-17

33
34
35
36
### Added

- Duplicate a Timeline on its `edit` page

37
38
39
### Fixed

- Swimlane breaks when loading improperly formatted Annotations
Anton's avatar
Anton committed
40
41
42
43


## [2.2.1] - 2020-07-23

Anton's avatar
Anton committed
44
45
### Added

Anton's avatar
Anton committed
46
- Build time environment variable `UI_COLOR_HASH_SHADE` (default: '100')
Anton's avatar
Anton committed
47
48
49
- Build time environment variable `UI_HIDE_GROUPS` (default: false)
- Build time environment variable `USE_GENERIC_ANNOTATION` (default: false)

Anton's avatar
Anton committed
50
51
52
### Changed

- Router does not execute checkSession on `users.callback` route
Anton's avatar
Anton committed
53
54
55
- Default route for `/piecemaker` redirects conditionally based
on `USE_GENERIC_ANNOTATION`
- Navigation honors `USE_GENERIC_ANNOTATION` build var
Anton's avatar
Anton committed
56

Anton's avatar
Anton committed
57
58
### Fixed

Anton's avatar
Anton committed
59
- Redundant grouping in `SwimLane` component when annotation types are undefined
Anton's avatar
Anton committed
60
- Annotation sort order on `piecemaker.media.annotate_generic` screen
Anton's avatar
Anton committed
61
- `piecemaker.media.annotate_generic` screen shows component display options
Anton's avatar
Anton committed
62

anton's avatar
anton committed
63
64
65

## [2.2.0] - 2020-06-22

anton's avatar
anton committed
66
67
68
69
### Added

- Add media screen uses `publishedAt` field from YouTube metadata as initial
reference date, if available (e.g. live streams)
anton's avatar
anton committed
70
- `Live` indicator for YouTube live streams in post-annotator
71
- Edit media screen allows adding duration for live streams once archived
72
- Duration field on edit media screen
anton's avatar
anton committed
73
- Add media screen refuses to add inaccessible videos
anton's avatar
anton committed
74
- Metadata store relays 'not found' and 'access denied' errors
Anton Koch's avatar
Anton Koch committed
75
- [ELAN](https://archive.mpi.nl) `.eaf` file export for media entries
anton's avatar
anton committed
76

anton's avatar
anton committed
77
78
79
### Changed

- Add media screen explicitly shows option for overriding or auto-detecting media start times
anton's avatar
anton committed
80
- Make Media duration in post-annotator dynamic
anton's avatar
anton committed
81
- Enable CSV export on `timelines/edit`
anton's avatar
anton committed
82

anton's avatar
anton committed
83
84
85
### Fixed

- Exception on edit media screen when media duration is unknown
anton's avatar
anton committed
86
- Exception in `UserNav` when `route.name` is undefined
anton's avatar
anton committed
87

anton's avatar
anton committed
88
89
90
91
### Updated

- [sift](https://github.com/crcn/sift.js/) to v13.1.10

anton's avatar
anton committed
92
93
94

## [2.1.2] - 2020-05-29

anton's avatar
anton committed
95
96
97
98
### Added

- Showing author information in CellAnnotationList is configurable, defaults to false

anton's avatar
anton committed
99
100
101
102
### Fixed

- Wrong cell content in GridDisplay due to reuse of rendered components

103
104
105
### Changed

- Add media screen redirects to media list after submit
anton's avatar
anton committed
106
107
108
109


## [2.1.1] - 2020-05-25

anton's avatar
anton committed
110
111
### Added

112
113
114
115
116
117
118
- Editing functionality for CellAnnotationList
- CellAnnotationList shows errors
- CellAnnotationList shows durations
- GridDisplay can be locked
- Improved content previews in Cells
- Scroll position saved when switching between `Edit` and `View` in GridEditor
- Display style editor for CellImage
anton's avatar
anton committed
119
120
121

### Changed

122
- Grid Packager API activated for new version
anton's avatar
anton committed
123
- AnnotationList cell design
124
125
- Minor GridEditor design updates
- CellText uses MarkdownDisplay component
anton's avatar
anton committed
126

anton's avatar
anton committed
127
128
### Fixed

anton's avatar
anton committed
129
- CalendarTimeMain does not set initial value
anton's avatar
anton committed
130
- Invalid default selector in AnnotationField causing live annotator to break
131
- Minor exceptions in GridEditor
anton's avatar
anton committed
132

anton's avatar
anton committed
133
134
135
136
137
138
139
140
### Removed

- [vue-video-player](https://github.com/surmon-china/vue-video-player) video wrapper

### Updated

- [Video.js](https://videojs.com/) to 7.7.5

anton's avatar
anton committed
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167

## [2.1.0] - 2020-05-06

### Added

- Groups
- Invitation URLs
- Timelines and Grids can have global ACL presets: `View`, `Contribute` and `Free Editing`
- Grids and Timelines have a read-only mode for the `View` preset
- `settings` store module with persistence option in localStorage
- User administration for [Auth0](https://auth0.com/) users directly in app
- Users can change their Login credentials on `users/manage`
- Environment variables: `COMMIT_HASH`, `BRANCH_NAME` and `APP_VERSION`
- Include FxiOS in supported browsers

### Changed

- Grid and Timeline export enabled again
- Improved error tracking with improved [Sentry](https://sentry.io/) configuration
- All items created within a Timeline or Grid now inherit their respective ACL entries

### Fixed

- User profile editing
- Broken API_HOST configuration
- Redirect to original target after authentication

anton's avatar
anton committed
168
169
170
171
172
173
174
175
176
### Updated

- [cote](https://github.com/dashersw/cote)
to 1.0.0
- [mbjs-data-models](https://gitlab.rlp.net/motionbank/mbjs/data-models)
to 2.0.18
- [mbjs-auth-service](https://gitlab.rlp.net/motionbank/mbjs/auth-service)
to 1.0.8

anton's avatar
anton committed
177

anton's avatar
anton committed
178
179
## [2.0.0] - 2020-03-31

Anton's avatar
Anton committed
180
181
### Added

Anton Koch's avatar
Anton Koch committed
182
183
- [cote](https://cote.js.org) Sockend client integration to
connect to [sockets service](https://gitlab.rlp.net/motionbank/microservices/sockets)
Anton's avatar
Anton committed
184
- Cell datatype available as vuex store module
Anton's avatar
Anton committed
185
- SwimLane component in post-annotator and on standalone page
Anton's avatar
Anton committed
186
- Annotations can have durations through target.selector.value
Anton's avatar
Anton committed
187
- PBA vocabularies (titles for pieces)
Anton's avatar
Anton committed
188
- Frontend can be built as an [Electron](https://electronjs.org/)
Anton's avatar
Anton committed
189
app, including a local metadata service as store module `metadata-ffprobe`
Anton's avatar
Anton committed
190
191
192
193
- Mobile device-friendliness
- Breadcrumb navigation
- Buttons now support right-click + open in new tab (still suffers from
[#253](https://gitlab.rlp.net/motionbank/applications/systems-frontend/issues/253))
Anton's avatar
Anton committed
194
- Audio annotations (supported types: `.m4a` and `.mp3`) can be added
Anton's avatar
Anton committed
195
under `media/create` (playback possible using forked
Anton's avatar
Anton committed
196
[vue-video-player](https://github.com/dasantonym/vue-video-player))
Anton's avatar
Anton committed
197
- Export timelines as CSV
Anton's avatar
Anton committed
198
- Mobile compatiblity for MoSys Editor
199
200
- The file `statics/env.js` can be overwritten to configure
the frontend at runtime
201
- Authentication service attempts silent login when token expires
anton's avatar
anton committed
202
- [mbjs-auth-service](https://gitlab.rlp.net/motionbank/mbjs/auth-service)
Anton's avatar
Anton committed
203
204
205
206
207
208

### Changed

- Videos always have title annotations
- Metadata uses video duration from annotation
- Annotation's target.selector.value conforms to standard
Anton's avatar
Anton committed
209
210
211
- VideoPlayer uses [privacy-enhanced mode](https://support.google.com/youtube/answer/171780)
for YouTube sources to be GDPR compliant
- VideoPlayer uses [dnt](https://github.com/vimeo/player.js/#embed-options)
Anton's avatar
Anton committed
212
(do not track) option for showing Vimeo media for GDPR compliance
Anton's avatar
Anton committed
213
214
215
216
217
- Basic colors, look & feel
- New post annotator layout
- Vocabulary menu layout and functionality
- Navigation redesign
- MoSys redesign
Anton's avatar
Anton committed
218
- Renamed `Video` to `Media` throughout project
Anton's avatar
Anton committed
219

Anton's avatar
Anton committed
220
221
222
### Updated

- [mbjs-data-models](https://gitlab.rlp.net/motionbank/mbjs/data-models)
anton's avatar
anton committed
223
  to version 2.0.0
Anton's avatar
Anton committed
224
- [mbjs-quasar](https://gitlab.rlp.net/motionbank/mbjs/quasar)
Anton's avatar
Anton committed
225
  to version 2.2.0
Anton's avatar
Anton committed
226
- [mbjs-api-client](https://gitlab.rlp.net/motionbank/mbjs/api-client)
Anton's avatar
Anton committed
227
  to version 2.1.3
Anton's avatar
Anton committed
228

Anton's avatar
Anton committed
229
230
231
232
233
234
### Fixed

- Sync screen
- Timecode millisecond display
- Video player scaling issue

Anton's avatar
Anton committed
235
236
### Removed

Anton's avatar
Anton committed
237
- Unused store modules `forms`, `conversions` and `timecodes`
Anton's avatar
Anton committed
238
- Routes `media/ingest` and `timelines/timecode`
Anton's avatar
Anton committed
239

Anton's avatar
Anton committed
240

anton's avatar
anton committed
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
## [1.3.10] - 2020-02-14

### Added

- Searchable global Piecemaker index

### Updated

- sift module

### Fixed

- Escape semicolons in CSV export
- Missing i18n string for `Index` button

## [1.3.9] - 2019-12-18

### Added

- Annotation table allows export as CSV (including current
search query)

## [1.3.8] - 2019-12-15

### Added

- Table for viewing, editing and searching annotations

## [1.3.7] - 2019-11-15

### Added

- [Vue integration](https://docs.sentry.io/platforms/javascript/vue/)
for sentry

## [1.3.6] - 2019-10-31

### Changed

- Auth service attempts silent login
- Router checks session before each route change

### Fixed

- API client checks auth session before each request

### Updated

- Update mbjs-api-client to v2.1.3


## [1.3.5] - 2019-10-02

### Changed

- Allow non-owner to tag videos

### Updated

- Update mbjs-quasar to v1.5.2


## [1.3.4] - 2019-05-07

### Changed

- CellVideo shows volume panel for videos


## [1.3.3] - 2019-05-04

### Fixed

- Scaling issues in YouTube player in MoSys grids


## [1.3.2] - 2019-04-15

### Fixed

- Removed CSS updates from VideoPlayer component to
temporarily fix scaling issue on sync page


Anton's avatar
Anton committed
325
## [1.3.1] - 2019-04-06
Anton Koch's avatar
Anton Koch committed
326

Anton's avatar
Anton committed
327
328
329
330
### Changed

- MoSys VideoCells only load content when visible

Anton's avatar
Anton committed
331
332
333
334
### Fixed

- Resource cache uses the right env variable

Anton's avatar
Anton committed
335
336
337

## [1.3.0] - 2019-03-26

338
339
### Added

Anton's avatar
Anton committed
340
341
#### MoSys

Anton's avatar
Anton committed
342
- AnnotationList and Video cells deactivate off visible area
Anton's avatar
Anton committed
343
- AnnotationList has an additional tab layout
Anton's avatar
Anton committed
344
- AnnotationList shows formatted Markdown
345
- Exported Grid packages contain all linked grids as well
346
347
348
- Grid URLs accept the query parameter `datetime` specifying an
ISO datetime string (urlencoded) to set the time for video
player cells
349
350
- Grid URLs accept the query parameter `x` specifying an initial
horizontal cell index
Anton's avatar
Anton committed
351
- Image and Title cells can have links
352
353
- AnnotationList cell allows filtering annotations by simple
string or [Regular Expression](https://www.regular-expressions.info/quickstart.html)
Anton's avatar
Anton committed
354
355
- CellEditor adds start and duration filters for AnnotationList
and Video cells
356
- Cells display additional info in editor (class name, author name)
Anton's avatar
Anton committed
357
- CellText uses [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)
Anton's avatar
Anton committed
358
to format text content
Anton's avatar
Anton committed
359
- Grids can have external and embedded stylesheets
360
defined on their 'edit' page (requires 'cssediting' feature)
Anton's avatar
Anton committed
361
- Cells additionally use their annotation target's
362
363
`styleClass` property (can be set in cell context menu,
requires 'cssediting' feature)
Anton's avatar
Anton committed
364
365
366
367
368
369
- Grids can be exported and imported like timelines
- Access control menu available for MoSys grids
- 'Documents' source tab (so far only shows images)

#### General

Anton's avatar
Anton committed
370
- Import timeline/grid now allows overriding author for all items
371
- Docker image already builds with the nginx SPA config
372
373
- The generic Vuex modules can use optional caching in memory
(activate with USE_RESOURCE_CACHE env variable)
374
375
376
377
- Generic vuex resources allow selection of returned
properties through array of strings
- Metadata store module caches responses from the
transcoder service until app reload
Anton's avatar
Anton committed
378
- UI version in site footer links to changelog
379
380
381

### Changed

Anton's avatar
Anton committed
382
- VideoCell hides volume control
Anton's avatar
Anton committed
383
- Text size in grids is relative to window height
Anton's avatar
Anton committed
384
385
- MoSys cell styling
- VideoPlayer styling
386
- Updated [mbjs-data-models](https://gitlab.rlp.net/motionbank/mbjs/data-models)
Anton's avatar
Anton committed
387
to 0.1.3 ([release_0_1](https://gitlab.rlp.net/motionbank/mbjs/data-models/commits/release_0_1)
388
branch)
389
390
- Video and AnnotationList cells now use [luxon](https://moment.github.io/luxon/)
DateTime and Interval objects
Anton's avatar
Anton committed
391
- AnnotationList cell's input field is now optional, defaults to off 
Anton's avatar
Anton committed
392
- Layout for MoSys Cells: AnnotationList, Title, Video and InternalLink
Anton's avatar
Anton committed
393
- Renamed 'mosysGridEditorStore' vuex module to 'mosys'
394
395
396
397
398
399
400
401
402
403
404
- Updated
[mbjs-api-client](https://gitlab.rlp.net/motionbank/mbjs/api-client)
to version 2.0.0
- Renamed 'Assets' to 'Documents' in screens and
navigation, Auth0 feature now also needs to be 'documents'
- Updated
[mbjs-quasar](https://gitlab.rlp.net/motionbank/mbjs/quasar)
to version 1.4.3
- Moved ACL functionality to
[mbjs-quasar](https://gitlab.rlp.net/motionbank/mbjs/quasar)
module
405

406
407
### Fixed

Anton's avatar
Anton committed
408
- Time and date selection was broken in last release
Anton's avatar
Anton committed
409
- Active annotation highlighting in MoSys AnnotationList
410
411
412
413
- Deep links into post-annotator no longer fail when
lots of annotations need to be loaded
- Delete map no longer fails when encountering access
denied errors (still suffers from
anton's avatar
anton committed
414
[#119](https://gitlab.rlp.net/motionbank/applications/systems-frontend/issues/119))
415

Anton's avatar
Anton committed
416
417
418
419
420
### Removed

- Obsolete `MessengerComponent` as component events travel
via `this.$root`

421
422
423

## [1.2.1] - 2019-02-15

424
425
### Fixed

426
427
428
429
430
431
- Post-annotator timestamps display correct values,
independent of timezone or DST
- currentIndex property no longer throws when attempting
to scroll to invalid annotation index
- Timestamps in post-annotator are no longer being cut
off, display hours as well
Anton's avatar
Anton committed
432

433

Anton's avatar
Anton committed
434
435
## [1.2.0] - 2019-02-14

Anton's avatar
Anton committed
436
437
### Added

438
439
440
441
442
443
444
445
- Post annotator accepts annotation UUIDs as a hash
value and automatically jumps there on load
- Property 'originalTitle' (if title is overridden)
added to result in metadata store
- Very basic search page for timelines added,
accessible only with 'search' feature permission
- API client (and its associated resources' "find"
actions) now accept regular expressions
Anton's avatar
Anton committed
446
- Resource 'documents' available in the store
447
448
449
450
451
- 'Assets' feature allows uploading of files to
personal S3 compatible bucket
- 'Packager' feature allows export of MoSys grids
as static packages to be hosted in any webspace,
without the need of Motion Bank APIs
Anton's avatar
Anton committed
452

453
454
### Fixed

455
456
457
458
459
460
461
462
463
464
465
466
467
468
- Automatic scrolling to annotations when video
player plays in post annotator
- Video titles are no longer removed when saving
video with same title as before
- Parameter 'feature' can be added to route metadata
to allow access control through Auth0 app metadata
- Exception when passing an id (URI) to ACL store
instead of a UUID
- Incompatibilities in MoSys cells (Video,
AnnotationList)
- App startup no longer breaks on Microsoft Edge
(works from version 15+)
- Perform date related queries to MongoDB with
properly formatted timezones (see:
anton's avatar
anton committed
469
[#106](https://gitlab.rlp.net/motionbank/applications/systems-frontend/issues/106))
470

471
472
### Changed

473
474
475
476
477
478
479
480
- userHasFeature moved to
[mbjs-quasar](https://gitlab.rlp.net/motionbank/mbjs/quasar)
- "More Info" button on welcome page now links to
medium article
- MoSys components included through git submodule from
[quasar-components-mosys](https://gitlab.rlp.net/motionbank/mbjs/quasar-components-mosys)
- Shared components included through git submodule from
[quasar-components-shared](https://gitlab.rlp.net/motionbank/mbjs/quasar-components-shared)
481

Anton's avatar
Anton committed
482
483
### Updated

484
485
- [mbjs-api-client](https://gitlab.rlp.net/motionbank/mbjs/api-client)
now at version 1.1.0
486

487

488
489
490
491
## [1.1.1] - 2019-01-28

### Fixed

492
493
- Recursive setting of ACL for a timeline's associated
annotations now traverses the full relational depth.
494

Anton's avatar
Anton committed
495

496
497
## [1.1.0] - 2018-12-11

Anton Koch's avatar
Anton Koch committed
498
499
### Added

500
- Edit video screen allows moving video to another timeline
Anton Koch's avatar
Anton Koch committed
501
- Video list shows timeline title
502
503
504
505
506
507
508
509
510
511
512
- Data tables use an optional requestTransform function
to process rows on each data update
- Info button in the post-annotator shows video metadata
(so far only title)
- Hyperlinks in annotations are clickable in the
post-annotator
- Limited markdown support for annotations
(allowed tags: 'b', 'i', 'em', 'strong', 'a', 'br', 'p')
- Videos can be tagged
- Vuex module 'tags' - stores and retrieves tags as
annotations
Anton Koch's avatar
Anton Koch committed
513

Anton Koch's avatar
Anton Koch committed
514
515
### Changed

516
517
- Video list is sorted descending on reference
date by default
Anton Koch's avatar
Anton Koch committed
518
- Look of top right buttons in post-annotator
519
520
521
522
523
524
- Users need to explicitly click 'edit' to change
an annotation in the post-annotator
- External titles stored as annotations are retrieved
within the metadata store module
- BrowserWarning and MarkdownDisplay components moved to
[mbjs-quasar](https://gitlab.rlp.net/motionbank/mbjs/quasar)
Anton Koch's avatar
Anton Koch committed
525
- Readme info
Anton Koch's avatar
Anton Koch committed
526
- Pinned and updated runtime dependencies
Anton Koch's avatar
Anton Koch committed
527

Anton Koch's avatar
Anton Koch committed
528
529
### Fixed

530
531
- Post-annotation no longer fails when the duration
of a video cannot be retrieved
Anton Koch's avatar
Anton Koch committed
532
- Editing external title annotations
533
534
- Tables are properly searchable
- Timeline list updates after deleting an item
Anton Koch's avatar
Anton Koch committed
535

Anton Koch's avatar
Anton Koch committed
536
537
538
539
540
### Removed

- Old Github badges, CI and code review configs


Anton Koch's avatar
Anton Koch committed
541
542
543
544
545
546
547
548
549
## [1.0.0] - 2018-12-04

### Added

- Changelog document

### Changed

- Start proper versioning at 1.0.0
Anton Koch's avatar
Anton Koch committed
550
551


anton's avatar
anton committed
552
553
[Unreleased]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v2.3.1...release_2_3
[2.3.1]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v2.3.0...v2.3.1
anton's avatar
anton committed
554
[2.3.0]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v2.2.1...v2.3.0
Anton's avatar
Anton committed
555
[2.2.1]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v2.2.0...v2.2.1
anton's avatar
anton committed
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
[2.2.0]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v2.1.2...v2.2.0
[2.1.2]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v2.1.1...v2.1.2
[2.1.1]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v2.1.0...v2.1.1
[2.1.0]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v2.0.0...v2.1.0
[2.0.0]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.10...v2.0.0
[1.3.10]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.9...v1.3.10
[1.3.9]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.8...v1.3.9
[1.3.8]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.7...v1.3.8
[1.3.7]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.6...v1.3.7
[1.3.6]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.5...v1.3.6
[1.3.5]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.4...v1.3.5
[1.3.4]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.3...v1.3.4
[1.3.3]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.2...v1.3.3
[1.3.2]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.1...v1.3.2
[1.3.1]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.3.0...v1.3.1
[1.3.0]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.2.1...v1.3.0
[1.2.1]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.2.0...v1.2.1
[1.2.0]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.1.1...v1.2.0
[1.1.1]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.1.0...v1.1.1
[1.1.0]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/v1.0.0...v1.1.0
[1.0.0]: https://gitlab.rlp.net/motionbank/applications/systems-frontend/compare/initial...v1.0.0