MyTimetable 2019 release notes

The following additions and changes were made in the MyTimetable 2019 releases, listed from new to old. For significant new features or important changes, a link to a separate blog post will be available.

VersionTypeDescriptionMore info
2019.25 (2019-11-03)

BUG

MSSQL JDBC configuration properties not all working correctly


BUG

attributesGrantedAuthoritiesProvider cannot be overridden


MAINTENANCE

S+ NG: use cached V_GLOBAL information for week labels and terms
2019.24 (2019-10-30)

FEATURE

TermTime DP rework: exam activities

FEATURE

Publication rules: 'remove' size of activity

FEATURE

Support new OSIRIS authentication scheme

ENHANCEMENT

Missing index on subscription FindByTimetable

ENHANCEMENT

Option to disable condensing / group by weekly pattern

ENHANCEMENT

Replace jTDS with Microsoft JDBC driver

BUG

GWT: interface not showing correct list of filtered event types for sync

BUG

Mobile: activity size not showing in details

BUG

Admin menu does not show expanded items after navigation

BUG

Provisioning API: GET on user without attributes returns a NPE

BUG

EC remoting does not work with backslashes in usernames

BUG

ES: grouping of activities does not preserve custom attributes


BUG

API: cookie behaviour when requesting a timetable via an elevated token

BUG

Events moved by post-processing are not retrieved correctly


BUG

Admin Requests and errors statistics page misses proper headers on metrics graphs

BUG

GCal: large updates fail and/or are processed very slowly

BUG

GCal: sync tempfailing after user removes event


BUG

Export on overview page broken

BUG

EC: next recovery attempt always empty

BUG

Error handling duplicate events

MAINTENANCE

Remove 'deduplicate' and 'group` parameters from core getSchedule(..) methods

MAINTENANCE

Minimal Spring Boot implementation for MTT Web

MAINTENANCE

Linux systemd unit definition for Spring Boot

MAINTENANCE

EC: retrieve timetables from MTT web

MAINTENANCE

Remove statistics by scheme from admin panel

MAINTENANCE

Upgrade Resilience4j circuit breaker to 1.1.0

MAINTENANCE

Replace web.xml with WebApplicationInitializer

MAINTENANCE

Windows service support for MyTimetable web

MAINTENANCE

Replace deprecated SizeAndTimeBasedFNATP in Logback config

MAINTENANCE

Improve logging of TimetableIndexingTask

MAINTENANCE

Upgrade ical4j to 3.0.11


MAINTENANCE

Remove clustered profile from IDEA run configurations


MAINTENANCE

Merge admin modules into one

MAINTENANCE

Determine outdated dependencies
2019.23 (2019-09-30)

FEATURE

Lookup implementation: datasource-based

ENHANCEMENT

Danish translations part deux

ENHANCEMENT

Update admin panel texts for notifications

ENHANCEMENT

O365 EC: handle ErrorInvalidUser as permanent failure


ENHANCEMENT

Remove exception based logic in MessageSourceChain

BUG

Presto: students timetables cannot be viewed when student is attached to multiple programmes

BUG

API roles should not use userprefs roles

BUG

Class documentation SqlLookup unfinished

BUG

Event misses students when grouping by module

BUG

'{brcypt}' Typo in UPGRADE_NOTES.md

MAINTENANCE

Remove respond-minmax support

MAINTENANCE

Remove html5shiv support

MAINTENANCE

Fail gracefully if EC not available


2019.22 (2019-09-17)

FEATURE

Lookup implementation: SQL-based


BUG

iCal timetables broken

MAINTENANCE

Upgrade mobile Bower dependencies


MAINTENANCE

Upgrade bower dependencies


2019.21 (2019-09-06)

ENHANCEMENT

TermTime: Fine-tune circuitbreaker config

ENHANCEMENT

OAuth migration after Spring Security 5 upgrade

BUG

Removal loop in InfinispanInMemoryDataContainer#storeTimetables() is broken

BUG

Typo in MyTimetable DataSource class


BUG

Outdated link on the Unsupported browser page

MAINTENANCE

IRIS dataprovider fault handling


MAINTENANCE

Fine tune SQL connection properties


2019.20 (2019-08-30)

BUG

Mobile: options/sequences not sorted


2019.19 (2019-08-29)






























FEATURE

Translate MyTimetable to Danish

FEATURE

Auth: flexible granted authorities provider

ENHANCEMENT

Consistently apply entity and timetabletype filters

ENHANCEMENT

MyTimetable EC Windows install instructions / scripts / service runner

ENHANCEMENT

TermTime: disable cookie/session management on API access

BUG

Error logged/incomplete response on 404 without session

BUG

iCal feed can be requested by user without authentication

BUG

S+ NG: SQL Server selecting wrong query plan for module timetable retrieval

BUG

Datasource label translation issue

BUG

Mobile events cannot be opened when sections enabled

BUG

Echo/notifications explanation texts shown in mobile/help

BUG

Message role filtering concurrency issue

BUG

Recording message shows safe:""

BUG

WebUntis data import task is locked

MAINTENANCE

Upgrade NodeJS to latest LTS

MAINTENANCE

Upgrade Yarn to 1.17.3

MAINTENANCE

Upgrade google-http-client-jackson2 to 1.31.0

MAINTENANCE

Upgrade google-oauth-client to 1.30.1

MAINTENANCE

Upgrade icu4j to 64.2

MAINTENANCE

Upgrade adal4j to 1.6.4

MAINTENANCE

Upgrade opencsv to 4.6

MAINTENANCE

Upgrade JAX-B

MAINTENANCE

Upgrade commons-beanutils to 1.9.4

MAINTENANCE

Upgrade commons-io to 2.6

MAINTENANCE

Upgrade resilience4j-circuitbreaker to 0.17.0

MAINTENANCE

Upgrade Apache POI to 4.1.0

MAINTENANCE

Upgrade SonarQube Gradle Plugin to 2.7.1

MAINTENANCE

Upgrade Gradle to 5.6

MAINTENANCE

Upgrade Spring Boot to v2.1.7

MAINTENANCE

Remove Windows authentication support

MAINTENANCE

Remove AD attribute reader

MAINTENANCE

Upgrade commonmark-java to 0.13.0

MAINTENANCE

Upgrade google-api-services-calendar to 1.30.1
2019.18 (2019-08-19)

FEATURE

WebUntis: make type of import configurable

FEATURE

WebUntis: import JSONRPC format


FEATURE

WebUntis API: periodically refresh timetable

FEATURE

WebUntis API: refresh timetable button in admin panel

FEATURE

Lookup implementation: REST API

FEATURE

WebUntis: merge consecutive periods based on period number

ENHANCEMENT

WebUntis API: decouple TSV format from import

ENHANCEMENT

Increase SAML user details flexibility

SECURITY

XSS in values in DataTables in admin panel

BUG

Untis import can be configured without password

BUG

API requests with unknown path extensions broken

BUG

Total count in audit log on user page incorrect

BUG

EC does not start when a WebUntis DS is configured

BUG

MyTimetable does not start due to saml.attribute.roles not being set

BUG

In-Memory DP: find by hostkey is not case insensitive

MAINTENANCE

Upgrade logstash-logback-encoder to v6.1

MAINTENANCE

Upgrade iCal4j to v3.x

MAINTENANCE

Implement type for data sources

MAINTENANCE

Upgrade jsoup to 1.12.1

MAINTENANCE

Upgrade ical4j

MAINTENANCE

Remove unused properties from (non default) resource bundles
2019.17 (2019-07-27)

BUG

Error during Exchange/EWS sync
2019.16 (2019-07-26)

FEATURE

API: add enrollment status

MyTimetable 2019.16: Provisioning enhancements, locale fixes and Java 11

























FEATURE

Add enrollment status to exported events

ENHANCEMENT

MyTimetable EC Linux install instructions / scripts

ENHANCEMENT

User locale should only be saved on explicit selection by user

ENHANCEMENT

Provisioning of additional user properties

ENHANCEMENT

Limit mirror store size by removing attributes

ENHANCEMENT

S+ NG: use cached globals information on empty view

ENHANCEMENT

Use request/cookie locale on invalid stored locale

ENHANCEMENT

Tweak schema of notifications

BUG

Option selection not working when other timetables have the same module

BUG

Bower does not prune old dependencies

BUG

Use of multiple TimetableSuggestionStrategies in EC is broken

BUG

API 401 returns incomplete page

SECURITY

Upgrade jQuery

SECURITY

Prevent reverse tabnabbing

MAINTENANCE

Upgrade to Spring Framework 5.x / Spring Boot 2.x

MAINTENANCE

AdoptOpenJDK 11 compatibility

MAINTENANCE

Upgrade to Spring Security 5

MAINTENANCE

Update IntelliJ configs for 2019.1 / make it work

MAINTENANCE

Upgrade to Flyway 5

MAINTENANCE

Remove old TermTime provider

MAINTENANCE

Upgrade to Gradle 5

MAINTENANCE

Typo in EchoResponseErrorHandler class name

MAINTENANCE

Use consistent/fixed data directory

MAINTENANCE

Remove OpenSSO authentication

MAINTENANCE

Remove CAS authentication

MAINTENANCE

Remove Zimbra authentication
2019.15 (2019-06-28)

BUG

TermTime evaluates Event custom attributes for Bookings


BUG

DataTables Bootstrap styling is broken

BUG

EC sync does not update user subscriptions


BUG

Switching locales in admin panel triggers HTTP 500

SECURITY

Bootstrap upgrade


MAINTENANCE

Upgrade Thymeleaf to v3.0.11

MAINTENANCE

Upgrade Infinispan to version 9.4.15


MAINTENANCE

Upgrade Spring Dependency Management Plugin to v1.0.8

MAINTENANCE

Upgrade to HikariCP 3


MAINTENANCE

Upgrade Spring Security OAuth2

MAINTENANCE

Unintentional re-binding of AuthorizationRequest to request attributes in UserApprovalController
2019.14 (2019-06-24)

FEATURE

TermTime DP rework: support room booking activity types


ENHANCEMENT

TermTime NG: ignore allday bit

BUG

TermTime NG: take building/campus into account when assigning child ID of building timetable

BUG

Bower not loading dependencies after upgrade


BUG

Localized property may fail depending on locale order

BUG

Do not notify EC of anonymous user subscription changes

MAINTENANCE

TermTimeNG: rename Timeframe.id field

MAINTENANCE

Upgrade Gulp dependencies

MAINTENANCE

Upgrade Spring Security OAuth


MAINTENANCE

Upgrade Moment.js

MAINTENANCE

Upgrade handlebars


MAINTENANCE

Upgrade Xerces

MAINTENANCE

Upgrade Guava


MAINTENANCE

Upgrade Jackson

MAINTENANCE

Upgrade Waffle
2019.13 (2019-06-17)

FEATURE

Add Danish locale

FEATURE

TermTime DP rework: room booking activities

Renewed Term Time provider

MAINTENANCE

Upgrade Bower

MAINTENANCE

Upgrade Yarn to latest version


MAINTENANCE

Gradle: remove Javadoc task


MAINTENANCE

Upgrade node-tar


MAINTENANCE

NodeJS upgrade
2019.12 (2019-06-12)

ENHANCEMENT

TermTime NG: support custom attributes on eventsRenewed Term Time provider

ENHANCEMENT

Read property files as UTF-8

BUG

TermTime NG: show 'Other timetables' category for staff/student/studentgroup timetables

BUG

Admin: user details page broken when filtering eventtypes

BUG

TermTime NG: null values in tag list create exceptions
2019.11 (2019-06-07)

FEATURE

TermTime NG: filter activity types on tagRenewed Term Time provider

FEATURE

TermTime NG: filter timetablefilter on tags

FEATURE

TermTime NG: filter timetables on tags

FEATURE

TermTime DP rework: show module offers for staff as child subscriptions

FEATURE

TermTime DP rework: show periods

ENHANCEMENT

TermTime NG: take into account allDay bit

ENHANCEMENT

TermTime NG: process tags on activities

ENHANCEMENT

API: publish draft bit in API responses


ENHANCEMENT

S+ NG: child timetable filtering

BUG

S+ NG: Zone/location timetables may assign incorrect child ids


2019.10 (2019-05-22)



























FEATURE

TermTime DP rework: show module offers for course as child subscriptionsRenewed Term Time provider

FEATURE

TermTime DP rework: show module offers for student as child subscriptions

FEATURE

TermTime DP rework: show module offers for student group as child subscriptions

FEATURE

TermTime DP rework: filter module offers on course

FEATURE

TermTime DP rework: view building timetable

FEATURE

TermTime DP rework: list and search building timetables

FEATURE

TermTime DP rework: filter rooms on building

FEATURE

TermTime DP rework: show rooms for building as child subscriptions

FEATURE

TermTime DP rework: publication flags

FEATURE

TermTime DP rework: filter module offers on department

FEATURE

TermTime DP rework: filter student groups on department

FEATURE

TermTime DP rework: filter students groups on course

ENHANCEMENT

Term Time NG: Allow configuring option name for repeatgroupid-based options

ENHANCEMENT

Term Time NG: search in all locales


ENHANCEMENT

TermTimeNG: proper null check

BUG

ExportedEventTextRenderer does not render 'recorded' state

BUG

EventDetailsPresenter does not render 'recorded' state

BUG

TermTimeNG: fetching child options by host key throws IllegalArgumentException

BUG

TermTimeNG: course child options broken


BUG

Term Time NG: Module offer timetable broken

BUG

XML API returns 500s on various endpoints

BUG

GWT error popup icon black instead of white

BUG

EventConcurrencyUtil erroneously ignores concurrency 'concurrency within a module' when two events have no module code

MAINTENANCE

Echo event: fix event attribute old/new value naming

MAINTENANCE

SAML signature hash algorithm default to SHA-256


MAINTENANCE

Deprecation warnings

MAINTENANCE

Update Spring Boot dependencies to 1.5.21

MAINTENANCE

TermTimeNG: development config

MAINTENANCE

TermTime DP rework: use nullable department information from activity


2019.9 (2019-04-29)

BUG

S+ NG: ModuleGroupDepartment filter broken

BUG

Mobile: does not render in IE11
2019.8 (2019-04-25)


FEATURE

TermTime DP rework: view course timetableRenewed Term Time provider

FEATURE

TermTime DP rework: view student group timetable

FEATURE

TermTime DP rework: view room timetable

FEATURE

TermTime DP rework: list and search course timetables

FEATURE

TermTime DP rework: list and search student group timetables

FEATURE

TermTime DP rework: list and search room timetables

FEATURE

TermTime DP rework: filter courses on department

FEATURE

TermTime DP rework: filter rooms on department

FEATURE

TermTime DP rework: support activity types

FEATURE

TermTime DP rework: notes for activities

FEATURE

TermTime DP rework: module information for activities

FEATURE

TermTime DP rework: show size of activity

FEATURE

TermTime DP rework: add option selection based on repeat activities

BUG

Mobile API message refresh


BUG

Various bugs in location entity info page

MAINTENANCE

Upgrade to Tomcat 9
2019.7 (2019-04-19)


FEATURE

TermTime DP rework: staff for activitiesRenewed Term Time provider

BUG

S+ NG: PosGroup filter not working for Modules/StudentSets

MAINTENANCE

Upgrade Infinispan


2019.6 (2019-04-18)




FEATURE

S+ NG: implement PosGroupDepartment filter type

FEATURE

TermTime DP rework: view module offer timetableRenewed Term Time provider

SECURITY

CSRF possible on /logout

MAINTENANCE

Upgrade Mockito


MAINTENANCE

Spring Boot upgrade


2019.5 (2019-04-15)

BUG

Location entity info page lookup by key not working


2019.4 (2019-04-11)















FEATURE

S+ NG: support option equivalence check


FEATURE

TermTime DP rework: list and search module offer timetables

Renewed Term Time provider

FEATURE

TermTime DP rework: view student timetable

FEATURE

TermTime DP rework: view staff timetable

FEATURE

TermTime DP rework: list and search student timetables

FEATURE

TermTime DP rework: list and search staff timetables

FEATURE

TermTime DP rework: filter staff on department

ENHANCEMENT

S+ NG: support activity type filtering

ENHANCEMENT

S+ NG: Use AbstractCachingEntityValuesRepository for Zones

ENHANCEMENT

S+: support more than 100 OSIRIS groups

BUG

S+: Module name SpEL expression not working

BUG

EC EWS autodiscover failing on O365

BUG

Individual export (module view) incomplete


BUG

API: insufficient scope returns a generic error

MAINTENANCE

Remove LDAP / LDAP-AD authenticator

MAINTENANCE

Remove SAP SSO authenticator

MAINTENANCE

Adjust Postgres pool sizes

2019.3 (2019-03-29)

FEATURE

S+ NG: LocationEntityProvider / location info page

2019.2 (2019-03-26)

FEATURE

Messages: add API to manage messages

ENHANCEMENT

Circuitbreakers on RestTemplates


ENHANCEMENT

S+ NG provider: cache department information

BUG

S+ NG: WRB timetable type missing filter

2019.1 (2019-03-21)






FEATURE

Rule engine: add import/export

ENHANCEMENT

S+ NG: Limit studentset retrieval for large activities

ENHANCEMENT

S+ NG: support event sequences

BUG

iCal DP hostkey lookup stability


BUG

S+ NG: FORCESEEK query hint issue

MAINTENANCE

Reduce code sharing between GWT and backend

MAINTENANCE

Remove ZRS and UNIT-e dataproviders

MAINTENANCE

Setup release processRelease early, release often