Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
381 commits
Select commit Hold shift + click to select a range
908e2e3
fix: extract nested ternary into a helper function for SonarQube main…
Jaden300 Oct 7, 2026
5cca708
fix: add dark mode pill colors for form event types and clarify unsav…
Jaden300 Oct 7, 2026
2a6febf
Fix:Fixed text overflowing
saisandeepkoritala Oct 7, 2026
abed5f6
Fix:Fixed text overflowing and sonarqube issues
saisandeepkoritala Oct 7, 2026
db7e8e9
fix(PeopleTableDetails): add min-width: 0 to task name to prevent ove…
linlin-husky Oct 7, 2026
c57b5ab
Prevent duplicate PR entries and retain added PRs
muthapriyanka Oct 7, 2026
ce7bdaf
Fix team code suggestions in dark mode
Isha2303165 Oct 7, 2026
dfa232a
Add color-coded Total Org Summary sections
muthapriyanka Oct 8, 2026
b210880
Label committed-hours '40' bucket as 31-40 hrs to match backend
Gayatrisawant19 Oct 8, 2026
6d8c463
fix: improve tools dashboard filters and chart layout
Oct 9, 2026
6f9d1e6
fix(rental-tracking): scope tool filter to project and fix narrow lay…
Oct 9, 2026
f83e9df
fix(total-construction): remove duplicate charts in Financials Tracki…
Oct 9, 2026
16cb0cb
fix(total-construction): keep Loss Tracking legend inside its card
Oct 9, 2026
d815b11
fix(total-construction): fix map dark mode and Loss Tracking tooltip
Oct 9, 2026
f132334
fix(total-construction): fix Project Status, Material Consumption and…
Oct 9, 2026
52f282f
fix(PRGrading): restore modal scroll styles, fix reviewer name, and r…
linlin-husky Oct 9, 2026
ca0d4ed
ci: trigger netlify rebuild
linlin-husky Oct 9, 2026
5f18418
ci: trigger netlify deployment retry
linlin-husky Oct 9, 2026
1db1ed1
fix: resolve merge conflicts with development branch and add descript…
linlin-husky Oct 9, 2026
ba4e0e4
fix: resolve tools availability SonarCloud issue and align date filters
Oct 9, 2026
a5fb58b
chore: update yarn.lock
linlin-husky Oct 9, 2026
6a4983b
fix(Projects): scope dropdown CSS, fix filter callback wiring, and re…
linlin-husky Oct 9, 2026
158486f
fix(Projects): resolve merge conflicts and apply scoped dropdown CSS
linlin-husky Oct 9, 2026
601d159
fix(config): update Node version to 22 in .nvmrc to satisfy dependencies
linlin-husky Oct 9, 2026
4e67b86
fix(Projects): remove git conflict markers in projects.module.css
linlin-husky Oct 9, 2026
a83b422
fix(ci): add generated yarn.lock for Node 22 support
linlin-husky Oct 9, 2026
0803469
fix(Projects): remove conflict markers and finalize ProjectTableHeade…
linlin-husky Oct 9, 2026
a2f4d9f
fix(config): specify Node 22 in mise.toml for runtime compatibility
linlin-husky Oct 10, 2026
a72f77c
fix(ci): restore original yarn.lock from development to maintain Node…
linlin-husky Oct 10, 2026
a39c639
fix(lessons-learnt): avoid `this` in chart tick callback (Sonar S6757)
Oct 10, 2026
054173a
fix: restrict skill filter and search to each member's top 4 skills p…
Jaden300 Oct 10, 2026
4aac996
Fix missing labels for Loss Tracking Chart
Oct 11, 2026
c62e1a3
Added Delete Button In Image Preview For Cleaner Deletion Once Selected
ShreyasB1806 Oct 11, 2026
81f5ced
Merge branch 'development' of github.com:OneCommunityGlobal/HighestGo…
Oct 12, 2026
019e4b2
Fix Project Status comparison race condition and loading states
AmaanSyed09 Oct 12, 2026
1b564bb
fix(HoursCompletedBarChart): correct subtitle text and bar percentage…
Adit0717 Oct 12, 2026
00a6260
feat: show volunteer country counts on summary and team locations
muthapriyanka Oct 12, 2026
26a5ef4
fix: retain existing total countries display
muthapriyanka Oct 12, 2026
fa95a5a
Show week off reason on click and test the week match
shubhamjakhete Oct 12, 2026
be405e0
Keep week off notice readable in dark mode
shubhamjakhete Oct 12, 2026
1cf3111
Build week off test dates in Pacific time
shubhamjakhete Oct 13, 2026
22344e1
fix(job-application): catch email domain typos on the application form
AakashVidiyala Oct 13, 2026
14f595e
fix(job-application): keep email error and suggestion colors in dark …
AakashVidiyala Oct 13, 2026
7e5a9de
fix(job-application): suggest the provider when both the domain and e…
AakashVidiyala Oct 13, 2026
5c17ab1
fix: confirm timer stop after time log
Oct 13, 2026
f131fa3
fix(job-application): return focus to the email field after applying …
AakashVidiyala Oct 13, 2026
1f51fed
feat(job-application): make the email suggestion an explicit "Use thi…
AakashVidiyala Oct 13, 2026
8160a46
style(job-application): reuse the resume Remove button style for "Use…
AakashVidiyala Oct 13, 2026
cd41f7e
fix(job-application): stop suggesting changes to real regional email …
AakashVidiyala Oct 13, 2026
0bf6e81
chore(job-application): write hidden-character ranges as escapes
AakashVidiyala Oct 13, 2026
b249766
fix(job-application): keep internationalized TLDs whole in the IANA list
AakashVidiyala Oct 13, 2026
49c4c23
fix resolved task tracking review issues
Isha2303165 Oct 13, 2026
030ffb3
Merge remote-tracking branch 'origin/development' into shubham-weekly…
shubhamjakhete Oct 13, 2026
07d950e
Fix SonarCloud issues in week off notice
shubhamjakhete Oct 13, 2026
b5df6aa
fix(TotalOrgSummary): correct default previous week date range calcul…
Adit0717 Oct 13, 2026
eec4f73
Merge pull request #5440 from OneCommunityGlobal/Akshay_fix_skills_ov…
one-community Oct 14, 2026
d470f77
fix: resolve remaining merge conflicts and cleanup deprecated pie charts
linlin-husky Oct 14, 2026
9961ac0
fix(PRGrading): render InlinePRSummary in view layer to satisfy unit …
linlin-husky Oct 14, 2026
17f7c71
fix(PRGrading): use Set.has() for promotedReviewerIds and update Prop…
linlin-husky Oct 14, 2026
f795f71
fix(profile): prevent scrolling from changing edited hours
adit24dhaya Oct 14, 2026
e49697e
fix(PRGrading): fix prettier formatting error
linlin-husky Oct 14, 2026
3840385
Fixed QUality Gate Issues
ShreyasB1806 Oct 14, 2026
02518e5
fix: restore bio announcement criteria to 80 tangible hours and 8 val…
AakashVidiyala Oct 14, 2026
3f49674
Merge pull request #5657 from OneCommunityGlobal/Aakash-hotfix-bio-cr…
one-community Oct 14, 2026
98ddd82
Merge pull request #5491 from OneCommunityGlobal/Linlin-fix-promote-b…
one-community Oct 14, 2026
0360814
fix: remove weak randomness from timer request id
Oct 14, 2026
f0ac097
Preserve latest Project Status request ID after completion
AmaanSyed09 Oct 14, 2026
56274e4
refactor(job-application): resolve SonarCloud issues in email validation
AakashVidiyala Oct 14, 2026
87b25a2
chore: re-run SonarCloud analysis
AakashVidiyala Oct 14, 2026
24ceb18
fix: improve resolved task link visibility in dark mode
Isha2303165 Oct 14, 2026
d488fdf
fix: import resolved tasks css module correctly
Isha2303165 Oct 14, 2026
c15c0a9
fix: validate most wasted materials date range
Isha2303165 Oct 14, 2026
25d7dcf
Persist PR grading changes across refreshes
muthapriyanka Oct 14, 2026
1543b12
fix: preserve resolved task link color in dark mode
Isha2303165 Oct 14, 2026
c1842a3
Merge origin/development into Purav_fix_pr_promotion_display_box.
pixelpix13 Oct 14, 2026
b9eba1a
Fix week off notice dark mode text and reason placement
shubhamjakhete Oct 14, 2026
2e1d866
Wire PR promotion Confirm to promotion-pending and promote-members APIs.
pixelpix13 Oct 14, 2026
c0afdf9
Fix Sonar reliability issue on DisplayBox pending load.
pixelpix13 Oct 14, 2026
8ff15e8
Fix:Fixed truncation of keywords
saisandeepkoritala Oct 15, 2026
629e11a
Fix:Fixed truncation of keywords and errors
saisandeepkoritala Oct 15, 2026
885f943
Merge origin/development and restore package-lock.json
saisandeepkoritala Oct 15, 2026
6f576ed
Fix:Yarn.lock modified
saisandeepkoritala Oct 15, 2026
c7fed55
fix: label hours buckets with exact bounds for fractional averages
mahikakakkad Oct 15, 2026
7643f60
fix: resolve merge conflict with development by adding pagination to …
Jaden300 Oct 16, 2026
1fc284a
Fixed Remove Reviewer action using permission; Remove hardcoded TEAM_…
Adit0717 Oct 16, 2026
fff6b02
fix(job-application): keep Apply Now deep links off retired forms and…
PrajwalpGM256 Oct 16, 2026
6f79bf0
Fix week date calculation to use local date components, preventing ti…
Adit0717 Oct 17, 2026
3176479
fix: sort time zone dropdown alphabetically
mahikakakkad Oct 17, 2026
346164c
Add Kitchen Reports and Analytics page with PDF/CSV export buttons
Jaden300 Oct 17, 2026
dd08e70
Fix code review findings in report export hook
Jaden300 Oct 17, 2026
1b3232c
Merge development, resolve conflicts in community members list
Jaden300 Oct 17, 2026
a85dc21
Merge pull request #5503 from OneCommunityGlobal/Linlin-fix-people-re…
one-community Oct 17, 2026
6f855cc
fix: show the Team Locations map again
akv-iu Oct 17, 2026
cf83310
Merge pull request #5499 from OneCommunityGlobal/Purav_fix_pr_promoti…
one-community Oct 17, 2026
2e716ce
Merge pull request #5649 from OneCommunityGlobal/Aakash-email-tld-typ…
one-community Oct 17, 2026
1759269
Merge pull request #5645 from OneCommunityGlobal/shubham-weekly-summa…
one-community Oct 17, 2026
cec6fd0
Fixed dark mode issues in image uploads
ShreyasB1806 Oct 17, 2026
d5173e3
Fixxed dark mode issues with video uploads field
ShreyasB1806 Oct 17, 2026
892fdd1
Fix labor hours chart layout and date validation
Oct 18, 2026
9949351
fix: correct tools and equipment tracking layout on mobile and tablet
Oct 18, 2026
8c3e95d
Merge pull request #4797 from OneCommunityGlobal/VivekChandra-Impleme…
one-community Oct 18, 2026
82de0d8
Merge pull request #4941 from OneCommunityGlobal/Akshith-fix-max-atte…
one-community Oct 18, 2026
38a2745
Merge pull request #5524 from OneCommunityGlobal/linlin_people_report…
one-community Oct 18, 2026
7052901
Fix:Fixed sonarqube issue
saisandeepkoritala Oct 18, 2026
e75a6bf
Merge pull request #5583 from OneCommunityGlobal/saisandeep_fix_most_…
one-community Oct 18, 2026
c6f8af8
Merge pull request #5648 from OneCommunityGlobal/sundar/timer-await
one-community Oct 18, 2026
642fdf8
Merge pull request #5371 from OneCommunityGlobal/radia-loss-tracking-…
one-community Oct 18, 2026
249a4d6
Merge pull request #5614 from OneCommunityGlobal/Devang_fix_bmdashboa…
one-community Oct 18, 2026
d4f4112
fix(jobs): require terms agreement before application submission
adit24dhaya Oct 13, 2026
8c00773
fix(Projects): restore functional dropdown filters and unify button s…
linlin-husky Oct 19, 2026
73652d3
fix(Projects): resolve testing-library lint errors in ProjectTableHea…
linlin-husky Oct 19, 2026
49763bc
fix(deps): resolve lockfile merge conflicts
linlin-husky Oct 19, 2026
db292bd
Merge pull request #5463 from OneCommunityGlobal/Bosu-HGN-Questionnai…
one-community Oct 19, 2026
49abbc1
Merge pull request #5564 from OneCommunityGlobal/Mahalakshmi-fix-acce…
one-community Oct 19, 2026
ac63551
Merge pull request #5581 from OneCommunityGlobal/gayatri/fix-years-of…
one-community Oct 19, 2026
500eefe
Merge development and address PR #5555 review feedback.
pixelpix13 Oct 19, 2026
e9f6097
Merge development into PR grading persistence branch
muthapriyanka Oct 19, 2026
69ea305
fix(Projects): increase specificity for badgeTextBlack to enforce bla…
linlin-husky Oct 19, 2026
817263c
chore(Projects): remove unused temporary backup file
linlin-husky Oct 19, 2026
5c11163
Merge development and resolve URL endpoint conflict
AmaanSyed09 Oct 19, 2026
a2b771e
Refactor RankedUserList component to set default props for selectedSk…
pixelpix13 Oct 19, 2026
978ad86
Fix SonarCloud CSS specificity warnings in Weekly Project Summary
AmaanSyed09 Oct 19, 2026
a2ef7f9
feat(jobs): show upload size limit message on application form
AakashVidiyala Oct 19, 2026
17efda2
Merge pull request #5623 from OneCommunityGlobal/gayatri/hotfix-hours…
one-community Oct 20, 2026
02b61d3
Merge pull request #5599 from OneCommunityGlobal/Mahalakshmi-finish-r…
one-community Oct 20, 2026
1921329
Merge pull request #5671 from OneCommunityGlobal/Akshay_hotfix_team_l…
one-community Oct 20, 2026
8e2a00e
feat(job-applications): add honeypot, fill time and optional Turnstil…
AakashVidiyala Oct 20, 2026
b8eba79
Merge pull request #5555 from OneCommunityGlobal/Tatyana_FixInitialHe…
one-community Oct 20, 2026
c8b4d10
Merge pull request #5504 from OneCommunityGlobal/Linlin-fix-member-co…
one-community Oct 20, 2026
0ba4b51
fix(job-application): select default form title instead of raw query/…
PrajwalpGM256 Oct 20, 2026
08cbd4c
Merge branch 'development' into Ashrita-modified-BadgeManagementCompo…
DeMoliT1on Oct 20, 2026
043933f
HGN form: lock name only when prefilled from profile
Gayatrisawant19 Oct 21, 2026
365acad
fix(job-applications): drop the on-screen already-applied message
AakashVidiyala Oct 21, 2026
d9e71c4
Restore formatting in TotalOrgSummary.jsx
Adit0717 Oct 21, 2026
94e53ae
Merge branch 'development' of https://github.com/OneCommunityGlobal/H…
Adit0717 Oct 21, 2026
1c8c54e
Merge development into PR 5516, resolve CSS conflicts, and fix respon…
AmaanSyed09 Oct 21, 2026
f8ba8a1
Merge pull request #5667 from OneCommunityGlobal/Prajwal_jobs_catalog…
one-community Oct 21, 2026
71fc5b0
Merge remote-tracking branch 'origin/development' into Isha-fix-weekl…
Isha2303165 Oct 21, 2026
648d830
fix: format weekly summaries report after merge
Isha2303165 Oct 21, 2026
93274c8
Risk Profile: fix empty project filter, add % to tooltip, show bar la…
Gayatrisawant19 Oct 21, 2026
2d82919
Risk Profile: show real cost/delay values and request data per time r…
Gayatrisawant19 Oct 22, 2026
6c553ac
Test: freeze date in ActivityList tests so CI passes in any timezone
Gayatrisawant19 Oct 22, 2026
c5232f5
fix: align team code suggestions with visible summaries
Isha2303165 Oct 22, 2026
807b5d5
Total Construction Summary: add Customize Cards selector
Gayatrisawant19 Oct 22, 2026
4ed61dc
fix: reset startAt/time when starting the timer so short goals don't …
mahikakakkad Oct 22, 2026
b05cd93
Test: freeze date in ActivityList tests so CI passes in any timezone
Gayatrisawant19 Oct 22, 2026
d6fbf5a
fix: Restore search URL
DeMoliT1on Oct 22, 2026
ff1580b
test: include past activities in sort test
Isha2303165 Oct 22, 2026
9a0a87b
Test: freeze date in ActivityList tests so CI passes in any timezone
Gayatrisawant19 Oct 22, 2026
9e8eb3f
test: fix date-dependent ActivityList sorting test
CarolineYXW Oct 23, 2026
444bd20
fix: stop wiping the Log Time form to 0:0 after a reload
mahikakakkad Oct 23, 2026
53d6652
fix: keep the Initial Goal editor's hours/minutes in sync with initia…
mahikakakkad Oct 23, 2026
dd04470
Merge pull request #5582 from OneCommunityGlobal/gayatri/fix-hgnform-…
one-community Oct 23, 2026
575e420
Merge pull request #5596 from OneCommunityGlobal/Aditya_fix_bug_remov…
one-community Oct 23, 2026
47add4c
Fix Injury Severity chart alignment, dark mode, and scoped CSS
snehitakandula Oct 23, 2026
9b44b71
Merge pull request #5674 from OneCommunityGlobal/Aakash-upload-limit-…
one-community Oct 23, 2026
7d792a7
Merge pull request #5597 from OneCommunityGlobal/Isha-fix-weekly-summ…
one-community Oct 23, 2026
d950d87
Handled Team Codes Hot Fix
ShreyasB1806 Oct 23, 2026
b96c304
Merge branch 'development' into Snehita_fix_pr4444_followup
snehitakandula Oct 23, 2026
f2c7a2b
Merge branch 'development' into Aakash-bot-protection-job-application-ui
vidiyala99 Oct 23, 2026
2b4b997
Merge branch 'development' into Ashrita-modified-BadgeManagementCompo…
DeMoliT1on Oct 23, 2026
76b0a22
Track user rehireability reasons
RichaSapre Oct 23, 2026
1cd8207
Add year-over-year toggle, bar count labels and high-contrast year co…
snehitakandula Oct 23, 2026
4d3f0ea
Fix SonarQube issues in Issue Chart toggle and latest year lookup
snehitakandula Oct 23, 2026
2a566e0
Merge development, fix community skill filtering and card clipping
Jaden300 Oct 24, 2026
2966135
fix: use whole-word matching for job category image lookup
Jaden300 Oct 24, 2026
908c0d7
Address review: kitchen-specific export paths, deferred revoke, disab…
Jaden300 Oct 24, 2026
3d520c9
Fix ActivityList sort test to show past events so it does not depend …
Jaden300 Oct 24, 2026
1441479
Merge pull request #5654 from OneCommunityGlobal/fix/profile-hours-sc…
one-community Oct 24, 2026
8845472
Merge pull request #3216 from OneCommunityGlobal/Ashrita-modified-Bad…
one-community Oct 24, 2026
25b5eaf
Revert ActivityList test change, fixed on development
Jaden300 Oct 24, 2026
7c8e29d
Merge development into jw_kitchen_reports_export_buttons
Jaden300 Oct 24, 2026
f73a082
Added File Picker On Click For Header Image
ShreyasB1806 Oct 25, 2026
717c057
Merge remote-tracking branch 'origin/development' into shreyas-team-c…
ShreyasB1806 Oct 25, 2026
ef60f63
Merge pull request #5514 from OneCommunityGlobal/Jaden_fix_community_…
one-community Oct 25, 2026
764a266
Merge pull request #5669 from OneCommunityGlobal/jw_kitchen_reports_e…
one-community Oct 25, 2026
8328974
Merge pull request #5617 from OneCommunityGlobal/fix-category-image-m…
one-community Oct 25, 2026
60134ae
Merge pull request #5692 from OneCommunityGlobal/Yuxuan-fix-activity-…
one-community Oct 25, 2026
302313f
Merge pull request #5693 from OneCommunityGlobal/Snehita_fix_pr4444_f…
one-community Oct 25, 2026
213a51d
Merge pull request #5632 from OneCommunityGlobal/Priyanka_total_org_s…
one-community Oct 25, 2026
b798c98
fix(job-application): resolve Sonar CSS issues (scoped transition, re…
AakashVidiyala Oct 25, 2026
ed74fb4
Fix duplicate fireEvent call in ActivityList test
ShreyasB02 Oct 25, 2026
6acadac
fix(tests): freeze date in ActivityList test and drop duplicate past-…
AakashVidiyala Oct 25, 2026
6773da3
Fixed Failing Test React App
ShreyasB1806 Oct 25, 2026
8b41f70
Fixed Test React App Failures
ShreyasB1806 Oct 25, 2026
16de8b2
Merge pull request #5679 from OneCommunityGlobal/Aakash-neutral-dupli…
one-community Oct 25, 2026
7171225
Merge pull request #5716 from OneCommunityGlobal/Aakash-fix-activityl…
one-community Oct 25, 2026
ff5bea8
Use Set for duplicate PR number lookup
muthapriyanka Oct 25, 2026
f164f2d
Fix ActivityList sort test for past mock events
muthapriyanka Oct 25, 2026
252a015
Merge pull request #5448 from OneCommunityGlobal/fix/supplier-perform…
one-community Oct 26, 2026
080a837
Add original task images for PR #5651
adit24dhaya Oct 26, 2026
77c4471
Revert original task image addition for PR #5651
adit24dhaya Oct 26, 2026
3e50f3a
Merge development and update terms-aware submission tests
adit24dhaya Oct 26, 2026
16d04cc
Merge pull request #5694 from OneCommunityGlobal/shreyas-team-creation
one-community Oct 26, 2026
92c1b94
chore: merge development into Aakash-bot-protection-job-application-ui
AakashVidiyala Oct 26, 2026
4a46639
Merge remote-tracking branch 'origin/development' into mahika/timer-r…
mahikakakkad Oct 26, 2026
a7304b1
Merge remote-tracking branch 'origin/development' into Priyanka_fix_t…
muthapriyanka Oct 28, 2026
c464afd
Merge pull request #5489 from OneCommunityGlobal/Aditya_fix_bug_total…
one-community Oct 28, 2026
cf3613e
Shreya πŸ”₯ fix skills overview pagination
ssb1506 Oct 28, 2026
d771b8e
fix: use output for team code filter status
muthapriyanka Oct 29, 2026
9f496c3
Merge pull request #5516 from OneCommunityGlobal/amaan-fix-project-st…
one-community Oct 29, 2026
bd249e8
Merge pull request #5618 from OneCommunityGlobal/Shreevaths-bugfix-#4…
one-community Oct 29, 2026
ed505e5
Merge pull request #5675 from OneCommunityGlobal/Aakash-bot-protectio…
one-community Oct 29, 2026
c13f1f1
Merge remote-tracking branch 'origin/development' into Shreyas_fixed_…
ShreyasB1806 Oct 29, 2026
356ab85
Resolve terms checkbox conflicts with bot protection
adit24dhaya Oct 29, 2026
93e1bdf
Fixed dark mode contrast issues
ShreyasB1806 Oct 29, 2026
f6ec00e
Fixed css module class on table-header
ShreyasB1806 Oct 29, 2026
fd6d5c5
Corrected the import for UserTeamTable
ShreyasB1806 Oct 29, 2026
6b01693
Restored modules in package-lock.json
ShreyasB1806 Oct 29, 2026
8d88651
Merge pull request #5659 from OneCommunityGlobal/isha-fix-most-wasted…
one-community Oct 29, 2026
fb2edbc
Merge pull request #5620 from OneCommunityGlobal/gayatri/weekly-proje…
one-community Oct 29, 2026
2da0d35
Merge pull request #5559 from OneCommunityGlobal/Mahathi_fix_total_co…
one-community Oct 29, 2026
03ad265
Merge development into gayatri/fix-cost-prediction-date-filter
Gayatrisawant19 Oct 29, 2026
7573d4b
Cost Prediction: clamp End Date to the local date, not UTC
Gayatrisawant19 Oct 29, 2026
76c4743
Merge development into gayatri/fix-risk-profile-filter-tooltip-labels
Gayatrisawant19 Oct 29, 2026
d508ae3
Merge development into gayatri/fix-risk-profile-capped-values-issues-…
Gayatrisawant19 Oct 29, 2026
f883f0a
Merge development into gayatri/total-construction-summary-card-selector
Gayatrisawant19 Oct 29, 2026
f39472d
resolve form title matching for management and coordinator roles
kunchalasireesha Oct 4, 2026
c050059
fixed an accessibility warning for an SVG
kunchalasireesha Oct 16, 2026
0015751
fix(jobs): prefer Administrative Assistant for coordinator/planner ti…
pixelpix13 Oct 29, 2026
54b369f
fix(jobs): format notifyInitialFormSelection for prettier CI
pixelpix13 Oct 29, 2026
13ea458
Merge remote-tracking branch 'origin/development' into Shreyas_fixed_…
ShreyasB1806 Oct 29, 2026
8a71950
fix(jobs): use searched title in default-form fallback toast
pixelpix13 Oct 29, 2026
3d797af
Merge pull request #5651 from OneCommunityGlobal/feat/jobs-terms-chec…
one-community Oct 29, 2026
4dbefee
Merge pull request #5619 from OneCommunityGlobal/sireesha-job-app-tit…
one-community Oct 29, 2026
5802b6d
Merge remote-tracking branch 'origin/development' into Mahathi_fix_la…
Oct 30, 2026
282353d
Resolved the React app failures by resetting and reinstalling depende…
ShreyasB1806 Oct 30, 2026
b249202
Merge development into Mahalakshmi-finish-totalconstruction-formatting
Oct 30, 2026
800b5e9
Resolved quality gate issues
ShreyasB1806 Oct 31, 2026
9f95522
Fixed quality gate issues 2
ShreyasB1806 Oct 31, 2026
1b6bb0d
Reduce cognitive complexity of fn as needed by sonarqube
ShreyasB1806 Oct 31, 2026
a42498b
Final Quality Gate Fix
ShreyasB1806 Oct 31, 2026
8d5e6e0
Reduce Conginitive Complexity of the Weekly Update Composer module
ShreyasB1806 Oct 31, 2026
c5b9349
Final commit to resolve quality gate issues
ShreyasB1806 Oct 31, 2026
f578395
Merge pull request #5510 from OneCommunityGlobal/Mahathi_fix_labor_ti…
one-community Oct 31, 2026
1486b35
Merge pull request #5721 from OneCommunityGlobal/mahika/timer-refactor
one-community Oct 31, 2026
b2e45fe
Merge pull request #5727 from OneCommunityGlobal/fix/skills-overview-…
one-community Nov 1, 2026
788c581
Merge pull request #5636 from OneCommunityGlobal/Mahalakshmi-finish-t…
one-community Nov 1, 2026
6a89c20
Merge pull request #5682 from OneCommunityGlobal/gayatri/fix-risk-pro…
one-community Nov 1, 2026
26a8b4b
Merge pull request #5681 from OneCommunityGlobal/gayatri/fix-risk-pro…
one-community Nov 1, 2026
c1e1219
Merge pull request #5684 from OneCommunityGlobal/gayatri/total-constr…
one-community Nov 1, 2026
98d2167
Merge pull request #5699 from OneCommunityGlobal/richa/deactivation-r…
one-community Nov 1, 2026
885cfa0
Merge pull request #5586 from OneCommunityGlobal/Priyanka_fix_team_codes
one-community Nov 1, 2026
8945fd9
Merge pull request #5665 from OneCommunityGlobal/mahika/sort-timezone…
one-community Nov 1, 2026
73f8c49
Merge pull request #5532 from OneCommunityGlobal/gayatri/fix-cost-pre…
one-community Nov 1, 2026
1521b55
Merge pull request #5630 from OneCommunityGlobal/Priyanka_pr_grading_…
one-community Nov 1, 2026
396762b
Merge pull request #5655 from OneCommunityGlobal/shreyas-fixes-email-…
one-community Nov 1, 2026
5588968
Merge pull request #5474 from OneCommunityGlobal/Shreyas_fixed_teams_…
one-community Nov 1, 2026
f86949d
Merge pull request #5700 from OneCommunityGlobal/Snehita_issues_chart…
one-community Nov 1, 2026
8bf1efb
Merge pull request #5643 from OneCommunityGlobal/Priyanka_total_org_c…
one-community Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[settings]
python.github_attestations = false
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
lts/iron
22
5 changes: 5 additions & 0 deletions mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[settings]
python.github_attestations = false

[tools]
node = "22"
7,643 changes: 3,386 additions & 4,257 deletions package-lock.json

Large diffs are not rendered by default.

78 changes: 69 additions & 9 deletions src/actions/__tests__/userManagement.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,21 +87,50 @@ describe('User Management Actions', () => {
]);
});

it('allows an empty reason and removes a previously saved reason', async () => {
const mockUser = { _id: '123', notRehireableReason: 'Previous reason' };
axios.patch.mockResolvedValueOnce({ data: {} });
it('stores the audit history returned by the backend', async () => {
const mockUser = { _id: '123' };
const history = [
{
action: 'submitted',
reason: 'Missed commitments',
changedAt: '2026-01-02T03:04:00.000Z',
changedBy: { username: 'admin@example.org', firstName: 'Alex', lastName: 'Admin' },
},
];
axios.patch.mockResolvedValueOnce({
data: {
notRehireableReason: 'Missed commitments',
notRehireableReasonHistory: history,
},
});

await store.dispatch(actions.updateRehireableStatus(mockUser, false, ''));
await store.dispatch(actions.updateRehireableStatus(mockUser, false, 'Missed commitments'));

expect(axios.patch).toHaveBeenCalledWith(ENDPOINTS.UPDATE_REHIREABLE_STATUS(mockUser._id), {
isRehireable: false,
notRehireableReason: '',
});
expect(store.getActions()).toEqual([
{ type: 'USER_PROFILE_UPDATE', user: { _id: '123', isRehireable: false } },
{
type: 'USER_PROFILE_UPDATE',
user: {
_id: '123',
isRehireable: false,
notRehireableReason: 'Missed commitments',
notRehireableReasonHistory: history,
},
},
]);
});

it('does not send an empty reason when changing to not rehireable', async () => {
const mockUser = { _id: '123', notRehireableReason: 'Previous reason' };
axios.patch.mockResolvedValueOnce({ data: {} });

await expect(
store.dispatch(actions.updateRehireableStatus(mockUser, false, ' ')),
).rejects.toThrow('A reason is required');

expect(axios.patch).not.toHaveBeenCalled();
expect(store.getActions()).toEqual([]);
});

it('clears a saved reason when changing back to rehireable', async () => {
const mockUser = { _id: '123', notRehireableReason: 'Previous reason' };
axios.patch.mockResolvedValueOnce({ data: {} });
Expand Down Expand Up @@ -250,6 +279,37 @@ describe('User Management Actions', () => {
await store.dispatch(actions.getUserProfileBasicInfo({ source: mockSource }));
expect(store.getActions()).toEqual(expectedActions);
});

it('fetches a single user basic info by userId using the query-param contract', async () => {
const mockUserId = 'user-123';
const mockBasicInfo = { _id: mockUserId, firstName: 'John', lastName: 'Doe' };

axios.get.mockResolvedValueOnce({ data: mockBasicInfo });

const expectedActions = [
{ type: 'FETCH_USER_PROFILE_BASIC_INFO' },
{ type: 'RECEIVE_USER_PROFILE_BASIC_INFO', payload: mockBasicInfo }
];

await store.dispatch(actions.getUserProfileBasicInfo({ userId: mockUserId }));
expect(store.getActions()).toEqual(expectedActions);
expect(axios.get).toHaveBeenCalledWith(ENDPOINTS.USER_PROFILE_BASIC_INFO_BY_ID(mockUserId));
});

it('does not leave the fetch pending when the userId lookup is rejected (400)', async () => {
const mockUserId = 'user-123';
const badRequestError = { response: { status: 400, data: { error: 'Source parameter is required' } } };

axios.get.mockRejectedValueOnce(badRequestError);

const expectedActions = [
{ type: 'FETCH_USER_PROFILE_BASIC_INFO' },
{ type: 'FETCH_USER_PROFILE_BASIC_INFO_ERROR' }
];

await store.dispatch(actions.getUserProfileBasicInfo({ userId: mockUserId }));
expect(store.getActions()).toEqual(expectedActions);
});
});

describe('UI State Actions', () => {
Expand Down
96 changes: 96 additions & 0 deletions src/actions/__tests__/weeklyProjectSummaryActions.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
import { describe, it, expect, vi, beforeEach } from 'vitest';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import axios from 'axios';
import {
fetchWeeklyProjectSummaryProjectStatus,
} from '../bmdashboard/weeklyProjectSummaryActions';
import {
FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_BEGIN,
FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_ERROR,
FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_SUCCESS,
} from '../../constants/bmdashboard/weeklyProjectSummaryConstants';

vi.mock('axios');

const mockStore = configureMockStore([thunk]);

const createDeferred = () => {
let resolve;
let reject;
const promise = new Promise((promiseResolve, promiseReject) => {
resolve = promiseResolve;
reject = promiseReject;
});

return { promise, resolve, reject };
};

describe('weeklyProjectSummaryActions Project Status requests', () => {
beforeEach(() => {
vi.clearAllMocks();
});

it('dispatches unique request metadata for rapid Project Status requests', async () => {
const firstRequest = createDeferred();
const secondRequest = createDeferred();
axios.get.mockReturnValueOnce(firstRequest.promise).mockReturnValueOnce(secondRequest.promise);
const store = mockStore({});

const firstDispatch = store.dispatch(
fetchWeeklyProjectSummaryProjectStatus({
startDate: '2026-09-13',
endDate: '2026-09-19',
projectId: '',
comparisonStartDate: null,
comparisonEndDate: undefined,
}),
);
const secondDispatch = store.dispatch(
fetchWeeklyProjectSummaryProjectStatus({
startDate: '2026-09-20',
endDate: '2026-09-26',
}),
);

const [firstBegin, secondBegin] = store.getActions();
expect(firstBegin.type).toBe(FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_BEGIN);
expect(secondBegin.type).toBe(FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_BEGIN);
expect(firstBegin.meta.requestId).not.toBe(secondBegin.meta.requestId);
expect(firstBegin.meta.requestKey).toBe('endDate=2026-09-19&startDate=2026-09-13');
expect(secondBegin.meta.requestKey).toBe('endDate=2026-09-26&startDate=2026-09-20');

secondRequest.resolve({ data: { current: { metrics: { totalProjects: { value: 2 } } } } });
await secondDispatch;
firstRequest.resolve({ data: { current: { metrics: { totalProjects: { value: 1 } } } } });
await firstDispatch;

const successActions = store
.getActions()
.filter(action => action.type === FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_SUCCESS);
expect(successActions).toHaveLength(2);
expect(successActions[0].meta.requestId).toBe(secondBegin.meta.requestId);
expect(successActions[1].meta.requestId).toBe(firstBegin.meta.requestId);
});

it('dispatches the active request metadata on Project Status failure', async () => {
const error = new Error('network failure');
axios.get.mockRejectedValue(error);
const store = mockStore({});

const result = await store.dispatch(
fetchWeeklyProjectSummaryProjectStatus({
startDate: '2026-09-13',
endDate: '2026-09-19',
}),
);

const [beginAction, errorAction] = store.getActions();
expect(result).toBeNull();
expect(errorAction).toMatchObject({
type: FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_ERROR,
payload: error,
meta: beginAction.meta,
});
});
});
2 changes: 2 additions & 0 deletions src/actions/actionTypes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export const FETCH_ALL_BADGES = 'FETCH_ALL_BADGES';
export const FETCH_BADGES_FAILURE = 'FETCH_BADGES_FAILURE';
66 changes: 66 additions & 0 deletions src/actions/bmdashboard/weeklyProjectSummaryActions.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
import axios from 'axios';
import { ENDPOINTS } from '~/utils/URL';
import {
SET_PROJECT_FILTER,
SET_DATE_RANGE_FILTER,
SET_COMPARISON_PERIOD_FILTER,
FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_BEGIN,
FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_SUCCESS,
FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_ERROR,
} from '../../constants/bmdashboard/weeklyProjectSummaryConstants';

export const setProjectFilter = project => ({
Expand All @@ -18,3 +23,64 @@ export const setComparisonPeriodFilter = comparisonPeriod => ({
type: SET_COMPARISON_PERIOD_FILTER,
payload: comparisonPeriod,
});

let weeklyProjectSummaryProjectStatusRequestCounter = 0;

const createWeeklyProjectSummaryProjectStatusRequestId = () => {
weeklyProjectSummaryProjectStatusRequestCounter += 1;
return `weekly-project-summary-project-status-${Date.now()}-${weeklyProjectSummaryProjectStatusRequestCounter}`;
};

export const getWeeklyProjectSummaryProjectStatusRequestKey = params => {
const queryParams = new URLSearchParams();
Object.entries(params || {})
.filter(([, value]) => value !== undefined && value !== null && value !== '')
.sort(([keyA], [keyB]) => keyA.localeCompare(keyB))
.forEach(([key, value]) => {
queryParams.append(key, value);
});

return queryParams.toString();
};

export const fetchWeeklyProjectSummaryProjectStatusBegin = meta => ({
type: FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_BEGIN,
meta,
});

export const fetchWeeklyProjectSummaryProjectStatusSuccess = (payload, meta) => ({
type: FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_SUCCESS,
payload,
meta,
});

export const fetchWeeklyProjectSummaryProjectStatusError = (error, meta) => ({
type: FETCH_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS_ERROR,
payload: error,
meta,
});

export const fetchWeeklyProjectSummaryProjectStatus = params => async dispatch => {
const requestId = createWeeklyProjectSummaryProjectStatusRequestId();
const requestKey = getWeeklyProjectSummaryProjectStatusRequestKey(params);
const requestMeta = { requestId, requestKey };

dispatch(fetchWeeklyProjectSummaryProjectStatusBegin(requestMeta));

try {
const queryParams = new URLSearchParams();
Object.entries(params || {}).forEach(([key, value]) => {
if (value !== undefined && value !== null && value !== '') {
queryParams.append(key, value);
}
});

const url = `${ENDPOINTS.BM_WEEKLY_PROJECT_SUMMARY_PROJECT_STATUS}?${queryParams.toString()}`;
const response = await axios.get(url);
dispatch(fetchWeeklyProjectSummaryProjectStatusSuccess(response.data, requestMeta));
return response.data;
} catch (error) {
dispatch(fetchWeeklyProjectSummaryProjectStatusError(error, requestMeta));
return null;
}
};
26 changes: 0 additions & 26 deletions src/actions/communityPortal/eventActions.js

This file was deleted.

5 changes: 5 additions & 0 deletions src/actions/promotionActions.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ export const getPromotionEligibility = async requestor => {
return res.data;
};

export const getPromotionPending = async requestor => {
const res = await axios.post(ENDPOINTS.PROMOTION_PENDING, { requestor });
return res.data;
};

export const postPromotionEligibility = async (memberIds, requestor) => {
const res = await axios.post(ENDPOINTS.PROMOTE_MEMBERS, {
memberIds,
Expand Down
25 changes: 20 additions & 5 deletions src/actions/userManagement.js
Original file line number Diff line number Diff line change
Expand Up @@ -305,16 +305,31 @@ export const updateRehireableStatus = (user, isRehireable, notRehireableReason =
const reason = typeof notRehireableReason === 'string' ? notRehireableReason.trim() : '';
const requestData = { isRehireable };

if (!isRehireable && reason) {
if (!isRehireable && !reason) {
throw new Error('A reason is required when a user is not rehireable.');
}

if (!isRehireable) {
userProfile.notRehireableReason = reason;
requestData.notRehireableReason = reason;
} else {
delete userProfile.notRehireableReason;
if (!isRehireable) requestData.notRehireableReason = '';
}

await axios.patch(ENDPOINTS.UPDATE_REHIREABLE_STATUS(user._id), requestData);
const response = await axios.patch(ENDPOINTS.UPDATE_REHIREABLE_STATUS(user._id), requestData);
const responseData = response?.data || {};
if (Array.isArray(responseData.notRehireableReasonHistory)) {
userProfile.notRehireableReasonHistory = responseData.notRehireableReasonHistory;
}
if (typeof responseData.notRehireableReason === 'string') {
if (responseData.notRehireableReason) {
userProfile.notRehireableReason = responseData.notRehireableReason;
} else {
delete userProfile.notRehireableReason;
}
}
dispatch(userProfileUpdateAction(userProfile));
return userProfile;
};
};

Expand Down Expand Up @@ -423,7 +438,7 @@ export const getUserProfileBasicInfo = ({ userId, source } = {}) => {
// API request to fetch basic user profile information
let userProfileBasicInfoPromise;
if (userId)
userProfileBasicInfoPromise = axios.get(ENDPOINTS.USER_PROFILE(userId));
userProfileBasicInfoPromise = axios.get(ENDPOINTS.USER_PROFILE_BASIC_INFO_BY_ID(userId));
else if (source)
userProfileBasicInfoPromise = axios.get(ENDPOINTS.USER_PROFILE_BASIC_INFO(source));
else
Expand Down Expand Up @@ -471,4 +486,4 @@ export const updateUserInfomation = value => dispatch => {
*/
export const finishUserInfoUpdate = () => dispatch => {
dispatch({ type: FINISH_USER_INFO_UPDATE });
};
};
Loading
Loading