Releases: ucfopen/Obojobo
v7.1.3
v7.1.2
v7.1.1
Changes:
- Changed Visual Editor's Node Detail editor button from 'Close' to 'Save & Close' to help users understand they need to click the button to commit to their changes.
- Removed NPM publishing from Travis
- added
yarn build
to prepublish script to make sure webpack runs before npm publish
v7.1.0 - "Onyx"
The big stuff you'll wanna know
This release is all about big updates to the editing (and sharing!) of modules.
For authors & instructors:
- Our visual editor has been vastly updated with a cleaner new look and additional features! You can now copy, download and preview modules from within the Visual Editor, and editing items like QuestionBanks, Assessment Rubrics and Math Equations is much easier.
- The old "Draft Manager" has been replaced by our new module management interface.
- Among other improvements this new interface allows you to share access to modules to other users and adds the new Module Library which is a space to post modules for other users to use and modify.
- The LTI resource selection interface now allows you to embed modules from the new Module Library
- The visual editor now supports adding Event triggers on all content types.
For data nerds:
- We fixed a bug causing the
question:scoreSet
event to be fired twice, causing duplicate events to be stored. It's now only fired once. - We fixed a bug causing the
viewer:returnFromInactive
event to not be created.
For students:
- (No major updates this release)
For developers:
- Common.Registry has new methods (More info below)
- A new database config option has been added (
useBluebird
) to make debugging database errors easier with more useful stacktraces. - All assets built into
obojobo-epxress/public/compiled
will be served from/static
automatically - You no longer need to register them res.badInput
,notAuthorized
,reject
,missing
, andunexpected
all emit an event that can be used to render a custom error page.- DraftModel, MediaModel, UserModel and VisitModel now fire events on common actions
- New models added: DraftSummary and RepositoryCollection
/dev
has a resizable iframe for viewing the resource selector- Running migrations has changed - The new command is
yarn obojobo-migrate up
. - The Obojobo npm module spec has changed (See the end of this document for details)
For administrators:
- This release has migrations and new packages.
- Running migrations has changed - The new command is
yarn obojobo-migrate up
. - Javascript and CSS files are now generated with cache-busting URLS to prevent cached code and/or styles from breaking new updates.
REST API Changes:
- Added
GET /api/drafts/:draftId/raw
which returns additional metadata about a draft in addition to the draft content - Added
GET /api/drafts-public
which lists all drafts in the Module Library - Added
GET /api/drafts
which lists all drafts you own - Added
GET /api/users/search
which returns a list of users matching the search terms - Added
GET|POST /api/drafts/:draftId/permission
which lists or updates a draft's permissions - Added
DELETE /api/drafts/:draftId/permission/:userId
which removes a user's permissions from a draft - Removed
GET /api/drafts/:draftId/raw
as it is no longer used
Complete Issues List
The list of completed pull requests can be seen on here: https://github.com/ucfopen/Obojobo/pulls?q=is%3Apr+milestone%3A%228+-+Onyx%3A+Library%2FSharing%2FScore+Importing%22+is%3Aclosed
- #1089 - adds release scripts to package.json
- #1082 - Fix save problems on visual/xml/json editor
- #1078 - [clean] removes /api/drafts/:draft/raw route
- #1074 - Strips empty
mods
in json-to-xml-parser but still allows it to be saved - #1073 - Prevent QuestionBank settings component from creating infinite loop
- #1069 - [fix] fixes viewer idle timer reactiviation
- #1068 - Fixes log out link so it is now easy to click on
- #1067 - Issue/1058 switching trigger actions does not clear out previous values
- #1065 - Adds preventESC to Modal (and super classes) to stop users from using the ESC key to close a dialog
- #1063 - Fixes scrolling focus issues for Break, MathEquation and YouTube in the Visual Editor
- #1061 - Ensures that triggers in the Visual Editor now work for every node type, and converting from/to XML maintains trigger information
- #1057 - Fixes a few issues with copy & paste in the visual editor
- #1055 - Fixes issues when clicking on Break nodes or text placeholders causing annoying behavior
- #1050 - [fix] editor question bank settings radio buttons
- #1045 - [fix] permissions for editing shared modules
- #1044 - [fix] editor loading draft request headers corrected
- #1041 - [fix] math equation editor no longer jumps to end
- #1040 - Fix #1039
- #1038 - Wrap PageEditor in a react ErrorBoundry
- #1036 - Fixes filter for capital letters and a few style changes
- #1034 - [fix] dashboard filtering with upper and lower case
- #1029 - Makes sure the repository Filter input doesn't break if no title present
- #1028 - Comment out insert menu
- #1027 - Fix the Delete button in the visual editor more info box from crashing the page
- #1022 - [fix] minor instructions fix on module page
- #1018 - Add 0% scoreAction page as a backup for a missing
no-score
page - #1017 - Tweak for lti picker styles
- #996 - Fix problem when
question:scoreSet
is being fired twice - #992 - adds obojobo-document-json-parser to travis file
- #989 - dev 8 Repository and Visual Editor Combined
- #983 - adds note about s-stem NSF support to readme
- #982 - makes lti error stacktraces more useful
- #981 - add note about /dev route in readme
- #844 - Issue #526 customize read an explanation of the answer
Since #989 ended up being a pretty heafty pull request we've summarized the vast amount of changes below:
- Visual Editor improvements: - Visual Editor is now the default editor with a cleaner interface, new toolbar and several other UI enhancements - Edit as JSON/XML options added to continue to allow advanced editing
- You can now copy, download and preview modules from within the editor
- A "more info" dialog is available for each Obo Node in the document, allowing you to get or set it's ID, specify additional options where they exist as well as define triggers.
- A new triggers & actions dialog has been added to allow you to define behavior for every Obo Node.
- Math Equation editing has been streamlined to an in-page dialog rather than a popup which shows you a complete live preview of your equation.
- Editing Question Bank options is now easier.
- The Question UI has been streamlined. * Editing Assessment Rubric options is now much easier.
- Site Updates
- The old Draft Manager has been replaced by a user Dashboard and Module Library page. The new dashboard allows you to now collaborate with other users by sharing your modules. The public library will contain modules available for instructors to use in their courses.
- New homepage
- Updated 401, 404 and 500 error pages
- Logout option added
- Heroku setup success url changed from
/lti
to the homepage - New common components added:
- DeleteButtonBase
- Slider
- Switch
- DropDownMenu
- WithPageFocus (A higher order component to add page focus references as needed)
- Common.Registry adds
registerEditorModel(nodeObj)
- Common.Registry adds
get insertableItems()
- OboNode editor params change
templateObject
(object) toinsertJSON
(callback) to protect from unintentional object instance sharing/reuse - Tons of React implementation optimizations
- Webpack will now build assets with version hashes in the filename to assist caching
- New
asset_resolver.webpackAssetPath()
to get the correct path to a webpack asset - Database config adds option
useBluebird
. When set to true will help in debugging database errors (default is off for production use). req.getCurrentUser
no longer takes an argument to enable throwing errors if the user isn't logged in (userequireCurrentUser
instead)- All assets built into
obojobo-epxress/public/compiled
will be served from/static
automatically - You no longer need to register them res.badInput
,notAuthorized
,reject
,missing
, andunexpected
all emit an event that can be used to render a custom error page.- Errors thrown in lti.js will be easier to debug
- DraftModel gained
deleteByIdAndUser()
- DraftModel now fires events when a draft is created, updated, and deleted
- MediaModel now fires events when created and...
v6.0.1 - "Cornelian"
We're excited to present to you release 6.0.1! I'd like everyone to say hello to our newest student developer Anthony Rodriguez - his contributions have landed in this release!
The big stuff you'll wanna know
For authors & instructors:
- This release has a number of updates to Math Equations. First, we've added a live preview when editing Math Equations in the Visual Editor and you can now change the size of your equations in the Visual Editor as well. We've also done a few tweaks to the rendering of Math Equations - labels sit below the equation and very long equations no longer run off the page. Finally katex, the library we're using to render math, has been updated from 0.9.0 to 0.11.1 which includes some bug fixes and additions (see what's new).
- The Draft Manager now allows you to switch between JSON to XML and back again. You can find that option is in the new toolbar at the top of the page.
- Viewing a module as an Instructor or Administrator once again shows the module in Preview Mode (reverting to the behavior in 3.3.0). This makes it easier to preview your modules and reduces issues when testing assessments.
- By default users with the
ContentDeveloper
role now have the same permissions as those with theInstructor
orAdministrator
roles.
For data nerds:
- The
nav:toggle
event is no longer sent to the server. Instead either anav:close
ornav:open
event is sent.
For students:
- We're continuing to work on making Obojobo much better on mobile devices. In addition to several small tweaks we also now hide the navigation sidebar by default.
For developers:
- New links have been added to
/dev
to quickly create LTI launches as a student. - We've updated several node packages. Among those, React was updated from 16.8.6 to 16.10.1 and Underscore was updated from 1.5.1 to 1.9.1.
For administrators:
- This release has migrations.
- The node version requirement has been updated from 10.4.1 to 12.11.1 and the yarn version requirement has been updated from 1.0 to 1.15.2.
- You may need to update your nginx / Apache / server config based on changes on #942
- New configuration environment variable
OBO_LTI_USERNAME_PARAM
allows you to choose the LTI launch param to use as a username in Obojobo. If not set the current default oflis_person_sourcedid
will be used. - A new "demo mode" (disabled by default) has been added which allows the periodic purging of data such as events. This can be useful to demo Obojobo in cases where keeping some data (such as events and attempt scores) is not desired. Two additional environment variables have been added with this change:
OBO_DEMO_PURGE_MODE
: Choose between deleting historical logs and everything. This can either benone
,DANGER-delete-HISTORY-data
orDANGER-delete-ALL-data
.OBO_DEMO_PURGE_DAYS_AGO
: Specifies how many days to keep old data if purge is enabled.
REST API Changes:
- (No major updates this release)
Complete Issues List
Here are all the completed issues for this release:
Features & Enhancements:
- #922 - Draft Manager now has a toolbar which, among other things, allows you to switch a document from JSON to XML (and visa versa).
- #924 - You can now edit the
size
attribute for MathEquations in the Visual Editor and a live preview of the rendered LaTeX has been added to the equation edit dialog. - #937 - Insert item toolbar in the Visual Editor is no longer cut off by the bottom of the page
- #938 - Instructor launches again always use preview mode, restoring the 3.3.0 behavior. This prevents instructors seeing LTI errors when submitting assessment attempts.
- #943 - Adds
ContentDeveloper
to the same default permissions thatInstructor
andAdministrator
s have. - #959 - Scrollbars no longer show up on questions during their flip animation.
- #976 - Adds a "demo mode" which can be configured to purge data (such as events) on a scheduled basis.
- #977 - The katex library used to render latex math has been updated from 0.9.0 to 0.11.1 (Refer to the katex change log).
- #984 and Additional - Multiple improvements to make the user experience much better on mobile. Navigation now automatically hides on small screen sizes. Changes the display of MathEquation labels to sit underneath the equation. Adds horizontal scrolling to MathEquations so that long equations no longer run off the page.
Bug Fixes
- #935 - Fix regression bug causing the Draft Manager to break when attempting to render drafts without titles
- #962 - Fix bug causing multiple blank YouTube chunks created in the visual editor to incorrectly reference the same video
Project & Developer Updates
- #933 - Add indices to visits table
- #939 - Moves session clearing to the User model, adds
clearSessionsForUserById
method. - #940 - Refactored LTI code
- #941 - Adds links to
/dev
to create LTI student launches - #942 - Changes header forwarding to use standard
x-forwarded-host
. - #944 - Adds
$Canvas.masqueradingUser.id
to LTI config. - #960 - Bump mixin-deep from 1.3.1 to 1.3.2
- #963 - Refactor and cleanup for the code handling the creation of new nodes in the visual editor
- #974 - Adds option in the LTI config to specify the property to use as the user name
- #976 - Adds a
server:lti:user_launch
event when a user is found during an LTI launch. Adds the deep-freeze library. The global config option object is now frozen. - #977 - Node version requirement has been updated from 10.4.1 to 12.11.1 and the yarn version requirement has been updated from 1.0 to 1.15.2. React updated from 16.8.6 to 16.10.1. Underscore updated from 1.5.1 to 1.9.1. Updates several other package dependencies to newer versions, refer to the pull request for a complete list. pgSession now uses the app's postgress connection instead of creating it's own.
- #984 and Additional - Adds Common.util.debounce. scss
mq()
mixin added. scsspad()
mixin now supports a scale argument (pad(0.5)
= half the padding). /lti/config.xml response content-type changed fromtext/xml
toapplication/xml
. req.getCurrentUser will now make sure req.currentUser is set in all situations. Scheduler addon added to Heroku one button install. nav:toggle no longer sent to the server. Additional code clean-up and enhancements.
Release Stats
- Commits: 112
- Developers: 4
- Files Changed: 168
- Lines Changed: 9718 (+5917, -3801)
- Commit Dates: Jul 25, 2019 - Oct 14, 2019
Lines of Code (expand to view)
› cloc ./ --hide-rate --by-percent cmb --read-lang-def=my_definitions.txt
1634 text files.
1422 unique files.
244 files ignored.
github.com/AlDanial/cloc v 1.82
---------------------------------------------------------------------------------
Language files blank % comment % code
---------------------------------------------------------------------------------
Jest Tests 338 14.09 1.98 51813
Jest Test Snapshots 210 2.29 0.45 45454
JavaScript 580 12.67 4.48 38751
JSON 80 0.01 0.00 26679
Sass 99 15.54 0.94 5231
XML 31 2.36 5.25 1372
CSS 7 26.99 0.29 760
EJS 13 5.65 0.67 696
Markdown 3 17.82 0.00 535
YAML 3 18.53 6.95 193
SVG 28 0.00 0.00 126
---------------------------------------------------------------------------------
SUM: 1392 8.93 1.92 171610
---------------------------------------------------------------------------------
Thanks!
A big thanks to our contributors for this release (listed in alphabetical order):
- Anthony Rodriguez
- [Ian Turgeon](https://...
v5.0.1 - "Lapis Lazuli"
They say some things are worth the wait, and we hope you'll agree on this new Obojobo release! We welcome aboard our newest superstar student contributor Toan Vu who has been blasting away at our back catalog of issues and features. This release also has some new cool features that you can add to your modules (along with a few key bug fixes!).
The big stuff you'll wanna know
For authors:
- Survey questions are now available. These are questions which have no score component and can be both in content or assessment. You can ask students how confident they feel about a question or get a pulse check how they feel about a module. To make survey questions create a new question in the visual editor and change the type in the upper left from
Default
toSurvey
(or, in XML:<Question type="survey">...</Question>
) - A download button has been added to the draft manager. You can now download XML or JSON module documents instead of having to copy and paste them into a new file.
- We fixed a bug that caused issues when creating multiple empty blank pages in the Visual Editor. Feel free to create as many blank pages as you want!
- We simplified assessment attempt code which fixed a long-standing issue. Previously using
random
andrandom-unseen
Question Banks in assessment would cause attempt review to render incorrectly. This is now fixed - you can finally use these type of Question Banks without any problems. - Prior to this release a student completed the same Obojobo module twice in different courses or semesters, these would not be treated as distinct assignments in our system. This clearly caused issues for students who may have taken a course multiple times - They would retake an assignment which had no score in the course gradebook only to have Obojobo tell them it's completed. We now treat every embedded assignment of an Obojobo module as a distinct use. This means even if you embed the same Obojobo module 10 times in a course each will be distinct assignments within Obojobo too.
- You can now upload images in the Visual Editor just like you could in the xml editor. It was missing due to time constraints in our last release, but we're happy it's here now!
- Lists have been tweaked to visually fit better with text. Previously text and lists had two lines between them, this has been reduced to a single line.
- Changing the Question Bank
choose
in Visual Editor was broken and defaulted to choose all items in the Question Bank. Oof. This has now been fixed. - Deleting the Assessment and creating a new one in the Visual Editor caused issues since the new Assessment was using a new random id. This has been fixed, all assessments now default to id
my-assessment
(Future releases will allow you to customize this id). - You can now specify the
alt
property for Math Equations in the Visual Editor. Thealt
property is an english-language description of a math equation (such as"x equals 2 squared"
) which is read by screen readers. We strongly recommend you include these and regret that it was missing in the last release. - Fixed a nasty bug (sorry!) that prevented editing new IFrames in the Visual Editor.
- Obojobo now prevents you from opening two of the same Obojobo module in two (or more) tabs or browsers. When opening a module for the second time the first tab/window will display a message and shut down. This prevents users from browsing content in one tab while taking an assessment attempt in another.
For data nerds:
- Survey questions have question scores (such as those in assessment attempt API responses) of the string
"no-score"
- This is a special token indicating that question was not scored and has no possible score. You should plan to see this value in addition to the numeric values of 0-100 for standard questions. - The
context
property has been added to a fewquestion
events.context
lets you know from where the event took place (for example, if the Show Explanation button was clicked in practice or assessment review). - Survey questions add a new event:
question:submitResponse
. This is similar toquestion:checkAnswer
, however since survey questions have no scoring and no correct answer it didn't make sense to use this event.question:submitResponse
has a payload ofquestionId
,context
andresponse
(these values are the same as those inquestion:checkAnswer
events).
Here's a complete listing of the changes to events for this release:
- Add
question:submitResponse
1.0.0
- Contains the following properties:questionId
context
response
- Upgrade
question:showExplanation
:1.0.0
to1.1.0
- Add
context
- Add
- Upgrade
question:hide
:1.0.0
to1.1.0
- Add
context
- Add
- Upgrade
question:view
:1.0.0
to1.1.0
- Add
context
- Add
- Upgrade
question:retry
:1.0.0
to1.1.0
- Add
context
- Add
- Upgrade
question:checkAnswer
:1.0.0
to1.1.0
- Add
context
- Add
response
- Add
scoreId
- Add
score
- Add
For students:
- We've done some tweaks to our mobile design to make it easier to use on mobile devices. We know we still have some work to do to get our mobile experience 100% - If you think you can help us please consider contributing to the project!
For developers:
- React has been upgraded to 16.8.6! This includes all the goodies of React 16.8.6 including hooks.
- Jest has been upgraded to 24.8! Tests should run faster.
- Security updates: lodash has been upgraded to 4.17.14 and lodash.mergewith to 4.6.2
- A new JSON to XML document parser has been added. We plan on using this to allow users to switch between editing documents in the Visual Editor and by writing XML, but for now it's a standalone package (which you can run manually on the command line).
REST API Changes
api/lti/sendAssessmentScore
has been renamed to/api/lti/send-assessment-score
For administrators:
- This release should save you a little disk space. In our testing #729 resulted in a ~25% reduction in database size :)
Complete Issues List
Here are all the completed issues for this release:
Features & Enhancements:
- #829 - Module launches / assessments now utilize the LTI resource link id
- #835 - Adds an image upload dialog to the Visual Editor
- #845 - Updates Visual Editor tutorial so that questions aren't missing content
- #847 - Updated the style of lists to fit closer to surrounding content
- #848 #910 - Added ungraded Survey Questions
- #849 - Renamed 'Break' to 'Horizontal Line' in the Visual Editor
- #860 - Adds an Obojobo document JSON to XML parser
- #868 - The edit MathEquation dialog in the Visual Editor now allows you to set/edit the alt attribute
- #876 - Fix rendering of the submit incomplete attempt dialog to no longer stack buttons on top of one another
- #906 - Added a button in the Draft Manager to download documents
- #920 - Prevents multiple tabs/windows open at the same time for the same module
Bug Fixes
- #729 - Fix assessment attempt review displaying incorrectly for
random
andrandom-unseen
QuestionBanks. - #834 - Update API getDraft and getFullDraft to pass credentials in request
- #856 - Fixed the hover state of red buttons
- #861 - Visual Editor
pick-all
example now correctly usespick-all
instead ofpick-one
. - #869 - Fixed an unintended
error
attribute being saved with MathEquation content - #872 - Creating multiple empty pages in the Visual Editor no longer displays them with the same title
- #880 - Setting the
choose
property for a QuestionBank in the Visual Editor now works as expected. Previously changing this value ended up with the value being interpreted asInfinity
. - #881 - Attempts now default to an id of
my-assessment
which ensures that ActionButtons that trigger the start of an attempt will still function as expected. - #882 #918 - Editing IFrame properties in the Visual Editor no longer crashes the page
- #887 - Fix
pick-one
questions in the Visual Editor to correctly use"pick-one"
instead of"Pick One"
- #892 - Currently focused IFrame control label now always on top
- #915 - Correct name of MCChoice chunk
- #919 - Adds better error handling to OboModel setProp
Project & Developer Updates
v4.1.2
v4.0.1
This is a very minor maintenance update. Caliper-js dependency moved from caliper-js-public
so it was breaking installation. Also, debug
, a dependency we use for logging had a minor security flaw.
Changes that authors need to know
None
Changes that developers need to know
caliper-js
move required no code changes. No code changes were found in the library in it's new location.debug
update required no code changes. If you customized or extended Obojobo Next you should test that these updates don't cause an issue.
Issues List
- #824 update caliper-js github repo url
v4.0.0 - "Snowflake Obsidian"
I'm very happy and proud to announce that the beta release of our Visual editor is finally here! With the visual editor you can create Obojobo documents visually without any XML or JSON code required. I'd like to give a shout out to Elli Howard who took on the project all the way back in July 2018 and to both Elli Howard and Ryan Eppers who together have been working tirelessly to get it launched!
Highlights from this release
- Visual editor! This offers an easier way to develop content in Obojobo - no XML required. See "Using the new visual editor" section below for more details.
- Inactivity records are more useful with additional information added to the
viewer:return
andviewer:returnFromInactive
events. - Fixed a bug with questions which should prevent rendering issues we've seen with recent releases of Chrome. These fixes should also prevent further rendering issues as the animations have been revamped and simplified.
- New options have been added to
focus:component
allowing more control over directing page focus. - Behind the scenes Obojobo has gotten a whole heck of a lot more organized. OboNodes (the content types like Page, Question and List) are now their own packages and assessment quiz generation works off of our internal event system now. These modular architecture updates will make developing new OboNodes in the future much simpler.
- We've updated from React 15 to 16!
Using the new visual editor
In the draft manager we've added a "+ Visual Editor Tutorial" button to show you the ropes on how it works. Clicking on that button will create a new tutorial document to learn the new visual editor. Once your new tutorial has been created click on the "Edit with Visual Editor (Beta)" link to view it in the new Visual editor.
Important: The visual editor internally uses the JSON document format. If you choose to edit an existing XML document with the visual editor that document will be converted to JSON. We recommend keeping a copy of your XML document if you choose to experiment with the visual editor for existing documents.
This is just the first version of the WYSIWYG visual editor, there's much more in store for the future. We released it now as we wanted to get feedback on it as soon as possible, and give document authors another way to write documents. If you encounter any bugs it would be super helpful for us if you let us know by creating an issue and tagging it with the "editor" tag.
As the visual editor matures over future releases our plan is for the visual editor to become the primary mode of writing documents in Obojobo, with the option to easily switch between the visual editor and writing your documents in XML (or JSON). We will always support being able to write purely in XML/JSON if desired.
Changes that authors need to know
- The
focus:component
action syntax has changed.isVisuallyFocused
is an option that provides a fade effect, dimming other content except the OboNode being focused on. This has been renamed tofade
. Additionally,animateScroll
has been added. If true, the page will smoothly animate the scroll to the OboNode to focus on. If false the element will simply appear in the viewport. This action also now sets DOM focus to interact-able elements in Questions and to the buttons in ActionButton OboNodes, enabling better keyboard support. - The
focus:content
action, added in the previous v3.4.0 release, has been removed as it has been superseded by the updates tofocus:component
. This action was non-documented and likely wasn't being used in a document, but is mentioned here for completeness.
Changes that developers need to know
- The
yarn dev:docEngine
command is no longer needed thanks to #689 . Useyarn dev
instead. #689 is a pretty big change in code organization, so if you are running into issues runyarn delete:node_modules
(which will delete the node_modules folders in every package), then re-runyarn
. You should only need to do this once. - The sample draft object has changed. In the obojobo-document-engine package run
yarn sampleDraft:seed
to update the sample draft.
Issues List
Here are all the completed issues for this release:
Features & Enhancements:
- #585, #671, #587, #602, #619, #639, #687, #712, #714, #738, #746, #758 - The beta of the visual editor is now available.
- #654 - The sample math questions in the example document assessment has been updated to use LaTeX. Previously these questions were read incorrectly by screen readers.
- #670 - Simplifies focus code and adds options to the
focus:component
action. This action can now set the DOM focus for interact-able components in Questions and ActionButtons. - #707 -
viewer:return
andviewer:returnFromInactive
now include the internal Obojobo event id in their payloads instead of the caliper event id.viewer:return
now includesleftTime
andduration
in the payload, allowing easier calculations of how long a student was away from a module. - #756 - Headings have been expanded to support all 6 levels.
h3
,h4
,h5
andh6
tags are now supported in XML.
Bug Fixes
- #670 - Changes in v3.4.0 broke the smooth animations when navigating to different headings in a page in the sidebar nav. Those animations have been reworked and restored.
- #682 - The hamburger menu in Safari went missing in v3.4.0. This fix brings it back.
- #695 - Fixed a bug causing issues when page titles consisted only of numbers.
- #697 - Icon used in Heroku has been fixed.
- #698 - Assessment submit button now centers on narrow pages correctly.
- #735 - Simplifies question rendering which fixes a rendering bug in the latest releases of Chrome causing questions to be blurry.
- #741 - The side navigation didn't scroll, causing issues if the contents were taller than the viewable window. It now scrolls as expected.
- #755 - Fixed a bug causing the draft manager not to display if any drafts contained null content.
Project & Developer Updates
- #623 - Assessment quizzes are built in a more modular way. This should help support the addition of different question types in the future.
- #689 - React has been updated from 15 to 16. OboNodes have been split into individual npm packages, resulting in a more modular and future-proof way of defining and building OboNodes.
- #701 - Updates travis configs to work better with the monorepo package structure
Release Stats
- Commits: 446
- Developers: 6
- Files Changed: 1991
- Lines Change: 240,291 (+126,693, -113,598)
- Commit Dates: Feb 7, 2019 - Apr 23 2019
Lines of Code (expand to view)
› git checkout v4.0.0
Previous HEAD position was 1f80844e v5.0.1
HEAD is now at 24e99aaf v4.0.0
Can't find Husky, skipping post-checkout hook
You can reinstall it using 'npm install husky --save-dev' or delete this hook
obojobo-next-npm-package/ on
› cloc ./ --hide-rate --by-percent cmb --read-lang-def=my_definitions.txt
1522 text files.
1314 unique files.
236 files ignored.
github.com/AlDanial/cloc v 1.82
---------------------------------------------------------------------------------
Language files blank % comment % code
---------------------------------------------------------------------------------
Jest Tests 317 14.24 2.00 47583
JavaScript 523 12.77 4.32 35238
Jest Test Snapshots 203 3.52 0.78 25018
JSON 59 0.02 0.00 18690
Sass 99 15.27 0.94 4802
XML 31 2.36 5.25 1372
EJS 13 3.81 0.42 1130
CSS 7 26.99 0.29 760
Markdown 3 17.82 0.00 535
YAML 2 18.22 5.08 181
SVG 28 0.00 0.00 126
Dockerfile 2 21.57 35.29 22
Bourne Shell 1 36.36 1...
v3.4.0 - "Amethyst"
This was a great release for us as this was our first release after open-sourcing Obojobo 🎉 !
Highlights from this release
- IFrames have been expanded with several new features.
- Our draft manager has been improved with better sorting of modules, searching and many UI/UX tweaks.
- Image hosting is now built-in. You can embed images right from the draft manager!
- Keyboard navigation and screen reader support has been significantly enhanced.
- Tests now at 100% coverage!
Changes that authors need to know
- MathEquation and
<latex>
elements now have analt
attribute, used to provide a plain-language description of the equation which will be read by screen-readers. We strongly recommend providing these attributes. Here's a few examples:<MathEquation latex="y=x^2+b" alt="y equals x squared plus b">
The value <latex alt="i sub x">i_x</latex> is multiplied...
- The
random-all
attribute for QuestionBankselect
attribute has been renamed torandom
. We recommend sticking withsequential
for now until this existing bug has been resolved.
Issues List
While not a fully exhaustive list here are the major updates included in this release:
Note: Where possible the items below link to pull requests, however not all do as some of the pull requests were created in the older non-open-source UCF-only repository. In this case, the related issue or issues are linked instead.
Features & Enhancements:
- #622 - LTI Course navigation item to open the Obojobo Editor should no longer be shown to students.
- #588 - Code chunk is now differentiated by a gray background. Text no longer runs off the page, it now scrolls horizontally inside the gray code area.
- #596 - Media hosting added. You can upload media from the Editor and it will generate the correct
<Figure />
tag. - #181 - Code conventions are more strongly enforced via the addition of eslint and stylelint linters.
- #637 #631 - IFrames significantly enhanced with several options added.
- #520 - Preview mode is now strongly isolated. Taking an attempt in preview mode will have no impact on any attempts in non-preview mode (and vice-versa). Previously in preview mode you could see the history of non-preview attempts - this is no longer the case.
- #509 - Database tables that were storing information based on a draft id only now use both the draft id and the draft content id. Previous to this change the version of a document for a database row had to be deduced from the timestamp of when the row was created.
- #83 - Database tables now utilize the visit id, replacing the need for a draft id and user id pair (although some tables may continue to contain these).
- #257 - Required node version has been upgraded from version 6 to 10. Webpack upgraded to version 4.
- #236 - Project test coverage is now at 100%, which is now maintained for the project moving forward.
- #232 - Built files for the obojobo-document-engine project are no longer committed.
- #86 - Older fb.me CDN links for react libraries updated to use newer CDN links.
- #179 -
visit:start
event added (along with an associated Caliper SessionEvent).viewer:open
events now create a Caliper ToolUseEvent, replacing the previous behavior of creating a SessionEvent. - #195 - Added stronger validation for several routes along with some refactoring of the route code.
- #206 #207 - Draft content ids now use UUIDs instead of numeric ids.
- #601 - Several improvements to accessibility, including:
- Student interface made much more accessible including screen reader and keyboard navigation support.
- Multiple choice question feedback UI has been changed to place the feedback for an item choice next to the selected choice (this results in easier to understand feedback for non-sighted users and helps make feedback for
pick-all
questions easier to understand). - Enhancements to the focus system.
- A new
alt
attribute has been added to MathEquation and inline<latex>
elements. This value is read by the screen-reader. It's strongly recommended to use this attribute to provide a plain-english description of the math equation. If noalt
attribute is provided the LaTeX code will be read instead. In testing screen-readers varied wildly in support of reading mathml elements and in many cases didn't read mathml content at all, so thisalt
attribute provides a workable compromise.
- #288 - The draft manager has been given a number of enhancements, including
- Drafts now correctly sorted (Most recent to least recent)
- Items in draft list take up less space
- Last edited date added
- Draft search added
- Reduced the number of javascript alerts
- Added an unsaved state to any edited Drafts
- Changes are now preserved so you can edit multiple drafts at once
- The title of a draft now updates on save
- Creating a new draft now selects the newly created draft
- Alert added when leaving the page with unsaved drafts
- Styling tweaked to better match the rest of the application
Bug Fixes
- #598 - The sample draft XML when a new draft is created was linking to the older closed-source documentation - this is now updated.
- #252 - Jest tests now run in a standardized timezone.
- #646 - JSON draft response restores scrubbing of answer choice scores - this was removed in a previous release.
- #663 - The
random-all
option for QuestionBank'sselect
attribute has been renamed torandom
. The example documents and documentation erroneously sometimes usedrandom-all
and sometimes usedrandom
. This change also corrects this. The example document was usingrandom
which equated to the default ofsequential
sincerandom
previously was not recognized, therefore the example document has been updated to usesequential
, maintaining existing functionality. (Note: Due to this existing bug it's recommended to only use thesequential
option until the next release.)
Project & Developer Updates
- #235 - Our developer style guide has been updated with information on testing and project testing conventions.
- #656 and #657 - Added travis testing for pull requests, ensuring that code requirements are maintained for newly added code.
- Project has been migrated from two closed course repositories to a single open source monorepo repository, simplifying development.
- Documentation has been open-sourced.
Release Stats
- Commits: 427
- Developers: 5
- Files Changed: 779
- Lines Changed: 134,688 (+58,254 -76,434)
- Commit Dates: Sep 2018 - Feb 2019
Lines of Code (expand to view)
› cloc ./ --hide-rate --by-percent cmb --read-lang-def=my_definitions.txt
919 text files.
911 unique files.
39 files ignored.
github.com/AlDanial/cloc v 1.82
---------------------------------------------------------------------------------
Language files blank % comment % code
---------------------------------------------------------------------------------
JavaScript 396 12.00 7.03 36921
Jest Tests 207 14.31 2.58 34855
Jest Test Snapshots 95 2.64 0.47 19592
JSON 21 0.00 0.00 8601
Sass 72 14.75 1.38 3657
XML 31 2.41 5.37 1339
EJS 12 10.31 1.28 1038
CSS 7 26.99 0.29 760
Markdown 5 19.64 0.00 577
SVG 27 0.00 0.00 121
CoffeeScript 4 11.97 0.00 103
YAML 3 14.44 2.22 75
Dockerfile 2 21.57 35.29 22
Bourne Shell 1 36.36 18.18 5
---------------------------------------------------------------------------------
SUM: 883 10.57 3.63 107666
---------------------------------------------------------------------------------
</detail...