Compare commits

..

1 Commits

Author SHA1 Message Date
rra dfce751860 quick sketch of descriptions and interactions for app list 2022-01-21 14:39:44 +01:00
8 changed files with 36 additions and 106 deletions

View File

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

View File

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

View File

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

View File

@ -1,7 +1,7 @@
@font-face { @font-face {
font-family: "Gudea"; font-family: "Gudea";
src: src:
url("/static/fonts/Gudea-Regular.ttf") format("ttf"), url("/static/fonts/Gudea-Regular.ttf") format("ttf"),
url("/static/fonts/Gudea-Regular.woff2") format("woff2"); url("/static/fonts/Gudea-Regular.woff2") format("woff2");
font-weight: 400; font-weight: 400;
@ -9,7 +9,7 @@
@font-face { @font-face {
font-family: "Gudea"; font-family: "Gudea";
src: src:
url("/static/fonts/Gudea-Italic.ttf") format("ttf"), url("/static/fonts/Gudea-Italic.ttf") format("ttf"),
url("/static/fonts/Gudea-Italic.woff2") format("woff2"); url("/static/fonts/Gudea-Italic.woff2") format("woff2");
font-weight: 400; font-weight: 400;
@ -18,7 +18,7 @@
@font-face { @font-face {
font-family: "Gudea"; font-family: "Gudea";
src: src:
url("/static/fonts/Gudea-Bold.ttf") format("ttf"), url("/static/fonts/Gudea-Bold.ttf") format("ttf"),
url("/static/fonts/Gudea-Bold.woff2") format("woff2"); url("/static/fonts/Gudea-Bold.woff2") format("woff2");
font-weight: 700; font-weight: 700;
@ -28,6 +28,7 @@ body {
font-family: "Gudea", "sans-serif"; font-family: "Gudea", "sans-serif";
color: #333; color: #333;
margin: 0; margin: 0;
} }
body { body {
@ -77,6 +78,7 @@ input:invalid:focus {
.logo { .logo {
margin: 60px 0 !important; margin: 60px 0 !important;
} }
} }
.logo { .logo {
@ -133,13 +135,13 @@ nav strong{
} }
footer { footer {
background-color: #AFAFAF !important; background-color: #AFAFAF !important;
padding: 1rem 1.5rem !important; padding: 1rem 1.5rem !important;
} }
footer .content span { footer .content span {
padding-right: 0.5rem; padding-right: 0.5rem;
} }
.container { .container {
padding-bottom: 2rem !important; padding-bottom: 2rem !important;
@ -157,15 +159,15 @@ footer .content span {
} }
@media all and (min-width: 768px) { @media all and (min-width: 768px) {
#formlogo.logo { #formlogo.logo{
width: 50%; width: 50%;
} }
.signup-form-box { .signup-form-box {
max-width: 70%; max-width: 70%;
margin: auto; margin: auto;
margin-top: 4em; margin-top: 4em;
} }
} }
@media all and (min-width: 1216px) { @media all and (min-width: 1216px) {
@ -175,6 +177,7 @@ footer .content span {
} }
} }
.signup-form-box { .signup-form-box {
margin: auto; margin: auto;
margin-top: 4em; margin-top: 4em;
@ -207,33 +210,21 @@ footer .content span {
.button { .button {
font-family: "Gudea", "sans-serif" !important; font-family: "Gudea", "sans-serif" !important;
} }
.app_icon:hover { .app_icon:hover {
transform: rotate(-15deg); transform: rotate(-15deg);
} }
.app_name { .app_name{
font-weight: bold; font-weight: bold;
font-size: 18px; font-size: 18px;
margin-bottom: 0.2em; margin-bottom: 0.2em;
} }
.app_name:hover{
.app_name:hover {
text-decoration: underline; text-decoration: underline;
} }
.app_description{
.app_description {
font-size: 14px; 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,74 +3,21 @@
{% block content %} {% block content %}
{% include 'nav.html' %} {% include 'nav.html' %}
<div class="logo"> <div class="logo">
<a href="https://lumbung.space"> <img src="{{ url_for('static', path='svg/lumbung_space_logo.svg') }}" alt="lumbung.space logo">
<img src="{{ url_for('static', path='svg/lumbung_space_logo.svg') }}" alt="lumbung.space logo">
</a>
</div> </div>
<div class="columns is-multiline is-gapless is-mobile is-centered tools"> {% set site_list = ("tv","social","cloud","pen", "books", "panduan", "nongkrong") %}
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile"> {% 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/") %}
<a href="https://tv.lumbung.space/plugins/auth-openid-connect/0.1.1/auth/openid-connect"> {% set site_descriptions= ("Video archive. Watch or upload videos or start a livestream!","Like twitter but for us! Jokes, announcements, chitchat!","Share and organize files.","Write and publish longer texts.", "Archive of publications. Share, read or download PDFs and ebooks!", "Our collectively written knowledge base, FAQs, manuals and more!", "Chatrooms, 1-1 chat, video calls. Come and nongkrong :)") %}
<img class="app_icon" src="{{ url_for('static', path='svg/tv_lumbung.svg') }}" alt="lumbung.tv"> <div class="columns is-multiline is-gapless is-mobile is-centered">
<p class="app_name">tv.lumbung.space</p> {% for i, u, d in site_list|zip(site_urls)|zip(site_descriptions) %}
</a> <div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile">
<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> <a href="{{u}}">
</div> <img class="app_icon" src="{{ url_for('static', path='svg/' ~ i ~'_lumbung.svg') }}" alt="lumbung.{{i}}">
<p class="app_name">{{i}}.lumbung.space</p>
<div class="column site is-one-third-tablet is-one-quarter-desktop is-one-half-mobile"> </a>
<a href="https://social.lumbung.space/auth/sign_in"> <p class="app_description">{{d}}</p>
<img class="app_icon" src="{{ url_for('static', path='svg/social_lumbung.svg') }}" alt="lumbung.social"> </div>
<p class="app_name">social.lumbung.space</p> {% endfor %}
</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>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -10,17 +10,12 @@
<div class="signup-form-box"> <div class="signup-form-box">
<div class="form-header"> <div class="form-header">
<div id="formlogo" class="logo"> <div id="formlogo" class="logo">
<a href="https://lumbung.space"> <img src="{{ url_for('static', path='svg/lumbung_space_logo.svg') }}" alt="lumbung.space logo">
<img src="{{ url_for('static', path='svg/lumbung_space_logo.svg') }}" alt="lumbung.space logo">
</a>
</div> </div>
</div> </div>
<div class="form-body"> <div class="form-body">
<p> <p>
Hello {{user.preferred_username}}. On this page you can generate invite Hello {{user.preferred_username}}. Here are links you can send to invite others to register.
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> </p>
{% if user.preferred_username in invites and invites[user.preferred_username]|length > 0 %} {% if user.preferred_username in invites and invites[user.preferred_username]|length > 0 %}
<table> <table>

View File

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

View File

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