diff options
Diffstat (limited to 'assets/js')
-rw-r--r-- | assets/js/fc.js | 8 | ||||
-rw-r--r-- | assets/js/fcac.js | 5 | ||||
-rw-r--r-- | assets/js/newsbanner.js | 28 | ||||
-rw-r--r-- | assets/js/searchform.js | 39 |
4 files changed, 80 insertions, 0 deletions
diff --git a/assets/js/fc.js b/assets/js/fc.js new file mode 100644 index 0000000..ae60b50 --- /dev/null +++ b/assets/js/fc.js @@ -0,0 +1,8 @@ +--- +--- + import Comments from '{{ "/assets/mscomm/comments.js" | relative_url }}' + export function loadComments() { + document.getElementById('load-comments-btn').remove(); + customElements.define('oom-comments', Comments); + } + window.loadComments = loadComments; diff --git a/assets/js/fcac.js b/assets/js/fcac.js new file mode 100644 index 0000000..d14d42b --- /dev/null +++ b/assets/js/fcac.js @@ -0,0 +1,5 @@ +document.addEventListener('DOMContentLoaded', function () { + const btn = document.getElementById('load-comments-btn'); + btn.addEventListener('click', loadComments); +}); + diff --git a/assets/js/newsbanner.js b/assets/js/newsbanner.js new file mode 100644 index 0000000..1a06f2b --- /dev/null +++ b/assets/js/newsbanner.js @@ -0,0 +1,28 @@ +--- +--- + document.addEventListener("DOMContentLoaded", function() { + {% assign news_ids = site.data.news | map: 'id' | jsonify %} + + const ids = {{ news_ids }}; + for (currId of ids) { + const currentBanner = document.getElementById(currId); + if (!currentBanner) { + continue; + } + const closeLink = currentBanner.firstElementChild; + const currentNewsClosed = localStorage.getItem(currId+"closed"); + if (currentNewsClosed === "true") { + currentBanner.style.display = "none"; + } + + function closeBanner(evt) { + currentBanner.style.display = "none"; + const storId = evt.currentTarget.closeArg + "closed"; + localStorage.setItem(storId, "true"); + } + + closeLink.closeArg=currId; + closeLink.addEventListener("click", closeBanner); + } + + }); diff --git a/assets/js/searchform.js b/assets/js/searchform.js new file mode 100644 index 0000000..c18311c --- /dev/null +++ b/assets/js/searchform.js @@ -0,0 +1,39 @@ + // search + function query(queryterm) { + var result = do_search(queryterm); + const rbase = document.getElementById("results"); + rbase.textContent = ""; + if (result.length) { + var root = rbase.appendChild(document.createElement("ul")); + result.forEach(function(p) { + var li = document.createElement("li"); + var el = li.appendChild(document.createElement("a")); + el.textContent = p.title; + el.href = p.url; + // converted to page, to more score + /*el = li.appendChild(document.createElement("span")); + el.textContent = " [score: " + r.score.toString() + "]";*/ + root.appendChild(li); + }); + } else { + var el = document.createElement("p"); + el.textContent = "No results"; + rbase.appendChild(el); + } + document.getElementById("qterm").textContent = queryterm; + } + + // Function to be called on submit + function submitSearch() { + console.log("Search submitted"); + const qbox = document.getElementById("input_qterm").value; + if (qbox.length !== 0) { + query(qbox); + } + } + + // Attach event handler to form submission + document.getElementById("searchForm").onsubmit = function(ev) { + ev.preventDefault(); // Prevent default form submission behavior + submitSearch(); + }; |