This commit is contained in:
Akis 2022-08-31 14:16:12 +03:00
parent e5264df3ad
commit 2d7c4595ac
Signed by untrusted user: akis
GPG Key ID: 267BF5C6677944ED
12 changed files with 122 additions and 108 deletions

View File

@ -1,29 +1,25 @@
name: Docker name: Docker
on: on:
push: push:
branches: branches:
- 'master' - "master"
jobs: jobs:
docker: docker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- - name: Set up QEMU
name: Set up QEMU uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
name: Set up Docker Buildx - name: Login to DockerHub
uses: docker/setup-buildx-action@v2 uses: docker/login-action@v2
- with:
name: Login to DockerHub username: ${{ secrets.DOCKERHUB_USERNAME }}
uses: docker/login-action@v2 password: ${{ secrets.DOCKERHUB_TOKEN }}
with: - name: Build and push
username: ${{ secrets.DOCKERHUB_USERNAME }} uses: docker/build-push-action@v3
password: ${{ secrets.DOCKERHUB_TOKEN }} with:
- push: true
name: Build and push tags: projectsegfault/website:latest
uses: docker/build-push-action@v3
with:
push: true
tags: projectsegfault/website:latest

View File

@ -2,9 +2,20 @@
import { Note, Captcha, Form, Meta, TextArea } from "$lib/Form"; import { Note, Captcha, Form, Meta, TextArea } from "$lib/Form";
</script> </script>
<Form action="https://segfautils.projectsegfau.lt/api/form" method="POST" id="contact-form" > <Form
<Note content="Your IP will be logged for anti-abuse measures." icon="i-fa6-solid:lock" /> action="https://segfautils.projectsegfau.lt/api/form"
<Meta inputType="email" inputPlaceholder="Your email" selectType="commentType"> method="POST"
id="contact-form"
>
<Note
content="Your IP will be logged for anti-abuse measures."
icon="i-fa6-solid:lock"
/>
<Meta
inputType="email"
inputPlaceholder="Your email"
selectType="commentType"
>
<option value="" selected disabled>Select a type of comment</option> <option value="" selected disabled>Select a type of comment</option>
<option value="Feedback">Feedback</option> <option value="Feedback">Feedback</option>
<option value="Suggestion">Suggestion</option> <option value="Suggestion">Suggestion</option>
@ -13,4 +24,4 @@
</Meta> </Meta>
<TextArea id="comment" name="message" placeholder="Your message" /> <TextArea id="comment" name="message" placeholder="Your message" />
<Captcha /> <Captcha />
</Form> </Form>

View File

@ -1,19 +1,22 @@
<script> <script>
import HCaptcha from "svelte-hcaptcha"; import HCaptcha from "svelte-hcaptcha";
import { Note } from "$lib/Form"; import { Note } from "$lib/Form";
let submit = false; let submit = false;
let showSubmitButton = () => { let showSubmitButton = () => {
submit = !submit; submit = !submit;
}; };
</script> </script>
<Note content="The submit button will be visible when you complete the Captcha." icon="i-fa6-solid:circle-info" /> <Note
content="The submit button will be visible when you complete the Captcha."
icon="i-fa6-solid:circle-info"
/>
<HCaptcha <HCaptcha
sitekey="67e84266-980c-4050-8a39-142a91928fe8" sitekey="67e84266-980c-4050-8a39-142a91928fe8"
on:success={showSubmitButton} on:success={showSubmitButton}
/> />
{#if submit} {#if submit}
<input type="submit" value="Submit" class="form-button" /> <input type="submit" value="Submit" class="form-button" />
{/if} {/if}

View File

@ -1,19 +1,15 @@
<script lang="ts"> <script lang="ts">
export let action: string; export let action: string;
export let method: string; export let method: string;
export let id: string; export let id: string;
</script> </script>
<form <form {action} {method} {id}>
{action} <slot />
{method}
{id}
>
<slot />
</form> </form>
<style> <style>
form { form {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 1rem; gap: 1rem;
@ -47,4 +43,4 @@
font-family: var(--font-primary); font-family: var(--font-primary);
outline: none; outline: none;
} }
</style> </style>

View File

@ -1,24 +1,24 @@
<script lang="ts"> <script lang="ts">
export let inputType: string; export let inputType: string;
export let inputPlaceholder: string; export let inputPlaceholder: string;
export let selectType: string; export let selectType: string;
</script> </script>
<div class="meta"> <div class="meta">
<input <input
type={inputType} type={inputType}
name={inputType} name={inputType}
class="form-textbox" class="form-textbox"
placeholder={inputPlaceholder} placeholder={inputPlaceholder}
required required
/> />
<select name={selectType} required class="form-button"> <select name={selectType} required class="form-button">
<slot /> <slot />
</select> </select>
</div> </div>
<style> <style>
.meta { .meta {
display: flex; display: flex;
align-items: center; align-items: center;
flex-direction: row; flex-direction: row;
@ -44,4 +44,4 @@
width: 100%; width: 100%;
} }
} }
</style> </style>

View File

@ -1,19 +1,19 @@
<script lang="ts"> <script lang="ts">
export let content: string; export let content: string;
export let icon: string; export let icon: string;
</script> </script>
<div class="note"> <div class="note">
{#if icon} {#if icon}
<div class={icon} /> <div class={icon} />
{/if} {/if}
<b>{content}</b> <b>{content}</b>
</div> </div>
<style> <style>
.note { .note {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 4px; gap: 4px;
} }
</style> </style>

View File

@ -1,15 +1,15 @@
<script lang="ts"> <script lang="ts">
export let id: string; export let id: string;
export let name: string; export let name: string;
export let placeholder: string; export let placeholder: string;
</script> </script>
<textarea <textarea
{id} {id}
{name} {name}
rows="4" rows="4"
cols="25" cols="25"
required required
class="form-textbox" class="form-textbox"
{placeholder} {placeholder}
/> />

View File

@ -2,4 +2,4 @@ export { default as Note } from "./Note.svelte";
export { default as Captcha } from "./Captcha.svelte"; export { default as Captcha } from "./Captcha.svelte";
export { default as Form } from "./Form.svelte"; export { default as Form } from "./Form.svelte";
export { default as Meta } from "./Meta.svelte"; export { default as Meta } from "./Meta.svelte";
export { default as TextArea } from "./TextArea.svelte"; export { default as TextArea } from "./TextArea.svelte";

View File

@ -60,4 +60,4 @@ a {
a:hover { a:hover {
filter: brightness(125%); filter: brightness(125%);
} }

View File

@ -26,8 +26,16 @@
marginTop="7" marginTop="7"
> >
<div class="buttons"> <div class="buttons">
<LinkButton url="/services" title="Explore our services" icon="i-fa6-solid:bell-concierge" /> <LinkButton
<LinkButton url="/projects" title="Explore our projects" icon="i-fa6-solid:tractor" /> url="/services"
title="Explore our services"
icon="i-fa6-solid:bell-concierge"
/>
<LinkButton
url="/projects"
title="Explore our projects"
icon="i-fa6-solid:tractor"
/>
<LinkButton <LinkButton
url="/donate" url="/donate"
icon="i-fa6-solid:money-bill" icon="i-fa6-solid:money-bill"

View File

@ -34,4 +34,4 @@ _Please be aware that Microsoft often blocks non-popular emails, if you do conta
## People ## People
You can find ways to contact individual team members [on our team page](/team). You can find ways to contact individual team members [on our team page](/team).

View File

@ -25,26 +25,26 @@
<h2>{group.category}</h2> <h2>{group.category}</h2>
<div class="items"> <div class="items">
{#each group.values as item} {#each group.values as item}
<CardInner <CardInner
title={item.name} title={item.name}
description={item.description} description={item.description}
icon={item.icon} icon={item.icon}
> >
<LinksOuter> <LinksOuter>
<Link url={item.website} class="web"> <Link url={item.website} class="web">
<div class="withText"> <div class="withText">
<div class="i-fa6-solid:globe" /> <div class="i-fa6-solid:globe" />
<span>Instance link</span> <span>Instance link</span>
</div> </div>
</Link> </Link>
<Link url={item.projectWebsite} class="link"> <Link url={item.projectWebsite} class="link">
<div class="withText"> <div class="withText">
<div class="i-fa6-solid:circle-info" /> <div class="i-fa6-solid:circle-info" />
<span>Project website</span> <span>Project website</span>
</div> </div>
</Link> </Link>
</LinksOuter> </LinksOuter>
</CardInner> </CardInner>
{/each} {/each}
</div> </div>
{/each} {/each}