Releases: ucfopen/Materia
v10.3.0-alpha.10
v10.3.0-alpha.10
v10.3.0-alpha.9
v10.3.0-alpha.9
v10.3.0-alpha.8
v10.3.0-alpha.8
Materia v10.2.0
v10.2.0 continues to build on the affordances provided by our 10.0 update, adding a number of quality-of-life features, bug fixes, deprecation fixes, and improvements.
Enhancements
- Improved API error handling across the board, with changes to how to the API sends errors (no more errors provided with 200 response codes!) and how the front-end processes them. (#1547)
- Support users can now review instance scores directly from the admin panel, either when managing an individual instance or when reviewing an instance embedded within a user page. (#1581)
- Adds configuration scaffolding to adjust the
pm.max_children
value in the base Materia image or in the Docker compose file. (#1593)
Bug Fixes
- Fixes and improves the way custom score screens request qset information, ensuring they always receive the qset associated with the given play instead of the latest qset. (#1575)
- Fix to Save History feature when used with freshly saved widget instances. (#1580)
- Fix to error state associated with expired preview logs. (#1585)
- Fixed "Get Materia" link on homepage inadvertently pointing to the widget catalog instead of this repository.
- Adds a "guardrail" to prevent score percentage values over 100 from being written to the database. (#1584)
Miscellaneous
- Updates
Materia-Theme-UCF
tov2.0.3
in composer. - Updates
phpseclib
to address deprecation issues in composer. - Finally added a CONTRIBUTING document 🎉
Associated Pull Requests
- Custom score screen qset acquisition changes by @clpetersonucf in #1575
- Save History fix for new instances by @clpetersonucf in #1580
- API Error Handling Overhaul by @cayb0rg in #1547
- Updates hard-coded imsglobal urls to use https by @clpetersonucf in #1572
- Support users can view instance scores by @clpetersonucf in #1581
- Prevents play score percentages over 100 by @clpetersonucf in #1584
- Fixes/improves expired preview log handling by @clpetersonucf in #1585
- Adds php-fpm config override to adjust pm.max_children value by @clpetersonucf in #1593
- Dev/10.2.0 by @clpetersonucf in #1578
Full Changelog: v10.1.0...v10.2.0
Materia v10.1.0
v10.1.0 includes several significant quality-of-life improvements, bug fixes, and optimizations to the platform in the wake of the v10.0.0 update.
Enhancements
- Improvements to the Settings dialog, particularly related to users with the student role. In some cases, a user could inadvertently lose access to their own instances when their role changed from
basic_author
to student. The instance owner is now identified in the collaboration dialog, and additional checks and fixes have been implemented associated with student users. (#1540) - Student users can now view score information associated with instances, even when an instance is not in Guest Mode. Score data in this context are now anonymized, but identity information will again be included if the user regains the
basic_author
role. (#1540, #1541) - Improvements to API endpoints associated with instances and user search. Pagination behavior has been optimized and certain requests have been made paginated to improve performance. (#1541)
- Improvements to the invalid login dialog and the application states that display it. (#1537)
- Significant optimizations to JS imports; a development version of React and React-DOM are no longer imported, and the majority of vendor JS is imported in a common file that's included in every page request. (#1563)
- The application log stream is no longer inundated with
access.log
spam from phpfpm. (#1548)
Bug Fixes
- Fixes play context indicator in the Instances Played section of the User Admin page (#1544)
- Fixed broken search behavior in the individual scores component in My Widgets (#1554)
- Fixed display issue in My Widgets associated with updated settings not persisting until the page is refreshed (#1556)
- Formalized "triage" fixes associated with missing LTI tokens in session data; if tokens are not present, the play log's environment data is searched for the tokens instead. (#1560)
- Added missing stylesheets associated with player and creator guides to the
Materia-Widget-Dependencies
package manifest (#1539) - Deprecated Node Sass node dependency replaced with Dart Sass (#1551)
- Several dependabot updates
Associated Pull Requests
- Add guides.css to MWD by @cayb0rg in #1539
- Replace Node Sass with Dart Sass by @cayb0rg in #1551
- improves play.auth string check in user admin panel by @clpetersonucf in #1544
- Improved invalid login states by @clpetersonucf in #1537
- Fixes to My Widgets score summary user search by @clpetersonucf in #1554
- Instance list request modifications to fix settings persistence by @clpetersonucf in #1556
- Nullify php-fpm log spam by @clpetersonucf in #1548
- Triage fixes for LTI score passback bug by @clpetersonucf in #1560
- Issue/settings dialog by @cayb0rg in #1540
- Issue/1508 pagination by @cayb0rg in #1541
- JS import optimizations by @clpetersonucf in #1563
- Fix settings dialog by @cayb0rg in #1564
- Dev/10.1.0 by @clpetersonucf in #1545
- Bump aws/aws-sdk-php from 3.67.17 to 3.288.1 by @dependabot in #1552
- Bump jquery-ui from 1.12.1 to 1.13.2 by @dependabot in #1534
Full Changelog: v10.0.1...v10.1.0
Materia v10.0.1
This is a minor maintenance release to address several small issues identified after the major 10.0.0 update.
Bug Fixes
- Resolved an issue related to individual score data rendering improperly when score results were paginated (#1523)
- Resolved a bug where the open and close times of instances in the login/preview screen were sometimes incorrect (#1509)
- Reduced implicit permissions granted to students who also happened to be support users, particularly related to widget sharing (#1502)
- Added missing dependency to
materia-widget-dependencies
package
Enhancements
- Modifications to null checks on certain API results to enhance error state detection (this work is ongoing and will continue to see improvements over the next several releases)
- Fixes notification error message from appearing in every notification row
- Adds widget link to request access notification
- Adds styling to Instance Manager inside User Admin
- Encodes apostrophes in admin instance search query
- Significantly enhanced the Help section of the site with sections for students and instructors, addressing common issues (#1505)
- Several dependabot updates
What's Changed
- Issue/1502 by @cayb0rg in #1515
- Explicitly adding path.js to MWD package.json by @clpetersonucf in #1520
- Bump semver from 5.7.1 to 5.7.2 by @dependabot in #1486
- Quick misc fixes by @cayb0rg in #1501
- Enhanced help section by @clpetersonucf in #1522
- Fixes bug in merging scores from multiple query pages by @clpetersonucf in #1524
- Dev/10.0.1 by @clpetersonucf in #1521
- Bump webpack from 5.75.0 to 5.76.0 by @dependabot in #1533
- Bump @babel/traverse from 7.20.12 to 7.23.2 by @dependabot in #1528
- Bump http-cache-semantics from 4.1.0 to 4.1.1 by @dependabot in #1532
- Bump tough-cookie from 4.1.2 to 4.1.3 by @dependabot in #1531
Full Changelog: v10.0.0...v10.0.1
Materia v10.0.0
Materia version 10 is the single largest update to the platform to date, representing a colossal amount of effort from current and former developers at UCF's Center for Distributed Learning. Its primary goal is to address considerable technical debt due to the system's age, incorporate long-requested and desired features such as a support user dashboard and improved accessibility communication, and enhance the system's overall look and feel.
New and Notable Features
Replaces AngularJS with React and Static Asset Consolidation
Previously, static assets (JS & CSS) were part of a separate repository, Materia-Server-Client-Assets. This update brings these assets back into the fold in a new top-level src
directory. Compiled assets are emitted by webpack into public/
(public/dist/
when in development environments). Because React is doing the heavy lifting of DOM rendering, the old PHP partial views in fuel/app/themes/default/
are retired.
This conversion also affects how theme overrides work. Previously, controllers would listen for Events registered in Fuel package's bootstrap.php files, and make use of PHP partial views provided by those packages. While the event registration/trigger system remains, theme packages operate a little differently. See the Materia-Theme-UCF repo for more info.
Redesign and Improved Responsiveness
The React conversion gave us the opportunity to give Materia a much-needed facelift. Enjoy crisper, snappier interfaces, improved UX like creator guide links in the widget creator, responsive layouts, and a soon-to-be-implemented Dark Mode.
Improved Support and Administration
We've added a new user role, support_user
, to bridge the gap between normal users and administrators. Both support users and admins have access to new admin panels to handle common requests from users. Support users are given access to the User admin interface, where they can easily look up user information, play history, and owned instances - and even administrate those instances directly. They also have access to the Instance admin interface, which allows fast lookups of any instance in the database and administrative actions like modifying settings or adding users.
The Widget Admin interface remains available for super users, allowing for fast widget installation in addition to updates and administration of the widget catalog.
Accessibility Information
The widget catalog and details pages now include additional qualifying information about keyboard and screen reader accessibility if the requisite metadata is included in a widget's install.yaml:
metadata:
accessibility_keyboard: Full # values can be Full | Limited | None
accessibility_reader: Full
accessibility_description: >
A brief description of the widget's accessibility implementation. This metadata value is optional.
The New Materia-Widget-Dependencies Package
Because of MSCA's retirement, the widget development kit will need a new node package dependency to provide the required Materia JS and CSS to properly run. This is provided in the new materia-widget-dependencies package, which is located within a package.json in the public/dist directory. The package can be published via a GitHub action as required, to include the latest and greatest changes from the Materia engine, creator, and score cores, or other aspects of the creator and player.
Miscellaneous Updates
Other notable features include:
- A new footer for widget players with a direct attribution link to Materia as well as a link to the player's guide, if included
- Direct links to the Creator's Guide from within widget creators, if included
- Support for additional audio MIME types in the media uploader, primarily .m4a
- Support for "soft" deleting previously uploaded media assets in the media importer
- Paginated API queries for particularly large API requests, including instances, users, and score data
By the Numbers
- 567 commits, the first of which was authored July 13, 2020 by @iturgeon
- 430 files changed
- 46,022 lines of code added, 6,216 lines of code removed
What's Changed
- Issue/homepage redesign by @aileenpongnon in #1364
- Issue/widgets catalog redesign by @aileenpongnon in #1380
- Aileen's styling and redesign staging branch by @clpetersonucf in #1386
- Issue/react-cay by @cayb0rg in #1390
- React branch polish pass, part one by @clpetersonucf in #1399
- Issue/reactify widget admin by @cayb0rg in #1398
- Issue/my widgets pagination by @emanuelGitCodes in #1397
- React fixes and polish part two by @clpetersonucf in #1423
- Issue/1411 user admin instance management by @cayb0rg in #1431
- React media importer revisited by @clpetersonucf in #1442
- Issue #1446/Fix post-login redirects by @cayb0rg in #1451
- Issue/1453 adds support label on profile page by @cayb0rg in #1455
- Issue/1438 Grants support users additional permissions by @cayb0rg in #1456
- Implements Emanuel's changes to score screen and distribution graphs by @clpetersonucf in #1448
- Issue/1459 remove asset hash cache busting by @clpetersonucf in #1460
- Changes for deploy by @clpetersonucf in #1461
- React/fixes and polish part three by @clpetersonucf in #1463
- Simon's CSS rework by @clpetersonucf in #1464
- Perms definitions update by @clpetersonucf in #1466
- Removes redundant call to apiGetQuestionSet from scorescreen. by @cayb0rg in #1450
- Accessibility indicator polish by @clpetersonucf in #1467
- Converts LTI views to React by @cayb0rg in #1415
- React fixes and polish, part four by @clpetersonucf in #1468
- Adds postMessage call on successful widget selection in LTI picker. by @FrenjaminBanklin in #1475
- Resolves ZipArchive & str_replace deprecated references by @clpetersonucf in #1447
- Fixes LTI picker window height by @cayb0rg in #1477
- Issue-1469/notifications by @cayb0rg in #1473
- Fixes to notifications and collaborator by @cayb0rg in #1482
- [React branch] Improved pagination behavior in My Widgets by @clpetersonucf in #1483
- Catalog accessibility indicator updates by @clpetersonucf in #1487
- Fixes refresh in LTI picker and widget player iframe scrolling by @cayb0rg in #1488
- Fix widget footer margins by @cayb0rg in #1490
- Issue/react unit tests - Part 1 by @cayb0rg in #1452
- [React branch] Fixes and polish part five by @clpetersonucf in #1492
- Edits widget dependencies package by @cayb0rg in #1493
- React branch media importer updates by @clpetersonucf in #1495
- Fixes duplicate API score calls by @cayb0rg in #1499
- Add expected
img
property to widget instance objects used by the LTI widget picker. by @FrenjaminBanklin in #1496 - [React branch] Widget player component refactor by @clpetersonucf in #1497
- React Branch fixes and polish part seven by @clpetersonucf in #1498
- [React Branch] Fixes and polish: final edition by @clpetersonucf in #1500
- React conversion + Support Dashboard by @clpetersonucf in #1359
Note: this list of pull requests is not comprehensive!*
New Contributors
- @aileenpongnon made their first contribution in #1364
- @cayb0rg made their first contribution in #1390
Special Thanks
The following developers and contributors were instrumental in this release, and we're grateful for all of their hard work:
- Ian Turgeon, Materia's original principle architect @iturgeon
- Michael Ferrara, Techranger @michaelferrara
- Aileen Pongnon, Techranger @aileenpongnon
- LJ Oks, Techranger @ljoks
- Cay Henning, Techranger @cayb0rg
- Emanuel Cortes Lugo, LS&T developer @emanuelGitCodes
- Brandon Stull, LS&T developer and longtime Materia contributor @FrenjaminBanklin
- Corey Peterson, Materia lead developer @clpetersonucf
Full Changelog: v9.0.3...v10.0.0
v10.0.0-rc.1
v10.0.0-rc.1
v10.0.0-alpha9
v10.0.0-alpha9
v10.0.0-alpha7
v10.0.0-alpha7