feat: add layout of contact forms

This commit is contained in:
Oliver Booth 2023-08-05 20:54:55 +01:00
parent 185d035388
commit cd44b9cf2a
Signed by: oliverbooth
GPG Key ID: 725DB725A0D9EE61
9 changed files with 272 additions and 17 deletions

View File

@ -0,0 +1,16 @@
@page "/{culture=en}/contact"
@{
ViewData["Title"] = "Contact";
}
<h1 class="display-4" xmlns="http://www.w3.org/1999/html">Contact</h1>
<p class="lead">What would you like to talk about?</p>
<ul class="contact-reasons">
<li><a asp-page="/contact/jobopportunity">💼 Job opportunity / collaboration</a></li>
<li><a asp-page="/donate">☕ Donate money for coffee</a></li>
<li><a asp-page="/contact/projectidea">💡 Project idea</a></li>
<li><a asp-page="/contact/technicalhelp">💬️ Technical help and code review</a></li>
<li><a asp-page="/contact/opensource">🌍 Open source contribution</a></li>
<li><a asp-page="/contact/privacy">🔒 Privacy policy concerns</a></li>
<li><a asp-page="/contact/other">❓ Misc / general inquiry</a></li>
</ul>

View File

@ -0,0 +1,51 @@
@page "/{culture=en}/contact/job-opportunity"
@{
ViewData["Title"] = "Contact";
}
<h1 class="display-4">Contact</h1>
<p class="lead">Job Opportunity</p>
<p>
I'm honoured that you would consider me for a job opportunity. I have some prerequisites that I'd like to make you
aware of before you contact me. Please read the following carefully.
</p>
<p>
If you are not based in South East Wales UK, and your work is not 100% remote, I am not interested. I will not be
relocating for any job, nor will I be commuting to any office if it's an unreasonable distance away.
</p>
<form method="post">
<input type="hidden" name="contact-type" value="job-opportunity">
<div class="form-group" style="margin-top: 10px;">
<label for="your-name">Your Name</label>
<input type="text" class="form-control" id="your-name" name="your-name" placeholder="Who are you?" required>
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="your-email">Your Email Address</label>
<input type="email" class="form-control" id="your-email" name="your-email" placeholder="How can I reach you?" required>
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="company-name">Company Name</label>
<input type="text" class="form-control" id="company-name" name="company-name" placeholder="Who do you represent?" required>
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="position-title">Job Position Title</label>
<input type="text" class="form-control" id="position-title" name="position-title" placeholder="e.g. C# Software Developer" required>
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="position-description">Description</label>
<textarea class="form-control" id="position-description" name="position-description" rows="5" required placeholder="Explain the duties of the role and a bit about the company."></textarea>
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="starting-salary">Starting Salary</label>
<input type="number" class="form-control" id="starting-salary" name="starting-salary" placeholder="e.g. £30,000" required>
</div>
<button type="submit" class="btn btn-primary" style="margin-top: 10px;">Submit</button>
</form>

View File

@ -0,0 +1,27 @@
@page "/{culture=en}/contact/open-source"
@{
ViewData["Title"] = "Contact";
}
<h1 class="display-4">Contact</h1>
<p class="lead">Open Source Contribution</p>
<p>
Thank you for taking the time to consider contributing to one of my open source projects! I am always looking for
ways to improve my code, and I appreciate any and all contributions that I receive. You do not need to contact
me to do so, just submit a pull request on GitHub and I will review it as soon as I can.
</p>
<p>
Below are links to the repositories for each of my active projects. This list is subject to change at any time. If
you'd like to contribute to a project that is not listed below, it is likely that I am not currently actively
maintaining it, I would recommend that you fork the repository and continue development on your own as unfortunately
I have no timeline as to when I will start such projects back up again.
</p>
<ul>
<li>
<a href="https://github.com/oliverbooth/X10D">X10D</a>
</li>
<li>
<a href="https://github.com/BrackeysBot/">BrackeysBot</a>
</li>
</ul>

View File

@ -0,0 +1,39 @@
@page "/{culture=en}/contact/other"
@{
ViewData["Title"] = "Contact";
}
<h1 class="display-4">Contact</h1>
<p class="lead">Other</p>
<p>
Thanks for getting in touch! While I do my best to read to all inquiries, I cannot guarantee that I will be able to
respond to your message. Nevertheless, I appreciate you taking the time to reach out to me and I will respond if I
can.
</p>
<form>
<input type="hidden" name="contact-type" value="other">
<div class="form-group" style="margin-top: 10px;">
<label for="your-name">Your Name</label>
<input type="text" class="form-control" id="your-name" name="your-name" placeholder="Who are you?" required>
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="your-email">Your Email Address</label>
<input type="email" class="form-control" id="your-email" name="your-email" placeholder="How can I reach you?" required>
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="subject">Subject</label>
<input type="text" class="form-control" id="subject" name="subject" placeholder="What's the gist?" maxlength="100" required>
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="message">Message</label>
<textarea class="form-control" id="message" name="message" rows="5" required placeholder="What's on your mind?"></textarea>
</div>
<button asp-action="Submit" class="btn btn-primary" style="margin-top: 10px;">Submit</button>
</form>

View File

@ -0,0 +1,46 @@
@page "/{culture=en}/contact/privacy/{which?}"
@model OliverBooth.Pages.Contact.Privacy
@{
ViewData["Title"] = "Contact";
}
<h1 class="display-4">Contact</h1>
<p class="lead">Privacy Policy Concerns</p>
<p>
Thank you for getting in touch. I take your privacy very seriously and will do my best to address any concerns you may have.
Please outline your concerns in the form below, and I will get back to you as soon as possible.
</p>
<form method="post">
<input type="hidden" name="contact-type" value="privacy-policy">
<div class="form-group" style="margin-top: 10px;">
<label for="your-name">Your Name</label>
<input type="text" class="form-control" id="your-name" name="your-name" placeholder="Who are you?">
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="your-email">Your Email Address</label>
<input type="email" class="form-control" id="your-email" name="your-email" placeholder="How can I reach you?">
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="your-email">Privacy Policy</label>
<select name="privacy-policy" class="form-control" id="privacy-policy">
<option value="website" selected="@(Model.Which != "google-play")">This website's policy</option>
<option value="google-play" selected="@(Model.Which == "google-play")">Google Play policy</option>
</select>
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="position-title">Subject Matter</label>
<input type="text" class="form-control" id="position-title" name="position-title" placeholder="Describe your concerns here in a few words" maxlength="100">
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="position-description">Description</label>
<textarea class="form-control" id="position-description" name="position-description" rows="5" required placeholder="Go into detail about the nature of your concerns."></textarea>
</div>
<button type="submit" class="btn btn-primary" style="margin-top: 10px;">Submit</button>
</form>

View File

@ -0,0 +1,17 @@
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace OliverBooth.Pages.Contact;
public class Privacy : PageModel
{
public string Which { get; private set; } = "website";
public void OnGet(string? which = "website")
{
Which = which ?? "website";
}
public void SubmitForm()
{
}
}

View File

@ -0,0 +1,58 @@
@page "/{culture=en}/contact/project-idea"
@{
ViewData["Title"] = "Contact";
}
<h1 class="display-4">Contact</h1>
<p class="lead">Project Idea</p>
<p>
I'm always looking for new projects to work on, and I'm open to suggestions. If you have an idea for a project that
you'd like to see me work on, please feel free to get in touch. If you'd like to collaborate, please
<strong>do not</strong> use this form, instead, please use <a asp-page="/contact/jobopportunity">this one</a>.
</p>
<p>
Please note that by submitting an idea through the form on this page, you acknowledge and agree that any
intellectual property rights associated with the idea, including but not limited to copyright, patent, or any other
proprietary rights, shall be immediately and irrevocably transferred to me. You understand that this transfer of
intellectual property rights grants me the unrestricted and exclusive right to use, modify, reproduce, distribute,
disclose, or otherwise exploit the idea for any purpose, without the obligation to provide credit or compensation to
you. This includes the right to file for intellectual property protection or pursue commercial opportunities derived
from the idea. By submitting the idea, you further confirm that it is your original work and does not infringe upon
the rights of any third party.
</p>
<p>
If you're happy with all that, please fill out the form below.
</p>
<form method="post">
<input type="hidden" name="contact-type" value="project-idea">
<div class="form-group" style="margin-top: 10px;">
<label for="project-title">Your Name</label>
<input type="text" class="form-control" id="name" name="project-title" placeholder="Bob">
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="project-title">Your Email Adddress</label>
<input type="email" class="form-control" id="email" name="project-title" placeholder="bob@example.com">
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="project-title">Project Title (If Applicable)</label>
<input type="text" class="form-control" id="project-title" name="project-title" placeholder="Title">
</div>
<div class="form-group" style="margin-top: 10px;">
<label for="project-description">Project Description</label>
<textarea class="form-control" id="project-description" name="project-description" rows="5" required placeholder="Explain the idea here"></textarea>
</div>
<div class="form-check" style="margin-top: 10px;">
<input class="form-check-input" type="checkbox" value="" id="agreement-checkbox" required>
<label class="form-check-label" for="agreement-checkbox">
I acknowledge and agree to the transfer of intellectual property rights as described above.
</label>
</div>
<button type="submit" class="btn btn-primary" style="margin-top: 10px;">Submit</button>
</form>

View File

@ -0,0 +1,18 @@
@page "/{culture=en}/contact/technical-help"
@{
ViewData["Title"] = "Contact";
}
<h1 class="display-4">Contact</h1>
<p class="lead">Technical Help</p>
<p>
I'm sorry, but do I not offer help or advice regarding development of any kind outside of my website, and Discord
servers of which I'm a member. I'm most active in the <a href="https://discord.gg/brackeys">Brackeys Community</a>
Discord server, where I'm an Admin, but this does not give you permission to demand help from me on your schedule.
If you have a question, please ask in the appropriate channel in that server. If you ping or DM me, I will ignore
you.
</p>
<p>
I do not offer services to build or repair desktops, laptops, mobiles, or tablets, outside of my family and close
friends.
</p>

View File

@ -1,17 +0,0 @@
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace OliverBooth.Pages;
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public void OnGet()
{
}
}