aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-nginx/sites/www/src/main.js
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-11-25 21:01:20 +0800
committercrupest <crupest@outlook.com>2022-11-25 21:01:20 +0800
commit63e43d1a9b880c92d73b7ec97b596c38d3e758e2 (patch)
treea6471b125c744a8bf1672ea4ce3e68ad586487ad /docker/crupest-nginx/sites/www/src/main.js
parent1534dcba89c244acbb830b77670c83b5d0e40a76 (diff)
downloadcrupest-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.js83
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);
+ }
+});