<section class="efl-learner-profile__section no-active-courses">
<div class="efl-learner-profile__section--header">
<h3 class="no-active-courses">You have no active courses</h3>
</div>
<div class="efl-learner-profile__section--nocourse-copy">
Lorem ipsum dolor sit amet,Praesent varius leo i consectetur adipiscing elit.
</div>
<a href="#" class="cta cta--primary my-learning-find-course" tabindex="0">Find a course</a>
</section>
No notes defined.
{
"modifier": "no-active-courses",
"heading": "You have no active courses",
"courses": [
{
"title": "Sudden Cardiac Arrest",
"date": "Started Jan 2022",
"image": "/assets/example-content/efl-qualification.svg",
"links": [
{
"link": "Continue learning"
},
{
"link": "Course materials"
},
{
"link": "Ask the community"
},
{
"link": "Ask a coach developer"
},
{
"link": "Recommended reading"
}
]
},
{
"title": "Introduction to Coaching Disabled Football",
"date": "Started Jan 2022",
"image": "/assets/example-content/efl-qualification-red.svg",
"links": [
{
"link": "Continue learning"
},
{
"link": "Course materials"
},
{
"link": "Ask the community"
},
{
"link": "Ask a coach developer"
},
{
"link": "Recommended reading"
}
]
},
{
"title": "National Futsal Course",
"date": "Started Jan 2022",
"image": "/assets/example-content/efl-qualification.svg",
"links": [
{
"link": "Continue learning"
},
{
"link": "Course materials"
},
{
"link": "Ask the community"
},
{
"link": "Ask a coach developer"
},
{
"link": "Recommended reading"
}
]
},
{
"title": "Face-to-face PE CPD for Teachers - Part Two",
"date": "Started Jan 2022",
"image": "/assets/example-content/efl-qualification.svg",
"links": [
{
"link": "Continue learning"
},
{
"link": "Course materials"
},
{
"link": "Ask the community"
},
{
"link": "Ask a coach developer"
},
{
"link": "Recommended reading"
}
]
}
],
"show-more-button": {
"href": "#",
"copy": "Show More",
"additionalClass": "show-more-courses"
},
"show-less-button": {
"href": "#",
"copy": "Show Less",
"additionalClass": "show-less-courses"
},
"no-active-courses": true,
"find-course": {
"href": "#",
"copy": "Find a course",
"additionalClass": "my-learning-find-course"
}
}
export default parentElement => {
const activeCourses = parentElement.querySelector('.active-courses');
const completedCourses = parentElement.querySelector('.completed-courses');
const expiredCourses = parentElement.querySelector('.expired-courses');
const noactiveCourses = parentElement.querySelector('.no-active-courses');
const myLearningTab = document.querySelector('[data-page="my-learning"]');
const membershipSignpost = document.querySelector('.membership-signpost');
const showMoreCourses = (container, threshold) => {
const showMoreButton = container.querySelector('.show-more-courses');
const showLessButton = container.querySelector('.show-less-courses');
const qualifications = container.querySelectorAll('.accordion__content');
if (showLessButton) {
showLessButton.classList.add('hidden');
}
if (qualifications.length > threshold) {
qualifications.forEach((qualificiation, index) => {
if (index + 1 > threshold) {
qualificiation.classList.add('hidden');
}
});
showMoreButton.addEventListener('click', e => {
e.preventDefault();
showMoreButton.classList.add('hidden');
showLessButton.classList.remove('hidden');
qualifications.forEach(qualificiation => {
qualificiation.classList.remove('hidden');
});
});
showLessButton.addEventListener('click', e => {
e.preventDefault();
showMoreButton.classList.remove('hidden');
showLessButton.classList.add('hidden');
showMoreCourses(parentElement, 3);
});
} else {
showMoreButton.classList.add('hidden');
showLessButton.classList.add('hidden');
}
};
showMoreCourses(parentElement, 3);
// to hide signpost for my learnings in profile page
if (myLearningTab && membershipSignpost) {
if (activeCourses || completedCourses || expiredCourses) {
membershipSignpost.classList.add('hidden');
} else if (noactiveCourses) {
membershipSignpost.classList.remove('hidden');
}
}
};
.efl-learner-profile-courses {
.accordion__trigger {
background-color: $grey-light;
padding: 0;
padding-right: 2.4rem;
align-items: flex-start;
}
.accordion__panel {
background-color: $grey-light;
&--aligncontent {
&::before {
content: '';
border-top: 1px solid $white;
width: 100%;
max-width: 58rem;
margin-left: 0.8rem;
display: flex;
}
}
}
.efl-category-title {
color: $color-interface-light;
}
.efl-learner-profile__section__qualification {
pointer-events: none;
padding-right: 0;
width: 100%;
}
.efl-learner-profile__section__qualification--badge::after {
display: none;
}
.accordion__trigger-icon {
background-image: url('./assets/images/profile-icons/accordion-arrow.svg');
width: 2.4rem;
height: 2.4rem;
max-width: unset;
margin-top: 1.2rem;
background-size: contain;
}
.accordion__trigger[aria-expanded='true'] > .accordion__trigger-icon {
background-image: url('./assets/images/profile-icons/accordion-arrow.svg');
transform: rotate(180deg);
}
.accordion__content p {
margin-top: 1.3rem;
font-weight: 700;
letter-spacing: 0.02rem;
padding-left: 0.8rem;
}
&__links {
margin: 0;
padding: 0 0.8rem !important;
li {
list-style: none;
margin-bottom: 1.2rem;
a {
color: $blue-accent !important;
border-bottom: none !important;
&.external-link::before {
content: '';
background: url('./assets/images/profile-icons/link-new-page.svg');
width: 1.4rem;
height: 1.6rem;
margin-right: 0.8rem;
}
}
}
}
.accordion__panel a:not(.cta) {
@extend .efl-p-medium;
font-weight: 700;
display: flex;
align-items: center;
text-decoration: underline;
}
.cta {
&.show-more-courses,
&.show-less-courses {
min-width: 100%;
color: $blue;
text-decoration: none;
border-color: $light-blue;
&:hover {
border: none;
color: $blue;
background-color: $light-blue;
}
}
}
@media screen and (min-width: $mq-medium) {
.accordion__trigger-icon {
width: 3.2rem;
height: 3.2rem;
margin-top: 1.6rem;
}
.accordion__panel a:not(.cta) {
font-size: 2rem;
}
}
}
<section class="efl-learner-profile__section {{modifier}}" {{#unless no-active-courses}} data-behavior="efl-learner-profile-courses" {{/unless}}>
{{#unless no-active-courses}}
<div class="efl-learner-profile__section--header">
<h3 class="{{modifier}}">{{heading}}</h3>
</div>
<div class="accordion efl-learner-profile-courses" data-behaviour="accordion">
{{#each courses}}
<div class="accordion__content">
<h3>
<button class="accordion__trigger" id="{{../modifier}}-{{@index}}" aria-expanded="false"
aria-controls="{{../modifier}}-{{@index}}-panel">
<div class="efl-learner-profile__section__qualification">
<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>
<h5>{{title}}</h5>
</div>
</div>
<span class="accordion__trigger-icon fill-arrow"></span>
</button>
</h3>
<div class="accordion__panel" id="{{../modifier}}-{{@index}}-panel" role="region" aria-labelledby="{{../modifier}}-{{@index}}">
<div class="accordion__panel--aligncontent" aria-hidden="true">
{{#if copy}}
<p>
{{copy}}
</p>
{{/if}}
<ul class="efl-learner-profile-courses__links">
{{#each links}}
<li><a class="external-link" target="_blank">{{link}}</a></li>
{{/each}}
</ul>
</div>
</div>
</div>
{{/each}}
</div>
<button class="cta cta--secondary show-more-courses" aria-label="show more courses">Show More</button>
<button class="cta cta--secondary show-less-courses" aria-label="show less courses">Show Less</button>
{{/unless}}
{{#if no-active-courses}}
<div class="efl-learner-profile__section--header">
<h3 class="{{modifier}}">{{heading}}</h3>
</div>
<div class="efl-learner-profile__section--nocourse-copy">
Lorem ipsum dolor sit amet,Praesent varius leo i consectetur adipiscing elit.
</div>
{{render '@cta' find-course merge='true'}}
{{/if}}
</section>