diff --git a/components/groovy/com/jessebrault/site/StandardPage.groovy b/components/groovy/com/jessebrault/site/StandardPage.groovy index 0894da7..98153b7 100644 --- a/components/groovy/com/jessebrault/site/StandardPage.groovy +++ b/components/groovy/com/jessebrault/site/StandardPage.groovy @@ -4,7 +4,6 @@ import com.jessebrault.ssg.di.Global import groowt.view.component.web.BaseWebViewComponent import groowt.view.component.web.WebViewComponent import jakarta.inject.Inject -import org.jetbrains.annotations.Nullable import java.time.LocalDate import java.time.format.DateTimeFormatter @@ -15,6 +14,7 @@ class StandardPage extends BaseWebViewComponent { final String youtubeUrl final String title final Closure banner + final List pageScripts @Inject StandardPage(@Global('spotifyUrl') String spotifyUrl, @Global('youtubeUrl') String youtubeUrl, Map attr) { @@ -22,6 +22,7 @@ class StandardPage extends BaseWebViewComponent { this.youtubeUrl = youtubeUrl this.title = attr.title this.banner = attr.banner ?: { '' } + this.pageScripts = attr.pageScripts ?: [] } List getMainChildren() { diff --git a/components/resources/com/jessebrault/site/StandardPageTemplate.wvc b/components/resources/com/jessebrault/site/StandardPageTemplate.wvc index d967d1a..da7e5f0 100644 --- a/components/resources/com/jessebrault/site/StandardPageTemplate.wvc +++ b/components/resources/com/jessebrault/site/StandardPageTemplate.wvc @@ -21,5 +21,6 @@ import com.jessebrault.site.icon.YoutubeIcon

Copyright $copyrightYear Jesse R. Brault. All rights reserved.

+ } /> diff --git a/pages/resources/com/jessebrault/site/contact/ContactPageTemplate.wvc b/pages/resources/com/jessebrault/site/contact/ContactPageTemplate.wvc index f90d683..c17cf5b 100644 --- a/pages/resources/com/jessebrault/site/contact/ContactPageTemplate.wvc +++ b/pages/resources/com/jessebrault/site/contact/ContactPageTemplate.wvc @@ -3,7 +3,7 @@ package com.jessebrault.site.contact import com.jessebrault.site.StandardPage --- -}> +} pageScripts={['/contact.js']}>

Contact

Please use the following form to contact Jesse Brault directly.

diff --git a/static/contact.js b/static/contact.js new file mode 100644 index 0000000..b04351c --- /dev/null +++ b/static/contact.js @@ -0,0 +1,23 @@ +window.addEventListener('load', function () { + const contactForm = document.querySelector('form.contact') + contactForm.addEventListener('submit', function (submitEvent) { + submitEvent.preventDefault() + const formData = new FormData(contactForm) + + const message = ` +From: ${formData.get('name')} +Email: ${formData.get('email')} +Institution: ${formData.get('institution')} +Message: +${formData.get('message')} + `.trim() + + const toSend = { message } + console.log(toSend) + // fetch('https://api.jessebrault.com/contact/jessebrault', { + // body: JSON.stringify(toSend), + // headers: 'Content-Type: Application/JSON', + // method: 'POST' // TODO: signal + // }) + }) +}) diff --git a/static/main.css b/static/main.css index 4900175..abec29d 100644 --- a/static/main.css +++ b/static/main.css @@ -1,9 +1,6 @@ :root { --black: #000000; --charcoal: #38383b; - --dark-blue: #00416b; - --medium-blue: #005e9b; - --light-blue: #0071bb; --light-gray: #dedede; --petrol: #476c77; --off-white: #fdfdfd;