From 6a1562561bfb3814dcc0632c8d802ed0634afc33 Mon Sep 17 00:00:00 2001
From: Freek Bes <36384333+FreekBes@users.noreply.github.com>
Date: Mon, 11 Nov 2019 12:43:00 +0100
Subject: [PATCH] schedule clearer toegevoegd
---
import/schedule.js | 46 +++++++++++++++++++++++++++++++++---
opmaak.css | 59 +++++++++++++++++++++++++++++++++++++++++++++-
portal.php | 8 ++++---
3 files changed, 106 insertions(+), 7 deletions(-)
diff --git a/import/schedule.js b/import/schedule.js
index 0572074..4164f5b 100644
--- a/import/schedule.js
+++ b/import/schedule.js
@@ -1,11 +1,31 @@
var schedule = {
- default: null,
+ defaults: null,
+ carts: [],
+
init: function() {
+ return new Promise(function(resolve, reject) {
+ schedule["defaults"] = document.getElementsByClassName("schedule")[0].innerHTML;
+ var cartsReq = new XMLHttpRequest();
+ cartsReq.open('POST', 'import/dcarts.php');
+ cartsReq.onload = function() {
+ try {
+ var response = JSON.parse(cartsReq.responseText);
+ for (var i = 0; i < response["data"].length; i++) {
+ schedule.carts[response["data"][i]["id"]] = response["data"][i];
+ }
+ resolve();
+ }
+ catch(e) {
+ reject(e);
+ }
+ };
+ cartsReq.send();
+ });
},
clear: function() {
-
+ document.getElementsByClassName("schedule")[0].innerHTML = schedule["defaults"];
},
get: function(year, week) {
@@ -61,6 +81,7 @@ var schedule = {
for (var i = 0; i < reservationCount; i++) {
document.getElementById("week-hour-"+reservations[i]["hour"]).children[reservations[i]["day"]+1].appendChild(schedule.createResElem(reservations[i]));
}
+ schedule.fillInResAddBtns();
},
createResElem: function(res) {
@@ -69,7 +90,26 @@ var schedule = {
if (res["cancelled"]) {
resElem.className += " cancelled";
}
- resElem.innerHTML = "Kar " + res["cart_id"] + ", gereserveerd door " + res["user"] + " namens " + res["teacher"] + " in lokaal " + res["location"];
+ var contents = 'Kar ' + res["cart_id"] + ' (' + schedule.carts[res["cart_id"]]["dev_type"] + '), lokaal '+res["location"]+'
' + res["user"];
+ if (res["teacher"] != null) {
+ contents += ', namens:
' + res["teacher"] + '';
+ }
+ resElem.innerHTML = contents;
return resElem;
+ },
+
+ fillInResAddBtns: function() {
+ var resAddBtn = document.createElement("div");
+ resAddBtn.className = "reservation add-btn";
+ resAddBtn.innerHTML = "+";
+ resAddBtn.setAttribute("title", "Kar reserveren");
+
+ var lessons = document.getElementsByClassName("lesson");
+ var lessonCount = lessons.length;
+ for (var i = 0; i < lessonCount; i++) {
+ if (lessons[i].className.indexOf("break") < 0) {
+ lessons[i].appendChild(resAddBtn.cloneNode(true));
+ }
+ }
}
};
\ No newline at end of file
diff --git a/opmaak.css b/opmaak.css
index a617cf7..32074f2 100644
--- a/opmaak.css
+++ b/opmaak.css
@@ -7,6 +7,7 @@ html {
padding: 0px;
margin: 0px;
background-color: #2A2A2A;
+ overflow-y: scroll;
}
body {
@@ -14,7 +15,6 @@ body {
color: #EDEDED;
font-family: Roboto, Verdana, Arial, Sans-Serif;
padding: 0px;
- margin: 0px;
cursor: default;
width: 100%;
max-width: 900px;
@@ -400,6 +400,7 @@ label {
.schedule {
width: 100%;
background: rgba(255,255,255,0.1);
+ user-select: none;
}
.schedule th, .schedule td {
@@ -436,6 +437,56 @@ label {
background: rgba(255,255,255,0.1);
height: 48px;
width: 19%;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.reservation {
+ background: #DEDEDE;
+ border: solid 1px #9E9E9E;
+ border-radius: 2px;
+ color: #1A1A1A;
+ font-size: 12px;
+ margin: 4px;
+ padding: 3px 6px;
+ min-height: 44px;
+}
+
+.reservation.cancelled {
+ background: #DE8E8E;
+ border-color: #9E4E4E;
+ text-decoration: line-through;
+}
+
+.reservation.add-btn {
+ display: block;
+ background: rgba(255,255,255,0.1);
+ border-color: rgba(0,0,0,0.2);
+ color: #ffffff;
+ cursor: pointer;
+ transition: 0.15s;
+ text-align: center;
+ height: 0px;
+ min-height: initial;
+ line-height: 14px;
+ font-size: 24px;
+ padding: 0px 6px;
+ opacity: 0;
+ transition: 0.15s;
+ pointer-events: none;
+}
+
+.reservation.add-btn:hover {
+ background: rgba(255,255,255,0.3);
+ transition: 0.05s;
+}
+
+.lesson:hover .reservation.add-btn {
+ opacity: 1;
+ height: initial;
+ padding: 12px 6px;
+ transition: 0.05s;
+ pointer-events: initial;
}
#spinner {
@@ -483,4 +534,10 @@ label {
color: #FFFFFF;
background-color: rgba(181, 19, 27, 0.99);
text-shadow: none;
+}
+
+@media screen and (max-width: 850px) {
+ .location-prefix {
+ display: none;
+ }
}
\ No newline at end of file
diff --git a/portal.php b/portal.php
index 2bc54dd..ed696b8 100644
--- a/portal.php
+++ b/portal.php
@@ -116,9 +116,11 @@