Compare commits

...

2 commits

Author SHA1 Message Date
GlennWSo 59c1094f97 feat: dynamic card exp 2024-04-08 21:23:36 +02:00
GlennWSo a400e9ff2b impl classes for truncing and untruncing without jquery 2024-04-08 10:32:48 +02:00
10 changed files with 237 additions and 45 deletions

32
static/cert.pem Normal file
View file

@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFkzCCA3ugAwIBAgIUY2yV3rWekKEfUlLf97PpItQkT5AwDQYJKoZIhvcNAQEL
BQAwWTELMAkGA1UEBhMCc2UxEzARBgNVBAgMClNvbWUtU3RhdGUxFTATBgNVBAcM
DExpZGvDg8K2cGluZzEOMAwGA1UECgwFYWx0ZW4xDjAMBgNVBAMMBUdsZW5uMB4X
DTI0MDQwODEyMDIzOVoXDTI1MDQwODEyMDIzOVowWTELMAkGA1UEBhMCc2UxEzAR
BgNVBAgMClNvbWUtU3RhdGUxFTATBgNVBAcMDExpZGvDg8K2cGluZzEOMAwGA1UE
CgwFYWx0ZW4xDjAMBgNVBAMMBUdsZW5uMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
MIICCgKCAgEAk0wgeIbwmluNQcAhpyHEo4aYfsUfTQ8grCv38Qm5u4Iw8hTXS/Cr
bKFLqencbSiwznt9gcnBBSY/T8fQmKv36vm3389T9Y2MF1hppSCeLNiSTuqM/gjm
hV4YF1pf9dM18jkbMVvdxVAKjrUuAP7ib0ex5CJzUO5eh268vNNeAE45LdAFa2G2
gUFlUV2hk7WMThad8GKhCcNmGmBwOoqBHFxjkzQepDpbKQJyqN69U/F4GuwpzeU5
2ZJ4LISOLUE1hKtkLo+7HM14+z3cL8KXKPkzcP6pSK5V2PXU9P8WfivSnl3Y82hJ
QPi+jfcbjNS03fd0X7VFLmw/+uRQ4SyCt6ZvnBiA2XqZY8Zz92DWAyGnrdhxNc31
zfF4BDwHg9psZKqucHyipQL+AsbUQWZNUzH9O/tXL6s9bVF7IO2Hhm5Nl5XaVvUb
vQK881056jSGyFWZJansPVo4NgpgA/RpIS9pIHm6q8In5nU72N6+Jw4u8JOoFj5O
ZB4DPqKMVCgKkpEWueUfRzPPyJpHza6Xg0ujVO1MRLD5eu6B+Wl7PRk7Ao9XaF5w
BanGQmRxWy5NljkzhLJjZyVckGTk3bBtH0c8XVlf9fyBR/v0N/QOqTs/yacF/MNX
lVRzb0mv4Ldf62tNcTvupb6T5jhTKxuupen2J7hMSWZ4qKyt7bZB9B0CAwEAAaNT
MFEwHQYDVR0OBBYEFCRiBTOba7s51vrAWbTbQVxyJNDlMB8GA1UdIwQYMBaAFCRi
BTOba7s51vrAWbTbQVxyJNDlMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
BQADggIBAD1SRzFIq7akymHwSFmOGjf1degQvfZ80fCygQgQ9EQ0XYoePrXFGJO3
6trvPcShe+/gFk3YJ13MdoIfnFT3PoquwCL2JOWgiBf9vQOX2yWUeVx/EShLQnSa
mog7mUqL04UVd9IIGrH4N5yegc+E/2UrWFxcuuAvEsm6WPcna8EO+ke5hIDh/4Sn
1jnUhKts2+SCC07PyWFInp+vzSJSps83XuO6qIi253cvVyMLsMLwsOyq2KvQSMPe
JPIoFTf3Oz/83eZ1s/oYQZsF29weFTv+Lu6kEn9sgIXVc3Mc/gy4CvxSXL8r9nUd
Wo1R47ITrJdDDIEfL6ojlMUJhTAAc+u4ri7OLnWKYIkBUKjCxiJabHhFeHBEWwGi
rhEnRTTGwl/pedz5EGzGhmlJedh9euDIxlaVuzpeQQtqSCUHuNHc1OWxj/ULXdyo
nJhKzw4V6Zewh7Gwu6FozqqfwNidRLYuUVD4Nl0g7RuZkQYAYk71vLi5AOmlUrqd
77D2D1SXWlIkZ6U4RGmHPLX1mf97NtwgEWHnu6SAU/tA0i8CWDL014EEzEj5kTP8
zg4bUn1YtHnlLuNabedlw1vI5fZ1VXEPPBsjJ6A1alC3d4LEOQq3YJ7TCwqtc9eX
3iakJwecQ4fxHOv76czyqmErPI1mmPJ93mPNJ1xUHjxVUXFctBKO
-----END CERTIFICATE-----

16
static/cloud/index.html Normal file
View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="https://unpkg.com/htmx.org@1.9.11" integrity="sha384-0gxUXCCR8yv9FM2b+U3FDbsKthCI66oH5IA9fHppQq9DDMHuMauqq1ZHBpJxQ0J0" crossorigin="anonymous"></script>
</head>
<body>
hello world
<body>

BIN
static/derp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

10
static/desktop.svg Normal file
View file

@ -0,0 +1,10 @@
<svg width="72" height="73" viewBox="0 0 72 73" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="35.8492" cy="36.6968" r="35.8492" fill="url(#paint0_linear_495_17579)"/>
<path d="M49.9688 21.875H20.9062C19.2715 21.875 18 23.207 18 24.7812V44.1562C18 45.791 19.2715 47.0625 20.9062 47.0625H32.5312L31.5625 49.9688H27.2031C26.3555 49.9688 25.75 50.6348 25.75 51.4219C25.75 52.2695 26.3555 52.875 27.2031 52.875H43.6719C44.459 52.875 45.125 52.2695 45.125 51.4219C45.125 50.6348 44.459 49.9688 43.6719 49.9688H39.3125L38.3438 47.0625H49.9688C51.543 47.0625 52.875 45.791 52.875 44.1562V24.7812C52.875 23.207 51.543 21.875 49.9688 21.875ZM49 43.1875H21.875V25.75H49V43.1875Z" fill="white"/>
<defs>
<linearGradient id="paint0_linear_495_17579" x1="75.4462" y1="15.2622" x2="-5.99962" y2="62.1171" gradientUnits="userSpaceOnUse">
<stop stop-color="#30B6FF"/>
<stop offset="1" stop-color="#0082C9"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 937 B

BIN
static/googleplay-trim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
static/googleplay.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -1,58 +1,89 @@
<!DOCTYPE html>
<html>
<h1>
Selfhosted Services
</h1>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="https://unpkg.com/htmx.org@1.9.11"
integrity="sha384-0gxUXCCR8yv9FM2b+U3FDbsKthCI66oH5IA9fHppQq9DDMHuMauqq1ZHBpJxQ0J0"
crossorigin="anonymous"></script>
<script src="https://unpkg.com/hyperscript.org@0.9.12"></script>
<link rel="stylesheet" href="./style.css">
</head>
<body>
<div data-role="page" id="pageone">
<div data-role="main" class="ui-content">
<h2>Selfhosted Services</h2>
<ul data-role="listview" data-inset="true">
<li>
<a href="https://cloud.sondell.org">
<img src="nextcloud_icon_14.png">
<h2>Nextcloud</h2>
<p>Nextcloud is a file share and communication platform. Access & sync your files,
contacts, calendars & communicate and collaborate across your devices. You decide what happens with your
data, where it is and who can access...
</p>
</a>
</li>
<li>
<a href="https://jelly.sondell.org">
<img src="jelly_white.png">
<h2>Jellyfin</h2>
<p>
Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media.
</p>
</a>
</li>
<li>
<a href="https://books.sondell.org">
<img src="audiobooks.jpg">
<h2>Audiobookshelf</h2>
<p>
Audiobookshelf is an open-source media server for your audiobooks and podcasts.
</p>
</a>
</li>
<li>
<a href="https://git.sondell.org/explore/repos">
<img src="forgejo.png">
<h2>Forgejo</h2>
<p>Forgejo is a self-hosted Git forge that can help you easily manage software projects.</p>
</a>
</li>
</ul>
</div>
</div>
<ul class="lasdist">
<div class="card derp" _="on click toggle .trunc on me">
<img class="icon" src="nextcloud_icon_14.png">
<h3>Nextcloud</h3>
<p class="text">
Nextcloud is a suite of client-server software for creating and using file
hosting services. Our nextcloud server is integrated with OnlyOffice and can provide functionality similar to
Dropbox, Office 365 or Google Drive.
</p>
<div class="footer" _="on click halt the event's bubbling">
<h4>Get started</h4>
<p>
Download the app for your device and login with the server adress:
<code class="link">
https://cloud.sondell.org/
</code>
<button
style="font:inherit;font-size:.8em;background:#3465a4;color:white;border:none;padding: 0 .4em; border-radius: .4em"
_="on click
writeText(my previousElementSibling's innerText) into navigator's clipboard
put 'copied!' into me
wait 1s
put 'copy' into me">
copy
</button>
</p>
<span>
<a class="app-link" href="https://nextcloud.com/install/#card-clients-btns">
<img src="./desktop.svg" height="40">
</a>
<a class="app-link" href= "https://play.google.com/store/apps/details?id=com.nextcloud.client" rel="nofollow">
<img src="./googleplay-trim.png" alt="Download from Google Play" height="40"
data-canonical-src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"
style="max-width: 100%;">
</a>
<a class="app-link" href="https://itunes.apple.com/us/app/nextcloud/id1125420102" rel="nofollow">
<img
src="https://camo.githubusercontent.com/c4395f930c17c2f878dbd98b55d461375f6feb7a998e0ac6e3be2376b8429b8a/68747470733a2f2f646576656c6f7065722e6170706c652e636f6d2f6173736574732f656c656d656e74732f6261646765732f646f776e6c6f61642d6f6e2d7468652d6170702d73746f72652e737667"
alt="the Nextcloud iOS files app" height="40"
data-canonical-src="https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg"
style="max-width: 100%;">
</a>
<a class="app-link" href="https://itunes.apple.com/us/app/nextcloud/id1125420102" rel="nofollow">
<img src="./pwa-badge.png" alt="Demo of the Nextcloud iOS files app" height="40"
data-canonical-src="https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg"
style="max-width: 100%;">
</a>
</span>
</div>
</div>
<div class="card">
<img class="icon" src="nextcloud_icon_14.png">
<h3>Nextcloud</h3>
<p class="text">
Mollis, ante non euismod ornare, orci diam ornare orci, eu mattis
tortor lectus at erat. Nam rutrum erat nec euismod lacinia. Curabitur
et velit ut mauris euismod tempus. Fusce pharetra augue lectus, quis
maximus quam auctor pellentesque.
</p>
<a class="footer" href="https://cloud.sondell.org">web app</a>
</div>
</ul>
</body>
</html>

54
static/key.pem Normal file
View file

@ -0,0 +1,54 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
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
EHU8dH9MirHEhLDPbxlZnA==
-----END ENCRYPTED PRIVATE KEY-----

BIN
static/pwa-badge.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

49
static/style.css Normal file
View file

@ -0,0 +1,49 @@
.icon {
height: 100px;
float: left;
margin-right: 1em;
border-radius: 5px;
}
.app-link {
margin: 6px;
text-decoration: none;
}
.link {
color: green;
}
.list {
display: flex;
flex-direction: column;
}
.card {
border: 1px solid #1948e3;
border-radius: 25px;
margin: 0 auto;
padding: 1em;
&:hover {
background-color: lightblue;
}
&:not(:last-of-type) {
margin-bottom: 20px;
}
}
.trunc {
height: 100px;
.text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.footer {
display: none;
}
}