//LocalLike Objekt erstellen let localLikes = {} window.addEventListener('resize', () => { // We execute the same script as before let vh = window.innerHeight * 0.01; document.documentElement.style.setProperty('--vh', `${vh}px`); }); $(document).ready(function(){ // submit kommentar nicht seite neu laden $("#kommentarform").submit(function(e) { console.log("Submitted") e.preventDefault(); // avoid to execute the actual submit of the form. }); //LocalStorage erstellen oder auslesen if(localStorage.getItem('localLikes')){ //likes auslesen localLikes = JSON.parse(localStorage.getItem('localLikes')) console.log("Stored local Likes:") console.log(localLikes) }else{ //LocalLikes leer localLikes = { ideen: [], kommentare: [] } console.log("New Local Likes created") console.log(localLikes) localStorage.setItem('localLikes',JSON.stringify(localLikes)); } }) function openOverlay(){ $("#overlay").removeClass("hidden").addClass("show") $("#cancel").click(function() { document.getElementById("overlay_container").innerHTML = ""; $("#overlay").removeClass("show").addClass("hidden") }) } //LocalStorage Anpassen (Likes hinzufügen oder entfernen) function chageLocalStorrage(typ, id, addRemove){ if(typ =="idee"){ if(addRemove == "add" && !localLikes.ideen.includes(id)){ localLikes.ideen.push(id); console.log("like added"); console.log(localLikes); }else if(addRemove == "remove" && localLikes.ideen.includes(id)){ let index = localLikes.ideen.indexOf(id); localLikes.ideen.splice(index, 1); console.log("like removed"); console.log(localLikes); } }else if(typ == "kommentar"){ if(addRemove == "add"){ localLikes.kommentare.push(id); }else if(addRemove == "remove"){ let index = localLikes.kommentare.indexOf(id); localLikes.kommentare.splice(index, 1); } } localStorage.setItem('localLikes',JSON.stringify(localLikes)); } // IDEE ANZEIGEN function ideeAnzeigen(data) { document.getElementById("overlay_container").innerHTML = ""; document.querySelectorAll('.loeschen').forEach(e => e.remove()); let titelErstellen = document.createElement("h1"); let titelInhalt = document.createTextNode(data.titel); titelErstellen.appendChild(titelInhalt); titelErstellen.classList.add("loeschen"); document.getElementById('overlay_container').appendChild(titelErstellen); let inhaltErstellen = document.createElement("p"); let inhaltInhalt = document.createTextNode(data.inhalt); inhaltErstellen.appendChild(inhaltInhalt); inhaltErstellen.classList.add("loeschen"); document.getElementById('overlay_container').appendChild(inhaltErstellen); let likesErstellen = document.createElement("p"); let likes = document.createTextNode(data.likes + " Likes"); likesErstellen.appendChild(likes); likesErstellen.classList.add("likeDisplay"); document.getElementById('overlay_container').appendChild(likesErstellen); if(data.bild != null && data.bild != undefined){ let bildContainer = $("
").addClass("ImgContainer"); let imgUrlArr = JSON.parse(data.bild); for (let i = 0; i < imgUrlArr.length; i++) { let img = $("").addClass("previewImage"); img.attr("src", imgUrlArr[i]); img.appendTo(bildContainer); } bildContainer.prependTo($("#overlay_container")) } /* let bild = document.createElement("img"); bild.src = data.bild; bild.classList.add("ideeBilder"); bild.classList.add("loeschen"); document.getElementById('idee').appendChild(bild); console.log(data); */ let ideeLike = document.createElement("img"); ideeLike.classList.add("herz"); //check if user has liked Idea before,load proper image and set class if(localLikes.ideen.includes(data.id)){ ideeLike.src= "../images/herz-1.png"; ideeLike.classList.add("liked"); }else{ ideeLike.src= "../images/herz-0.png"; ideeLike.classList.add("unliked"); } document.getElementById('overlay_container').appendChild(ideeLike); ideeLike.addEventListener('click', function() { if(localLikes.ideen.includes(data.id)){ ideeLike.src= "../images/herz-0.png"; ideeLike.classList.add("unliked"); ideeLike.classList.remove("liked"); removeLike("idee", data.id) }else{ ideeLike.src= "../images/herz-1.png"; ideeLike.classList.add("liked"); ideeLike.classList.remove("unliked"); addLike("idee", data.id) } }); kommentarErstellen(data.id); let kommentare_container = document.createElement("div") kommentare_container.setAttribute("id", "kommentare_container"); document.getElementById('overlay_container').appendChild(kommentare_container); kommentareAnzeigen(data.id); }; //Like Hinzufügen function addLike(typ, id, element){ if(typ == "idee"){ //increment likes in DB $.post('system/addLike.php/?typ=idee&id=' + id, {}).done(function(response){ //neue Likes anzeigen $("p.likeDisplay").html(response + " Likes") }); //add like in LocalStorage chageLocalStorrage("idee", id, "add") }else if(typ == "kommentar"){ $.post('system/addLike.php/?typ=kommentar&id=' + id, {}).done(function(response){ element.prev().html(response + " Likes") }); //add like in LocalStorage chageLocalStorrage("kommentar", id, "add") } } function removeLike(typ, id, element){ //decrement likes in DB if(typ == "idee"){ $.post('system/removeLike.php/?typ=idee&id=' + id, {}).done(function(response){ $("p.likeDisplay").html(response + " Likes") }); chageLocalStorrage("idee", id, "remove") }else if(typ == "kommentar"){ $.post('system/removeLike.php/?typ=kommentar&id=' + id, {}).done(function(response){ element.prev().html(response + " Likes") }); chageLocalStorrage("kommentar", id, "remove") } } // kommentar formular likesErstellen function kommentarErstellen(idee_id) { console.log(idee_id); let formular = document.createElement("form"); formular.classList.add("formular"); formular.setAttribute("action", "../system/kommentarSpeichern.php"); formular.setAttribute("method", "post"); formular.setAttribute("id", "kommentarform"); document.getElementById("overlay_container").appendChild(formular); let text_label = document.createElement("label"); text_label.setAttribute("for", "text"); let text_input = document.createElement("input"); text_input.setAttribute("type", "text"); text_input.setAttribute("name", "text") let submit_input = document.createElement("input"); submit_input.setAttribute("type", "submit"); submit_input.setAttribute("value", "Kommentar posten"); let id = document.createElement("input"); id.setAttribute("type", "hidden"); id.setAttribute("name", "idee_id") id.value = idee_id; document.getElementById("kommentarform").appendChild(text_label); document.getElementById("kommentarform").appendChild(text_input); document.getElementById("kommentarform").appendChild(submit_input); document.getElementById("kommentarform").appendChild(id); $("#kommentarform").submit(function(e){ let form = $(this); $.ajax({ type: "POST", url: "/system/kommentarSpeichern.php", data: form.serialize(), }) e.preventDefault(); document.getElementById("kommentare_container").innerHTML = ""; kommentareAnzeigen(idee_id); }); }; // Idee formular erstellen function formularErstellen(koordianten) { document.getElementById("overlay_container").innerHTML = ""; let formular = document.createElement("form"); formular.classList.add("formular"); formular.setAttribute("action", "../system/ideeSpeichern.php"); formular.setAttribute("method", "post"); formular.setAttribute("id", "form"); document.getElementById("overlay_container").appendChild(formular); let koordinaten_lng = document.createElement("input"); koordinaten_lng.setAttribute("type", "hidden"); koordinaten_lng.setAttribute("name", "lng") koordinaten_lng.value = koordianten.toJSON().lng; let koordinaten_lat = document.createElement("input"); koordinaten_lat.setAttribute("type", "hidden"); koordinaten_lat.setAttribute("name", "lat") koordinaten_lat.value = koordianten.toJSON().lat; let titel_input = document.createElement("input"); titel_input.setAttribute("type", "text"); titel_input.setAttribute("id", "deineIdee"); titel_input.setAttribute("name", "titel"); titel_input.setAttribute("placeholder", "titel"); let text_input = document.createElement("input"); text_input.setAttribute("type", "textarea"); text_input.setAttribute("name", "text"); text_input.setAttribute("placeholder", "Deine Idee..."); let image_links = document.createElement("input"); image_links.setAttribute("type", "hidden"); image_links.setAttribute("name", "bilder"); let submit_input = document.createElement("input"); submit_input.setAttribute("type", "submit"); submit_input.setAttribute("value", "Formular Absenden"); document.getElementById("form").appendChild(titel_input); document.getElementById("form").appendChild(text_input); document.getElementById("form").appendChild(submit_input); document.getElementById("form").appendChild(koordinaten_lat); document.getElementById("form").appendChild(koordinaten_lng); document.getElementById("form").appendChild(image_links); let imageUpload = $('
') imageUpload.html('') imageUpload.appendTo("#overlay_container"); // get a widget reference const widget = uploadcare.Widget("[role=uploadcare-uploader]", { multiple: true}); // listen to the "upload completed" event widget.onUploadComplete(fileGroupInfo => { // get a information about uploaded group // check https://uploadcare.com/docs/file-uploader-api/file-groups/#file-group-info let linkArr = []; let ImgUrl; $("
").addClass("ImgPrevContainer").appendTo($("div.image-preview")); for (var i = 0; i < fileGroupInfo.count; i++) { ImgUrl = "https://ucarecdn.com/" + fileGroupInfo.uuid + "/nth/" + i + "/-/preview/-/quality/smart/-/format/auto/"; linkArr.push(ImgUrl); createImgPrev(ImgUrl + "-/resize/x100/"); //img Preview 100 pixels high }; let linkArrString = JSON.stringify(linkArr); console.log(linkArrString); image_links.value = linkArrString; console.log(image_links.value); }); }; function createImgPrev(imgURL){ let prevImg = $("").addClass("prevIMG"); prevImg.attr('src', imgURL); prevImg.appendTo($("div.ImgPrevContainer")); } function kommentareAnzeigen(idee_id){ $.post("./system/alleKommentareHolen.php/?id=" + idee_id, {}).done(function(comments){ let k = document.createElement("h3"); let k_text = document.createTextNode("Kommentare:"); k.appendChild(k_text); document.getElementById('kommentare_container').appendChild(k); let commentArray = JSON.parse(comments); for (var i = 0; i < commentArray.length; i++) { let thisComment = commentArray[i]; let kommentarContainer = $("
").addClass("comment"); let kommentarText = $("

").addClass("commentText"); kommentarText.text(thisComment.k_text); kommentarText.appendTo(kommentarContainer); let kommentarLikeNumber = $("

").text(thisComment.k_likes + " Likes").addClass("commentLikeNumber"); kommentarLikeNumber.appendTo(kommentarContainer); let kommentarLikeButton = $("").addClass("unliked commentLike") if(localLikes.kommentare.includes(thisComment.k_id)){ kommentarLikeButton.attr("src", "../images/herz-1.png"); kommentarLikeButton.addClass("liked"); }else{ kommentarLikeButton.attr("src", "../images/herz-0.png"); kommentarLikeButton.addClass("unliked"); } kommentarLikeButton.appendTo(kommentarContainer); kommentarContainer.appendTo($("#kommentare_container")); kommentarLikeButton.click( function() { if(localLikes.kommentare.includes(thisComment.k_id)){ kommentarLikeButton.attr("src", "../images/herz-0.png"); kommentarLikeButton.addClass("unliked"); kommentarLikeButton.removeClass("liked"); removeLike("kommentar", thisComment.k_id, $(this)) }else{ kommentarLikeButton.attr("src", "../images/herz-1.png"); kommentarLikeButton.addClass("liked"); kommentarLikeButton.removeClass("unliked"); addLike("kommentar", thisComment.k_id, $(this)) } }); } }); }