From c3cb7b0df82479016c252ef45a302f566bd569f6 Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Mon, 13 Dec 2021 21:28:25 -0500 Subject: feat(grfn/bbbg): Init This will eventually become a signup sheet + no-show tracker for my local board game meetup group Change-Id: Id8d1d80d95d1e2fda5041275cff2fecfd6fa43f1 --- users/grfn/bbbg/resources/main.js | 49 ++++++++++++++++++++++ .../migrations/20211212165646-init-schema.down.sql | 14 +++++++ .../migrations/20211212165646-init-schema.up.sql | 31 ++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 users/grfn/bbbg/resources/main.js create mode 100644 users/grfn/bbbg/resources/migrations/20211212165646-init-schema.down.sql create mode 100644 users/grfn/bbbg/resources/migrations/20211212165646-init-schema.up.sql (limited to 'users/grfn/bbbg/resources') diff --git a/users/grfn/bbbg/resources/main.js b/users/grfn/bbbg/resources/main.js new file mode 100644 index 0000000000..d4752f1141 --- /dev/null +++ b/users/grfn/bbbg/resources/main.js @@ -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(); + } + }; + }); +}; diff --git a/users/grfn/bbbg/resources/migrations/20211212165646-init-schema.down.sql b/users/grfn/bbbg/resources/migrations/20211212165646-init-schema.down.sql new file mode 100644 index 0000000000..69b818a4f4 --- /dev/null +++ b/users/grfn/bbbg/resources/migrations/20211212165646-init-schema.down.sql @@ -0,0 +1,14 @@ +drop table "public"."user"; + +-- ;; + +drop table "public"."event_attendee"; + + +-- ;; + +drop table "public"."event"; + +-- ;; + +drop table "public"."attendee"; diff --git a/users/grfn/bbbg/resources/migrations/20211212165646-init-schema.up.sql b/users/grfn/bbbg/resources/migrations/20211212165646-init-schema.up.sql new file mode 100644 index 0000000000..8c3276e1e6 --- /dev/null +++ b/users/grfn/bbbg/resources/migrations/20211212165646-init-schema.up.sql @@ -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() +); -- cgit 1.4.1