322322// }
323323// }
324324
325-
326325const email = localStorage . getItem ( "email" ) ;
326+ // console.log(email);
327327
328328function 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-
389386async 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-
461454async 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}
523568isUser ( ) ;
524-
525-
0 commit comments