mirror of
https://git.sr.ht/~cadence/cloudtube
synced 2024-11-10 02:27:29 +00:00
113 lines
4.1 KiB
Plaintext
113 lines
4.1 KiB
Plaintext
extends includes/layout.pug
|
|
|
|
mixin fieldset(name)
|
|
fieldset
|
|
legend= name
|
|
.fieldset-contents
|
|
block
|
|
|
|
mixin input({id, label, description, type, placeholder, disabled, list})
|
|
- disabled = disabled || false
|
|
.field-row
|
|
label.field-row__label(for=id)= label
|
|
input(type=type id=id name=id value=settings[id] placeholder=placeholder disabled=disabled list=`${id}-list`).border-look.field-row__input
|
|
if list
|
|
datalist(id=`${id}-list`)
|
|
each item in list
|
|
option(value=item)
|
|
if description
|
|
.field-row__description!= description
|
|
|
|
mixin select({id, label, description, disabled, options})
|
|
- disabled = disabled || false
|
|
.field-row
|
|
label.field-row__label(for=id)= label
|
|
select(id=id name=id disabled=disabled).border-look.field-row__input
|
|
each option in options
|
|
option(value=option.value selected=(option.value == settings[id]))= option.text
|
|
if description
|
|
.field-row__description!= description
|
|
|
|
block head
|
|
title Settings - CloudTube
|
|
|
|
block content
|
|
main.settings-page
|
|
form(method="post" action="/settings")
|
|
+fieldset("Settings")
|
|
|
|
+input({
|
|
id: "instance",
|
|
label: "Instance",
|
|
description: 'CloudTube will fetch information from this <a href="https://invidious.io/">Invidious</a> or <a href="https://git.sr.ht/~cadence/NewLeaf">NewLeaf</a> instance.',
|
|
type: "url",
|
|
placeholder: constants.user_settings.instance.default,
|
|
list: instances
|
|
})
|
|
|
|
+select({
|
|
id: "local",
|
|
label: "Fetch videos",
|
|
description: "If remote, the instance above will be used.\nIf local, CloudTube will try to connect to an instance running on your own computer. This can bypass blocks, but requires you to run the instance software.",
|
|
options: [
|
|
{value: "0", text: "Remote instance"},
|
|
{value: "1", text: "Locally"}
|
|
]
|
|
})
|
|
|
|
+select({
|
|
id: "quality",
|
|
label: "Preferred qualities",
|
|
description: "All qualities are available on the watch page. This defines their sort order.",
|
|
options: [
|
|
{value: "0", text: "720p"},
|
|
{value: "4", text: "360p"},
|
|
{value: "1", text: "Best possible"},
|
|
{value: "2", text: "Best <=1080p"},
|
|
{value: "3", text: "Best <=30fps"}
|
|
]
|
|
})
|
|
|
|
+select({
|
|
id: "save_history",
|
|
label: "Watched videos history",
|
|
description: "Watched videos will appear in a dimmer colour.\nTurning this off will delete your existing watch history.",
|
|
options: [
|
|
{value: "0", text: "Don't store"},
|
|
{value: "1", text: "Store on server"}
|
|
]
|
|
})
|
|
|
|
.save-settings
|
|
button.border-look Save
|
|
|
|
if user.token
|
|
details.data-management
|
|
summary Sync data
|
|
p Open this link elsewhere to import your current CloudTube session there.
|
|
p.
|
|
If you clear your cookies often, you can bookmark this link and open it
|
|
to restore your data, or if you have multiple devices, you can send this
|
|
link to them to import your session and automatically keep everything
|
|
in sync.
|
|
- let url = `/formapi/importsession/${user.token}`
|
|
a(href=url)= url
|
|
|
|
details.data-management.delete-details
|
|
summary Delete data
|
|
p Press this button to erase all your data from CloudTube.
|
|
p.
|
|
Just the current session will be removed. If you lost access to a
|
|
previous session, you cannot touch it.
|
|
p.
|
|
You will lose your subscriptions, watch history, settings, and anything
|
|
else you stored on the server. The server will keep no record that they
|
|
ever existed.
|
|
p Deletion is instant and #[em cannot be undone.]
|
|
input(type="checkbox" id="delete-confirm")
|
|
.delete-confirm-container
|
|
label(for="delete-confirm").delete-confirm-label I understand the consequences
|
|
form(method="post" action="/formapi/erase")
|
|
input(type="hidden" name="token" value=user.token)
|
|
button.border-look#delete-button Permanently erase my data
|