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!
DEBUG = True if os.getenv("DEBUG") == "True" else False
LOGGING_CONFIG = None
ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS", "localhost").split(",")

View File

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

View File

@@ -1,18 +1,39 @@
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: $DEPLOY-internal-tls
annotations:
ingress.kubernetes.io/ssl-redirect: "true"
name: $DEPLOY
kubernetes.io/ingress.class: traefik-internal
spec:
entryPoints:
- websecure
tls:
- hosts:
- $DEPLOY.ducoterra.net
secretName: letsencrypt
rules:
- host: $DEPLOY.ducoterra.net
http:
paths:
- backend:
serviceName: $DEPLOY
servicePort: 8000
certResolver: myresolver
domains:
- main: "*.ducoterra.net"
routes:
- match: Host(`$DEPLOY.ducoterra.net`)
kind: Rule
services:
- name: $DEPLOY
port: 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;
}
.achievements-list {
.achievment-column {
height: 100%;
overflow: auto;
text-align: center;
@@ -24,6 +24,12 @@
font-size: 4rem;
}
@media only screen and (max-width: 768px) {
.achievment-column {
height: 50%;
}
}
@keyframes moveup {
from {bottom: 0px;}
to {bottom: 200px; color: white;}

View File

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

View File

@@ -3,7 +3,8 @@ const button = document.getElementById("BUTTON");
const count = document.getElementById("COUNT");
const button_container = document.getElementById("button-container");
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) {
if (text != undefined) {
@@ -16,7 +17,7 @@ function add_achievement(text) {
elem.innerText = text;
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">
The Button
</h1>
<button class="button is-primary" id="BUTTON">Press</button>
<button class="button is-danger" id="BUTTON">Press</button>
</div>
<div><br></div>
<div>
@@ -34,7 +34,7 @@
</div>
</div>
</div>
<div class="column achievment-column">
<div class="column achievment-column" id = "achievement-column">
<div class="achievements-list" id="achievement-list">
<h1 class="title">Achievements</h1>
{% 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 = [
path('button/', views.button, name = 'button'),
path('smooth/', views.smooth, name = 'smooth'),
]

View File

@@ -73,4 +73,7 @@ def button(request):
response = {PRESSED: pressed}
achieved = {k:v for k,v in achievements.items() if k <= pressed}
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")