diff options
Diffstat (limited to 'templates/index.js')
| -rw-r--r-- | templates/index.js | 50 |
1 files changed, 35 insertions, 15 deletions
diff --git a/templates/index.js b/templates/index.js index 22d8c4e..9fed4c0 100644 --- a/templates/index.js +++ b/templates/index.js @@ -1,33 +1,53 @@ -let slideIndex = 1; +const deep_value = (o, p) => p.split('.').reduce((a, v) => a[v], o); + +let slideIndeces = {}; // Next/previous controls -function plusSlides(n) { - showSlides(slideIndex += n); +function plusSlides(id, n) { + showSlides(id, slideIndeces[id] += n); } // Thumbnail image controls -function currentSlide(n) { - showSlides(slideIndex = n); +function currentSlide(id, n) { + showSlides(id, slideIndeces[id] = n); } -function showSlides(n) { +function showSlides(id, n) { let i; - let slides = document.getElementsByClassName("mySlides"); - let dots = document.getElementsByClassName("demo"); - let captionText = document.getElementById("caption"); - if (n > slides.length) {slideIndex = 1} - if (n < 1) {slideIndex = slides.length} + console.log(`${id}-slide`); + let slides = document.getElementsByClassName(`${id}-slide`); + let dots = document.getElementsByClassName(`${id}-demo`); + let captionText = document.getElementById(`${id}-caption`); + + // Overflow + if (n > slides.length) { slideIndeces[id] = 1; } + // Underflow + if (n < 1) { slideIndeces[id] = slides.length; } + for (i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } + for (i = 0; i < dots.length; i++) { dots[i].className = dots[i].className.replace(" active", ""); } - slides[slideIndex-1].style.display = "block"; - dots[slideIndex-1].className += " active"; - captionText.innerHTML = dots[slideIndex-1].alt; + + let slide = slides[slideIndeces[id]-1]; + slide.style.display = "block"; + const project = deep_value(projects, slide.id); + dots[slideIndeces[id]-1].className += " active"; + if ('Download' in project) { + captionText.innerHTML = `<a href="${project.Pfad}/${project.Download}" download>${project.Name}</a> von ${project.Team} ${project.Lizenz}` + } else { + captionText.innerHTML = dots[slideIndeces[id]-1].alt; + } } window.onload = function () { - showSlides(slideIndex); + let slides = document.getElementsByClassName("container"); + for (let slide of slides) { + let id = slide.id.replace("-slides", ""); + slideIndeces[id] = 1; + showSlides(id, 1); + } } |
