Merge branch 'course-teaser' of gitlab.cip.ifi.lmu.de:jost/UniWorX into course-teaser

This commit is contained in:
Steffen Jost 2019-03-24 11:46:51 +01:00
commit 939db750d2
3 changed files with 29 additions and 46 deletions

View File

@ -1,16 +1,13 @@
<div .course :isRegistered:.course--registered #course-#{courseId}> <div .course :isRegistered:.course--registered #course-#{courseId} tabindex='1'>
<div .course-chevron> <div .course-chevron>
<div .course-shorthand>_{courseShorthand} <div .course-shorthand>_{courseShorthand}
<div .course-title> <div .course-title>
<a href=@{AdminTestR}>_{courseTitle} <a href=@{AdminTestR}>_{courseTitle}
<div .course-registration>_{MsgRegistered}
<div .course-lecturer-label>_{MsgLecturerFor} <div .course-lecturer-label>_{MsgLecturerFor}
<div .course-lecturer-value>_{courseLecturer} <div .course-lecturer-value>_{courseLecturer}
<div .course-duedate-label>_{MsgRegisterTo} <div .course-duedate-label>_{MsgRegisterTo}
<div .course-duedate-value>_{courseRegisterTo} <div .course-duedate-value>_{courseRegisterTo}
<div .course-school-label>_{MsgCourseSchool} <div .course-school-label>_{MsgCourseSchool}
<div .course-school-value>_{courseSchoolName} <div .course-school-value>_{courseSchoolName}
<div .course-registration>
<a .course-registration__register course-registration__item button href=@{AdminTestR}>_{MsgBtnRegister}
<a .course-registration__deregister course-registration__item href=@{AdminTestR}>_{MsgBtnDeregister}
<span .course-registration__registered course-registration__item>_{MsgRegistered}
<div .course-description>_{courseDescription} <div .course-description>_{courseDescription}

View File

@ -1,13 +1,25 @@
var COURSE_TEASER_EXPANDED_CLASS = 'course--expanded'; var COURSE_TEASER_EXPANDED_CLASS = 'course--expanded';
var COURSE_TEASER_CHEVRON_CLASS = 'course-teaser'; var COURSE_TEASER_CHEVRON_CLASS = 'course-chevron';
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
var courseTeaserId = #{String courseId}; var courseTeaserId = #{String courseId};
var courseTeaser = document.querySelector('#course-' + courseTeaserId); var courseTeaser = document.querySelector('#course-' + courseTeaserId);
var courseTeaserChevron = courseTeaser.querySelector('.' + COURSE_TEASER_CHEVRON_CLASS);
courseTeaserChevron.addEventListener('click', function(event) { courseTeaser.addEventListener('click', function(event) {
event.preventDefault(); var isLink = event.target.tagName.toLowerCase() === 'a';
courseTeaser.classList.toggle(COURSE_TEASER_EXPANDED_CLASS); var isChevron = event.target.classList.contains(COURSE_TEASER_CHEVRON_CLASS);
var isExpanded = courseTeaser.classList.contains(COURSE_TEASER_EXPANDED_CLASS);
if ((!isExpanded && !isLink) || isChevron) {
courseTeaser.classList.toggle(COURSE_TEASER_EXPANDED_CLASS);
}
});
courseTeaser.addEventListener('keydown', function(event) {
var eventKey = event.key;
if (eventKey === ' ' || eventKey === 'Enter') {
event.preventDefault();
courseTeaser.classList.toggle(COURSE_TEASER_EXPANDED_CLASS);
}
}); });
}); });

View File

@ -6,7 +6,7 @@
.course { .course {
display: grid; display: grid;
grid-gap: 5px 7px; grid-gap: 5px 7px;
grid-template-columns: 25px 60px 1fr 100px; grid-template-columns: 25px 60px 1fr 40px;
padding: 10px; padding: 10px;
font-size: 1.4rem; font-size: 1.4rem;
background-color: var(--course-bg-color); background-color: var(--course-bg-color);
@ -27,13 +27,14 @@
cursor: pointer; cursor: pointer;
padding: 10px; padding: 10px;
grid-column: 4; grid-column: 4;
grid-row: 1/3; grid-row: 1;
justify-self: center; justify-self: center;
align-self: center; align-self: center;
&::before { &::before {
content: ''; content: '';
display: block; display: block;
margin-top: -8px;
border-width: 0 3px 3px 0; border-width: 0 3px 3px 0;
width: 8px; width: 8px;
height: 8px; height: 8px;
@ -65,24 +66,21 @@
// title // title
.course-title { .course-title {
grid-column: 3; grid-column: 3;
grid-row: 1;
font-size: 1.6rem; font-size: 1.6rem;
align-self: flex-end; align-self: baseline;
} }
// registration // registration
.course-registration { .course-registration {
grid-column: 4; grid-column: 3;
grid-row: 3/5; grid-row: 1;
justify-self: center; justify-self: end;
align-self: flex-end; align-self: baseline;
font-size: 16px; font-size: 16px;
color: var(--color-fontsec); color: var(--color-fontsec);
} }
.course-registration__item {
display: none;
}
// school // school
.course-school-label { .course-school-label {
grid-column: 3; grid-column: 3;
@ -120,26 +118,10 @@
// registered courses // registered courses
.course--registered { .course--registered {
.course-registration__registered { .course-registration {
display: block;
}
.course-registration__deregister {
display: none;
}
&:hover {
.course-registration__register,
.course-registration__registered {
display: none;
}
.course-registration__deregister {
display: block; display: block;
} }
} }
}
// expanded courses // expanded courses
.course--expanded { .course--expanded {
@ -153,15 +135,7 @@
.course-school-value, .course-school-value,
.course-duedate-label, .course-duedate-label,
.course-duedate-value, .course-duedate-value,
.course-registration,
.course-registration__register,
.course-description { .course-description {
display: block; display: block;
} }
&.course--registered {
.course-registration__register {
display: none;
}
}
} }