Make whitespace match convention

Convention according to our EditorConfig.
This commit is contained in:
Midgard 2020-02-29 17:23:20 +01:00
parent 172d5d1e08
commit b44d34003d
Signed by: midgard
GPG key ID: 511C112F1331BBB4
53 changed files with 6623 additions and 6620 deletions

View file

@ -8,6 +8,9 @@ end_of_line = lf
insert_final_newline = true
indent_style = tab
[*.py]
[*.py,*.py.*]
indent_style = space
indent_size = 4
[*.el]
indent_style = space

View file

@ -15,30 +15,30 @@ Be lazier today!
There is a special script to get started with the project. Just run it in the root of the project.
./first-setup.sh
./first-setup.sh
This will create a virtual environment, install the necessary dependencies and will give you the option to seed the database.
If you are using a database other then sqlite you will first need to configure the correct URI to the database in the generated 'config.py' file.
Afterwards upgrade the database to the latest version using
cd app
python3 app.py db upgrade
cd app
python3 app.py db upgrade
You can now still seed the database by running
./populate-db.sh
./populate-db.sh
in the root folder of the project.
Activate the virtual environment using
source venv/bin/activate
source venv/bin/activate
Finally run the webserver with
python3 app/app.py runserver
python3 app/app.py runserver
Make sure to use localhost instead of 127.0.0.1 if you want to be able to login.

View file

@ -3,35 +3,35 @@ to automatically generate anything. For the latest version, check the files in a
user
username
is_admin
bias
username
is_admin
bias
order
id
courier_id
location_id HLDS identifier
location_name this allows historical orders to keep the same location name
starttime
stoptime
public
id
courier_id
location_id HLDS identifier
location_name this allows historical orders to keep the same location name
starttime
stoptime
public
order_item
id
order_id
user_id
user_name for users who are not logged in
dish_id HLDS identifier
dish_name ) this allows historical orders to keep their correct name and price
price )
paid
comment
hlds_data_version Git commit hash to identify HLDS data version
id
order_id
user_id
user_name for users who are not logged in
dish_id HLDS identifier
dish_name ) this allows historical orders to keep their correct name and price
price )
paid
comment
hlds_data_version Git commit hash to identify HLDS data version
order_item_choice
id
order_item_id
choice_id HLDS identifier
kind single_choice/multi_choice
name
value just a textual description of the chosen values
id
order_item_id
choice_id HLDS identifier
kind single_choice/multi_choice
name
value just a textual description of the chosen values

View file

@ -1,366 +1,366 @@
/*!
* Datetimepicker for Bootstrap 3
* ! version : 4.7.14
* https://github.com/Eonasdan/bootstrap-datetimepicker/
*/
* Datetimepicker for Bootstrap 3
* ! version : 4.7.14
* https://github.com/Eonasdan/bootstrap-datetimepicker/
*/
.bootstrap-datetimepicker-widget {
list-style: none;
list-style: none;
}
.bootstrap-datetimepicker-widget.dropdown-menu {
margin: 2px 0;
padding: 4px;
width: 19em;
margin: 2px 0;
padding: 4px;
width: 19em;
}
@media (min-width: 768px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
@media (min-width: 992px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
@media (min-width: 1200px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
.bootstrap-datetimepicker-widget.dropdown-menu:before,
.bootstrap-datetimepicker-widget.dropdown-menu:after {
content: '';
display: inline-block;
position: absolute;
content: '';
display: inline-block;
position: absolute;
}
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #cccccc;
border-bottom-color: rgba(0, 0, 0, 0.2);
top: -7px;
left: 7px;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #cccccc;
border-bottom-color: rgba(0, 0, 0, 0.2);
top: -7px;
left: 7px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid white;
top: -6px;
left: 8px;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid white;
top: -6px;
left: 8px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.top:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-top: 7px solid #cccccc;
border-top-color: rgba(0, 0, 0, 0.2);
bottom: -7px;
left: 6px;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-top: 7px solid #cccccc;
border-top-color: rgba(0, 0, 0, 0.2);
bottom: -7px;
left: 6px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.top:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 6px solid white;
bottom: -6px;
left: 7px;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 6px solid white;
bottom: -6px;
left: 7px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {
left: auto;
right: 6px;
left: auto;
right: 6px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {
left: auto;
right: 7px;
left: auto;
right: 7px;
}
.bootstrap-datetimepicker-widget .list-unstyled {
margin: 0;
margin: 0;
}
.bootstrap-datetimepicker-widget a[data-action] {
padding: 6px 0;
padding: 6px 0;
}
.bootstrap-datetimepicker-widget a[data-action]:active {
box-shadow: none;
box-shadow: none;
}
.bootstrap-datetimepicker-widget .timepicker-hour,
.bootstrap-datetimepicker-widget .timepicker-minute,
.bootstrap-datetimepicker-widget .timepicker-second {
width: 54px;
font-weight: bold;
font-size: 1.2em;
margin: 0;
width: 54px;
font-weight: bold;
font-size: 1.2em;
margin: 0;
}
.bootstrap-datetimepicker-widget button[data-action] {
padding: 6px;
padding: 6px;
}
.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Hours";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Minutes";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Hours";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Minutes";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Hours";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Minutes";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle AM/PM";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle AM/PM";
}
.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Clear the picker";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Clear the picker";
}
.bootstrap-datetimepicker-widget .btn[data-action="today"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Set the date to today";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Set the date to today";
}
.bootstrap-datetimepicker-widget .picker-switch {
text-align: center;
text-align: center;
}
.bootstrap-datetimepicker-widget .picker-switch::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle Date and Time Screens";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle Date and Time Screens";
}
.bootstrap-datetimepicker-widget .picker-switch td {
padding: 0;
margin: 0;
height: auto;
width: auto;
line-height: inherit;
padding: 0;
margin: 0;
height: auto;
width: auto;
line-height: inherit;
}
.bootstrap-datetimepicker-widget .picker-switch td span {
line-height: 2.5;
height: 2.5em;
width: 100%;
line-height: 2.5;
height: 2.5em;
width: 100%;
}
.bootstrap-datetimepicker-widget table {
width: 100%;
margin: 0;
width: 100%;
margin: 0;
}
.bootstrap-datetimepicker-widget table td,
.bootstrap-datetimepicker-widget table th {
text-align: center;
border-radius: 4px;
text-align: center;
border-radius: 4px;
}
.bootstrap-datetimepicker-widget table th {
height: 20px;
line-height: 20px;
width: 20px;
height: 20px;
line-height: 20px;
width: 20px;
}
.bootstrap-datetimepicker-widget table th.picker-switch {
width: 145px;
width: 145px;
}
.bootstrap-datetimepicker-widget table th.disabled,
.bootstrap-datetimepicker-widget table th.disabled:hover {
background: none;
color: #777777;
cursor: not-allowed;
background: none;
color: #777777;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget table th.prev::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Previous Month";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Previous Month";
}
.bootstrap-datetimepicker-widget table th.next::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Next Month";
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Next Month";
}
.bootstrap-datetimepicker-widget table thead tr:first-child th {
cursor: pointer;
cursor: pointer;
}
.bootstrap-datetimepicker-widget table thead tr:first-child th:hover {
background: #eeeeee;
background: #eeeeee;
}
.bootstrap-datetimepicker-widget table td {
height: 54px;
line-height: 54px;
width: 54px;
height: 54px;
line-height: 54px;
width: 54px;
}
.bootstrap-datetimepicker-widget table td.cw {
font-size: .8em;
height: 20px;
line-height: 20px;
color: #777777;
font-size: .8em;
height: 20px;
line-height: 20px;
color: #777777;
}
.bootstrap-datetimepicker-widget table td.day {
height: 20px;
line-height: 20px;
width: 20px;
height: 20px;
line-height: 20px;
width: 20px;
}
.bootstrap-datetimepicker-widget table td.day:hover,
.bootstrap-datetimepicker-widget table td.hour:hover,
.bootstrap-datetimepicker-widget table td.minute:hover,
.bootstrap-datetimepicker-widget table td.second:hover {
background: #eeeeee;
cursor: pointer;
background: #eeeeee;
cursor: pointer;
}
.bootstrap-datetimepicker-widget table td.old,
.bootstrap-datetimepicker-widget table td.new {
color: #777777;
color: #777777;
}
.bootstrap-datetimepicker-widget table td.today {
position: relative;
position: relative;
}
.bootstrap-datetimepicker-widget table td.today:before {
content: '';
display: inline-block;
border: 0 0 7px 7px solid transparent;
border-bottom-color: #337ab7;
border-top-color: rgba(0, 0, 0, 0.2);
position: absolute;
bottom: 4px;
right: 4px;
content: '';
display: inline-block;
border: 0 0 7px 7px solid transparent;
border-bottom-color: #337ab7;
border-top-color: rgba(0, 0, 0, 0.2);
position: absolute;
bottom: 4px;
right: 4px;
}
.bootstrap-datetimepicker-widget table td.active,
.bootstrap-datetimepicker-widget table td.active:hover {
background-color: #337ab7;
color: #ffffff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
background-color: #337ab7;
color: #ffffff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.bootstrap-datetimepicker-widget table td.active.today:before {
border-bottom-color: #fff;
border-bottom-color: #fff;
}
.bootstrap-datetimepicker-widget table td.disabled,
.bootstrap-datetimepicker-widget table td.disabled:hover {
background: none;
color: #777777;
cursor: not-allowed;
background: none;
color: #777777;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget table td span {
display: inline-block;
width: 54px;
height: 54px;
line-height: 54px;
margin: 2px 1.5px;
cursor: pointer;
border-radius: 4px;
display: inline-block;
width: 54px;
height: 54px;
line-height: 54px;
margin: 2px 1.5px;
cursor: pointer;
border-radius: 4px;
}
.bootstrap-datetimepicker-widget table td span:hover {
background: #eeeeee;
background: #eeeeee;
}
.bootstrap-datetimepicker-widget table td span.active {
background-color: #337ab7;
color: #ffffff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
background-color: #337ab7;
color: #ffffff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.bootstrap-datetimepicker-widget table td span.old {
color: #777777;
color: #777777;
}
.bootstrap-datetimepicker-widget table td span.disabled,
.bootstrap-datetimepicker-widget table td span.disabled:hover {
background: none;
color: #777777;
cursor: not-allowed;
background: none;
color: #777777;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget.usetwentyfour td.hour {
height: 27px;
line-height: 27px;
height: 27px;
line-height: 27px;
}
.input-group.date .input-group-addon {
cursor: pointer;
cursor: pointer;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,16 +1,16 @@
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#D0D0D8;
--dGray1:#8E8E93;
--dGray2:#636366;
--dGray3:#48484A;
--dGray4:#3A3A3C;
--dGray5:#2C2C2E;
--dGray6:#1C1C1E;
--dBlue:#0A84FF;
--dGray1:#8E8E93;
--dGray2:#636366;
--dGray3:#48484A;
--dGray4:#3A3A3C;
--dGray5:#2C2C2E;
--dGray6:#1C1C1E;
--dBlue:#0A84FF;
}
.table-hover tbody tr:hover{
background-color: var(--dGray3);
background-color: var(--dGray3);
}
body{
background-color: var(--dGray5);
@ -20,8 +20,8 @@ a {
color: var(--dBlue);
}
.btn-primary {
color: var(--dGray6);
background-color: var(--dBlue);
color: var(--dGray6);
background-color: var(--dBlue);
}
.navbar {
@ -59,23 +59,23 @@ h1, h2, h3, h4, h5, h6{
border-bottom: 2px solid var(--dGray2);
}
.navbar-toggle .icon-bar {
background-color: var(--dGray0);
opacity: 0.5;
background-color: var(--dGray0);
opacity: 0.5;
}
.select2-container--default .select2-selection--single{
background-color: var(--dGray3);
color: var(--dGray0);
background-color: var(--dGray3);
color: var(--dGray0);
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
color: var(--dGray0);
color: var(--dGray0);
}
.select2-results__option{
background-color: var(--dGray5);
color: var(--dGray0);
background-color: var(--dGray5);
color: var(--dGray0);
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
background-color: var(--dGray4);
color: var(--dGray0);
background-color: var(--dGray4);
color: var(--dGray0);
}
.bootstrap-datetimepicker-widget table thead tr:first-child th:hover,
.bootstrap-datetimepicker-widget table td.day:hover,
@ -83,28 +83,28 @@ h1, h2, h3, h4, h5, h6{
.bootstrap-datetimepicker-widget table td.minute:hover,
.bootstrap-datetimepicker-widget table td span:hover,
.bootstrap-datetimepicker-widget table td.second:hover {
background: var(--dGray4);
background: var(--dGray4);
}
.select2-container--default .select2-results__option[aria-selected=true]{
background-color: var(--dBlue);
color: var(--dGray0);
background-color: var(--dBlue);
color: var(--dGray0);
}
.select2-search{
background-color: var(--dGray2);
background-color: var(--dGray2);
}
.select2-search input{
background-color: var(--dGray0);
background-color: var(--dGray0);
}
.dropdown-menu{
background-color: var(--dGray5);
background-color: var(--dGray5);
}
.form-control{
color: var(--dGray0);
color: var(--dGray0);
}
.form-control::placeholder{
color: var(--dGray2);
color: var(--dGray2);
}
.enter_darkmode>a {
text-align: center;
text-align: center;
}

View file

@ -1,198 +1,198 @@
/* Custom CSS */
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#D0D0D8;
--dGray1:#8E8E93;
--dGray2:#636366;
--dGray3:#48484A;
--dGray4:#3A3A3C;
--dGray5:#2C2C2E;
--dGray6:#1C1C1E;
--dBlue:#0A84FF;
--FontFamily:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;
--FontSize:13px;
--dGray1:#8E8E93;
--dGray2:#636366;
--dGray3:#48484A;
--dGray4:#3A3A3C;
--dGray5:#2C2C2E;
--dGray6:#1C1C1E;
--dBlue:#0A84FF;
--FontFamily:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;
--FontSize:13px;
}
html {
height: 100%;
height: 100%;
}
body {
padding-top: 70px;
background-color: var(--dGray5);
color: var(--dGray1);
height: 100%;
font-family: var(--FontFamily);
font-size: var(--FontSize);
padding-top: 70px;
background-color: var(--dGray5);
color: var(--dGray1);
height: 100%;
font-family: var(--FontFamily);
font-size: var(--FontSize);
}
.background{
position: absolute;
z-index: -1000;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
-webkit-filter: blur(2px) brightness(50%);
-moz-filter: blur(2px) brightness(50%);
-o-filter: blur(2px) brightness(50%);
-ms-filter: blur(2px) brightness(50%);
filter: blur(2px) brightness(50%);
position: absolute;
z-index: -1000;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
-webkit-filter: blur(2px) brightness(50%);
-moz-filter: blur(2px) brightness(50%);
-o-filter: blur(2px) brightness(50%);
-ms-filter: blur(2px) brightness(50%);
filter: blur(2px) brightness(50%);
}
.padding-top {
padding-top: 10px;
padding-top: 10px;
}
.darker {
background-color: #fafafa;
margin-top: 10px;
padding-bottom: 5px;
background-color: #fafafa;
margin-top: 10px;
padding-bottom: 5px;
}
@media (min-width: 992px) {
.align-bottom {
margin-top: 2.5em;
}
.align-bottom {
margin-top: 2.5em;
}
}
.full-width {
width: 100%;
width: 100%;
}
.showcase {
font-size: 16px;
line-height: 1.2;
font-size: 16px;
line-height: 1.2;
}
.showcase {
padding: 0;
max-width: 500px;
margin: 0 auto;
padding: 0;
max-width: 500px;
margin: 0 auto;
}
.showcase h1 {
font-size: 200%;
margin: 0 ;
padding: 0.4em 0 0.2em;
border-bottom: 1px dashed var(--dGray1);
text-align: center;
font-size: 200%;
margin: 0 ;
padding: 0.4em 0 0.2em;
border-bottom: 1px dashed var(--dGray1);
text-align: center;
}
.showcase h2 {
font-size: 110%;
font-weight: bold;
margin-bottom: 0.6em;
font-size: 110%;
font-weight: bold;
margin-bottom: 0.6em;
}
.showcase .open-order-warning {
font-size: 150%;
text-align: center;
padding: 1em 0.5em;
background-color: rgba(255, 0, 0, 0.1);
font-size: 150%;
text-align: center;
padding: 1em 0.5em;
background-color: rgba(255, 0, 0, 0.1);
}
.showcase .dish {
padding: 0 0.5em;
padding: 0 0.5em;
}
@media (min-width: 500px) {
.showcase .dish {
padding: 0 1em;
}
.showcase .dish {
padding: 0 1em;
}
}
.showcase .quantity {
font-size: 110%;
font-size: 110%;
}
.showcase .comments {
padding-left: 2em;
padding-left: 2em;
}
.showcase .comments li {
margin: 0.5em 0 0;
margin: 0.5em 0 0;
}
.showcase .total {
border-top: 1px dashed var(--dGray1);
text-align: center;
padding: 0.5em 0;
margin-top: 1.3em;
border-top: 1px dashed var(--dGray1);
text-align: center;
padding: 0.5em 0;
margin-top: 1.3em;
}
.order_row {
background: var(--dGray4);
background: var(--dGray4);
}
.time_data{
display: flex;
justify-content: space-between;
display: flex;
justify-content: space-between;
}
@media(min-width: 768px) and (max-width: 991px){
/* Make sure the small map in the location page has the same with as the block above */
.sm-no-side-padding {
padding-left: 0px;
padding-right: 0px;
}
/* Make sure the small map in the location page has the same with as the block above */
.sm-no-side-padding {
padding-left: 0px;
padding-right: 0px;
}
}
@media(min-width: 992px){
.md-no-right-padding {
padding-right: 0px;
}
.md-no-right-padding {
padding-right: 0px;
}
}
/* Add clickable box */
div.box:hover {
cursor: hand;
cursor: pointer;
opacity: .9;
box-shadow: 2px 4px 4px -1px #888888;
cursor: hand;
cursor: pointer;
opacity: .9;
box-shadow: 2px 4px 4px -1px #888888;
}
a.divLink {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
text-decoration: none;
/* Makes sure the link doesn't get underlined */
z-index: 10;
/* raises anchor tag above everything else in div */
background-color: white;
/*workaround to make clickable in IE */
opacity: 0;
/*workaround to make clickable in IE */
filter: alpha(opacity=0);
/*workaround to make clickable in IE */
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
text-decoration: none;
/* Makes sure the link doesn't get underlined */
z-index: 10;
/* raises anchor tag above everything else in div */
background-color: white;
/*workaround to make clickable in IE */
opacity: 0;
/*workaround to make clickable in IE */
filter: alpha(opacity=0);
/*workaround to make clickable in IE */
}
.footerWrapper {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 0 -1rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 0 -1rem;
}
.footerWrapper>div{
margin: 0 1rem;
margin: 0 1rem;
}
.hidden {
display: none;
display: none;
}
.table-hover tbody tr:hover{
background-color: var(--dGray3);
background-color: var(--dGray3);
}
a {
color: var(--dBlue);
}
.btn-primary {
color: var(--dGray6);
background-color: var(--dBlue);
color: var(--dGray6);
background-color: var(--dBlue);
}
.navbar {
@ -230,23 +230,23 @@ h1, h2, h3, h4, h5, h6{
border-bottom: 2px solid var(--dGray2);
}
.navbar-toggle .icon-bar {
background-color: var(--dGray0);
opacity: 0.5;
background-color: var(--dGray0);
opacity: 0.5;
}
.select2-container--default .select2-selection--single{
background-color: var(--dGray3);
color: var(--dGray0);
background-color: var(--dGray3);
color: var(--dGray0);
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
color: var(--dGray0);
color: var(--dGray0);
}
.select2-results__option{
background-color: var(--dGray5);
color: var(--dGray0);
background-color: var(--dGray5);
color: var(--dGray0);
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
background-color: var(--dGray4);
color: var(--dGray0);
background-color: var(--dGray4);
color: var(--dGray0);
}
.bootstrap-datetimepicker-widget table thead tr:first-child th:hover,
.bootstrap-datetimepicker-widget table td.day:hover,
@ -254,39 +254,39 @@ h1, h2, h3, h4, h5, h6{
.bootstrap-datetimepicker-widget table td.minute:hover,
.bootstrap-datetimepicker-widget table td span:hover,
.bootstrap-datetimepicker-widget table td.second:hover {
background: var(--dGray4);
background: var(--dGray4);
}
.select2-container--default .select2-results__option[aria-selected=true]{
background-color: var(--dBlue);
color: var(--dGray0);
background-color: var(--dBlue);
color: var(--dGray0);
}
.select2-search{
background-color: var(--dGray2);
background-color: var(--dGray2);
}
.select2-selection--multiple .select2-search{
background-color: transparent;
background-color: transparent;
}
.select2-selection--multiple .select2-search{
background-color: transparent;
background-color: transparent;
}
.select2-selection--multiple .select2-search.select2-search--inline .select2-search__field{
border: 1px solid #ccc;
padding-left: 0.3em;
box-sizing: content-box;
border: 1px solid #ccc;
padding-left: 0.3em;
box-sizing: content-box;
}
.select2-search input{
background-color: var(--dGray0);
background-color: var(--dGray0);
}
.dropdown-menu{
background-color: var(--dGray5);
background-color: var(--dGray5);
}
.form-control{
color: var(--dGray0);
color: var(--dGray0);
}
.form-control::placeholder{
color: var(--dGray2);
color: var(--dGray2);
}
.enter_darkmode>a {
text-align: center;
text-align: center;
}

View file

@ -1,9 +1,9 @@
.large-map {
min-height: 400px;
height: 600px;
min-height: 400px;
height: 600px;
}
.small-map {
min-height: 150px;
height: 250px;
min-height: 150px;
height: 250px;
}

View file

@ -1,15 +1,15 @@
@media print {
nav, form, footer, .btn, #form, #debts {
display: none;
}
#items {
display: flex;
}
#items-list {
order: 2;
}
#items-ordered {
order: 1;
margin-right: 50px;
}
nav, form, footer, .btn, #form, #debts {
display: none;
}
#items {
display: flex;
}
#items-list {
order: 2;
}
#items-ordered {
order: 1;
margin-right: 50px;
}
}

View file

@ -1,12 +1,12 @@
/*Darkmode*/
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#D0D0D8;
--dGray1:#8E8E93;
--dGray2:#636366;
--dGray3:#48484A;
--dGray4:#3A3A3C;
--dGray5:#2C2C2E;
--dGray6:#1C1C1E;
--dBlue:#0A84FF;
--dGray1:#8E8E93;
--dGray2:#636366;
--dGray3:#48484A;
--dGray4:#3A3A3C;
--dGray5:#2C2C2E;
--dGray6:#1C1C1E;
--dBlue:#0A84FF;
}

View file

@ -1,4 +1,4 @@
.background {
background-image: url("https://kelder.zeus.ugent.be/webcam/video/mjpg.cgi?profileid=2");
background-size: contain;
background-image: url("https://kelder.zeus.ugent.be/webcam/video/mjpg.cgi?profileid=2");
background-size: contain;
}

View file

@ -1,16 +1,16 @@
/*halloween*/
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#FFEB65;
--dGray1:#F28705;
--dGray2:#F25C05;
--dGray3:#F27405;
--dGray4:#8C3D0F;
--dGray5:#260101;
--dGray6:#260101;
--dBlue:#D91604;
--dGray1:#F28705;
--dGray2:#F25C05;
--dGray3:#F27405;
--dGray4:#8C3D0F;
--dGray5:#260101;
--dGray6:#260101;
--dBlue:#D91604;
}
.table-hover tbody tr:hover{
background-image: url("static/images/themes/halloween/Halloween.jpeg");
background-image: url("static/images/themes/halloween/Halloween.jpeg");
}

View file

@ -11,524 +11,524 @@ Enige discretie is aangeraden.
*/
/*high performance kerstmis*/
:root {
/*Darkmode colors*/
--dGray0:#F28705;
--dGray1:white;
--dGray2:#590212;
--dGray3:#590212;
--dGray4:#274001;
--dGray5:#274001;
--dGray6:#F2778D;
--dBlue:#F2778D; }
/*Darkmode colors*/
--dGray0:#F28705;
--dGray1:white;
--dGray2:#590212;
--dGray3:#590212;
--dGray4:#274001;
--dGray5:#274001;
--dGray6:#F2778D;
--dBlue:#F2778D; }
body {
height: 100%;
font-family: Radikal,Optima,Segoe,Segoe UI,Candara,Calibri,Arial,sans-serif;
background-color: #2F0000; }
height: 100%;
font-family: Radikal,Optima,Segoe,Segoe UI,Candara,Calibri,Arial,sans-serif;
background-color: #2F0000; }
@font-face {
font-family: Radikal;
src: url("static/fonts/radikal_regular.ttf");
font-weight: normal; }
font-family: Radikal;
src: url("static/fonts/radikal_regular.ttf");
font-weight: normal; }
@font-face {
font-family: Radikal;
src: url("static/fonts/radikal_light.ttf");
font-weight: 200; }
font-family: Radikal;
src: url("static/fonts/radikal_light.ttf");
font-weight: 200; }
@font-face {
font-family: Radikal;
src: url("static/fonts/radikal_medium.ttf");
font-weight: medium; }
font-family: Radikal;
src: url("static/fonts/radikal_medium.ttf");
font-weight: medium; }
@font-face {
font-family: Radikal;
src: url("static/fonts/radikal_bold.ttf");
font-weight: bold; }
font-family: Radikal;
src: url("static/fonts/radikal_bold.ttf");
font-weight: bold; }
.btn {
border-radius: 5rem;
color: white;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
background-image: linear-gradient(-40deg, #F53030, #F58B9E); }
border-radius: 5rem;
color: white;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
background-image: linear-gradient(-40deg, #F53030, #F58B9E); }
.btn:hover {
background-image: linear-gradient(-40deg, #A81111, #FF4B33); }
background-image: linear-gradient(-40deg, #A81111, #FF4B33); }
.navbar {
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
padding: 1.5rem;
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
text-transform: capitalize; }
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
padding: 1.5rem;
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
text-transform: capitalize; }
.nav > li > a {
padding-left: 1vw;
padding-right: 1vw; }
padding-left: 1vw;
padding-right: 1vw; }
.main {
height: 90vh;
overflow: scroll;
padding-left: 0;
padding-right: 0;
width: 100%;
display: flex;
align-items: center;
flex-direction: column; }
height: 90vh;
overflow: scroll;
padding-left: 0;
padding-right: 0;
width: 100%;
display: flex;
align-items: center;
flex-direction: column; }
.navbar .container {
width: 100%;
padding: 0 4vw; }
width: 100%;
padding: 0 4vw; }
@media (min-width: 768px) {
.container {
width: 100%; } }
.container {
width: 100%; } }
@media (min-width: 992px) {
.main .container, .main .orders {
width: 970px; } }
.main .container, .main .orders {
width: 970px; } }
@media (min-width: 1200px) {
.main .container, .main .orders {
width: 1170px; } }
.main .container, .main .orders {
width: 1170px; } }
.main {
padding-top: 2.5rem; }
padding-top: 2.5rem; }
.order_data {
display: flex;
flex-direction: row;
width: 100%;
justify-content: space-between;
padding: 0 3rem;
align-items: baseline; }
display: flex;
flex-direction: row;
width: 100%;
justify-content: space-between;
padding: 0 3rem;
align-items: baseline; }
.order_row {
background: transparent; }
background: transparent; }
.order_data h5 {
max-width: 60%;
padding-bottom: 3rem; }
max-width: 60%;
padding-bottom: 3rem; }
.expand_button {
padding: 1rem 0rem;
margin-top: -1rem;
width: 70%;
margin-bottom: 1.5rem; }
padding: 1rem 0rem;
margin-top: -1rem;
width: 70%;
margin-bottom: 1.5rem; }
.hi_im_haldis h2 {
display: none; }
display: none; }
.hi_im_haldis h3 {
width: 100%;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
text-align: center; }
width: 100%;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
text-align: center; }
.hi_im_haldis {
background: linear-gradient(70deg, rgba(203, 52, 68, 0.8), rgba(135, 32, 44, 0.8));
border-radius: 0;
width: 100%; }
background: linear-gradient(70deg, rgba(203, 52, 68, 0.8), rgba(135, 32, 44, 0.8));
border-radius: 0;
width: 100%; }
.hi_im_haldis_wrapper {
width: 100%; }
width: 100%; }
.darker:nth-child(even) {
background-color: #B62937;
border-radius: 2rem; }
background-color: #B62937;
border-radius: 2rem; }
.darker:nth-child(odd) {
background-color: #821C25;
border-radius: 2rem; }
background-color: #821C25;
border-radius: 2rem; }
.darker {
padding: 1rem; }
padding: 1rem; }
.order_row:nth-child(even) .order_data {
background-color: #B62937;
border-radius: 2rem; }
background-color: #B62937;
border-radius: 2rem; }
.order_row:nth-child(odd) .order_data {
background-color: #821C25;
border-radius: 2rem; }
background-color: #821C25;
border-radius: 2rem; }
.order_row h5 {
font-weight: bold; }
font-weight: bold; }
.order_row {
margin-bottom: 3rem; }
margin-bottom: 3rem; }
h3 {
padding-bottom: 1rem; }
padding-bottom: 1rem; }
.home_sir {
font-weight: bold;
color: #F45D68; }
font-weight: bold;
color: #F45D68; }
.expand_button_wrapper {
margin-top: -1rem;
width: 100%;
display: flex;
justify-content: center; }
margin-top: -1rem;
width: 100%;
display: flex;
justify-content: center; }
.time_data {
text-align: right;
display: flex;
flex-direction: column;
justify-self: right; }
text-align: right;
display: flex;
flex-direction: column;
justify-self: right; }
.navbar .navbar-nav .active a {
color: #ff9bae;
border-bottom: 1px solid #ff9bae;
padding-bottom: 1rem; }
color: #ff9bae;
border-bottom: 1px solid #ff9bae;
padding-bottom: 1rem; }
.navbar-nav {
padding-left: 2rem; }
padding-left: 2rem; }
.jumbotron, .darker {
display: flex;
flex-direction: column;
border-radius: 4rem; }
display: flex;
flex-direction: column;
border-radius: 4rem; }
.row > div > h5 {
font-weight: bold;
padding-top: 1.5rem;
font-size: 2.5rem; }
font-weight: bold;
padding-top: 1.5rem;
font-size: 2.5rem; }
.row > div > .amount_of_orders {
font-weight: lighter;
font-size: 1.6rem; }
font-weight: lighter;
font-size: 1.6rem; }
.row > div .time {
font-weight: lighter; }
font-weight: lighter; }
.jumbotron {
background-color: transparent; }
background-color: transparent; }
.navbar-default .navbar-nav .active a, .navbar-default .navbar-nav .active a:hover {
background-color: transparent; }
background-color: transparent; }
.background {
-webkit-filter: blur(0px) brightness(80%);
-moz-filter: blur(0px) brightness(80%);
-o-filter: blur(0px) brightness(80%);
-ms-filter: blur(0px) brightness(80%);
filter: blur(0px) brightness(80%);
position: fixed;
top: 0;
left: 0; }
-webkit-filter: blur(0px) brightness(80%);
-moz-filter: blur(0px) brightness(80%);
-o-filter: blur(0px) brightness(80%);
-ms-filter: blur(0px) brightness(80%);
filter: blur(0px) brightness(80%);
position: fixed;
top: 0;
left: 0; }
footer a {
color: #69E8FF; }
color: #69E8FF; }
footer {
position: fixed;
bottom: 0;
width: 100%;
background: #CB3444;
height: 5rem;
display: flex;
align-items: center; }
position: fixed;
bottom: 0;
width: 100%;
background: #CB3444;
height: 5rem;
display: flex;
align-items: center; }
footer > hr {
display: none; }
display: none; }
#mapid {
width: 100%; }
width: 100%; }
.order_overview, .order_order, .order_items, .order_ordered, .order_depts {
padding: 1rem 5rem 3rem 5rem; }
padding: 1rem 5rem 3rem 5rem; }
.order_overview {
width: 100%; }
width: 100%; }
.order_depts {
width: 100%;
margin-bottom: 10rem; }
width: 100%;
margin-bottom: 10rem; }
.location_data, .location_products {
width: 100%; }
width: 100%; }
.location_products {
margin-bottom: 10rem; }
margin-bottom: 10rem; }
.locations_locations {
padding: 1rem 5rem 3rem 5rem; }
padding: 1rem 5rem 3rem 5rem; }
.background_wrapper {
position: absolute;
left: 0;
bottom: 5rem;
width: 100%;
height: 100%;
overflow: hidden; }
position: absolute;
left: 0;
bottom: 5rem;
width: 100%;
height: 100%;
overflow: hidden; }
.christmas_background {
z-index: -101;
width: 300%;
height: 300%;
background: linear-gradient(-45deg, #2F0000, #C20A12);
animation: gradientBG 19s ease infinite; }
z-index: -101;
width: 300%;
height: 300%;
background: linear-gradient(-45deg, #2F0000, #C20A12);
animation: gradientBG 19s ease infinite; }
.sled {
width: 15rem;
height: 15rem;
transition: transform 2s ease-in 5s, rotate 1s ease-in-out 2s;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
background-image: url("static/images/themes/kerstmis/sled.svg"); }
width: 15rem;
height: 15rem;
transition: transform 2s ease-in 5s, rotate 1s ease-in-out 2s;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
background-image: url("static/images/themes/kerstmis/sled.svg"); }
.sled_wrapper {
top: 0.5rem;
left: -7.5rem;
position: absolute;
transform: translate(-50vw, 40vh) rotate(0deg);
width: 15rem;
height: 15rem;
animation: sled 29s ease-in-out infinite; }
top: 0.5rem;
left: -7.5rem;
position: absolute;
transform: translate(-50vw, 40vh) rotate(0deg);
width: 15rem;
height: 15rem;
animation: sled 29s ease-in-out infinite; }
.train_button:checked ~ .sled_wrapper:hover {
animation-play-state: paused; }
animation-play-state: paused; }
.train_button:checked ~ .sled_wrapper:hover .sled {
transform: translateY(100vh) rotate(90deg); }
transform: translateY(100vh) rotate(90deg); }
.snowman_wrapper {
height: 17rem;
width: 10rem;
position: absolute;
bottom: 15rem;
left: -12rem;
animation: snowman 37s ease infinite;
transform-origin: right bottom; }
height: 17rem;
width: 10rem;
position: absolute;
bottom: 15rem;
left: -12rem;
animation: snowman 37s ease infinite;
transform-origin: right bottom; }
.snowman_head {
position: absolute;
top: 0;
width: 10rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/snowman_head.svg");
animation: snowman_head 2s ease infinite; }
position: absolute;
top: 0;
width: 10rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/snowman_head.svg");
animation: snowman_head 2s ease infinite; }
.snowman_body {
position: absolute;
top: 9.5rem;
left: 0.5rem;
width: 10rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/snowman_body.svg"); }
position: absolute;
top: 9.5rem;
left: 0.5rem;
width: 10rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/snowman_body.svg"); }
.train_button:checked ~ .merry_christmas {
position: absolute;
top: 0;
width: 100%;
height: 100%;
background-position: center;
background-image: url("static/images/themes/kerstmis/merry_christmas.svg");
background-size: 25vw;
background-repeat: no-repeat;
animation: merry_christmas 5s ease infinite; }
position: absolute;
top: 0;
width: 100%;
height: 100%;
background-position: center;
background-image: url("static/images/themes/kerstmis/merry_christmas.svg");
background-size: 25vw;
background-repeat: no-repeat;
animation: merry_christmas 5s ease infinite; }
.train_button {
position: absolute;
transform: scaleX(20) scaleY(8) translateX(-100rem);
bottom: 5.5rem;
left: 7rem;
animation: follow_train 47s linear infinite;
opacity: 0; }
position: absolute;
transform: scaleX(20) scaleY(8) translateX(-100rem);
bottom: 5.5rem;
left: 7rem;
animation: follow_train 47s linear infinite;
opacity: 0; }
.train_wrapper {
position: absolute;
bottom: 0.5rem;
transform: translateX(-80vw);
animation: train 47s linear infinite; }
position: absolute;
bottom: 0.5rem;
transform: translateX(-80vw);
animation: train 47s linear infinite; }
.wheel_big, .wheel_small {
position: absolute;
bottom: -0.4rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/wheel.svg"); }
position: absolute;
bottom: -0.4rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/wheel.svg"); }
.train {
position: absolute;
bottom: 0.5rem;
left: 30rem;
width: 30rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/train.svg");
animation: whobble 1s linear alternate-reverse infinite; }
position: absolute;
bottom: 0.5rem;
left: 30rem;
width: 30rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/train.svg");
animation: whobble 1s linear alternate-reverse infinite; }
.wheel_big {
width: 3.2rem;
height: 3.2rem; }
width: 3.2rem;
height: 3.2rem; }
.wheel_small {
width: 2.5rem;
height: 2.5rem; }
width: 2.5rem;
height: 2.5rem; }
.train .wheel1 {
animation: turn 2s linear infinite;
left: 3.5rem; }
animation: turn 2s linear infinite;
left: 3.5rem; }
.train .wheel2 {
animation: turn 2s linear infinite, -0.1s;
left: 7rem; }
animation: turn 2s linear infinite, -0.1s;
left: 7rem; }
.train .wheel3 {
animation: turn 2s linear infinite -0.3s;
left: 10.5rem; }
animation: turn 2s linear infinite -0.3s;
left: 10.5rem; }
.train .wheel4 {
animation: turn 1.5s linear infinite -0.5s;
left: 13.9rem; }
animation: turn 1.5s linear infinite -0.5s;
left: 13.9rem; }
.train .wheel5 {
animation: turn 1.5s linear infinite -0.7s;
left: 16.6rem; }
animation: turn 1.5s linear infinite -0.7s;
left: 16.6rem; }
.zeus_wagon, .mc_wagon {
position: absolute;
bottom: 1.25rem;
width: 30rem;
height: 7.5rem;
background-repeat: no-repeat;
background-size: contain;
animation: whobble 1s linear alternate-reverse infinite; }
position: absolute;
bottom: 1.25rem;
width: 30rem;
height: 7.5rem;
background-repeat: no-repeat;
background-size: contain;
animation: whobble 1s linear alternate-reverse infinite; }
.mc_wagon {
background-image: url("static/images/themes/kerstmis/mc_wagon.svg");
left: 0rem; }
background-image: url("static/images/themes/kerstmis/mc_wagon.svg");
left: 0rem; }
.zeus_wagon {
background-image: url("static/images/themes/kerstmis/zeus_wagon.svg");
left: 15rem; }
background-image: url("static/images/themes/kerstmis/zeus_wagon.svg");
left: 15rem; }
.zeus_wagon .wheel1, .mc_wagon .wheel1 {
animation: turn 2s linear infinite;
bottom: -1.1rem;
left: 2.2rem; }
animation: turn 2s linear infinite;
bottom: -1.1rem;
left: 2.2rem; }
.zeus_wagon .wheel2, .mc_wagon .wheel2 {
animation: turn 2s linear infinite, -0.1s;
bottom: -1.1rem;
left: 5.75rem; }
animation: turn 2s linear infinite, -0.1s;
bottom: -1.1rem;
left: 5.75rem; }
.zeus_wagon .wheel3, .mc_wagon .wheel3 {
animation: turn 2s linear infinite -0.3s;
bottom: -1.1rem;
left: 9.3rem; }
animation: turn 2s linear infinite -0.3s;
bottom: -1.1rem;
left: 9.3rem; }
.snow {
border-radius: 50%;
opacity: 0.8;
position: absolute;
top: -100vh;
animation-name: fall;
animation-timing-function: linear;
animation-iteration-count: infinite; }
border-radius: 50%;
opacity: 0.8;
position: absolute;
top: -100vh;
animation-name: fall;
animation-timing-function: linear;
animation-iteration-count: infinite; }
.layer1 {
width: 1rem;
height: 1rem;
filter: blur(1.5px);
box-shadow: 71vw 89.7vh 0 -0.13rem#fff,37.6vw 73.2vh 0 -0.46rem#fff,31.1vw 76.6vh 0 -0.42rem#fff,41.5vw 94vh 0 -0.3rem#fff,76.7vw 28.6vh 0 -0.18rem#fff,21.7vw 70.7vh 0 -0.34rem#fff,14.6vw 72.9vh 0 -0.04rem#fff,72vw 50vh 0 -0.12rem#fff,89.6vw 90.4vh 0 -0.45rem#fff,49.7vw 21.5vh 0 -0.02rem#fff,15.8vw 87.2vh 0 -0.04rem#fff,46.3vw 85.9vh 0 -0.24rem#fff,91.6vw 7.4vh 0 -0.11rem#fff,83.3vw 60.5vh 0 -0.06rem#fff,15.2vw 3.2vh 0 -0.31rem#fff,52.9vw 54.1vh 0 -0.48rem#fff,58.9vw 42.1vh 0 -0.07rem#fff,40.7vw 10.5vh 0 -0.25rem#fff,53.7vw 74.5vh 0 -0.33rem#fff,89vw 50.9vh 0 -0.2rem#fff,35vw 22.6vh 0 -0.2rem#fff,18.9vw 66.4vh 0 -0.33rem#fff,66.8vw 22.9vh 0 -0.05rem#fff,34.3vw 46.9vh 0 -0.26rem#fff,72.9vw 33.1vh 0 -0.25rem#fff,23.2vw 2.5vh 0 -0.16rem#fff,60.3vw 21.6vh 0 -0.35rem#fff,14.3vw 0.6vh 0 -0.09rem#fff,95.6vw 72.2vh 0 -0.03rem#fff,4vw 28.6vh 0 -0.17rem#fff,40.8vw 67.7vh 0 -0.16rem#fff,85vw 88.1vh 0 -0.41rem#fff,37.4vw 50.1vh 0 -0.07rem#fff,50.8vw 39.8vh 0 -0.01rem#fff,14.4vw 95.1vh 0 -0.23rem#fff,77.7vw 10.2vh 0 -0.14rem#fff,35.1vw 59vh 0 -0.03rem#fff,45.8vw 42.4vh 0 -0.37rem#fff,48.3vw 51.3vh 0 -0.45rem#fff,98.3vw 5.8vh 0 -0.26rem#fff,2.4vw 88vh 0 -0.17rem#fff,16vw 49.1vh 0 -0.39rem#fff,76.6vw 42.6vh 0 -0.25rem#fff,17.2vw 44.5vh 0 -0.1rem#fff,51.2vw 73.7vh 0 -0.33rem#fff,31.7vw 59.2vh 0 -0.47rem#fff,32.4vw 68.9vh 0 -0.07rem#fff,3.7vw 94.8vh 0 -0.33rem#fff,55.3vw 3.8vh 0 -0.24rem#fff,25.3vw 81.2vh 0 -0.21rem#fff,68.2vw 97.6vh 0 -0.27rem#fff,43.4vw 56.5vh 0 -0.06rem#fff,40.6vw 98.7vh 0 -0.49rem#fff,41.2vw 37.2vh 0 -0.22rem#fff,66.7vw 21.2vh 0 -0.32rem#fff,3.6vw 75.9vh 0 -0.04rem#fff,66.2vw 71.2vh 0 -0.33rem#fff,30.6vw 59.9vh 0 -0.02rem#fff,22.6vw 72.1vh 0 -0.02rem#fff,93.9vw 9.7vh 0 -0.19rem#fff,99.1vw 73.3vh 0 -0.07rem#fff,48.4vw 94.2vh 0 -0.33rem#fff,44.1vw 55.1vh 0 -0.35rem#fff,98.3vw 34vh 0 -0.07rem#fff,85.1vw 30.4vh 0 -0.42rem#fff,65.2vw 21.4vh 0 -0.05rem#fff,72.1vw 92.9vh 0 -0.48rem#fff,25.8vw 53.6vh 0 -0.02rem#fff,13.8vw 12.7vh 0 -0.26rem#fff,79.4vw 94.9vh 0 -0.06rem#fff,41.8vw 56.2vh 0 -0.31rem#fff,67.4vw 20.2vh 0 -0.34rem#fff,35.6vw 88.7vh 0 -0.1rem#fff,12.5vw 20.1vh 0 -0.06rem#fff,30.3vw 32.7vh 0 -0.34rem#fff,51.4vw 84.2vh 0 -0.15rem#fff,16.2vw 80.1vh 0 -0.31rem#fff,6.1vw 14.1vh 0 -0.41rem#fff,86.6vw 55.9vh 0 -0.41rem#fff,43.5vw 75.9vh 0 -0.45rem#fff,77.5vw 20.4vh 0 -0.12rem#fff,67.7vw 97.6vh 0 -0.08rem#fff,0.8vw 18.1vh 0 -0.33rem#fff,60.6vw 21.3vh 0 -0.19rem#fff,70.2vw 79.3vh 0 -0.26rem#fff,50.8vw 68.8vh 0 -0.35rem#fff,53.9vw 12.5vh 0 -0.39rem#fff,76.4vw 45.9vh 0 -0.12rem#fff,11.5vw 58.7vh 0 -0.31rem#fff,76.3vw 74.7vh 0 -0.4rem#fff,4.7vw 46.7vh 0 -0.39rem#fff,54.5vw 63.6vh 0 -0.28rem#fff,51.6vw 65.9vh 0 -0.3rem#fff,65.9vw 47.6vh 0 -0.08rem#fff,91.6vw 58.8vh 0 -0.12rem#fff,26.9vw 71.6vh 0 -0.36rem#fff,59.7vw 71.2vh 0 -0.37rem#fff,47.1vw 16.2vh 0 -0.14rem#fff,72.4vw 45.7vh 0 -0.06rem#fff,30.8vw 39.3vh 0 -0.38rem#fff;
animation-duration: 18s; }
width: 1rem;
height: 1rem;
filter: blur(1.5px);
box-shadow: 71vw 89.7vh 0 -0.13rem#fff,37.6vw 73.2vh 0 -0.46rem#fff,31.1vw 76.6vh 0 -0.42rem#fff,41.5vw 94vh 0 -0.3rem#fff,76.7vw 28.6vh 0 -0.18rem#fff,21.7vw 70.7vh 0 -0.34rem#fff,14.6vw 72.9vh 0 -0.04rem#fff,72vw 50vh 0 -0.12rem#fff,89.6vw 90.4vh 0 -0.45rem#fff,49.7vw 21.5vh 0 -0.02rem#fff,15.8vw 87.2vh 0 -0.04rem#fff,46.3vw 85.9vh 0 -0.24rem#fff,91.6vw 7.4vh 0 -0.11rem#fff,83.3vw 60.5vh 0 -0.06rem#fff,15.2vw 3.2vh 0 -0.31rem#fff,52.9vw 54.1vh 0 -0.48rem#fff,58.9vw 42.1vh 0 -0.07rem#fff,40.7vw 10.5vh 0 -0.25rem#fff,53.7vw 74.5vh 0 -0.33rem#fff,89vw 50.9vh 0 -0.2rem#fff,35vw 22.6vh 0 -0.2rem#fff,18.9vw 66.4vh 0 -0.33rem#fff,66.8vw 22.9vh 0 -0.05rem#fff,34.3vw 46.9vh 0 -0.26rem#fff,72.9vw 33.1vh 0 -0.25rem#fff,23.2vw 2.5vh 0 -0.16rem#fff,60.3vw 21.6vh 0 -0.35rem#fff,14.3vw 0.6vh 0 -0.09rem#fff,95.6vw 72.2vh 0 -0.03rem#fff,4vw 28.6vh 0 -0.17rem#fff,40.8vw 67.7vh 0 -0.16rem#fff,85vw 88.1vh 0 -0.41rem#fff,37.4vw 50.1vh 0 -0.07rem#fff,50.8vw 39.8vh 0 -0.01rem#fff,14.4vw 95.1vh 0 -0.23rem#fff,77.7vw 10.2vh 0 -0.14rem#fff,35.1vw 59vh 0 -0.03rem#fff,45.8vw 42.4vh 0 -0.37rem#fff,48.3vw 51.3vh 0 -0.45rem#fff,98.3vw 5.8vh 0 -0.26rem#fff,2.4vw 88vh 0 -0.17rem#fff,16vw 49.1vh 0 -0.39rem#fff,76.6vw 42.6vh 0 -0.25rem#fff,17.2vw 44.5vh 0 -0.1rem#fff,51.2vw 73.7vh 0 -0.33rem#fff,31.7vw 59.2vh 0 -0.47rem#fff,32.4vw 68.9vh 0 -0.07rem#fff,3.7vw 94.8vh 0 -0.33rem#fff,55.3vw 3.8vh 0 -0.24rem#fff,25.3vw 81.2vh 0 -0.21rem#fff,68.2vw 97.6vh 0 -0.27rem#fff,43.4vw 56.5vh 0 -0.06rem#fff,40.6vw 98.7vh 0 -0.49rem#fff,41.2vw 37.2vh 0 -0.22rem#fff,66.7vw 21.2vh 0 -0.32rem#fff,3.6vw 75.9vh 0 -0.04rem#fff,66.2vw 71.2vh 0 -0.33rem#fff,30.6vw 59.9vh 0 -0.02rem#fff,22.6vw 72.1vh 0 -0.02rem#fff,93.9vw 9.7vh 0 -0.19rem#fff,99.1vw 73.3vh 0 -0.07rem#fff,48.4vw 94.2vh 0 -0.33rem#fff,44.1vw 55.1vh 0 -0.35rem#fff,98.3vw 34vh 0 -0.07rem#fff,85.1vw 30.4vh 0 -0.42rem#fff,65.2vw 21.4vh 0 -0.05rem#fff,72.1vw 92.9vh 0 -0.48rem#fff,25.8vw 53.6vh 0 -0.02rem#fff,13.8vw 12.7vh 0 -0.26rem#fff,79.4vw 94.9vh 0 -0.06rem#fff,41.8vw 56.2vh 0 -0.31rem#fff,67.4vw 20.2vh 0 -0.34rem#fff,35.6vw 88.7vh 0 -0.1rem#fff,12.5vw 20.1vh 0 -0.06rem#fff,30.3vw 32.7vh 0 -0.34rem#fff,51.4vw 84.2vh 0 -0.15rem#fff,16.2vw 80.1vh 0 -0.31rem#fff,6.1vw 14.1vh 0 -0.41rem#fff,86.6vw 55.9vh 0 -0.41rem#fff,43.5vw 75.9vh 0 -0.45rem#fff,77.5vw 20.4vh 0 -0.12rem#fff,67.7vw 97.6vh 0 -0.08rem#fff,0.8vw 18.1vh 0 -0.33rem#fff,60.6vw 21.3vh 0 -0.19rem#fff,70.2vw 79.3vh 0 -0.26rem#fff,50.8vw 68.8vh 0 -0.35rem#fff,53.9vw 12.5vh 0 -0.39rem#fff,76.4vw 45.9vh 0 -0.12rem#fff,11.5vw 58.7vh 0 -0.31rem#fff,76.3vw 74.7vh 0 -0.4rem#fff,4.7vw 46.7vh 0 -0.39rem#fff,54.5vw 63.6vh 0 -0.28rem#fff,51.6vw 65.9vh 0 -0.3rem#fff,65.9vw 47.6vh 0 -0.08rem#fff,91.6vw 58.8vh 0 -0.12rem#fff,26.9vw 71.6vh 0 -0.36rem#fff,59.7vw 71.2vh 0 -0.37rem#fff,47.1vw 16.2vh 0 -0.14rem#fff,72.4vw 45.7vh 0 -0.06rem#fff,30.8vw 39.3vh 0 -0.38rem#fff;
animation-duration: 18s; }
.layer1.a {
animation-delay: -9s; }
animation-delay: -9s; }
.layer2 {
width: 0.8rem;
height: 0.8rem;
filter: blur(3px);
box-shadow: 71.8vw 15.9vh 0 -0.3rem#fff,4.2vw 8.1vh 0 -0.41rem#fff,67.5vw 49.2vh 0 -0.28rem#fff,72vw 97.8vh 0 -0.22rem#fff,78.1vw 28vh 0 -0.41rem#fff,34.2vw 51.7vh 0 -0.47rem#fff,37.9vw 76.5vh 0 -0.39rem#fff,92.6vw 36.3vh 0 -0.22rem#fff,59.9vw 8.6vh 0 -0.07rem#fff,32.5vw 74vh 0 -0.07rem#fff,75.7vw 81.6vh 0 -0.12rem#fff,1.7vw 18.5vh 0 -0.2rem#fff,12.3vw 64.7vh 0 -0.37rem#fff,83.9vw 47vh 0 -0.12rem#fff,33.8vw 21.3vh 0 -0.14rem#fff,6.5vw 92.5vh 0 -0.29rem#fff,72.2vw 60.8vh 0 -0.17rem#fff,38.4vw 16vh 0 -0.17rem#fff,23.9vw 58.4vh 0 -0.32rem#fff,40.2vw 52.4vh 0 -0.23rem#fff,48.9vw 74.6vh 0 -0.03rem#fff,61.5vw 36.1vh 0 -0.49rem#fff,60.9vw 94.5vh 0 -0.42rem#fff,2.8vw 59.7vh 0 -0.27rem#fff,62.6vw 32.4vh 0 -0.45rem#fff,91.3vw 18vh 0 -0.09rem#fff,35.9vw 35.5vh 0 -0.11rem#fff,60.2vw 95.5vh 0 -0.21rem#fff,19.8vw 46.5vh 0 -0.09rem#fff,57.7vw 20.7vh 0 -0.03rem#fff,69.8vw 33.8vh 0 -0.34rem#fff,69.1vw 71.5vh 0 -0.45rem#fff,70.5vw 87.9vh 0 -0.5rem#fff,77vw 34.9vh 0 -0.43rem#fff,35.6vw 28.7vh 0 -0.14rem#fff,28.6vw 22.7vh 0 -0.47rem#fff,46.3vw 7.1vh 0 -0.06rem#fff,66.6vw 92.6vh 0 -0.32rem#fff,96.5vw 19.1vh 0 -0.12rem#fff,24.6vw 45.5vh 0 -0.27rem#fff,71.6vw 85.8vh 0 -0.16rem#fff,1.1vw 44.9vh 0 -0.36rem#fff,94.4vw 84.2vh 0 -0.19rem#fff,92.2vw 20.2vh 0 -0.27rem#fff,42.5vw 66.1vh 0 -0.46rem#fff,70.8vw 98.4vh 0 -0.01rem#fff,71.7vw 99vh 0 -0.19rem#fff,0.2vw 34.1vh 0 -0.22rem#fff,87.3vw 30.7vh 0 -0.09rem#fff,80.3vw 93.8vh 0 -0.41rem#fff,72.2vw 8.3vh 0 -0.09rem#fff,27.1vw 46.1vh 0 -0.15rem#fff,10.2vw 93.6vh 0 -0.42rem#fff,76vw 51.5vh 0 -0.26rem#fff,28.7vw 76.3vh 0 -0.11rem#fff,85.1vw 21.2vh 0 -0.46rem#fff,25.9vw 82.2vh 0 -0.34rem#fff,32.3vw 69.8vh 0 -0.29rem#fff,97.3vw 56.8vh 0 -0.26rem#fff,48.2vw 29.6vh 0 -0.28rem#fff,76.2vw 61.9vh 0 -0.1rem#fff,62vw 96vh 0 -0.01rem#fff,76vw 79.9vh 0 -0.36rem#fff,59.9vw 86.8vh 0 -0.22rem#fff,72.8vw 92.3vh 0 -0.02rem#fff,62.7vw 55.9vh 0 -0.46rem#fff,81.1vw 53.3vh 0 -0.09rem#fff,42.4vw 20.2vh 0 -0.15rem#fff,72.7vw 95.8vh 0 -0.26rem#fff,67.6vw 11vh 0 -0.08rem#fff,62.5vw 99vh 0 -0.17rem#fff,52.7vw 46.1vh 0 -0.35rem#fff,49.7vw 73vh 0 -0.33rem#fff,1.9vw 25.1vh 0 -0.06rem#fff,25.6vw 11.6vh 0 -0.43rem#fff,9.7vw 28.4vh 0 -0.11rem#fff,52.1vw 87.4vh 0 -0.45rem#fff,94.6vw 3.6vh 0 -0.37rem#fff,67.5vw 67vh 0 -0.29rem#fff,45.4vw 34.9vh 0 -0.02rem#fff,41.6vw 99.6vh 0 -0.34rem#fff,26.3vw 53vh 0 -0.01rem#fff,41.2vw 73.7vh 0 -0.36rem#fff,6.9vw 29.5vh 0 -0.17rem#fff,25.1vw 39.2vh 0 -0.2rem#fff,93.2vw 58.2vh 0 -0.3rem#fff,93.2vw 58.2vh 0 -0.31rem#fff,91.7vw 29vh 0 -0.01rem#fff,90.1vw 25.4vh 0 -0.23rem#fff,12.2vw 98.7vh 0 -0.33rem#fff,88vw 73.3vh 0 -0.29rem#fff,91.5vw 61vh 0 -0.43rem#fff,96.1vw 70.8vh 0 -0.21rem#fff,98.2vw 55.4vh 0 -0.27rem#fff,15.2vw 59vh 0 -0.34rem#fff,66.3vw 83.5vh 0 -0.05rem#fff,49vw 8.5vh 0 -0.47rem#fff,93.3vw 91.7vh 0 -0.17rem#fff,15.4vw 35.4vh 0 -0.47rem#fff,14.3vw 48.5vh 0 -0.44rem#fff;
animation-duration: 24s; }
width: 0.8rem;
height: 0.8rem;
filter: blur(3px);
box-shadow: 71.8vw 15.9vh 0 -0.3rem#fff,4.2vw 8.1vh 0 -0.41rem#fff,67.5vw 49.2vh 0 -0.28rem#fff,72vw 97.8vh 0 -0.22rem#fff,78.1vw 28vh 0 -0.41rem#fff,34.2vw 51.7vh 0 -0.47rem#fff,37.9vw 76.5vh 0 -0.39rem#fff,92.6vw 36.3vh 0 -0.22rem#fff,59.9vw 8.6vh 0 -0.07rem#fff,32.5vw 74vh 0 -0.07rem#fff,75.7vw 81.6vh 0 -0.12rem#fff,1.7vw 18.5vh 0 -0.2rem#fff,12.3vw 64.7vh 0 -0.37rem#fff,83.9vw 47vh 0 -0.12rem#fff,33.8vw 21.3vh 0 -0.14rem#fff,6.5vw 92.5vh 0 -0.29rem#fff,72.2vw 60.8vh 0 -0.17rem#fff,38.4vw 16vh 0 -0.17rem#fff,23.9vw 58.4vh 0 -0.32rem#fff,40.2vw 52.4vh 0 -0.23rem#fff,48.9vw 74.6vh 0 -0.03rem#fff,61.5vw 36.1vh 0 -0.49rem#fff,60.9vw 94.5vh 0 -0.42rem#fff,2.8vw 59.7vh 0 -0.27rem#fff,62.6vw 32.4vh 0 -0.45rem#fff,91.3vw 18vh 0 -0.09rem#fff,35.9vw 35.5vh 0 -0.11rem#fff,60.2vw 95.5vh 0 -0.21rem#fff,19.8vw 46.5vh 0 -0.09rem#fff,57.7vw 20.7vh 0 -0.03rem#fff,69.8vw 33.8vh 0 -0.34rem#fff,69.1vw 71.5vh 0 -0.45rem#fff,70.5vw 87.9vh 0 -0.5rem#fff,77vw 34.9vh 0 -0.43rem#fff,35.6vw 28.7vh 0 -0.14rem#fff,28.6vw 22.7vh 0 -0.47rem#fff,46.3vw 7.1vh 0 -0.06rem#fff,66.6vw 92.6vh 0 -0.32rem#fff,96.5vw 19.1vh 0 -0.12rem#fff,24.6vw 45.5vh 0 -0.27rem#fff,71.6vw 85.8vh 0 -0.16rem#fff,1.1vw 44.9vh 0 -0.36rem#fff,94.4vw 84.2vh 0 -0.19rem#fff,92.2vw 20.2vh 0 -0.27rem#fff,42.5vw 66.1vh 0 -0.46rem#fff,70.8vw 98.4vh 0 -0.01rem#fff,71.7vw 99vh 0 -0.19rem#fff,0.2vw 34.1vh 0 -0.22rem#fff,87.3vw 30.7vh 0 -0.09rem#fff,80.3vw 93.8vh 0 -0.41rem#fff,72.2vw 8.3vh 0 -0.09rem#fff,27.1vw 46.1vh 0 -0.15rem#fff,10.2vw 93.6vh 0 -0.42rem#fff,76vw 51.5vh 0 -0.26rem#fff,28.7vw 76.3vh 0 -0.11rem#fff,85.1vw 21.2vh 0 -0.46rem#fff,25.9vw 82.2vh 0 -0.34rem#fff,32.3vw 69.8vh 0 -0.29rem#fff,97.3vw 56.8vh 0 -0.26rem#fff,48.2vw 29.6vh 0 -0.28rem#fff,76.2vw 61.9vh 0 -0.1rem#fff,62vw 96vh 0 -0.01rem#fff,76vw 79.9vh 0 -0.36rem#fff,59.9vw 86.8vh 0 -0.22rem#fff,72.8vw 92.3vh 0 -0.02rem#fff,62.7vw 55.9vh 0 -0.46rem#fff,81.1vw 53.3vh 0 -0.09rem#fff,42.4vw 20.2vh 0 -0.15rem#fff,72.7vw 95.8vh 0 -0.26rem#fff,67.6vw 11vh 0 -0.08rem#fff,62.5vw 99vh 0 -0.17rem#fff,52.7vw 46.1vh 0 -0.35rem#fff,49.7vw 73vh 0 -0.33rem#fff,1.9vw 25.1vh 0 -0.06rem#fff,25.6vw 11.6vh 0 -0.43rem#fff,9.7vw 28.4vh 0 -0.11rem#fff,52.1vw 87.4vh 0 -0.45rem#fff,94.6vw 3.6vh 0 -0.37rem#fff,67.5vw 67vh 0 -0.29rem#fff,45.4vw 34.9vh 0 -0.02rem#fff,41.6vw 99.6vh 0 -0.34rem#fff,26.3vw 53vh 0 -0.01rem#fff,41.2vw 73.7vh 0 -0.36rem#fff,6.9vw 29.5vh 0 -0.17rem#fff,25.1vw 39.2vh 0 -0.2rem#fff,93.2vw 58.2vh 0 -0.3rem#fff,93.2vw 58.2vh 0 -0.31rem#fff,91.7vw 29vh 0 -0.01rem#fff,90.1vw 25.4vh 0 -0.23rem#fff,12.2vw 98.7vh 0 -0.33rem#fff,88vw 73.3vh 0 -0.29rem#fff,91.5vw 61vh 0 -0.43rem#fff,96.1vw 70.8vh 0 -0.21rem#fff,98.2vw 55.4vh 0 -0.27rem#fff,15.2vw 59vh 0 -0.34rem#fff,66.3vw 83.5vh 0 -0.05rem#fff,49vw 8.5vh 0 -0.47rem#fff,93.3vw 91.7vh 0 -0.17rem#fff,15.4vw 35.4vh 0 -0.47rem#fff,14.3vw 48.5vh 0 -0.44rem#fff;
animation-duration: 24s; }
.layer2.a {
animation-delay: -12s; }
animation-delay: -12s; }
.layer3 {
width: 0.6rem;
height: 0.6rem;
filter: blur(6px);
box-shadow: 23.4vw 84.5vh 0 -0.38rem#fff,47.1vw 27.7vh 0 -0.23rem#fff,57.9vw 71.8vh 0 -0.09rem#fff,99vw 88.7vh 0 -0.37rem#fff,69vw 41.3vh 0 -0.14rem#fff,44.7vw 79.1vh 0 -0.4rem#fff,53.2vw 22.3vh 0 -0.5rem#fff,37.8vw 79.6vh 0 -0.08rem#fff,46.1vw 40.6vh 0 -0.2rem#fff,9.8vw 50.6vh 0 -0.05rem#fff,45.6vw 13.3vh 0 -0.02rem#fff,23.3vw 18.3vh 0 -0.32rem#fff,38.4vw 20.4vh 0 -0.22rem#fff,37.5vw 34.1vh 0 -0.21rem#fff,31vw 96.9vh 0 -0.1rem#fff,6.8vw 99vh 0 -0.49rem#fff,19.7vw 13.4vh 0 -0.28rem#fff,24vw 16.4vh 0 -0.09rem#fff,98.6vw 17.6vh 0 -0.08rem#fff,5.2vw 26.8vh 0 -0.35rem#fff,60.5vw 57.7vh 0 -0.34rem#fff,63.4vw 34.1vh 0 -0.46rem#fff,62.2vw 9.9vh 0 -0.13rem#fff,31.8vw 40vh 0 -0.19rem#fff,28vw 68.9vh 0 -0.33rem#fff,74.5vw 21.3vh 0 -0.32rem#fff,30.8vw 29.5vh 0 -0.25rem#fff,80.3vw 28vh 0 -0.12rem#fff,88.7vw 47.8vh 0 -0.33rem#fff,7.9vw 70.8vh 0 -0.46rem#fff,26.6vw 49.2vh 0 -0.04rem#fff,98.4vw 42.8vh 0 -0.09rem#fff,62.5vw 64.5vh 0 -0.48rem#fff,60.7vw 92.5vh 0 -0.13rem#fff,2.8vw 99.2vh 0 -0.49rem#fff,81.4vw 21.3vh 0 -0.4rem#fff,83.4vw 47.1vh 0 -0.46rem#fff,79.2vw 2.6vh 0 -0.17rem#fff,17.7vw 3.1vh 0 -0.12rem#fff,66.4vw 98.4vh 0 -0.34rem#fff,59.5vw 51.1vh 0 -0.2rem#fff,5.8vw 28.2vh 0 -0.41rem#fff,9.7vw 54vh 0 -0.48rem#fff,24.1vw 98.3vh 0 -0.29rem#fff,9.7vw 73.1vh 0 -0.44rem#fff,10vw 53.7vh 0 -0.5rem#fff,37.7vw 16.1vh 0 -0.31rem#fff,43.9vw 51.8vh 0 -0.29rem#fff,70.8vw 54vh 0 -0.19rem#fff,61.5vw 91vh 0 -0.41rem#fff,87.1vw 13.1vh 0 -0.22rem#fff,89.6vw 34.1vh 0 -0.25rem#fff,52.8vw 38.1vh 0 -0.33rem#fff,88.4vw 79.4vh 0 -0.22rem#fff,84.4vw 84.6vh 0 -0.1rem#fff,69.4vw 8.7vh 0 -0.46rem#fff,8.8vw 73.7vh 0 -0.19rem#fff,89.3vw 14.7vh 0 -0.1rem#fff,100vw 72.7vh 0 -0.2rem#fff,16.9vw 93.8vh 0 -0.22rem#fff,90.7vw 36.1vh 0 -0.43rem#fff,46.6vw 49.6vh 0 -0.21rem#fff,57.3vw 72.3vh 0 -0.03rem#fff,49.7vw 2vh 0 -0.15rem#fff,67vw 96.2vh 0 -0.47rem#fff,86vw 71.7vh 0 -0.11rem#fff,66vw 65.8vh 0 -0.32rem#fff,85.2vw 7.6vh 0 -0.12rem#fff,95.9vw 49.4vh 0 -0.15rem#fff,33.2vw 66.6vh 0 -0.14rem#fff,75.4vw 26.3vh 0 -0.02rem#fff,52.7vw 56vh 0 -0.11rem#fff,37.7vw 77vh 0 -0.18rem#fff,26.3vw 59.9vh 0 -0.18rem#fff,88.2vw 74.6vh 0 -0.39rem#fff,89.5vw 61.2vh 0 -0.48rem#fff,62vw 79.5vh 0 -0.4rem#fff,98.7vw 3.9vh 0 -0.01rem#fff,63.3vw 32vh 0 -0.43rem#fff,49.6vw 28.5vh 0 -0.09rem#fff,70vw 87vh 0 -0.05rem#fff,38.3vw 67.3vh 0 -0.49rem#fff,41.8vw 82.5vh 0 -0.36rem#fff,85.8vw 74vh 0 -0.07rem#fff,82.3vw 48.8vh 0 -0.11rem#fff,35.2vw 79.8vh 0 -0.4rem#fff,73.3vw 72.4vh 0 -0.36rem#fff,62.4vw 30.5vh 0 -0.14rem#fff,48.5vw 51.9vh 0 -0.03rem#fff,74.6vw 51.1vh 0 -0.35rem#fff,62.6vw 12.8vh 0 -0.33rem#fff,10vw 72.1vh 0 -0.2rem#fff,59vw 50.5vh 0 -0.04rem#fff,79.1vw 60.1vh 0 -0.34rem#fff,77.5vw 45.1vh 0 -0.23rem#fff,53vw 77.3vh 0 -0.4rem#fff,46.8vw 52.1vh 0 -0.44rem#fff,60.7vw 81vh 0 -0.17rem#fff,86.2vw 53.9vh 0 -0.01rem#fff,85.8vw 79.2vh 0 -0.39rem#fff;
animation-duration: 30s; }
width: 0.6rem;
height: 0.6rem;
filter: blur(6px);
box-shadow: 23.4vw 84.5vh 0 -0.38rem#fff,47.1vw 27.7vh 0 -0.23rem#fff,57.9vw 71.8vh 0 -0.09rem#fff,99vw 88.7vh 0 -0.37rem#fff,69vw 41.3vh 0 -0.14rem#fff,44.7vw 79.1vh 0 -0.4rem#fff,53.2vw 22.3vh 0 -0.5rem#fff,37.8vw 79.6vh 0 -0.08rem#fff,46.1vw 40.6vh 0 -0.2rem#fff,9.8vw 50.6vh 0 -0.05rem#fff,45.6vw 13.3vh 0 -0.02rem#fff,23.3vw 18.3vh 0 -0.32rem#fff,38.4vw 20.4vh 0 -0.22rem#fff,37.5vw 34.1vh 0 -0.21rem#fff,31vw 96.9vh 0 -0.1rem#fff,6.8vw 99vh 0 -0.49rem#fff,19.7vw 13.4vh 0 -0.28rem#fff,24vw 16.4vh 0 -0.09rem#fff,98.6vw 17.6vh 0 -0.08rem#fff,5.2vw 26.8vh 0 -0.35rem#fff,60.5vw 57.7vh 0 -0.34rem#fff,63.4vw 34.1vh 0 -0.46rem#fff,62.2vw 9.9vh 0 -0.13rem#fff,31.8vw 40vh 0 -0.19rem#fff,28vw 68.9vh 0 -0.33rem#fff,74.5vw 21.3vh 0 -0.32rem#fff,30.8vw 29.5vh 0 -0.25rem#fff,80.3vw 28vh 0 -0.12rem#fff,88.7vw 47.8vh 0 -0.33rem#fff,7.9vw 70.8vh 0 -0.46rem#fff,26.6vw 49.2vh 0 -0.04rem#fff,98.4vw 42.8vh 0 -0.09rem#fff,62.5vw 64.5vh 0 -0.48rem#fff,60.7vw 92.5vh 0 -0.13rem#fff,2.8vw 99.2vh 0 -0.49rem#fff,81.4vw 21.3vh 0 -0.4rem#fff,83.4vw 47.1vh 0 -0.46rem#fff,79.2vw 2.6vh 0 -0.17rem#fff,17.7vw 3.1vh 0 -0.12rem#fff,66.4vw 98.4vh 0 -0.34rem#fff,59.5vw 51.1vh 0 -0.2rem#fff,5.8vw 28.2vh 0 -0.41rem#fff,9.7vw 54vh 0 -0.48rem#fff,24.1vw 98.3vh 0 -0.29rem#fff,9.7vw 73.1vh 0 -0.44rem#fff,10vw 53.7vh 0 -0.5rem#fff,37.7vw 16.1vh 0 -0.31rem#fff,43.9vw 51.8vh 0 -0.29rem#fff,70.8vw 54vh 0 -0.19rem#fff,61.5vw 91vh 0 -0.41rem#fff,87.1vw 13.1vh 0 -0.22rem#fff,89.6vw 34.1vh 0 -0.25rem#fff,52.8vw 38.1vh 0 -0.33rem#fff,88.4vw 79.4vh 0 -0.22rem#fff,84.4vw 84.6vh 0 -0.1rem#fff,69.4vw 8.7vh 0 -0.46rem#fff,8.8vw 73.7vh 0 -0.19rem#fff,89.3vw 14.7vh 0 -0.1rem#fff,100vw 72.7vh 0 -0.2rem#fff,16.9vw 93.8vh 0 -0.22rem#fff,90.7vw 36.1vh 0 -0.43rem#fff,46.6vw 49.6vh 0 -0.21rem#fff,57.3vw 72.3vh 0 -0.03rem#fff,49.7vw 2vh 0 -0.15rem#fff,67vw 96.2vh 0 -0.47rem#fff,86vw 71.7vh 0 -0.11rem#fff,66vw 65.8vh 0 -0.32rem#fff,85.2vw 7.6vh 0 -0.12rem#fff,95.9vw 49.4vh 0 -0.15rem#fff,33.2vw 66.6vh 0 -0.14rem#fff,75.4vw 26.3vh 0 -0.02rem#fff,52.7vw 56vh 0 -0.11rem#fff,37.7vw 77vh 0 -0.18rem#fff,26.3vw 59.9vh 0 -0.18rem#fff,88.2vw 74.6vh 0 -0.39rem#fff,89.5vw 61.2vh 0 -0.48rem#fff,62vw 79.5vh 0 -0.4rem#fff,98.7vw 3.9vh 0 -0.01rem#fff,63.3vw 32vh 0 -0.43rem#fff,49.6vw 28.5vh 0 -0.09rem#fff,70vw 87vh 0 -0.05rem#fff,38.3vw 67.3vh 0 -0.49rem#fff,41.8vw 82.5vh 0 -0.36rem#fff,85.8vw 74vh 0 -0.07rem#fff,82.3vw 48.8vh 0 -0.11rem#fff,35.2vw 79.8vh 0 -0.4rem#fff,73.3vw 72.4vh 0 -0.36rem#fff,62.4vw 30.5vh 0 -0.14rem#fff,48.5vw 51.9vh 0 -0.03rem#fff,74.6vw 51.1vh 0 -0.35rem#fff,62.6vw 12.8vh 0 -0.33rem#fff,10vw 72.1vh 0 -0.2rem#fff,59vw 50.5vh 0 -0.04rem#fff,79.1vw 60.1vh 0 -0.34rem#fff,77.5vw 45.1vh 0 -0.23rem#fff,53vw 77.3vh 0 -0.4rem#fff,46.8vw 52.1vh 0 -0.44rem#fff,60.7vw 81vh 0 -0.17rem#fff,86.2vw 53.9vh 0 -0.01rem#fff,85.8vw 79.2vh 0 -0.39rem#fff;
animation-duration: 30s; }
.layer3.a {
animation-delay: -15s; }
animation-delay: -15s; }
@keyframes fall {
100% {
transform: translateY(200vh); } }
100% {
transform: translateY(200vh); } }
@keyframes gradientBG {
0% {
transform: translate(-10%, -10%); }
50% {
transform: translate(-60%, -60%); }
100% {
transform: translate(-10%, -10%); } }
0% {
transform: translate(-10%, -10%); }
50% {
transform: translate(-60%, -60%); }
100% {
transform: translate(-10%, -10%); } }
@keyframes sled {
0% {
transform: translate(-50rem, 40vh) rotate(0deg); }
4% {
transform: translate(-50rem, 40vh) rotate(0deg); }
20% {
transform: translate(50vw, 10vh) rotate(20deg); }
36% {
transform: translate(150vw, 40vh) rotate(40deg); }
100% {
transform: translate(150vw, 40vh) rotate(40deg); } }
0% {
transform: translate(-50rem, 40vh) rotate(0deg); }
4% {
transform: translate(-50rem, 40vh) rotate(0deg); }
20% {
transform: translate(50vw, 10vh) rotate(20deg); }
36% {
transform: translate(150vw, 40vh) rotate(40deg); }
100% {
transform: translate(150vw, 40vh) rotate(40deg); } }
@keyframes train {
0% {
transform: translateX(-80rem); }
55% {
transform: translateX(-80rem); }
85% {
transform: translateX(100vw); }
100% {
transform: translateX(100vw); } }
0% {
transform: translateX(-80rem); }
55% {
transform: translateX(-80rem); }
85% {
transform: translateX(100vw); }
100% {
transform: translateX(100vw); } }
@keyframes follow_train {
0% {
transform: translateX(-80rem) scaleX(20) scaleY(8); }
55% {
transform: translateX(-80rem) scaleX(20) scaleY(8); }
85% {
transform: translateX(100vw) scaleX(20) scaleY(8); }
100% {
transform: translateX(100vw) scaleX(20) scaleY(8); } }
0% {
transform: translateX(-80rem) scaleX(20) scaleY(8); }
55% {
transform: translateX(-80rem) scaleX(20) scaleY(8); }
85% {
transform: translateX(100vw) scaleX(20) scaleY(8); }
100% {
transform: translateX(100vw) scaleX(20) scaleY(8); } }
@keyframes turn {
100% {
transform: rotate(360deg); } }
100% {
transform: rotate(360deg); } }
@keyframes whobble {
100% {
transform: translateY(0.5vh); } }
100% {
transform: translateY(0.5vh); } }
@keyframes snowman {
0% {
transform: rotate(0); }
20% {
transform: rotate(0); }
30% {
transform: rotate(80deg); }
54% {
transform: rotate(80deg); }
68% {
transform: rotate(0); }
100% {
transform: rotate(0); } }
0% {
transform: rotate(0); }
20% {
transform: rotate(0); }
30% {
transform: rotate(80deg); }
54% {
transform: rotate(80deg); }
68% {
transform: rotate(0); }
100% {
transform: rotate(0); } }
@keyframes snowman_head {
0% {
transform: rotate(-3deg); }
50% {
transform: rotate(3deg); }
100% {
transform: rotate(-3deg); } }
0% {
transform: rotate(-3deg); }
50% {
transform: rotate(3deg); }
100% {
transform: rotate(-3deg); } }
@keyframes merry_christmas {
0% {
opacity: 0.8; }
50% {
opacity: 0.6; }
100% {
opacity: 0.8; } }
0% {
opacity: 0.8; }
50% {
opacity: 0.6; }
100% {
opacity: 0.8; } }
/*# sourceMappingURL=kerstmis.css.map */

View file

@ -21,70 +21,70 @@ Enige discretie is aangeraden.
--dGray5:#274001;
--dGray6:#F2778D;
--dBlue:#F2778D;
}
body{
height: 100%;
font-family: Radikal,Optima,Segoe,Segoe UI,Candara,Calibri,Arial,sans-serif;
background-color: #2F0000;
}
@font-face {
}
body{
height: 100%;
font-family: Radikal,Optima,Segoe,Segoe UI,Candara,Calibri,Arial,sans-serif;
background-color: #2F0000;
}
@font-face {
font-family: Radikal;
src: url('static/fonts/radikal_regular.ttf');
font-weight: normal;
}
@font-face {
@font-face {
font-family: Radikal;
src: url('static/fonts/radikal_light.ttf');
font-weight: 200;
}
@font-face {
}
@font-face {
font-family: Radikal;
src: url('static/fonts/radikal_medium.ttf');
font-weight: medium;
}
@font-face {
}
@font-face {
font-family: Radikal;
src: url('static/fonts/radikal_bold.ttf');
font-weight: bold;
}
.btn{
border-radius: 5rem;
color: white;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
background-image: linear-gradient(-40deg,#F53030, #F58B9E);
}
}
.btn{
border-radius: 5rem;
color: white;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
background-image: linear-gradient(-40deg,#F53030, #F58B9E);
}
.btn:hover{
.btn:hover{
background-image: linear-gradient(-40deg, #A81111, #FF4B33);
}
.navbar {
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
padding: 1.5rem;
}
.navbar {
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
padding: 1.5rem;
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
text-transform: capitalize;
}
.nav>li>a {
padding-left: 1vw;
padding-right: 1vw;
}
}
.nav>li>a {
padding-left: 1vw;
padding-right: 1vw;
}
.main{
height: 90vh;
overflow: scroll;
padding-left: 0;
padding-right: 0;
width: 100%;
display: flex;
align-items: center;
flex-direction: column;
}
.main{
height: 90vh;
overflow: scroll;
padding-left: 0;
padding-right: 0;
width: 100%;
display: flex;
align-items: center;
flex-direction: column;
}
.navbar .container{
width: 100%;
padding: 0 4vw;
}
.navbar .container{
width: 100%;
padding: 0 4vw;
}
@media (min-width: 768px){
.container {
@ -99,143 +99,143 @@ Enige discretie is aangeraden.
@media (min-width: 1200px){
.main .container, .main .orders {
width: 1170px;
width: 1170px;
}
}
.main{
padding-top: 2.5rem;
}
.order_data {
display: flex;
flex-direction: row;
width: 100%;
justify-content: space-between;
padding: 0 3rem;
align-items: baseline;
}
.order_row {
.main{
padding-top: 2.5rem;
}
.order_data {
display: flex;
flex-direction: row;
width: 100%;
justify-content: space-between;
padding: 0 3rem;
align-items: baseline;
}
.order_row {
background: transparent;
}
.order_data h5{
max-width: 60%;
padding-bottom: 3rem;
}
.expand_button{
padding: 1rem 0rem;
margin-top: -1rem;
width: 70%;
margin-bottom: 1.5rem;
}
}
.order_data h5{
max-width: 60%;
padding-bottom: 3rem;
}
.expand_button{
padding: 1rem 0rem;
margin-top: -1rem;
width: 70%;
margin-bottom: 1.5rem;
}
.hi_im_haldis h2{
display: none;
}
.hi_im_haldis h2{
display: none;
}
.hi_im_haldis h3 {
.hi_im_haldis h3 {
width: 100%;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
text-align: center;
}
}
.hi_im_haldis {
.hi_im_haldis {
background: linear-gradient(70deg,rgba(203, 52, 68,0.8), rgba(135, 32, 44,0.8));
border-radius: 0;
width: 100%;
}
width: 100%;
}
.hi_im_haldis_wrapper {
width: 100%;
}
.darker:nth-child(even){
.hi_im_haldis_wrapper {
width: 100%;
}
.darker:nth-child(even){
background-color: #B62937;
border-radius: 2rem;
}
.darker:nth-child(odd){
}
.darker:nth-child(odd){
background-color: #821C25;
border-radius: 2rem;
}
.darker{
padding: 1rem;
}
.order_row:nth-child(even) .order_data {
}
.darker{
padding: 1rem;
}
.order_row:nth-child(even) .order_data {
background-color: #B62937;
border-radius: 2rem;
}
.order_row:nth-child(odd) .order_data {
}
.order_row:nth-child(odd) .order_data {
background-color: #821C25;
border-radius: 2rem;
}
}
.order_row h5{
font-weight: bold;
}
.order_row{
margin-bottom: 3rem;
}
h3{
padding-bottom: 1rem;
}
.order_row h5{
font-weight: bold;
}
.order_row{
margin-bottom: 3rem;
}
h3{
padding-bottom: 1rem;
}
.home_sir {
font-weight: bold;
color: #F45D68;
}
.home_sir {
font-weight: bold;
color: #F45D68;
}
.expand_button_wrapper{
margin-top: -1rem;
width: 100%;
display: flex;
justify-content: center;
}
.expand_button_wrapper{
margin-top: -1rem;
width: 100%;
display: flex;
justify-content: center;
}
.time_data {
text-align: right;
display: flex;
flex-direction: column;
justify-self: right;
}
.time_data {
text-align: right;
display: flex;
flex-direction: column;
justify-self: right;
}
.navbar .navbar-nav .active a{
color: rgb(255, 155, 174);
border-bottom: 1px solid rgb(255, 155, 174);
padding-bottom: 1rem;
}
.navbar .navbar-nav .active a{
color: rgb(255, 155, 174);
border-bottom: 1px solid rgb(255, 155, 174);
padding-bottom: 1rem;
}
.navbar-nav{
padding-left: 2rem;
}
.navbar-nav{
padding-left: 2rem;
}
.jumbotron, .darker {
.jumbotron, .darker {
display: flex;
flex-direction: column;
border-radius: 4rem;
}
flex-direction: column;
border-radius: 4rem;
}
.row>div>h5 {
font-weight: bold;
padding-top: 1.5rem;
font-size: 2.5rem;
}
.row>div>h5 {
font-weight: bold;
padding-top: 1.5rem;
font-size: 2.5rem;
}
.row>div>.amount_of_orders{
font-weight: lighter;
font-size: 1.6rem;
}
.row>div .time{
font-weight: lighter;
}
.row>div>.amount_of_orders{
font-weight: lighter;
font-size: 1.6rem;
}
.row>div .time{
font-weight: lighter;
}
.jumbotron {
.jumbotron {
background-color: transparent;
}
.navbar-default .navbar-nav .active a, .navbar-default .navbar-nav .active a:hover{
.navbar-default .navbar-nav .active a, .navbar-default .navbar-nav .active a:hover{
background-color: transparent;
}
}
.background {
.background {
-webkit-filter: blur(0px) brightness(80%);
-moz-filter: blur(0px) brightness(80%);
-o-filter: blur(0px) brightness(80%);
@ -493,53 +493,53 @@ $s1:"";
$s2:"";
$s3:"";
@for $i from 1 through 100 {
$s1: $s1 + random(1000)*0.1vw + " " + random(1000)*0.1vh + " " + 0 + " " + random(50)*-0.01rem + #fff;
$s2: $s2 + random(1000)*0.1vw + " " + random(1000)*0.1vh + " " + 0 + " " + random(50)*-0.01rem + #fff;
$s3: $s3 + random(1000)*0.1vw + " " + random(1000)*0.1vh + " " + 0 + " " + random(50)*-0.01rem + #fff;
@if $i < 100 {
$s1: $s1 + ",";
$s2: $s2 + ",";
$s3: $s3 + ",";
}
$s1: $s1 + random(1000)*0.1vw + " " + random(1000)*0.1vh + " " + 0 + " " + random(50)*-0.01rem + #fff;
$s2: $s2 + random(1000)*0.1vw + " " + random(1000)*0.1vh + " " + 0 + " " + random(50)*-0.01rem + #fff;
$s3: $s3 + random(1000)*0.1vw + " " + random(1000)*0.1vh + " " + 0 + " " + random(50)*-0.01rem + #fff;
@if $i < 100 {
$s1: $s1 + ",";
$s2: $s2 + ",";
$s3: $s3 + ",";
}
}
.snow {
border-radius: 50%;
opacity: 0.8;
position: absolute;
top:-100vh;
animation-name: fall;
animation-timing-function: linear;
animation-iteration-count: infinite;
border-radius: 50%;
opacity: 0.8;
position: absolute;
top:-100vh;
animation-name: fall;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
.layer1 {
width: 1rem;
height: 1rem;
filter:blur(1.5px);
box-shadow: #{$s1};
animation-duration: 18s;
width: 1rem;
height: 1rem;
filter:blur(1.5px);
box-shadow: #{$s1};
animation-duration: 18s;
}
.layer1.a {
animation-delay: -9s;
animation-delay: -9s;
}
.layer2 {
width: 0.8rem;
height: 0.8rem;
filter:blur(3px);
box-shadow: #{$s2};
animation-duration: 24s;
width: 0.8rem;
height: 0.8rem;
filter:blur(3px);
box-shadow: #{$s2};
animation-duration: 24s;
}
.layer2.a {
animation-delay: -12s;
animation-delay: -12s;
}
.layer3 {
width: 0.6rem;
height: 0.6rem;
filter:blur(6px);
box-shadow: #{$s3};
animation-duration: 30s;
width: 0.6rem;
height: 0.6rem;
filter:blur(6px);
box-shadow: #{$s3};
animation-duration: 30s;
}
.layer3.a {
animation-delay: -15s;
animation-delay: -15s;
}
@keyframes fall {
100% {transform: translateY(200vh); }

View file

@ -1,12 +1,12 @@
/*lightmode*/
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#444444;
--dGray1:#666666;
--dGray2:#212121;
--dGray3:#ffffff;
--dGray4:#f9f9f9;
--dGray5:#ffffff;
--dGray6:#ffffff;
--dBlue:#0A84FF;
--dGray1:#666666;
--dGray2:#212121;
--dGray3:#ffffff;
--dGray4:#f9f9f9;
--dGray5:#ffffff;
--dGray6:#ffffff;
--dBlue:#0A84FF;
}

View file

@ -1,16 +1,16 @@
/*sinterklaas*/
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#F2EB80;
--dGray1:#F2EF05;
--dGray2:#F2EF05;
--dGray3:#177EBF;
--dGray4:#0C6AA6;
--dGray5:#F20505;
--dGray6:#F50B00;
--dBlue:#35F546;
--dGray1:#F2EF05;
--dGray2:#F2EF05;
--dGray3:#177EBF;
--dGray4:#0C6AA6;
--dGray5:#F20505;
--dGray6:#F50B00;
--dBlue:#35F546;
}
.background{
background-image: url("static/images/themes/sinterklaas/Sinterklaas.jpg");
background-image: url("static/images/themes/sinterklaas/Sinterklaas.jpg");
}

View file

@ -1,12 +1,12 @@
/*Darkmode*/
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#D0D0D8;
--dGray1:#8E8E93;
--dGray2:#636366;
--dGray3:#48484A;
--dGray4:#3A3A3C;
--dGray5:#2C2C2E;
--dGray6:#1C1C1E;
--dBlue:#0A84FF;
--dGray1:#8E8E93;
--dGray2:#636366;
--dGray3:#48484A;
--dGray4:#3A3A3C;
--dGray5:#2C2C2E;
--dGray6:#1C1C1E;
--dBlue:#0A84FF;
}

View file

@ -1,4 +1,4 @@
.background {
background-image: url("https://kelder.zeus.ugent.be/webcam/video/mjpg.cgi?profileid=2");
background-size: contain;
background-image: url("https://kelder.zeus.ugent.be/webcam/video/mjpg.cgi?profileid=2");
background-size: contain;
}

View file

@ -1,16 +1,16 @@
/*halloween*/
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#FFEB65;
--dGray1:#F28705;
--dGray2:#F25C05;
--dGray3:#F27405;
--dGray4:#8C3D0F;
--dGray5:#260101;
--dGray6:#260101;
--dBlue:#D91604;
--dGray1:#F28705;
--dGray2:#F25C05;
--dGray3:#F27405;
--dGray4:#8C3D0F;
--dGray5:#260101;
--dGray6:#260101;
--dBlue:#D91604;
}
.table-hover tbody tr:hover{
background-image: url("static/images/themes/halloween/Halloween.jpeg");
background-image: url("static/images/themes/halloween/Halloween.jpeg");
}

View file

@ -11,432 +11,432 @@ Enige discretie is aangeraden.
*/
/*low performance kerstmis*/
:root {
/*Darkmode colors*/
--dGray0:#F28705;
--dGray1:white;
--dGray2:#590212;
--dGray3:#590212;
--dGray4:#274001;
--dGray5:#274001;
--dGray6:#F2778D;
--dBlue:#F2778D; }
/*Darkmode colors*/
--dGray0:#F28705;
--dGray1:white;
--dGray2:#590212;
--dGray3:#590212;
--dGray4:#274001;
--dGray5:#274001;
--dGray6:#F2778D;
--dBlue:#F2778D; }
body {
height: 100%;
font-family: Radikal,Optima,Segoe,Segoe UI,Candara,Calibri,Arial,sans-serif;
background-color: #2F0000; }
height: 100%;
font-family: Radikal,Optima,Segoe,Segoe UI,Candara,Calibri,Arial,sans-serif;
background-color: #2F0000; }
@font-face {
font-family: Radikal;
src: url("static/fonts/radikal_regular.ttf");
font-weight: normal; }
font-family: Radikal;
src: url("static/fonts/radikal_regular.ttf");
font-weight: normal; }
@font-face {
font-family: Radikal;
src: url("static/fonts/radikal_light.ttf");
font-weight: 200; }
font-family: Radikal;
src: url("static/fonts/radikal_light.ttf");
font-weight: 200; }
@font-face {
font-family: Radikal;
src: url("static/fonts/radikal_bold.ttf");
font-weight: bold; }
font-family: Radikal;
src: url("static/fonts/radikal_bold.ttf");
font-weight: bold; }
.btn {
border-radius: 5rem;
color: white;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
background-image: linear-gradient(-40deg, #F53030, #F58B9E); }
border-radius: 5rem;
color: white;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
background-image: linear-gradient(-40deg, #F53030, #F58B9E); }
.btn:hover {
background-image: linear-gradient(-40deg, #A81111, #FF4B33); }
background-image: linear-gradient(-40deg, #A81111, #FF4B33); }
.navbar {
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
padding: 1.5rem;
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
text-transform: capitalize; }
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
padding: 1.5rem;
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
text-transform: capitalize; }
.nav > li > a {
padding-left: 1vw;
padding-right: 1vw; }
padding-left: 1vw;
padding-right: 1vw; }
.main {
height: 90vh;
overflow: scroll;
padding-left: 0;
padding-right: 0;
width: 100%;
display: flex;
align-items: center;
flex-direction: column; }
height: 90vh;
overflow: scroll;
padding-left: 0;
padding-right: 0;
width: 100%;
display: flex;
align-items: center;
flex-direction: column; }
.navbar .container {
width: 100%;
padding: 0 4vw; }
width: 100%;
padding: 0 4vw; }
@media (min-width: 768px) {
.container {
width: 100%; } }
.container {
width: 100%; } }
@media (min-width: 992px) {
.main .container, .main .orders {
width: 970px; } }
.main .container, .main .orders {
width: 970px; } }
@media (min-width: 1200px) {
.main .container, .main .orders {
width: 1170px; } }
.main .container, .main .orders {
width: 1170px; } }
.main {
padding-top: 2.5rem; }
padding-top: 2.5rem; }
.order_data {
display: flex;
flex-direction: row;
width: 100%;
justify-content: space-between;
padding: 0 3rem;
align-items: baseline; }
display: flex;
flex-direction: row;
width: 100%;
justify-content: space-between;
padding: 0 3rem;
align-items: baseline; }
.order_data h5 {
max-width: 60%;
padding-bottom: 3rem; }
max-width: 60%;
padding-bottom: 3rem; }
.expand_button {
padding: 1rem 0rem;
margin-top: -1rem;
width: 70%;
margin-bottom: 1.5rem; }
padding: 1rem 0rem;
margin-top: -1rem;
width: 70%;
margin-bottom: 1.5rem; }
.hi_im_haldis h2 {
display: none; }
display: none; }
.hi_im_haldis h3 {
width: 100%;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
text-align: center; }
width: 100%;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
text-align: center; }
.hi_im_haldis {
background: linear-gradient(70deg, rgba(203, 52, 68, 0.8), rgba(135, 32, 44, 0.8));
border-radius: 0;
width: 100%; }
background: linear-gradient(70deg, rgba(203, 52, 68, 0.8), rgba(135, 32, 44, 0.8));
border-radius: 0;
width: 100%; }
.hi_im_haldis_wrapper {
width: 100%; }
width: 100%; }
.darker:nth-child(even) {
background-color: #B62937;
border-radius: 2rem; }
background-color: #B62937;
border-radius: 2rem; }
.darker:nth-child(odd) {
background-color: #821C25;
border-radius: 2rem; }
background-color: #821C25;
border-radius: 2rem; }
.darker {
padding: 1rem; }
padding: 1rem; }
.order_row:nth-child(even) .order_data {
background-color: #B62937;
border-radius: 2rem; }
background-color: #B62937;
border-radius: 2rem; }
.order_row {
background: transparent; }
background: transparent; }
.order_row:nth-child(odd) .order_data {
background-color: #821C25;
border-radius: 2rem; }
background-color: #821C25;
border-radius: 2rem; }
.order_row h5 {
font-weight: bold; }
font-weight: bold; }
.order_row {
margin-bottom: 3rem; }
margin-bottom: 3rem; }
h3 {
padding-bottom: 1rem; }
padding-bottom: 1rem; }
.home_sir {
font-weight: bold;
color: #F45D68; }
font-weight: bold;
color: #F45D68; }
.expand_button_wrapper {
margin-top: -1rem;
width: 100%;
display: flex;
justify-content: center; }
margin-top: -1rem;
width: 100%;
display: flex;
justify-content: center; }
.time_data {
text-align: right;
display: flex;
flex-direction: column;
justify-self: right; }
text-align: right;
display: flex;
flex-direction: column;
justify-self: right; }
.navbar .navbar-nav .active a {
color: #ff9bae;
border-bottom: 1px solid #ff9bae;
padding-bottom: 1rem; }
color: #ff9bae;
border-bottom: 1px solid #ff9bae;
padding-bottom: 1rem; }
.navbar-nav {
padding-left: 2rem; }
padding-left: 2rem; }
.jumbotron, .darker {
display: flex;
flex-direction: column;
border-radius: 4rem; }
display: flex;
flex-direction: column;
border-radius: 4rem; }
.row > div > h5 {
font-weight: bold;
padding-top: 1.5rem;
font-size: 2.5rem; }
font-weight: bold;
padding-top: 1.5rem;
font-size: 2.5rem; }
.row > div > .amount_of_orders {
font-weight: lighter;
font-size: 1.6rem; }
font-weight: lighter;
font-size: 1.6rem; }
.row > div .time {
font-weight: lighter; }
font-weight: lighter; }
.jumbotron {
background-color: transparent; }
background-color: transparent; }
.navbar-default .navbar-nav .active a, .navbar-default .navbar-nav .active a:hover {
background-color: transparent; }
background-color: transparent; }
.background {
-webkit-filter: blur(0px) brightness(80%);
-moz-filter: blur(0px) brightness(80%);
-o-filter: blur(0px) brightness(80%);
-ms-filter: blur(0px) brightness(80%);
filter: blur(0px) brightness(80%);
position: fixed;
top: 0;
left: 0; }
-webkit-filter: blur(0px) brightness(80%);
-moz-filter: blur(0px) brightness(80%);
-o-filter: blur(0px) brightness(80%);
-ms-filter: blur(0px) brightness(80%);
filter: blur(0px) brightness(80%);
position: fixed;
top: 0;
left: 0; }
footer a {
color: #69E8FF; }
color: #69E8FF; }
footer {
position: fixed;
bottom: 0;
width: 100%;
background: #CB3444;
height: 5rem;
display: flex;
align-items: center; }
position: fixed;
bottom: 0;
width: 100%;
background: #CB3444;
height: 5rem;
display: flex;
align-items: center; }
footer > hr {
display: none; }
display: none; }
#mapid {
width: 100%; }
width: 100%; }
.order_overview, .order_order, .order_items, .order_ordered, .order_depts {
padding: 1rem 5rem 3rem 5rem; }
padding: 1rem 5rem 3rem 5rem; }
.order_overview {
width: 100%; }
width: 100%; }
.order_depts {
width: 100%;
margin-bottom: 10rem; }
width: 100%;
margin-bottom: 10rem; }
.location_data, .location_products {
width: 100%; }
width: 100%; }
.location_products {
margin-bottom: 10rem; }
margin-bottom: 10rem; }
.locations_locations {
padding: 1rem 5rem 3rem 5rem; }
padding: 1rem 5rem 3rem 5rem; }
.background_wrapper {
position: absolute;
left: 0;
bottom: 5rem;
width: 100%;
height: 100%;
overflow: hidden; }
position: absolute;
left: 0;
bottom: 5rem;
width: 100%;
height: 100%;
overflow: hidden; }
.christmas_background {
z-index: -101;
width: 300%;
height: 300%;
background: linear-gradient(-45deg, #2F0000, #C20A12); }
z-index: -101;
width: 300%;
height: 300%;
background: linear-gradient(-45deg, #2F0000, #C20A12); }
.sled {
width: 15rem;
height: 15rem;
transition: transform 2s ease-in 5s, rotate 1s ease-in-out 2s;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
background-image: url("static/images/themes/kerstmis/sled.svg"); }
width: 15rem;
height: 15rem;
transition: transform 2s ease-in 5s, rotate 1s ease-in-out 2s;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
background-image: url("static/images/themes/kerstmis/sled.svg"); }
.sled_wrapper {
top: 0.5rem;
left: -7.5rem;
position: absolute;
transform: translate(-50vw, 40vh) rotate(0deg);
width: 15rem;
height: 15rem;
animation: sled 29s ease-in-out infinite; }
top: 0.5rem;
left: -7.5rem;
position: absolute;
transform: translate(-50vw, 40vh) rotate(0deg);
width: 15rem;
height: 15rem;
animation: sled 29s ease-in-out infinite; }
.snowman_wrapper {
height: 17rem;
width: 10rem;
position: absolute;
bottom: 15rem;
left: -12rem;
animation: snowman 37s ease infinite;
transform-origin: right bottom; }
height: 17rem;
width: 10rem;
position: absolute;
bottom: 15rem;
left: -12rem;
animation: snowman 37s ease infinite;
transform-origin: right bottom; }
.snowman_head {
position: absolute;
top: 0;
width: 10rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/snowman_head.svg");
animation: snowman_head 2s ease infinite; }
position: absolute;
top: 0;
width: 10rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/snowman_head.svg");
animation: snowman_head 2s ease infinite; }
.snowman_body {
position: absolute;
top: 9.5rem;
left: 0.5rem;
width: 10rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/snowman_body.svg"); }
position: absolute;
top: 9.5rem;
left: 0.5rem;
width: 10rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/snowman_body.svg"); }
.train_button {
visibility: hidden; }
visibility: hidden; }
.train_wrapper {
position: absolute;
bottom: 0.5rem;
transform: translateX(-80vw);
animation: train 47s linear infinite; }
position: absolute;
bottom: 0.5rem;
transform: translateX(-80vw);
animation: train 47s linear infinite; }
.wheel_big, .wheel_small {
position: absolute;
bottom: -0.4rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/wheel.svg"); }
position: absolute;
bottom: -0.4rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/wheel.svg"); }
.train {
position: absolute;
bottom: 0.5rem;
left: 30rem;
width: 30rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/train.svg");
animation: whobble 1s linear alternate-reverse infinite; }
position: absolute;
bottom: 0.5rem;
left: 30rem;
width: 30rem;
height: 10rem;
background-repeat: no-repeat;
background-size: contain;
background-image: url("static/images/themes/kerstmis/train.svg");
animation: whobble 1s linear alternate-reverse infinite; }
.wheel_big {
width: 3.2rem;
height: 3.2rem; }
width: 3.2rem;
height: 3.2rem; }
.wheel_small {
width: 2.5rem;
height: 2.5rem; }
width: 2.5rem;
height: 2.5rem; }
.train .wheel1 {
animation: turn 2s linear infinite;
left: 3.5rem; }
animation: turn 2s linear infinite;
left: 3.5rem; }
.train .wheel2 {
animation: turn 2s linear infinite, -0.1s;
left: 7rem; }
animation: turn 2s linear infinite, -0.1s;
left: 7rem; }
.train .wheel3 {
animation: turn 2s linear infinite -0.3s;
left: 10.5rem; }
animation: turn 2s linear infinite -0.3s;
left: 10.5rem; }
.train .wheel4 {
animation: turn 1.5s linear infinite -0.5s;
left: 13.9rem; }
animation: turn 1.5s linear infinite -0.5s;
left: 13.9rem; }
.train .wheel5 {
animation: turn 1.5s linear infinite -0.7s;
left: 16.6rem; }
animation: turn 1.5s linear infinite -0.7s;
left: 16.6rem; }
.zeus_wagon, .mc_wagon {
position: absolute;
bottom: 1.25rem;
width: 30rem;
height: 7.5rem;
background-repeat: no-repeat;
background-size: contain;
animation: whobble 1s linear alternate-reverse infinite; }
position: absolute;
bottom: 1.25rem;
width: 30rem;
height: 7.5rem;
background-repeat: no-repeat;
background-size: contain;
animation: whobble 1s linear alternate-reverse infinite; }
.mc_wagon {
background-image: url("static/images/themes/kerstmis/mc_wagon.svg");
left: 0rem; }
background-image: url("static/images/themes/kerstmis/mc_wagon.svg");
left: 0rem; }
.zeus_wagon {
background-image: url("static/images/themes/kerstmis/zeus_wagon.svg");
left: 15rem; }
background-image: url("static/images/themes/kerstmis/zeus_wagon.svg");
left: 15rem; }
.zeus_wagon .wheel1, .mc_wagon .wheel1 {
animation: turn 2s linear infinite;
bottom: -1.1rem;
left: 2.2rem; }
animation: turn 2s linear infinite;
bottom: -1.1rem;
left: 2.2rem; }
.zeus_wagon .wheel2, .mc_wagon .wheel2 {
animation: turn 2s linear infinite, -0.1s;
bottom: -1.1rem;
left: 5.75rem; }
animation: turn 2s linear infinite, -0.1s;
bottom: -1.1rem;
left: 5.75rem; }
.zeus_wagon .wheel3, .mc_wagon .wheel3 {
animation: turn 2s linear infinite -0.3s;
bottom: -1.1rem;
left: 9.3rem; }
animation: turn 2s linear infinite -0.3s;
bottom: -1.1rem;
left: 9.3rem; }
@keyframes sled {
0% {
transform: translate(-50rem, 40vh) rotate(0deg); }
4% {
transform: translate(-50rem, 40vh) rotate(0deg); }
20% {
transform: translate(50vw, 10vh) rotate(20deg); }
36% {
transform: translate(150vw, 40vh) rotate(40deg); }
100% {
transform: translate(150vw, 40vh) rotate(40deg); } }
0% {
transform: translate(-50rem, 40vh) rotate(0deg); }
4% {
transform: translate(-50rem, 40vh) rotate(0deg); }
20% {
transform: translate(50vw, 10vh) rotate(20deg); }
36% {
transform: translate(150vw, 40vh) rotate(40deg); }
100% {
transform: translate(150vw, 40vh) rotate(40deg); } }
@keyframes train {
0% {
transform: translateX(-80rem); }
55% {
transform: translateX(-80rem); }
85% {
transform: translateX(100vw); }
100% {
transform: translateX(100vw); } }
0% {
transform: translateX(-80rem); }
55% {
transform: translateX(-80rem); }
85% {
transform: translateX(100vw); }
100% {
transform: translateX(100vw); } }
@keyframes turn {
100% {
transform: rotate(360deg); } }
100% {
transform: rotate(360deg); } }
@keyframes whobble {
100% {
transform: translateY(0.5vh); } }
100% {
transform: translateY(0.5vh); } }
@keyframes snowman {
0% {
transform: rotate(0); }
20% {
transform: rotate(0); }
30% {
transform: rotate(80deg); }
54% {
transform: rotate(80deg); }
68% {
transform: rotate(0); }
100% {
transform: rotate(0); } }
0% {
transform: rotate(0); }
20% {
transform: rotate(0); }
30% {
transform: rotate(80deg); }
54% {
transform: rotate(80deg); }
68% {
transform: rotate(0); }
100% {
transform: rotate(0); } }
@keyframes snowman_head {
0% {
transform: rotate(-3deg); }
50% {
transform: rotate(3deg); }
100% {
transform: rotate(-3deg); } }
0% {
transform: rotate(-3deg); }
50% {
transform: rotate(3deg); }
100% {
transform: rotate(-3deg); } }
/*# sourceMappingURL=kerstmis.css.map */

View file

@ -21,65 +21,65 @@ Enige discretie is aangeraden.
--dGray5:#274001;
--dGray6:#F2778D;
--dBlue:#F2778D;
}
body{
height: 100%;
font-family: Radikal,Optima,Segoe,Segoe UI,Candara,Calibri,Arial,sans-serif;
background-color: #2F0000;
}
@font-face {
}
body{
height: 100%;
font-family: Radikal,Optima,Segoe,Segoe UI,Candara,Calibri,Arial,sans-serif;
background-color: #2F0000;
}
@font-face {
font-family: Radikal;
src: url('static/fonts/radikal_regular.ttf');
font-weight: normal;
}
@font-face {
@font-face {
font-family: Radikal;
src: url('static/fonts/radikal_light.ttf');
font-weight: 200;
}
@font-face {
}
@font-face {
font-family: Radikal;
src: url('static/fonts/radikal_bold.ttf');
font-weight: bold;
}
.btn{
border-radius: 5rem;
color: white;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
background-image: linear-gradient(-40deg,#F53030, #F58B9E);
}
}
.btn{
border-radius: 5rem;
color: white;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
background-image: linear-gradient(-40deg,#F53030, #F58B9E);
}
.btn:hover{
.btn:hover{
background-image: linear-gradient(-40deg, #A81111, #FF4B33);
}
.navbar {
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
padding: 1.5rem;
}
.navbar {
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
padding: 1.5rem;
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
text-transform: capitalize;
}
.nav>li>a {
padding-left: 1vw;
padding-right: 1vw;
}
}
.nav>li>a {
padding-left: 1vw;
padding-right: 1vw;
}
.main{
height: 90vh;
overflow: scroll;
padding-left: 0;
padding-right: 0;
width: 100%;
display: flex;
align-items: center;
flex-direction: column;
}
.main{
height: 90vh;
overflow: scroll;
padding-left: 0;
padding-right: 0;
width: 100%;
display: flex;
align-items: center;
flex-direction: column;
}
.navbar .container{
width: 100%;
padding: 0 4vw;
}
.navbar .container{
width: 100%;
padding: 0 4vw;
}
@media (min-width: 768px){
.container {
@ -94,145 +94,145 @@ Enige discretie is aangeraden.
@media (min-width: 1200px){
.main .container, .main .orders {
width: 1170px;
width: 1170px;
}
}
.main{
padding-top: 2.5rem;
}
.order_data {
display: flex;
flex-direction: row;
width: 100%;
justify-content: space-between;
padding: 0 3rem;
align-items: baseline;
}
.order_data h5{
max-width: 60%;
padding-bottom: 3rem;
}
.expand_button{
padding: 1rem 0rem;
margin-top: -1rem;
width: 70%;
margin-bottom: 1.5rem;
}
.main{
padding-top: 2.5rem;
}
.order_data {
display: flex;
flex-direction: row;
width: 100%;
justify-content: space-between;
padding: 0 3rem;
align-items: baseline;
}
.order_data h5{
max-width: 60%;
padding-bottom: 3rem;
}
.expand_button{
padding: 1rem 0rem;
margin-top: -1rem;
width: 70%;
margin-bottom: 1.5rem;
}
.hi_im_haldis h2{
display: none;
}
.hi_im_haldis h2{
display: none;
}
.hi_im_haldis h3 {
.hi_im_haldis h3 {
width: 100%;
font-family: Arial Rounded MT Bold,Helvetica Rounded,Arial,sans-serif;
text-align: center;
}
}
.hi_im_haldis {
.hi_im_haldis {
background: linear-gradient(70deg,rgba(203, 52, 68,0.8), rgba(135, 32, 44,0.8));
border-radius: 0;
width: 100%;
}
width: 100%;
}
.hi_im_haldis_wrapper {
width: 100%;
}
.darker:nth-child(even){
.hi_im_haldis_wrapper {
width: 100%;
}
.darker:nth-child(even){
background-color: #B62937;
border-radius: 2rem;
}
.darker:nth-child(odd){
}
.darker:nth-child(odd){
background-color: #821C25;
border-radius: 2rem;
}
.darker{
padding: 1rem;
}
.order_row:nth-child(even) .order_data {
}
.darker{
padding: 1rem;
}
.order_row:nth-child(even) .order_data {
background-color: #B62937;
border-radius: 2rem;
}
}
.order_row {
.order_row {
background: transparent;
}
}
.order_row:nth-child(odd) .order_data {
.order_row:nth-child(odd) .order_data {
background-color: #821C25;
border-radius: 2rem;
}
}
.order_row h5{
font-weight: bold;
}
.order_row{
margin-bottom: 3rem;
}
h3{
padding-bottom: 1rem;
}
.order_row h5{
font-weight: bold;
}
.order_row{
margin-bottom: 3rem;
}
h3{
padding-bottom: 1rem;
}
.home_sir {
font-weight: bold;
color: #F45D68;
}
.home_sir {
font-weight: bold;
color: #F45D68;
}
.expand_button_wrapper{
margin-top: -1rem;
width: 100%;
display: flex;
justify-content: center;
}
.expand_button_wrapper{
margin-top: -1rem;
width: 100%;
display: flex;
justify-content: center;
}
.time_data {
text-align: right;
display: flex;
flex-direction: column;
justify-self: right;
}
.time_data {
text-align: right;
display: flex;
flex-direction: column;
justify-self: right;
}
.navbar .navbar-nav .active a{
color: rgb(255, 155, 174);
border-bottom: 1px solid rgb(255, 155, 174);
padding-bottom: 1rem;
}
.navbar .navbar-nav .active a{
color: rgb(255, 155, 174);
border-bottom: 1px solid rgb(255, 155, 174);
padding-bottom: 1rem;
}
.navbar-nav{
padding-left: 2rem;
}
.navbar-nav{
padding-left: 2rem;
}
.jumbotron, .darker {
.jumbotron, .darker {
display: flex;
flex-direction: column;
border-radius: 4rem;
}
flex-direction: column;
border-radius: 4rem;
}
.row>div>h5 {
font-weight: bold;
padding-top: 1.5rem;
font-size: 2.5rem;
}
.row>div>h5 {
font-weight: bold;
padding-top: 1.5rem;
font-size: 2.5rem;
}
.row>div>.amount_of_orders{
font-weight: lighter;
font-size: 1.6rem;
}
.row>div .time{
font-weight: lighter;
}
.row>div>.amount_of_orders{
font-weight: lighter;
font-size: 1.6rem;
}
.row>div .time{
font-weight: lighter;
}
.jumbotron {
.jumbotron {
background-color: transparent;
}
.navbar-default .navbar-nav .active a, .navbar-default .navbar-nav .active a:hover{
.navbar-default .navbar-nav .active a, .navbar-default .navbar-nav .active a:hover{
background-color: transparent;
}
}
.background {
.background {
-webkit-filter: blur(0px) brightness(80%);
-moz-filter: blur(0px) brightness(80%);
-o-filter: blur(0px) brightness(80%);

View file

@ -1,12 +1,12 @@
/*lightmode*/
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#444444;
--dGray1:#666666;
--dGray2:#212121;
--dGray3:#ffffff;
--dGray4:#f9f9f9;
--dGray5:#ffffff;
--dGray6:#ffffff;
--dBlue:#0A84FF;
--dGray1:#666666;
--dGray2:#212121;
--dGray3:#ffffff;
--dGray4:#f9f9f9;
--dGray5:#ffffff;
--dGray6:#ffffff;
--dBlue:#0A84FF;
}

View file

@ -1,16 +1,16 @@
/*sinterklaas*/
:root {
/*Darkmode colors*/
/*Darkmode colors*/
--dGray0:#F2EB80;
--dGray1:#F2EF05;
--dGray2:#F2EF05;
--dGray3:#177EBF;
--dGray4:#0C6AA6;
--dGray5:#F20505;
--dGray6:#F50B00;
--dBlue:#35F546;
--dGray1:#F2EF05;
--dGray2:#F2EF05;
--dGray3:#177EBF;
--dGray4:#0C6AA6;
--dGray5:#F20505;
--dGray6:#F50B00;
--dBlue:#35F546;
}
.background{
background-image: url("static/images/themes/sinterklaas/Sinterklaas.jpg");
background-image: url("static/images/themes/sinterklaas/Sinterklaas.jpg");
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,11 +1,11 @@
function changeTheme() {
// Get the selected theme for the dropdown
var themes_select = document.getElementById("themes_select");
var selected_theme = themes_select.options[themes_select.selectedIndex].text;
// Get the selected theme for the dropdown
var themes_select = document.getElementById("themes_select");
var selected_theme = themes_select.options[themes_select.selectedIndex].text;
// Update the theme cookie
document.cookie = "theme=" + escape(selected_theme) + "; Path=/;"
// Update the theme cookie
document.cookie = "theme=" + escape(selected_theme) + "; Path=/;"
// Finally reload the page to let the new theme take effect
location.reload();
// Finally reload the page to let the new theme take effect
location.reload();
}

File diff suppressed because one or more lines are too long

View file

@ -1,69 +1,69 @@
var map = L.map('mapid');
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
let base_request_uri = "https://photon.komoot.de/api/?limit=1&q=";
function performRequest(url, location, success_callback) {
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.onload = function() {
if (this.status >= 200 && this.status < 400) {
// Success!
var data = JSON.parse(this.response);
success_callback(location, data);
} else {
// We reached our target server, but it returned an error
}
};
request.onerror = function() {
console.log("Error requestion location coordinates");
// There was a connection error of some sort
};
request.send();
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.onload = function() {
if (this.status >= 200 && this.status < 400) {
// Success!
var data = JSON.parse(this.response);
success_callback(location, data);
} else {
// We reached our target server, but it returned an error
}
};
request.onerror = function() {
console.log("Error requestion location coordinates");
// There was a connection error of some sort
};
request.send();
}
let marker_icon = L.icon({
iconUrl: "/static/images/marker-icon.png",
shadowUrl: "/static/images/marker-shadow.png",
iconAnchor: [12, 41]
iconUrl: "/static/images/marker-icon.png",
shadowUrl: "/static/images/marker-shadow.png",
iconAnchor: [12, 41]
});
let callback = function OSMCallBack(location, data) {
let lat, lon;
if (data.features.length >= 1) {
let place = data.features[0].properties;
lat = data.features[0].geometry.coordinates[1];
lon = data.features[0].geometry.coordinates[0];
let lat, lon;
if (data.features.length >= 1) {
let place = data.features[0].properties;
lat = data.features[0].geometry.coordinates[1];
lon = data.features[0].geometry.coordinates[0];
let marker = L.marker([lat, lon], {
icon: marker_icon
}).addTo(map)
.bindPopup(location.name + ', ' + location.address, {offset: new L.Point(0, -16)}).on('click', function () {
let win = window.open(location.url, '_blank');
win.focus();
});
let marker = L.marker([lat, lon], {
icon: marker_icon
}).addTo(map)
.bindPopup(location.name + ', ' + location.address, {offset: new L.Point(0, -16)}).on('click', function () {
let win = window.open(location.url, '_blank');
win.focus();
});
marker.on('mouseover', function(env) {
marker.openPopup();
});
marker.on('mouseout', function(env) {
marker.closePopup();
});
marker.on('mouseover', function(env) {
marker.openPopup();
});
marker.on('mouseout', function(env) {
marker.closePopup();
});
if (location.center) {
map.setView([lat, lon], 14);
}
} else {
console.log(`Location ${JSON.stringify(location, null, 2)} returned no features, are you sure this is a valid address?`);
}
if (location.center) {
map.setView([lat, lon], 14);
}
} else {
console.log(`Location ${JSON.stringify(location, null, 2)} returned no features, are you sure this is a valid address?`);
}
};
function loadmap(locations) {
for (let loc of locations) {
let request_uri = base_request_uri + loc.address;
performRequest(request_uri, loc, callback);
}
for (let loc of locations) {
let request_uri = base_request_uri + loc.address;
performRequest(request_uri, loc, callback);
}
}

View file

@ -1,7 +1,6 @@
{
const init = () =>{
document.cookie.split('; ').forEach(itCookie = cookie =>{ //I know that this is a shitty way of fixing things... But I'll try to fix it in the future.
document.cookie.split('; ').forEach(itCookie = cookie =>{ // TODO (Arnhoudt) Fix shitty way of doing things
if(cookie.split("=")[0] == "theme" && cookie.split("=")[1] == "darkmode"){
document.querySelector(".toggleDarkmode").innerHTML = "<a>Enter lightmode</a>"
document.querySelector(".toggleDarkmode").id = "lightmode";

View file

@ -1,36 +1,36 @@
/**
* Created by feliciaan on 30/03/15.
*/
* Created by feliciaan on 30/03/15.
*/
$.ready(function(){
$('.time').each(function() {
var timeEl = $( this );
var time = timeEl.text().split(' ')[0].split(':');
$('.time').each(function() {
var timeEl = $( this );
var time = timeEl.text().split(' ')[0].split(':');
if (timeEl.text().indexOf('closed') < 0) {
window.setInterval(function () {
time = my_tick(time);
if (time !== "closed") {
timeS = ("0" + time[0]).slice(-2) + ":" + ("0" + time[1]).slice(-2) + ":" + ("0" + time[2]).slice(-2) + " left";
} else {
timeS = "closed"
}
timeEl.html(timeS);
}, 1000);
}
});
if (timeEl.text().indexOf('closed') < 0) {
window.setInterval(function () {
time = my_tick(time);
if (time !== "closed") {
timeS = ("0" + time[0]).slice(-2) + ":" + ("0" + time[1]).slice(-2) + ":" + ("0" + time[2]).slice(-2) + " left";
} else {
timeS = "closed"
}
timeEl.html(timeS);
}, 1000);
}
});
function my_tick(time) {
if (time[2] > 0) {
time[2] = time[2] - 1;
} else if(time[1] > 0) {
time[2] = 59;
time[1] = time[1] - 1;
} else if(time[0] > 0) {
time[1] = 59;
time[0] = time[0] - 1;
} else {
return "closed";
}
return time;
}
function my_tick(time) {
if (time[2] > 0) {
time[2] = time[2] - 1;
} else if(time[1] > 0) {
time[2] = 59;
time[1] = time[1] - 1;
} else if(time[0] > 0) {
time[1] = 59;
time[0] = time[0] - 1;
} else {
return "closed";
}
return time;
}
}());

View file

@ -2,6 +2,6 @@
{% set active_page = "about" -%}
{% block container %}
<h1>About</h1>
<p>Haldis is your friendly neighbourhood servant. He exists so lazy fucks like you and me don't need to keep tabs of who is ordering what from where.</p>
<h1>About</h1>
<p>Haldis is your friendly neighbourhood servant. He exists so lazy fucks like you and me don't need to keep tabs of who is ordering what from where.</p>
{% endblock %}

View file

@ -1,9 +1,9 @@
{% extends "layout.html" -%}
{% block container %}
<div class="jumbotron">
<h1>Unauthorized</h1>
<p>You're not authorized to look to this page!</p>
<p><a href="{{ url_for('general_bp.home') }}">Go somewhere nice</a></p>
</div>
<div class="jumbotron">
<h1>Unauthorized</h1>
<p>You're not authorized to look to this page!</p>
<p><a href="{{ url_for('general_bp.home') }}">Go somewhere nice</a></p>
</div>
{% endblock %}

View file

@ -1,9 +1,9 @@
{% extends "layout.html" -%}
{% block container %}
<div class="jumbotron">
<h1>Page Not Found</h1>
<p>What you were looking for is just not there.</p>
<p><a href="{{ url_for('general_bp.home') }}">Go somewhere nice</a></p>
</div>
<div class="jumbotron">
<h1>Page Not Found</h1>
<p>What you were looking for is just not there.</p>
<p><a href="{{ url_for('general_bp.home') }}">Go somewhere nice</a></p>
</div>
{% endblock %}

View file

@ -4,35 +4,35 @@
{% import "utils.html" as util -%}
{% block container %}
<div class="row hi_im_haldis_wrapper">
<div class="jumbotron hi_im_haldis">
<h2>Hi, I'm Haldis</h2>
<h3>What would you like to <span class="home_sir">eat</span>?</h3>
</div>
</div>
<div class="row container">
<div class="col-sm-5">
{% if orders|count > 0 -%}
<h3>Open orders:</h3>
{% for order in orders %}
{{ util.render_order(order) }}
{% endfor %}
{% else %}
<h4>No orders available.</h4>
{% if not current_user.is_anonymous() %}
To create an order, fill in the form <a href="{{ url_for("order_bp.orders") }}">here</a>.
{% else %}
Login to create an order, or ask someone else.
{% endif %}
{%- endif %}
</div>
<div class="col-sm-5 col-sm-push-2">
{% if recently_closed|count > 0 -%}
<h3>Recently closed orders:</h3>
{% for order in recently_closed %}
{{ util.render_order(order) }}
{% endfor %}
{%- endif %}
</div>
</div>
<div class="row hi_im_haldis_wrapper">
<div class="jumbotron hi_im_haldis">
<h2>Hi, I'm Haldis</h2>
<h3>What would you like to <span class="home_sir">eat</span>?</h3>
</div>
</div>
<div class="row container">
<div class="col-sm-5">
{% if orders|count > 0 -%}
<h3>Open orders:</h3>
{% for order in orders %}
{{ util.render_order(order) }}
{% endfor %}
{% else %}
<h4>No orders available.</h4>
{% if not current_user.is_anonymous() %}
To create an order, fill in the form <a href="{{ url_for("order_bp.orders") }}">here</a>.
{% else %}
Login to create an order, or ask someone else.
{% endif %}
{%- endif %}
</div>
<div class="col-sm-5 col-sm-push-2">
{% if recently_closed|count > 0 -%}
<h3>Recently closed orders:</h3>
{% for order in recently_closed %}
{{ util.render_order(order) }}
{% endfor %}
{%- endif %}
</div>
</div>
{% endblock %}

View file

@ -2,87 +2,87 @@
{% import "bootstrap/utils.html" as utils %}
{% set navbar = [
('general_bp.home', 'Home'),
('order_bp.orders', 'Orders'),
('general_bp.locations', 'Locations'),
('general_bp.map_view', 'Map'),
('general_bp.about', 'About'),
('stats_blueprint.stats', 'Stats'),
('general_bp.home', 'Home'),
('order_bp.orders', 'Orders'),
('general_bp.locations', 'Locations'),
('general_bp.map_view', 'Map'),
('general_bp.about', 'About'),
('stats_blueprint.stats', 'Stats'),
] -%}
{% set active_page = active_page|default('index') -%}
{% block title %}
Haldis - {{ active_page|capitalize }}
{% if title %}
- {{ title }}
{% endif %}
{% if title %}
- {{ title }}
{% endif %}
{% endblock %}
{% block styles %}
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}" media="screen">
<link rel="stylesheet" href="/css" media="screen">
<link rel="stylesheet" href="{{ url_for('static', filename='css/print.css') }}" media="print">
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}" media="screen">
<link rel="stylesheet" href="/css" media="screen">
<link rel="stylesheet" href="{{ url_for('static', filename='css/print.css') }}" media="print">
{% endblock %}
{% block scripts %}
{{ super() }}
<script type="text/javascript" src="{{ url_for('static', filename='js/theme.js') }}"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/timer.js') }}"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/customThemes.js') }}"></script>
{{ super() }}
<script type="text/javascript" src="{{ url_for('static', filename='js/theme.js') }}"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/timer.js') }}"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/customThemes.js') }}"></script>
{% endblock %}
{% block navbar %}
<div class="background"></div>
<div class="foreground"></div>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ url_for('general_bp.home') }}">HALDIS</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
{% for id, text in navbar -%}
<li class="{{ 'active' if active_page in id else '' }}">
<a href="{{ url_for(id) }}">{{ text|e }}</a>
</li>
{% endfor -%}
</ul>
<ul class="nav navbar-nav navbar-right">
{% if current_user.is_anonymous() %}
<li><a href="{{ url_for('auth_bp.login') }}">Login</a></li>
{% else %}
<li><a href="{{ url_for('general_bp.profile') }}">{{ current_user.username }}</a></li>
<li><a href="{{ url_for('auth_bp.logout') }}">Logout</a></li>
{% endif %}
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="background"></div>
<div class="foreground"></div>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ url_for('general_bp.home') }}">HALDIS</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
{% for id, text in navbar -%}
<li class="{{ 'active' if active_page in id else '' }}">
<a href="{{ url_for(id) }}">{{ text|e }}</a>
</li>
{% endfor -%}
</ul>
<ul class="nav navbar-nav navbar-right">
{% if current_user.is_anonymous() %}
<li><a href="{{ url_for('auth_bp.login') }}">Login</a></li>
{% else %}
<li><a href="{{ url_for('general_bp.profile') }}">{{ current_user.username }}</a></li>
<li><a href="{{ url_for('auth_bp.logout') }}">Logout</a></li>
{% endif %}
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
{% endblock %}
{% block content -%}
{{ utils.flashed_messages(container=True) }}
{{ utils.flashed_messages(container=True) }}
<div class="container main">
{% block container -%}
{%- endblock %}
</div>
<div class="container main">
{% block container -%}
{%- endblock %}
</div>
<footer>
<hr>
<div class="container">
<div class="footerWrapper">
<div class="pull-left">Made with ❤ by <a href="http://zeus.ugent.be">Zeus WPI</a></div>
<div class="changeThemeButton toggleDarkmode" id="darkmode"><a>Enter darkmode</a></div>
<div class="pull-right"><a href="http://github.com/ZeusWPI/Haldis">© {{ ""|year }}</a></div>
</div>
</div>
</footer>
<footer>
<hr/>
<div class="container">
<div class="footerWrapper">
<div class="pull-left">Made with ❤ by <a href="http://zeus.ugent.be">Zeus WPI</a></div>
<div class="changeThemeButton toggleDarkmode" id="darkmode"><a>Enter darkmode</a></div>
<div class="pull-right"><a href="http://github.com/ZeusWPI/Haldis">© {{ ""|year }}</a></div>
</div>
</div>
</footer>
{%- endblock %}

View file

@ -5,40 +5,40 @@
{% block container %}
<div class="row location_data" xmlns="http://www.w3.org/1999/html">
<div class="col-md-push-1 col-md-5 darker">
<h3>{{ location.name }}</h3>
{% if location.address %}<span class="glyphicon glyphicon-home"></span> {{ location.address }}<br/>{% endif %}
{% if location.telephone %}<span class="glyphicon glyphicon-phone"></span>{{ location.telephone }}<br/>{% endif %}
{% if location.website %}<span class="glyphicon glyphicon-link"></span> <a href="{{ location.website}}">{{ location.website }}</a> <br/>{% endif %}
{% if location.osm %}<span class="glyphicon glyphicon-map-marker"></span> <a href="{{ location.osm}}">{{ location.osm }}</a> <br/>{% endif %}
{% if not current_user.is_anonymous() %}
<a href="{{ url_for("order_bp.orders", location_id=location.id) }}" class="btn btn-primary btn-sm">Create order</a>
{% endif %}
</div>
<div class="col-md-push-1 col-md-5 padding-top sm-no-side-padding md-no-right-padding">
{% if location.address %}
<div class="small-map" id="mapid"></div>
{% endif %}
</div>
<div class="col-md-push-1 col-md-5 darker">
<h3>{{ location.name }}</h3>
{% if location.address %}<span class="glyphicon glyphicon-home"></span> {{ location.address }}<br/>{% endif %}
{% if location.telephone %}<span class="glyphicon glyphicon-phone"></span>{{ location.telephone }}<br/>{% endif %}
{% if location.website %}<span class="glyphicon glyphicon-link"></span> <a href="{{ location.website}}">{{ location.website }}</a> <br/>{% endif %}
{% if location.osm %}<span class="glyphicon glyphicon-map-marker"></span> <a href="{{ location.osm}}">{{ location.osm }}</a> <br/>{% endif %}
{% if not current_user.is_anonymous() %}
<a href="{{ url_for("order_bp.orders", location_id=location.id) }}" class="btn btn-primary btn-sm">Create order</a>
{% endif %}
</div>
<div class="col-md-push-1 col-md-5 padding-top sm-no-side-padding md-no-right-padding">
{% if location.address %}
<div class="small-map" id="mapid"></div>
{% endif %}
</div>
</div>
<div class="row location_products">
<div class="col-md-push-1 col-md-10 darker">
<h3 id="order-title">Products</h3>
<table class="table table-hover table-condensed">
<thead>
<tr><th style="min-width: 20%">Name</th><th>Description</th><th>Price</th></tr>
</thead>
<tbody>
{% for dish in location.dishes -%}
<tr>
<td>{{ dish.name or dish.id }}</td>
<td>{{ dish.description or "" }}</td>
<td style="white-space: nowrap;">{{ dish.price|euro }}<td>
</tr>
{%- endfor %}
</tbody>
</table>
</div>
<div class="col-md-push-1 col-md-10 darker">
<h3 id="order-title">Products</h3>
<table class="table table-hover table-condensed">
<thead>
<tr><th style="min-width: 20%">Name</th><th>Description</th><th>Price</th></tr>
</thead>
<tbody>
{% for dish in location.dishes -%}
<tr>
<td>{{ dish.name or dish.id }}</td>
<td>{{ dish.description or "" }}</td>
<td style="white-space: nowrap;">{{ dish.price|euro }}<td>
</tr>
{%- endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}
@ -49,23 +49,19 @@
{% endblock %}
{% block scripts %}
{{super()}}
{{ super() }}
{% if location.address %}
<script src="{{ url_for('static', filename='js/leaflet.js')}}"></script>
<script src="{{ url_for('static', filename='js/map.js' ) }}"></script>
<script>
let locations = [];
loc = {
"address": "{{location.address}}",
"name": "{{location.name}}",
"url": "{{location.website}}",
"center": true,
};
locations.push(loc);
loadmap(locations);
</script>
<script src="{{ url_for('static', filename='js/leaflet.js')}}"></script>
<script src="{{ url_for('static', filename='js/map.js' ) }}"></script>
<script>
let locations = [{
"address": "{{location.address}}",
"name": "{{location.name}}",
"url": "{{location.website}}",
"center": true,
}];
loadmap(locations);
</script>
{% endif %}
{% endblock %}

View file

@ -5,27 +5,27 @@
{% block container %}
<div class="row">
<div class="col-md-push-1 col-md-10 darker locations_locations">
<h3>Locations</h3>
<table class="table table-hover table-condensed">
<thead>
<tr><th>Name</th><th>Address</th><th></th><th></th><th></th></tr>
</thead>
<tbody>
{% for loc in locations -%}
<tr>
<td><a href="{{ url_for('general_bp.location', location_id=loc.id) }}">{{ loc.name }}</a></td>
<td>{{ loc.address }}<td>
<td><a href="{{ loc.website }}"><span class="glyphicon glyphicon-link"></span> {{ loc.website }}</a></td>
<td>
{% if not current_user.is_anonymous() %}
<a href="{{ url_for("order_bp.orders", location_id=loc.id) }}" class="btn btn-primary btn-xs">Create order</a>
{% endif %}
</td>
</tr>
{%- endfor %}
</tbody>
</table>
</div>
<div class="col-md-push-1 col-md-10 darker locations_locations">
<h3>Locations</h3>
<table class="table table-hover table-condensed">
<thead>
<tr><th>Name</th><th>Address</th><th></th><th></th><th></th></tr>
</thead>
<tbody>
{% for loc in locations -%}
<tr>
<td><a href="{{ url_for('general_bp.location', location_id=loc.id) }}">{{ loc.name }}</a></td>
<td>{{ loc.address }}<td>
<td><a href="{{ loc.website }}"><span class="glyphicon glyphicon-link"></span> {{ loc.website }}</a></td>
<td>
{% if not current_user.is_anonymous() %}
<a href="{{ url_for("order_bp.orders", location_id=loc.id) }}" class="btn btn-primary btn-xs">Create order</a>
{% endif %}
</td>
</tr>
{%- endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}

View file

@ -20,23 +20,20 @@
<script src="{{ url_for('static', filename='js/leaflet.js')}}"></script>
<script src="{{ url_for('static', filename='js/map.js' ) }}"></script>
<script>
let locations = [];
let loc = {};
let locations = [];
{% for loc in locations -%}
{% if loc.address %}
loc = {
"address": "{{loc.address}}",
"name": "{{loc.name}}",
"url": "{{ url_for('general_bp.location', location_id=loc.id) }}"
};
locations.push(loc);
{% for loc in locations -%}
{% if loc.address %}
locations.push({
"address": "{{loc.address}}",
"name": "{{loc.name}}",
"url": "{{ url_for('general_bp.location', location_id=loc.id) }}"
});
{% endif %}
{%- endfor %}
{% endif %}
{%- endfor %}
map.setView([51.0231119, 3.7102741], 14);
map.setView([51.0231119, 3.7102741], 14);
loadmap(locations);
loadmap(locations);
</script>
{% endblock %}

View file

@ -7,190 +7,200 @@
{% block container %}
<div class="row">
<div class="col-md-push-1 col-md-10 darker order_overview" id="info"><!-- Shitty html -->
<h3 id="order-title">Order {{ order.id }}
<div class="pull-right">
{% if order.can_close(current_user.id) -%}
<form action="{{ url_for('order_bp.close_order', order_id=order.id) }}" method="post" style="display:inline">
<input type="submit" class="btn btn-danger" value="Close"></input>
</form>
{% endif %}{% if courier_or_admin %}
<a class="btn btn-warning" href="{{ url_for('order_bp.order_edit', order_id=order.id) }}">Edit</a>
{%- endif %}
</div></h3>
courier: {{ order.courier.username }}
{% if order.courier == None and not current_user.is_anonymous() %}
<form action="{{ url_for('order_bp.volunteer', order_id=order.id) }}" method="post" style="display:inline">
<input type="submit" class="btn btn-primary btn-sm" value="Volunteer"></input>
</form>
{% endif %}
<br/>
location: {% if order.location %}
<a href="{{ url_for('general_bp.location', location_id=order.location_id) }}">{{ order.location_name }}</a>
{% else %}
{{ order.location_name }}
{% endif %}<br/>
{% if order.location.telephone != None %}
telephone: <a href="tel://{{ order.location.telephone }}">{{ order.location.telephone }}</a><br/>
{% endif %}
start: {{ order.starttime.strftime("%d/%m/%Y %H:%M") }}<br>
{% if order.stoptime %}
closing time: {{ order.stoptime.strftime("%H:%M") }} (<span class="time">{{ order.stoptime|countdown }}</span>)
{% else %}open{% endif %}<br/>
total price: {{ total_price|euro }} {% if courier_or_admin %}- remaining debts: {{ debts|euro }}{% endif %}
</div>
{% if form -%}
<div class="col-md-push-1 col-md-10 darker order_order" id="form">
<h4>Order:</h4>
<form method="post" action="{{ url_for('order_bp.order_item_create', order_id=order.id) }}">
<span class="pull-right">
<a class="btn btn-primary" onclick="chooseRandom()">Choose for me</a>
</span>
{{ form.csrf_token }}
<div class="form-group select2-container select2 {{ 'has-errors' if form.dish_id.errors}}">
{{ form.dish_id.label(class='control-label') }}<br>
{{ form.dish_id(class='form-control select') }}
{{ util.render_form_field_errors(form.dish_id) }}
</div>
<div class="col-md-push-1 col-md-10 darker order_overview" id="info"><!-- Shitty html -->
<h3 id="order-title">Order {{ order.id }}
<div class="pull-right">
{% if order.can_close(current_user.id) -%}
<form action="{{ url_for('order_bp.close_order', order_id=order.id) }}" method="post" style="display:inline">
<input type="submit" class="btn btn-danger" value="Close"></input>
</form>
{% endif %}{% if courier_or_admin %}
<a class="btn btn-warning" href="{{ url_for('order_bp.order_edit', order_id=order.id) }}">Edit</a>
{%- endif %}
</div></h3>
courier: {{ order.courier.username }}
{% if order.courier == None and not current_user.is_anonymous() %}
<form action="{{ url_for('order_bp.volunteer', order_id=order.id) }}" method="post" style="display:inline">
<input type="submit" class="btn btn-primary btn-sm" value="Volunteer"></input>
</form>
{% endif %}
<br/>
location: {% if order.location %}
<a href="{{ url_for('general_bp.location', location_id=order.location_id) }}">{{ order.location_name }}</a>
{% else %}
{{ order.location_name }}
{% endif %}<br/>
{% if order.location.telephone != None %}
telephone: <a href="tel://{{ order.location.telephone }}">{{ order.location.telephone }}</a><br/>
{% endif %}
start: {{ order.starttime.strftime("%d/%m/%Y %H:%M") }}<br>
{% if order.stoptime %}
closing time: {{ order.stoptime.strftime("%H:%M") }} (<span class="time">{{ order.stoptime|countdown }}</span>)
{% else %}open{% endif %}<br/>
total price: {{ total_price|euro }} {% if courier_or_admin %}- remaining debts: {{ debts|euro }}{% endif %}
</div>
{% if form -%}
<div class="col-md-push-1 col-md-10 darker order_order" id="form">
<h4>Order:</h4>
<form method="post" action="{{ url_for('order_bp.order_item_create', order_id=order.id) }}">
<span class="pull-right">
<a class="btn btn-primary" onclick="chooseRandom()">Choose for me</a>
</span>
{{ form.csrf_token }}
<div class="form-group select2-container select2 {{ 'has-errors' if form.dish_id.errors}}">
{{ form.dish_id.label(class='control-label') }}<br>
{{ form.dish_id(class='form-control select') }}
{{ util.render_form_field_errors(form.dish_id) }}
</div>
<input type="hidden" name="form_for_dish" value="{{ dish.id }}" />
{% if dish and dish.choices %}
{% for (choice_type, choice) in dish.choices %}
<div class="form-group select2-container select2">
<label class="control-label" for="choice_{{ choice.id }}">{{ choice.name }}</label><br/>
<select
{{ "multiple=multiple" if choice_type=="multi_choice" else "required=required" }}
name="choice_{{ choice.id }}"
class="form-control select">
{% for option in choice.options %}
<option value="{{ option.id }}"><!--
-->{{ option.name }}{{ ": " + option.price|euro if option.price else "" }}<!--
-->{{ " (" + option.description + ")" if option.description else "" }}<!--
--></option>
{% endfor %}
</select>
</div>
{% endfor %}
{% endif %}
{% if dish and dish.choices %}
<input type="hidden" name="form_for_dish" value="{{ dish.id }}" />
{% for (choice_type, choice) in dish.choices %}
<div class="form-group select2-container select2">
<label class="control-label" for="choice_{{ choice.id }}">{{ choice.name }}</label><br/>
<select
{{ "multiple=multiple" if choice_type=="multi_choice" else "required=required" }}
name="choice_{{ choice.id }}"
class="form-control select">
{% for option in choice.options %}
<option value="{{ option.id }}"><!--
-->{{ option.name }}{{ ": " + option.price|euro if option.price else "" }}<!--
-->{{ " (" + option.description + ")" if option.description else "" }}<!--
--></option>
{% endfor %}
</select>
</div>
{% endfor %}
{% endif %}
<div class="form-group {{ 'has-errors' if form.dish_id.errors }}">
{{ form.comment.label(class='control-label') }}<br>
{{ form.comment(class='form-control', placeholder='Fill in comment, when applicable') }}
{{ util.render_form_field_errors(form.comment) }}
</div>
<div class="form-group {{ 'has-errors' if form.dish_id.errors }}">
{{ form.comment.label(class='control-label') }}<br>
{{ form.comment(class='form-control', placeholder='Fill in comment, when applicable') }}
{{ util.render_form_field_errors(form.comment) }}
</div>
{% if current_user.is_anonymous() %}
<div class="form-group{{ ' has-error' if form.user_name.errors }}{{ ' required' if form.user_name.flags.required }}">
{{ form.user_name.label(class='control-label') }}
{{ form.user_name(class='form-control', placeholder='Fill in your name...') }}
{{ util.render_form_field_errors(form.user_name) }}
</div>
{% endif %}
<div class="form-group" style="padding-top: 8px;">
{{ form.submit_button(class='btn btn-primary') }}
{% if not dish %}
<div id="submit-reveals-options-msg">If the chosen dish has options, they will be shown when you press submit, before adding the item to the order.</div>
{% endif %}
</div>
</form>
</div>
{%- endif %}
{% if current_user.is_anonymous() %}
<div class="form-group{{ ' has-error' if form.user_name.errors }}{{ ' required' if form.user_name.flags.required }}">
{{ form.user_name.label(class='control-label') }}
{{ form.user_name(class='form-control', placeholder='Fill in your name...') }}
{{ util.render_form_field_errors(form.user_name) }}
</div>
{% endif %}
<div class="form-group" style="padding-top: 8px;">
{{ form.submit_button(class='btn btn-primary') }}
{% if not dish %}
<div id="submit-reveals-options-msg">If the chosen dish has options, they will be shown when you press submit, before adding the item to the order.</div>
{% endif %}
</div>
</form>
</div>
{%- endif %}
</div>
<div class="row" id="items">
<div class="col-md-push-1 col-md-5 darker order_items" id="items-list">
<h3>Items</h3>
<table class="table table-hover table-condensed">
<thead>
<tr><th>Name</th><th>Item</th><th>Price</th>{% if courier_or_admin %}<th>Paid?</th>{% endif %}<th>Delete</th></tr>
</thead>
<tbody>
{% for item in order.items -%}
<tr>
<td>{{ item.get_name() }}</td>
<td><span title="{{ item.comment if item.comment }}">{{ item.dish_name }}{{ "*" if item.comment }}</span></td>
<td>{{ item.price|euro }}</td>
{% if courier_or_admin %}<td>{% if not item.paid %}
<form action="{{ url_for('order_bp.item_paid', order_id=order.id, item_id=item.id) }}" method="post" style="display:inline">
<input type="submit" class="btn btn-xs btn-primary" value="Pay"></input>
</form>
{% else %} <span class="glyphicon glyphicon-chevron-down"></span>
{% endif %}</td>
{% endif %}
<td>{% if item.can_delete(order.id, current_user.id, session.get('anon_name', '')) -%}
<form action="{{ url_for('order_bp.delete_item', order_id=order.id, item_id=item.id) }}" method="post" style="display:inline">
<button class="btn btn-link" type="submit"><span class="glyphicon glyphicon-remove"></span></button>
</form>
{%- endif %}<br/></td>
</tr>
{%- endfor %}
</tbody>
</table>
</div>
<div class="col-md-push-2 col-md-4 darker box order_ordered" id="items-ordered">
<h3>Ordered dishes: {{ order.items.count() }}</h3>
<a class="divLink" href="{{ url_for('order_bp.items_showcase', order_id=order.id) }}"></a>
{% for key, value in order.group_by_dish().items() -%}
<div class="product">
{{ key }}: {{ value["count"] }}
{% if value["comments"]|any -%}
<ul class="comments">
{% for comment in value["comments"] -%}
<li>{% if comment %}{{ comment }}
{% else %}<i>No comment</i>
{% endif %}</li>
{% endfor %}
</ul>
{%- endif %}
</div>
{%- endfor %}
</div>
<div class="col-md-push-1 col-md-5 darker order_items" id="items-list">
<h3>Items</h3>
<table class="table table-hover table-condensed">
<thead>
<tr><th>Name</th><th>Item</th><th>Price</th>{% if courier_or_admin %}<th>Paid?</th>{% endif %}<th>Delete</th></tr>
</thead>
<tbody>
{% for item in order.items -%}
<tr>
<td>{{ item.get_name() }}</td>
<td><span title="{{ item.comment if item.comment }}">{{ item.dish_name }}{{ "*" if item.comment }}</span></td>
<td>{{ item.price|euro }}</td>
{% if courier_or_admin %}
<td>
{% if not item.paid %}
<form action="{{ url_for('order_bp.item_paid', order_id=order.id, item_id=item.id) }}" method="post" style="display:inline">
<input type="submit" class="btn btn-xs btn-primary" value="Pay"></input>
</form>
{% else %} <span class="glyphicon glyphicon-chevron-down"></span>
{% endif %}
</td>
{% endif %}
<td>
{% if item.can_delete(order.id, current_user.id, session.get('anon_name', '')) -%}
<form action="{{ url_for('order_bp.delete_item', order_id=order.id, item_id=item.id) }}" method="post" style="display:inline">
<button class="btn btn-link" type="submit"><span class="glyphicon glyphicon-remove"></span></button>
</form>
{%- endif %}<br/></td>
</tr>
{%- endfor %}
</tbody>
</table>
</div>
<div class="col-md-push-2 col-md-4 darker box order_ordered" id="items-ordered">
<h3>Ordered dishes: {{ order.items.count() }}</h3>
<a class="divLink" href="{{ url_for('order_bp.items_showcase', order_id=order.id) }}"></a>
{% for key, value in order.group_by_dish().items() -%}
<div class="product">
{{ key }}: {{ value["count"] }}
{% if value["comments"]|any -%}
<ul class="comments">
{% for comment in value["comments"] -%}
<li>{% if comment %}{{ comment }}
{% else %}<i>No comment</i>
{% endif %}</li>
{% endfor %}
</ul>
{%- endif %}
</div>
{%- endfor %}
</div>
</div>
<div class="row">
<div class="col-md-push-1 col-md-5 darker order_depts" id="debts">
<h3>Debts</h3>
<table class="table table-hover table-condensed">
<thead>
<tr><th>Name</th><th>Total</th><th>To pay</th>{% if courier_or_admin %}<th>Paid?</th>{% endif %}</tr>
</thead>
<tbody>
{% for key, value in order_items.items() -%}
<tr>
<td>{{ key }}</td>
<td>{{ value["total"]|euro }}</td>
<td>{{ value["to_pay"]|euro }}</td>
{% if courier_or_admin %}<td>{% if not value["to_pay"] == 0 %}
<form action="{{ url_for('order_bp.items_user_paid', order_id=order.id, user_name=key) }}" method="post" style="display:inline">
<input type="submit" class="btn btn-xs btn-primary" value="Pay"></input>
</form>
{% else %} <span class="glyphicon glyphicon-chevron-down"></span> {% endif %}</td>{% endif %}
</tr>
{%- endfor %}
</tbody>
</table>
</div>
<div class="col-md-push-1 col-md-5 darker order_depts" id="debts">
<h3>Debts</h3>
<table class="table table-hover table-condensed">
<thead>
<tr><th>Name</th><th>Total</th><th>To pay</th>{% if courier_or_admin %}<th>Paid?</th>{% endif %}</tr>
</thead>
<tbody>
{% for key, value in order_items.items() -%}
<tr>
<td>{{ key }}</td>
<td>{{ value["total"]|euro }}</td>
<td>{{ value["to_pay"]|euro }}</td>
{% if courier_or_admin %}
<td>
{% if not value["to_pay"] == 0 %}
<form action="{{ url_for('order_bp.items_user_paid', order_id=order.id, user_name=key) }}" method="post" style="display:inline">
<input type="submit" class="btn btn-xs btn-primary" value="Pay"></input>
</form>
{% else %}
<span class="glyphicon glyphicon-chevron-down"></span>
{% endif %}
</td>
{% endif %}
</tr>
{%- endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}
{% block styles %}
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2-bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/print.css') }}">
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2-bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/print.css') }}">
{% endblock %}
{% block scripts %}
{{ super() }}
<script src="{{ url_for('static', filename='js/select2.min.js') }}"></script>
<script type="text/javascript">
var select = $('.select').select2({
'sorter': function(results) {
return results.sort();
}
});
var options = select[0].options;
function chooseRandom() {
var index = Math.floor((Math.random() * options.length))
var choice = options[index]
select.val(choice.value).trigger("change")
}
</script>
{{ super() }}
<script src="{{ url_for('static', filename='js/select2.min.js') }}"></script>
<script type="text/javascript">
var select = $('.select').select2({
'sorter': function(results) {
return results.sort();
}
});
var options = select[0].options;
function chooseRandom() {
var index = Math.floor((Math.random() * options.length))
var choice = options[index]
select.val(choice.value).trigger("change")
}
</script>
{% endblock %}

View file

@ -5,76 +5,75 @@
{% import "utils.html" as util -%}
{% block container %}
<div class="row">
{% if not current_user.is_anonymous() %}
<div class="col-md-push-4 col-md-6">
<h3>Edit order:</h3>
<div class="row darker">
<div class="col-sm-12">
<form method="post" action="{{ url_for('.order_edit', order_id=order_id) }}">
{{ form.csrf_token }}
<div class="form-group select2 {{ 'has-errors' if form.courier_id.errors else ''}}">
{{ form.courier_id.label(class='control-label') }}<br>
{{ form.courier_id(class='form-control select') }}
{{ util.render_form_field_errors(form.courier_id) }}
</div>
<div class="form-group select2 {{ 'has-errors' if form.location_id.errors else ''}}{{ ' required' if form.location_id.flags.required }}">
{{ form.location_id.label(class='control-label') }}
{{ form.location_id(class='form-control select') }}
{{ util.render_form_field_errors(form.location_id) }}
</div>
{% if current_user.is_admin() %}
<div class="form-group{{ ' has-error' if form.starttime.errors }}{{ ' required' if form.starttime.flags.required }}{{ ' hidden' if not current_user.is_admin() }}">
{{ form.starttime.label(class='control-label') }}
<div class='input-group date' class='datetimepicker'>
{{ form.starttime(class='form-control datetimepicker') }}
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
{{ util.render_form_field_errors(form.starttime) }}
</div>
{% endif %}
<div class="form-group{{ ' has-error' if form.stoptime.errors }}{{ ' required' if form.stoptime.flags.required }}">
{{ form.stoptime.label(class='control-label') }}
<div class='input-group date' class='datetimepicker'>
{{ form.stoptime(class='form-control datetimepicker') }}
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
{{ util.render_form_field_errors(form.stoptime) }}
</div>
<div class="form-group">
{{ form.submit_button(class='btn btn-primary') }}
</div>
</form>
</div>
</div>
</div>
{% endif %}
</div>
</div>
<div class="row">
{% if not current_user.is_anonymous() %}
<div class="col-md-push-4 col-md-6">
<h3>Edit order:</h3>
<div class="row darker">
<div class="col-sm-12">
<form method="post" action="{{ url_for('.order_edit', order_id=order_id) }}">
{{ form.csrf_token }}
<div class="form-group select2 {{ 'has-errors' if form.courier_id.errors else ''}}">
{{ form.courier_id.label(class='control-label') }}<br>
{{ form.courier_id(class='form-control select') }}
{{ util.render_form_field_errors(form.courier_id) }}
</div>
<div class="form-group select2 {{ 'has-errors' if form.location_id.errors else ''}}{{ ' required' if form.location_id.flags.required }}">
{{ form.location_id.label(class='control-label') }}
{{ form.location_id(class='form-control select') }}
{{ util.render_form_field_errors(form.location_id) }}
</div>
{% if current_user.is_admin() %}
<div class="form-group{{ ' has-error' if form.starttime.errors }}{{ ' required' if form.starttime.flags.required }}{{ ' hidden' if not current_user.is_admin() }}">
{{ form.starttime.label(class='control-label') }}
<div class='input-group date' class='datetimepicker'>
{{ form.starttime(class='form-control datetimepicker') }}
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
{{ util.render_form_field_errors(form.starttime) }}
</div>
{% endif %}
<div class="form-group{{ ' has-error' if form.stoptime.errors }}{{ ' required' if form.stoptime.flags.required }}">
{{ form.stoptime.label(class='control-label') }}
<div class='input-group date' class='datetimepicker'>
{{ form.stoptime(class='form-control datetimepicker') }}
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
{{ util.render_form_field_errors(form.stoptime) }}
</div>
<div class="form-group">
{{ form.submit_button(class='btn btn-primary') }}
</div>
</form>
</div>
</div>
</div>
{% endif %}
</div>
{% endblock %}
{% block styles -%}
{{ super() }}
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap-datetimepicker.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2-bootstrap.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap-datetimepicker.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2-bootstrap.min.css') }}" />
{%- endblock %}
{% block scripts -%}
{{ super() }}
<script src="{{ url_for('static', filename='js/select2.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/moment.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/bootstrap-datetimepicker.min.js') }}"></script>
<script type="text/javascript">
$.ready(function(){
$('.select').select2();
$('.datetimepicker').datetimepicker({
format: 'DD-MM-YYYY HH:mm'
});
}());
</script>
{{ super() }}
<script src="{{ url_for('static', filename='js/select2.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/moment.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/bootstrap-datetimepicker.min.js') }}"></script>
<script type="text/javascript">
$.ready(function(){
$('.select').select2();
$('.datetimepicker').datetimepicker({
format: 'DD-MM-YYYY HH:mm'
});
}());
</script>
{%- endblock %}

View file

@ -6,47 +6,47 @@ Haldis - Order {{ order.id }}
{% endblock %}
{% block styles %}
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}" media="screen">
<link rel="stylesheet" href="/css" media="screen">
<link rel="stylesheet" href="{{ url_for('static', filename='css/print.css') }}" media="print">
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}" media="screen">
<link rel="stylesheet" href="/css" media="screen">
<link rel="stylesheet" href="{{ url_for('static', filename='css/print.css') }}" media="print">
{% endblock %}
{% block scripts %}
{{ super() }}
<script async defer id="github-bjs" src="https://buttons.github.io/buttons.js"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/timer.js') }}"></script>
{{ super() }}
<script async defer id="github-bjs" src="https://buttons.github.io/buttons.js"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/timer.js') }}"></script>
{% endblock %}
{% block content -%}
{{ utils.flashed_messages(container=True) }}
{{ utils.flashed_messages(container=True) }}
<div class="darker showcase" id="items-ordered">
<h1>Haldis order {{ order.id }}</h1>
<div class="darker showcase" id="items-ordered">
<h1>Haldis order {{ order.id }}</h1>
{% if not order.is_closed() %}
<div class="open-order-warning">
<span class="time">{{ order.stoptime|countdown }}</span><br/>
Refresh page when closed!
</div>
{% endif %}
{% if not order.is_closed() %}
<div class="open-order-warning">
<span class="time">{{ order.stoptime|countdown }}</span><br/>
Refresh page when closed!
</div>
{% endif %}
{% for key, value in order.group_by_dish().items() -%}
<div class="dish">
<h2><span class="quantity">{{ value["count"] }}</span> × {{ key }}</h2>
{% if value["comments"]|any -%}
<ul class="comments">
{% for comment in value["comments"] -%}
<li>{% if comment %}{{ comment }}
{% else %}<i>No comment</i>
{% endif %}</li>
{% endfor %}
</ul>
{%- endif %}
</p>
</div>
{%- endfor %}
<div class="total">Total {{ order.items.count() }} items — {{ total_price|euro }}</div>
</div>
{% for key, value in order.group_by_dish().items() -%}
<div class="dish">
<h2><span class="quantity">{{ value["count"] }}</span> × {{ key }}</h2>
{% if value["comments"]|any -%}
<ul class="comments">
{% for comment in value["comments"] -%}
<li>{% if comment %}{{ comment }}
{% else %}<i>No comment</i>
{% endif %}</li>
{% endfor %}
</ul>
{%- endif %}
</p>
</div>
{%- endfor %}
<div class="total">Total {{ order.items.count() }} items — {{ total_price|euro }}</div>
</div>
{%- endblock %}

View file

@ -5,90 +5,89 @@
{% import "utils.html" as util -%}
{% block container %}
<div class="row orders">
<div class="col-md-5">
{% if orders|count > 0 -%}
<h3>Open orders:</h3>
{% for order in orders %}
{{ util.render_order(order) }}
{% endfor %}
{% else %}
<h4>No orders available.</h4>
{% if not current_user.is_anonymous() %}
To create an order, fill in the form on the right.
{% else %}
Login to create an order, or ask someone else.
{% endif %}
{%- endif %}
</div>
{% if not current_user.is_anonymous() %}
<div class="col-md-push-1 col-md-6">
<h3>Create new order:</h3>
<div class="row darker">
<div class="col-sm-12">
<form method="post" action="{{ url_for('order_bp.order_create') }}">
{{ form.csrf_token }}
<div class="form-group select2 {{ 'has-errors' if form.courier_id.errors else ''}}">
{{ form.courier_id.label(class='control-label') }}<br>
{{ form.courier_id(class='form-control select') }}
{{ util.render_form_field_errors(form.courier_id) }}
</div>
<div class="form-group select2 {{ 'has-errors' if form.location_id.errors else ''}}{{ ' required' if form.location_id.flags.required }}">
{{ form.location_id.label(class='control-label') }}
{{ form.location_id(class='form-control select') }}
{{ util.render_form_field_errors(form.location_id) }}
</div>
{% if current_user.is_admin() %}
<div class="form-group{{ ' has-error' if form.starttime.errors }}{{ ' required' if form.starttime.flags.required }}{{ ' hidden' if not current_user.is_admin() }}">
{{ form.starttime.label(class='control-label') }}
<div class='input-group date' class='datetimepicker'>
{{ form.starttime(class='form-control datetimepicker') }}
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
{{ util.render_form_field_errors(form.starttime) }}
</div>
{% endif %}
<div class="form-group{{ ' has-error' if form.stoptime.errors }}{{ ' required' if form.stoptime.flags.required }}">
{{ form.stoptime.label(class='control-label') }}
<div class='input-group date' class='datetimepicker'>
{{ form.stoptime(class='form-control datetimepicker') }}
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
{{ util.render_form_field_errors(form.stoptime) }}
</div>
<div class="form-group">
{{ form.submit_button(class='btn btn-primary') }}
</div>
</form>
</div>
</div>
</div>
{% endif %}
</div>
</div>
<div class="row orders">
<div class="col-md-5">
{% if orders|count > 0 -%}
<h3>Open orders:</h3>
{% for order in orders %}
{{ util.render_order(order) }}
{% endfor %}
{% else %}
<h4>No orders available.</h4>
{% if not current_user.is_anonymous() %}
To create an order, fill in the form on the right.
{% else %}
Login to create an order, or ask someone else.
{% endif %}
{%- endif %}
</div>
{% if not current_user.is_anonymous() %}
<div class="col-md-push-1 col-md-6">
<h3>Create new order:</h3>
<div class="row darker">
<div class="col-sm-12">
<form method="post" action="{{ url_for('order_bp.order_create') }}">
{{ form.csrf_token }}
<div class="form-group select2 {{ 'has-errors' if form.courier_id.errors else ''}}">
{{ form.courier_id.label(class='control-label') }}<br>
{{ form.courier_id(class='form-control select') }}
{{ util.render_form_field_errors(form.courier_id) }}
</div>
<div class="form-group select2 {{ 'has-errors' if form.location_id.errors else ''}}{{ ' required' if form.location_id.flags.required }}">
{{ form.location_id.label(class='control-label') }}
{{ form.location_id(class='form-control select') }}
{{ util.render_form_field_errors(form.location_id) }}
</div>
{% if current_user.is_admin() %}
<div class="form-group{{ ' has-error' if form.starttime.errors }}{{ ' required' if form.starttime.flags.required }}{{ ' hidden' if not current_user.is_admin() }}">
{{ form.starttime.label(class='control-label') }}
<div class='input-group date' class='datetimepicker'>
{{ form.starttime(class='form-control datetimepicker') }}
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
{{ util.render_form_field_errors(form.starttime) }}
</div>
{% endif %}
<div class="form-group{{ ' has-error' if form.stoptime.errors }}{{ ' required' if form.stoptime.flags.required }}">
{{ form.stoptime.label(class='control-label') }}
<div class='input-group date' class='datetimepicker'>
{{ form.stoptime(class='form-control datetimepicker') }}
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
{{ util.render_form_field_errors(form.stoptime) }}
</div>
<div class="form-group">
{{ form.submit_button(class='btn btn-primary') }}
</div>
</form>
</div>
</div>
</div>
{% endif %}
</div>
{% endblock %}
{% block styles -%}
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap-datetimepicker.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2-bootstrap.min.css') }}" />
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap-datetimepicker.min.css') }}" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/select2-bootstrap.min.css') }}" />
{%- endblock %}
{% block scripts -%}
{{ super() }}
<script src="{{ url_for('static', filename='js/select2.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/moment.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/bootstrap-datetimepicker.min.js') }}"></script>
<script type="text/javascript">
$.ready(function(){
$('.select').select2();
$('.datetimepicker').datetimepicker({
format: 'DD-MM-YYYY HH:mm'
});
}());
</script>
{{ super() }}
<script src="{{ url_for('static', filename='js/select2.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/moment.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/bootstrap-datetimepicker.min.js') }}"></script>
<script type="text/javascript">
$.ready(function(){
$('.select').select2();
$('.datetimepicker').datetimepicker({
format: 'DD-MM-YYYY HH:mm'
});
}());
</script>
{%- endblock %}

View file

@ -2,17 +2,17 @@
{% set active_page = "profile" -%}
{% block container %}
<h1>{{ current_user.username }}</h1>
<h3>Themes</h3>
<p><a class="changeThemeButton" id="customTheme">enable custom themes</a></p>
<p><a class="changePerformance" id="highPerformance">enable high performance</a></p>
<p>
<!-- Style attribute due to missing css -->
<select name="themes" id="themes_select" onchange="changeTheme()" style="width: 300px;">
<option disabled selected value> -- select a theme -- </option>
{% for theme in themes_list %}
<option value="{{ theme.optid }}">{{ theme }}</option>
{% endfor %}
</select>
</p>
<h1>{{ current_user.username }}</h1>
<h3>Themes</h3>
<p><a class="changeThemeButton" id="customTheme">enable custom themes</a></p>
<p><a class="changePerformance" id="highPerformance">enable high performance</a></p>
<p>
<!-- Style attribute due to missing css -->
<select name="themes" id="themes_select" onchange="changeTheme()" style="width: 300px;">
<option disabled selected value> -- select a theme -- </option>
{% for theme in themes_list %}
<option value="{{ theme.optid }}">{{ theme }}</option>
{% endfor %}
</select>
</p>
{% endblock %}

View file

@ -1,14 +1,14 @@
{% extends "layout.html" -%}
{% set active_page = "stats" -%}
{% block container %}
<h2>Stats bruh</h2>
<div class="jumbotron">
<h5>
Over
<strong>{{ data.amount.orders }}</strong> orders,
<strong>{{ data.amount.users }}</strong> users have ordered
<strong>{{ data.amount.orderitems }}</strong> items in
<strong>{{ data.amount.locations }}</strong> locations.
</h5>
</div>
<h2>Stats bruh</h2>
<div class="jumbotron">
<h5>
Over
<strong>{{ data.amount.orders }}</strong> orders,
<strong>{{ data.amount.users }}</strong> users have ordered
<strong>{{ data.amount.orderitems }}</strong> items in
<strong>{{ data.amount.locations }}</strong> locations.
</h5>
</div>
{% endblock %}

View file

@ -1,25 +1,25 @@
{% macro render_order(order) -%}
<div class="row darke order_row">
<div class="col-md-8 col-lg-9 order_data">
<h5>{{ order.location_name }}</h5>
<b class="amount_of_orders">{{ order.items.count() }} orders</b></p>
<p class="time_data">
{% if order.stoptime %}
<span><b>Closes </b>{{ order.stoptime.strftime("%H:%M") }}</span><span class="time">{{ order.stoptime|countdown }}</span>
{% else %}open{% endif %}<br/>
</div>
<div class="col-md-4 col-lg-3 expand_button_wrapper">
<a class="btn btn-primary btn-block align-bottom expand_button" href="{{ url_for('order_bp.order_from_id', order_id=order.id) }}">Expand</a>
</div>
<div class="col-md-8 col-lg-9 order_data">
<h5>{{ order.location_name }}</h5>
<b class="amount_of_orders">{{ order.items.count() }} orders</b></p>
<p class="time_data">
{% if order.stoptime %}
<span><b>Closes </b>{{ order.stoptime.strftime("%H:%M") }}</span><span class="time">{{ order.stoptime|countdown }}</span>
{% else %}open{% endif %}<br/>
</div>
<div class="col-md-4 col-lg-3 expand_button_wrapper">
<a class="btn btn-primary btn-block align-bottom expand_button" href="{{ url_for('order_bp.order_from_id', order_id=order.id) }}">Expand</a>
</div>
</div>
{%- endmacro %}
{% macro render_form_field_errors(field) %}
{%- if field.errors %}
{%- for error in field.errors %}
<p class="help-block">{{error}}</p>
{%- endfor %}
{%- for error in field.errors %}
<p class="help-block">{{error}}</p>
{%- endfor %}
{%- elif field.description -%}
<p class="help-block">{{field.description|safe}}</p>
<p class="help-block">{{field.description|safe}}</p>
{%- endif %}
{% endmacro %}

View file

@ -1,22 +1,22 @@
# Seasonal themes for Haldis
- lightmode:
file: lightmode.css
type: default
file: lightmode.css
type: default
- darkmode:
file: darkmode.css
type: default
file: darkmode.css
type: default
- halloween:
file: halloween.css
type: static-date
start: 21/10
end: 10/11
file: halloween.css
type: static-date
start: 21/10
end: 10/11
- sinterklaas:
file: sinterklaas.css
type: static-date
start: 28/11
end: 5/12
file: sinterklaas.css
type: static-date
start: 28/11
end: 5/12
- kerstmis:
file: kerstmis.css
type: static-date
start: 6/12
end: 06/01
file: kerstmis.css
type: static-date
start: 6/12
end: 06/01

View file

@ -1,30 +1,30 @@
{
"comments": {
// symbol used for single line comment. Remove this entry if your language does not support line comments
"lineComment": "//",
// symbols used for start and end a block comment. Remove this entry if your language does not support block comments
"blockComment": [ "=============================================", "=============================================" ]
},
// symbols used as brackets
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
// symbols that are auto closed when typing
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
],
// symbols that can be used to surround a selection
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
]
"comments": {
// symbol used for single line comment. Remove this entry if your language does not support line comments
"lineComment": "//",
// symbols used for start and end a block comment. Remove this entry if your language does not support block comments
"blockComment": [ "=============================================", "=============================================" ]
},
// symbols used as brackets
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
// symbols that are auto closed when typing
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
],
// symbols that can be used to surround a selection
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
]
}

View file

@ -1,31 +1,31 @@
{
"name": "hlds",
"publisher": "Silvius",
"displayName": "Syntax highlighting for haldis (hlds) files.",
"description": "hlds",
"repository": "https://git.zeus.gent/midgard/haldis",
"version": "0.0.2",
"engines": {
"vscode": "^1.30.0"
},
"categories": [
"Programming Languages"
],
"contributes": {
"languages": [{
"id": "hlds",
"aliases": ["HLDS", "hlds"],
"extensions": [".hlds"],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "hlds",
"scopeName": "source.hlds",
"path": "./syntaxes/hlds.tmLanguage.json"
}, {
"path": "./syntaxes/injections.json",
"scopeName": "comment.injection",
"injectTo": ["source.hlds"]
}]
}
"name": "hlds",
"publisher": "Silvius",
"displayName": "Syntax highlighting for haldis (hlds) files.",
"description": "hlds",
"repository": "https://git.zeus.gent/midgard/haldis",
"version": "0.0.2",
"engines": {
"vscode": "^1.30.0"
},
"categories": [
"Programming Languages"
],
"contributes": {
"languages": [{
"id": "hlds",
"aliases": ["HLDS", "hlds"],
"extensions": [".hlds"],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "hlds",
"scopeName": "source.hlds",
"path": "./syntaxes/hlds.tmLanguage.json"
}, {
"path": "./syntaxes/injections.json",
"scopeName": "comment.injection",
"injectTo": ["source.hlds"]
}]
}
}

View file

@ -1,36 +1,36 @@
{
"scopeName": "comment.injection",
"injectionSelector": "L:embedded.meta.tag",
"patterns": [
{
"include": "#comment"
},
{
"include": "#header"
},
{
"include": "#links"
},
{
"include": "#brackets"
}
],
"repository": {
"comment": {
"match": "#.*$",
"name": "comment"
},
"header": {
"match": "^[a-zA-Z0-9_].*$",
"name": "keyword.todo"
},
"links": {
"match": "^\\t[a-zA-Z0-9-_]*",
"name": "keyword.todo"
},
"brackets": {
"match": "=",
"name": "variable.other"
}
}
"scopeName": "comment.injection",
"injectionSelector": "L:embedded.meta.tag",
"patterns": [
{
"include": "#comment"
},
{
"include": "#header"
},
{
"include": "#links"
},
{
"include": "#brackets"
}
],
"repository": {
"comment": {
"match": "#.*$",
"name": "comment"
},
"header": {
"match": "^[a-zA-Z0-9_].*$",
"name": "keyword.todo"
},
"links": {
"match": "^\\t[a-zA-Z0-9-_]*",
"name": "keyword.todo"
},
"brackets": {
"match": "=",
"name": "variable.other"
}
}
}

View file

@ -9,8 +9,8 @@ B="\n${bold}"
E="${normal}"
if [ ! -d "venv" ]; then
echo -e "${B} No venv found, creating a new one ${E}"
python3 -m venv venv
echo -e "${B} No venv found, creating a new one ${E}"
python3 -m venv venv
fi
source venv/bin/activate