chore(users): grfn -> aspen
Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
This commit is contained in:
parent
0ba476a426
commit
82ecd61f5c
478 changed files with 75 additions and 77 deletions
152
users/aspen/bbbg/resources/base.css
Normal file
152
users/aspen/bbbg/resources/base.css
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
/* montserrat-italic - latin */
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local("Montserrat Italic"), local("Montserrat-Italic"),
|
||||
url("/fonts/montserrat-v15-latin-italic.woff2") format("woff2"),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url("/fonts/montserrat-v15-latin-italic.woff") format("woff"); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* montserrat-regular - latin */
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local("Montserrat Regular"), local("Montserrat-Regular"),
|
||||
url("/fonts/montserrat-v15-latin-regular.woff2") format("woff2"),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url("/fonts/montserrat-v15-latin-regular.woff") format("woff"); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* montserrat-500 - latin */
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: local("Montserrat Medium"), local("Montserrat-Medium"),
|
||||
url("/fonts/montserrat-v15-latin-500.woff2") format("woff2"),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url("/fonts/montserrat-v15-latin-500.woff") format("woff"); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* montserrat-500italic - latin */
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
font-style: italic;
|
||||
font-weight: 500;
|
||||
src: local("Montserrat Medium Italic"), local("Montserrat-MediumItalic"),
|
||||
url("/fonts/montserrat-v15-latin-500italic.woff2") format("woff2"),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url("/fonts/montserrat-v15-latin-500italic.woff") format("woff"); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* montserrat-600 - latin */
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local("Montserrat SemiBold"), local("Montserrat-SemiBold"),
|
||||
url("/fonts/montserrat-v15-latin-600.woff2") format("woff2"),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url("/fonts/montserrat-v15-latin-600.woff") format("woff"); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* montserrat-800 - latin */
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
font-style: normal;
|
||||
font-weight: 800;
|
||||
src: local("Montserrat ExtraBold"), local("Montserrat-ExtraBold"),
|
||||
url("/fonts/montserrat-v15-latin-800.woff2") format("woff2"),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url("/fonts/montserrat-v15-latin-800.woff") format("woff"); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* montserrat-800italic - latin */
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
font-style: italic;
|
||||
font-weight: 800;
|
||||
src: local("Montserrat ExtraBold Italic"), local("Montserrat-ExtraBoldItalic"),
|
||||
url("/fonts/montserrat-v15-latin-800italic.woff2") format("woff2"),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url("/fonts/montserrat-v15-latin-800italic.woff") format("woff"); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
body {
|
||||
width: 100%;
|
||||
font-family: "Montserrat", Helvetica, sans-serif;
|
||||
margin: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
*,
|
||||
::before,
|
||||
::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
li,
|
||||
figure,
|
||||
figcaption,
|
||||
blockquote,
|
||||
dl,
|
||||
dd {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
min-height: 100vh;
|
||||
scroll-behavior: smooth;
|
||||
text-rendering: optimizeSpeed;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
ul[class],
|
||||
ol[class] {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
a:not([class]) {
|
||||
text-decoration-skip-ink: auto;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
article > * + * {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
input,
|
||||
button,
|
||||
textarea,
|
||||
select {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
* {
|
||||
animation-duration: 0.01ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
scroll-behavior: auto !important;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
drop table "public"."user";
|
||||
|
||||
-- ;;
|
||||
|
||||
drop table "public"."event_attendee";
|
||||
|
||||
|
||||
-- ;;
|
||||
|
||||
drop table "public"."event";
|
||||
|
||||
-- ;;
|
||||
|
||||
drop table "public"."attendee";
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||||
-- ;;
|
||||
CREATE TABLE "attendee" (
|
||||
"id" UUID PRIMARY KEY NOT NULL DEFAULT uuid_generate_v4(),
|
||||
"meetup_name" TEXT NOT NULL,
|
||||
"discord_name" TEXT,
|
||||
"meetup_user_id" TEXT,
|
||||
"organizer_notes" TEXT NOT NULL DEFAULT '',
|
||||
"created_at" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT now()
|
||||
);
|
||||
-- ;;
|
||||
CREATE TABLE "event" (
|
||||
"id" UUID PRIMARY KEY NOT NULL DEFAULT uuid_generate_v4(),
|
||||
"date" DATE NOT NULL,
|
||||
"created_at" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT now()
|
||||
);
|
||||
-- ;;
|
||||
CREATE TABLE "event_attendee" (
|
||||
"event_id" UUID NOT NULL REFERENCES "event" ("id"),
|
||||
"attendee_id" UUID NOT NULL REFERENCES "attendee" ("id"),
|
||||
"rsvpd_attending" BOOL,
|
||||
"attended" BOOL,
|
||||
"created_at" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT now(),
|
||||
PRIMARY KEY ("event_id", "attendee_id")
|
||||
);
|
||||
-- ;;
|
||||
CREATE TABLE "user" (
|
||||
"id" UUID PRIMARY KEY NOT NULL DEFAULT uuid_generate_v4(),
|
||||
"username" TEXT NOT NULL,
|
||||
"discord_user_id" TEXT NOT NULL,
|
||||
"created_at" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT now()
|
||||
);
|
||||
|
|
@ -0,0 +1 @@
|
|||
DROP TABLE "attendee_check";
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
CREATE TABLE attendee_check (
|
||||
"id" UUID PRIMARY KEY NOT NULL DEFAULT uuid_generate_v4(),
|
||||
"attendee_id" UUID NOT NULL REFERENCES attendee ("id"),
|
||||
"user_id" UUID NOT NULL REFERENCES "public"."user" ("id"),
|
||||
"last_dose_at" DATE,
|
||||
"checked_at" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT now()
|
||||
);
|
||||
|
|
@ -0,0 +1 @@
|
|||
drop index attendee_uniq_meetup_user_id;
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
create unique index "attendee_uniq_meetup_user_id" on attendee (meetup_user_id);
|
||||
-- ;;
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
73
users/aspen/bbbg/resources/public/main.js
Normal file
73
users/aspen/bbbg/resources/public/main.js
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
window.onload = () => {
|
||||
const input = document.getElementById("name-autocomplete");
|
||||
if (input != null) {
|
||||
const attendeeList = document.getElementById("attendees-list");
|
||||
const filterAttendees = (filter) => {
|
||||
if (filter == "") {
|
||||
for (let elt of attendeeList.querySelectorAll("li")) {
|
||||
elt.classList.remove("hidden");
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
let re = "";
|
||||
for (let c of filter) {
|
||||
re += `${c}.*`;
|
||||
}
|
||||
let filterRe = new RegExp(re, "i");
|
||||
|
||||
for (let elt of attendeeList.querySelectorAll("li")) {
|
||||
const attendee = JSON.parse(elt.dataset.attendee);
|
||||
if (attendee["bbbg.attendee/meetup-name"].match(filterRe) == null) {
|
||||
elt.classList.add("hidden");
|
||||
} else {
|
||||
elt.classList.remove("hidden");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const attendeeIDInput = document.getElementById("attendee-id");
|
||||
const submit = document.querySelector("#submit-button");
|
||||
const signupForm = document.getElementById("signup-form");
|
||||
|
||||
input.oninput = (e) => {
|
||||
filterAttendees(e.target.value);
|
||||
attendeeIDInput.value = null;
|
||||
submit.classList.add("hidden");
|
||||
submit.setAttribute("disabled", "disabled");
|
||||
signupForm.setAttribute("disabled", "disabled");
|
||||
};
|
||||
|
||||
attendeeList.addEventListener("click", (e) => {
|
||||
if (!(e.target instanceof HTMLLIElement)) {
|
||||
return;
|
||||
}
|
||||
if (e.target.dataset.attendee == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
const attendee = JSON.parse(e.target.dataset.attendee);
|
||||
input.value = attendee["bbbg.attendee/meetup-name"];
|
||||
attendeeIDInput.value = attendee["bbbg.attendee/id"];
|
||||
|
||||
submit.classList.remove("hidden");
|
||||
submit.removeAttribute("disabled");
|
||||
signupForm.removeAttribute("disabled");
|
||||
});
|
||||
}
|
||||
|
||||
document.querySelectorAll("form").forEach((form) => {
|
||||
form.addEventListener("submit", (e) => {
|
||||
if (e.target.attributes.disabled) {
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
const confirmMessage = e.target.dataset.confirm;
|
||||
if (confirmMessage != null && !confirm(confirmMessage)) {
|
||||
e.stopImmediatePropagation();
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
2
users/aspen/bbbg/resources/public/robots.txt
Normal file
2
users/aspen/bbbg/resources/public/robots.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
User-agent: *
|
||||
Disallow: /
|
||||
Loading…
Add table
Add a link
Reference in a new issue