aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-nginx/sites/www/src
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
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')
-rw-r--r--docker/crupest-nginx/sites/www/src/main.js83
-rw-r--r--docker/crupest-nginx/sites/www/src/style.css24
2 files changed, 107 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);
+ }
+});
diff --git a/docker/crupest-nginx/sites/www/src/style.css b/docker/crupest-nginx/sites/www/src/style.css
new file mode 100644
index 0000000..6021c6c
--- /dev/null
+++ b/docker/crupest-nginx/sites/www/src/style.css
@@ -0,0 +1,24 @@
+html {
+ width: 100%;
+}
+
+body {
+ width: 100%;
+ margin: 0;
+ padding: 0 2em;
+}
+
+#color-strip-container {
+ width: 100%;
+ height: 36px;
+}
+
+.color-strip-block {
+ display: inline-block;
+ width: 10%;
+ height: 100%;
+ line-height: 36px;
+ vertical-align: middle;
+ text-align: center;
+ color: white;
+}