Skip to content

Commit 462e9f1

Browse files
committed
fix the resend email bug
1 parent 0609406 commit 462e9f1

File tree

1 file changed

+163
-120
lines changed

1 file changed

+163
-120
lines changed

staticfiles/mainfiles/myaccount/script.js

Lines changed: 163 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -322,8 +322,8 @@
322322
// }
323323
// }
324324

325-
326325
const email = localStorage.getItem("email");
326+
// console.log(email);
327327

328328
function loopingForUserdata(data, count, n) {
329329
// console.log(data);
@@ -344,129 +344,121 @@ function loopingForUserdata(data, count, n) {
344344
return percent;
345345
}
346346

347-
348-
function showProgress(progressId , textId , personalProfilePercent){
349-
const progressBarPersonalProfile = document.getElementById(`progress-${progressId}`);
350-
progressBarPersonalProfile.style.setProperty(
351-
"--progress",
352-
personalProfilePercent
353-
);
354-
355-
// Update the text inside the circle
356-
const progressTextPersonalProfile = document.getElementById(`text-${textId}`);
357-
progressTextPersonalProfile.textContent = `${personalProfilePercent}%`;
347+
function showProgress(progressId, textId, personalProfilePercent) {
348+
const progressBarPersonalProfile = document.getElementById(
349+
`progress-${progressId}`
350+
);
351+
progressBarPersonalProfile.style.setProperty(
352+
"--progress",
353+
personalProfilePercent
354+
);
355+
356+
// Update the text inside the circle
357+
const progressTextPersonalProfile = document.getElementById(`text-${textId}`);
358+
progressTextPersonalProfile.textContent = `${personalProfilePercent}%`;
358359
}
359360

360-
async function assessmentsPercentage(){
361-
try{
361+
async function assessmentsPercentage() {
362+
try {
362363
const assessmentsRef = collection(db, "assessment");
363364

364365
// Fetch all documents from the collection
365366
const docSnapAssessment = await getDocs(assessmentsRef);
366-
367-
368-
369-
const assessments = docSnapAssessment.docs.map((doc) => ({
370-
id: doc.id, // Add document ID for reference
371-
...doc.data(), // Spread the document data
372-
}));
373-
374-
const totalAssessments = Object.keys(assessments).length;
375-
// console.log(totalAssessments);
376-
const totalUserAssessment = await fetchAllAssessmentResults(email);
377-
console.log(totalUserAssessment);
378-
const assessmentPercent = Math.floor((totalUserAssessment / totalAssessments) * 100); // Calculate percentage
379-
showProgress(3, 3, assessmentPercent);
380-
381-
382-
383-
}catch (error) {
367+
368+
const assessments = docSnapAssessment.docs.map((doc) => ({
369+
id: doc.id, // Add document ID for reference
370+
...doc.data(), // Spread the document data
371+
}));
372+
373+
const totalAssessments = Object.keys(assessments).length;
374+
// console.log(totalAssessments);
375+
const totalUserAssessment = await fetchAllAssessmentResults(email);
376+
console.log(totalUserAssessment);
377+
const assessmentPercent = Math.floor(
378+
(totalUserAssessment / totalAssessments) * 100
379+
); // Calculate percentage
380+
showProgress(3, 3, assessmentPercent);
381+
} catch (error) {
384382
console.error("Error getting user data from user_profile:", error);
385383
}
386384
}
387385

388-
389386
async function fetchAllAssessmentResults(email) {
390387
try {
391-
if (!email) {
392-
throw new Error("Email is required to fetch assessment results.");
393-
}
394-
395-
// Reference to the 'user_assessment_results' collection
396-
const userAssessmentResultsRef = collection(db, "user_assessment_results");
397-
398-
// Fetch all documents from 'user_assessment_results'
399-
const userDocsSnapshot = await getDocs(userAssessmentResultsRef);
400-
// console.log(userDocsSnapshot);
401-
402-
403-
let allAssessmentResults = [];
404-
405-
// Iterate through each document in 'user_assessment_results'
406-
for (const userDoc of userDocsSnapshot.docs) {
407-
const userId = userDoc.id; // Get the document ID (user ID)
408-
console.log(userId);
409-
// console.log(email);
410-
411-
// Check if the document ID matches the email
412-
if (userId === email) {
413-
// Reference to the 'assessment_results' subcollection
414-
415-
const assessmentResultsRef = collection(
416-
db,
417-
`user_assessment_results/${email}/assessment_results`
418-
);
419-
420-
// Fetch all documents from the 'assessment_results' subcollection
421-
const assessmentResultsSnapshot = await getDocs(assessmentResultsRef);
422-
console.log(assessmentResultsSnapshot);
423-
// Map the assessment results
424-
const assessmentResults = assessmentResultsSnapshot.docs.map((doc) => ({
425-
id: doc.id, // Document ID
426-
...doc.data(), // Document data
427-
}));
428-
429-
allAssessmentResults.push({
430-
userId,
431-
assessmentResults,
432-
});
433-
434-
break; // Exit loop once matching email is found
435-
}
436-
}
388+
if (!email) {
389+
throw new Error("Email is required to fetch assessment results.");
390+
}
437391

438-
if (allAssessmentResults.length === 0) {
439-
console.log("No assessment results found for the provided email.");
440-
return 0; // No results found
392+
// Reference to the 'user_assessment_results' collection
393+
const userAssessmentResultsRef = collection(db, "user_assessment_results");
394+
395+
// Fetch all documents from 'user_assessment_results'
396+
const userDocsSnapshot = await getDocs(userAssessmentResultsRef);
397+
// console.log(userDocsSnapshot);
398+
399+
let allAssessmentResults = [];
400+
401+
// Iterate through each document in 'user_assessment_results'
402+
for (const userDoc of userDocsSnapshot.docs) {
403+
const userId = userDoc.id; // Get the document ID (user ID)
404+
console.log(userId);
405+
// console.log(email);
406+
407+
// Check if the document ID matches the email
408+
if (userId === email) {
409+
// Reference to the 'assessment_results' subcollection
410+
411+
const assessmentResultsRef = collection(
412+
db,
413+
`user_assessment_results/${email}/assessment_results`
414+
);
415+
416+
// Fetch all documents from the 'assessment_results' subcollection
417+
const assessmentResultsSnapshot = await getDocs(assessmentResultsRef);
418+
console.log(assessmentResultsSnapshot);
419+
// Map the assessment results
420+
const assessmentResults = assessmentResultsSnapshot.docs.map((doc) => ({
421+
id: doc.id, // Document ID
422+
...doc.data(), // Document data
423+
}));
424+
425+
allAssessmentResults.push({
426+
userId,
427+
assessmentResults,
428+
});
429+
430+
break; // Exit loop once matching email is found
441431
}
432+
}
442433

443-
console.log("All Assessment Results:", allAssessmentResults[0].assessmentResults);
434+
if (allAssessmentResults.length === 0) {
435+
console.log("No assessment results found for the provided email.");
436+
return 0; // No results found
437+
}
444438

445-
const assessmentsList = allAssessmentResults[0].assessmentResults;
446-
const assessmentLength = assessmentsList.length; // Directly get the length
447-
console.log("Assessment Length:", assessmentLength);
448-
return assessmentLength;
439+
console.log(
440+
"All Assessment Results:",
441+
allAssessmentResults[0].assessmentResults
442+
);
449443

444+
const assessmentsList = allAssessmentResults[0].assessmentResults;
445+
const assessmentLength = assessmentsList.length; // Directly get the length
446+
console.log("Assessment Length:", assessmentLength);
447+
return assessmentLength;
450448
} catch (error) {
451-
console.error("Error fetching assessment results:", error);
452-
return 0; // Return 0 in case of an error
449+
console.error("Error fetching assessment results:", error);
450+
return 0; // Return 0 in case of an error
453451
}
454452
}
455453

456-
457-
458-
459-
460-
461454
async function isUser() {
462455
// console.log("isUser");
463456
try {
464457
const docSnap = await getDoc(doc(db, "user_profile", email));
465458
if (docSnap.exists()) {
466459
const userData = docSnap.data();
467460
// console.log(userData);
468-
469-
461+
470462
document.getElementById("view_cv").href = userData.about.cv || "#";
471463

472464
// Extract data from user profile
@@ -481,45 +473,96 @@ async function isUser() {
481473
aboutData.fullname = aboutData.firstname + " " + aboutData.lastname;
482474

483475
// Removing unnecessary fields
484-
const { firstname, lastname, email, phoneNo, ...updatedAboutData } = aboutData;
476+
const { firstname, lastname, email, phoneNo, ...updatedAboutData } =
477+
aboutData;
485478

486479
// Calculate completion percentages for each section
487-
const personalProfilePercent = loopingForUserdata(updatedAboutData, 0, Object.keys(updatedAboutData).length);
488-
const socialPercent = loopingForUserdata(socialData, 0, Object.keys(socialData).length);
489-
const skillsPercent = loopingForUserdata(skillData, 0, Object.keys(skillData).length);
490-
const addressPercent = loopingForUserdata(addressData, 0, Object.keys(addressData).length);
491-
const educationPercent = loopingForUserdata(educationData, 0, Object.keys(educationData).length);
492-
const experiencePercent = loopingForUserdata(experienceData, 0, Object.keys(experienceData).length);
480+
const personalProfilePercent = loopingForUserdata(
481+
updatedAboutData,
482+
0,
483+
Object.keys(updatedAboutData).length
484+
);
485+
const socialPercent = loopingForUserdata(
486+
socialData,
487+
0,
488+
Object.keys(socialData).length
489+
);
490+
const skillsPercent = loopingForUserdata(
491+
skillData,
492+
0,
493+
Object.keys(skillData).length
494+
);
495+
const addressPercent = loopingForUserdata(
496+
addressData,
497+
0,
498+
Object.keys(addressData).length
499+
);
500+
const educationPercent = loopingForUserdata(
501+
educationData,
502+
0,
503+
Object.keys(educationData).length
504+
);
505+
const experiencePercent = loopingForUserdata(
506+
experienceData,
507+
0,
508+
Object.keys(experienceData).length
509+
);
493510

494511
// Calculate overall completion (average of all sections)
495512
const jobProfilePercent = Math.floor(
496-
((
497-
socialPercent +
513+
((socialPercent +
498514
skillsPercent +
499515
addressPercent +
500516
educationPercent +
501-
experiencePercent) / 500)*100
517+
experiencePercent) /
518+
500) *
519+
100
502520
);
503521

504-
505-
506522
await assessmentsPercentage();
507-
showProgress(1 , 1 , personalProfilePercent);
508-
showProgress(2 , 2 , jobProfilePercent);
509-
523+
showProgress(1, 1, personalProfilePercent);
524+
showProgress(2, 2, jobProfilePercent);
510525
} else {
511-
console.log("No user profile found!");
526+
// If user profile does not exist, check the lead collection
527+
// const docSnap = await getDoc(doc(db, "user_profile", email));
528+
const userDocRef = doc(db, "user_profile", email);
529+
const leadDocRef = doc(db, "lead", email);
530+
const leadDocSnap = await getDoc(leadDocRef);
531+
const userData = leadDocSnap.data();
532+
// console.log(userData);
533+
let v = userData.full_name.split(" ");
534+
// console.log(v);
535+
const firstName = v[0];
536+
const lastName = v[1];
537+
538+
let formData = { about: { email : userData.email, firstname: firstName , lastname : lastName } };
539+
var currentDate = window.getCurrentDateTime();
540+
// console.log(currentDate);
541+
if (leadDocSnap.exists()) {
542+
formData.about = { ...formData.about, ...leadDocSnap.data()};
543+
delete formData.about.full_name;
544+
}
545+
546+
// // Add audit fields
547+
formData.audit_fields = {
548+
createdAt: currentDate,
549+
createdBy: email,
550+
updatedAt: "",
551+
updatedBy: "",
552+
};
553+
console.log(formData);
554+
555+
// // Create a new user profile document
556+
await setDoc(userDocRef, formData);
557+
console.log("success");
558+
// localStorage.setItem("profile", true);
559+
560+
// // Redirect to the appropriate page
561+
// const redirectUrl = localStorage.getItem("redirect_url");
562+
// window.location.href = redirectUrl || "/myaccount/cv_upload/";
512563
}
513-
514-
515-
516-
517-
518-
519564
} catch (error) {
520565
console.error("Error getting user data from user_profile:", error);
521566
}
522567
}
523568
isUser();
524-
525-

0 commit comments

Comments
 (0)