diff --git a/res/include/style/layout.css b/res/include/style/layout.css index d96f2a0..def788f 100644 --- a/res/include/style/layout.css +++ b/res/include/style/layout.css @@ -46,8 +46,11 @@ a > svg { vertical-align: middle; } *, *::before, *::after { box-sizing: border-box; } -html, body { overflow-x: hidden; } -body{ +html, body { + /* This makes sure that no scrollbar shows up when the menu is open on small screens*/ + overflow-x: hidden; +} +body { margin: 0; font-family: system-ui, sans-serif; font-size: 17px; @@ -56,20 +59,26 @@ body{ background-color: var(--layer_1_color); padding: 0; } -.checkers { +header, footer, .checkers { background-image: url("{{bgPattern}}"); background-color: #111111; /* Fallback */ background-color: var(--layer_1_color); background-repeat: repeat; background-blend-mode: luminosity; } -.inset { +header, footer { padding-top: 70px; box-shadow: inset 1px 1px 10px 0 var(--shadow_color); border-radius: 12px; text-align: center; overflow: hidden; } +header > h1 { + text-shadow: 1px 1px 10px var(--shadow_color); +} +footer { + padding: 200px 8px 40px 8px; +} /* Page layout elements */ @@ -131,7 +140,7 @@ body{ padding: 4px; } } -.limit_width { +section { position: relative; display: inline-block; max-width: 1000px; @@ -141,10 +150,6 @@ body{ text-align: left; clear: both; } -.page_body > h1 { - text-shadow: 1px 1px 25px #000000; - text-shadow: 1px 1px 25px var(--shadow_color); -} /* Page contents */ diff --git a/res/template/404.html b/res/template/404.html index 866cf93..c4ac34e 100644 --- a/res/template/404.html +++ b/res/template/404.html @@ -7,10 +7,10 @@
{{template "page_top" .}} -If you came here by a link from this very same website you can tell me about it on @@ -23,7 +23,7 @@
Bye!
-Hello. This file has received an abuse report and has been taken down. It cannot be shared anymore.
-Great job.
@@ -24,7 +24,7 @@ try again in a few minutes (or hours), or go back to the home page and start over. -
You can change how pixeldrain looks! Your theme choice will
be saved in a cookie.
@@ -30,7 +30,7 @@
(Inspired by Skeuos GTK)
Name | +Blocked | +Type | +Last used | +Created | ++ | ||||||||
Name | -Blocked | -Type | -Last used | -Created | -+ | {reporter.email} | +{reporter.name} | +{reporter.files_blocked} | +{reporter.type} | +{formatDate(reporter.last_used, true, true, false)} | +{formatDate(reporter.created, false, false, false)} | ++ + | |
{reporter.email} | -{reporter.name} | -{reporter.files_blocked} | -{reporter.type} | -{formatDate(reporter.last_used, true, true, false)} | -{formatDate(reporter.created, false, false, false)} | -- - | -
DB Time | -{formatDate(new Date(status.db_time), true, true, true)} | -DB Latency | -{formatNumber(status.db_latency / 1000, 3)} ms | -
Address | -Pos | -Alive | -Err | -1m | -5m | -15m | -Ping | -Free | -Min free | -
{peer.address} | -{peer.position} | -{peer.reachable} | -{peer.unreachable_count} | -{peer.load_1_min.toFixed(1)} | -{peer.load_5_min.toFixed(1)} | -{peer.load_15_min.toFixed(1)} | -{formatDuration(peer.latency, 3)} | -{formatDataVolume(peer.free_space, 4)} | -{formatDataVolume(peer.min_free_space, 3)} | -
Local reads | -Local read size | -Remote reads | -Remote read size | -
{status.local_reads} | -{formatDataVolume(status.local_read_size, 4)} | -{status.remote_reads} | -{formatDataVolume(status.remote_read_size, 4)} | -
{status.local_reads_per_sec.toPrecision(4)} / s | -{formatDataVolume(status.local_read_size_per_sec, 4)} / s | -{status.remote_reads_per_sec.toPrecision(4)} / s | -{formatDataVolume(status.remote_read_size_per_sec, 4)} /s | -
Watcher | -Threads | -Listeners | -Avg | -
File statistics | -{status.stats_watcher_threads} | -{status.stats_watcher_listeners} | -{(status.stats_watcher_listeners / status.stats_watcher_threads).toPrecision(3)} | -
Downloads | -{status.download_clients} | -{status.download_connections} | -{(status.download_connections / status.download_clients).toPrecision(3)} | -
{ getStats('query_name') }}>Query | -{ getStats('calls') }}>Calls | -{ getStats('average_duration') }}>Avg dur | -{ getStats('total_duration') }}>Total dur | -Callers | -
{q.query_name} | -{q.calls} | -{q.average_duration}ms | -{formatDuration(q.total_duration, 0)} | -
- {#each q.callers as caller}
- {caller.count}x {caller.name} - {/each} - |
-
DB Time | +{formatDate(new Date(status.db_time), true, true, true)} | +DB Latency | +{formatNumber(status.db_latency / 1000, 3)} ms | +
Address | +Pos | +Alive | +Err | +1m | +5m | +15m | +Ping | +Free | +Min free | +
{peer.address} | +{peer.position} | +{peer.reachable} | +{peer.unreachable_count} | +{peer.load_1_min.toFixed(1)} | +{peer.load_5_min.toFixed(1)} | +{peer.load_15_min.toFixed(1)} | +{formatDuration(peer.latency, 3)} | +{formatDataVolume(peer.free_space, 4)} | +{formatDataVolume(peer.min_free_space, 3)} | +
Local reads | +Local read size | +Remote reads | +Remote read size | +
{status.local_reads} | +{formatDataVolume(status.local_read_size, 4)} | +{status.remote_reads} | +{formatDataVolume(status.remote_read_size, 4)} | +
{status.local_reads_per_sec.toPrecision(4)} / s | +{formatDataVolume(status.local_read_size_per_sec, 4)} / s | +{status.remote_reads_per_sec.toPrecision(4)} / s | +{formatDataVolume(status.remote_read_size_per_sec, 4)} /s | +
Watcher | +Threads | +Listeners | +Avg | +
File statistics | +{status.stats_watcher_threads} | +{status.stats_watcher_listeners} | +{(status.stats_watcher_listeners / status.stats_watcher_threads).toPrecision(3)} | +
Downloads | +{status.download_clients} | +{status.download_connections} | +{(status.download_connections / status.download_clients).toPrecision(3)} | +
{ getStats('query_name') }}>Query | +{ getStats('calls') }}>Calls | +{ getStats('average_duration') }}>Avg dur | +{ getStats('total_duration') }}>Total dur | +Callers | +
{q.query_name} | +{q.calls} | +{q.average_duration}ms | +{formatDuration(q.total_duration, 0)} | +
+ {#each q.callers as caller}
+ {caller.count}x {caller.name} + {/each} + |
+
Address | +Reason | +Ban time | +Expire time | +Offences | ++ | ||||||
Address | -Reason | -Ban time | -Expire time | -Offences | -+ | {row.address} | +{row.reason} | +{formatDate(row.ban_time, true, true, false)} | +{formatDate(row.expire_time, true, true, false)} | +{row.offences} | ++ + |
{row.address} | -{row.reason} | -{formatDate(row.ban_time, true, true, false)} | -{formatDate(row.expire_time, true, true, false)} | -{row.offences} | -- - | -
- To connect JDownloader to pixeldrain you need to generate an API
- key and enter it in JDownloader's Account Manager.
-
- Do not show the generated key to anyone, it can
- be used to gain access to your pixeldrain account!
-
- Paste the key in JDownloader to authenticate the app. -
- {:else if app_name === "sharex"} -- ShareX is a Screen capture, file sharing and productivity tool. - Pixeldrain is supported as a custom uploader. You can get ShareX - here. -
-- Here you can download our custom ShareX uploader which uses - pixeldrain to upload your files. This uploader is configured to - upload files to your personal pixeldrain account. Do not - share the configuration file with anyone, it contains - your account credentials. -
- - - -
- Download the uploader config and choose 'Open file'
-
-
- Set pixeldrain.com as active uploader. Choose Yes
-
-
-
+ To connect JDownloader to pixeldrain you need to generate an API
+ key and enter it in JDownloader's Account Manager.
+
+ Do not show the generated key to anyone, it can
+ be used to gain access to your pixeldrain account!
+
+ Paste the key in JDownloader to authenticate the app. +
+ {:else if app_name === "sharex"} ++ ShareX is a Screen capture, file sharing and productivity tool. + Pixeldrain is supported as a custom uploader. You can get ShareX + here. +
++ Here you can download our custom ShareX uploader which uses + pixeldrain to upload your files. This uploader is configured to + upload files to your personal pixeldrain account. Do not + share the configuration file with anyone, it contains + your account credentials. +
+ + + +
+ Download the uploader config and choose 'Open file'
+
+
+ Set pixeldrain.com as active uploader. Choose Yes
+
+
+