diff options
author | crupest <crupest@outlook.com> | 2022-11-25 21:01:20 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-11-25 21:01:20 +0800 |
commit | 63e43d1a9b880c92d73b7ec97b596c38d3e758e2 (patch) | |
tree | a6471b125c744a8bf1672ea4ce3e68ad586487ad /docker/crupest-nginx/sites/www/src/main.js | |
parent | 1534dcba89c244acbb830b77670c83b5d0e40a76 (diff) | |
download | crupest-63e43d1a9b880c92d73b7ec97b596c38d3e758e2.tar.gz crupest-63e43d1a9b880c92d73b7ec97b596c38d3e758e2.tar.bz2 crupest-63e43d1a9b880c92d73b7ec97b596c38d3e758e2.zip |
Add root page.
Diffstat (limited to 'docker/crupest-nginx/sites/www/src/main.js')
-rw-r--r-- | docker/crupest-nginx/sites/www/src/main.js | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/docker/crupest-nginx/sites/www/src/main.js b/docker/crupest-nginx/sites/www/src/main.js new file mode 100644 index 0000000..bbdecab --- /dev/null +++ b/docker/crupest-nginx/sites/www/src/main.js @@ -0,0 +1,83 @@ +import { Octokit } from "https://cdn.skypack.dev/octokit"; +import "./style.css"; + +const colorStripContainer = document.getElementById("color-strip-container"); + +const colorStripText = "FANCYSTRIP"; + +for (let i = 0; i < 10; i++) { + const colorStripBlock = document.createElement("span"); + + const hsl = `hsl(${i * 36}, 100%, 50%)`; + colorStripBlock.classList.add("color-strip-block"); + colorStripBlock.style.backgroundColor = hsl; + colorStripBlock.textContent = colorStripText[i]; + colorStripContainer.appendChild(colorStripBlock); +} + +document.addEventListener("DOMContentLoaded", async () => { + console.log("Try to fetch GitHub project(number: 2) of crupest."); + + const todoMessage = document.getElementById("todo-message"); + const todoContainer = document.getElementById("todo-container"); + + // TODO: we need another way to do this! + const octokit = new Octokit({ + auth: "xxx", + }); + + try { + const res = await octokit.graphql( + ` + { + user(login: "crupest") { + projectV2(number: 2) { + items(last: 100) { + nodes { + __typename + fieldValueByName(name: "Status") + content { + __typename + ... on Issue { + title + closed + } + ... on PullRequest { + title + closed + } + ... on DraftIssue { + title + } + } + } + } + } + } + } + ` + ); + + const items = res.user.projectV2.items.nodes.map((node) => node.content); + + items.forEach((item) => { + if (item.__typename == "DraftIssue") { + item.closed = false; + } + const { title, closed } = item; + const li = document.createElement("li"); + const span = document.createElement("span"); + span.textContent = closed ? "Done:" : "Todo:"; + span.style.color = closed ? "green" : "blue"; + li.appendChild(span); + li.append(title); + todoContainer.appendChild(li); + }); + + todoMessage.parentElement.removeChild(todoMessage); + } catch (e) { + todoMessage.style.color = "red"; + todoMessage.textContent = "Failed to fetch TODOs."; + console.log("Failed to get GitHub project info.", e); + } +}); |