<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"
}
}
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();
};
<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>