Releases: ucfopen/Obojobo
v13.0.1 - "Rose Quartz"
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 newcanViewSystemStats
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 thecanViewSystemStats
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 thecanViewSystemStats
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:
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):
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"
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.)
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"
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.
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"
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
and6.02'23
are all valid syntax), hexadecimal values (0xFF
,#FF
and$FF
are all valid syntax), octal values (such as0o777
) and binary values (such as0b1101
) 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 from1.1.0
to1.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 from2.1.0
to2.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 benull
, which will be the case for numeric questions.- A new event has been added -
question:revealAnswer
(version1.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 olderModalUtil.show()
function. - Chunk components in the editor now have a
is-selected
oris-not-selected
class applied if that chunk contains any part of the Slate selection. - A new
region
property has been added to forFocusUtil.focusComponent
(andfocus:component
events), allowing you to specify a string for what to focus on when a component'sfocusOnContent
method is called (region
is now included in theopts
parameter offocusOnContent
). As an example, Question now uses this - if given aregion
of"answers"
browser focus will be directed to the answer portion of the component. QuestionUtil.setResponse
(andquestion:setResponse
events) now have a newsendResponseImmediately
parameter. By default this is true, and if true then calling this event will send the correspondingclient:question:setResponse
event to the server right away. Iffalse
then the event will not be sent to the server, and will need to be sent manually by callingQuestionUtil.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:
Inside the Visual Editor you can create one of these questions by changing the Question Type from "Multiple choice" to "Input a number"
When answered correctly these questions look like this:
When answered incorrectly a Reveal Answer button is shown (by default), allowing students to see what the correct answers are:
Here's what the question looks like after clicking on Reveal Answer:
Like multiple choice, these questions can also have feedback, seen here:
Other number formats are available, such as scientific notation:
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:
These allowances are displayed when revealing the answer:
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.
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:
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:
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...
v12.0.0 - "Serendibite"
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 layoutmatrix*
,pmatrix*
,bmatrix*
,Bmatrix*
,vmatrix*
, andVmatrix*
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 asviewer: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. Useviewer:initialView
for a more accurate measurement of student interaction. viewer:return
has been updated from2.0.0
to3.0.0
. TherelatedEventId
field can now have the value"not available"
in rare edge-cases where a relatedviewer: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:
Here's an example of the colored text menu in action:
You can see the full range of color options (including custom colors) here:
Custom colors can be any valid CSS color string, such as
#FF0000
orrgb(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:
You can now change this behavior so that captions span the full content area available, shown here:
You can find this option when editing a Figure under the setting "Caption Width":
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):
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:
New Module Dashboard Icons
Finally, the Dashboard page has a new ✨shinier✨ look with newer module icons:
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...
v11.4.0 - "Opal"
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. Currentlyobojobo-chunks-materia
is the only optional Obo Node, indicated by theisOptional
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 setOBO_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 fortool_consumer_instance_guid
MATERIA_OAUTH_KEY
- LTI Oauth public key for Materia (see Materia's envLTI_KEY
)MATERIA_OAUTH_SECRET
- LTI Oauth secret for Materia (see Materia's env forLTI_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 LTIreplaceResultRequest
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:
Once embedded, you'll see something like this in the Visual Editor:
Students will see Materia widgets show up as a box they'll click on to load:
Once loaded, Materia will show up in the page, like this:
New IFrame sizing options
IFrames can now match the width of text content or expand past text content:
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"
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 ofCouldn'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"
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!
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 setLock Navigation During Attempts
toOFF
. - 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
*
or1.
in an empty paragraph to start a list. However, numeric lists were always numbered and started at1
. This has been expanded further - You can now input values such as3.
,A.
,d.
,IV.
, andiii.
(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:
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.
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.
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:
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 ofwontfix
. - #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 setpreventScroll: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_id
s between the attempt and the latest version of the module don't match. Addsassessment: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 ofstart
. - #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...
v11.1.1
v11.1.0 - "Magnetite"
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:
Starting a line with a 1 followed by a period and a space automatically converts that line to an ordered list:
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):