Compare commits
28 Commits
frontend-r
...
main
Author | SHA1 | Date | |
---|---|---|---|
![]() |
fe7d2101e2 | ||
![]() |
d36405c0a8 | ||
![]() |
8d928873a6 | ||
![]() |
0ed9c2daed | ||
![]() |
39700082e1 | ||
![]() |
53c35377c6 | ||
![]() |
2e4f3efe7d | ||
![]() |
a6241563c7 | ||
![]() |
88d8de76ec | ||
![]() |
a1e8c902e2 | ||
![]() |
4a279e0161 | ||
![]() |
31f5eaa66b | ||
![]() |
bfbf4fe5f7 | ||
![]() |
bb221f7ee0 | ||
![]() |
46256d328e | ||
![]() |
9c4b37d775 | ||
![]() |
5cf410c03e | ||
![]() |
6170cf9d05 | ||
![]() |
4a1ab4bed5 | ||
![]() |
2687233eda | ||
![]() |
cbe88e2ec6 | ||
![]() |
ce7bfa15a4 | ||
![]() |
31479d2fc5 | ||
![]() |
54635a9f53 | ||
![]() |
c6cdff7e74 | ||
![]() |
e48ebb4a31 | ||
![]() |
a3587a27b8 | ||
![]() |
7dbab97c06 |
5
.editorconfig
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*.{js,css}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
5
.gitignore
vendored
@ -1 +1,6 @@
|
|||||||
__django
|
__django
|
||||||
|
reValuate/db.sqlite3
|
||||||
|
*.sqlite3
|
||||||
|
*/media/*
|
||||||
|
*.pyc
|
||||||
|
*.sqlite3
|
||||||
|
18
README.md
@ -1,16 +1,14 @@
|
|||||||
# CurrencySite
|
# reValuate
|
||||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
||||||
[](#contributors-)
|
|
||||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
||||||
School project for helping people consider throwing their trash out in the right bins, in order to help out with recycling.
|
|
||||||
|
|
||||||
|
[](#contributors-) [](https://revaluate.eduteh.eu) [](https://discord.gg/eX5wmJuMVp)
|
||||||
|
|
||||||
|
|
||||||
|
School project for helping people consider throwing their trash out in the right bins, in order to help out with recycling.
|
||||||
|
Check out my blog post over [here](https://yamozha.xyz/revaluate/)
|
||||||
## Contributors ✨
|
## Contributors ✨
|
||||||
|
|
||||||
Thanks goes to these wonderful people :
|
Thanks goes to these wonderful people :
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
||||||
<!-- prettier-ignore-start -->
|
|
||||||
<!-- markdownlint-disable -->
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
✨
|
✨
|
||||||
@ -22,9 +20,5 @@ Thanks goes to these wonderful people :
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<!-- markdownlint-restore -->
|
|
||||||
<!-- prettier-ignore-end -->
|
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,8 +6,15 @@ from users.models import Balance
|
|||||||
from upload.models import Media
|
from upload.models import Media
|
||||||
from .serializers import BalanceSerializer, ImageSerializer
|
from .serializers import BalanceSerializer, ImageSerializer
|
||||||
|
|
||||||
|
class AllBalance(viewsets.ModelViewSet):
|
||||||
|
serializer_class = BalanceSerializer
|
||||||
|
http_method_names = ['get']
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Balance.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class BalanceView(viewsets.ModelViewSet):
|
class BalanceView(viewsets.ModelViewSet):
|
||||||
permission_classes = [permissions.IsAuthenticated]
|
|
||||||
serializer_class = BalanceSerializer
|
serializer_class = BalanceSerializer
|
||||||
http_method_names = ['get']
|
http_method_names = ['get']
|
||||||
|
|
||||||
@ -16,7 +23,6 @@ class BalanceView(viewsets.ModelViewSet):
|
|||||||
|
|
||||||
|
|
||||||
class ImageView(viewsets.ModelViewSet):
|
class ImageView(viewsets.ModelViewSet):
|
||||||
permission_classes = [permissions.IsAuthenticated]
|
|
||||||
serializer_class = ImageSerializer
|
serializer_class = ImageSerializer
|
||||||
http_method_names = ['get','post']
|
http_method_names = ['get','post']
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
232
|
|
127
reValuate/home/static/home/css/gallery.css
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
.popup {
|
||||||
|
width: 900px;
|
||||||
|
margin: auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup img {
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show {
|
||||||
|
z-index: 999;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show .overlay {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0,0,0,.66);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show .img-show {
|
||||||
|
width: 600px;
|
||||||
|
height: 400px;
|
||||||
|
background: #FFF;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-show span {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
right: 10px;
|
||||||
|
z-index: 99;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-show img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: Raleway;
|
||||||
|
background-color: #202125;
|
||||||
|
}
|
||||||
|
|
||||||
|
.heading {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 2.0em;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
padding: 40px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-image {
|
||||||
|
padding: 20px;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-image img {
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
transform: scale(1.0);
|
||||||
|
transition: transform 0.4s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box {
|
||||||
|
box-sizing: content-box;
|
||||||
|
margin: 10px;
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
|
color: white;
|
||||||
|
position: relative;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.caption {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 5px;
|
||||||
|
left: 20px;
|
||||||
|
opacity: 0.0;
|
||||||
|
transition: transform 0.3s ease, opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.transparent-box {
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box:hover img { transform: scale(1.1); }
|
||||||
|
.img-box:hover .transparent-box { background-color: rgba(0, 0, 0, 0.5); }
|
||||||
|
|
||||||
|
.img-box:hover .caption {
|
||||||
|
transform: translateY(-20px);
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box:hover { cursor: pointer; }
|
||||||
|
.caption > p:nth-child(2) { font-size: 0.8em; }
|
||||||
|
.opacity-low { opacity: 0.5; }
|
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.6 KiB |
@ -1,22 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000px" height="1000px" viewBox="0 0 1000 1000" zoomAndPan="disable">
|
|
||||||
<style type="text/css"><![CDATA[
|
|
||||||
.p-4 { fill: rgba(255,255,255,0.16); }
|
|
||||||
.p-3 { fill: rgba(255,255,255,0.12); }
|
|
||||||
.p-2 { fill: rgba(255,255,255,0.08); }
|
|
||||||
.p-1 { fill: rgba(255,255,255,0.04); }
|
|
||||||
.p0 { fill: none; }
|
|
||||||
.p1 { fill: rgba(0,0,0,0.025); }
|
|
||||||
.p2 { fill: rgba(0,0,0,0.05); }
|
|
||||||
.p3 { fill: rgba(0,0,0,0.075); }
|
|
||||||
.p4 { fill: rgba(0,0,0,0.1); }
|
|
||||||
]]></style>
|
|
||||||
<polygon class="p-4" points="-1125,0 -375,1000 125,1000 -875,0" />
|
|
||||||
<polygon class="p-3" points="-875,0 125,1000 375,1000 -625,0" />
|
|
||||||
<polygon class="p-2" points="-625,0 375,1000 625,1000 -375,0" />
|
|
||||||
<polygon class="p-1" points="-375,0 625,1000 875,1000 -125,0" />
|
|
||||||
<polygon class="p0" points="-125,0 875,1000 1125,1000 125,0" />
|
|
||||||
<polygon class="p1" points="125,0 1125,1000 1375,1000 375,0" />
|
|
||||||
<polygon class="p2" points="375,0 1375,1000 1625,1000 625,0" />
|
|
||||||
<polygon class="p3" points="625,0 1625,1000 1875,1000 875,0" />
|
|
||||||
<polygon class="p4" points="875,0 1875,1000 2125,1000 1125,0" />
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1,22 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000px" height="1000px" viewBox="0 0 1000 1000" zoomAndPan="disable">
|
|
||||||
<style type="text/css"><![CDATA[
|
|
||||||
.p-4 { fill: rgba(255,255,255,0.16); }
|
|
||||||
.p-3 { fill: rgba(255,255,255,0.12); }
|
|
||||||
.p-2 { fill: rgba(255,255,255,0.08); }
|
|
||||||
.p-1 { fill: rgba(255,255,255,0.04); }
|
|
||||||
.p0 { fill: none; }
|
|
||||||
.p1 { fill: rgba(0,0,0,0.025); }
|
|
||||||
.p2 { fill: rgba(0,0,0,0.05); }
|
|
||||||
.p3 { fill: rgba(0,0,0,0.075); }
|
|
||||||
.p4 { fill: rgba(0,0,0,0.1); }
|
|
||||||
]]></style>
|
|
||||||
<polygon class="p4" points="-1125,0 -375,1000 125,1000 -875,0" />
|
|
||||||
<polygon class="p3" points="-875,0 125,1000 375,1000 -625,0" />
|
|
||||||
<polygon class="p2" points="-625,0 375,1000 625,1000 -375,0" />
|
|
||||||
<polygon class="p1" points="-375,0 625,1000 875,1000 -125,0" />
|
|
||||||
<polygon class="p0" points="-125,0 875,1000 1125,1000 125,0" />
|
|
||||||
<polygon class="p-1" points="125,0 1125,1000 1375,1000 375,0" />
|
|
||||||
<polygon class="p-2" points="375,0 1375,1000 1625,1000 625,0" />
|
|
||||||
<polygon class="p-3" points="625,0 1625,1000 1875,1000 875,0" />
|
|
||||||
<polygon class="p-4" points="875,0 1875,1000 2125,1000 1125,0" />
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
Photon by HTML5 UP
|
|
||||||
html5up.net | @ajlkn
|
|
||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Header */
|
|
||||||
|
|
||||||
body.is-preload #header .inner {
|
|
||||||
-moz-transform: none;
|
|
||||||
-webkit-transform: none;
|
|
||||||
-ms-transform: none;
|
|
||||||
transform: none;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.is-preload #header .inner .actions {
|
|
||||||
-moz-transform: none;
|
|
||||||
-webkit-transform: none;
|
|
||||||
-ms-transform: none;
|
|
||||||
transform: none;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.is-preload #header:after {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
@ -1,127 +1,323 @@
|
|||||||
@import url(https://fonts.googleapis.com/css?family=Roboto:300);
|
* {
|
||||||
|
|
||||||
:root {
|
|
||||||
--base-grid: 8px;
|
|
||||||
--colour-white: #fff;
|
|
||||||
--colour-black: #1a1a1a;
|
|
||||||
}
|
|
||||||
|
|
||||||
@viewport {
|
|
||||||
width: device-width ;
|
|
||||||
zoom: 1.0 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
*,
|
|
||||||
:after,
|
|
||||||
:before {
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
background-position: 100%;
|
scroll-behavior: smooth;
|
||||||
}
|
}
|
||||||
|
|
||||||
.centered {
|
#page-wrap {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 50px auto;
|
||||||
|
padding: 20px;
|
||||||
|
background: white;
|
||||||
|
-moz-box-shadow: 0 0 20px #469330;
|
||||||
|
-webkit-box-shadow: 0 0 20px #469330;
|
||||||
|
box-shadow: 0 0 20px #469330;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 25px;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 30px 10%;
|
||||||
|
background-color: #469330;
|
||||||
|
position: sticky;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links a,
|
||||||
|
.cta,
|
||||||
|
.overlay__content a {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size:30px;
|
||||||
|
color: #edf0f1;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links {
|
||||||
|
list-style: none;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li {
|
||||||
|
padding: 0px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li a {
|
||||||
|
transition: color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li a:hover {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta {
|
||||||
|
padding: 9px 25px;
|
||||||
|
color: #469330;
|
||||||
|
background-color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 50px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta:hover {
|
||||||
|
color: white;
|
||||||
|
background-color: darkgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile Nav */
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay {
|
||||||
|
height: 100%;
|
||||||
|
width: 0;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 99;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
background-color: #469330;
|
||||||
|
overflow-x: hidden;
|
||||||
|
transition: width 0.5s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay--active {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay__content {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay a {
|
||||||
|
padding: 15px;
|
||||||
|
font-size: 36px;
|
||||||
|
display: block;
|
||||||
|
transition: color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay a:hover,
|
||||||
|
.overlay a:focus {
|
||||||
|
color: darkgreen;
|
||||||
|
}
|
||||||
|
.overlay .close {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
top: 20px;
|
||||||
margin-right: -50%;
|
right: 45px;
|
||||||
transform: translate(-50%, -50%);
|
font-size: 60px;
|
||||||
top: 50%;
|
color: #edf0f1;
|
||||||
}
|
|
||||||
.dropdown-item{
|
|
||||||
font-size:100%
|
|
||||||
}
|
|
||||||
body{
|
|
||||||
font-size: 1.2em;
|
|
||||||
font-family: 'Roboto', sans-serif;
|
|
||||||
line-height: 1.4;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.navview{
|
@media screen and (max-height: 450px) {
|
||||||
width:100%;
|
.overlay a {
|
||||||
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
#active {
|
.overlay .close {
|
||||||
background-color: #4CAF50;
|
font-size: 40px;
|
||||||
}
|
top: 15px;
|
||||||
|
right: 35px;
|
||||||
.nav-link {
|
|
||||||
color: white;
|
|
||||||
font-size: 30px;
|
|
||||||
transition: 0.6s;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.inverted {
|
|
||||||
color: black;
|
|
||||||
font-size: 30px;
|
|
||||||
transition: 0.6s;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.inverted:hover {
|
|
||||||
color: green;
|
|
||||||
}
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
.animate {
|
|
||||||
animation-duration: 0.3s;
|
|
||||||
-webkit-animation-duration: 0.3s;
|
|
||||||
animation-fill-mode: both;
|
|
||||||
-webkit-animation-fill-mode: both;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes slideIn {
|
@media only screen and (max-width: 1024px) {
|
||||||
|
.nav__links,
|
||||||
|
.cta {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.menu {
|
||||||
|
display: initial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
html{
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
|
||||||
|
margin: 0 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1.heading{
|
||||||
|
color: white;
|
||||||
|
font-size: 50px;
|
||||||
|
text-shadow: -1px 0 black, 0 2px black, 2px 0 black, 0 -1px black;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.emoji{
|
||||||
|
list-style-type: "♻️";
|
||||||
|
}
|
||||||
|
|
||||||
|
.question{
|
||||||
|
color: gray;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.nothing{
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.footer{
|
||||||
|
/* background:radial-gradient(circle, rgba(0,159,12,1) 0%, rgba(8,96,0,1) 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent; */
|
||||||
|
color: lightgreen;
|
||||||
|
}
|
||||||
|
footer{
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
left:50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.centered{
|
||||||
|
display:flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes text-shadow-pop-right {
|
||||||
|
0% {
|
||||||
|
text-shadow: 0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555;
|
||||||
|
-webkit-transform: translateX(0);
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
text-shadow: 1px 0 #555,2px 0 #555,3px 0 #555,4px 0 #555,5px 0 #555,6px 0 #555,7px 0 #555,8px 0 #555;
|
||||||
|
-webkit-transform: translateX(-8px);
|
||||||
|
transform: translateX(-8px)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes text-shadow-pop-right {
|
||||||
|
0% {
|
||||||
|
text-shadow: 0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555;
|
||||||
|
-webkit-transform: translateX(0);
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
text-shadow: 1px 0 #555,2px 0 #555,3px 0 #555,4px 0 #555,5px 0 #555,6px 0 #555,7px 0 #555,8px 0 #555;
|
||||||
|
-webkit-transform: translateX(-8px);
|
||||||
|
transform: translateX(-8px)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-shadow-pop-right{-webkit-animation:text-shadow-pop-right .6s both;animation:text-shadow-pop-right .6s both}
|
||||||
|
|
||||||
|
@-webkit-keyframes scale-in-center {
|
||||||
0% {
|
0% {
|
||||||
transform: translateY(1rem);
|
-webkit-transform: scale(0);
|
||||||
opacity: 0;
|
transform: scale(0);
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform:translateY(0rem);
|
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
0% {
|
100% {
|
||||||
transform: translateY(1rem);
|
-webkit-transform: scale(1);
|
||||||
opacity: 0;
|
transform: scale(1);
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@keyframes scale-in-center {
|
||||||
@-webkit-keyframes slideIn {
|
|
||||||
0% {
|
0% {
|
||||||
-webkit-transform: transform;
|
-webkit-transform: scale(0);
|
||||||
-webkit-opacity: 0;
|
transform: scale(0);
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
-webkit-transform: translateY(0);
|
-webkit-transform: scale(1);
|
||||||
-webkit-opacity: 1;
|
transform: scale(1);
|
||||||
}
|
opacity: 1;
|
||||||
0% {
|
|
||||||
-webkit-transform: translateY(1rem);
|
|
||||||
-webkit-opacity: 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.slideIn {
|
.scale-in-center {
|
||||||
-webkit-animation-name: slideIn;
|
-webkit-animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
animation-name: slideIn;
|
animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Buttons {
|
.buttons{
|
||||||
background-color: #ddd;
|
background-color: #469330;
|
||||||
border: none;
|
border: none;
|
||||||
color: black;
|
color: white;
|
||||||
padding: 16px 32px;
|
padding: 15px 32px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
margin: 4px 2px;
|
margin: 4px 2px;
|
||||||
transition: 0.3s;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.Buttons:hover {
|
|
||||||
background-color: #28a745;
|
@-webkit-keyframes tracking-in-expand {
|
||||||
color: white;
|
0% {
|
||||||
|
letter-spacing: -0.5em;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes tracking-in-expand {
|
||||||
|
0% {
|
||||||
|
letter-spacing: -0.5em;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tracking-in-expand {
|
||||||
|
-webkit-animation: tracking-in-expand 0.7s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||||
|
animation: tracking-in-expand 0.7s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||||
|
animation-delay: .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes fade-in-bck {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translateZ(80px);
|
||||||
|
transform: translateZ(80px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translateZ(0);
|
||||||
|
transform: translateZ(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-in-bck {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translateZ(80px);
|
||||||
|
transform: translateZ(80px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translateZ(0);
|
||||||
|
transform: translateZ(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-in-bck {
|
||||||
|
-webkit-animation: fade-in-bck 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
|
||||||
|
animation: fade-in-bck 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
|
||||||
}
|
}
|
@ -1,30 +0,0 @@
|
|||||||
@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
|
|
||||||
|
|
||||||
.fancyButton {
|
|
||||||
border: auto solid green;
|
|
||||||
background-color: transparent;
|
|
||||||
padding: 38% 35%;
|
|
||||||
text-align: center;
|
|
||||||
border-radius: 2%;
|
|
||||||
transition-duration: 0.4s;
|
|
||||||
color: rgb(0, 0, 0);
|
|
||||||
outline: none;
|
|
||||||
font-family: 'Roboto', sans-serif !important;
|
|
||||||
font-size: 30px;
|
|
||||||
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
|
|
||||||
}
|
|
||||||
|
|
||||||
.fancyButton:hover {
|
|
||||||
background-image: url("images/header.png"), linear-gradient( 292.6deg, rgba(255,255,255,1) -44.1%, rgba(40,167,69,1) 100.5% );
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
margin: auto;
|
|
||||||
width: auto;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 242 KiB |
Before Width: | Height: | Size: 280 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 747 KiB |
@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 359.29 332.18"><defs><style>.cls-1{fill:#b2b2b2;}.cls-2{fill:#fff;}</style></defs><title>asset bobkata</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M90.63,180.08c6.41,84.48,87.6,77.47,87.6,77.47l8.14,53.1s-47.84,21.21-107.53-31.57c0,0-46.08-36.15-39.07-107.25L11,166.29,70.62,98.87l55.78,88.36Z"/><path class="cls-1" d="M238.65,68c-74.16-41-112.82,30.77-112.82,30.77L77,76.47s8.49-51.64,85.36-72.6c0,0,55.51-18.71,111.11,26.14L293.85,9l23.69,86.83L213.06,94Z"/><path class="cls-1" d="M262.84,252.17C333.61,205.59,288.09,138,288.09,138l42.49-32.87s41.75,31.54,24.55,109.34c0,0-9.27,57.83-74.83,86.19l9.11,27.85-87.88-19.43,50.21-91.64Z"/><path class="cls-2" d="M79.63,183.77c6.41,84.48,87.6,77.46,87.6,77.46l8.14,53.11s-47.84,21.21-107.53-31.57c0,0-46.08-36.16-39.07-107.25L0,170l59.62-67.42,55.78,88.35Z"/><path class="cls-2" d="M227.65,72c-74.16-41-112.82,30.77-112.82,30.77L66,80.47s8.49-51.64,85.36-72.6c0,0,55.51-18.71,111.11,26.14l20.41-21,23.69,86.83L202.06,98Z"/><path class="cls-2" d="M251.84,255.86c70.77-46.58,25.25-114.18,25.25-114.18l42.49-32.88s41.75,31.55,24.55,109.35c0,0-9.27,57.83-74.83,86.19l9.11,27.84-87.88-19.43,50.21-91.64Z"/><path class="cls-1" d="M231.05,217.82H203.72l-21-31.86v31.86h-22v-83h34.21q15,0,22.18,8.82a25.54,25.54,0,0,1,5.83,16.72q0,11-6.69,17.57-4.28,4.2-11.78,5.84Zm-31-56.53a10,10,0,0,0-3.29-7.57q-3.1-2.9-10-2.9h-4.09v21h4.09q6.94,0,10-2.89A10.19,10.19,0,0,0,200.07,161.29Z"/><path class="cls-2" d="M224.05,214.82H196.72l-21-31.86v31.86h-22v-83h34.21q15,0,22.18,8.82a25.54,25.54,0,0,1,5.83,16.72q0,11-6.69,17.57-4.28,4.2-11.78,5.84Zm-31-56.53a10,10,0,0,0-3.29-7.57q-3.1-2.9-10-2.9h-4.09v21h4.09q6.94,0,10-2.89A10.19,10.19,0,0,0,193.07,158.29Z"/></g></g></svg>
|
|
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 9.6 KiB |
BIN
reValuate/home/static/home/img/Discord-Logo.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
reValuate/home/static/home/img/approved.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
reValuate/home/static/home/img/cross.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
reValuate/home/static/home/img/loading.png
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
BIN
reValuate/home/static/home/img/mail.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
reValuate/home/static/home/img/question.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
reValuate/home/static/home/img/youtube.png
Normal file
After Width: | Height: | Size: 71 KiB |
@ -1,2 +0,0 @@
|
|||||||
/* breakpoints.js v1.0 | @ajlkn | MIT licensed */
|
|
||||||
var breakpoints=function(){"use strict";function e(e){t.init(e)}var t={list:null,media:{},events:[],init:function(e){t.list=e,window.addEventListener("resize",t.poll),window.addEventListener("orientationchange",t.poll),window.addEventListener("load",t.poll),window.addEventListener("fullscreenchange",t.poll)},active:function(e){var n,a,s,i,r,d,c;if(!(e in t.media)){if(">="==e.substr(0,2)?(a="gte",n=e.substr(2)):"<="==e.substr(0,2)?(a="lte",n=e.substr(2)):">"==e.substr(0,1)?(a="gt",n=e.substr(1)):"<"==e.substr(0,1)?(a="lt",n=e.substr(1)):"!"==e.substr(0,1)?(a="not",n=e.substr(1)):(a="eq",n=e),n&&n in t.list)if(i=t.list[n],Array.isArray(i)){if(r=parseInt(i[0]),d=parseInt(i[1]),isNaN(r)){if(isNaN(d))return;c=i[1].substr(String(d).length)}else c=i[0].substr(String(r).length);if(isNaN(r))switch(a){case"gte":s="screen";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: -1px)";break;case"not":s="screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (max-width: "+d+c+")"}else if(isNaN(d))switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen";break;case"gt":s="screen and (max-width: -1px)";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+")";break;default:s="screen and (min-width: "+r+c+")"}else switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+"), screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (min-width: "+r+c+") and (max-width: "+d+c+")"}}else s="("==i.charAt(0)?"screen and "+i:i;t.media[e]=!!s&&s}return t.media[e]!==!1&&window.matchMedia(t.media[e]).matches},on:function(e,n){t.events.push({query:e,handler:n,state:!1}),t.active(e)&&n()},poll:function(){var e,n;for(e=0;e<t.events.length;e++)n=t.events[e],t.active(n.query)?n.state||(n.state=!0,n.handler()):n.state&&(n.state=!1)}};return e._=t,e.on=function(e,n){t.on(e,n)},e.active=function(e){return t.active(e)},e}();!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.breakpoints=t()}(this,function(){return breakpoints});
|
|
2
reValuate/home/static/home/js/browser.min.js
vendored
@ -1,2 +0,0 @@
|
|||||||
/* browser.js v1.0 | @ajlkn | MIT licensed */
|
|
||||||
var browser=function(){"use strict";var e={name:null,version:null,os:null,osVersion:null,touch:null,mobile:null,_canUse:null,canUse:function(n){e._canUse||(e._canUse=document.createElement("div"));var o=e._canUse.style,r=n.charAt(0).toUpperCase()+n.slice(1);return n in o||"Moz"+r in o||"Webkit"+r in o||"O"+r in o||"ms"+r in o},init:function(){var n,o,r,i,t=navigator.userAgent;for(n="other",o=0,r=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(RegExp.$1);break}for(e.name=n,e.version=o,n="other",o=0,r=[["ios",/([0-9_]+) like Mac OS X/,function(e){return e.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(e){return 0}],["wp",/Windows Phone ([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(e){return e.replace("_",".").replace("_","")}],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null],["linux",/Linux/,null],["bsd",/BSD/,null],["unix",/X11/,null]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(r[i][2]?r[i][2](RegExp.$1):RegExp.$1);break}e.os=n,e.osVersion=o,e.touch="wp"==e.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in window),e.mobile="wp"==e.os||"android"==e.os||"ios"==e.os||"bb"==e.os}};return e.init(),e}();!function(e,n){"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?module.exports=n():e.browser=n()}(this,function(){return browser});
|
|
2
reValuate/home/static/home/js/jquery.min.js
vendored
@ -1,2 +0,0 @@
|
|||||||
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
|
|
||||||
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case"middle":f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]=="function"?f-=o[i]():f-=o[i],f}var t="length",n=null,r="top",i="offset",s="click.scrolly",o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]>1){for(o=0;o<this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr("href");if(f.charAt(0)!="#"||f[t]<2)return c;a=jQuery.extend({anchor:r,easing:"swing",offset:0,parent:e("body,html"),pollOnce:!1,speed:1e3},i),a.pollOnce&&(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&&(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);
|
|
@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
Photon by HTML5 UP
|
|
||||||
html5up.net | @ajlkn
|
|
||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function($) {
|
|
||||||
|
|
||||||
var $window = $(window),
|
|
||||||
$body = $('body');
|
|
||||||
|
|
||||||
// Breakpoints.
|
|
||||||
breakpoints({
|
|
||||||
xlarge: [ '1141px', '1680px' ],
|
|
||||||
large: [ '981px', '1140px' ],
|
|
||||||
medium: [ '737px', '980px' ],
|
|
||||||
small: [ '481px', '736px' ],
|
|
||||||
xsmall: [ '321px', '480px' ],
|
|
||||||
xxsmall: [ null, '320px' ]
|
|
||||||
});
|
|
||||||
|
|
||||||
// Play initial animations on page load.
|
|
||||||
$window.on('load', function() {
|
|
||||||
window.setTimeout(function() {
|
|
||||||
$body.removeClass('is-preload');
|
|
||||||
}, 100);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Scrolly.
|
|
||||||
$('.scrolly').scrolly();
|
|
||||||
|
|
||||||
})(jQuery);
|
|
12
reValuate/home/static/home/js/mobile.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
const doc = document;
|
||||||
|
const menuOpen = doc.querySelector(".menu");
|
||||||
|
const menuClose = doc.querySelector(".close");
|
||||||
|
const overlay = doc.querySelector(".overlay");
|
||||||
|
|
||||||
|
menuOpen.addEventListener("click", () => {
|
||||||
|
overlay.classList.add("overlay--active");
|
||||||
|
});
|
||||||
|
|
||||||
|
menuClose.addEventListener("click", () => {
|
||||||
|
overlay.classList.remove("overlay--active");
|
||||||
|
});
|
@ -1,587 +0,0 @@
|
|||||||
(function($) {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate an indented list of links from a nav. Meant for use with panel().
|
|
||||||
* @return {jQuery} jQuery object.
|
|
||||||
*/
|
|
||||||
$.fn.navList = function() {
|
|
||||||
|
|
||||||
var $this = $(this);
|
|
||||||
$a = $this.find('a'),
|
|
||||||
b = [];
|
|
||||||
|
|
||||||
$a.each(function() {
|
|
||||||
|
|
||||||
var $this = $(this),
|
|
||||||
indent = Math.max(0, $this.parents('li').length - 1),
|
|
||||||
href = $this.attr('href'),
|
|
||||||
target = $this.attr('target');
|
|
||||||
|
|
||||||
b.push(
|
|
||||||
'<a ' +
|
|
||||||
'class="link depth-' + indent + '"' +
|
|
||||||
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
|
|
||||||
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
|
|
||||||
'>' +
|
|
||||||
'<span class="indent-' + indent + '"></span>' +
|
|
||||||
$this.text() +
|
|
||||||
'</a>'
|
|
||||||
);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return b.join('');
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Panel-ify an element.
|
|
||||||
* @param {object} userConfig User config.
|
|
||||||
* @return {jQuery} jQuery object.
|
|
||||||
*/
|
|
||||||
$.fn.panel = function(userConfig) {
|
|
||||||
|
|
||||||
// No elements?
|
|
||||||
if (this.length == 0)
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
// Multiple elements?
|
|
||||||
if (this.length > 1) {
|
|
||||||
|
|
||||||
for (var i=0; i < this.length; i++)
|
|
||||||
$(this[i]).panel(userConfig);
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Vars.
|
|
||||||
var $this = $(this),
|
|
||||||
$body = $('body'),
|
|
||||||
$window = $(window),
|
|
||||||
id = $this.attr('id'),
|
|
||||||
config;
|
|
||||||
|
|
||||||
// Config.
|
|
||||||
config = $.extend({
|
|
||||||
|
|
||||||
// Delay.
|
|
||||||
delay: 0,
|
|
||||||
|
|
||||||
// Hide panel on link click.
|
|
||||||
hideOnClick: false,
|
|
||||||
|
|
||||||
// Hide panel on escape keypress.
|
|
||||||
hideOnEscape: false,
|
|
||||||
|
|
||||||
// Hide panel on swipe.
|
|
||||||
hideOnSwipe: false,
|
|
||||||
|
|
||||||
// Reset scroll position on hide.
|
|
||||||
resetScroll: false,
|
|
||||||
|
|
||||||
// Reset forms on hide.
|
|
||||||
resetForms: false,
|
|
||||||
|
|
||||||
// Side of viewport the panel will appear.
|
|
||||||
side: null,
|
|
||||||
|
|
||||||
// Target element for "class".
|
|
||||||
target: $this,
|
|
||||||
|
|
||||||
// Class to toggle.
|
|
||||||
visibleClass: 'visible'
|
|
||||||
|
|
||||||
}, userConfig);
|
|
||||||
|
|
||||||
// Expand "target" if it's not a jQuery object already.
|
|
||||||
if (typeof config.target != 'jQuery')
|
|
||||||
config.target = $(config.target);
|
|
||||||
|
|
||||||
// Panel.
|
|
||||||
|
|
||||||
// Methods.
|
|
||||||
$this._hide = function(event) {
|
|
||||||
|
|
||||||
// Already hidden? Bail.
|
|
||||||
if (!config.target.hasClass(config.visibleClass))
|
|
||||||
return;
|
|
||||||
|
|
||||||
// If an event was provided, cancel it.
|
|
||||||
if (event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hide.
|
|
||||||
config.target.removeClass(config.visibleClass);
|
|
||||||
|
|
||||||
// Post-hide stuff.
|
|
||||||
window.setTimeout(function() {
|
|
||||||
|
|
||||||
// Reset scroll position.
|
|
||||||
if (config.resetScroll)
|
|
||||||
$this.scrollTop(0);
|
|
||||||
|
|
||||||
// Reset forms.
|
|
||||||
if (config.resetForms)
|
|
||||||
$this.find('form').each(function() {
|
|
||||||
this.reset();
|
|
||||||
});
|
|
||||||
|
|
||||||
}, config.delay);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// Vendor fixes.
|
|
||||||
$this
|
|
||||||
.css('-ms-overflow-style', '-ms-autohiding-scrollbar')
|
|
||||||
.css('-webkit-overflow-scrolling', 'touch');
|
|
||||||
|
|
||||||
// Hide on click.
|
|
||||||
if (config.hideOnClick) {
|
|
||||||
|
|
||||||
$this.find('a')
|
|
||||||
.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
|
|
||||||
|
|
||||||
$this
|
|
||||||
.on('click', 'a', function(event) {
|
|
||||||
|
|
||||||
var $a = $(this),
|
|
||||||
href = $a.attr('href'),
|
|
||||||
target = $a.attr('target');
|
|
||||||
|
|
||||||
if (!href || href == '#' || href == '' || href == '#' + id)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Cancel original event.
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
// Hide panel.
|
|
||||||
$this._hide();
|
|
||||||
|
|
||||||
// Redirect to href.
|
|
||||||
window.setTimeout(function() {
|
|
||||||
|
|
||||||
if (target == '_blank')
|
|
||||||
window.open(href);
|
|
||||||
else
|
|
||||||
window.location.href = href;
|
|
||||||
|
|
||||||
}, config.delay + 10);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Event: Touch stuff.
|
|
||||||
$this.on('touchstart', function(event) {
|
|
||||||
|
|
||||||
$this.touchPosX = event.originalEvent.touches[0].pageX;
|
|
||||||
$this.touchPosY = event.originalEvent.touches[0].pageY;
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
$this.on('touchmove', function(event) {
|
|
||||||
|
|
||||||
if ($this.touchPosX === null
|
|
||||||
|| $this.touchPosY === null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
|
|
||||||
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
|
|
||||||
th = $this.outerHeight(),
|
|
||||||
ts = ($this.get(0).scrollHeight - $this.scrollTop());
|
|
||||||
|
|
||||||
// Hide on swipe?
|
|
||||||
if (config.hideOnSwipe) {
|
|
||||||
|
|
||||||
var result = false,
|
|
||||||
boundary = 20,
|
|
||||||
delta = 50;
|
|
||||||
|
|
||||||
switch (config.side) {
|
|
||||||
|
|
||||||
case 'left':
|
|
||||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'right':
|
|
||||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'top':
|
|
||||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'bottom':
|
|
||||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result) {
|
|
||||||
|
|
||||||
$this.touchPosX = null;
|
|
||||||
$this.touchPosY = null;
|
|
||||||
$this._hide();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Prevent vertical scrolling past the top or bottom.
|
|
||||||
if (($this.scrollTop() < 0 && diffY < 0)
|
|
||||||
|| (ts > (th - 2) && ts < (th + 2) && diffY > 0)) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Event: Prevent certain events inside the panel from bubbling.
|
|
||||||
$this.on('click touchend touchstart touchmove', function(event) {
|
|
||||||
event.stopPropagation();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Event: Hide panel if a child anchor tag pointing to its ID is clicked.
|
|
||||||
$this.on('click', 'a[href="#' + id + '"]', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
config.target.removeClass(config.visibleClass);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Body.
|
|
||||||
|
|
||||||
// Event: Hide panel on body click/tap.
|
|
||||||
$body.on('click touchend', function(event) {
|
|
||||||
$this._hide(event);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Event: Toggle.
|
|
||||||
$body.on('click', 'a[href="#' + id + '"]', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
config.target.toggleClass(config.visibleClass);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Window.
|
|
||||||
|
|
||||||
// Event: Hide on ESC.
|
|
||||||
if (config.hideOnEscape)
|
|
||||||
$window.on('keydown', function(event) {
|
|
||||||
|
|
||||||
if (event.keyCode == 27)
|
|
||||||
$this._hide(event);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Apply "placeholder" attribute polyfill to one or more forms.
|
|
||||||
* @return {jQuery} jQuery object.
|
|
||||||
*/
|
|
||||||
$.fn.placeholder = function() {
|
|
||||||
|
|
||||||
// Browser natively supports placeholders? Bail.
|
|
||||||
if (typeof (document.createElement('input')).placeholder != 'undefined')
|
|
||||||
return $(this);
|
|
||||||
|
|
||||||
// No elements?
|
|
||||||
if (this.length == 0)
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
// Multiple elements?
|
|
||||||
if (this.length > 1) {
|
|
||||||
|
|
||||||
for (var i=0; i < this.length; i++)
|
|
||||||
$(this[i]).placeholder();
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Vars.
|
|
||||||
var $this = $(this);
|
|
||||||
|
|
||||||
// Text, TextArea.
|
|
||||||
$this.find('input[type=text],textarea')
|
|
||||||
.each(function() {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
|
|
||||||
if (i.val() == ''
|
|
||||||
|| i.val() == i.attr('placeholder'))
|
|
||||||
i
|
|
||||||
.addClass('polyfill-placeholder')
|
|
||||||
.val(i.attr('placeholder'));
|
|
||||||
|
|
||||||
})
|
|
||||||
.on('blur', function() {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
|
|
||||||
if (i.attr('name').match(/-polyfill-field$/))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (i.val() == '')
|
|
||||||
i
|
|
||||||
.addClass('polyfill-placeholder')
|
|
||||||
.val(i.attr('placeholder'));
|
|
||||||
|
|
||||||
})
|
|
||||||
.on('focus', function() {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
|
|
||||||
if (i.attr('name').match(/-polyfill-field$/))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (i.val() == i.attr('placeholder'))
|
|
||||||
i
|
|
||||||
.removeClass('polyfill-placeholder')
|
|
||||||
.val('');
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Password.
|
|
||||||
$this.find('input[type=password]')
|
|
||||||
.each(function() {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
var x = $(
|
|
||||||
$('<div>')
|
|
||||||
.append(i.clone())
|
|
||||||
.remove()
|
|
||||||
.html()
|
|
||||||
.replace(/type="password"/i, 'type="text"')
|
|
||||||
.replace(/type=password/i, 'type=text')
|
|
||||||
);
|
|
||||||
|
|
||||||
if (i.attr('id') != '')
|
|
||||||
x.attr('id', i.attr('id') + '-polyfill-field');
|
|
||||||
|
|
||||||
if (i.attr('name') != '')
|
|
||||||
x.attr('name', i.attr('name') + '-polyfill-field');
|
|
||||||
|
|
||||||
x.addClass('polyfill-placeholder')
|
|
||||||
.val(x.attr('placeholder')).insertAfter(i);
|
|
||||||
|
|
||||||
if (i.val() == '')
|
|
||||||
i.hide();
|
|
||||||
else
|
|
||||||
x.hide();
|
|
||||||
|
|
||||||
i
|
|
||||||
.on('blur', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
|
||||||
|
|
||||||
if (i.val() == '') {
|
|
||||||
|
|
||||||
i.hide();
|
|
||||||
x.show();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
x
|
|
||||||
.on('focus', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
|
|
||||||
|
|
||||||
x.hide();
|
|
||||||
|
|
||||||
i
|
|
||||||
.show()
|
|
||||||
.focus();
|
|
||||||
|
|
||||||
})
|
|
||||||
.on('keypress', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
x.val('');
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Events.
|
|
||||||
$this
|
|
||||||
.on('submit', function() {
|
|
||||||
|
|
||||||
$this.find('input[type=text],input[type=password],textarea')
|
|
||||||
.each(function(event) {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
|
|
||||||
if (i.attr('name').match(/-polyfill-field$/))
|
|
||||||
i.attr('name', '');
|
|
||||||
|
|
||||||
if (i.val() == i.attr('placeholder')) {
|
|
||||||
|
|
||||||
i.removeClass('polyfill-placeholder');
|
|
||||||
i.val('');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
})
|
|
||||||
.on('reset', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
$this.find('select')
|
|
||||||
.val($('option:first').val());
|
|
||||||
|
|
||||||
$this.find('input,textarea')
|
|
||||||
.each(function() {
|
|
||||||
|
|
||||||
var i = $(this),
|
|
||||||
x;
|
|
||||||
|
|
||||||
i.removeClass('polyfill-placeholder');
|
|
||||||
|
|
||||||
switch (this.type) {
|
|
||||||
|
|
||||||
case 'submit':
|
|
||||||
case 'reset':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'password':
|
|
||||||
i.val(i.attr('defaultValue'));
|
|
||||||
|
|
||||||
x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
|
||||||
|
|
||||||
if (i.val() == '') {
|
|
||||||
i.hide();
|
|
||||||
x.show();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
i.show();
|
|
||||||
x.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'checkbox':
|
|
||||||
case 'radio':
|
|
||||||
i.attr('checked', i.attr('defaultValue'));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'text':
|
|
||||||
case 'textarea':
|
|
||||||
i.val(i.attr('defaultValue'));
|
|
||||||
|
|
||||||
if (i.val() == '') {
|
|
||||||
i.addClass('polyfill-placeholder');
|
|
||||||
i.val(i.attr('placeholder'));
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
i.val(i.attr('defaultValue'));
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Moves elements to/from the first positions of their respective parents.
|
|
||||||
* @param {jQuery} $elements Elements (or selector) to move.
|
|
||||||
* @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
|
|
||||||
*/
|
|
||||||
$.prioritize = function($elements, condition) {
|
|
||||||
|
|
||||||
var key = '__prioritize';
|
|
||||||
|
|
||||||
// Expand $elements if it's not already a jQuery object.
|
|
||||||
if (typeof $elements != 'jQuery')
|
|
||||||
$elements = $($elements);
|
|
||||||
|
|
||||||
// Step through elements.
|
|
||||||
$elements.each(function() {
|
|
||||||
|
|
||||||
var $e = $(this), $p,
|
|
||||||
$parent = $e.parent();
|
|
||||||
|
|
||||||
// No parent? Bail.
|
|
||||||
if ($parent.length == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Not moved? Move it.
|
|
||||||
if (!$e.data(key)) {
|
|
||||||
|
|
||||||
// Condition is false? Bail.
|
|
||||||
if (!condition)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Get placeholder (which will serve as our point of reference for when this element needs to move back).
|
|
||||||
$p = $e.prev();
|
|
||||||
|
|
||||||
// Couldn't find anything? Means this element's already at the top, so bail.
|
|
||||||
if ($p.length == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Move element to top of parent.
|
|
||||||
$e.prependTo($parent);
|
|
||||||
|
|
||||||
// Mark element as moved.
|
|
||||||
$e.data(key, $p);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Moved already?
|
|
||||||
else {
|
|
||||||
|
|
||||||
// Condition is true? Bail.
|
|
||||||
if (condition)
|
|
||||||
return;
|
|
||||||
|
|
||||||
$p = $e.data(key);
|
|
||||||
|
|
||||||
// Move element back to its original location (using our placeholder).
|
|
||||||
$e.insertAfter($p);
|
|
||||||
|
|
||||||
// Unmark element as moved.
|
|
||||||
$e.removeData(key);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
})(jQuery);
|
|
@ -2,19 +2,24 @@ from django.shortcuts import render
|
|||||||
import os.path
|
import os.path
|
||||||
from users.models import Balance
|
from users.models import Balance
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from users.models import User
|
||||||
|
import operator
|
||||||
|
from upload.models import Media
|
||||||
|
import requests
|
||||||
|
from django.db.models import Sum
|
||||||
|
|
||||||
|
|
||||||
def homePage(request):
|
def homePage(request):
|
||||||
iter_var = 0
|
iter_var = 0
|
||||||
all_balance = []
|
all_balance = 0
|
||||||
Cashier = False
|
Cashier = False
|
||||||
Processor = False
|
Processor = False
|
||||||
|
|
||||||
|
|
||||||
balObject = Balance.objects.filter(user=request.user.id)
|
balObject = Balance.objects.filter(user=request.user.id)
|
||||||
userBalance = balObject.values("balanceValue")
|
userBalance = balObject.values("balanceValue")
|
||||||
try:
|
try:
|
||||||
userBalance = userBalance[0]['balanceValue']
|
userBalance = userBalance[0]['balanceValue']
|
||||||
except IndexError:
|
except IndexError:
|
||||||
userBalance = None
|
userBalance = None
|
||||||
if request.user.groups.filter(name='Cashier').exists():
|
if request.user.groups.filter(name='Cashier').exists():
|
||||||
@ -27,22 +32,96 @@ def homePage(request):
|
|||||||
userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, isCashier={Cashier}, isProcessor={Processor}, Balance = {userBalance}"
|
userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, isCashier={Cashier}, isProcessor={Processor}, Balance = {userBalance}"
|
||||||
else:
|
else:
|
||||||
userQR=None
|
userQR=None
|
||||||
a = Balance.objects.all()
|
|
||||||
|
|
||||||
for user in a:
|
# Use aggregation that can be calculated in database (fast)
|
||||||
all_balance.append(user.balanceValue)
|
all_balance = Balance.objects.all().aggregate(s=Sum("balanceValue"))['s']
|
||||||
print(f"{all_balance}")
|
# print(f"{all_balance}")
|
||||||
limited_coins = settings.ALL_COINS - sum(all_balance)
|
try:
|
||||||
|
limited_coins = settings.ALL_COINS - all_balance
|
||||||
|
except TypeError:
|
||||||
|
limited_coins = settings.ALL_COINS
|
||||||
|
|
||||||
|
github = requests.get("https://api.github.com/user/36108495").json()
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
"isCashier": Cashier,
|
"isCashier": Cashier,
|
||||||
"isProcessor": Processor,
|
"isProcessor": Processor,
|
||||||
"userQR":userQR,
|
"userQR":userQR,
|
||||||
"fullbalance": limited_coins,
|
"fullbalance": limited_coins,
|
||||||
"currencyTotal": sum(all_balance),
|
"currencyTotal": all_balance,
|
||||||
"userBalance": userBalance
|
"userBalance": userBalance,
|
||||||
|
"github": f"https://github.com/podput",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return render(request, "home.html", context)
|
|
||||||
|
|
||||||
|
|
||||||
|
return render(request, "home.html", context)
|
||||||
|
|
||||||
|
|
||||||
|
def leaderboard(request):
|
||||||
|
users = User.objects.all()
|
||||||
|
leaderboard = {}
|
||||||
|
for i in users:
|
||||||
|
try:
|
||||||
|
username = i.username
|
||||||
|
balance = i.balance.balanceValue
|
||||||
|
# add media counter and other stuff
|
||||||
|
if f"{username}" in leaderboard.keys():
|
||||||
|
leaderboard[username] = balance + leaderboard[username]
|
||||||
|
else:
|
||||||
|
leaderboard[username] = balance
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
|
|
||||||
|
leaderboard = dict(sorted(leaderboard.items(), key=operator.itemgetter(0)))
|
||||||
|
leaderboard = dict(reversed(list(leaderboard.items())))
|
||||||
|
|
||||||
|
while len(leaderboard) > 5:
|
||||||
|
leaderboard.pop()
|
||||||
|
|
||||||
|
|
||||||
|
media = Media.objects.all()
|
||||||
|
user_media = {}
|
||||||
|
for i in media:
|
||||||
|
username = i.user.username
|
||||||
|
if f"{username}" in user_media.keys():
|
||||||
|
user_media[username] += 1
|
||||||
|
else:
|
||||||
|
user_media[username] = 1
|
||||||
|
|
||||||
|
user_media = dict(sorted(user_media.items(), key=operator.itemgetter(0)))
|
||||||
|
user_media = dict(reversed(list(user_media.items())))
|
||||||
|
users = {}
|
||||||
|
for i in user_media.keys():
|
||||||
|
iter_user = User.objects.get(username=i)
|
||||||
|
iter_user_media = Media.objects.filter(user=iter_user)
|
||||||
|
if iter_user_media.filter(is_video=True):
|
||||||
|
user_data = {i:{"Videos":len(iter_user_media.filter(is_video=True)),
|
||||||
|
"Images":len(iter_user_media.filter(is_video=False))}}
|
||||||
|
else:
|
||||||
|
user_data = {i:{"Images":len(iter_user_media.filter(is_video=False))}}
|
||||||
|
|
||||||
|
while len(user_media) > 5:
|
||||||
|
user_media.pop()
|
||||||
|
|
||||||
|
# for i in media:
|
||||||
|
# username = i.user.username
|
||||||
|
# image = i.image
|
||||||
|
|
||||||
|
# if f"{username}" in media_count.values():
|
||||||
|
# media_count[username] = image + media_count[username].value
|
||||||
|
# else:
|
||||||
|
# media_count[username] = image
|
||||||
|
|
||||||
|
# print(media_count)
|
||||||
|
|
||||||
|
context = {
|
||||||
|
"leaderboard":leaderboard,
|
||||||
|
"user_media":user_media
|
||||||
|
}
|
||||||
|
|
||||||
|
return render(request, 'leaderboard.html', context)
|
||||||
|
|
||||||
|
|
||||||
|
def about(request):
|
||||||
|
|
||||||
|
return render(request, "about.html")
|
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 688 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 240 KiB |
Before Width: | Height: | Size: 190 KiB |
Before Width: | Height: | Size: 688 KiB |
@ -1,27 +0,0 @@
|
|||||||
[?1049h[22;0;0t[>4;2m[?1h=[?2004h[?1004h[1;24r[?12h[?12l[22;2t[22;1t[27m[23m[29m[m[H[2J[?25l[24;1H[97m[41mE325: ATTENTION[m
|
|
||||||
Found a swap file by the name "~/github/reValuate/.git/.COMMIT_EDITMSG.swp"
|
|
||||||
[10Cowned by: gang420 dated: Thu Mar 11 03:38:41 2021
|
|
||||||
[9Cfile name: ~gang420/github/reValuate/.git/COMMIT_EDITMSG
|
|
||||||
[10Cmodified: YES
|
|
||||||
[9Cuser name: gang420 host name: CatShip
|
|
||||||
[8Cprocess ID: 22317
|
|
||||||
While opening file "/home/gang420/github/reValuate/.git/COMMIT_EDITMSG"
|
|
||||||
[13Cdated: Thu Mar 11 03:38:56 2021
|
|
||||||
NEWER than swap file!
|
|
||||||
|
|
||||||
(1) Another program may be editing the same file. If this is the case,
|
|
||||||
be careful not to end up with two different instances of the same
|
|
||||||
file when making changes. Quit, or continue with caution.
|
|
||||||
(2) An edit session for this file crashed.
|
|
||||||
If this is the case, use ":recover" or "vim -r /home/gang420/github/reValuate/.
|
|
||||||
[23;84Hg[24;1Hit/COMMIT_EDITMSG"
|
|
||||||
to recover the changes (see ":help recovery").
|
|
||||||
If you did this already, delete the swap file "/home/gang420/github/reValuate/.
|
|
||||||
[23;84Hg[24;1Hit/.COMMIT_EDITMSG.swp"
|
|
||||||
to avoid this message.
|
|
||||||
|
|
||||||
[32mSwap file "~/github/reValuate/.git/.COMMIT_EDITMSG.swp" already exists![m
|
|
||||||
[32m-- More --[?25h[m[24;1H[K[24;1H[32m[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort: [m[24;1H[K[24;1H
|
|
||||||
Interrupt: [32mPress ENTER or type command to continue[m[1;1H[L[?25l[2;1H[94m~ [3;1H~ [4;1H~ [5;1H~ [6;1H~ [7;1H~ [8;1H~ [9;1H~ [10;1H~ [11;1H~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;67H0,0-1[9CAll[1;1H[?25h[24;1H[?1004l[?2004l[?1l>[>4;m[?1049l[23;0;0tVim: Caught deadly signal HUP
|
|
||||||
Vim: Finished.
|
|
||||||
[24;1H[23;2t[23;1t
|
|
@ -1,25 +0,0 @@
|
|||||||
Content-Type: text/plain; charset="utf-8"
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
Subject: Password reset on 127.0.0.1:8000
|
|
||||||
From: webmaster@localhost
|
|
||||||
To: pederas@pederasov.pl
|
|
||||||
Date: Mon, 08 Feb 2021 22:19:44 -0000
|
|
||||||
Message-ID: <161282278468.9046.5088568393660450551@Spudnik>
|
|
||||||
|
|
||||||
|
|
||||||
You're receiving this email because you requested a password reset for your user account at 127.0.0.1:8000.
|
|
||||||
|
|
||||||
Please go to the following page and choose a new password:
|
|
||||||
|
|
||||||
http://127.0.0.1:8000/users/reset/Mg/ahs0ww-f913be8dd50f0a6adf4815cf32e8183a/
|
|
||||||
|
|
||||||
Your username, in case you’ve forgotten: bobi
|
|
||||||
|
|
||||||
Thanks for using our site!
|
|
||||||
|
|
||||||
The 127.0.0.1:8000 team
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
|
@ -1,25 +0,0 @@
|
|||||||
Content-Type: text/plain; charset="utf-8"
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
Subject: Password reset on 127.0.0.1:8000
|
|
||||||
From: webmaster@localhost
|
|
||||||
To: pederas@pederasov.pl
|
|
||||||
Date: Mon, 08 Feb 2021 22:20:07 -0000
|
|
||||||
Message-ID: <161282280735.9109.220494091957288379@Spudnik>
|
|
||||||
|
|
||||||
|
|
||||||
You're receiving this email because you requested a password reset for your user account at 127.0.0.1:8000.
|
|
||||||
|
|
||||||
Please go to the following page and choose a new password:
|
|
||||||
|
|
||||||
http://127.0.0.1:8000/users/reset/Mg/ahs0xj-30b0b07164a6b8b220b0e9cbbb048aa0/
|
|
||||||
|
|
||||||
Your username, in case you’ve forgotten: bobi
|
|
||||||
|
|
||||||
Thanks for using our site!
|
|
||||||
|
|
||||||
The 127.0.0.1:8000 team
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
|
127
reValuate/static/home/css/gallery.css
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
.popup {
|
||||||
|
width: 900px;
|
||||||
|
margin: auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup img {
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show {
|
||||||
|
z-index: 999;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show .overlay {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0,0,0,.66);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show .img-show {
|
||||||
|
width: 600px;
|
||||||
|
height: 400px;
|
||||||
|
background: #FFF;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-show span {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
right: 10px;
|
||||||
|
z-index: 99;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-show img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: Raleway;
|
||||||
|
background-color: #202125;
|
||||||
|
}
|
||||||
|
|
||||||
|
.heading {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 2.0em;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
padding: 40px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-image {
|
||||||
|
padding: 20px;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-image img {
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
transform: scale(1.0);
|
||||||
|
transition: transform 0.4s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box {
|
||||||
|
box-sizing: content-box;
|
||||||
|
margin: 10px;
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
|
color: white;
|
||||||
|
position: relative;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.caption {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 5px;
|
||||||
|
left: 20px;
|
||||||
|
opacity: 0.0;
|
||||||
|
transition: transform 0.3s ease, opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.transparent-box {
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box:hover img { transform: scale(1.1); }
|
||||||
|
.img-box:hover .transparent-box { background-color: rgba(0, 0, 0, 0.5); }
|
||||||
|
|
||||||
|
.img-box:hover .caption {
|
||||||
|
transform: translateY(-20px);
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box:hover { cursor: pointer; }
|
||||||
|
.caption > p:nth-child(2) { font-size: 0.8em; }
|
||||||
|
.opacity-low { opacity: 0.5; }
|
323
reValuate/static/home/css/style.css
Normal file
@ -0,0 +1,323 @@
|
|||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-wrap {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 50px auto;
|
||||||
|
padding: 20px;
|
||||||
|
background: white;
|
||||||
|
-moz-box-shadow: 0 0 20px #469330;
|
||||||
|
-webkit-box-shadow: 0 0 20px #469330;
|
||||||
|
box-shadow: 0 0 20px #469330;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 25px;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 30px 10%;
|
||||||
|
background-color: #469330;
|
||||||
|
position: sticky;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links a,
|
||||||
|
.cta,
|
||||||
|
.overlay__content a {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size:30px;
|
||||||
|
color: #edf0f1;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links {
|
||||||
|
list-style: none;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li {
|
||||||
|
padding: 0px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li a {
|
||||||
|
transition: color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li a:hover {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta {
|
||||||
|
padding: 9px 25px;
|
||||||
|
color: #469330;
|
||||||
|
background-color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 50px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta:hover {
|
||||||
|
color: white;
|
||||||
|
background-color: darkgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile Nav */
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay {
|
||||||
|
height: 100%;
|
||||||
|
width: 0;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 99;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
background-color: #469330;
|
||||||
|
overflow-x: hidden;
|
||||||
|
transition: width 0.5s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay--active {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay__content {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay a {
|
||||||
|
padding: 15px;
|
||||||
|
font-size: 36px;
|
||||||
|
display: block;
|
||||||
|
transition: color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay a:hover,
|
||||||
|
.overlay a:focus {
|
||||||
|
color: darkgreen;
|
||||||
|
}
|
||||||
|
.overlay .close {
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
right: 45px;
|
||||||
|
font-size: 60px;
|
||||||
|
color: #edf0f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-height: 450px) {
|
||||||
|
.overlay a {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.overlay .close {
|
||||||
|
font-size: 40px;
|
||||||
|
top: 15px;
|
||||||
|
right: 35px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 800px) {
|
||||||
|
.nav__links,
|
||||||
|
.cta {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.menu {
|
||||||
|
display: initial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
html{
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
|
||||||
|
margin: 0 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1.heading{
|
||||||
|
color: white;
|
||||||
|
font-size: 50px;
|
||||||
|
text-shadow: -1px 0 black, 0 2px black, 2px 0 black, 0 -1px black;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.emoji{
|
||||||
|
list-style-type: "♻️";
|
||||||
|
}
|
||||||
|
|
||||||
|
.question{
|
||||||
|
color: gray;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.nothing{
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.footer{
|
||||||
|
/* background:radial-gradient(circle, rgba(0,159,12,1) 0%, rgba(8,96,0,1) 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent; */
|
||||||
|
color: lightgreen;
|
||||||
|
}
|
||||||
|
footer{
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
left:50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.centered{
|
||||||
|
display:flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes text-shadow-pop-right {
|
||||||
|
0% {
|
||||||
|
text-shadow: 0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555;
|
||||||
|
-webkit-transform: translateX(0);
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
text-shadow: 1px 0 #555,2px 0 #555,3px 0 #555,4px 0 #555,5px 0 #555,6px 0 #555,7px 0 #555,8px 0 #555;
|
||||||
|
-webkit-transform: translateX(-8px);
|
||||||
|
transform: translateX(-8px)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes text-shadow-pop-right {
|
||||||
|
0% {
|
||||||
|
text-shadow: 0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555;
|
||||||
|
-webkit-transform: translateX(0);
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
text-shadow: 1px 0 #555,2px 0 #555,3px 0 #555,4px 0 #555,5px 0 #555,6px 0 #555,7px 0 #555,8px 0 #555;
|
||||||
|
-webkit-transform: translateX(-8px);
|
||||||
|
transform: translateX(-8px)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-shadow-pop-right{-webkit-animation:text-shadow-pop-right .6s both;animation:text-shadow-pop-right .6s both}
|
||||||
|
|
||||||
|
@-webkit-keyframes scale-in-center {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(0);
|
||||||
|
transform: scale(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes scale-in-center {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(0);
|
||||||
|
transform: scale(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.scale-in-center {
|
||||||
|
-webkit-animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
|
animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons{
|
||||||
|
background-color: #469330;
|
||||||
|
border: none;
|
||||||
|
color: white;
|
||||||
|
padding: 15px 32px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 16px;
|
||||||
|
margin: 4px 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes tracking-in-expand {
|
||||||
|
0% {
|
||||||
|
letter-spacing: -0.5em;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes tracking-in-expand {
|
||||||
|
0% {
|
||||||
|
letter-spacing: -0.5em;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tracking-in-expand {
|
||||||
|
-webkit-animation: tracking-in-expand 0.7s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||||
|
animation: tracking-in-expand 0.7s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||||
|
animation-delay: .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes fade-in-bck {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translateZ(80px);
|
||||||
|
transform: translateZ(80px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translateZ(0);
|
||||||
|
transform: translateZ(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-in-bck {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translateZ(80px);
|
||||||
|
transform: translateZ(80px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translateZ(0);
|
||||||
|
transform: translateZ(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-in-bck {
|
||||||
|
-webkit-animation: fade-in-bck 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
|
||||||
|
animation: fade-in-bck 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
|
||||||
|
}
|
BIN
reValuate/static/home/img/Discord-Logo.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
reValuate/static/home/img/approved.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
reValuate/static/home/img/cross.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
reValuate/static/home/img/loading.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
reValuate/static/home/img/logo.png
Normal file
After Width: | Height: | Size: 145 KiB |
BIN
reValuate/static/home/img/mail.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
reValuate/static/home/img/question.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
reValuate/static/home/img/youtube.png
Normal file
After Width: | Height: | Size: 71 KiB |
12
reValuate/static/home/js/mobile.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
const doc = document;
|
||||||
|
const menuOpen = doc.querySelector(".menu");
|
||||||
|
const menuClose = doc.querySelector(".close");
|
||||||
|
const overlay = doc.querySelector(".overlay");
|
||||||
|
|
||||||
|
menuOpen.addEventListener("click", () => {
|
||||||
|
overlay.classList.add("overlay--active");
|
||||||
|
});
|
||||||
|
|
||||||
|
menuClose.addEventListener("click", () => {
|
||||||
|
overlay.classList.remove("overlay--active");
|
||||||
|
});
|