WeBWorK Main Forum

Grouped library problems do not display correctly after upgrade

Grouped library problems do not display correctly after upgrade

by Stephen Flood -
Number of replies: 2

We recently upgrade from Webwork 2.16 to 2.17.  I ran OPL-update, and the library browser mostly works correctly. 

The one problem happens when I click on "M" to expand a set of grouped problems.  Most (if not all) of the new problems have strange characters drawn on top of them.  When I click "re-randomize", the questions then display correctly.  A screenshot is below.

Does anyone know what might be causing this?



In reply to Stephen Flood

Re: Grouped library problems do not display correctly after upgrade

by Glenn Rice -

There are two things that cause this.

The first is that we switched from using the CHTML mathjax rendering method to using the SVG method.  For a quick fix you can right click on any mathjax element in the page and select "Math Settings" -> "Math Renderer" -> "CHTML".  However, that has to be done by each user.  The setting is saved to your browser's local storage, so it will persist as long as you are using that browser.

The other thing that causes this is that the hidden "M"ore problems are not supposed to be rendered until you click on the "M".  However, there is a bug in htdocs/js/apps/SetMaker/setmaker.js.  This is my fault.  After I implemented the asynchronous code to render the problems, I made some changes later that broke it.  If you change line 550 of that file from

if (renderArea.style.display === 'none') continue;

to

const id = renderArea.id.match(/^psr_render_area_(\d+)/)[1];
if (document.getElementById(`pgrow${id}`)?.style.display === 'none') continue;

It will fix the problem even when the mathjax render method is SVG.

Note that this is already fixed in the develop branch for the next release.

In reply to Glenn Rice

Re: Grouped library problems do not display correctly after upgrade

by Glenn Rice -
I forgot to mention that you will need to run "./generate-assets.js" from /opt/webwork/webwork2/htdocs after making the modification to the javascript file in order for the change to take effect. You will probably also need to restart the apache2 server.