...
- Role-based security — For each timetable type it is possible to specify which roles should have access. These access permissions are enforced across all channels (desktop, mobile and API). Roles can be retrieved from various sources, like LDAP groups or a custom database.
- Field formatter changes — The formatter that is used for each field shown in the interface (e.g., description, type name, module code) has been rewritten and now uses SpEL expressions. This makes it possible to parse and show the timetabling data in many formats, combine fields, and even retrieve extra data from external data sources to show in the user interface.
- Timetable suggestions — The former 'add from Blackboard' timetable option has been reworked to a more generic 'add timetable suggestions' option. This option makes it possible to suggest timetables to the user (retrieved from for instance a student information system) without automatically adding them. This proves useful if the information in the other system is not 100% reliable, but still of use to most users.
- OAuth token removal has been reintroduced — It is now possible to remove OAuth authorisations given to applications from the Settings menu. This was removed / unimplemented in 2.0 and now has been re-added.
- Several improvements to text labels and the interface:
- Labels in list views have been improved.
- iCal has been renamed to Apple Calendar.
- Check box and radio button styling is now the same across all platforms.
- Mobile interface timetable types — The mobile interface supports more timetable types (student, activity group).
- Mobile interface browser warning — The mobile interface shows a warning message if it is visited by an unsupported browser (desktop browsers or old Android versions), or if the browser of the user has some trouble with daylight saving time (Blackberry).
- Overview export option — The overview pages now have a link to quickly export this or next week's timetable to PDF.
- API improvements — Together with some of the API users at Inholland University, several features and bug fixes were added to the API:
- New filter options have been added, to filter by student set group and other types.
- The date format has been improved, now both the Unix timestamp as well as the ISO date format are supported. Also, it is possible to specify 'today' or 'tomorrow' instead of a specific date.
- The subscription list can be filtered by type.
- The
/v0/user
method was added to retrieve the user name and iCalendar feed URL. - API tokens can be configured to require OAuth authentication.
- The source filtering was fixed, API list methods now return exactly the same data as shown in the MyTimetable user interface.
- Improved styling of help, 404 and error pages — The pages now match the institution's corporate style more closely.
- Requirelogin parameter — Using the URL parameter is
requireLogin=true
, it is now possible to force a user to login (e.g., to show his or her personal timetable instead of starting a guest session). - Activity groups — MyTimetable now supports activity group timetables.
- Save user roles for iCalendar feed access — Previously, the roles of a user were not saved or cached. This causes issues when accessing the application using token authentication (like the iCalendar feed), since the roles of the user are unavailable at that moment. The roles of a user are now saved on the start of each session, and reused if the role information is unavailable.
- Collapsed by default — An option added to add subscriptions in collapsed state by default.
- Several other important bugfixes were made:
- ISO week numbering for week 53/week 1 sometimes showed an incorrect week number.
- Switching database or view sometimes caused an error due to invalid URL parameters.
- The month view sometimes showed an incorrect number of weeks.
- The month view sometimes threw an exception if the date was changed before the events for the current date had been retrieved.
- Reintroduce OpenSSO support — OpenSSO is now fully supported again, and can be configured by installing the OpenSSO agent and enabling the
auth-opensso
Spring profile.
...