From 5b25f21f72e09ea216cb55302523c66ab4d8f910 Mon Sep 17 00:00:00 2001
From: Wim Brand
Date: Thu, 30 Jul 2026 23:15:00 +0200
Subject: [PATCH] Update home page a bit
---
svelte/src/home_page/GetStarted.svelte | 5 +-
svelte/src/home_page/HomePage.svelte | 80 ++-----------------
svelte/src/home_page/SubscriptionPlans.svelte | 7 +-
svelte/src/wrap/Router.svelte | 8 +-
4 files changed, 19 insertions(+), 81 deletions(-)
diff --git a/svelte/src/home_page/GetStarted.svelte b/svelte/src/home_page/GetStarted.svelte
index 9f8120a..bc67877 100644
--- a/svelte/src/home_page/GetStarted.svelte
+++ b/svelte/src/home_page/GetStarted.svelte
@@ -22,10 +22,9 @@ import Euro from "util/Euro.svelte";
{:else}
- You are currently logged in as '{$user.username}'. Use the
- form below to activate prepaid on this account.
+ Pick one of the subscription plans above to upgrade your
+ account to premium.
-
{/if}
diff --git a/svelte/src/home_page/HomePage.svelte b/svelte/src/home_page/HomePage.svelte
index 30f612f..230c916 100644
--- a/svelte/src/home_page/HomePage.svelte
+++ b/svelte/src/home_page/HomePage.svelte
@@ -28,49 +28,23 @@ let upload_widget
content delivery. We will store and serve your files at an extremely
competitive rate.
-
-
-
-
-
+ Features
-
- Unlimited storage space
+ Cloud storage with rclone and
+ FTPS support
-
- Cloud storage with rclone and FTPS support
+ Customizable download pages (custom branding colours, header and
+ background images)
-
- Customizable download pages (custom
- branding colours, header and background images)
+ Fault tolerance for up to four storage server failures
-
- Fault tolerance for up to four storage
- server failures
-
- -
- 1.8 Terabits per second of total bandwidth
- capacity
-
- -
- Twenty-three high-performance caching servers optimized for data
- transfer over long distances
-
- -
- File caching in
- Portland,
- Querétaro,
- New York,
- São Paulo,
- Frankfurt and
- Singapore
+ Caching servers highly optimized for long-distance data transfer
-
What you don't get
-
@@ -78,10 +52,7 @@ let upload_widget
in case of emergency
-
- Commercial support - If you have a question, please check the Q&A page first. If that doesn't answer it, try
- the support channel on Discord.
+ Commercial support - I'm busy, please don't bother me
@@ -142,43 +113,8 @@ header > h1 {
background-size: contain;
background-position: center;
}
-.image {
- max-width: 100%;
- border-radius: 12px;
-}
.bold {
font-weight: bold;
color: var(--highlight_color);
}
-
-.prices {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- justify-content: center;
- gap: 10px;
-}
-.prices > div {
- flex: 1 0 200px;
- min-width: 200px;
- display: flex;
- flex-direction: row;
- text-align: center;
- border-radius: 6px;
- overflow: hidden;
- border: 2px solid var(--card_color);
-}
-.prices > div > div {
- flex: 1 1 auto;
- padding: 4px;
- font-size: 1.3em;
-}
-.prices > div > div:nth-child(2) {
- background: var(--card_color);
-}
-@media(max-width: 1000px) {
- .prices > div {
- flex-direction: column;
- }
-}
diff --git a/svelte/src/home_page/SubscriptionPlans.svelte b/svelte/src/home_page/SubscriptionPlans.svelte
index 096c59f..fbd6c3f 100644
--- a/svelte/src/home_page/SubscriptionPlans.svelte
+++ b/svelte/src/home_page/SubscriptionPlans.svelte
@@ -137,8 +137,8 @@ const plans: Plan[] = [
{#each plans as plan (plan.title)}
-
-
{plan.title}
+
+ {plan.title}
/ month
@@ -212,6 +212,9 @@ const plans: Plan[] = [
word-wrap: break-word;
hyphens: auto;
}
+.title {
+ font-size: 1.5em;
+}
.plan > .order {
flex: 1 1 auto;
display: flex;
diff --git a/svelte/src/wrap/Router.svelte b/svelte/src/wrap/Router.svelte
index 5ba1fa4..d74d9c7 100644
--- a/svelte/src/wrap/Router.svelte
+++ b/svelte/src/wrap/Router.svelte
@@ -110,7 +110,7 @@ const load_page = async (pathname: string, history: boolean): Promise
=
window.document.title = current_page.title+" / Nova"
- if(history) {
+ if (history) {
window.history.pushState({}, window.document.title, pathname)
}
@@ -129,7 +129,7 @@ const load_page = async (pathname: string, history: boolean): Promise =
return true
}
-const click = (e: MouseEvent) => {
+const click = async (e: MouseEvent) => {
const origin = (e.target as Element).closest("a");
if (origin === null) {
@@ -145,7 +145,7 @@ const click = (e: MouseEvent) => {
// Try to load the page, if the page was found we cancel the browser
// navigation event so we can handle it ourselves
- if (load_page(url.pathname, true)) {
+ if (await load_page(url.pathname, true) === true) {
e.preventDefault()
}
}
@@ -165,7 +165,7 @@ const popstate = (e: PopStateEvent) => {
{#if current_page !== null}
- {#if current_page.footer === undefined || current_page.footer === true}
+ {#if current_page.footer !== false}
{/if}
{/if}