You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.7 KiB
100 lines
2.7 KiB
1 year ago
|
<template>
|
||
|
<QuickNav />
|
||
|
<TopMessage />
|
||
|
|
||
|
<!-- CONTENT -->
|
||
|
<section id="Content" class="p-6 pb-24 max-w-3xl mx-auto">
|
||
|
<!-- Back -->
|
||
|
<div class="text-lg text-center font-light relative px-7">
|
||
|
<h1
|
||
|
class="text-lg text-center px-2 py-1 absolute -left-2 -top-1"
|
||
|
@click="$router.back()"
|
||
|
>
|
||
|
<fa icon="chevron-left" class="fa-fw"></fa>
|
||
|
</h1>
|
||
|
</div>
|
||
|
|
||
|
<!-- Heading -->
|
||
|
<h1 id="ViewHeading" class="text-4xl text-center font-light pt-4 mb-4">
|
||
|
Beginning of BVC Saturday Meeting
|
||
|
</h1>
|
||
|
|
||
|
<div>
|
||
|
<h2 class="text-2xl m-4">You're Here</h2>
|
||
|
<div class="m-4 flex">
|
||
|
<input type="checkbox" v-model="gaveTime" class="h-6 w-6" />
|
||
|
<span class="pb-2 pl-2 pr-2">Attended</span>
|
||
|
<span v-if="gaveTime">
|
||
|
<input
|
||
|
type="text"
|
||
|
placeholder="How much time"
|
||
|
v-model="hours"
|
||
|
size="1"
|
||
|
class="border border-slate-400 h-6 px-2"
|
||
|
/>
|
||
|
hour(s)
|
||
|
</span>
|
||
|
<!-- This is to match input height to avoid shifting when hiding & showing. -->
|
||
|
<span v-else class="h-6" />
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div class="m-4" v-if="gaveTime && hours && hours != '0'">
|
||
|
<button
|
||
|
@click="record()"
|
||
|
class="block text-center text-md font-bold bg-blue-500 text-white px-2 py-3 rounded-md"
|
||
|
>
|
||
|
Sign & Send
|
||
|
</button>
|
||
|
</div>
|
||
|
</section>
|
||
|
</template>
|
||
|
|
||
|
<script lang="ts">
|
||
|
import { DateTime } from "luxon";
|
||
|
import { Component, Vue } from "vue-facing-decorator";
|
||
|
|
||
|
import QuickNav from "@/components/QuickNav.vue";
|
||
|
import TopMessage from "@/components/TopMessage.vue";
|
||
|
import { NotificationIface } from "@/constants/app";
|
||
|
import { numberOrZero } from "@/libs/endorserServer";
|
||
|
|
||
|
@Component({
|
||
|
components: {
|
||
|
QuickNav,
|
||
|
TopMessage,
|
||
|
},
|
||
|
})
|
||
|
export default class QuickActionBvcBeginView extends Vue {
|
||
|
$notify!: (notification: NotificationIface, timeout?: number) => void;
|
||
|
|
||
|
gaveTime = false;
|
||
|
hours = "1";
|
||
|
todayOrPreviousStartDate = "";
|
||
|
|
||
|
async mounted() {
|
||
|
let currentOrPreviousSat = DateTime.now().setZone("America/Denver");
|
||
|
if (currentOrPreviousSat.weekday < 6) {
|
||
|
// it's not Saturday or Sunday,
|
||
|
// so move back one week before setting to the Saturday
|
||
|
currentOrPreviousSat = currentOrPreviousSat.minus({ week: 1 });
|
||
|
}
|
||
|
const eventStartDateObj = currentOrPreviousSat
|
||
|
.set({ weekday: 6 })
|
||
|
.set({ hour: 9 })
|
||
|
.startOf("hour");
|
||
|
|
||
|
// Hack, but full ISO pushes the length to 340 which crashes verifyJWT!
|
||
|
this.todayOrPreviousStartDate =
|
||
|
eventStartDateObj.toISO({
|
||
|
suppressMilliseconds: true,
|
||
|
}) || "";
|
||
|
}
|
||
|
|
||
|
record() {
|
||
|
const hoursNum = numberOrZero(this.hours);
|
||
|
alert("Nope" + hoursNum);
|
||
|
}
|
||
|
}
|
||
|
</script>
|