<section class="efl-learner-profile__section my-qualifications" data-behavior="efl-learner-profile-my-qualifications">
         <div class="efl-learner-profile__section--header">
             <h3 class="my-qualifications">My qualifications</h3>
             <button aria-label="edit my qualification" class="efl-learner-profile__section--edit"></button>
         </div>

         <h4 class="efl-learner-profile__section--subheading">England Football Learning Qualifications</h4>
         <p class="paragraph my-placeholder-text">Our records show that you haven't completed any qualification with England Football Learning, the FA or Bootroom </br>
             Not to panic though! If you believe this is incorrect, please write to us <a href="https://help.thefa.com/support/home" target="_blank" aria-label="write to us link open in new window">here</a> </p>
         <div class="efl-learner-profile__section__qualification--container">
             <a href="#" class="efl-learner-profile__section__qualification myqualification" id="efl-learner-profile-qualification-0">
                 <div class="efl-learner-profile__section__qualification--badge">
                     <img src=../../assets/example-content/efl-qualification.svg alt="">
                 </div>
                 <div class="efl-learner-profile__section__qualification__content">
                     <div class="efl-category-title">Jun 2020</div>
                     <h4>Introduction to Coaching Disabled Football</h4>
                 </div>
             </a>
             <a href="#" class="efl-learner-profile__section__qualification myqualification" id="efl-learner-profile-qualification-1">
                 <div class="efl-learner-profile__section__qualification--badge">
                     <img src=../../assets/example-content/efl-qualification.svg alt="">
                 </div>
                 <div class="efl-learner-profile__section__qualification__content">
                     <div class="efl-category-title">Jun 2020</div>
                     <h4>Introduction to Coaching Disabled Football</h4>
                 </div>
             </a>
             <a href="#" class="efl-learner-profile__section__qualification myqualification" id="efl-learner-profile-qualification-2">
                 <div class="efl-learner-profile__section__qualification--badge">
                     <img src=../../assets/example-content/efl-qualification.svg alt="">
                 </div>
                 <div class="efl-learner-profile__section__qualification__content">
                     <div class="efl-category-title">Jun 2020</div>
                     <h4>Introduction to Coaching Disabled Football</h4>
                 </div>
             </a>
             <a href="#" class="efl-learner-profile__section__qualification myqualification" id="efl-learner-profile-qualification-3">
                 <div class="efl-learner-profile__section__qualification--badge">
                     <img src=../../assets/example-content/efl-qualification.svg alt="">
                 </div>
                 <div class="efl-learner-profile__section__qualification__content">
                     <div class="efl-category-title">Jun 2020</div>
                     <h4>Introduction to Coaching Disabled Football</h4>
                 </div>
             </a>
             <button class="cta cta--secondary" id="show-more-button" aria-label="show more my qualifications">Show More</button>
             <button class="cta cta--secondary" id="show-less-button" aria-label="show less my qualifications">Show Less</button>
         </div>

         <h4 class="efl-learner-profile__section--subheading">Other Qualifications</h4>
         <p class="paragraph other-placeholder-text">Courses completed outside of England Football Learning, the FA or
             Bootroom need to be added manually and cannot be verified</p>
         <div class="efl-learner-profile__section__qualification--container other" id="efl-learner-profile-other-qualification-page-list">
             <div class="efl-learner-profile-other-qualification-page-list--item">
                 <div class="efl-learner-profile__section__qualification other" data-qualification-detail='{
            "name": "Grade one name of other qualification 1" ,  
            "description" : "Bit of descriptive text about their experience. Limited to 100 characters", 
            "dateCompleted" : "2023/02/25"}' data-edit-id="0">
                     <div class="efl-learner-profile__section__qualification__content">
                         <div class="efl-category-title">Aug 2014</div>
                         <h5>Grade one name of other qualification 1</h5>
                         <p>Bit of descriptive text about their experience. Limited to 100 characters</p>
                     </div>
                 </div>
                 <div class="efl-learner-profile__section__qualification other" data-qualification-detail='{
            "name": "Grade one name of other qualification 2" ,  
            "description" : "Bit of descriptive text about their experience. Limited to 100 characters", 
            "dateCompleted" : "2013/07/25"}' data-edit-id="1">
                     <div class="efl-learner-profile__section__qualification__content">
                         <div class="efl-category-title">Jul 2013</div>
                         <h5>Grade one name of other qualification 2</h5>
                         <p>Bit of descriptive text about their experience. Limited to 100 characters</p>
                     </div>
                 </div>
                 <div class="efl-learner-profile__section__qualification other" data-qualification-detail='{
            "name": "Grade One name of other qualification 3" ,  
            "description" : "Bit of descriptive text about their experience. Limited to 100 characters", 
            "dateCompleted" : "2012/06/25"}' data-edit-id="2">
                     <div class="efl-learner-profile__section__qualification__content">
                         <div class="efl-category-title">Jun 2012</div>
                         <h5>Grade One name of other qualification 3</h5>
                         <p>Bit of descriptive text about their experience. Limited to 100 characters</p>
                     </div>
                 </div>
             </div>
             <button class="cta cta--secondary" id="show-more-button" aria-label="show more other qualifications">Show More</button>
             <button class="cta cta--secondary" id="show-less-button" aria-label="show less other qualifications">Show Less</button>
         </div>
         <div class="efl-profile-left-popup my-qualifications" role="dialog" aria-modal="true" data-behavior="efl-profile-left-popup">
             <button class="efl-profile-left-popup__close" aria-label="close my qualifications popup window"></button>
             <div class="efl-learner-profile__section--header">
                 <h3 class="my-qualifications">My Qualifications</h3>
             </div>

             <div id="my-qualifications-editable" class="efl-profile-left-popup--inner">
                 <h4 class="efl-learner-profile__section--subheading"><strong>England Football Learning qualifications</strong></h4>
                 <p class="paragraph">Any courses that you have completed via England Football Learning, FA or Bootrom will appear automatically</p>

                 <div class="efl-learner-profile__section__qualification--container">
                     <a class="efl-learner-profile__section__qualification myqualification">
                         <div class="efl-learner-profile__section__qualification--badge">
                             <img src=../../assets/example-content/efl-qualification.svg alt="">
                         </div>
                         <div class="efl-learner-profile__section__qualification__content">
                             <div class="efl-category-title">Jun 2020</div>
                             <h4>Introduction to Coaching Disabled Football</h4>
                         </div>
                     </a>
                     <a class="efl-learner-profile__section__qualification myqualification">
                         <div class="efl-learner-profile__section__qualification--badge">
                             <img src=../../assets/example-content/efl-qualification.svg alt="">
                         </div>
                         <div class="efl-learner-profile__section__qualification__content">
                             <div class="efl-category-title">Jun 2020</div>
                             <h4>Introduction to Coaching Disabled Football</h4>
                         </div>
                     </a>
                     <a class="efl-learner-profile__section__qualification myqualification">
                         <div class="efl-learner-profile__section__qualification--badge">
                             <img src=../../assets/example-content/efl-qualification.svg alt="">
                         </div>
                         <div class="efl-learner-profile__section__qualification__content">
                             <div class="efl-category-title">Jun 2020</div>
                             <h4>Introduction to Coaching Disabled Football</h4>
                         </div>
                     </a>
                     <a class="efl-learner-profile__section__qualification myqualification">
                         <div class="efl-learner-profile__section__qualification--badge">
                             <img src=../../assets/example-content/efl-qualification.svg alt="">
                         </div>
                         <div class="efl-learner-profile__section__qualification__content">
                             <div class="efl-category-title">Jun 2020</div>
                             <h4>Introduction to Coaching Disabled Football</h4>
                         </div>
                     </a>
                     <button class="cta cta--secondary" id="show-more-button" aria-label="show more my qualifications">Show More</button>
                     <button class="cta cta--secondary" id="show-less-button" aria-label="show less my qualifications">Show Less</button>
                     <p class="missing-something">Missing something? <a href="">Let us know</a>.</p>
                 </div>

                 <h4 class="efl-learner-profile__section--subheading"><strong>Other qualifications</strong></h4>
                 <p class="paragraph other-placeholder-text">Courses completed outside of England Football Learning, the FA or
                     Bootroom need to be added manually and cannot be verified</p>
                 <div class="efl-learner-profile__section__qualification--container other" id="efl-learner-profile-other-qualification-popup-list">
                     <div class="efl-learner-profile-other-qualification-popup-list--item">
                         <div class="efl-learner-profile__section__qualification other" data-end-date="2023/02/25" data-edit-id="0">
                             <div class="efl-learner-profile__section__qualification__content">
                                 <div class="efl-category-title">Aug 2014</div>
                                 <h5>Grade one name of other qualification 1</h5>
                                 <p>Bit of descriptive text about their experience. Limited to 100 characters</p>
                             </div>
                             <button aria-label="edit Grade one name of other qualification 1 qualification" class="efl-learner-profile__section__qualification--edit"></button>
                         </div>
                         <div class="efl-learner-profile__section__qualification other" data-end-date="2013/07/25" data-edit-id="1">
                             <div class="efl-learner-profile__section__qualification__content">
                                 <div class="efl-category-title">Jul 2013</div>
                                 <h5>Grade one name of other qualification 2</h5>
                                 <p>Bit of descriptive text about their experience. Limited to 100 characters</p>
                             </div>
                             <button aria-label="edit Grade one name of other qualification 2 qualification" class="efl-learner-profile__section__qualification--edit"></button>
                         </div>
                         <div class="efl-learner-profile__section__qualification other" data-end-date="2012/06/25" data-edit-id="2">
                             <div class="efl-learner-profile__section__qualification__content">
                                 <div class="efl-category-title">Jun 2012</div>
                                 <h5>Grade One name of other qualification 3</h5>
                                 <p>Bit of descriptive text about their experience. Limited to 100 characters</p>
                             </div>
                             <button aria-label="edit Grade One name of other qualification 3 qualification" class="efl-learner-profile__section__qualification--edit"></button>
                         </div>
                     </div>
                     <button class="cta cta--secondary" id="show-more-button" aria-label="show more other qualifications">Show More</button>
                     <button class="cta cta--secondary" id="show-less-button" aria-label="show less other qualifications">Show Less</button>
                 </div>
                 <button class="cta cta--secondary  " id="add-qualification-button" aria-label="add a qualification">Add a Qualification</button>
             </div>
             <div id="my-qualifications-form" class="efl-profile-left-popup--inner hidden" data-unsaved="false" data-public="false">
                 <button class="efl-profile-left-popup__back" aria-label="back to my qualifications">Back</button>
                 <h4 class="efl-learner-profile__section--subheading" data-form-title-add="Add Qualifications" data-form-title-edit="Edit Qualifications"><strong>Add Qualifications</strong></h4>
                 <form>
                     <label for="my-qualifications-form--name">Name of the Qualification</label>
                     <input type="text" name="qualification name" autocomplete="off" id="my-qualifications-form--name" />
                     <p><span class="character-count__name">0</span>/100 characters</p>

                     <label for="my-qualifications-form--date">Month that the qualification was Completed</label>
                     <div class="my-qualifications-form--date-container">
                         <input autocomplete="off" type="text" name="month of qualification" id="my-qualifications-form--date" />
                     </div>

                     <label for="my-qualifications-form--desc">Description of what the course involved</label>
                     <textarea rows="3" cols="30" maxlength="500" name="description of course" id="my-qualifications-form--desc"></textarea>
                     <p><span class="character-count__textarea">0</span>/500 characters</p>
                 </form>
                 <button class="cta cta--efl  " id="my-qualifications-save-form-button" aria-label="save changes qualification" aria-disabled="true">
                     <span>Save</span>
                     <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px" height="20px" viewBox="0 0 24 30" style="enable-background:new 0 0 50 50;" xml:space="preserve">
                         <rect x="0" y="10" width="4" height="10" fill="#fff" opacity="0.2">
                             <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0s" dur="0.6s" repeatCount="indefinite"></animate>
                             <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0s" dur="0.6s" repeatCount="indefinite"></animate>
                             <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0s" dur="0.6s" repeatCount="indefinite"></animate>
                         </rect>
                         <rect x="8" y="10" width="4" height="10" fill="#fff" opacity="0.2">
                             <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.15s" dur="0.6s" repeatCount="indefinite"></animate>
                             <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.15s" dur="0.6s" repeatCount="indefinite"></animate>
                             <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.15s" dur="0.6s" repeatCount="indefinite"></animate>
                         </rect>
                         <rect x="16" y="10" width="4" height="10" fill="#fff" opacity="0.2">
                             <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.3s" dur="0.6s" repeatCount="indefinite"></animate>
                             <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.3s" dur="0.6s" repeatCount="indefinite"></animate>
                             <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.3s" dur="0.6s" repeatCount="indefinite"></animate>
                         </rect>
                     </svg>
                 </button>
                 <button class="cta cta--secondary" id="delete-qualification-button" aria-label="delete qualification">Delete Qualification</button>
             </div>
             <div class="efl-profile-left-popup__toast-notification" data-toast-update-text="Qualification Saved" data-toast-delete-text="Qualification Deleted" tabindex="-1" aria-label="">
                 <canvas id="rive" width="36" height="36"></canvas>
                 Qualification Saved
             </div>
             <div class="efl-profile-left-popup__alert-modal" role="dialog" aria-modal="true" aria-live="polite" data-unsaved-changes-header="You have unsaved changes" data-unsaved-changes-copy="Continue editing to save your changes." data-fill-all-fields-header="you must fill in all fields" data-fill-all-fields-copy="Continue editing to save your changes." data-make-bio-public-header="Time to make your bio public?" data-make-bio-public-copy="Publishing your bio allows others to view your information. This is a great way to connect with clubs, coaches and the football community." data-innapropriate-content-header="Innapropriate content" data-innapropriate-content-copy="Lorem ipsum dolor sit amet, consectetur adipiscing elit." data-iwf-error-content-header="Error" data-iwf-error-content-copy="Lorem ipsum dolor sit amet, consectetur adipiscing elit." data-invalid-data-content-header="Error" data-invalid-data-content-copy="Lorem ipsum dolor sit amet, consectetur adipiscing elit.">
                 <h5 class="efl-category-title">This Image is Not Appropriate</h5>
                 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ultricies, nibh sit amet varius faucibus, est ipsum commodo mi, a rutrum urna mauris ut.</p>
                 <button class="cta cta--efl  " id="my-qualifications-continue-editing-button" aria-label="Continue Editing">Continue Editing</button>
                 <button class="cta cta--secondary  " id="my-qualifications-lose-my-changes-button" aria-label="Lose My Changes">Lose My Changes</button>
                 <button class="cta cta--efl  " id="my-qualifications-make-bio-public-button" aria-label="Make Bio Public">Make Bio Public</button>
                 <button class="cta cta--secondary  " id="my-qualifications-keep-bio-private-button" aria-label="Keep Bio Private">Keep Bio Private</button>
                 <button class="cta cta--efl  " id="efl-learner-profile-edit-qualification-button" aria-label="Edit Qualification">Edit Qualification</button>
                 <button class="cta cta--efl  " id="efl-learner-profile-error-qualification-button" aria-label="Try again">Try again</button>
             </div>
         </div>
     </section>

No notes defined.

{
  "qualifications": [
    {
      "title": "Introduction to Coaching Disabled Football",
      "date": "Jun 2020",
      "image": "../../assets/example-content/efl-qualification.svg",
      "id": 0
    },
    {
      "title": "Introduction to Coaching Disabled Football",
      "date": "Jun 2020",
      "image": "../../assets/example-content/efl-qualification.svg",
      "id": 1
    },
    {
      "title": "Introduction to Coaching Disabled Football",
      "date": "Jun 2020",
      "image": "../../assets/example-content/efl-qualification.svg",
      "id": 2
    },
    {
      "title": "Introduction to Coaching Disabled Football",
      "date": "Jun 2020",
      "image": "../../assets/example-content/efl-qualification.svg",
      "id": 3
    }
  ],
  "otherQualifications": [
    {
      "title": "Grade one name of other qualification 1",
      "date": "Aug 2014",
      "description": "Bit of descriptive text about their experience. Limited to 100 characters",
      "dateEnd": "2023/02/25"
    },
    {
      "title": "Grade one name of other qualification 2",
      "date": "Jul 2013",
      "description": "Bit of descriptive text about their experience. Limited to 100 characters",
      "dateEnd": "2013/07/25"
    },
    {
      "title": "Grade One name of other qualification 3",
      "date": "Jun 2012",
      "description": "Bit of descriptive text about their experience. Limited to 100 characters",
      "dateEnd": "2012/06/25"
    }
  ],
  "show-more-button": {
    "href": "#",
    "copy": "Show More",
    "id": "show-more-button"
  },
  "show-less-button": {
    "href": "#",
    "copy": "Show Less",
    "id": "show-less-button"
  },
  "add-qualification-button": {
    "href": "#",
    "id": "add-qualification-button",
    "copy": "Add a Qualification"
  },
  "save-button": {
    "href": "#",
    "copy": "Save",
    "id": "my-qualifications-save-button"
  },
  "save-form-button": {
    "href": "#",
    "copy": "Save",
    "id": "my-qualifications-save-form-button",
    "modifier": "efl"
  },
  "delete-qualification-button": {
    "href": "#",
    "copy": "Delete Qualification",
    "id": "delete-qualification-button",
    "additionalClass": "hidden",
    "modifier": "secondary"
  },
  "continue-editing-button": {
    "href": "#",
    "copy": "Continue Editing",
    "id": "my-qualifications-continue-editing-button",
    "modifier": "efl"
  },
  "lose-changes-button": {
    "href": "#",
    "copy": "Lose My Changes",
    "id": "my-qualifications-lose-my-changes-button",
    "modifier": "secondary"
  },
  "make-bio-public-button": {
    "href": "#",
    "copy": "Make Bio Public",
    "id": "my-qualifications-make-bio-public-button",
    "modifier": "efl"
  },
  "keep-bio-private-button": {
    "href": "#",
    "copy": "Keep Bio Private",
    "id": "my-qualifications-keep-bio-private-button",
    "modifier": "secondary"
  },
  "edit-qualification-button": {
    "href": "",
    "copy": "Edit Qualification",
    "id": "efl-learner-profile-edit-qualification-button",
    "modifier": "efl"
  },
  "error-qualification-button": {
    "href": "",
    "copy": "Try again",
    "id": "efl-learner-profile-error-qualification-button",
    "modifier": "efl"
  }
}
  • Content:
    import Datepicker from 'vanillajs-datepicker/js/Datepicker';
    import { updatePlayerProfile } from '../efl-learner-profile/efl-learner-profile-update';
    
    export default parentElement => {
      // Variables
      const eflProfileLayout = document.querySelector('.efl-profile-layout');
      const eflQualifications = parentElement.querySelector(
        '.efl-learner-profile__section__qualification--container:not(.other)'
      );
      const otherQualificationsPage = parentElement.querySelector(
        '#efl-learner-profile-other-qualification-page-list'
      );
      const otherQualificationsPopup = parentElement.querySelector(
        '#efl-learner-profile-other-qualification-popup-list'
      );
      const editbtn = parentElement.querySelector(
        '.efl-learner-profile__section--edit'
      );
    
      // Pop Up
      const popUp = parentElement.querySelector('.efl-profile-left-popup');
      const eflQualificationsPopup = popUp.querySelector(
        '.efl-learner-profile__section__qualification--container:not(.other)'
      );
      const addQualificationButton = popUp.querySelector(
        '.cta[id=add-qualification-button]'
      );
      const backButton = popUp.querySelector('.efl-profile-left-popup__back');
    
      const mainSection = popUp.querySelector('#my-qualifications-editable');
      const formSection = popUp.querySelector('#my-qualifications-form');
      const { formTitleAdd, formTitleEdit } = formSection.querySelector(
        'h4'
      ).dataset;
      // Qualification Form
      const saveQualificationButton = popUp.querySelector(
        '.cta[id=my-qualifications-save-form-button]'
      );
      const deleteQualificationBtn = popUp.querySelector(
        '.cta[id=delete-qualification-button]'
      );
    
      const toastNotification = popUp.querySelector(
        '.efl-profile-left-popup__toast-notification'
      );
      const closeBtn = popUp.querySelector('.efl-profile-left-popup__close');
      const { toastUpdateText, toastDeleteText } = toastNotification.dataset;
      const MOBILE_BREAKPOINT = 820;
    
      // Alert Modal
      const alertModal = popUp.querySelector(
        '.efl-profile-left-popup__alert-modal'
      );
      const privacyInput = document.querySelector('#learner-profile-privacy-check');
    
      // Alert Modal - Buttons
      const continueEditingBtn = alertModal.querySelector(
        '#my-qualifications-continue-editing-button'
      );
      const loseChangesBtn = alertModal.querySelector(
        '#my-qualifications-lose-my-changes-button'
      );
      const makeBioPublicBtn = alertModal.querySelector(
        '#my-qualifications-make-bio-public-button'
      );
      const keepBioPrivateBtn = alertModal.querySelector(
        '#my-qualifications-keep-bio-private-button'
      );
      const editQualificationBtn = alertModal.querySelector(
        '#efl-learner-profile-edit-qualification-button'
      );
      const errorQualificationBtn = alertModal.querySelector(
        '#efl-learner-profile-error-qualification-button'
      );
    
      // Inputs
      const nameInput = formSection.querySelector('#my-qualifications-form--name');
      const dateInput = formSection.querySelector('#my-qualifications-form--date');
      const textareaInput = formSection.querySelector(
        '#my-qualifications-form--desc'
      );
    
      const characterCount = popUp.querySelector('.character-count__name');
      const textareaCharacterCount = popUp.querySelector(
        '.character-count__textarea'
      );
    
      // eslint-disable-next-line no-unused-vars
      let datePicker = null;
    
      // Functions
    
      const resetForm = () => {
        nameInput.value = '';
        dateInput.value = '';
        textareaInput.value = '';
    
        saveQualificationButton.setAttribute('aria-disabled', 'true');
        characterCount.innerHTML = '0';
        textareaCharacterCount.innerHTML = '0';
      };
    
      const modalAlert = type => {
        const header = alertModal.getAttribute(`data-${type}-header`);
        const copy = alertModal.getAttribute(`data-${type}-copy`);
    
        // Reset Alert Modal ClassName
        alertModal.removeAttribute('data-err');
        alertModal.setAttribute('data-err', type);
    
        alertModal.querySelector('h5').innerHTML = header;
        alertModal.querySelector('p').innerHTML = copy;
    
        alertModal.classList.add('add-animation');
        popUp.classList.add('dark-overlay');
      };
    
      const closeModal = e => {
        e.preventDefault();
    
        alertModal.classList.remove('add-animation');
    
        setTimeout(() => {
          popUp.classList.remove('dark-overlay');
        }, 300);
      };
    
      const closeForm = () => {
        backButton.setAttribute('aria-disabled', 'false');
        formSection.setAttribute('data-unsaved', 'false');
        mainSection.classList.remove('hidden');
        formSection.classList.add('hidden');
        closeBtn.classList.remove('not-saved');
      };
    
      const openForm = () => {
        mainSection.classList.add('hidden');
        formSection.classList.remove('hidden');
        formSection.scroll(0, 0);
      };
    
      // eslint-disable-next-line no-unused-vars
      const closePopUp = () => {
        // Reset UI back to default
        closeForm();
        popUp.classList.remove('add-animation');
        popUp.classList.remove('dark-overlay');
    
        eflProfileLayout.style.zIndex = null;
    
        document.body.classList.remove('efl-profile-dark-overlay');
      };
    
      const formValidation = () => {
        if (
          nameInput.value === '' ||
          dateInput.value === '' ||
          textareaInput.value === ''
        ) {
          saveQualificationButton.setAttribute('aria-disabled', 'true');
          backButton.setAttribute('aria-disabled', 'true');
        } else {
          saveQualificationButton.setAttribute('aria-disabled', 'false');
          formSection.setAttribute('data-unsaved', 'true');
          closeBtn.classList.add('not-saved');
        }
    
        if (
          nameInput.value === '' &&
          dateInput.value === '' &&
          textareaInput.value === ''
        ) {
          formSection.setAttribute('data-unsaved', 'false');
          closeBtn.classList.remove('not-saved');
        } else {
          formSection.setAttribute('data-unsaved', 'true');
          closeBtn.classList.add('not-saved');
        }
      };
    
      const makeBioPublic = status => {
        privacyInput.checked = status;
      };
    
      const editQualification = e => {
        e.preventDefault();
    
        const qualification = e.target.closest(
          '.efl-learner-profile__section__qualification'
        );
        const qualificationName = qualification.querySelector('h5').innerHTML;
        const qualificationDescription = qualification.querySelector('p').innerHTML;
        const { editId, endDate } = qualification.dataset;
    
        // Need to remove z-index for popup to work
        eflProfileLayout.style.zIndex = 'unset';
        document.body.classList.add('efl-profile-dark-overlay');
    
        openForm();
    
        formSection.setAttribute('data-editing', editId);
        saveQualificationButton.setAttribute('aria-disabled', 'true');
    
        // fill inputs with default values
        nameInput.value = qualificationName;
        textareaInput.value = qualificationDescription;
        dateInput.value = endDate;
        datePicker.setDate(new Date(endDate));
    
        characterCount.innerHTML = qualificationName.length;
        textareaCharacterCount.innerHTML = qualificationDescription.length;
    
        popUp.classList.add('add-animation');
    
        deleteQualificationBtn.classList.remove('hidden');
        formSection.querySelector('h4 strong').innerText = formTitleEdit;
      };
    
      const editQualificationInit = () => {
        const editQualificationLinks = mainSection.querySelectorAll(
          '.efl-learner-profile__section__qualification--edit'
        );
    
        editQualificationLinks.forEach(editlink => {
          editlink.addEventListener('click', e => {
            e.preventDefault();
    
            editQualification(e);
            setTimeout(() => {
              closeBtn.focus();
            }, 50);
          });
    
          editlink.addEventListener('keydown', event => {
            if (event.keyCode === 13) {
              event.preventDefault();
              editlink.click();
            }
          });
        });
      };
    
      const showMoreQualifications = (container, threshold) => {
        if (!container) {
          return;
        }
        const showMoreButton = container.querySelector('#show-more-button');
    
        if (!showMoreButton) {
          return;
        }
    
        const showLessButton = container.querySelector('#show-less-button');
        const qualifications = container.querySelectorAll(
          '.efl-learner-profile__section__qualification'
        );
    
        // Hide Default Text when there is no my qualifications
        const myqualifications = container.querySelectorAll(
          '.efl-learner-profile__section__qualification.myqualification'
        );
        const myplaceholderText = container.parentElement.querySelectorAll(
          '.my-placeholder-text'
        );
    
        if (myqualifications.length > 1) {
          myplaceholderText.forEach(myplaceholders => {
            myplaceholders.classList.add('hidden');
          });
        }
    
        // Hide Default Text when there is no other qualifications
        const otherqualifications = container.querySelectorAll(
          '.efl-learner-profile__section__qualification.other'
        );
        const otherplaceholderText = container.parentElement.querySelectorAll(
          '.other-placeholder-text'
        );
    
        if (otherqualifications.length > 0) {
          otherplaceholderText.forEach(otherplaceholders => {
            otherplaceholders.classList.add('hidden');
          });
        }
    
        if (showLessButton) {
          showLessButton.classList.add('hidden');
        }
    
        if (qualifications.length > threshold) {
          qualifications.forEach((qualificiation, index) => {
            if (index + 1 > threshold) {
              qualificiation.classList.add('hidden');
            } else {
              qualificiation.classList.remove('hidden');
            }
          });
    
          showMoreButton.addEventListener('click', e => {
            e.preventDefault();
    
            showMoreButton.classList.add('hidden');
            showLessButton.classList.remove('hidden');
            setTimeout(() => {
              showLessButton.focus();
            }, 10);
            qualifications.forEach(qualificiation => {
              qualificiation.classList.remove('hidden');
            });
          });
    
          showLessButton.addEventListener('click', e => {
            e.preventDefault();
    
            const clickedElement = e.target;
            const eflQualification = clickedElement.closest(
              '.efl-learner-profile__section__qualification--container:not(.other)'
            );
            const otherQualificationPage = clickedElement.closest(
              '#efl-learner-profile-other-qualification-page-list'
            );
            const otherQualificationPopup = clickedElement.closest(
              '#efl-learner-profile-other-qualification-popup-list'
            );
    
            if (eflQualification) {
              showMoreQualifications(eflQualification, 3);
              showMoreButton.classList.remove('hidden');
              setTimeout(() => {
                showMoreButton.focus();
              }, 10);
              showLessButton.classList.add('hidden');
            } else if (otherQualificationPage) {
              showMoreQualifications(otherQualificationPage, 2);
              showMoreButton.classList.remove('hidden');
              setTimeout(() => {
                showMoreButton.focus();
              }, 10);
              showLessButton.classList.add('hidden');
            } else if (otherQualificationPopup) {
              showMoreQualifications(otherQualificationPopup, 2);
              showMoreButton.classList.remove('hidden');
              setTimeout(() => {
                showMoreButton.focus();
              }, 10);
              showLessButton.classList.add('hidden');
            }
          });
        } else {
          showMoreButton.classList.add('hidden');
          showLessButton.classList.add('hidden');
        }
      };
    
      const dateSorting = (a, b) => {
        if (
          new Date(a.dateCompleted).getTime() > new Date(b.dateCompleted).getTime()
        ) {
          return -1;
        }
        return 1;
      };
    
      const updateQualificationDetails = editMode => {
        const monthNames = [
          'Jan',
          'Feb',
          'Mar',
          'Apr',
          'May',
          'Jun',
          'Jul',
          'Aug',
          'Sep',
          'Oct',
          'Nov',
          'Dec',
        ];
    
        const myQualificationsPage = document.querySelector(
          '[data-behavior="efl-learner-profile-my-qualifications"]'
        );
        const myQualificationsPopupDiv = myQualificationsPage.querySelector(
          '#efl-learner-profile-other-qualification-popup-list'
        );
        const myQualificationsPopupList = myQualificationsPopupDiv.querySelector(
          '.efl-learner-profile-other-qualification-popup-list--item'
        );
        const myQualificationsPageDiv = myQualificationsPage.querySelector(
          '#efl-learner-profile-other-qualification-page-list'
        );
        const myQualificationsPageList = myQualificationsPageDiv.querySelector(
          '.efl-learner-profile-other-qualification-page-list--item'
        );
        let qualificationList = myQualificationsPageDiv.querySelectorAll(
          '.efl-learner-profile__section__qualification.other'
        );
        let qualificationJson = [];
        let count = 0;
    
        const newQualificationJson = `{
          "name": "${nameInput.value}" , 
          "description" : "${textareaInput.value}", 
          "dateCompleted" : "${dateInput.value}"}`;
    
        if (editMode === 'new') {
          qualificationList.forEach((qualification, index) => {
            const { qualificationDetail } = qualification.dataset;
    
            qualificationJson[index] = JSON.parse(qualificationDetail);
            count = index;
          });
    
          qualificationJson[count + 1] = JSON.parse(newQualificationJson);
        } else if (editMode === 'edit') {
          const editId = formSection.getAttribute('data-editing');
          const editDateEnd = new Date(dateInput.value);
          const editEndMonth = editDateEnd.getMonth();
          const editEndYear = editDateEnd.getFullYear();
    
          const editPopupList = myQualificationsPopupDiv.querySelector(
            `.efl-learner-profile__section__qualification[data-edit-id="${editId}"]`
          );
          const editPageList = myQualificationsPageDiv.querySelector(
            `.efl-learner-profile__section__qualification[data-edit-id="${editId}"]`
          );
    
          editPopupList.querySelector('h5').innerText = nameInput.value;
          editPopupList.querySelector('p').innerHTML = textareaInput.value;
          editPopupList.querySelector('.efl-category-title').innerText = `${
            monthNames[editEndMonth]
          } ${editEndYear}`;
    
          editPageList.querySelector('h5').innerText = nameInput.value;
          editPageList.querySelector('p').innerHTML = textareaInput.value;
          editPageList.querySelector('.efl-category-title').innerText = `${
            monthNames[editEndMonth]
          } ${editEndYear}`;
          editPageList.setAttribute(
            'data-qualification-detail',
            newQualificationJson
          );
    
          qualificationList = myQualificationsPageDiv.querySelectorAll(
            '.efl-learner-profile__section__qualification.other'
          );
    
          qualificationJson = [];
    
          // console.log(qualificationList);
    
          qualificationList.forEach((qualification, index) => {
            const { qualificationDetail } = qualification.dataset;
    
            qualificationJson[index] = JSON.parse(qualificationDetail);
            // count = index;
          });
        } else if (editMode === 'delete') {
          const editId = formSection.getAttribute('data-editing');
          const deletePopupList = myQualificationsPopupDiv.querySelector(
            `.efl-learner-profile__section__qualification[data-edit-id="${editId}"]`
          );
          const deletePageList = myQualificationsPageDiv.querySelector(
            `.efl-learner-profile__section__qualification[data-edit-id="${editId}"]`
          );
    
          deletePopupList.remove();
          deletePageList.remove();
    
          qualificationList = myQualificationsPageDiv.querySelectorAll(
            '.efl-learner-profile__section__qualification.other'
          );
    
          qualificationJson = [];
    
          // console.log(qualificationList);
    
          qualificationList.forEach((qualification, index) => {
            const { qualificationDetail } = qualification.dataset;
    
            qualificationJson[index] = JSON.parse(qualificationDetail);
            // count = index;
          });
    
          const otherplaceholderText = parentElement.querySelectorAll(
            '.other-placeholder-text'
          );
    
          if (qualificationJson.length === 0) {
            otherplaceholderText.forEach(otherplaceholders => {
              otherplaceholders.classList.remove('hidden');
            });
          }
        }
        // console.log(qualificationJson);
    
        // sort the latest qualification to top list
        const sortedQualification = qualificationJson.sort(dateSorting);
        // console.log(sortedQualification);
    
        // empty popup other qualification list
        myQualificationsPopupList.innerHTML = '';
        // empty page other qualification list
        myQualificationsPageList.innerHTML = '';
    
        sortedQualification.forEach((qualification, index) => {
          const dateEnd = new Date(qualification.dateCompleted);
          const endMonth = dateEnd.getMonth();
          const endYear = dateEnd.getFullYear();
    
          const popupQualificationsHtml = `
          <div class="efl-learner-profile__section__qualification other" 
              data-end-date="${
                qualification.dateCompleted
              }" data-edit-id="${index}">
            <div class="efl-learner-profile__section__qualification__content">
              <div class="efl-category-title">${
                monthNames[endMonth]
              } ${endYear}</div>
              <h5>${qualification.name}</h5>
              <p>${qualification.description}</p>
            </div>
            <button aria-label="edit qualification" class="efl-learner-profile__section__qualification--edit"></button>
          </div>`;
    
          const pageQualificationHtml = `
            <div class="efl-learner-profile__section__qualification other"
              data-qualification-detail='{
                "name": "${qualification.name}" , 
                "description" : "${qualification.description}", 
                "dateCompleted" : "${
                  qualification.dateCompleted
                }"}' data-edit-id="${index}">
              <div class="efl-learner-profile__section__qualification__content">
                <div class="efl-category-title">${
                  monthNames[endMonth]
                } ${endYear}</div>
                <h5>${qualification.name}</h5>
                <p>${qualification.description}</p>
              </div>
            </div>`;
    
          // bind html object to popup other qualification list
          myQualificationsPopupList.insertAdjacentHTML(
            'beforeend',
            popupQualificationsHtml
          );
          // bind html object to page other qualification list
          myQualificationsPageList.insertAdjacentHTML(
            'beforeend',
            pageQualificationHtml
          );
        });
    
        // showMoreQualifications(eflExperiences, 2);
        showMoreQualifications(myQualificationsPopupDiv, 2);
        showMoreQualifications(myQualificationsPageDiv, 2);
        editQualificationInit();
    
        formSection.removeAttribute('data-editing');
    
        resetForm();
        closeForm();
      };
    
      const saveQualification = (editMode, saveButton) => {
        if (editMode === 'delete') {
          updateQualificationDetails(editMode);
        } else {
          saveButton.classList.add('loading-bar');
          saveButton.setAttribute('aria-disabled', 'true');
        }
    
        // eslint-disable-next-line complexity
        updatePlayerProfile().then(abusiveContent => {
          if (
            abusiveContent &&
            abusiveContent.FAIWFResponse &&
            abusiveContent.FAIWFResponse.IsAbusive
          ) {
            modalAlert('innapropriate-content');
            saveButton.classList.remove('loading-bar');
            saveButton.setAttribute('aria-disabled', 'false');
          } else if (
            abusiveContent &&
            !abusiveContent.FAIWFResponse &&
            abusiveContent.Error
          ) {
            modalAlert('iwf-error-content');
            saveButton.classList.remove('loading-bar');
            saveButton.setAttribute('aria-disabled', 'false');
          } else if (abusiveContent && abusiveContent.Error === 'Future Date') {
            modalAlert('invalid-data-content');
            saveButton.classList.remove('loading-bar');
            saveButton.setAttribute('aria-disabled', 'false');
          } else {
            if (editMode !== 'delete') {
              if (
                privacyInput &&
                !privacyInput.checked &&
                formSection.getAttribute('data-initial-filled') !== 'true'
              ) {
                formSection.setAttribute('data-initial-filled', 'true');
                modalAlert('make-bio-public');
                setTimeout(() => {
                  makeBioPublicBtn.focus();
                }, 100);
                saveButton.classList.remove('loading-bar');
                saveButton.setAttribute('aria-disabled', 'false');
                return;
              }
              updateQualificationDetails(editMode);
            }
    
            if (editMode === 'delete') {
              toastNotification.innerText = toastDeleteText;
            } else {
              toastNotification.innerText = toastUpdateText;
            }
    
            if (window.innerWidth >= MOBILE_BREAKPOINT) {
              toastNotification.style.left = `${(431 -
                toastNotification.offsetWidth) /
                2}px`;
            }
    
            saveButton.classList.remove('loading-bar');
            saveButton.setAttribute('aria-disabled', 'false');
    
            toastNotification.classList.add('enter-animation');
            setTimeout(() => {
              toastNotification.classList.remove('enter-animation');
            }, 3000);
    
            formSection.setAttribute('data-unsaved', 'false');
    
            mainSection.classList.remove('hidden');
            formSection.classList.add('hidden');
    
            backButton.setAttribute('aria-disabled', 'false');
            closeBtn.classList.remove('not-saved');
          }
        });
      };
    
      // Alert Modal
    
      continueEditingBtn.addEventListener('click', event => {
        closeModal(event);
        setTimeout(() => {
          saveQualificationButton.focus();
        }, 10);
      });
    
      continueEditingBtn.addEventListener('keydown', event => {
        if (event.keyCode === 13) {
          event.preventDefault();
          continueEditingBtn.click();
        } else {
          setTimeout(() => {
            if (loseChangesBtn) {
              loseChangesBtn.focus();
            } else {
              continueEditingBtn.click();
            }
          }, 10);
        }
      });
    
      loseChangesBtn.addEventListener('click', event => {
        closeModal(event);
        resetForm();
        closeForm();
        setTimeout(() => {
          closeBtn.focus();
        }, 10);
      });
    
      loseChangesBtn.addEventListener('keydown', event => {
        if (event.keyCode === 13) {
          event.preventDefault();
          loseChangesBtn.click();
        } else {
          setTimeout(() => {
            continueEditingBtn.focus();
          }, 10);
        }
      });
    
      makeBioPublicBtn.addEventListener('click', event => {
        closeModal(event);
        makeBioPublic(true);
        setTimeout(() => {
          closeBtn.focus();
        }, 10);
      });
    
      makeBioPublicBtn.addEventListener('keydown', event => {
        if (event.keyCode === 13) {
          event.preventDefault();
          makeBioPublicBtn.click();
        } else {
          setTimeout(() => {
            keepBioPrivateBtn.focus();
          }, 10);
        }
      });
    
      keepBioPrivateBtn.addEventListener('click', event => {
        closeModal(event);
        makeBioPublic(false);
        setTimeout(() => {
          closeBtn.focus();
        }, 10);
      });
    
      keepBioPrivateBtn.addEventListener('keydown', event => {
        if (event.keyCode === 13) {
          event.preventDefault();
          keepBioPrivateBtn.click();
        } else {
          setTimeout(() => {
            makeBioPublicBtn.focus();
          }, 10);
        }
      });
    
      addQualificationButton.addEventListener('click', e => {
        e.preventDefault();
    
        resetForm();
    
        openForm();
        formValidation();
        deleteQualificationBtn.classList.add('hidden');
        formSection.removeAttribute('data-editing');
        formSection.querySelector('h4 strong').innerText = formTitleAdd;
        datePicker = new Datepicker(dateInput, {
          maxDate: new Date(),
          minDate: new Date(new Date().setFullYear(new Date().getFullYear() - 150)),
          prevArrow: '',
          nextArrow: '',
          container: '.my-qualifications-form--date-container',
          autohide: true,
        });
        setTimeout(() => {
          closeBtn.focus();
        }, 50);
      });
    
      addQualificationButton.addEventListener('keydown', event => {
        if (event.keyCode === 13) {
          event.preventDefault();
          addQualificationButton.click();
        } else {
          setTimeout(() => {
            closeBtn.focus();
          }, 10);
        }
      });
    
      // Form
    
      nameInput.addEventListener('input', e => {
        characterCount.innerHTML = e.target.value.length;
    
        formValidation();
      });
    
      const today = new Date();
    
      datePicker = new Datepicker(dateInput, {
        maxDate: today,
        minDate: new Date(new Date().setFullYear(new Date().getFullYear() - 150)),
        prevArrow: '',
        nextArrow: '',
        container: '.my-qualifications-form--date-container',
        autohide: true,
      });
    
      dateInput.addEventListener('change', () => {
        formValidation();
      });
    
      textareaInput.addEventListener('input', e => {
        textareaCharacterCount.innerHTML = e.target.value.length;
        formValidation();
      });
    
      backButton.addEventListener('click', e => {
        e.preventDefault();
    
        if (formSection.getAttribute('data-unsaved') === 'true') {
          modalAlert('unsaved-changes');
          setTimeout(() => {
            continueEditingBtn.focus();
          }, 100);
          return;
        }
    
        if (!formSection.classList.contains('hidden')) {
          resetForm();
          closeForm();
        }
    
        setTimeout(() => {
          closeBtn.focus();
        }, 50);
      });
    
      backButton.addEventListener('keydown', event => {
        if (event.keyCode === 13) {
          event.preventDefault();
          backButton.click();
        }
      });
    
      saveQualificationButton.addEventListener('click', e => {
        e.preventDefault();
    
        if (saveQualificationButton.getAttribute('aria-disabled') === 'true') {
          modalAlert('fill-all-fields');
          setTimeout(() => {
            continueEditingBtn.focus();
          }, 100);
          return;
        }
    
        // Will edit current qualification instead of adding new in edit mode
        if (!formSection.getAttribute('data-editing')) {
          saveQualification('new', saveQualificationButton);
        } else {
          saveQualification('edit', saveQualificationButton);
        }
        setTimeout(() => {
          closeBtn.focus();
        }, 50);
      });
    
      saveQualificationButton.addEventListener('keydown', event => {
        if (event.keyCode === 13) {
          event.preventDefault();
          saveQualificationButton.click();
        } else {
          // eslint-disable-next-line no-lonely-if
          if (deleteQualificationBtn.classList.contains('hidden')) {
            setTimeout(() => {
              closeBtn.focus();
            }, 10);
          }
        }
      });
    
      deleteQualificationBtn.addEventListener('click', e => {
        e.preventDefault();
    
        saveQualification('delete', deleteQualificationBtn);
        setTimeout(() => {
          closeBtn.focus();
        }, 10);
      });
    
      deleteQualificationBtn.addEventListener('keydown', event => {
        if (event.keyCode === 13) {
          event.preventDefault();
          deleteQualificationBtn.click();
        } else {
          setTimeout(() => {
            closeBtn.focus();
          }, 10);
        }
      });
    
      editQualificationBtn.addEventListener('click', event => {
        closeModal(event);
      });
    
      errorQualificationBtn.addEventListener('click', event => {
        closeModal(event);
      });
    
      if (closeBtn) {
        closeBtn.addEventListener('click', e => {
          e.preventDefault();
    
          if (formSection.getAttribute('data-unsaved') === 'true') {
            modalAlert('unsaved-changes');
            setTimeout(() => {
              continueEditingBtn.focus();
            }, 100);
            return;
          }
    
          if (!formSection.classList.contains('hidden')) {
            resetForm();
            closeForm();
          }
    
          setTimeout(() => {
            editbtn.focus();
          }, 50);
        });
    
        closeBtn.addEventListener('keydown', event => {
          if (event.keyCode === 13) {
            closeBtn.click();
          } else if (event.shiftKey && event.keyCode === 9) {
            event.preventDefault();
          }
        });
      }
    
      showMoreQualifications(eflQualifications, 3);
      showMoreQualifications(eflQualificationsPopup, 3);
      showMoreQualifications(otherQualificationsPopup, 2);
      showMoreQualifications(otherQualificationsPage, 2);
      editQualificationInit();
    };
    
  • URL: /components/raw/efl-learner-profile-my-qualifications/efl-learner-profile-my-qualifications.js
  • Filesystem Path: src/library/components/efl-learner-profile-my-qualifications/efl-learner-profile-my-qualifications.js
  • Size: 27.8 KB
<section class="efl-learner-profile__section my-qualifications" data-behavior="efl-learner-profile-my-qualifications">
        <div class="efl-learner-profile__section--header">
          <h3 class="my-qualifications">My qualifications</h3>
          <button aria-label="edit my qualification" class="efl-learner-profile__section--edit"></button>
        </div>
        
        <h4 class="efl-learner-profile__section--subheading">England Football Learning Qualifications</h4>
        <p class="paragraph my-placeholder-text">Our records show that you haven't completed any qualification with England Football Learning, the FA or Bootroom </br>
        Not to panic though! If you believe this is incorrect, please write to us <a href="https://help.thefa.com/support/home" target="_blank" aria-label="write to us link open in new window">here</a> </p>
        <div class="efl-learner-profile__section__qualification--container">
          {{#each qualifications}}
            <a href="#" class="efl-learner-profile__section__qualification myqualification" id="efl-learner-profile-qualification-{{id}}">
              <div class="efl-learner-profile__section__qualification--badge">
                <img src={{image}} alt="">
              </div>
              <div class="efl-learner-profile__section__qualification__content">
                <div class="efl-category-title">{{date}}</div>
                <h4>{{title}}</h4>
              </div>
            </a>
          {{/each}}
          <button class="cta cta--secondary" id="show-more-button" aria-label="show more my qualifications">Show More</button>
          <button class="cta cta--secondary" id="show-less-button" aria-label="show less my qualifications">Show Less</button>
        </div>

        <h4 class="efl-learner-profile__section--subheading">Other Qualifications</h4>
        <p class="paragraph other-placeholder-text">Courses completed outside of England Football Learning, the FA or 
        Bootroom need to be added manually and cannot be verified</p>
        {{#if otherQualifications}}
        <div class="efl-learner-profile__section__qualification--container other" id="efl-learner-profile-other-qualification-page-list">
          <div class="efl-learner-profile-other-qualification-page-list--item">
            {{#each otherQualifications}}
            <div class="efl-learner-profile__section__qualification other" data-qualification-detail='{
            "name": "{{title}}" ,  
            "description" : "{{description}}", 
            "dateCompleted" : "{{dateEnd}}"}' data-edit-id="{{@index}}">
              <div class="efl-learner-profile__section__qualification__content">
                <div class="efl-category-title">{{date}}</div>
                <h5>{{title}}</h5>
                <p>{{description}}</p>
              </div>            
            </div>
            {{/each}}
          </div>
          <button class="cta cta--secondary" id="show-more-button" aria-label="show more other qualifications">Show More</button>
          <button class="cta cta--secondary" id="show-less-button" aria-label="show less other qualifications">Show Less</button>
        </div>
        {{/if}}
        <div class="efl-profile-left-popup my-qualifications" role="dialog" aria-modal="true" data-behavior="efl-profile-left-popup">
          <button class="efl-profile-left-popup__close" aria-label="close my qualifications popup window"></button>
            <div class="efl-learner-profile__section--header">
              <h3 class="my-qualifications">My Qualifications</h3>
            </div>
          
          <div id="my-qualifications-editable" class="efl-profile-left-popup--inner">
            <h4 class="efl-learner-profile__section--subheading"><strong>England Football Learning qualifications</strong></h4>
            <p class="paragraph">Any courses that you have completed via England Football Learning, FA or Bootrom will appear automatically</p>
            
            <div class="efl-learner-profile__section__qualification--container">
              {{#each qualifications}}
                <a class="efl-learner-profile__section__qualification myqualification">
                  <div class="efl-learner-profile__section__qualification--badge">
                    <img src={{image}} alt="">
                  </div>
                  <div class="efl-learner-profile__section__qualification__content">
                    <div class="efl-category-title">{{date}}</div>
                    <h4>{{title}}</h4>
                  </div>
                </a>
              {{/each}}
              <button class="cta cta--secondary" id="show-more-button" aria-label="show more my qualifications">Show More</button>
              <button class="cta cta--secondary" id="show-less-button" aria-label="show less my qualifications">Show Less</button>
              <p class="missing-something">Missing something? <a href="">Let us know</a>.</p>
            </div>

            <h4 class="efl-learner-profile__section--subheading"><strong>Other qualifications</strong></h4>
            <p class="paragraph other-placeholder-text">Courses completed outside of England Football Learning, the FA or 
              Bootroom need to be added manually and cannot be verified</p>
            {{#if otherQualifications}}
              <div class="efl-learner-profile__section__qualification--container other" id="efl-learner-profile-other-qualification-popup-list">
                <div class="efl-learner-profile-other-qualification-popup-list--item">
                  {{#each otherQualifications}}
                  <div class="efl-learner-profile__section__qualification other" data-end-date="{{dateEnd}}" data-edit-id="{{@index}}">
                    <div class="efl-learner-profile__section__qualification__content">
                      <div class="efl-category-title">{{date}}</div>
                      <h5>{{title}}</h5>
                      <p>{{description}}</p>
                    </div>
                    <button aria-label="edit {{title}} qualification" class="efl-learner-profile__section__qualification--edit"></button>
                  </div>
                  {{/each}}
                </div>
                <button class="cta cta--secondary" id="show-more-button" aria-label="show more other qualifications">Show More</button>
                <button class="cta cta--secondary" id="show-less-button" aria-label="show less other qualifications">Show Less</button>
              </div>
            {{/if}}
            <button class="cta cta--secondary  " id="add-qualification-button" aria-label="add a qualification">Add a Qualification</button>
          </div>
          <div id="my-qualifications-form" 
            class="efl-profile-left-popup--inner hidden" 
            data-unsaved="false" 
            data-public="false">
            <button class="efl-profile-left-popup__back" aria-label="back to my qualifications">Back</button>
            <h4 class="efl-learner-profile__section--subheading" data-form-title-add="Add Qualifications" data-form-title-edit="Edit Qualifications"><strong>Add Qualifications</strong></h4>
            <form>
              <label for="my-qualifications-form--name">Name of the Qualification</label>
              <input type="text" name="qualification name" autocomplete="off" id="my-qualifications-form--name"/>
              <p><span class="character-count__name">0</span>/100 characters</p>

              <label for="my-qualifications-form--date">Month that the qualification was Completed</label>
              <div class="my-qualifications-form--date-container">
                <input autocomplete="off" type="text" name="month of qualification" id="my-qualifications-form--date"/>
              </div>

              <label for="my-qualifications-form--desc">Description of what the course involved</label>
              <textarea rows="3" cols="30" maxlength="500" name="description of course" id="my-qualifications-form--desc"></textarea>
              <p><span class="character-count__textarea">0</span>/500 characters</p>
            </form>
            <button class="cta cta--efl  " id="my-qualifications-save-form-button" aria-label="save changes qualification" aria-disabled="true">
              <span>Save</span>
              <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px" height="20px" viewBox="0 0 24 30" style="enable-background:new 0 0 50 50;" xml:space="preserve">
                <rect x="0" y="10" width="4" height="10" fill="#fff" opacity="0.2">
                  <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0s" dur="0.6s" repeatCount="indefinite"></animate>
                  <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0s" dur="0.6s" repeatCount="indefinite"></animate>
                  <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0s" dur="0.6s" repeatCount="indefinite"></animate>
                </rect>
                <rect x="8" y="10" width="4" height="10" fill="#fff" opacity="0.2">
                  <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.15s" dur="0.6s" repeatCount="indefinite"></animate>
                  <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.15s" dur="0.6s" repeatCount="indefinite"></animate>
                  <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.15s" dur="0.6s" repeatCount="indefinite"></animate>
                </rect>
                <rect x="16" y="10" width="4" height="10" fill="#fff" opacity="0.2">
                  <animate attributeName="opacity" attributeType="XML" values="0.2; 1; .2" begin="0.3s" dur="0.6s" repeatCount="indefinite"></animate>
                  <animate attributeName="height" attributeType="XML" values="10; 20; 10" begin="0.3s" dur="0.6s" repeatCount="indefinite"></animate>
                  <animate attributeName="y" attributeType="XML" values="10; 5; 10" begin="0.3s" dur="0.6s" repeatCount="indefinite"></animate>
                </rect>
              </svg>
            </button>
            <button class="cta cta--secondary" id="delete-qualification-button" aria-label="delete qualification">Delete Qualification</button>
          </div>
          <div class="efl-profile-left-popup__toast-notification" data-toast-update-text="Qualification Saved" data-toast-delete-text="Qualification Deleted" tabindex="-1" aria-label="">
            <canvas id="rive" width="36" height="36"></canvas>
            Qualification Saved
          </div>
          <div class="efl-profile-left-popup__alert-modal" role="dialog" aria-modal="true" aria-live="polite"
            data-unsaved-changes-header="You have unsaved changes"
            data-unsaved-changes-copy="Continue editing to save your changes."
            data-fill-all-fields-header="you must fill in all fields"
            data-fill-all-fields-copy="Continue editing to save your changes."
            data-make-bio-public-header="Time to make your bio public?"
            data-make-bio-public-copy="Publishing your bio allows others to view your information. This is a great way to connect with clubs, coaches and the football community."
            data-innapropriate-content-header="Innapropriate content"
            data-innapropriate-content-copy="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
            data-iwf-error-content-header="Error" 
            data-iwf-error-content-copy="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
            data-invalid-data-content-header="Error"
            data-invalid-data-content-copy="Lorem ipsum dolor sit amet, consectetur adipiscing elit."
            >
            <h5 class="efl-category-title">This Image is Not Appropriate</h5>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ultricies, nibh sit amet varius faucibus, est ipsum commodo mi, a rutrum urna mauris ut.</p>
            <button class="cta cta--efl  " id="my-qualifications-continue-editing-button" aria-label="Continue Editing">Continue Editing</button>
            <button class="cta cta--secondary  " id="my-qualifications-lose-my-changes-button" aria-label="Lose My Changes">Lose My Changes</button>
            <button class="cta cta--efl  " id="my-qualifications-make-bio-public-button" aria-label="Make Bio Public">Make Bio Public</button>
            <button class="cta cta--secondary  " id="my-qualifications-keep-bio-private-button" aria-label="Keep Bio Private">Keep Bio Private</button>
            <button class="cta cta--efl  " id="efl-learner-profile-edit-qualification-button" aria-label="Edit Qualification">Edit Qualification</button>
            <button class="cta cta--efl  " id="efl-learner-profile-error-qualification-button" aria-label="Try again">Try again</button>
          </div>
        </div>
    </section>
  • Handle: @efl-learner-profile-my-qualifications
  • Preview:
  • Filesystem Path: src/library/components/efl-learner-profile-my-qualifications/efl-learner-profile-my-qualifications.hbs
  • Referenced by (1): @efl-learner-profile