Skip to content

Releases: ucfopen/Obojobo

v13.0.1 - "Rose Quartz"

25 Jun 19:35
v13.0.1
09e26b2
Compare
Choose a tag to compare

The big stuff you'll wanna know

This release has a big new feature - assessment stats! Read on for more info...

For authors & instructors

  • You can now view assessment stats for your modules. This lists both final assessment scores (the score sent to any connected LTI gradebook) as well as each individual attempt score. You can view these by clicking on a module in your dashboard, clicking on the More... button, and then clicking on Assessment Stats.

For developers

  • This release has new packages and new migrations

For administrators

  • This release has new packages and new migrations
  • A new page, /stats, has been added to the repository. This page is only accessible by users who have the new canViewSystemStats permission. This page lets you view anonymized assessment score data for all modules in the system and is intended for system administrators.
  • To grant these permissions, records can be added to the new "user_perms" table. Users with "canViewSystemStats" defined here will be able to view the new page.

REST API Changes:

  • /api/drafts-all has been added, which returns an array of DraftSummaries. This call requires authentication and your user must have the canViewSystemStats permission.
  • /api/assessments/:draftId/details has been added, which returns an array of compiled information for each attempt taken for the given :draftId. This call requires authentication and your user must have permission to the draft. Alternatively, if you do not have permission to the draft but have the canViewSystemStats permission data will be returned but identifying fields will be anonymized. Anonymized fields are of the form (anonymized-<randomly generated id>), such as (anonymized-89ac0b32-1e9d-4c98-ada2-bddea64fc049). Each call to the API will result in a different randomly generated id - the intent of the generated ID is to simply identify the same user within the data returned by a single API call.

New Feature Screenshots

Assessment Stats for your modules

To get to the new assessment stats, click on a module, click on the More... button, and then click on the new Assessment Stats button, shown here:

2021-06-23 16 41 15

User names here are listed as "Anonymous" only for the sake of this gif. You will see the actual names instead.

You're able to view both final assessment scores (shown above), or individual attempt scores (shown below):

Screen Shot 2021-06-23 at 4 43 45 PM

The Download Table button will give you a CSV file of the data shown in the table.

Complete Issues List

The list of completed pull requests can be seen on our GitHub milestone page.

  • #1857 - 🛠️ Limits the number of characters displayed for the title of an IFrame obonode, preventing weird layouts for IFrames with exceptionally long titles
  • #1864, #1872 - ✨ Adds the new Assessment Stats dialog for modules, the new /stats page and modifies the permission system with a new user_perms table

Issue legend:

  • ✨: New features
  • 🛠️: Improvements & enhancements
  • 🐛: Bug fixes

Release Stats

Commits: 29
Developers: 3
Files Changed: 145
Lines Changed: 9,531 (+9,286 / −245)
Commit Dates: June 9, 2021 - June 25, 2021

Lines of Code (expand to view)
cloc ./ --hide-rate --by-percent cmb --read-lang-def=cloc-type-definitions.txt
    2307 text files.
    2049 unique files.
     316 files ignored.

github.com/AlDanial/cloc v 1.84
---------------------------------------------------------------------------------
Language                       files        blank %      comment %           code
---------------------------------------------------------------------------------
Jest Test Snapshots              278           0.93           0.05         529404
Jest Tests                       547          13.68           2.00          89222
JavaScript                       783          12.53           8.28          49745
JSON                              93           0.01           0.00          31899
Sass                             161          15.36           1.02          11449
JSX                               40           9.88           0.89           2493
XML                               33           2.29           5.10           1415
Markdown                           4          19.10           0.00            614
EJS                               12           8.48           0.96            470
YAML                               4          16.39           7.56            181
SVG                               41           0.55           0.00            181
---------------------------------------------------------------------------------
SUM:                            1996           3.97           1.04         717073
---------------------------------------------------------------------------------

Thanks!

A big thanks to our contributors for this release (listed in alphabetical order):

v12.3.0 - "Aquamarine"

14 Jun 13:17
v12.3.0
3586e2f
Compare
Choose a tag to compare

The big stuff you'll wanna know

This release is a more under-the-hood update with some bug fixes, but we do have a few new features to share:

For authors & instructors

  • You can now delete multiple modules at once in your Dashboard. See the screenshot section below for details! In future releases we'll be adding additional multi-select actions.
  • Editing ids in the visual editor has a new step. The ID field inside any Obo Node's details (...) menu requires that you now click the new Edit button next to the id first. We added the extra step to prevent authors from accidentally modifying the id when they intended to edit another field, since changes to a node's ID can easily break a document if done unintentionally.
  • In a previous release we added the option to change figure captions for small and custom images to expand to the full text width rather than to match the width of the image. Unfortunately, when this feature was turned on for custom images the captions were incorrectly at the maximum width, beyond the text width. That's now been fixed.
  • The Visual Editor Tutorial has been updated to cover recent new features - Colored text and Input-a-number type questions.

REST API Changes:

  • No changes in this release

New Feature Screenshots

Delete multiple modules at once

Once you've clicked on a module in your Dashboard, you'll now see a checkbox in the upper-left - click it. Then you can either click on other modules you wish to delete, or hold down Shift to select multiple modules at once. Click on Delete to then get rid of them. (You'll be asked to confirm that you really really want to delete all those modules by typing "DELETE" first.)

2021-06-10 14 39 57

To cancel multi-selection, click on the × next to the Delete button, or hit ESC.

Faster shortcut pro-tip: You can also hold down Ctrl or Cmd and click on modules to select them directly.

Complete Issues List

The list of completed pull requests can be seen on our GitHub milestone page.

  • #1812 - 🐛 Adjusts larger caption size for custom size figures to be text width
  • #1818 - 🐛 Ensures that the editor loading box is removed in all cases
  • #1820 - 🛠️ Updates the Visual Editor tutorial with recent updates
  • #1824 and #1856 - ✨ Multi-select modules in the Dashboard
  • #1844 and #1855 - 🛠️ Id input in menu disabled by default

Issue legend:

  • ✨: New features
  • 🛠️: Improvements & enhancements
  • 🐛: Bug fixes

Release Stats

Commits: 25
Developers: 2
Files Changed: 23
Lines Changed: 9019 (+5,775 / −3,244)
Commit Dates: May 10, 2021 - June 10, 2021

Lines of Code (expand to view)
cloc ./ --hide-rate --by-percent cmb --read-lang-def=cloc-type-definitions.txt
    2258 text files.
    2000 unique files.
     316 files ignored.

github.com/AlDanial/cloc v 1.84
---------------------------------------------------------------------------------
Language                       files        blank %      comment %           code
---------------------------------------------------------------------------------
Jest Test Snapshots              270           0.92           0.05         525107
Jest Tests                       530          13.78           2.00          86907
JavaScript                       775          12.54           8.32          49343
JSON                              93           0.01           0.00          31895
Sass                             156          15.34           1.04          11168
JSX                               29          10.93           1.20           1543
XML                               33           2.29           5.10           1415
Markdown                           4          19.10           0.00            614
EJS                               12           8.48           0.96            470
SVG                               41           0.55           0.00            181
YAML                               4          16.39           7.56            181
---------------------------------------------------------------------------------
SUM:                            1947           3.95           1.04         708824
---------------------------------------------------------------------------------

Thanks!

A big thanks to our contributors for this release (listed in alphabetical order):

v12.2.0 - "Beryl"

24 May 19:09
v12.2.0
8c0b629
Compare
Choose a tag to compare

The big stuff you'll wanna know

This release is a smaller Visual Editor focused update - read on for more information!

For authors & instructors

  • Normally typing "* " or "1. " (for example) should automatically create list, however this wasn't working in Questions or in the Score Action post-test landing pages in the assessment. Now it's been fixed.
  • We fixed a bug where hitting enter inside a Button in a Score Action post-test landing page incorrectly created a duplicate nested Score Action page.
  • In the last v12.1.0 release we moved the Assessment Rubric to it's own modal dialog which you can get to by clicking a button at the bottom of the Assessment page. This release adds a summary of your rubric settings so you can view them at a glance without having to open the full rubric dialog. Simply hover over the (?) icon to view the summary.

REST API Changes:

  • No changes in this release

New Feature Screenshots

Assessment Rubric Summary

You can summon the summary (shown below) by hovering over the (?) icon to the right of the "Edit Assessment Rubric" button.

Screen Shot 2021-05-21 at 1 11 20 PM

Complete Issues List

The list of completed pull requests can be seen on our GitHub milestone page.

  • #1800 - 🛠️ Adds the Assessment Rubric summary
  • #1821 - 🐛 Fix duplicate nested score action pages being created when splitting nodes
  • #1822 - 🐛 Fixes convertIfList to work in any nested structure
  • #1827 - 🐛 Fixes a bug where question bank settings were not being saved in the Visual Editor

Issue legend:

  • ✨: New features
  • 🛠️: Improvements & enhancements
  • 🐛: Bug fixes

Release Stats

Commits: 10
Developers: 3
Files Changed: 41
Lines Changed: 768 (+691 / −77)
Commit Dates: May 4, 2021 - May 24, 2021

Lines of Code (expand to view)
cloc ./ --hide-rate --by-percent cmb --read-lang-def=cloc-type-definitions.txt
    2258 text files.
    2000 unique files.
     316 files ignored.

github.com/AlDanial/cloc v 1.84

---------------------------------------------------------------------------------
Language                       files        blank %      comment %           code
---------------------------------------------------------------------------------
Jest Test Snapshots              270           0.92           0.05         525009
Jest Tests                       530          13.77           2.00          86472
JavaScript                       775          12.55           8.33          49269
JSON                              93           0.01           0.00          30252
Sass                             156          15.30           1.05          11099
JSX                               29          11.09           1.08           1457
XML                               33           2.29           5.10           1415
Markdown                           4          19.10           0.00            614
EJS                               12           8.48           0.96            470
SVG                               41           0.55           0.00            181
YAML                               4          16.39           7.56            181
---------------------------------------------------------------------------------
SUM:                            1947           3.94           1.05         706419
---------------------------------------------------------------------------------

Thanks!

A big thanks to our contributors for this release (listed in alphabetical order):

v12.1.0 - "Tanzanite"

11 May 20:59
Compare
Choose a tag to compare

The big stuff you'll wanna know

Big news for this release - we have a new input-a-number question type! Assessment has also been overhauled with several improvements. Read on for more details.

For authors & instructors

  • Numeric questions are here! This allows you to create questions such as "What is 2+2?" and instead of selecting a multiple choice option the student will input the value of "4" to get it correct. You can also define a range of allowed values, or give some leeway with an accepted percent or absolute amount of error. You're not limited to decimal values - fractional values (such as 1/2) are allowed, numbers in scientific notation (6.02e23, 6.02*10^23, 6.02x10^23, 6.02ee23 and 6.02'23 are all valid syntax), hexadecimal values (0xFF, #FF and $FF are all valid syntax), octal values (such as 0o777) and binary values (such as 0b1101) are also available.
  • Questions have a new "Reveal Answer" button. By default this button is hidden for multiple choice questions but will show up in numeric questions if a student answers the question incorrectly. This button puts any question into a review mode so students can see what the correct and incorrect answers are. You can override the defaults to add or remove this button by opening the details (...) menu for a Question.
  • The Assessment Rubric has been cleaned up and moved into a dialog, making it easier to read and use.
  • Finally! The insert menu got a fresh coat of paint in the Visual Editor. Items are now grouped by category, with more common items like text, headings and lists moved to the left, and lesser used items moved to the right.

For students

  • Assessment has been overhauled behind the scenes to better handle situations when taking an assessment quiz during spotty network connections. Now when answering questions in the assessment the question will become dim and non-interactive while it submits your response. Once recorded, the question will display "Answer saved" below the question, so you can be sure it got sent just fine. If, for whatever reason, your network drops and the question isn't sent as expected, you'll see a red error message below the question stating that it wasn't submitted. In that case, you can interact with the question again to re-submit your response, once your network is running again.

For Data Nerds:

  • With the addition of numeric questions it's important to note that the data structure for responses is different for these questions. For multiple choice questions responses are represented by an object like { ids: [ 'question-option-A', 'question-option-C' ] } - An object with a key of "ids" and its value an array of the ids of one or more MCChoice nodes for the answer choices the student selected. Numeric question responses are instead represented by an object like { value: "42" } - An object with a key of "value" and its value a string representing the student input for that question.
  • question:hideExplanation has been updated from 1.1.0 to 1.2.0. context has been added, which informs you if the explanation was viewed in practice or in an assessment review.
  • question:setResponse has been updated from 2.1.0 to 2.2.0. sendResponseImmediately has been added which is a boolean value. If true, this event was fired as soon as the student interacted with the question, which is true for Multiple Choice questions. If false, this event was fired after the student interacted with the question, which is true for numeric (input-a-number) questions. For those questions the student response is not sent until once the focus leaves the text input field. Additionally, targetId can now be null, which will be the case for numeric questions.
  • A new event has been added - question:revealAnswer (version 1.0.0). This event is fired when a student clicks on the new Reveal Answer button for practice questions (if it is available). Here is the payload:
Property Description
questionId The id of the corresponding Question
context The context (string) when the user is checking their answer

For complete information on these events (and others) check out our event documentation.

For developers

  • The modal system in the Viewer has also gotten an overhaul. A new component, <ModalPortal>, has been added. Any children added to ModalPortal will be displayed in the new React Portal window. This allows you to update the contents of your modal based on state/prop changes, and is an alternative to using the older ModalUtil.show() function.
  • Chunk components in the editor now have a is-selected or is-not-selected class applied if that chunk contains any part of the Slate selection.
  • A new region property has been added to for FocusUtil.focusComponent (and focus:component events), allowing you to specify a string for what to focus on when a component's focusOnContent method is called (region is now included in the opts parameter of focusOnContent). As an example, Question now uses this - if given a region of "answers" browser focus will be directed to the answer portion of the component.
  • QuestionUtil.setResponse (and question:setResponse events) now have a new sendResponseImmediately parameter. By default this is true, and if true then calling this event will send the corresponding client:question:setResponse event to the server right away. If false then the event will not be sent to the server, and will need to be sent manually by calling QuestionUtil.sendResponse.
  • This release requires new packages

For administrators

  • This release requires new packages

REST API Changes:

  • No changes in this release

New Feature Screenshots

Numeric Questions

With the new numeric "Input a number" question type students are given a text input and are asked to type in a value:

blank-input

Inside the Visual Editor you can create one of these questions by changing the Question Type from "Multiple choice" to "Input a number"

Screen Shot 2021-04-29 at 3 01 44 PM

When answered correctly these questions look like this:

q1-correct

When answered incorrectly a Reveal Answer button is shown (by default), allowing students to see what the correct answers are:

q1-incorrect

Here's what the question looks like after clicking on Reveal Answer:

q1-reveal

Like multiple choice, these questions can also have feedback, seen here:

q2-feedback

Other number formats are available, such as scientific notation:

sci

You can also specify a range of accepted values or (in this example) an allowed percent error - shown here on this last question at the end of the page. You can see that the student answered within the accepted error amount and was still awarded a correct response:

perc-error

These allowances are displayed when revealing the answer:

perc-error-reveal

Experiment with these new type of questions to explore all of the available options!

Reveal Answer

By default multiple choice questions don't provide a reveal answer button, while numeric questions will show it after an incorrect response only. You can customize this behavior by question - simply focus somewhere inside a question and click on the details menu button (...). You'll see the new "Allow reveal answer?" option.

reveal-ans-button

Assessment Rubric Cleaned Up

The assessment rubric options have been moved into a dialog and have gotten a fresh new clean look! Here's a sample:

rubric-modal

Reorganized Insert Menu

The insert menu in the Visual Editor has been organized - items are now grouped by types of content and more common items have been moved to be closer to the left:

insert-menu

Pro-tip: You can click on the + in the insert menu to cause it to stay open.

Answer Saved Notifications in Assessment

Questions in the assessment now show a "Answer saved" notice below the question to confirm that the response was recorded:

<img width="1341" alt="ans-saved" src="https://user-images.githubusercontent.com/73479/116603979-91b8d800-a8fb-11eb-9197-5d221cdedc5f.p...

Read more

v12.0.0 - "Serendibite"

12 Apr 17:37
v12.0.0
8bf5b97
Compare
Choose a tag to compare

The big stuff you'll wanna know

We got two new big features for authors this release: Colored text and customizable figure caption widths! And Obojobo Next now works on newer M1 Macs! Read on below for details....

For authors & instructors

  • Colored text has landed! Scroll down for some screenshots.
  • Figure captions are now more flexible. Previously captions always matched the same width as the image, however this can be an issue with smaller images resulting in unsightly layouts (especially with captions with lots of text). You can now switch between the old behavior and a new text width option where captions will extend to the full content width available.
  • Katex, the library we use for rendering LaTeX equations, has been updated to 0.13.1, which includes the following new features that you can include in your math equations:
    • \underbar to draw a line underneath something, such as in \underbar{X}
    • {CD} to allow you to create rectangular arrow diagrams
    • \vcenter and \hbox to aide in vertical layout
    • matrix*, pmatrix*, bmatrix*, Bmatrix*, vmatrix*, and Vmatrix* have been added, which allow you an optional alignment argument to align elements of the matrix (for example, \begin{matrix*}[r] -1 & 3 \\ 2 & -4 \end{matrix*})
    • \injlim, \projlim, \varlimsup, \varliminf, \varinjlim and \varprojlim added
    • \phase has been added
    • \mathstrut added which produces \vphantom{(}
    • {equation}, {equation*}, {split}, {gather} and {gather*} for numbered systems of equations
    • {align}, {align*}, {alignat} and {alignat*} added for aligning equations
    • \angl and \angln added for actuarial notation.
    • Adds the \origof (⊶) and \imageof (⊷) symbols, used in systems theory

For more information on updates to Katex, review their 0.13.0 changelog. Also check out the current Katex supported functions pages for examples of the new features.

For developers

  • Obojobo should now be runnable on newer Apple Silicon macs. The Node requirement has updated from 12.11.1 to 14.16.0, the sharp library has been updated to 0.28.0 and docker build stages have been updated.

For administrators

  • The node requirement for this release has been updated to 14.16.0.
  • Several packages have been updated

For Data Nerds:

  • A new event has been added - viewer:initialView. This event represents the point in time when the module has loaded and the student is viewing it for the first time. Similar events such as viewer:open describe when a module is first opened, but the tab could be hidden and the module will still be loading and won't yet be ready to be interacted with. Use viewer:initialView for a more accurate measurement of student interaction.
  • viewer:return has been updated from 2.0.0 to 3.0.0. The relatedEventId field can now have the value "not available" in rare edge-cases where a related viewer:leave event was not fired.

For complete information on these events (and others) check out our event documentation.

REST API Changes:

  • No changes in this release

New Feature Screenshots

Colored Text

Here's an example of how you can use colored text to link concepts in a diagram to the text that describes it - note the blue nitrogen and red oxygen text below the diagram:

Screen Shot 2021-04-07 at 1 11 19 PM

Here's an example of the colored text menu in action:

2021-04-07 13 11 56

You can see the full range of color options (including custom colors) here:

Screen Shot 2021-04-07 at 1 12 21 PM

Custom colors can be any valid CSS color string, such as #FF0000 or rgb(255, 0, 0). However, we recommend sticking to the main first row of colors as these provide adequate contrast. Other color choices can be difficult to see for visually impaired users. Additionally, it's important to use color only as a boost to understanding, as users with color vision deficiencies won't be able to visually distinguish between certain shades of color.

Figure Caption Width Options

Shown below is a small-sized image with a caption. Note that the caption is somewhat lengthy, and since the caption width matches the width of the image the total vertical area taken up by this figure is significant:

Screen Shot 2021-04-07 at 1 23 11 PM

You can now change this behavior so that captions span the full content area available, shown here:

Screen Shot 2021-04-07 at 1 23 36 PM

You can find this option when editing a Figure under the setting "Caption Width":

Screen Shot 2021-04-07 at 1 23 26 PM

The caption width option is only available for "small" or custom sized images. Captions for "medium" or "large" images will always span the same length as their image, which already is at the same with as text content (or wider).

New LaTeX features

Here are a few examples of some of the new LaTeX features added in this release (new elements shown in green):

Screen Shot 2021-04-07 at 1 51 45 PM

Screen Shot 2021-04-07 at 1 51 49 PM

View the Katex 0.13.0 changelog and the current Katex supported functions pages for more information.

And speaking of Latex, we (finally) expanded the edit area when editing math equations:

Screen Shot 2021-04-08 at 12 55 40 PM

New Module Dashboard Icons

Finally, the Dashboard page has a new ✨shinier✨ look with newer module icons:

Screen Shot 2021-04-07 at 1 06 00 PM

Complete Issues List

The list of completed pull requests can be seen on our GitHub milestone page.

  • #1450 - ✨ Adds viewer:initialView event, fixes issues when user opens module in a new tab
  • #1479 - 🐛 Fixes duplicated figures being creating when inserting a node into a figure caption
  • #1545 - ✨ Adds colored text
  • #1566 - 🛠️ Adds github action for publishing npm releases. Also adds yarn cache to github actions.
  • #1567 - 🛠️ Adds prettier github action
  • #1695 - 🛠️ Simplifies the JSON->XML and Slate->Obo text conversions
  • #1698 - 🛠️ Adds a link to Obojobo Classic in the readme
  • #1699 - 🛠️ Adds a link to research wiki in the readme
  • #1717 - ✨ Changes the module icons on the dashboard page to use trianglify
  • #1740 - 🛠️ Upgrades node requirement to version 14.16.0
  • #1745 and #1766 - ✨ Adds the captionWidth option to Figures
  • #1746 and #1761 - 🛠️ Upgrades several packages
  • #1751 - 🛠️ Updates the Visual Editor Tutorial to explain the new fit property for IFrames and removes explanations of the video ID for YouTube chunks
  • #1753 - 🐛 Fixes a bug where the IFrame initial zoom property was sometimes not being respected
  • #1754 - 🛠️ Updates the y18n package from 4.0.0 to 4.0.1
  • #1755 - 🐛 Fixes a bug with the Visual Editor menu where clicked on menu items would stay open once moused away from
  • #1756 - 🛠️ Enables all optional nodes when running the dev server
  • #1757 - 🛠️ Cleans up and fixes non-failing test warnings from previous releases
  • #1760 - 🛠️ Updates and simplifies assets for webpack 5
  • #1767 - 🛠️ Grants more edit room in the MathEquation edit dialo...
Read more

v11.4.0 - "Opal"

25 Mar 14:38
v11.4.0
4a33842
Compare
Choose a tag to compare

The big stuff you'll wanna know

We have a few cool features for authors this release: Materia widgets and IFrame sizing options.

Materia is another ucf/open_ project aimed at providing easy-to-create games and study tools for online courses. Check out Materia's docs for more information on getting Materia for your institution!

For authors & instructors

  • Obojobo now provides a new Materia Chunk which, if enabled, allows an easy way to embed Materia widgets into Obojobo. By default the new Materia Chunk is disabled as it requires Materia to be installed. The administrators section below describes how to enable it.
  • IFrames have a new "Sizing" option, which allows for more flexible IFrame sizes. By setting this to "Max Width" IFrames can now extend past text content, and will be the same size as Questions and YouTube videos. "Text Width" allows IFrames to always be at the same width as text. Finally, "Fixed" causes IFrames to behave as they have previously - You define the width and height of the IFrame.

For developers

  • You can test Materia widgets in your local development Materia with docker. By default Materia should run at https://localhost. Obojobo expects this, however you can change the expected Materia URL by updating the "materia-lti.json" config file in the Materia obonode package.
  • This release has new packages

For administrators

  • There is a new environment variable: OBO_OPTIONAL_NODES. The value is a comma separated allow list of
    "Optional" OboNodes that you wish to enable. Currently obojobo-chunks-materia is the only optional Obo Node, indicated by the isOptional value in its main index.js file. By default, OBO_OPTIONAL_NODES is set to "", meaning the Materia OboNode will not be available. If you have a running instance of Materia you can set this to "obojobo-chunks-materia" to enable Materia widgets for your Obojobo install. (You can also set OBO_OPTIONAL_NODES to "*", which will always load all optional nodes).
  • The Materia chunk package requires 4 new environment variables:
    • OBO_LTI_GUID a GUID unique to this install of Obojobo - see LTI definition for tool_consumer_instance_guid
    • MATERIA_OAUTH_KEY - LTI Oauth public key for Materia (see Materia's env LTI_KEY)
    • MATERIA_OAUTH_SECRET - LTI Oauth secret for Materia (see Materia's env for LTI_SECRET)
    • MATERIA_HOST - the full url without trailing slashes to Materia (ex: https://path.to.your.materia)
  • This release includes new packages

For Data Nerds:

The Materia chunk includes three new events:

  • materia:ltiLaunchWidget: Occurs when a Materia widget is launched in the Obojobo Viewer.
  • materia:ltiPickerLaunch: Occurs when an author selects a Materia widget to embed in the Obojobo Visual Editor.
  • materia:ltiScorePassback: Occurs when Materia sends a score back via LTI. Specifically this is fired after Materia sends an LTI replaceResultRequest request.

For complete information on these events (and others) check out our event documentation.

REST API Changes:

  • No changes in this release

New Feature Screenshots

Materia

This GIF shows off how you'd embed a Materia widget inside Obojobo:

2021-03-22 15 01 29

Once embedded, you'll see something like this in the Visual Editor:

Screen Shot 2021-03-22 at 3 02 46 PM

Students will see Materia widgets show up as a box they'll click on to load:

Screen Shot 2021-03-22 at 3 02 55 PM

Once loaded, Materia will show up in the page, like this:

Screen Shot 2021-03-22 at 3 03 11 PM

New IFrame sizing options

IFrames can now match the width of text content or expand past text content:

Screen Shot 2021-03-22 at 5 38 26 PM

Complete Issues List

The list of completed pull requests can be seen on our GitHub milestone page.

  • #970, #1715, #1720, #1721, #1725, #1731, #1732, #1739 - ✨ Adds the new Materia OboNode, OBO_OPTIONAL_NODES environment variable and additional enhancements
  • #1382 - 🛠️ Adds a "Saving..." indicator to the Visual Editor while saving
  • #1581, #1736 - ✨ Adds the new sizing option to IFrames
  • #1703 - 🛠️ Bump elliptic from 6.4.1 to 6.5.4
  • #1718 - 🐛 Fixes a regression bug that disabled scrolling in dialogs for the Visual Editor
  • #1722 - 🛠️ Upgrade dev postgres container to 9.6.21
  • #1733 - 🛠️ Bump is-svg from 4.2.1 to 4.2.2

Issue legend:

  • ✨: New features
  • 🛠️: Improvements & enhancements
  • 🐛: Bug fixes

Release Stats

  • Commits: 139
  • Developers: 4
  • Files Changed: 186
  • Lines Changed: 6,027 (+6,957 / −930)
  • Commit Dates: January 28, 2020 - March 23, 2021
Lines of Code (expand to view)
cloc ./ --hide-rate --by-percent cmb --read-lang-def=cloc-type-definitions.txt
    2069 text files.
    1830 unique files.
     294 files ignored.

github.com/AlDanial/cloc v 1.84
---------------------------------------------------------------------------------
Language                       files        blank %      comment %           code
---------------------------------------------------------------------------------
Jest Tests                       482          13.95           2.25          76279
Jest Test Snapshots              254           2.08           0.43          58063
JavaScript                       691          12.41           6.09          43263
JSON                              86           0.01           0.00          27934
Sass                             145          15.28           1.05          10159
JSX                               29          11.04           1.08           1465
XML                               32           2.32           5.18           1394
Markdown                           4          19.02           0.00            613
EJS                               12           8.79           0.93            483
SVG                               40           0.56           0.00            179
YAML                               4          15.69           6.37            159
---------------------------------------------------------------------------------
SUM:                            1779           9.18           2.32         219991
---------------------------------------------------------------------------------

Thanks!

A big thanks to our contributors for this release (listed in alphabetical order):

v11.3.0 - "Peridot"

26 Feb 01:06
v11.3.0
7473d66
Compare
Choose a tag to compare

The big stuff you'll wanna know

A smaller and mostly under-the-hood update this time as we continue to work on wrapping up some new exciting things coming soon. Still, we do have a few cool and useful updates in this release:

Note: Releases are not merged into master/main until we've run them for a week in production

For authors & instructors

  • The UI for adding YouTube videos to a module has been improved. Previously you needed to copy just the video ID from a YouTube URL, which was not intuitive. Now you can now simply paste the URL or embed code of a video (but pasting the video ID still works too!)
  • A clearer error message has been added when an Action Button is set to start an assessment attempt but the given assessment ID doesn't exist in the document. You may have run into this if you've ever changed the assessment ID to something other than the default, but one or more of the buttons to start a new attempt was left unchanged. Previous to this fix you would see an error like Unexpected DB Error. Now you'll see the more helpful error of Couldn't find an assessment with ID "example-id"..
  • KaTeX (the library we use to render LaTeX equations) has been updated from version 0.11.1 to 0.12.0. You can view the full KaTeX changelog here, but here's a summary of LaTeX functions that are now available to use in your modules due to this update:
    • \cal (Turn on calligraphic mode)
    • \minuso (The Plimsoll symbol: ⦵, used in chemistry/thermodynamics to indicate standard state)
    • {rcases} (Curly brace for equations with multiple inputs on the left and an output on the right)
    • {drcases} (rcases but in displayed math style)
    • As well as several additions for macros: \edef, \expandafter, \let, \long, \noexpand
    • Visit https://katex.org/docs/supported.html for a complete list of supported functions (along with examples)

For developers

This release includes new packages

For administrators

This release includes new packages

REST API Changes:

  • No changes in this release

Complete Issues List

The list of completed pull requests can be seen on our GitHub milestone page.

  • #1438 - 🛠️ Improvements to the YouTube Visual Editor UI to allow authors to paste in an embed code or a URL.
  • #1572 - 🛠️ Improvements for the GitHub "Run Tests" action
  • #1585 - 🛠️ Includes some improvements for triple-clicking on text in the Visual Editor so that triple-clicking more aligns with expected behavior
  • #1603 - 🛠️ Ensures .eslintrc is included in eslint-config-obojobo package
  • #1605 - 🛠️ Adds a better error message when an attempt is started for an assessment ID that doesn't exist
  • #1608 - 🛠️ Adds a validation error message when setting an invalid ID in the Visual Editor for a Obo Node.
  • #1613 - 🛠️ Adds query timeouts to our Postgres library
  • #1617 - 🐛 Fixes a bug where the Highest Attempt label was not always correct for modules with assessment rubrics
  • #1692 - ✨ Updates the KaTeX library from 0.11.1 to 0.12.0

Issue legend:

  • ✨: New features
  • 🛠️: Improvements & enhancements
  • 🐛: Bug fixes

Release Stats

Commits: 58
Developers: 7
Files Changed: 69
Lines Changed: 1,181 (+1,615 / −434)
Commit Dates: April 8, 2020 - Feb 25, 2021

Lines of Code (expand to view)
cloc ./ --hide-rate --by-percent cmb --read-lang-def=cloc-type-definitions.txt
    2006 text files.
    1778 unique files.
     283 files ignored.

github.com/AlDanial/cloc v 1.84
---------------------------------------------------------------------------------
Language                       files        blank %      comment %           code
---------------------------------------------------------------------------------
Jest Tests                       473          13.94           2.19          74286
Jest Test Snapshots              247           2.07           0.42          57180
JavaScript                       670          12.45           5.97          41865
JSON                              83           0.01           0.00          27825
Sass                             137          15.27           1.08           9833
JSX                               29          11.04           1.08           1465
XML                               31           2.33           5.20           1386
Markdown                           4          19.02           0.00            613
EJS                               12           8.79           0.93            483
SVG                               37           0.61           0.00            164
YAML                               4          16.00           6.50            155
---------------------------------------------------------------------------------
SUM:                            1727           9.14           2.26         215255
---------------------------------------------------------------------------------

Thanks!

A big thanks to our contributors for this release (listed in alphabetical order):

v11.2.0 - "Connemara Marble"

10 Feb 17:06
v11.2.0
83442dc
Compare
Choose a tag to compare

The big stuff you'll wanna know

We're back with regularly scheduled updates. This release includes a lot of enhancements and bug fixes the team has been working on around the holidays! The most important of these are two big bug fixes:

  • Creating a module with Math equations in the assessment (but not in the content) would cause the module to crash. This has been resolved.
  • If a student started an assessment attempt, then the module was changed before they could submit it, that student would be stuck unable to submit the assessment attempt or reset it. Now the student will be informed that the module was updated and they are given the chance to start the assessment over.

We also have a new favicon (the icon that shows up on Obojobo Next tabs). We had been borrowing our older favicon from Obojobo Classic but it didn't match our look, and now we have our own!

Screen Shot 2021-02-04 at 2 46 00 PM

For authors & instructors

In addition to the two items listed above,

  • When restoring a previous version of a document you are now warned if it's currently being edited.
  • The starting page property (which determines the first page students will see when viewing the module) no longer effects the Visual Editor. Regardless of the starting page you'll always open the editor to the first page of the module.
  • YouTube videos now use the special youtube-nocookie domain, which means video suggestions at the end of the video will only be related to the embedded video and not the student's personal YouTube viewing history.
  • Newly created modules now default to locking navigation when an assessment is started. To replicate the older default, in the Visual Editor click on the (...) menu next to your Assessment section in the left-side nav, then set Lock Navigation During Attempts to OFF.
  • New modules you create on your Dashboard are now highlighted, making it easier to find your new module.
  • A previous update made creating lists easier by allowing you to type * or 1. in an empty paragraph to start a list. However, numeric lists were always numbered and started at 1. This has been expanded further - You can now input values such as 3. , A. , d. , IV. , and iii. (for example) to get lists with different numeric list types and starting values.

Scroll down to see some screenshots of these updates!

For data nerds

A new flag has been added to assessment attempts: invalid. This can happen when a student starts an assessment attempt and before they can submit it the module is changed (meaning the draft_content_id of the submitted attempt no longer matches the current draft_content_id).

Invalid attempts can be identified in the attempts table by { ..., "invalid": "true" } existing inside the attempts state field.

Additionally, a new event - assessment:attemptInvalidated (version 1.0.0) - has been added with the following payload:

Property Description
attemptId The attempt ID of the attempt that was invalidated

For invalidated attempts you can expect to see an assessment:attemptStart event but will NOT see any associated assessment:attemptEnd or assessment:attemptScored events as the attempt can no longer be completed or scored once invalidated. Additionally the completed_at field for invalid attempts will remain NULL.

Students can still submit responses to assessment questions even after the attempt is invalidated, so you may see related question:setResponse events, and likewise you may see rows for that attempt in the attempts_question_responses table. Therefore you may want to find any invalid attempts and filter out related question data for those attempts.

For developers

Some jest snapshots changed for 2021. This release fixes this so the new year doesn't break snapshots.

For administrators

We're now publishing obojobo next docker containers in the github docker registry! Building these docker images is now part of our automated release process. You'll be able to use these docker images in production environments, making it easier to deploy and update.

REST API Changes:

  • No changes in this release

New Feature Screenshots

Invalid attempts

When a student attempts to submit an assessment attempt but the module has changed since they started the attempt will be marked as invalid, and they'll now receive this message:

Screen Shot 2021-02-04 at 12 21 38 PM

Clicking on "Close Dialog" will let them see their answers in case the new updated module contains the same or similar questions. Clicking on "Restart" will begin a new attempt with the updated content.

Students can also refresh the page. If they do so, they will visit the module without an assessment attempt underway.

New modules are highlighted

It can be difficult to see where a module is added to the list of modules in your Dashboard. Now any newly created modules are highlighted.

2021-02-04 11 18 20

The highlight is temporary. Once you revisit the Dashboard this highlight will no longer show up.

Easily create different types of numeric lists

You can now type values such as 3. , A. , d. , IV. , and iii. (for example) to get lists with different numeric list types and starting values.

2021-02-04 11 22 21

New warning before restoring a module while it is being edited

If you attempt to restore a previous version of a module while it is being edited by another author you will receive this prompt:

Screen Shot 2021-02-04 at 11 21 14 AM

You can still click Yes - Restore to go ahead with the restore operation, but if the module is still actively being edited then the current editor won't receive the new content and could possibly overwrite your revision with their latest version of the document.

Complete Issues List

The list of completed pull requests can be seen on our GitHub milestone page.

  • #1539 - 🐛 Fixes an issue where focus could be lost while editing the values inside the Assessment Rubric in the Visual Editor
  • #1546 - 🛠️ Changed default stalebot behavior in the github repo to mark stale issues with the stale label instead of wontfix.
  • #1583 - 🛠️ Some clean up with the viewer's IntersectionObserver, used to determine when a Question is on screen
  • #1600 - 🛠️ Added prompt when attempting to restore a previous version of a module while it has an active edit lock
  • #1606 - 🐛 Fixes issues with selecting and editing text across Headings and Text nodes
  • #1607 - Added the option for authors to create every type of numeric list (as well as different list start values) in an empty Text node
  • #1612 - 🐛 Fixes misaligned toolbar menus in Safari
  • #1614 - 🐛 Improves some errors in the log. Adds a timestamp to error logs and removes the error that res.unexpected is undefined.
  • #1615 - 🛠️ Updates the action UI for the focus:component action to allow you to set preventScroll:true which was added in a previous release
  • #1616 - 🛠️ Restricts module and page titles to 300 characters
  • #1619 - 🐛 Fixes a console error in the Visual Editor which would happen when hitting Enter inside a Table
  • #1620 - ✨ Updated the favicon
  • #1623, #1648 - 🛠️ Assessment attempts are now invalidated when submitted but the draft_content_ids between the attempt and the latest version of the module don't match. Adds assessment:attemptInvalidated event.
  • #1629 - 🐛 Fixes viewer crash when the start property points to a non-existent id. Also ensures the Visual Editor now always starts at the first page, regardless of the value of start.
  • #1630 - 🛠️ Newly created modules in the Dashboard are now highlighted
  • #1631 - 🛠️ Clear text-selection in the viewer when students change the page
  • #1633 - 🐛 Fixes viewer crash when loading an assessment containing katex-rendered equations if the content of the module doesn't contain any katex
  • #1641 - 🛠️ Change YouTube videos to use the youtube-nocookie domain
  • #1642 - 🐛 Fix year dependent snapshots for 2021
  • #1643 - 🛠️ New modules default to locking navigation when an assessment attempt is started
  • [#1645](https://github.com/ucfop...
Read more

v11.1.1

23 Dec 05:55
Compare
Choose a tag to compare

Maintenance update to deal with a node dependency breaking during install.

v11.1.0 - "Magnetite"

29 Oct 15:14
v11.1.0
Compare
Choose a tag to compare

The big stuff you'll wanna know

A smaller release this time with mostly bug fixes, but we have two new features to make editing a little bit easier. First, finally, you can now type * or 1. on a line of text to get a list! And second, the shortcut for align text has been changed to include the shift key, meaning the browser shortcut for refreshing the page (⌘/Ctrl+R) now refreshes the page as expected.

For Authors

A few keyboard shortcuts have changed:

Feature Old Shortcut New Shortcut
Left Align Text ⌘/Ctrl+L ⌘/Ctrl+Shift+L
Center Align Text ⌘/Ctrl+E ⌘/Ctrl+Shift+E
Right Align Text ⌘/Ctrl+R ⌘/Ctrl+Shift+R

REST API Changes:

  • No changes in this release

New Feature Screenshots

Create lists with * or 1.

Starting a line with an asterix followed by a space automatically converts that line to an unordered list:

2020-10-28 14 59 00

Starting a line with a 1 followed by a period and a space automatically converts that line to an ordered list:

2020-10-28 14 56 12

Complete Issues List

The list of completed pull requests can be seen on our GitHub milestone page.

  • #1574 - 🐛 Removes the question solution from being displayed when selecting questions to import into a Question Bank.
  • #1580 - 🛠️ Adds documentation in the Visual Editor Tutorial about the new Import Question feature for Question Banks that was added in the last release
  • #1588 - 🛠️ Add shift key to the align text shortcuts
  • #1590 - 🐛 Corrects some weird behavior when hitting enter in headings and other text content
  • #1592 - 🛠️ Standardizes the trigger messages in action buttons when various values are not defined
  • #1593 - ✨ Converts text to a list if list-like formatting is detected on an empty line
  • #1595 - 🛠️ Fixes a dangling line in the viewer navigation display when there's no assessment section.
  • #1602 - 🛠️ Includes some of the config files in the obojobo-lib-utils in the published npm package, allowing reuse in other projects

Issue legend:

  • ✨: New features
  • 🛠️: Improvements & enhancements
  • 🐛: Bug fixes

Release Stats

Commits: 21
Developers: 6
Files Changed: 49
Lines Changed: 966 (+700 / −266)
Commit Dates: October 5, 2020 - October 23, 2020

Lines of Code (expand to view)
cloc ./ --hide-rate --by-percent cmb --read-lang-def=cloc-type-definitions.txt
    1988 text files.
    1759 unique files.
     279 files ignored.

github.com/AlDanial/cloc v 1.84
---------------------------------------------------------------------------------
Language                       files        blank %      comment %           code
---------------------------------------------------------------------------------
Jest Tests                       470          13.94           2.15          72974
Jest Test Snapshots              246           2.07           0.42          56668
JavaScript                       663          12.46           5.91          41254
JSON                              82           0.01           0.00          27774
Sass                             137          15.24           1.09           9752
XML                               31           2.36           5.25           1372
JSX                               29          10.90           0.90           1367
Markdown                           3          17.92           0.00            577
EJS                               12           8.79           0.93            483
SVG                               37           0.61           0.00            164
YAML                               3          19.42           7.77             75
---------------------------------------------------------------------------------
SUM:                            1713           9.10           2.23         212460
---------------------------------------------------------------------------------

Thanks!

A big thanks to our contributors for this release (listed in alphabetical order):