aboutsummaryrefslogtreecommitdiff
path: root/templates/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'templates/index.js')
-rw-r--r--templates/index.js50
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);
+ }
}