@ -0,0 +1,21 @@ | |||
The MIT License (MIT) | |||
Copyright (c) 2013-2017 Cole Bemis | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
of this software and associated documentation files (the "Software"), to deal | |||
in the Software without restriction, including without limitation the rights | |||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
copies of the Software, and to permit persons to whom the Software is | |||
furnished to do so, subject to the following conditions: | |||
The above copyright notice and this permission notice shall be included in all | |||
copies or substantial portions of the Software. | |||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
SOFTWARE. |
@ -0,0 +1,15 @@ | |||
ISC License | |||
Copyright (c) 2020, Lucide Contributors | |||
Permission to use, copy, modify, and/or distribute this software for any | |||
purpose with or without fee is hereby granted, provided that the above | |||
copyright notice and this permission notice appear in all copies. | |||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
@ -0,0 +1,7 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> | |||
<line x1="6" y1="11" x2="10" y2="11"></line> | |||
<line x1="8" y1="9" x2="8" y2="13"></line> | |||
<line x1="15" y1="12" x2="15.01" y2="12"></line> | |||
<line x1="18" y1="10" x2="18.01" y2="10"></line> | |||
<path d="M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z"></path> | |||
</svg> |
@ -0,0 +1,12 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg"> | |||
<defs> | |||
<symbol id="snowflake" viewBox="0 0 24 24"> | |||
<line x1="2" y1="12" x2="22" y2="12"></line> | |||
<line x1="12" y1="2" x2="12" y2="22"></line> | |||
<path d="M20 16l-4-4 4-4"></path> | |||
<path d="M4 8l4 4-4 4"></path> | |||
<path d="M16 4l-4 4-4-4"></path> | |||
<path d="M8 20l4-4 4 4"></path> | |||
</symbol> | |||
</defs> | |||
</svg> |
@ -0,0 +1,55 @@ | |||
<nav class="navbar navbar-expand-lg sticky-top navbar-dark bg-dark"> | |||
<div class="navbar-brand d-none d-md-block">Technical Incompetence</div> | |||
<ul class="navbar-expand navbar-nav"> | |||
{% if request.path == url_for('index') %} | |||
<li class="nav-item active"> | |||
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> | |||
{% else %} | |||
<li class="nav-item"> | |||
<a class="nav-link" href="{{ url_for('index') }}">Home</a> | |||
{% endif %} | |||
</li> | |||
{% if request.path == url_for('game') %} | |||
<li class="nav-item active"> | |||
<a class="nav-link" href="#">Games <span class="sr-only">(current)</span></a> | |||
{% else %} | |||
<li class="nav-item"> | |||
<a class="nav-link" href="{{ url_for('game') }}">Games</a> | |||
{% endif %} | |||
</li> | |||
</ul> | |||
<form class="form-inline ml-auto"> | |||
<a onclick="showApps();" style="cursor: pointer;"> | |||
<svg | |||
width="24" | |||
height="24" | |||
fill="none" | |||
stroke="currentColor" | |||
stroke-width="2" | |||
stroke-linecap="round" | |||
stroke-linejoin="round" | |||
style="vertical-align: middle;"> | |||
<use xlink:href="{{url_for('.static', filename='icons/feathericons/feather-sprite.svg')}}#grid"/> | |||
</svg> | |||
</a> | |||
{% if account_url is defined and account_url != '' %} | |||
{% if current_user.is_authenticated %} | |||
<a href="{{ account_url }}" style="color: white;"> | |||
<svg | |||
width="24" | |||
height="24" | |||
fill="none" | |||
stroke="currentColor" | |||
stroke-width="2" | |||
stroke-linecap="round" | |||
stroke-linejoin="round" | |||
style="vertical-align: middle; margin-left: 1rem;"> | |||
<use xlink:href="{{url_for('.static', filename='icons/feathericons/feather-sprite.svg')}}#user"/> | |||
</svg> | |||
</a> | |||
{% else %} | |||
<a class="btn btn-sm btn-primary" style="margin-left: 1rem;" href="{{ account_url }}" role="button">Sign In</a> | |||
{% endif %} | |||
{% endif %} | |||
</form> | |||
</nav> |
@ -0,0 +1,67 @@ | |||
{% extends "bootstrap/base.html" %} | |||
{% block title %}Technical Incompetence - Home{% endblock %} | |||
{% block styles %} | |||
{{super()}} | |||
{# <link rel="icon" type="image/png" href="{{url_for('.static', filename='favicon.png')}}" /> #} | |||
<link rel="stylesheet" href="{{url_for('.static', filename='style.css')}}"> | |||
{% if countdown is defined %} | |||
<link rel="stylesheet" href="{{url_for('.static', filename='clock.css')}}"> | |||
{% endif %} | |||
<style> | |||
html { | |||
scrollbar-width: none; | |||
} | |||
</style> | |||
{% endblock %} | |||
{% block content %} | |||
<div class="container" style="margin-top: 15px"> | |||
<h5>Apps</h5> | |||
<div class="row" style="margin-left: auto; margin-right: auto;"> | |||
{% for app in apps %} | |||
<div class="col-xs-4" style="width: 90px;"> | |||
<div class="card" onclick="goToLink('{{ app['link'] }}');" style="background-color: rgba(0,0,0,0); border: none;"> | |||
<div class="card-body" style="padding: .5rem; text-align: center;"> | |||
{% if app['image'] is defined %} | |||
<img src="{{url_for('.static', filename='images/' )}}{{ app['image'] }}" class="card-img" style="width: 64px !important; padding-bottom: 5px;"> | |||
{% endif %} | |||
<p class="card-title" style="font-size: .75rem">{{ app['name'] }}</p> | |||
</div> | |||
</div> | |||
</div> | |||
{% endfor %} | |||
</div> | |||
<h5>Games</h5> | |||
<div class="row" style="margin-left: auto; margin-right: auto;"> | |||
{% for app in games %} | |||
<div class="col-xs-4" style="width: 90px;"> | |||
<div class="card" onclick="goToLink('{{ app['link'] }}');" style="background-color: rgba(0,0,0,0); border: none;"> | |||
<div class="card-body" style="padding: .5rem; text-align: center;"> | |||
{% if app['image'] is defined %} | |||
<img src="{{url_for('.static', filename='images/' )}}{{ app['image'] }}" class="card-img" style="width: 64px !important; padding-bottom: 5px;"> | |||
{% endif %} | |||
<p class="card-title" style="font-size: .75rem">{{ app['name'] }}</p> | |||
</div> | |||
</div> | |||
</div> | |||
{% endfor %} | |||
</div> | |||
</div> | |||
{% endblock %} | |||
{% block scripts %} | |||
{{ super () }} | |||
<script> | |||
$( ".card" ).hover( | |||
function() { | |||
$(this).css('cursor', 'pointer'); | |||
}, function() { | |||
}); | |||
function goToLink(link) { | |||
window.top.location = link; | |||
} | |||
</script> | |||
{% endblock %} |