MyTimetable 2.1 release notes
MyTimetable 2.1 is currently in the state: deprecated. No further development is expected except for critical bug fixes. It is tracked using the git branch: rb-2.1
.
The development of MyTimetable 2.1 focused on further refining and polishing MyTimetable, and implementing some of the features that were dropped from MyTimetable during the upgrade from 1.7 to 2.0. Also, during the development of MyTimetable 2.1 we moved all development and issue tracking to GitHub, and further streamlined our development processes. Furthermore, many internal changes have been made to ease future upgrades and extensions to MyTimetable.
All work involved in upgrading to the latest MyTimetable version (configuration, building, testing) is free of charge for our customers with a Software Assurance support agreement.
Functional changes
- New export menu — The new export menu is a drop-down menu that should explain the different export options more clearly to the user. Also, it is now possible to export individual timetables. The export period dialog has also been redesigned for a better user experience.
- iCalendar feed and API are now stateless — This fixes an important bug were user profiles were sometimes not updated if the iCalendar client remembered the session cookies and kept the session active (mainly Outlook users had this issue).
- Draft activity styling update — The styling of draft activities has been updated. Also, the draft indicator has been added to the month and availability view:
- 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
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.
Non-functional, technical and back-end changes
The following changes have been made to the MyTimetable backend and underlying software, and have no direct impact on MyTimetable functionality:
- Flyway is now used to maintain the database schema of the user preferences database. To initialise the Flyway schema on an existing user preferences database, it is necessary to update the schema to the latest non-Flyway version and run MyTimetable once with the setting
userPrefs.flyway.initOnMigrate
set totrue
. Please ask our support department for further information. - The version numbering policy of MyTimetable has changed. The version number now consists of:
<major version>.<minor version>.<git short commit hash>
, and can be found in the Settings dialog, under 'Status'. - Spring profiles are now used to select the authentication method. Due to this change, it may be necessary to update the
spring.profiles.active
environment variable if it exists in your configuration. - Infinispan is now used as cache provider for Spring-based method caching. This caching is used to improve performance of the internal user preferences and subscription services.
- UTF-8 is now fully supported by MyTimetable. In case you encounter any issues with character encoding, please contact us to resolve these issues.
- Log spamming has been fixed: iCalender feeds with incorrect authentication or users that are required to login do not cause excessive log messages anymore.
- Several memory and class loader leaks have been fixed, by upgrading c3p0 and JTDS (the database driver and connection pool), and the connection pool settings have been tuned based on experience from several large MyTimetable instances.
- AspectJ (1.7.2) is now a fundamental part of MyTimetable. As such it is possible to alter or override certain MyTimetable functionality for certain customers using aspect-oriented programming.
- Several Syllabus Plus SQL connection performance improvements have been made by using read-only transactions, optimising DAO's and using the SQL2005 Hibernate dialect. Due to the latter change, SQL Server 2005 or higher is now required for MyTimetable (but it always has been for the Scientia Scheduled Extract, so this change should not cause issues for anyone).
- JSP pages have been updated to only include JSTL and any inline code has been removed.
- Upgrades of dependencies:
- Servlet API (2.5)
- Spring (3.2.1.RELEASE)
- CXF (2.7.2)
- Spring Security (3.1.3.RELEASE)
- Spring Security SAML (1.0.0-20121118)
- Spring Security Oauth2 (1.0.0.RELEASE)
- Spring Mobile (1.0.1.RELEASE)
- Jackson (1.9.11)
- JTDS (1.2.7)
- Ehcache (2.6.2)
- Joda time (2.1)
- Gradle (1.3)
- iCal4j (1.0.4)
- require.js, moment.js and dependencies
Removed and deprecated features
The following features from earlier MyTimetable versions have been deprecated, removed, or partially removed and are not supported anymore:
- Tomcat 5.5 and Java 5 are not supported anymore due to the move to Servlet API 2.5.
- Blackboard building block hosting is not supported anymore, since very few customers are using this functionality and all plan on moving MyTimetable to a separate server to increase performance and availability of the application.
- Blackberry devices are not fully supported anymore, due to unsolvable issues in the Blackberry browser with regards to daylight saving time. A warning message is now shown to Blackberry users.
- Calendar42 specific output in the iCalendar and xCalendar output (
extended
URL parameter) has been removed.