Skip to content

Commit bee4ca6

Browse files
authored
Merge pull request #2153 from tekdi/release-1.12.0-prod-fix
Release 1.12.0 prod fix to teacher prod
2 parents f75cfe4 + da3f027 commit bee4ca6

File tree

3 files changed

+55
-32
lines changed

3 files changed

+55
-32
lines changed

apps/learner-web-app/src/app/sso/page.tsx

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -200,30 +200,32 @@ const SSOContent = () => {
200200
if (res?.result?.userData?.customFields) {
201201
res.result.userData.customFields.forEach((field: any) => {
202202
const { label, selectedValues } = field;
203-
localStorage.setItem(
204-
FilterKey[label as keyof typeof FilterKey],
205-
JSON.stringify(selectedValues)
206-
);
207-
if(label === 'EMP_GROUP') {
208-
localStorage.setItem(FilterKey.GROUP_MEMBERSHIP, JSON.stringify(selectedValues));
209-
}
210-
211-
// Map the label to the corresponding FilterKey and store in localStorage
212-
// switch (label) {
213-
// case 'GROUP_MEMBERSHIP':
214-
// localStorage.setItem(FilterKey.GROUP_MEMBERSHIP, selectedValues);
215-
// break;
216-
// case 'JOB_FAMILY':
217-
// localStorage.setItem(FilterKey.JOB_FAMILY, selectedValues);
218-
// break;
219-
// case 'PSU':
220-
// localStorage.setItem(FilterKey.PSU, selectedValues);
221-
// break;
222-
// default:
223-
// // For any other custom fields, store them as is
224-
// localStorage.setItem(label, selectedValues);
225-
// break;
203+
// localStorage.setItem(
204+
// FilterKey[label as keyof typeof FilterKey],
205+
// JSON.stringify(selectedValues)
206+
// );
207+
// if(label === 'EMP_GROUP') {
208+
// localStorage.setItem(FilterKey.GROUP_MEMBERSHIP, JSON.stringify(selectedValues));
226209
// }
210+
211+
// Map the label to the corresponding FilterKey and store in localStorage
212+
switch (label) {
213+
case 'GROUP_MEMBERSHIP':
214+
localStorage.setItem(FilterKey.GROUP_MEMBERSHIP, JSON.stringify(selectedValues));
215+
break;
216+
case 'JOB_FAMILY':
217+
localStorage.setItem(FilterKey.JOB_FAMILY, JSON.stringify(selectedValues));
218+
break;
219+
case 'PSU':
220+
localStorage.setItem(FilterKey.PSU, JSON.stringify(selectedValues));
221+
break;
222+
default:
223+
// For any other custom fields, store them as is
224+
localStorage.setItem(FilterKey.GROUP_MEMBERSHIP, JSON.stringify(["NA"]));
225+
localStorage.setItem(FilterKey.JOB_FAMILY, JSON.stringify(["NA"]));
226+
localStorage.setItem(FilterKey.PSU, JSON.stringify(["NA"]));
227+
break;
228+
}
227229
});
228230
}
229231
const uiConfig = userResponse?.tenantData[0]?.params?.uiConfig;

mfes/youthNet/src/pages/employee-details/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ const EmployeeDetailsPage = () => {
232232
let userMandatoryCertificateStatus = { data: [] };
233233
let userOptionalCertificateStatus = { data: [] };
234234

235-
if (tenantId && mandatoryIds.length > 0 && optionalIds.length > 0) {
235+
if (tenantId &&( mandatoryIds.length > 0 || optionalIds.length > 0)) {
236236
[userMandatoryCertificateStatus, userOptionalCertificateStatus] = await Promise.all([
237237
fetchUserCertificateStatus([userId], mandatoryIds),
238238
fetchUserCertificateStatus([userId], optionalIds)

mfes/youthNet/src/pages/manager-dashboard/index.tsx

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,17 @@ const [employeeDataResponse, setEmployeeDataResponse] = useState<any[]>([]);
172172
const allCompletedCourseIds = Array.from(new Set([...completedMandatoryCourseIds, ...completedOptionalCourseIds]));
173173
console.log('Unique Completed Course IDs (duplicates removed):', allCompletedCourseIds);
174174

175+
// If no completed courses, set empty top performers data and return
176+
if (allCompletedCourseIds.length === 0) {
177+
console.log('No completed courses found, setting empty top performers data');
178+
setTopPerformersData({
179+
usersData: {
180+
'5 Highest Course Completing Users': []
181+
}
182+
});
183+
return;
184+
}
185+
175186
// Collect structured course data from all completed courses
176187
const getAllStructuredCourseData = async () => {
177188
const allStructuredData: Array<{courseId: string, units: Array<{unitId: string, contentIds: string[]}> }> = [];
@@ -288,7 +299,11 @@ const [employeeDataResponse, setEmployeeDataResponse] = useState<any[]>([]);
288299

289300
console.log('individualProgressData', apiResponse?.getUserDetails);
290301
console.log('totalCount', apiResponse?.totalCount);
291-
const currentEmployeeIds = apiResponse?.getUserDetails?.map((item: any) => item.userId);
302+
// Handle empty array or undefined getUserDetails
303+
const userDetails = apiResponse?.getUserDetails || [];
304+
const currentEmployeeIds = userDetails.length > 0
305+
? userDetails.map((item: any) => item.userId)
306+
: [];
292307

293308
// Fetch certificate status for current employees if course identifiers are available
294309
let userMandatoryCertificateStatus = { data: [] };
@@ -301,7 +316,7 @@ const [employeeDataResponse, setEmployeeDataResponse] = useState<any[]>([]);
301316
console.log('activeOptionalIds', activeOptionalIds);
302317
console.log('currentEmployeeIds', currentEmployeeIds);
303318

304-
if (activeMandatoryIds.length > 0 && activeOptionalIds.length > 0 && currentEmployeeIds.length > 0) {
319+
if ((activeMandatoryIds.length > 0 || activeOptionalIds.length > 0 )&& currentEmployeeIds.length > 0) {
305320
try {
306321
[userMandatoryCertificateStatus, userOptionalCertificateStatus] = await Promise.all([
307322
fetchUserCertificateStatus(currentEmployeeIds, activeMandatoryIds),
@@ -317,7 +332,6 @@ const [employeeDataResponse, setEmployeeDataResponse] = useState<any[]>([]);
317332
// Process certificate status data for easier lookup
318333
const mandatoryStatusMap = new Map();
319334
const optionalStatusMap = new Map();
320-
321335
// Process mandatory certificate status
322336
userMandatoryCertificateStatus.data?.forEach((item: any) => {
323337
if (!mandatoryStatusMap.has(item.userId)) {
@@ -377,7 +391,8 @@ const [employeeDataResponse, setEmployeeDataResponse] = useState<any[]>([]);
377391
});
378392

379393
// Transform API data to EmployeeProgress format with calculated progress
380-
const transformedProgressData: EmployeeProgress[] = apiResponse?.getUserDetails?.map((user: any) => {
394+
const transformedProgressData: EmployeeProgress[] = userDetails.length > 0
395+
? userDetails.map((user: any) => {
381396
const mandatoryStats = mandatoryStatusMap.get(user.userId) || {
382397
completed: 0,
383398
inProgress: 0,
@@ -424,7 +439,8 @@ const [employeeDataResponse, setEmployeeDataResponse] = useState<any[]>([]);
424439
mandatoryCompletedIdentifiers: mandatoryStats.completedIdentifiers || [],
425440
optionalCompletedIdentifiers: optionalStats.completedIdentifiers || []
426441
};
427-
}) || [];
442+
})
443+
: [];
428444

429445

430446
console.log('transformedProgressData with calculated progress', transformedProgressData);
@@ -526,9 +542,14 @@ const [employeeDataResponse, setEmployeeDataResponse] = useState<any[]>([]);
526542
filters: {emp_manager:userId},
527543
});
528544
console.log('employeeDataResponse', employeeDataResponse);
529-
setEmployeeDataResponse(employeeDataResponse?.getUserDetails || []);
530-
employeeUserIds = employeeDataResponse?.getUserDetails?.map((item: any) => item.userId);
531-
setEmployeeUserIds(employeeUserIds);
545+
546+
// Handle empty array or undefined getUserDetails
547+
const employeeDetails = employeeDataResponse?.getUserDetails || [];
548+
setEmployeeDataResponse(employeeDetails);
549+
employeeUserIds = employeeDetails.length > 0
550+
? employeeDetails.map((item: any) => item.userId)
551+
: [];
552+
setEmployeeUserIds(employeeUserIds);
532553
}
533554
console.log('employeeUserIds', employeeUserIds);
534555
// Check if tenantId is available before calling certificate status APIs

0 commit comments

Comments
 (0)