Compare commits

...

19 Commits

Author SHA1 Message Date
rra efd045b862 Update members_lumbung_space/templates/admin.html
continuous-integration/drone/push Build is failing Details
use the proper sign in URL for social.lumbung.space
2023-12-25 08:27:12 +00:00
rra 6a6e4863e6 fix OIDC links to login to apps
continuous-integration/drone/push Build is failing Details
continuous-integration/drone Build is passing Details
2023-11-29 10:08:53 +00:00
knoflook 95ada7f1d7 fix: correct url for keycloak 20 compatibility
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is failing Details
2023-02-15 12:43:48 +01:00
knoflook aa3f254800 fix: update endpoint to work with keycloak 20
continuous-integration/drone/push Build is failing Details
2023-02-15 12:30:39 +01:00
Aadil Ayub 1ea953e517 add more spacing to app descriptions
continuous-integration/drone/push Build is passing Details
2022-05-25 17:43:52 +05:00
decentral1se d7842aef5c
update plugin link
continuous-integration/drone/push Build is passing Details
2022-05-19 10:37:06 +02:00
decentral1se 57b5f0c384
sounds is up
continuous-integration/drone/push Build is passing Details
2022-05-10 15:06:17 +02:00
decentral1se c5d5f93e63
feat: panduan links, better wording, less jank css
continuous-integration/drone/push Build is passing Details
2022-05-10 08:28:34 +02:00
decentral1se e88a0e0f3b
feat: add about page link
continuous-integration/drone/push Build is passing Details
2022-05-09 08:07:39 +02:00
decentral1se 0fa155ca44
fix: grey out sounds for now
continuous-integration/drone/push Build is passing Details
2022-05-06 10:59:50 +02:00
rra eb2b55159e
feat: app descriptions
continuous-integration/drone/push Build is failing Details
Thanks roel!

Closes #2.
2022-05-06 10:56:10 +02:00
Aadil Ayub 3ad17a6c93 fix wrong href in css selector for sounds
continuous-integration/drone/push Build is passing Details
2022-04-07 18:06:46 +05:00
Aadil Ayub 6528f534a0 grey out sounds instead of lumbung tv
continuous-integration/drone/push Build is passing Details
2022-04-07 18:06:10 +05:00
Aadil Ayub 909fa35b91 make logo in invites page go to lumbung.space
continuous-integration/drone/push Build is passing Details
2022-04-07 18:03:52 +05:00
Aadil Ayub a859c0143a make logo redirect to lumbung.space
continuous-integration/drone/push Build is passing Details
2022-04-07 18:01:53 +05:00
Aadil Ayub 38f7668a04 add sounds.lumbung.space (greyed out for now)
continuous-integration/drone/push Build is failing Details
2022-04-07 17:56:37 +05:00
knoflook 43e3ac855d drop minimum name length
continuous-integration/drone/push Build is failing Details
2022-03-18 13:18:18 +01:00
decentral1se c91cc6cce4
fix url
continuous-integration/drone/push Build is passing Details
2022-03-16 15:38:01 +01:00
knoflook 880c0d1b8f
fix: compare full date with invite links
continuous-integration/drone/push Build is passing Details
2022-02-03 18:42:54 +01:00
8 changed files with 118 additions and 30 deletions

View File

@ -13,7 +13,7 @@ KEYCLOAK_CLIENT_SECRET = environ.get("KEYCLOAK_CLIENT_SECRET")
KEYCLOAK_DOMAIN = environ.get("KEYCLOAK_DOMAIN")
KEYCLOAK_REALM = environ.get("KEYCLOAK_REALM")
KEYCLOAK_SCOPES = environ.get("KEYCLOAK_SCOPES", "openid profile email")
KEYCLOAK_BASE_URL = f"https://{KEYCLOAK_DOMAIN}/auth/realms/{KEYCLOAK_REALM}/protocol/openid-connect" # noqa
KEYCLOAK_BASE_URL = f"https://{KEYCLOAK_DOMAIN}/realms/{KEYCLOAK_REALM}/protocol/openid-connect" # noqa
# Redis connection details, our main storage
REDIS_DB = environ.get("REDIS_DB")

View File

@ -12,7 +12,7 @@ def init_keycloak():
)
client = KeycloakAdmin(
server_url=f"https://{KEYCLOAK_DOMAIN}/auth/",
server_url=f"https://{KEYCLOAK_DOMAIN}/",
realm_name=KEYCLOAK_REALM,
client_secret_key=KEYCLOAK_CLIENT_SECRET,
verify=True,

View File

@ -39,7 +39,7 @@ async def register_invite(
expired = (
dt.fromisoformat(matching_invite["time"])
+ timedelta(days=INVITE_TIME_LIMIT)
).day > dt.now().day
) < dt.now()
if expired:
message = "This invite has expired, sorry."

View File

@ -1,7 +1,7 @@
@font-face {
font-family: "Gudea";
src:
src:
url("/static/fonts/Gudea-Regular.ttf") format("ttf"),
url("/static/fonts/Gudea-Regular.woff2") format("woff2");
font-weight: 400;
@ -9,7 +9,7 @@
@font-face {
font-family: "Gudea";
src:
src:
url("/static/fonts/Gudea-Italic.ttf") format("ttf"),
url("/static/fonts/Gudea-Italic.woff2") format("woff2");
font-weight: 400;
@ -18,7 +18,7 @@
@font-face {
font-family: "Gudea";
src:
src:
url("/static/fonts/Gudea-Bold.ttf") format("ttf"),
url("/static/fonts/Gudea-Bold.woff2") format("woff2");
font-weight: 700;
@ -28,7 +28,6 @@ body {
font-family: "Gudea", "sans-serif";
color: #333;
margin: 0;
}
body {
@ -78,7 +77,6 @@ input:invalid:focus {
.logo {
margin: 60px 0 !important;
}
}
.logo {
@ -135,13 +133,13 @@ nav strong{
}
footer {
background-color: #AFAFAF !important;
background-color: #AFAFAF !important;
padding: 1rem 1.5rem !important;
}
footer .content span {
padding-right: 0.5rem;
}
}
.container {
padding-bottom: 2rem !important;
@ -159,15 +157,15 @@ footer .content span {
}
@media all and (min-width: 768px) {
#formlogo.logo{
#formlogo.logo {
width: 50%;
}
.signup-form-box {
max-width: 70%;
margin: auto;
margin-top: 4em;
}
}
@media all and (min-width: 1216px) {
@ -177,7 +175,6 @@ footer .content span {
}
}
.signup-form-box {
margin: auto;
margin-top: 4em;
@ -210,5 +207,33 @@ footer .content span {
.button {
font-family: "Gudea", "sans-serif" !important;
}
}
.app_icon:hover {
transform: rotate(-15deg);
}
.app_name {
font-weight: bold;
font-size: 18px;
margin-bottom: 0.2em;
}
.app_name:hover {
text-decoration: underline;
}
.app_description {
font-size: 14px;
}
@media all and (min-width: 768px) {
.app_description {
padding-left: 24px;
padding-right: 24px;
}
}
.tools .app_description a:link {
text-decoration: underline;
}

View File

@ -3,19 +3,74 @@
{% block content %}
{% include 'nav.html' %}
<div class="logo">
<img src="{{ url_for('static', path='svg/lumbung_space_logo.svg') }}" alt="lumbung.space logo">
<a href="https://lumbung.space">
<img src="{{ url_for('static', path='svg/lumbung_space_logo.svg') }}" alt="lumbung.space logo">
</a>
</div>
{% set site_list = ("tv","social","cloud","pen", "books", "panduan", "nongkrong") %}
{% set site_urls= ("https://tv.lumbung.space/plugins/auth-openid-connect/0.0.5/auth/openid-connect","https://social.lumbung.space","https://cloud.lumbung.space","https://pen.lumbung.space/wp-admin", "https://books.lumbung.space/link/generic", "https://panduan.lumbung.space/", "https://nongkrong.lumbung.space/") %}
<div class="columns is-multiline is-gapless is-mobile is-centered">
{% for i, u in site_list|zip(site_urls) %}
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile">
<a href="{{u}}">
<img src="{{ url_for('static', path='svg/' ~ i ~'_lumbung.svg') }}" alt="lumbung.{{i}}">
<p>{{i}}.lumbung.space</p>
</a>
</div>
{% endfor %}
<div class="columns is-multiline is-gapless is-mobile is-centered tools">
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile">
<a href="https://tv.lumbung.space/plugins/auth-openid-connect/0.1.1/auth/openid-connect">
<img class="app_icon" src="{{ url_for('static', path='svg/tv_lumbung.svg') }}" alt="lumbung.tv">
<p class="app_name">tv.lumbung.space</p>
</a>
<p class="app_description">Video archive. Watch or upload videos or start a livestream! Learn more on <a href="https://panduan.lumbung.space/doc/tvlumbungspace-hxOefAj04z">panduan.lumbung.space</a>.</p>
</div>
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile">
<a href="https://social.lumbung.space/auth/sign_in">
<img class="app_icon" src="{{ url_for('static', path='svg/social_lumbung.svg') }}" alt="lumbung.social">
<p class="app_name">social.lumbung.space</p>
</a>
<p class="app_description">Like twitter but for us! Jokes, announcements, chitchat! Learn more on <a href="https://panduan.lumbung.space/doc/sociallumbungspace-qVXmQksobB">panduan.lumbung.space</a>.</p>
</div>
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile">
<a href="https://cloud.lumbung.space">
<img class="app_icon" src="{{ url_for('static', path='svg/cloud_lumbung.svg') }}" alt="lumbung.cloud">
<p class="app_name">cloud.lumbung.space</p>
</a>
<p class="app_description">Share and organize files. Learn more on <a href="https://panduan.lumbung.space/doc/cloudlumbungspace-Pc34vr4gxv">panduan.lumbung.space</a>.</p>
</div>
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile">
<a href="https://pen.lumbung.space/wp-admin">
<img class="app_icon" src="{{ url_for('static', path='svg/pen_lumbung.svg') }}" alt="lumbung.pen">
<p class="app_name">pen.lumbung.space</p>
</a>
<p class="app_description">Write and publish longer texts. Learn more on <a href="https://panduan.lumbung.space/doc/penlumbungspace-cspRmBVvii">panduan.lumbung.space</a>.</p>
</div>
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile">
<a href="https://books.lumbung.space/link/generic">
<img class="app_icon" src="{{ url_for('static', path='svg/books_lumbung.svg') }}" alt="lumbung.books">
<p class="app_name">books.lumbung.space</p>
</a>
<p class="app_description">Archive of publications. Share, read or download PDFs and ebooks! Learn more on <a href="https://panduan.lumbung.space/doc/bookslumbungspace-dnSnVqknnz">panduan.lumbung.space</a>.</p>
</div>
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile">
<a href="https://panduan.lumbung.space/">
<img class="app_icon" src="{{ url_for('static', path='svg/panduan_lumbung.svg') }}" alt="lumbung.panduan">
<p class="app_name">panduan.lumbung.space</p>
</a>
<p class="app_description">Our collectively written knowledge base, FAQs, manuals and more! Learn more on <a href="https://panduan.lumbung.space/doc/panduanlumbungspace-KQEdwilTrs">panduan.lumbung.space</a>.</p>
</div>
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile">
<a href="https://nongkrong.lumbung.space/">
<img class="app_icon" src="{{ url_for('static', path='svg/nongkrong_lumbung.svg') }}" alt="lumbung.nongkrong">
<p class="app_name">nongkrong.lumbung.space</p>
</a>
<p class="app_description">Chatrooms, 1-1 chat, video calls. Come and nongkrong :) Learn more on <a href="https://panduan.lumbung.space/doc/nongkronglumbungspace-UxL0yw2uK2">panduan.lumbung.space</a>.</p>
</div>
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile sounds">
<a href="https://sounds.lumbung.space">
<img class="app_icon" src="{{ url_for('static', path='svg/sounds_lumbung.svg') }}" alt="lumbung.sounds">
<p class="app_name">sounds.lumbung.space</p>
</a>
<p class="app_description">Sharing music, streams, audio archiving and more. Learn more on <a href="https://panduan.lumbung.space/doc/soundslumbungspace-cRDBnjoVM4">panduan.lumbung.space</a>.</p>
</div>
</div>
</div>
{% endblock %}

View File

@ -10,12 +10,17 @@
<div class="signup-form-box">
<div class="form-header">
<div id="formlogo" class="logo">
<img src="{{ url_for('static', path='svg/lumbung_space_logo.svg') }}" alt="lumbung.space logo">
<a href="https://lumbung.space">
<img src="{{ url_for('static', path='svg/lumbung_space_logo.svg') }}" alt="lumbung.space logo">
</a>
</div>
</div>
<div class="form-body">
<p>
Hello {{user.preferred_username}}. Here are links you can send to invite others to register.
Hello {{user.preferred_username}}. On this page you can generate invite
links for your friends to join lumbung.space! The invite links can be
used by multiple people. Need more help? See <a href="https://panduan.lumbung.space/doc/memberslumbungspace-wP0a2k6Avl">panduan.lumbung.space</a>
for more.
</p>
{% if user.preferred_username in invites and invites[user.preferred_username]|length > 0 %}
<table>

View File

@ -7,6 +7,9 @@
</a>
<div id="navbar" class="navbar-menu">
<div class="navbar-end">
<div class="navbar-item">
<a href="https://lumbung.space/about/"><strong>about</strong></a>
</div>
<div class="navbar-item">
<a href="/"><strong>tools</strong></a>
</div>

View File

@ -17,10 +17,10 @@
<form method="post" action="{{ url_for('form_keycloak_register') }}">
<label for="first_name">First name:</label>
<input type="text" name="first_name" value="{{ first_name }}" minlength="3" />
<input type="text" name="first_name" value="{{ first_name }}" minlength="1" />
<label for="last_name">Last name:</label>
<input type="text" name="last_name" value="{{ last_name }}" minlength="3"/>
<input type="text" name="last_name" value="{{ last_name }}" minlength="1"/>
<label for="username">Username:</label>
<input type="text" name="username" value="{{ username }}" minlength="3"/>