Skip to content

Conversation

@hirokiterashima
Copy link
Member

@hirokiterashima hirokiterashima commented Nov 18, 2025

Changes

  • Most files now use the modern Angular inject() pattern
  • Code is cleaner and more maintainable
  • Base class service (e.g. projectService) is now injected in the base class using inject() and is automatically available to child classes
  • Child classes only inject their specific services (e.g., DeleteBranchService in
    EditBranchService)
  • Removed all super() calls since the base class no longer has a constructor
  • Cleaned up imports that are no longer needed since it's now injected in the base class

Test

  • Everything works as before, including the recent chatbot feature and UI/UX changes to the notes. No new feature was added.

@qltysh
Copy link

qltysh bot commented Dec 5, 2025

❌ 3 blocking issues (3 total)

Tool Category Rule Count
qlty Duplication Found 26 lines of similar code in 2 locations (mass = 106) 3

@qltysh
Copy link

qltysh bot commented Dec 5, 2025

Qlty

Coverage Impact

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

Modified Files with Diff Coverage (303)

RatingFile% DiffUncovered Line #s
New file Coverage rating: C
...y/library-project-details/library-project-details.component.ts100.0%
New file Coverage rating: A
...l/edit-component-advanced/edit-component-advanced.component.ts100.0%
New file Coverage rating: B
...blic-unit-type-selector/public-unit-type-selector.component.ts100.0%
New file Coverage rating: F
...mponent/choose-new-component/choose-new-component.component.ts66.7%16
New file Coverage rating: B
...p/modules/library/library-filters/library-filters.component.ts100.0%
New file Coverage rating: B
...modules/library/personal-library/personal-library.component.ts50.0%55
New file Coverage rating: C
...p/modules/library/library-project/library-project.component.ts60.0%41-42
New file Coverage rating: A
...r/forgot-teacher-password/forgot-teacher-password.component.ts100.0%
New file Coverage rating: A
src/app/authoring-tool/select-step/select-step.component.ts100.0%
New file Coverage rating: A
...-tool/edit-component-rubric/edit-component-rubric.component.ts100.0%
New file Coverage rating: A
...er-password-verify/forgot-teacher-password-verify.component.ts100.0%
New file Coverage rating: A
src/app/authoring-tool/edit-component-field.component.ts100.0%
New file Coverage rating: F
...dules/library/share-item-dialog/share-item-dialog.component.ts100.0%
New file Coverage rating: F
...gn-in/google-sign-in-button/google-sign-in-button.component.ts25.0%14-16
New file Coverage rating: A
...project-language-chooser/project-language-chooser.component.ts100.0%
New file Coverage rating: B
...nt-password-change/forgot-student-password-change.component.ts100.0%
New file Coverage rating: C
...library/library-project-menu/library-project-menu.component.ts100.0%
New file Coverage rating: B
...ng-tool/edit-common-advanced/edit-common-advanced.component.ts100.0%
New file Coverage rating: A
...eer-grouping-tag/edit-component-peer-grouping-tag.component.ts100.0%
New file Coverage rating: D
...it-connected-components/edit-connected-components.component.ts100.0%
New file Coverage rating: B
src/app/announcement/announcement.component.ts100.0%
New file Coverage rating: F
...ring-tool/edit-component-tags/edit-component-tags.component.ts33.3%39-40
New file Coverage rating: B
...er-password-change/forgot-teacher-password-change.component.ts100.0%
New file Coverage rating: C
...t/forgot-student-username/forgot-student-username.component.ts100.0%
New file Coverage rating: A
...me-page-project-library/home-page-project-library.component.ts100.0%
New file Coverage rating: A
...r/forgot-teacher-username/forgot-teacher-username.component.ts100.0%
New file Coverage rating: F
...es/header/header-account-menu/header-account-menu.component.ts100.0%
New file Coverage rating: A
.../authoring-tool/select-component/select-component.component.ts100.0%
New file Coverage rating: F
...ring-tool/edit-component-json/edit-component-json.component.ts100.0%
New file Coverage rating: A
.../home/discourse-latest-news/discourse-latest-news.component.ts100.0%
New file Coverage rating: D
...l/edit-advanced-component/edit-advanced-component.component.ts100.0%
New file Coverage rating: A
...kground/edit-connected-components-with-background.component.ts100.0%
New file Coverage rating: A
...horing-tool/edit-question-bank/edit-question-bank.component.ts50.0%30
New file Coverage rating: A
src/app/modules/library/library/library.component.ts100.0%
New file Coverage rating: A
src/app/discourse-feed/discourse-feed.component.ts100.0%
New file Coverage rating: C
...library/library-group-thumbs/library-group-thumbs.component.ts100.0%
New file Coverage rating: C
src/app/login/login-home/login-home.component.ts80.0%40
New file Coverage rating: A
...lect-step-and-component/select-step-and-component.component.ts100.0%
New file Coverage rating: A
src/app/curriculum/curriculum.component.ts100.0%
New file Coverage rating: B
...s/library/copy-project-dialog/copy-project-dialog.component.ts100.0%
New file Coverage rating: A
...-default-feedback/edit-component-default-feedback.component.ts50.0%28
New file Coverage rating: B
src/app/contact/contact-form/contact-form.component.ts100.0%
New file Coverage rating: A
...t/forgot-student-password/forgot-student-password.component.ts100.0%
New file Coverage rating: B
src/app/home/home.component.ts100.0%
New file Coverage rating: D
src/app/common/edit-profile/edit-profile.component.ts100.0%
New file Coverage rating: A
...assword-security/forgot-student-password-security.component.ts100.0%
New file Coverage rating: A
...r-password-complete/forgot-user-password-complete.component.ts100.0%
New file Coverage rating: B
src/app/modules/header/header.component.ts83.3%29
New file Coverage rating: A
...rse-category-activity/discourse-category-activity.component.ts100.0%
New file Coverage rating: F
src/app/services/config.service.ts100.0%
New file Coverage rating: D
...library/share-project-dialog/share-project-dialog.component.ts66.7%87
New file Coverage rating: B
...pp/register/register-user-form/register-user-form.component.ts100.0%
New file Coverage rating: A
src/app/services/getWorkgroupService.ts100.0%
New file Coverage rating: A
src/app/modules/shared/hero-section/hero-section.component.ts100.0%
New file Coverage rating: B
...lready-exists/register-google-user-already-exists.component.ts100.0%
New file Coverage rating: A
src/app/register/register-home/register-home.component.ts100.0%
New file Coverage rating: F
src/app/notebook/notebook-notes/notebook-notes.component.ts50.0%36-74
New file Coverage rating: F
src/app/student/auth.guard.ts100.0%
New file Coverage rating: B
...e-account-password/unlink-google-account-password.component.ts66.7%39
New file Coverage rating: F
src/app/notebook/notebook-report/notebook-report.component.ts60.0%52-103
New file Coverage rating: F
src/app/teacher/apply-tags-button/apply-tags-button.component.ts100.0%
New file Coverage rating: D
src/app/notebook/notebook-item/notebook-item.component.ts100.0%
New file Coverage rating: B
src/app/services/news.service.ts100.0%
New file Coverage rating: A
...oose-branch-path-dialog/choose-branch-path-dialog.component.ts100.0%
New file Coverage rating: D
...app/student/add-project-dialog/add-project-dialog.component.ts33.3%51-52
New file Coverage rating: A
src/app/services/accessLinkService.ts100.0%
New file Coverage rating: A
src/app/possible-score/possible-score.component.ts100.0%
New file Coverage rating: A
...gle-account-confirm/unlink-google-account-confirm.component.ts100.0%
New file Coverage rating: C
src/app/services/archive-project.service.ts100.0%
New file Coverage rating: B
src/app/services/data.service.ts100.0%
New file Coverage rating: A
...ister/register-teacher-form/register-teacher-form.component.ts100.0%
New file Coverage rating: D
...udent/student-run-list-item/student-run-list-item.component.ts33.3%46-47
New file Coverage rating: F
src/app/notebook/notebook-parent/notebook-parent.component.ts40.0%18-30
New file Coverage rating: A
src/app/services/projectAssetService.ts100.0%
New file Coverage rating: A
src/app/notebook/notebook-launcher/notebook-launcher.component.ts100.0%
New file Coverage rating: A
src/app/student/student.component.ts100.0%
New file Coverage rating: A
src/app/student/account/edit-profile/edit-profile.component.ts100.0%
New file Coverage rating: A
src/app/teacher/account/edit-profile/edit-profile.component.ts100.0%
New file Coverage rating: F
...ister/register-student-form/register-student-form.component.ts100.0%
New file Coverage rating: F
...app/teacher/abstract-tags-menu/abstract-tags-menu.component.ts100.0%
New file Coverage rating: F
src/app/services/wiseLinkService.ts100.0%
New file Coverage rating: A
src/app/services/workgroup.service.ts100.0%
New file Coverage rating: A
src/app/services/updateWorkgroupService.ts100.0%
New file Coverage rating: F
src/app/student/student.service.ts100.0%
New file Coverage rating: B
...gle-account-success/unlink-google-account-success.component.ts100.0%
New file Coverage rating: F
src/app/services/library.service.ts100.0%
New file Coverage rating: C
src/app/student/student-run-list/student-run-list.component.ts100.0%
New file Coverage rating: A
src/app/modules/shared/edit-password/edit-password.component.ts100.0%
New file Coverage rating: C
src/app/register/abstract-register-user.component.ts100.0%
New file Coverage rating: A
src/app/modules/mobile-menu/mobile-menu.component.ts100.0%
New file Coverage rating: A
src/app/register/register-user-complete.component.ts100.0%
New file Coverage rating: A
src/app/student/student-home/student-home.component.ts100.0%
New file Coverage rating: A
src/app/news/news.component.ts100.0%
New file Coverage rating: F
src/app/student/top-bar/top-bar.component.ts12.5%44-52
New file Coverage rating: F
...p/student/team-sign-in-dialog/team-sign-in-dialog.component.ts100.0%
New file Coverage rating: F
src/app/services/user.service.ts100.0%
New file Coverage rating: A
...urrent-authors-message/concurrent-authors-message.component.ts100.0%
New file Coverage rating: B
...-location/node-icon-and-title/node-icon-and-title.component.ts100.0%
New file Coverage rating: C
...-automated-assessment/choose-automated-assessment.component.ts100.0%
New file Coverage rating: D
...acher/teacher-run-list-item/teacher-run-list-item.component.ts83.3%49
Total86.8%

Showing 100 of 303 files. See full report for all files.

🤖 Increase coverage with AI coding...

In the `use-inject-instead-of-constructor` branch, add test coverage for this new code:

- `src/app/authoring-tool/add-component/choose-new-component/choose-new-component.component.ts` -- Line 16
- `src/app/authoring-tool/edit-advanced-component/edit-component-default-feedback/edit-component-default-feedback.component.ts` -- Line 28
- `src/app/authoring-tool/edit-component-tags/edit-component-tags.component.ts` -- Line 39-40
- `src/app/authoring-tool/edit-question-bank/edit-question-bank.component.ts` -- Line 30
- `src/app/login/login-home/login-home.component.ts` -- Line 40
- `src/app/modules/google-sign-in/google-sign-in-button/google-sign-in-button.component.ts` -- Line 14-16
- `src/app/modules/header/header.component.ts` -- Line 29
- `src/app/modules/library/library-project/library-project.component.ts` -- Line 41-42
- `src/app/modules/library/personal-library/personal-library.component.ts` -- Line 55
- `src/app/modules/library/share-project-dialog/share-project-dialog.component.ts` -- Line 87
- `src/app/modules/shared/unlink-google-account-password/unlink-google-account-password.component.ts` -- Line 39
- `src/app/notebook/notebook-notes/notebook-notes.component.ts` -- Line 36-74
- `src/app/notebook/notebook-parent/notebook-parent.component.ts` -- Line 18-30
- `src/app/notebook/notebook-report/notebook-report.component.ts` -- Line 52-103
- `src/app/student/add-project-dialog/add-project-dialog.component.ts` -- Line 51-52
- `src/app/student/student-run-list-item/student-run-list-item.component.ts` -- Line 46-47
- `src/app/student/top-bar/top-bar.component.ts` -- Line 44-52
- `src/app/teacher/edit-tag/edit-tag.component.ts` -- Line 35-36
- `src/app/teacher/manage-tags-dialog/manage-tags-dialog.component.ts` -- Line 39
- `src/app/teacher/run-settings-dialog/run-settings-dialog.component.ts` -- Line 75
- `src/app/teacher/teacher-run-list-item/teacher-run-list-item.component.ts` -- Line 49
- `src/assets/wise5/authoringTool/add-lesson-button/add-lesson-button.component.ts` -- Line 24
- `src/assets/wise5/authoringTool/add-project/add-project.component.ts` -- Line 36-39
- `src/assets/wise5/authoringTool/components/component-info-dialog/component-info-dialog.component.ts` -- Line 27
- `src/assets/wise5/authoringTool/components/edit-component-advanced-button/edit-component-advanced-button.component.ts` -- Line 17
- `src/assets/wise5/authoringTool/components/translatable-asset-chooser/translatable-asset-chooser.component.ts` -- Line 22
- `src/assets/wise5/authoringTool/create-branch-paths/create-branch-paths.component.ts` -- Line 38-39
- `src/assets/wise5/authoringTool/peer-grouping/edit-peer-grouping-dialog/edit-peer-grouping-dialog.component.ts` -- Line 34-38
- `src/assets/wise5/authoringTool/peer-grouping/select-peer-grouping-dialog/select-peer-grouping-dialog.component.ts` -- Line 36
- `src/assets/wise5/authoringTool/project-authoring-lesson/project-authoring-lesson.component.ts` -- Line 48
- `src/assets/wise5/authoringTool/project-authoring-step/project-authoring-step.component.ts` -- Line 43-44
- `src/assets/wise5/authoringTool/project-list/project-list.component.ts` -- Lines 36 and 39
- `src/assets/wise5/authoringTool/select-branch-criteria/select-branch-criteria.component.ts` -- Line 26
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/component-grading.component.ts` -- Line 22
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/component-summary/component-summary.component.ts` -- Line 34-38
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/edit-component-annotations/edit-component-annotations.component.ts` -- Line 23-25
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/grading-edit-component-max-score/grading-edit-component-max-score.component.ts` -- Line 24-25
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/manageStudents/add-team-button/add-team-button.component.ts` -- Line 16
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/manageStudents/manage-team/manage-team.component.ts` -- Line 44
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/milestones/milestone-details-dialog/milestone-details-dialog.component.ts` -- Line 31-32
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/milestones/milestone-details/milestone-details.component.ts` -- Line 36-38
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/milestones/milestone-workgroup-item/milestone-workgroup-item.component.ts` -- Line 41-43
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/nodeGrading/node-class-responses/node-class-responses.component.ts` -- Line 31
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/nodeGrading/node-workgroup-item/node-workgroup-item.component.ts` -- Line 45
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/nodeProgress/navItemScore/nav-item-score.component.ts` -- Line 18
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/pause-screens-menu/pause-screens-menu.component.ts` -- Line 29
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/peer-group/peer-group-period/peer-group-period.component.ts` -- Line 29
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/shared/notifications-menu/notifications-menu.component.ts` -- Line 31
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/studentGrading/step-item/step-item.component.ts` -- Line 42-44
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/view-component-revisions/view-component-revisions.component.ts` -- Line 31-33
- `src/assets/wise5/classroomMonitor/classroomMonitorComponents/workgroup-component-grading/workgroup-component-grading.component.ts` -- Line 26-28
- `src/assets/wise5/classroomMonitor/dataExport/export-one-workgroup-per-row/export-one-workgroup-per-row.component.ts` -- Line 25-26
- `src/assets/wise5/common/stepTools/step-tools.component.ts` -- Line 36
- `src/assets/wise5/components/animation/animation-authoring/animation-authoring.component.ts` -- Line 42
- `src/assets/wise5/components/conceptMap/concept-map-authoring/concept-map-authoring.component.ts` -- Line 33
- `src/assets/wise5/components/dialogGuidance/dialog-guidance-student/dialog-guidance-student.component.ts` -- Line 51
- `src/assets/wise5/components/discussion/discussion-show-work/discussion-show-work.component.ts` -- Line 18
- `src/assets/wise5/components/discussion/discussion-student/discussion-student.component.ts` -- Line 42-73
- `src/assets/wise5/components/draw/draw-authoring/draw-authoring.component.ts` -- Line 66
- `src/assets/wise5/components/draw/draw-show-work/draw-show-work.component.ts` -- Line 14
- `src/assets/wise5/components/embedded/embedded-authoring/embedded-authoring.component.ts` -- Line 31
- `src/assets/wise5/components/embedded/embedded-show-work/embedded-show-work.component.ts` -- Line 19-25
- `src/assets/wise5/components/graph/graph-show-work/graph-show-work.component.ts` -- Line 18
- `src/assets/wise5/components/graph/graphService.ts` -- Line 300
- `src/assets/wise5/components/label/label-show-work/label-show-work.component.ts` -- Line 20
- `src/assets/wise5/components/match/match-show-work/match-show-work.component.ts` -- Line 19
- `src/assets/wise5/components/match/match-student/match-student-default/match-student-default.component.ts` -- Line 55-204
- `src/assets/wise5/components/multipleChoice/multiple-choice-student/multiple-choice-student.component.ts` -- Line 76
- `src/assets/wise5/components/openResponse/open-response-student/open-response-student.component.ts` -- Lines 60 and 64
- `src/assets/wise5/components/outsideURL/outside-url-authoring/outside-url-authoring.component.ts` -- Line 68-69
- `src/assets/wise5/components/table/table-show-work/table-show-work.component.ts` -- Line 37-39
- `src/assets/wise5/directives/wise-tinymce-editor/wise-authoring-tinymce-editor.component.ts` -- Line 46
- `src/assets/wise5/services/notificationService.ts` -- Line 167-176

🚦 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.

~ Conflicts:
~	src/app/notebook/notebook-launcher/notebook-launcher.component.ts
~	src/app/notebook/notebook-notes/notebook-notes.component.ts
~	src/app/notebook/notebook-report/notebook-report.component.ts
~	src/assets/wise5/authoringTool/components/component-authoring.component.ts
~	src/assets/wise5/services/projectTranslationService.ts
~	src/assets/wise5/services/studentProjectTranslationService.ts
~	src/assets/wise5/themes/default/themeComponents/stepTools/step-tools.component.ts
~	src/messages.xlf
@hirokiterashima hirokiterashima self-assigned this Jan 29, 2026
@hirokiterashima hirokiterashima added this to the Tech Debt 15 -> 14 milestone Jan 29, 2026
@hirokiterashima hirokiterashima marked this pull request as ready for review January 29, 2026 02:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants