(level)
| 340 | // Returns the display label for levels of type practice/challenge/intro/cutscene/capstone |
| 341 | // For cutscene levels, its name is determined from introContent which should contain the cutscene name. |
| 342 | export function getLevelDisplayNameWithLabel (level) { |
| 343 | if (!level) { |
| 344 | return |
| 345 | } |
| 346 | const contentType = level.getDisplayContentType() |
| 347 | let levelName = i18n(level.attributes, 'displayName') || i18n(level.attributes, 'name') |
| 348 | if (contentType === 'cutscene' && (level.get('introContent') || [])[0]) { |
| 349 | levelName = level.get('introContent')[0].displayName || levelName |
| 350 | } |
| 351 | |
| 352 | if (contentType === 'capstone') { |
| 353 | return internationalizeLevelType(contentType, false, true) + ': ' + levelName |
| 354 | } |
| 355 | return internationalizeLevelType(contentType) + ': ' + levelName |
| 356 | } |
| 357 | |
| 358 | // OLD TEACHER DASHBOARD |
| 359 | // Only for cinematics/interactives |
nothing calls this directly
no test coverage detected