Skip to content

Conversation

@Rana7xi
Copy link

@Rana7xi Rana7xi commented Jan 28, 2026

Description

This pull request completes a major rebase of the pr-415 branch onto the 10.0.x branch, incorporating Angular 18 upgrade changes and resolving many merge conflicts. The PR includes component migrations from CoffeeScript to TypeScript, new features for student and tutorial enrolment, enhanced visualisation components, and various bug fixes.

Type of change

  • New feature (non-breaking change which adds functionality)

How Has This Been Tested?

The rebase was completed successfully with all merge conflicts resolved. The following areas were tested during conflict resolution:

  • Module Configuration: Verified all Angular and AngularJS module imports and declarations
  • Component Integration: Ensured migrated components are properly registered and downgraded for AngularJS compatibility
  • Template Bindings: Updated all template references to use correct component selectors and input bindings
  • Dependency Resolution: Confirmed package.json and package-lock.json are consistent with Angular 18 requirements

Testing Checklist:

  • Tested in latest Chrome
  • Tested in latest Safari
  • Tested in latest Firefox

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have requested a review on the Pull Request

leocomsci and others added 30 commits January 13, 2026 05:12
Migrate application projects to the new build system. Application projects that are using the '@angular-devkit/build-angular' package's 'browser' and/or 'browser-esbuild' builders will be migrated to use the new 'application' builder. You can read more about this, including known issues and limitations, here: https://angular.dev/tools/cli/build-system-migration
Replace deprecated HTTP related modules with provider functions
macite and others added 27 commits January 26, 2026 06:34
Updated Both Progress Burndown Chart And Pie Chart
Change by Brandon
* feat: create initial files for migration of project-tasks-list

* feat: create initial files for migration of project-tasks-list

* Revert "feat: create initial files for migration of project-tasks-list"

This reverts commit 3d047b3.

* refactor: migrate project-tasks-list component to TypeScript

* chore: update Angular module files for project-tasks-list migration

* fix: update project progress dashboard template

* chore: update tasks CoffeeScript file

* style: update task status colors generator mixin

* feat: add order-by and tasks-for-group-set pipes

* fix: address layout and styling issues in project-tasks-list

- Ensure task boxes are consistent in size
- Align layout to match the original design for row consistency
- Correct hover effect to include bold styling for 'Assignment #'
  using a tooltip component and change color to black
- Add blue outline on task box click
- Update Angular module file
- Update global styles

* chore: remove deprecated CoffeeScript and template files for project-tasks-list

* style: update styles for project-tasks-list component

* style: update outline and styles for project-tasks-list component

* fix: minor fixes for project tasks list

---------

Co-authored-by: Andrew Cain <macite@gmail.com>
* fix: ensure test dependencies are compatible

This commit fixes dependencies issues that causes

- `npm install` fails
- `ng test` does not pick up any specs

* test: add test command and doc

* fix: add missing dependencies in component tests

This commits ensure the unit tests are setup with correct dependencies.

* fix: disable incomplete user service tests

* ci: run unit tests in GitHub CI

We use 2 Karma configurations to regulate how tests are run locally and
in CI.

- In development, the server runs forever with watch mode, using Chrome
browser
- In CI, the service runs once, using Chrome headless

* refactor: remove task sheet viewer component

* new: create inital files for grade-icon migration

* refactor: unlink old component, add in new and downgrade

* migrate: complete grade-icon component migration

* refactor: remove old grade-icon component

* refactor: update all usages of component

* refactor: improve component styling

* test: add unit tests for grade-icon component

* docs: update Thoth Tech build badge reference

* refactor: remove duplicate line in scss files

* refactor: use prettier on migrated component

* feat: format code using ESLint and Prettier

This adds ability to format code using both ESLint and Prettier rules.

* fix: include angular relevant lint rules

* fix: address minor eslint issues

* fix: report all lint issues as warning

There are a large number of violations in the code base. We will need to
incrementally address them in future pull requests.

* docs: update formatting instructions

* ci: use same lint command for development and CI

* fix: escape dashes in unicode regex

This fixes 'Range out of order in character class' error when trying to
parse regex marked with `/u` unicode flag.

* new: create initial files for migration of grade-task-modal

* new: create service to show grade-task-modal

* refactor: add and downgrade service to angularjs module

* refactor: unlink old component and add in new

* refactor: update task service to call migrated component

* migrate: complete migration for rating quality-point tasks

* refactor: add ability to grade tasks, tidy up component

* refactor: prevent negative ratings

* test: add unit tests

* refactor: remove old component files

* fix: buttons alignment in safari

* refactor: add spacing between rating and grading

* refactor: ran prettier

* refactor: append df prefix to component selector

* refactor: remove br and add spacing with ngstyle

* style: remove inline style and create class

* refactor: perform rating calculation in ts file

* refactor: allow mat-slider to begin at 0

* refactor: replace buttons style with align

* style: replace margin with padding

* test: fix test to reflect rating of 0

* test: add test for rating label

* refactor: remove console logging

* fix: fix some minor error

* chore: change  welcome component name

---------

Co-authored-by: Tan Le <tan.le@hey.com>
Co-authored-by: Perry Rose <p@erryro.se>
Co-authored-by: PerryRose <49971210+PerryRose@users.noreply.github.com>
Co-authored-by: Andrew Cain <macite@gmail.com>
Co-authored-by: A Luan Luong <leocomsci@users.noreply.github.com>
Copy link

@rammakablecode rammakablecode left a comment

Choose a reason for hiding this comment

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

Really appreciated the Prettier & lint cleanups throughout the touched files. The formatting is consistent and makes the migrated TypeScript components much easier to read and review. The CoffeeScript → TypeScript migrations also look sensible and well-contained.

The new enrolment features and visualisation updates integrate cleanly with the existing modules, and it’s clear care was taken to keep AngularJS compatibility in place during the transition.

Given the size and scope of the changes, I couldn’t confidently verify every important component path end-to-end, but nothing stood out as risky or concerning during review.

Copy link

@JeffySam JeffySam left a comment

Choose a reason for hiding this comment

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

ice work on the Prettier and lint tidy-ups across the files touched in this PR. The formatting is much more consistent now, which makes the migrated TypeScript components easier to follow and review. The CoffeeScript to TypeScript migrations feel clean and well scoped, without unnecessary changes creeping in.

The enrolment features and visual updates fit smoothly into the existing structure, and it’s clear that AngularJS compatibility was kept front of mind throughout the changes. The hybrid approach looks to be handled carefully.

Given the breadth of the update, I wasn’t able to fully exercise every critical path end-to-end, but nothing stood out as risky or concerning during review. Overall, this looks solid and thoughtfully implemented.

Copy link

@ishika021 ishika021 left a comment

Choose a reason for hiding this comment

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

As it is quite a significant undertaking with the description indicating that it:

Rebases pr-415 on 10.0.x
Incorporates changes from the Angular 18 upgrade
Resolves conflicts from the original PR due to updating
Migrates components from CoffeeScript → TypeScript
Adds new Student/Tutorial Enrolment functionality for the updated application
Updates any components used for visualisation.
Includes other bug fixes.
This PR involves significant changes at an infrastructure level (Angular 18 upgrade and rebasing conflict resolution) as well as functional changes (Enrolment features and Visualisation updates). Additionally, the changes involved in migrating the code from CoffeeScript → TypeScript are quite large and considered a large-scale refactor. As such, the combination of all these changes carries a relatively high degree of risk regarding merging with respects to regressions. This can create ambiguity in terms of what functionality is correct because all functional functionality has to be tested separately, which creates difficulties for verifying regressions.

I'll really appreciate if you made sure to properly downgrade all moved components so they're fully functional with AngularJS; updated all module imports and declarations to reflect Angular 18; changed the templates and bindings to fit the newly written components; and did your browser-level smoke testing on Chrome, Safari and Firefox.

Rest all is good to go.

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.