From 425941e5b694b2eae438672e35f1d6c350178975 Mon Sep 17 00:00:00 2001 From: kmeister Date: Thu, 13 Apr 2017 17:45:51 -0400 Subject: [docker-example] added ajax and styled example page --- examples/docker/web/public/js/main.js | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 examples/docker/web/public/js/main.js (limited to 'examples/docker/web/public/js/main.js') diff --git a/examples/docker/web/public/js/main.js b/examples/docker/web/public/js/main.js new file mode 100644 index 0000000..cce225b --- /dev/null +++ b/examples/docker/web/public/js/main.js @@ -0,0 +1,46 @@ +(function() { + + let mainContainer; + + function loadHomepage() { + mainContainer = document.querySelector('#main'); + const xhr = new XMLHttpRequest(); + xhr.open('GET', '/api/contents?type=Song'); + xhr.onreadystatechange = renderHomepage; + xhr.send(null); + } + + function renderHomepage(event) { + const DONE = 4; + const OK = 200; + let xhr = event.currentTarget; + let html = ''; + + if (xhr.readyState === DONE) { + if (xhr.status === OK) { + const songs = window.JSON.parse(xhr.responseText).data; + console.log(songs); + if(songs.length === 0){ + html = '

There have not been any Songs added, go add some at /admin

'; + } else { + html = songs.map(function(song) { + return ` +
+

${song.title || 'Unknown'} by ${song.artist || 'Unknown'}

+

rating: ${song.rating}

+
opinion:
+
${song.opinion || 'none'} +
+ `; + }).join(); + } + } else { + html = '

The /api endpoint did not respond correctly :-(

'; + } + + mainContainer.innerHTML = html; + } + } + + document.addEventListener("DOMContentLoaded", loadHomepage); +})(); \ No newline at end of file -- cgit v1.2.3