feat(grfn/bbbg): Init

This will eventually become a signup sheet + no-show tracker for my
local board game meetup group

Change-Id: Id8d1d80d95d1e2fda5041275cff2fecfd6fa43f1
This commit is contained in:
Griffin Smith 2021-12-13 21:28:25 -05:00
parent 479e9ea279
commit c3cb7b0df8
35 changed files with 2549 additions and 0 deletions

View file

@ -0,0 +1,49 @@
window.onload = () => {
console.log("loaded");
const input = document.getElementById("name-autocomplete");
if (input != null) {
const eventID = document.getElementById("event-id").value;
const autocomplete = new autoComplete({
selector: "#name-autocomplete",
placeHolder: "Enter your name",
data: {
src: async (query) => {
const resp = await fetch(
`/attendees.json?q=${query}&event_id=${eventID}&attended=false`
);
console.log("got resp");
const { results } = await resp.json();
return results;
},
keys: ["bbbg.attendee/meetup-name"],
},
resultItem: {
highlight: {
render: true,
},
},
});
input.addEventListener("selection", function (event) {
const attendee = event.detail.selection.value;
event.target.value = attendee["bbbg.attendee/meetup-name"];
const attendeeID = attendee["bbbg.attendee/id"];
document.getElementById("attendee-id").value = attendeeID;
document.getElementById("signup-form").removeAttribute("disabled");
document
.getElementById("signup-form")
.querySelector('input[type="submit"]')
.removeAttribute("disabled");
});
}
document.querySelectorAll("form").forEach((form) => {
form.onsubmit = (e) => {
if (e.target.attributes.disabled) {
e.preventDefault();
}
};
});
};

View file

@ -0,0 +1,14 @@
drop table "public"."user";
-- ;;
drop table "public"."event_attendee";
-- ;;
drop table "public"."event";
-- ;;
drop table "public"."attendee";

View file

@ -0,0 +1,31 @@
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(),
"discord_user_id" TEXT NOT NULL,
"created_at" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT now()
);