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 @@