From 6008549c9482f64beffa1e6619526e4849d61cca Mon Sep 17 00:00:00 2001
From: Jonas Leder <git@jonasled.de>
Date: Sun, 18 Apr 2021 21:49:25 +0200
Subject: [PATCH] display error message, if api sends aerror message

---
 js/customElements/blogFooter.js      | 29 +++++++++++++++++-----------
 js/customElements/blogIndex.js       | 20 +++++++++++++------
 js/customElements/commentsDisplay.js | 17 +++++++++++-----
 3 files changed, 44 insertions(+), 22 deletions(-)

diff --git a/js/customElements/blogFooter.js b/js/customElements/blogFooter.js
index a5e1bba..526894c 100644
--- a/js/customElements/blogFooter.js
+++ b/js/customElements/blogFooter.js
@@ -4,17 +4,24 @@ class blogFooter extends HTMLElement {
         let xhr = new XMLHttpRequest();
         let ul = document.createElement("ul");
         xhr.onreadystatechange = () => {
-            if(xhr.readyState === 4 && xhr.status === 200){
-                let blog = JSON.parse(xhr.responseText);
-                blog.forEach((element) => {
-                    let li = document.createElement("li");
-                    let a = document.createElement("a");
-                    a.href = "/post.html?id=" + element["id"];
-                    a.innerText = element["title"];
-                    li.appendChild(a);
-                    ul.appendChild(li);
-                });
-                this.appendChild(ul);
+            if(xhr.readyState === 4) {
+                if (xhr.status === 200) {
+                    let blog = JSON.parse(xhr.responseText);
+                    blog.forEach((element) => {
+                        let li = document.createElement("li");
+                        let a = document.createElement("a");
+                        a.href = "/post.html?id=" + element["id"];
+                        a.innerText = element["title"];
+                        li.appendChild(a);
+                        ul.appendChild(li);
+                    });
+                    this.appendChild(ul);
+                } else {
+                    let p = document.createElement("p");
+                    p.innerText = "Leider konnte dieser Inhalt nicht geladen werden, bitte versuche die Seite neu zu laden oder komme später wieder zurück";
+                    this.appendChild(p);
+
+                }
             }
         }
         xhr.open("GET", "/API/getBlogElements.php?position=footer");
diff --git a/js/customElements/blogIndex.js b/js/customElements/blogIndex.js
index 636433e..d6f11a7 100644
--- a/js/customElements/blogIndex.js
+++ b/js/customElements/blogIndex.js
@@ -4,18 +4,26 @@ class BlogIndex extends HTMLElement {
         let xhr = new XMLHttpRequest();
         let ul = document.createElement("ul");
         xhr.onreadystatechange = () => {
-            if(xhr.readyState === 4 && xhr.status === 200){
-                let blog = JSON.parse(xhr.responseText);
-                blog.forEach((element) => {
-                    this.innerHTML += `
+            if (xhr.readyState === 4) {
+                if (xhr.status === 200) {
+                    let blog = JSON.parse(xhr.responseText);
+                    blog.forEach((element) => {
+                        this.innerHTML += `
                     <article class="breakWord">
                         <h2>${element["title"]}</h2>
                         <p breakWord>${element["content"]}</p>
                         <p class="center"><a href="/post.html?id=${element["id"]}"><button>Mehr lesen</button></a></p>
                     </article>
                     `;
-                });
-                this.appendChild(ul);
+                    });
+                    this.appendChild(ul);
+
+                } else {
+                    let p = document.createElement("p");
+                    p.innerText = "Leider konnte dieser Inhalt nicht geladen werden, bitte versuche die Seite neu zu laden oder komme später wieder zurück";
+                    this.appendChild(p);
+
+                }
             }
         }
         xhr.open("GET", "/API/getBlogElements.php?position=index");
diff --git a/js/customElements/commentsDisplay.js b/js/customElements/commentsDisplay.js
index 3cf94e2..91984cf 100644
--- a/js/customElements/commentsDisplay.js
+++ b/js/customElements/commentsDisplay.js
@@ -7,10 +7,11 @@ class commentsDisplay extends HTMLElement {
 
         let xhr = new XMLHttpRequest();
         xhr.onreadystatechange = () => {
-            if (xhr.readyState === 4 && xhr.status === 200){
-                let comments = JSON.parse(xhr.responseText);
-                comments.forEach((element) => {
-                    this.innerHTML += `
+            if (xhr.readyState === 4) {
+                if (xhr.status === 200) {
+                    let comments = JSON.parse(xhr.responseText);
+                    comments.forEach((element) => {
+                        this.innerHTML += `
                         <h3 class="commentTitle">${element["name"]}</h3>
                         <div class="comment">
                             <img src="${element["gravatarURL"]}">
@@ -19,7 +20,13 @@ class commentsDisplay extends HTMLElement {
                             </article>
                         </div>
                     `;
-                });
+                    });
+                } else {
+                    let p = document.createElement("p");
+                    p.innerText = "Leider konnte dieser Inhalt nicht geladen werden, bitte versuche die Seite neu zu laden oder komme später wieder zurück";
+                    this.appendChild(p);
+
+                }
             }
         }
         xhr.open("GET", "/API/projectComments.php?article=" + pageName);
-- 
GitLab