Skip to content

Release 3.6.3 to 3.8.4 - #463

Closed
snehar-nd wants to merge 6 commits into
release-3.8.4from
release-3.6.3
Closed

snehar-nd wants to merge 6 commits into
release-3.8.4from
release-3.6.3

Conversation

@snehar-nd

Copy link
Copy Markdown
Contributor

📋 Description

JIRA ID:

Please provide a summary of the change and the motivation behind it. Include relevant context and details.


✅ Type of Change

  • 🐞 Bug fix (non-breaking change which resolves an issue)
  • New feature (non-breaking change which adds functionality)
  • 🔥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 🛠 Refactor (change that is neither a fix nor a new feature)
  • ⚙️ Config change (configuration file or build script updates)
  • 📚 Documentation (updates to docs or readme)
  • 🧪 Tests (adding new or updating existing tests)
  • 🎨 UI/UX (changes that affect the user interface)
  • 🚀 Performance (improves performance)
  • 🧹 Chore (miscellaneous changes that don't modify src or test files)

ℹ️ Additional Information

Please describe how the changes were tested, and include any relevant screenshots, logs, or other information that provides additional context.

Sneha and others added 5 commits June 25, 2026 16:25
Added providerServiceMapID validation in data sync login flow.
After successful authentication, the data sync user's PSM is compared
against the main session's PSM. If they differ (e.g., Mysuru nurse
trying to sync a Vizag van), an alert is shown and sync is blocked.

- Alert: 'Data sync user does not belong to the same VAN'
- Clears serverKey so the sync screen remains locked
- Applies to both normal and concurrent-login (doLogout) flows

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Block data sync login if the authenticated data sync user is different
from the logged-in MMU session user. Compares userID from the
userAuthenticate API response against the session's stored userID.
Shows alert 'Sync user is not valid' and clears serverKey if mismatch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(stoptb): add Nikshay results CSV upload tab to camp hub dialog

Adds the upload half of the Nikshay ID Generator round trip: a new
tab lets camp staff pick the visit date and the app's results CSV,
posts it to MMU-API's importResultsCsv endpoint, and shows how many
Nikshay IDs were written back versus how many rows need manual
review or failed, with beneficiary names so staff know who to check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* feat: nikshaya id syn screens

* feat(stoptb): gate Nikshay Sync nav item behind Stop TB env flag

Hides the Nikshay Sync header tab outside Stop TB deployments by
reusing environment.isMMUOfflineQRCode, the same flag that gates the
Camp Hub QR code button on the login page. The Camp Hub results
upload tab needed no change: that dialog is only reachable through
openQrDialog(), already behind the same flag.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Sneha <sneha@ADMINs-MacBook-Pro.local>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: a55ecc33-005a-4956-92cf-a1567f789af1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

* fix: replace native alert() with confirmationService in AppHeaderComponent

* fix: address CodeRabbit review comments in AppHeaderComponent

* fix(auth-guard): remove unmanaged currentLangugae$ subscription

* chore(auth-guard): add required GPL-3.0 header

* fix(auth-guard): return UrlTree/boolean from canActivate

* docs: add CONTRIBUTING.md guide for MMU-UI contributors

* docs: fix README setup instructions and Common-UI submodule initialization

* refactor: implement standard Reactive Forms validation in DataSyncLoginComponent

* feat(core): add aria labels to mobile navbar toggler

* fix(rxjs): replace internal rxjs imports with public API paths

* fix(core): replace native alert() with ConfirmationService in AppHeaderComponent

* chore(deps-dev): bump karma-jasmine-html-reporter from 2.1.0 to 2.2.0

Bumps [karma-jasmine-html-reporter](https://github.com/dfederm/karma-jasmine-html-reporter) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/dfederm/karma-jasmine-html-reporter/releases)
- [Commits](dfederm/karma-jasmine-html-reporter@v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: karma-jasmine-html-reporter
  dependency-version: 2.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump websocket-driver from 0.7.4 to 0.7.5

Bumps [websocket-driver](https://github.com/faye/websocket-driver-node) from 0.7.4 to 0.7.5.
- [Changelog](https://github.com/faye/websocket-driver-node/blob/main/CHANGELOG.md)
- [Commits](faye/websocket-driver-node@0.7.4...0.7.5)

---
updated-dependencies:
- dependency-name: websocket-driver
  dependency-version: 0.7.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump axios from 1.16.0 to 1.18.1

Bumps [axios](https://github.com/axios/axios) from 1.16.0 to 1.18.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.16.0...v1.18.1)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump engine.io from 6.6.4 to 6.6.9

Bumps [engine.io](https://github.com/socketio/socket.io) from 6.6.4 to 6.6.9.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/engine.io@6.6.4...engine.io@6.6.9)

---
updated-dependencies:
- dependency-name: engine.io
  dependency-version: 6.6.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump immutable from 4.3.8 to 4.3.9

Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.3.8 to 4.3.9.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](immutable-js/immutable-js@v4.3.8...v4.3.9)

---
updated-dependencies:
- dependency-name: immutable
  dependency-version: 4.3.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* feat(stoptb): add a Down Sync tab to the data sync screen

Adds the UI for the central-to-local down-sync, which until now could only be
triggered by calling the API directly - MMU-UI had no hook for
/dataSyncActivity/startDownSync at all.

A fifth tab in the data sync workarea, alongside Data Upload, Data Download,
Generate BeneficiaryID and Inventory Data Download, so it needs no new route,
menu entry or permission. It shows a progress bar, the current table, tables
completed, records inserted / updated / skipped, conflicts, and a list of any
failed tables. Van ID and providerServiceMapID come from session storage exactly
as the Data Download tab takes them.

Its progress state is deliberately separate from showProgressBar /
progressValue: those belong to the up-sync and the master download, and sharing
them would let one sync clear the other's progress bar. The button is still
disabled while either is running, since both drive the same API.

Polling stops on inProgress = false rather than on percentage >= 100. The master
download stops at 100%, which never arrives when a run fails part way; the
down-sync reports inProgress explicitly, so a failed run ends the poll and shows
the failed tables instead of spinning. canDeactivate blocks navigation while a
down-sync is running, and ngOnDestroy clears the interval.

Note src/environments/environment.ts is gitignored, so the two URLs are added to
the tracked environment files only; a local environment.ts has to be refreshed
from environment.local.ts to pick them up.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: add the screen for downsync

* fix: update pom version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Lakshy S. <suntiwari3495@gmail.com>
Co-authored-by: VarshiniGunti <guntiv@iitbhilai.ac.in>
Co-authored-by: Aarti Panchal <aartipanchal539@gmail.com>
Co-authored-by: Rahul Tripathi <rahul@Rahuls-Mac-mini.local>
Co-authored-by: Arpit Tripathi <arpittripathiayo@gmail.com>
Co-authored-by: pratyksh gupta <pratykshgupta@pratykshs-MacBook-Pro.local>
Co-authored-by: Kaushik Kumar <kaushikrjpm10@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: vanitha1822 <vanitha@navadhiti.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Sneha <sneha@ADMINs-MacBook-Pro.local>
@sonarqubecloud

sonarqubecloud Bot commented Sep 8, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@snehar-nd

Copy link
Copy Markdown
Contributor Author

Superseded by #469.

This PR cannot be made mergeable in place. Its head branch is release-3.6.3, which is protected by a "changes must be made through a pull request" rule, so a conflict resolution cannot be pushed onto it.

#468 was an attempt to clear the conflict by merging release-3.8.4 into release-3.6.3, but it was squash-merged. That flattened the merge commit into a single-parent commit, so git lost the record that release-3.8.4 had been merged in — the merge base stayed at the original 8785cfd and this PR recomputed the identical conflict.

#469 resolves it in the other direction: based on release-3.8.4 with release-3.6.3 merged in, so it merges conflict-free and carries the same content.

@snehar-nd snehar-nd closed this Sep 8, 2026
vishwab1 pushed a commit that referenced this pull request Sep 8, 2026
* fix: block data sync if user does not belong to same VAN

Added providerServiceMapID validation in data sync login flow.
After successful authentication, the data sync user's PSM is compared
against the main session's PSM. If they differ (e.g., Mysuru nurse
trying to sync a Vizag van), an alert is shown and sync is blocked.

- Alert: 'Data sync user does not belong to the same VAN'
- Clears serverKey so the sync screen remains locked
- Applies to both normal and concurrent-login (doLogout) flows

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Revert "fix: block data sync if user does not belong to same VAN"

This reverts commit 3ea1285.

* fix: validate data sync userID matches main session userID

Block data sync login if the authenticated data sync user is different
from the logged-in MMU session user. Compares userID from the
userAuthenticate API response against the session's stored userID.
Shows alert 'Sync user is not valid' and clears serverKey if mismatch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(stoptb): Nikshay sync screens and results CSV upload (#460)

* feat(stoptb): add Nikshay results CSV upload tab to camp hub dialog

Adds the upload half of the Nikshay ID Generator round trip: a new
tab lets camp staff pick the visit date and the app's results CSV,
posts it to MMU-API's importResultsCsv endpoint, and shows how many
Nikshay IDs were written back versus how many rows need manual
review or failed, with beneficiary names so staff know who to check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* feat: nikshaya id syn screens

* feat(stoptb): gate Nikshay Sync nav item behind Stop TB env flag

Hides the Nikshay Sync header tab outside Stop TB deployments by
reusing environment.isMMUOfflineQRCode, the same flag that gates the
Camp Hub QR code button on the login page. The Camp Hub results
upload tab needed no change: that dialog is only reachable through
openQrDialog(), already behind the same flag.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Sneha <sneha@ADMINs-MacBook-Pro.local>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>

* Sn/merge 3.6.3 to 3.8.4 (#468)

* fix: replace native alert() with confirmationService in AppHeaderComponent

* fix: address CodeRabbit review comments in AppHeaderComponent

* fix(auth-guard): remove unmanaged currentLangugae$ subscription

* chore(auth-guard): add required GPL-3.0 header

* fix(auth-guard): return UrlTree/boolean from canActivate

* docs: add CONTRIBUTING.md guide for MMU-UI contributors

* docs: fix README setup instructions and Common-UI submodule initialization

* refactor: implement standard Reactive Forms validation in DataSyncLoginComponent

* feat(core): add aria labels to mobile navbar toggler

* fix(rxjs): replace internal rxjs imports with public API paths

* fix(core): replace native alert() with ConfirmationService in AppHeaderComponent

* chore(deps-dev): bump karma-jasmine-html-reporter from 2.1.0 to 2.2.0

Bumps [karma-jasmine-html-reporter](https://github.com/dfederm/karma-jasmine-html-reporter) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/dfederm/karma-jasmine-html-reporter/releases)
- [Commits](dfederm/karma-jasmine-html-reporter@v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: karma-jasmine-html-reporter
  dependency-version: 2.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump websocket-driver from 0.7.4 to 0.7.5

Bumps [websocket-driver](https://github.com/faye/websocket-driver-node) from 0.7.4 to 0.7.5.
- [Changelog](https://github.com/faye/websocket-driver-node/blob/main/CHANGELOG.md)
- [Commits](faye/websocket-driver-node@0.7.4...0.7.5)

---
updated-dependencies:
- dependency-name: websocket-driver
  dependency-version: 0.7.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump axios from 1.16.0 to 1.18.1

Bumps [axios](https://github.com/axios/axios) from 1.16.0 to 1.18.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.16.0...v1.18.1)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump engine.io from 6.6.4 to 6.6.9

Bumps [engine.io](https://github.com/socketio/socket.io) from 6.6.4 to 6.6.9.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/engine.io@6.6.4...engine.io@6.6.9)

---
updated-dependencies:
- dependency-name: engine.io
  dependency-version: 6.6.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump immutable from 4.3.8 to 4.3.9

Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.3.8 to 4.3.9.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](immutable-js/immutable-js@v4.3.8...v4.3.9)

---
updated-dependencies:
- dependency-name: immutable
  dependency-version: 4.3.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* feat(stoptb): add a Down Sync tab to the data sync screen

Adds the UI for the central-to-local down-sync, which until now could only be
triggered by calling the API directly - MMU-UI had no hook for
/dataSyncActivity/startDownSync at all.

A fifth tab in the data sync workarea, alongside Data Upload, Data Download,
Generate BeneficiaryID and Inventory Data Download, so it needs no new route,
menu entry or permission. It shows a progress bar, the current table, tables
completed, records inserted / updated / skipped, conflicts, and a list of any
failed tables. Van ID and providerServiceMapID come from session storage exactly
as the Data Download tab takes them.

Its progress state is deliberately separate from showProgressBar /
progressValue: those belong to the up-sync and the master download, and sharing
them would let one sync clear the other's progress bar. The button is still
disabled while either is running, since both drive the same API.

Polling stops on inProgress = false rather than on percentage >= 100. The master
download stops at 100%, which never arrives when a run fails part way; the
down-sync reports inProgress explicitly, so a failed run ends the poll and shows
the failed tables instead of spinning. canDeactivate blocks navigation while a
down-sync is running, and ngOnDestroy clears the interval.

Note src/environments/environment.ts is gitignored, so the two URLs are added to
the tracked environment files only; a local environment.ts has to be refreshed
from environment.local.ts to pick them up.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: add the screen for downsync

* fix: update pom version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Lakshy S. <suntiwari3495@gmail.com>
Co-authored-by: VarshiniGunti <guntiv@iitbhilai.ac.in>
Co-authored-by: Aarti Panchal <aartipanchal539@gmail.com>
Co-authored-by: Rahul Tripathi <rahul@Rahuls-Mac-mini.local>
Co-authored-by: Arpit Tripathi <arpittripathiayo@gmail.com>
Co-authored-by: pratyksh gupta <pratykshgupta@pratykshs-MacBook-Pro.local>
Co-authored-by: Kaushik Kumar <kaushikrjpm10@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: vanitha1822 <vanitha@navadhiti.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Sneha <sneha@ADMINs-MacBook-Pro.local>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Sneha <sneha@ADMINs-MacBook-Pro.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Lakshy S. <suntiwari3495@gmail.com>
Co-authored-by: VarshiniGunti <guntiv@iitbhilai.ac.in>
Co-authored-by: Aarti Panchal <aartipanchal539@gmail.com>
Co-authored-by: Rahul Tripathi <rahul@Rahuls-Mac-mini.local>
Co-authored-by: Arpit Tripathi <arpittripathiayo@gmail.com>
Co-authored-by: pratyksh gupta <pratykshgupta@pratykshs-MacBook-Pro.local>
Co-authored-by: Kaushik Kumar <kaushikrjpm10@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: vanitha1822 <vanitha@navadhiti.com>
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.

1 participant