-
Notifications
You must be signed in to change notification settings - Fork 22
Exam Hub Lightning Web Components
KEY:
✔️: Documentation up to date
❌: Documentation is outdated
Quick Access
- ✔️EssayTypeQuestion
- ❌Exam Creation
- ❌HeroResultPage
- ❌HeroResultPageController - Slightly differen't
- ✔️lwcExamInterview
- ✔️lwcExamOverview
- ✔️lwcExamResultsPoolPage
- ✔️lwcExamTimer controller
- ✔️lwcGiftImport
- ✔️lwcMarkForReview
- ✔️lwcQuestion
- ✔️lwcQuestionFlag
- ✔️lwcSldsModal controller
- ❌MatchingQuestionType
- ❌MultiMultipleChoicesQuestion
- ❌MultipleChoicesQuestion - answerChoices* doesn't exist
- ❌NumericalQuestionType
- ✔️PoolTableCmp
- ✔️QuestionTableCmp
- ✔️ResultItem cmp
- ❌ShortAnswerTypeQuestion
- ❌TrueFalseQuestion
Description:
- Implements a lightning-layout to display a question, provide answer input, and dispatch an answer to the question.
Variables/properties:
-
@api parameter:
- question
- Takes data from a Question__c record and stores the data for display
- question
-
@track dynamic:
- answer
- An internal representation of the inputted answer to the question
- displayAnswerGiven
- A string representation of answer for display
- answer
Internal variables/properties:
-
display Booleans (if one is true, the rest are false):
- displayTextarea, displayRadioGroup, displayInput, displayCheckboxGroup, displayComboBox
- These Booleans determine which lightning input component is used to display the question. The method used to set one to true also sets the other ones to false ensuring only one type is displayed at a time.
- displayTextarea, displayRadioGroup, displayInput, displayCheckboxGroup, displayComboBox
-
Arrays for display:
- optionsForComboBox, radioCheckboxGroupComboBoxOptions_, answersForComboBox
- These arrays are used to show the different options to select from for an answer.
- optionsForComboBox, radioCheckboxGroupComboBoxOptions_, answersForComboBox
-
Object for display:
- comboBoxAnswersProvided
- This object allows display of match label-to-choice type questions.
- comboBoxAnswersProvided
Description:
- This component displays a button for each question in the exam, tracks the state of each question and also jumps to the question that's clicked on
Variables:
- examQuestionsState
- array passed in from lwcExamInterview. Used for tracking the state of each exam question
Methods:
- jumpToQuestion
- method used to create and fire an event that passes the selected question number to lwcExamInterview
Description:
- This component displays a button to mark the question for reviewing. This button fires an event to lwcExamInterview component. The question will be marked and the question number color listed will be changed.
Variables:
- none
Methods:
- handleClick - method used to handle the button click and fire the event.
Description:
- Flags question for trainer review, and marks it in the exam overview.
- Brings up modal to have the test taker select category and leave notes before sending to apex class to mark question.
- (Note*: Iteration 8 also wanted to use sub category, however due to them not showing it in their presentation it was assumed it was not functional. Therefore, it was not included in this component due to time constraints, but it's a relatively easy add.)
Variables:
- maxNotesLength: max length of notes
- categoryValue: Current value of the catagory list. used to pass into apex to set object field
- categoryList: full lists of the global value set for the category list
- flagNotes: Notes to be passed into apex to set text area on object
- recordId: ID of the current question.
- flagInProgress: boolean used to track state of object. When recordId is false this will show error when button is clicked
- submitted: Depracated
- noteState: Depracated
- submittedState: Depracated
- objectInfo: used to pull picklist fields to be assigned to a list to be used in the combobox
Classes:
- Question Flag update
- APEX class to update the question's IsFlagged, Flag Notes, and the Flag_Category__c.
Fields needed on the Exam question object for functionality:
- Field Label IsFlagged ------checkbox
- API Name IsFlagged__c
- Field Label Flag Notes -------Text Area
- API Name Flag_Notes__c
- Field Label Flag Category-------picklist
- API Name Flag_Category__c
Flag category has a global picklist for these values:
- Formatting
- Missing Info
- Outdated
- Text
Description:
- This component displays a countdown timer for the exam based off of the default time limit field on the exam.
Variables:
- examTimeLimit
- The time limit (in minutes) passed from parent component.
- timeLeft
- The countdown timer that displays the remaining time.
- countDownDate
- The date and time when the count down will be done.
- timeIntervalInstance
- The 1 second interval to update timeLeft.
Methods:
- connectedCallback
- When component inserted into DOM, call start method after 1 second delay to allow variables time to load.
- start
- Starts the countdown timer using a 1 second interval:
- Get the current time.
- Find the difference between countDownDate and current time.
- Calculate the time remaining in hours, minutes and seconds.
- Update timeLeft.
- Check if timer is done, dispatch event to parent.
- Starts the countdown timer using a 1 second interval:
Description:
- This component is a confirmation modal that is used to submit the exam. It opens a modal on a button click that has a title, confirmation message and buttons for cancel and confirm.
Variables:
- isModalOpen
- Used to track whether the modal is open(true) or closed(false), closed by default.
Following variables are passed by parent component:
- showButtonText
- Label of the show modal button.
- closeButtonText
- Alternate text of the close button (X at top right of modal).
- modalHeader
- The header/title of the modal.
- modalContent
- The body/content of the modal.
- confirmButtonLabel
- Label of the confirm modal button.
- closeButtonLabel
- Label of the close modal button.
- showButtonDisabled
- Disables the show modal button when true, clickable otherwise.
Methods:
- showModal
- Sets the isModalOpen property to true, indicating that the Modal is Open.
- closeModal
- Sets the isModalOpen property to false, indicating that the Modal is Closed.
- handleSubmitClick
- Sends an event to parent component when show modal button is clicked and shows the modal.
- handleConfirmClick
- Sends an event to parent component when confirm button is clicked and hides the modal.
- get modalClas
- Compute the CSS classes of the Modal(popup) based on the value of isModalOpen property.
- modalBackdropClass
- Compute the CSS classes of the Modal Backdrop(grey overlay) based on the value of isModalOpen property.
Description:
- Used to import files in GIFT format to create exam questions in the database. The questions are linked to a titan that is selected before importing the GIFT formatted text file.
Functions:
- connectedCallback() - Uses the AuraGIFTImportController to get the values from Salesforce for the Titan and Technology picklists.
- titanOptions() - Uses values from connectedCallback in order to display a picklist for Titans.
- techOptions() - Uses values from connectedCallback to display the selected Titan's technology.
- handleChange(event) - When switching the selected titan, will also switch the technology to match.
- handleNext(event) - When user clicks the next button, will switch to the upload page.
- handleUploadFile(event) - When the user uploads a file, a file reader gets the content and sends it to the splitString function.
- splitString(string) - Takes the string form of the uploaded file and parses it into individual questions, then sends the questions along with the selected Titan and Technology to the apex controller AuraGIFTImportController.
- handleCancel(event) - When user clicks the cancel button on the upload screen, will send user back to the main screen and set variables back to initial values.
- handleSubmit(event) - When user clicks submit, will first check to see if there is an uploaded file, displaying an error if no file is selected. If there is a file, will call the submitQuestionList function to save to the database, return the user to the main screen, and display how many questions were imported and how many were updated.
- submitQuestionList(questions, titan) - Calls the apex controller to save the questions in the Exam_Question__c object.
Notes:
- Need at least one Titan in the system for component to work
Description:
- Create Exams and creating exam pools assignment to assign questions pools to exam.
Attributes:
- searchKeyword (String) - User search bar string.
- examId (String) - The exam Id of the exam user created.
- numberToPull (Integer[]) - Array of integer, hold number of questions they want to pull from each pool.
- questionPoolMap (Map) - Map with page number as key and list of question pools as value, 10 questions pool each page.
- questionPool (List) - List of question pools currently on display.
- currentPage (Integer) - Current page of the questions pool table.
- isLastPage (Boolean) - Boolean that will be updated when at the last page.
- poolDataColumns (List) - List of columns objects, use to customize question pools(left) lightning datatable.
- questionShow (List) - List of exam questions of the selected pool.
- questionDataColuns (List) - list of columns objects, use to customize exam questions(right) lightning datatable.
- draftValuesMap (Map) - Map with poolId as key, and the amount of questions the user wants from a pool as value.
- examCreated (Boolean) - Used with aura:if to change page.eq
Private Methods:
- Init() - Used to initialize the poolDataColumns and questionDataColumns. Also grab the question pool records.
- ShowQuestionInPool() - Display questions on the right table when a question pool is selected.
- HandleSuccess() - Change display and save examId.
- HandleCreation() - Send information to Aura Controller to create exam pool assignment.
- UpdateQuestionQuantity() - Update draftValuesMap everytime a user input a number of the question pool.
- HandlePrev() - go to previous page on the question pools table.
- HandleNext() - go to next page on the question pools table.
Helper Methods:
- GetQuestionPools(component) - get question pools from server, set page, and set questionPool and Map
- ShowQuestion(component, payload) - get exam questions from server, set questionShow
- CreateExamAssignment(component, draftValuesMap, examId) - send map to server to create exam pool assignment records.
Description:
- The components will display table of question records and will allow users to add questions to the existing pools.
Variables:
- enableToast : Boolean variable to display toast or not, enableToast=True should work in Lightning Experience.
- mydata : Variable to receive the question list from QuestionTableApexCotroller.
- pools : Variable to receive the pool list from QuestionTableApexCotroller.
- mycolumns : List to display question list table.
- selectedPools : List of pools that are selected for adding questions to pools.
- selectedRows : List of questions that are selected for adding questions to pools.
- searchKeyword : String to send a search target to QuestionTableApexCotroller.
- pageNumber : Specify what page in the question table.
- pageSize : Specify how many questions are displayed in the question table.
- isLastPage : Boolean variable indicate whether the question table is on the last page.
- dataSize : Tracks the number of results on the page
Methods:
- connctedCallback : Sets up initial search of the exams as well as settings maxNum and minNum based on those results
- searchQues : Calls the apex controller imperatively to return the questions matching the search
- pool : Wires the GetPool to the apex controller to retrieve the potential pools you can add
- addQuestion2Pool : Calls the apex controller imperatively to insert the selected questions into the selected pools
- updateSelectedRows : Updates the class property to reflect all the selected questions
- onMultiSelectChange : Updates the class property to reflect all the selected pools
- changePage : Performs validation logic on page changing to ensure proper use of page changing and will also change it
- handleNext : Increases the page by 1 and updates the searched questions pool
- handlePrev : Decreases the page by 1 and updates the searched questions pool
- onSingleSelectChange : Changes the page size and updates the searched questions pool
Description:
- Similar to QuestionTableCmp. But instead adding question to the pool, PoolTableCmp will allow user to remove question from the pool and display list of questions belong to that pool.
Variables:
- enableToast (Boolean) : Boolean variable to display toast or not, enableToast=True should work in Lightning Experience.
- mydata (object) : variable to receive the question list from PoolTableApexCotroller.
- pools (object) : variable to receive the pool list from PoolTableApexCotroller.
- mycolumns (List) : List to display question list table.
- selectedPools (List) : Eventhough it is a list of pools but this list will only store 1 pool selected to display question.
- selectedRows (List) : List of questions that are selected for REMOVING questions to pools.
- searchKeyword (String) : String to send a search target to PoolTableApexCotroller.
- pageNumber (Integer) : specify what page in the question table.
- pageSize (Integer) : specify how many questions are displayed in the question table.
- isLastPage (Boolean) : Boolean variable indicate wheter the question table is on the last page.
- dataSize (Integer) (no use)
Private Methods:
- Init() - Used to initialize the questions table and selection pool list.
- updateSelectedRows() - update selectedRows variable when rows are selected.
- searchQues() - sending search request to server base on searchKeyword.
- displayPoolQues() - update selectedPools and call getData helper to get the questions from a pool.
- UpdateQuestionQuantity() - Update draftValuesMap everytime a user input a number of the question pool.
- onSingleSelectChange () - sending request to server base on the pageSize.
- handlePrev() - go to previous page on the question pools table.
- handleNext() - go to next page on the question pools table.
- delQuestionPool() - sending request to server to REMOVE selected questions to pools selected.
Helper Methods:
- getData - Get all the data base on client to display questions table .
- getPools - Get all pool list to select.
- delQuesPool - sending request to server to REMOVE selected questions to pools selected.
Description:
- Wrapper component for the
HeroResults
andExamResultsPoolPage
bundles. It will also retrieve titans and associated exams related to a user.
Attributes:
- examListPanel - return value from the apex class that holds the exams taken.
- titanTabPanel - return value from the apex class that holds the titans that meet a (currently hard-coded) criteria.
- resultList - return value from the apex class that holds the exam results for the exam taken.
- examResultId - property to hold exam result Id of interest.
- currentPage - property to hold name of current titan selected.
- examClicked - property to hold boolean value that turns true when an exam result is clicked.
- pbpClicked - property to hold boolean value that turns true when a
Pool-by-Pool
button is clicked. - caClicked - property to hold boolean value that turns true when 'Code Assessment Results" button is clicked.
- titanIdList - property to hold list of Titan Ids related to user.
Controller Methods:
-
onInit - calls
helper.init()
-
onExamClick - calls
helper.fireExamIdEvent()
-
onTitanClick - calls
helper.helper.filterExamList()
andhelper.markActiveTab()
-
onBackBtnClick - calls
helper.navBackToExams()
-
onBackDetailBtnClick - calls
helper.navBackToSingleExam()
-
onPbpClick - calls
helper.showPbp()
-
onCAClick - calls
helper.start()
-
titanList - wired to the apex controller to retrieve titanTabPanel.
-
resultList - wired to the apex controller to retrieve examListPanel.
-
onCAClick - imperatively calls apex controller to retrieve resultList.
-
onExamClick - sets values of examResultId and examClicked based on the exam that was selected.
-
onTitanClick - changes the styling of the selected titan when it is clicked.
-
onBackBtnCkucj - returns examClicked, pbpClicked and caClicked to false (default value).
-
onBackDetailBtnClick - returns pbpClicked and caClicked to false (default value).
-
onPbpClick - sets pbpClicked to true to display its content.
Description:
- Lightning record view form to display the fields, this component was put in the hero results page component.
Description:
- Apex Controller for HeroResultPage.
Methods:
- getResultList - Returns
List<Exam_Result__c>
related to the user. Account__r.Name is hardcoded - getTitanList - Returns
List<String>
of titan id's related to the user. Account__r.Name is hardcoded - retrieveResults -
Returns List<ID>
of hero apex test results from the object hero apex test result object.
- Tests Written? Code Coverage: 100%
Description:
- Allows the Hero to take the Exam. Holder component for each type of Question
Variables:
- examName: The name of the exam used in the exam details header
- titan: The name of the titan used in the exam details header
- examTimeLimit: The time limit associated with the exam used in the exam timer for the exam details header
- error: Holds the error message to display
- examId, accId: Currently hard-coded values telling the controller which exam to grab from the org and which account is taking the exam (handled when submitting)
- updateAnswers: Used for switching off the answer update after exam is submitted
- examQuestions: Holds an array of all of the exam questions, pulled from the Apex class ExamInterviewApexController. For each element, contains an object with the fields
- Question_Text__c: Question's body
- Question_Type__c: Read to know how to display the question (true/false, multiple choice, etc.)
- Id: Id of the question within the org
- Options__c: The possible answer choices to the question (delimited by ||)
- Correct_Answer_s__c: The correct answer to the question
- examQuestionsState: Holds an array pertaining to the state of each question (unanswered/answered/marked for review/flagged). Each element contains an object of the following form:
- questionNumber: Passed to the state tracker to display the table
- answered: True if the question is answered, false otherwise
- markedForReview: True if the question is marked for review, false otherwise
- flagged: True if the question is flagged, false otherwise
- examQuestionOrder: Unused, must be included due to a Salesforce bug that hasn't been fixed (https://ideas.salesforce.com/s/idea/a0B8W00000GdknvUAB/delete-non-packaged-api-variables-from-managed-lwc-components). Actual question randomization is handled by other methods.
- examAnswers: Holds an object that contains the current user's answers to the questions. It is keyed by the question number (after randomization) and its value is the answer entered. Used to allow the user to return to questions later.
- answer: User-entered answer on the current question.
- prevButtonDisabled/nextButtonDisabled: Used to prevent the user from clicking 'Previous Question' on question 1 and 'Next Question' on the last question
- showCelebrateButton: Used to show the celebrate button after exam submission to play more fireworks
- submitButtonDisabled: Used to prevent the user from clicking 'Submit Exam' after exam submission
- questionNumber: Tracks the current question number, indexed from 1.
- numberOfQuestions: Total number of questions in the exam
- questionNumberTitleText: Getter method used to set the display of the current question number in the exam interface.
- toastMessage: Used to store the message to display when creating a toast event
- toastTitle: Used to store the title when creating a toast event
- toastVariant: Used to store the variant when creating a toast event
- submitConfirmationMessage: The exam submission confirmation message
- countMarked: Number of questions marked for review to display in exam submission confirmation message
- countUnanswered: Number of unanswered questions to display in exam submission confirmation message
Methods:
- questionNumberTitleText: Creates the question title to be displayed
- wiredExamQuestions: Main initialization procedure.
- Calls the examFinder method in the Apex class ExamInterviewApexController, which returns the list of questions pertaining to the exam and the exam's details
- Sets the number of questions, and calls shuffleQuestions to randomize the order
- Sets the exam details
- Calls createBlankExamAnswersList to initialize the answer list
- Calls initializeQuestionsState to initialize the question state list
- Calls updateQuestionComponent to update the interface
- updateQuestionComponent: Main display procedure. Called everytime a question is navigated to. First resets the state component in order to update the table of states, then updates the question displayed to the current question, then pulls the previous answer from handleSetAnswer.
- createBlankExamAnswersList: Populates examAnswers with blank answers for each question loaded.
- initializeQuestionsState: Initializes examQuestionsState to a state of {questionNumber: [current question number], answered: false, markedForReview: false, flagged: false}.
- shuffleQuestions/shuffleQuestionOrder: Randomizes the question order according to a bag randomizer, with an order retrieved from shuffleQuestionOrder (Returns an array of integers which is a bag-randomized order from 0 to numberOfQuestions.).
- setCurrentQuestionAnsweredState: Called before a component update to update the state tracker whether or not the question is answered or not. It checks to see if the answer is not empty, and if so, sets the state of that question to answered. Currently does not handle partial answers.
- flagCurrentQuestion: Called upon receiving a flag event, and sets the state of the current question to flagged: true.
- markForReviewCurrentQuestion: Called upon received a markreview event from lwcFlagForReview component, and reverses the state of the current question's markedForReview (to allow the user to unmakr for review as well)
- answerUpdated: Receives an answerupdated event from lwcQuestion and sets answer to what was entered.
- setExamAnswerToAnswerProvided: Updated examAnswers from the currently entered answer.
- setCurrentAnswerToPreviouslyAnswered: Retrieves the previously entered answer, if one exists.
- setPrevNextDisabled: sets prevButtonDisabled/nextButtonDisabled depending on the current question number.
- prevClicked/nextClicked/gotoQuestion/gotoQuestionNumber: Handles question navigation. gotoQuestion handles the questionchange event from examOverview, which lets the user navigate to a specific question from clicking the state tracker. nextClicked/prevClicked navigate to the next/previous question. Main navigation/update procedure handled by gotoQuestionNumber, which takes a question number to navigate to and makes the following calls in order.
- setExamAnswerToAnswerProvided: Updates examAnswers to the answer provided for the current question
- setCurrentQuestionAnsweredState: Updates the state of the current question accordingly
- THEN changes the question number (Note*: THE ORDER OF THIS HAPPENING IS VERY IMPORTANT!)
- setCurrentAnswerToPreviouslyAnswered: Returns the previous answer if this question was already attempted and fills it in
- updateQuestionComponent: Updates the component to the new question
- setPrevNextDisabled: Disables previous/next if on the first/last question.
- pluralize: Used to add appropriate suffix to words when number is greater than 1
- handleSubmit: Creates the submit confirmation message for the submit modal to display
- handleConfirmSubmit: Calls the submitExam method in the Apex class ExamInterviewApexController to handle submitting the exam.
- handleSubmitAnswers: Calls the submitAnswers method in the Apex class ExamInterviewApexController to handle submitting the user's answers to the exam.
- connectedCallback: When component inserted into DOM, load confetti
- fireworks: Displays confetti fireworks when exam is submitted
Helper Methods:
- assignExamHelper: Gets this information from the TakeExamClickedEvent, which holds the Exam that will be taken, assigns the correct Exam that will be taken by the Hero
- loadExamHelper: Loads the exam questions after pulling the questions from the controller
- navigateToNextQuestion : On next button click, goes to the question after the question the Hero is on
- navigateToPrevQuestion : On prev button click, goes to the questions before the question the Hero is on
- submitExam : On button click, refreshes page on click. Now properly sends test data to be stored on salesforce
Description:
- Component for Matching Type of Question on Exams
Attributes:
- question(Exam_Question__c) - Holds the question object received from the lwcExamInterview component
- options(String[]) - Holds all of the options to match against to the answers
- answers(String[]) - Holds each of the answers to match with the options
- questionPrompt(String) - Holds the question text related to the question that is sent to component
- heroAnswer(Hero_Answer__c) - Holds the Hero’s answer to the question being answered. More functionality needed. Explained in the Future Iterations.
Controller Method:
- loadOptions : Loads the Matching Component when initialized
Helper Method:
- loadHelper : Loads the Matching Component with the answers and sets the relevant attributes for the questions.
Description:
- Component for Numerical Type of Question on Exams
Attributes:
- question(Exam_Question__c) - Holds the question object received from the lwcExamInterview component
- answer(String) - Holds the correct answer for the question
- questionPrompt(String) - Holds the question text related to the question that is sent to component
- heroAnswer(Hero_Answer__c) - Holds the Hero’s answer to the question being answered. More functionality needed. Explained in the Future Iterations.
Description:
- Component for Multiple Choice with Multiple Answers Type of Question on Exams
Attributes:
- question(Exam_Question__c) - Holds the question object received from the lwcExamInterview component
- questionPrompt(String) - Holds the question text related to the question that is sent to component
- correctAnswer(String[]) - Holds the correct answer for the question
- checkGroupOptions(String[]) - Holds the values for the choices for the question
- answerChoices(String[]) - Holds the selected choices from the exam taker for the question
Controller Method:
- fetchMultiChoices : Loads the Multiple Choice with Multiple Answers Component when initialized
Helper Method:
- fetchMultiChoices : Loads the Multiple Choice with Multiple Answers Component with the answers and sets the relevant attributes for the questions.
Description:
- Component for Multiple Choice with Multiple Answers Type of Question on Exams
Attributes:
- answerChoice - Holds the answer the user selected.
- questionPrompt - Holds the question text related to the question that is sent to component, is exposed as @api
- radioGroupOptions - Holds the values for the choices for the question, is axposed as @api
- answerChoices - Holds the selected choices from the exam taker for the question
Controller Method:
- connectedCallback : Splits the radioGroupOptions into separate strings for user selection
- changeAnswer : Called when a user changes their answer to update the class property
- answer : Called by a parent when they want to retrieve the user-selected answer
Description:
- Component for True-False Type of Question on Exams
Attributes:
- question(Exam_Question__c) - Holds the question object received from the lwcExamInterview component
- questionPrompt(String) - Holds the question text related to the question that is sent to component
- correctAnswer(String[]) - Holds the correct answer for the question
- options(List) - Holds the choices for the question
- value(String) - Holds the select choice from the exam taker for the question
Controller Method:
- fetchTrueFalse : Loads the True-False Component when initialized
Helper Method:
- fetchTrueFalse : Loads the True-False Component with the answers and sets the relevant attributes for the questions.
Description:
- Component for Short Answer Type of Question on Exams
Attributes:
- ShortQuestion(String) - Holds the question text related to the question that is sent to component
- ShortAnswer(String) - Holds the correct answer for the question
Description:
- Component for Essay Type of Question on Exams
Attributes:
- EssayQuestion(String) - Holds the question text related to the question that is sent to component
- EssayAnswer(String) - Holds the correct answer for the question
Description:
- This component calculates the percentage of questions answered correctly for each question pool (not question) from the exam results and displays it.
Parameters:
- recordId - If this page is within the Exam results tab, it should work fine, otherwise you should pass an ID to either recordID or examResultId (I don't actually know, examResultId is assigned the value of recordID which is gathered from the parent via @api)
Javascript Methods:
- ConnectedCallback() - the initializer
- correctAnswerPool() - a method wired to GetCorrectExamResultPoolQuestions from an Apex Class: ExamResultsPoolPageAuraController. It collects the correct questions and stores them
- allAnswerPool() - a method wired to GetAllExamResultPoolQuestions from an Apex Class: ExamResultsPoolPageAuraController. It collects all the questions and stores them
- CalculatePoolPercentage() - Converts the two list to objects then calculates pool percentage by comparing the objects and updating the value to a new object which is then mapped and stored in the map attribute.
- ToggleExamPoolPercentage() - SUPPOSED TO: toggle vilibility of the pool percentages : NOT FUNCTIONING
To view the component you must add to your org:
- questions (more than one)
- question pools (more than one)
- exam
- question assignments (assign questions from each pool to the exam)
- hero answers (several both right and wrong from each pool)
NOTE: EDITED BY CHRIS DIRKSWAGER Iteration 6 >> Changed documentation direction, see testing/conversion coverage.
Note: if the name doesn't have lwc in front of it, it's possible the documentation was not updated
Note to any editor: if you change a header name you should change the quick access links accordingly
Click Me!
LWC Testing Coverage
LWC Conversion Coverage
TrialoftheTitans\ExamPackage\main\default\lwc
├─lwcHeroResultPage
│ ├─lwcResultItem
│ ├─lwcExamResultsPoolPage
│ └─lwcHeroResults
├─lwcExamInterview
│ ├─lwcSldsModal
│ └─lwcQuestion
├─lwcShortAnswerTypeQuestion
├─lwcMultiMultipleChoicesQuestion
├─lwcMultipleChoiceQuestion
├─lwcMatchingQuestionType
├─lwcTrueFalseQuestion
├─lwcNumericalQuestionType
├─lwcGiftImport
├─lwcPoolTableCmp
├─lwcQuestionTable
├─lwcExamCreation
└─lwcEssayTypeQuestion
├─Install Instructions
│ ├Site Setup
├─General Documentation
│ ├Data Modeling/Relationships
│ ├Data Model
│ ├Custom Objects & Fields
│ ├Issues & Suggestions
│ ├Known Issues
│ ├Data Model Issues & Suggestions
│ ├Dependency Chart
├─Resources
├─Package Overview
│ ├Trial of the Titans Package
│ ├QC Hub
│ ├Trainer Hub
│ ├Mock Interview
│ ├Chart Package Package
│ ├Hero Hub Package
│ ├Titan Hub Package
│ ├Exam Interview Package
│ ├Portfolio Hub Package
├─Archive