From 632aab258bc35d7934a0dcf86442954ad1aec8c9 Mon Sep 17 00:00:00 2001 From: Patrick Jentsch <p.jentsch@uni-bielefeld.de> Date: Tue, 10 Jan 2023 10:04:15 +0100 Subject: [PATCH] Simplify News aggregation --- app/templates/main/news.html.j2 | 68 ++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/app/templates/main/news.html.j2 b/app/templates/main/news.html.j2 index 3c8069f6..d3e2f9b6 100644 --- a/app/templates/main/news.html.j2 +++ b/app/templates/main/news.html.j2 @@ -196,30 +196,35 @@ }); } - function mastodonStatusToHtml(status) { - let date = new Date(status.created_at).toLocaleString('en-US') - return htmlString = ` - <div class="row"> - <div class="col s11"> - <div class="card white-text" style="background-color:#5D50E7; border-radius:10px;"> - <div class="card-content"> - <span class="card-title">New Actitvity on Mastodon</span> - <p><i>Published on ${date}</i></p> - <br> - <p>${status.content}</p> + function mastodonStatusToElement(status) { + let date = new Date(status.created_at).toLocaleString('en-US'); + let newsElement = Utils.HTMLToElement( + ` + <div class="row"> + <div class="col s11"> + <div class="card white-text" style="background-color:#5D50E7; border-radius:10px;"> + <div class="card-content"> + <span class="card-title">New Actitvity on Mastodon</span> + <p><i>Published on ${date}</i></p> + <br> + <p>${status.content}</p> + </div> </div> </div> + <div class="col s1"> + <img src="https://joinmastodon.org/logos/logo-purple.svg" alt="Mastodon" class="responsive-img hide-on-small-only" style="width:70%; margin-top:30px;"> + </div> </div> - <div class="col s1"> - <img src="https://joinmastodon.org/logos/logo-purple.svg" alt="Mastodon" class="responsive-img hide-on-small-only" style="width:70%; margin-top:30px;"> - </div> - `.trim(); + ` + ); + return newsElement; } - function bisBlogsEntryToHtml(entry) { - let date = new Date(entry.published).toLocaleString('en-US') - let bisBlogHTMLElement = document.createElement('div'); - bisBlogHTMLElement.classList.add('row'); - bisBlogHTMLElement.innerHTML = ` + + function bisBlogsEntryToElement(entry) { + let date = new Date(entry.published).toLocaleString('en-US'); + let newsElement = Utils.HTMLToElement( + ` + <div class="row"> <div class="col s1"> <img src="https://blogs.uni-bielefeld.de/blog/uniintern/resource/themabilder/unilogo-square.svg" alt="Bielefeld University Blogs" class="responsive-img hide-on-small-only" style="width:70%; margin-top:40px;"> </div> @@ -233,30 +238,31 @@ </div> </div> </div> - `.trim(); - let bisBlogImages = bisBlogHTMLElement.querySelectorAll('img'); - bisBlogImages.forEach((img) => { - img.classList.add('responsive-img'); - }); - return bisBlogHTMLElement.outerHTML; + </div> + ` + ); + let newsImageElements = newsElement.querySelectorAll('img'); + for (let newsImageElement of newsImageElements) { + newsImageElement.classList.add('responsive-img'); + } + return newsElement; } let aggregatedNewsElement = document.querySelector('#aggregated-news'); aggregateNews().then((aggregatedNews) => { for (let item of aggregatedNews) { - let itemHtmlString; + let newsElement; switch (item.source) { case 'mastodon': - console.log(item); - itemHtmlString = mastodonStatusToHtml(item); + newsElement = mastodonStatusToElement(item); break; case 'big-blogs': - itemHtmlString = bisBlogsEntryToHtml(item); + newsElement = bisBlogsEntryToElement(item); break; default: throw new Error('Unknown source'); } - aggregatedNewsElement.insertAdjacentHTML('beforeend', itemHtmlString); + aggregatedNewsElement.appendChild(newsElement); } }); </script> -- GitLab