Skip to content

feat(VLE): Add progress and status info to step select - #2345

Merged
breity merged 11 commits into
replace-unit-plan-with-enhanced-step-select-menufrom
add-progress-to-step-select
Oct 5, 2026
Merged

breity merged 11 commits into
replace-unit-plan-with-enhanced-step-select-menufrom
add-progress-to-step-select

Conversation

@breity

@breity breity commented Oct 2, 2026

Copy link
Copy Markdown
Member

Changes

Converts the step select dropdown to a menu with collapsible lessons:

  • Each lesson includes a progress spinner indicating percent completed with tooltip showing ratio of steps completed.
  • Expanding a lesson shows all the steps within. Each step includes a checkmark if the step has been completed.
  • Selecting a step navigates to that step.
  • Lessons and steps also show lock icons if they are not visitable.
  • Total unit progress is shown at the top of the menu.

Also includes some UI style changes:

  • Node icons no longer include a colored wrapper container, but just consist of the icon in its assigned color.
  • Increases border-radius for some UI elements (buttons, cards, dialog containers, etc.).
  • Changes button text to normal case from uppercase.

Test

  • Make sure step select operates properly as before and that you can navigate to different steps using the menu.
  • Ensure that any changes in state (unlock steps/lesson, step completed, lesson completion %, steps added via branch selection) are reflected in the step select menu.
  • Ensure there aren't any visual or layout glitches for node icons across the VLE and other apps (grading, authoring).

@breity
breity requested a review from hirokiterashima October 2, 2026 17:32
@breity breity self-assigned this Oct 2, 2026
@qltysh

qltysh Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Qlty


Coverage Impact

Unable to calculate total coverage change because base branch coverage was not found.

Modified Files with Diff Coverage (4)

RatingFile% DiffUncovered Line #s
New file Coverage rating: A
...t/themeComponents/nodeStatusIcon/node-status-icon.component.ts100.0%
New file Coverage rating: B
...authoringTool/teacher-node-icon/teacher-node-icon.component.ts0.0%19
New file Coverage rating: C
...emes/default/themeComponents/stepTools/step-tools.component.ts100.0%
New file Coverage rating: A
...es/default/themeComponents/stepSelect/step-select.component.ts90.2%48-50, 53-54
Total89.7%
🤖 Increase coverage with AI coding...
In the `add-progress-to-step-select` branch, add test coverage for this new code:

- `src/assets/wise5/authoringTool/teacher-node-icon/teacher-node-icon.component.ts` -- Line 19
- `src/assets/wise5/themes/default/themeComponents/stepSelect/step-select.component.ts` -- Lines 48-50 and 53-54

🚦 See full report on Qlty Cloud »

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

@hirokiterashima hirokiterashima left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great UI improvement! A few comments while reviewing, see below.

  1. When the dropdown is not shown, should the checkmark be right-aligned to be consistent?Image

  2. Remove isGroup in node-icon.component.ts now that we don't use it in the template?

  3. See minor inline comments.

@if (nodeStatus.isCompleted || nodeStatus.isWarn) {
<mat-icon
class="secondary-text"
class="s{{ sizeClass }} {{ customClass }}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove typo?

Suggested change
class="s{{ sizeClass }} {{ customClass }}"
class="{{ sizeClass }} {{ customClass }}"

Comment on lines 3 to 4
import { NodeService } from '../../../../services/nodeService';
import { NodeStatusService } from '../../../../services/nodeStatusService';

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove unused imports. Also remove NodeStatusService spies from this file because StepToolsComponent no longer uses the service.

Suggested change
import { NodeService } from '../../../../services/nodeService';
import { NodeStatusService } from '../../../../services/nodeStatusService';

@breity
breity requested a review from hirokiterashima October 5, 2026 16:48

@hirokiterashima hirokiterashima left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good 👍

Can you also remove these before merge?

  • in step-tools.component.spec.ts
    • NoopAnimationsModule (and import)
    • nodeStatus1
    • nodeStatus2
  • in step-select.component.spec.ts
    • NoopAnimationsModule (and import)

@breity
breity merged commit a7d0594 into replace-unit-plan-with-enhanced-step-select-menu Oct 5, 2026
3 checks passed
@breity
breity deleted the add-progress-to-step-select branch October 5, 2026 19:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants