cmv/cmv-app

Missing iconClass in widget config causes crash while loading on mobile

duckblaster opened this issue · 1 comments

How often can you reproduce it?

  • Always
  • Sometimes
  • Rarely
  • Unable
  • I didn’t try

Description:

If there is a widget configured without an iconClass when the mobile sidebar loads it throws an error about Cannot read property 'replace' of undefined at line 40 of _sidebarTab.js:

this.buttonNode = put(this.tabsButtonNode, 'li a[role=tab] i.' + this.iconClass.replace(/ /g, '.') + '<<');

Steps to reproduce:

Remove the iconClass from a widget config and load it on a mobile device. If using the mobile emulation in browser devtools you need to reload to trigger the mobile sidebar.

  1. Include a JS Bin (or equivalent) link if possible. You can use this as a starting point. Alternatively create a Gist
  2. Detail the exact steps taken to produce the problem
  3. Include a gif if possible; you can use LICEcap to make a gif: http://www.cockos.com/licecap/
  4. Check the browser console for errors (Use F12 to access the console)

Expected results:

Either a fallback icon or an error in the dev tools regardless of whether it is loaded on mobile or desktop, so it is more obvious, other widgets should continue to load.
image

Actual results:

Cryptic error about Cannot read property 'replace' of undefined, other widgets listed after the problematic entry fail to load.
image

Environment:

Software Version
CMV Version latest master
Browser latest chrome
Operating system windows, android, iphone

@duckblaster Thanks for reporting this. I have seen the issue as well and it has been fixed. I have a significantly enhanced mobile toolbar that I will be adding soon.