Compare commits

...

4 Commits
0.1.7 ... 0.2.1

Author SHA1 Message Date
ducoterra
b9b948a8b5 fix ingress 2020-05-07 15:36:19 -04:00
ducoterra
a0e0afff1f switch to new ingress 2020-05-07 12:39:27 -04:00
ducoterra
8db4d5afed make the button red 2020-05-02 18:08:30 -04:00
ducoterra
f45e289ed8 proper mobile centering 2020-04-26 21:11:18 -04:00
12 changed files with 193 additions and 36 deletions

View File

@@ -24,6 +24,7 @@ SECRET_KEY = os.getenv("SECRET_KEY")
# SECURITY WARNING: don't run with debug turned on in production! # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True if os.getenv("DEBUG") == "True" else False DEBUG = True if os.getenv("DEBUG") == "True" else False
LOGGING_CONFIG = None
ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS", "localhost").split(",") ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS", "localhost").split(",")

View File

@@ -1,21 +1,42 @@
apiVersion: networking.k8s.io/v1beta1 apiVersion: traefik.containo.us/v1alpha1
kind: Ingress kind: IngressRoute
metadata: metadata:
name: $DEPLOY-internal-tls
annotations: annotations:
ingress.kubernetes.io/ssl-redirect: "true" kubernetes.io/ingress.class: traefik-internal
name: $DEPLOY
spec: spec:
entryPoints:
- websecure
tls: tls:
- hosts: certResolver: myresolver
- $DEPLOY.ducoterra.net domains:
secretName: letsencrypt - main: "*.ducoterra.net"
rules: routes:
- host: $DEPLOY.ducoterra.net - match: Host(`$DEPLOY.ducoterra.net`)
http: kind: Rule
paths: services:
- backend: - name: $DEPLOY
serviceName: $DEPLOY port: 8000
servicePort: 8000
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: $DEPLOY-internal-web
annotations:
kubernetes.io/ingress.class: traefik-internal
spec:
entryPoints:
- web
routes:
- match: Host(`$DEPLOY.ducoterra.net`)
kind: Rule
services:
- name: $DEPLOY
port: 8000
middlewares:
- name: httpsredirect
--- ---
@@ -23,11 +44,13 @@ apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute kind: IngressRoute
metadata: metadata:
name: $DEPLOY-external-tls name: $DEPLOY-external-tls
annotations:
kubernetes.io/ingress.class: traefik-external
spec: spec:
entryPoints: entryPoints:
- websecure - websecure
tls: tls:
secretName: letsencrypt certResolver: myresolver
routes: routes:
- match: Host(`$DEPLOY.ducoterra.net`) - match: Host(`$DEPLOY.ducoterra.net`)
kind: Rule kind: Rule
@@ -41,6 +64,8 @@ apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute kind: IngressRoute
metadata: metadata:
name: $DEPLOY-external-web name: $DEPLOY-external-web
annotations:
kubernetes.io/ingress.class: traefik-external
spec: spec:
entryPoints: entryPoints:
- web - web

View File

@@ -1,18 +1,39 @@
apiVersion: networking.k8s.io/v1beta1 apiVersion: traefik.containo.us/v1alpha1
kind: Ingress kind: IngressRoute
metadata: metadata:
name: $DEPLOY-internal-tls
annotations: annotations:
ingress.kubernetes.io/ssl-redirect: "true" kubernetes.io/ingress.class: traefik-internal
name: $DEPLOY
spec: spec:
entryPoints:
- websecure
tls: tls:
- hosts: certResolver: myresolver
- $DEPLOY.ducoterra.net domains:
secretName: letsencrypt - main: "*.ducoterra.net"
rules: routes:
- host: $DEPLOY.ducoterra.net - match: Host(`$DEPLOY.ducoterra.net`)
http: kind: Rule
paths: services:
- backend: - name: $DEPLOY
serviceName: $DEPLOY port: 8000
servicePort: 8000
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: $DEPLOY-internal-web
annotations:
kubernetes.io/ingress.class: traefik-internal
spec:
entryPoints:
- web
routes:
- match: Host(`$DEPLOY.ducoterra.net`)
kind: Rule
services:
- name: $DEPLOY
port: 8000
middlewares:
- name: httpsredirect

View File

@@ -14,7 +14,7 @@
animation-fill-mode: forwards; animation-fill-mode: forwards;
} }
.achievements-list { .achievment-column {
height: 100%; height: 100%;
overflow: auto; overflow: auto;
text-align: center; text-align: center;
@@ -24,6 +24,12 @@
font-size: 4rem; font-size: 4rem;
} }
@media only screen and (max-width: 768px) {
.achievment-column {
height: 50%;
}
}
@keyframes moveup { @keyframes moveup {
from {bottom: 0px;} from {bottom: 0px;}
to {bottom: 200px; color: white;} to {bottom: 200px; color: white;}

View File

@@ -8,7 +8,6 @@ html, body {
} }
.columns { .columns {
width: 100%;
height: 100%; height: 100%;
} }
@@ -21,6 +20,13 @@ html, body {
height: 100%; height: 100%;
} }
@media only screen and (max-width: 768px) {
.button-column {
height: 50%;
}
}
.button-container { .button-container {
position: absolute; position: absolute;
} }

View File

@@ -3,7 +3,8 @@ const button = document.getElementById("BUTTON");
const count = document.getElementById("COUNT"); const count = document.getElementById("COUNT");
const button_container = document.getElementById("button-container"); const button_container = document.getElementById("button-container");
const achievement = document.getElementById("achievement"); const achievement = document.getElementById("achievement");
const achievement_list = document.getElementById("achievement-list") const achievement_list = document.getElementById("achievement-list");
const achievement_column = document.getElementById("achievement-column");
function add_achievement(text) { function add_achievement(text) {
if (text != undefined) { if (text != undefined) {
@@ -16,7 +17,7 @@ function add_achievement(text) {
elem.innerText = text; elem.innerText = text;
achievement_list.appendChild(elem); achievement_list.appendChild(elem);
achievement_list.scrollTo(0, achievement_list.scrollHeight); achievement_column.scrollTo(0, achievement_list.scrollHeight);
} }
} }

23
ui/static/ui/smooth.css Normal file
View File

@@ -0,0 +1,23 @@
html, body, .section, .container {
height: 100%;
}
.container {
overflow-y: hidden;
}
.element::-webkit-scrollbar { width: 0 !important }
.element { overflow: -moz-scrollbars-none; }
.element { -ms-overflow-style: none; }
.hide-overflow {
overflow: hidden;
}
.h-100 {
height: 100%;
}
.w-100 {
width: 100%;
}

39
ui/static/ui/smooth.js Normal file
View File

@@ -0,0 +1,39 @@
// temp0.scrollIntoView({behavior: "smooth"});
const scroll0 = document.getElementById("scroll-0");
const scroll1 = document.getElementById("scroll-1");
const scroll2 = document.getElementById("scroll-2");
const scroll3 = document.getElementById("scroll-3");
window.addEventListener("scroll", function(event) {
window.addEventListener("mouseup", event => {
console.log("hello");
});
event.preventDefault();
document.querySelector("html").classList.add("hide-overflow");
if (scroll0.dataset.isScrolling != "true") {
scroll0.dataset.isScrolling = 'true';
if (scroll1.dataset.seen != "true") {
scroll1.dataset.seen = "true";
scroll1.scrollIntoView({behavior: "smooth"});
}
else if (scroll2.dataset.seen != "true") {
scroll2.dataset.seen = "true";
scroll2.scrollIntoView({behavior: "smooth"});
}
else if (scroll3.dataset.seen != "true") {
scroll3.dataset.seen = "true";
scroll3.scrollIntoView({behavior: "smooth"});
}
else {
scroll1.dataset.seen = "false";
scroll2.dataset.seen = "false";
scroll3.dataset.seen = "false";
scroll0.scrollIntoView({behavior: "smooth"});
}
setTimeout(() => {
scroll0.dataset.isScrolling = false;
document.querySelector("html").classList.remove("hide-overflow");
}, 1000)
}
});

View File

@@ -22,7 +22,7 @@
<h1 class="title"> <h1 class="title">
The Button The Button
</h1> </h1>
<button class="button is-primary" id="BUTTON">Press</button> <button class="button is-danger" id="BUTTON">Press</button>
</div> </div>
<div><br></div> <div><br></div>
<div> <div>
@@ -34,7 +34,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="column achievment-column"> <div class="column achievment-column" id = "achievement-column">
<div class="achievements-list" id="achievement-list"> <div class="achievements-list" id="achievement-list">
<h1 class="title">Achievements</h1> <h1 class="title">Achievements</h1>
{% for key,value in achievement.items %} {% for key,value in achievement.items %}

View File

@@ -0,0 +1,31 @@
{% extends 'ui/base.html' %}
{% load static %}
{% block css %}
<link rel="stylesheet" href="{% static 'ui/smooth.css' %}">
{% endblock %}
{% block js %}
<script src="{% static 'ui/smooth.js' %}"></script>
{% endblock %}
{% block body %}
<div class="container">
<div id="scroll-0" class="h-100 w-100">
<h1 class="title">Hello There</h1>
</div>
<div id="scroll-1" class="h-100 w-100">
<h1 class="title">I'm an Apple Ad</h1>
</div>
<div id="scroll-2" class="h-100 w-100">
<h1 class="title">See me scroll</h1>
</div>
<div id="scroll-3" class="h-100 w-100">
<h1 class="title">You owe me $3,000 dollars for this</h1>
</div>
</div>
{% endblock %}

View File

@@ -3,4 +3,5 @@ from . import views
urlpatterns = [ urlpatterns = [
path('button/', views.button, name = 'button'), path('button/', views.button, name = 'button'),
path('smooth/', views.smooth, name = 'smooth'),
] ]

View File

@@ -73,4 +73,7 @@ def button(request):
response = {PRESSED: pressed} response = {PRESSED: pressed}
achieved = {k:v for k,v in achievements.items() if k <= pressed} achieved = {k:v for k,v in achievements.items() if k <= pressed}
response.update({ACHIEVE: achieved}) response.update({ACHIEVE: achieved})
return render(request, "ui/button.html", response) return render(request, "ui/button.html", response)
def smooth(request):
return render(request, "ui/smooth.html")