From abacaca9e21d51d8fee74423c112bebf087222c9 Mon Sep 17 00:00:00 2001 From: Sura Hanna Date: Fri, 24 May 2024 15:47:14 -0400 Subject: [PATCH] disabled animated gradient background for welcomemessage and opted for a loop of static colorseach time the message is dispalyed --- package-lock.json | 27 ++++++++++++++++-- package.json | 1 + ...{index-Dt4LGvko.css => index-Bq7sOAzP.css} | 2 +- .../{index-DDszHAtm.js => index-DWgpMFbj.js} | 2 +- public/index.html | 6 ++-- public/ngci-logo-black.png | Bin 0 -> 47613 bytes server.js | 17 +++++++++++ 7 files changed, 47 insertions(+), 8 deletions(-) rename public/assets/{index-Dt4LGvko.css => index-Bq7sOAzP.css} (80%) rename public/assets/{index-DDszHAtm.js => index-DWgpMFbj.js} (56%) create mode 100755 public/ngci-logo-black.png diff --git a/package-lock.json b/package-lock.json index cf3aac9..07d1927 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@azure/identity": "^3.3.2", "@azure/msal-node": "^2.6.1", "@microsoft/microsoft-graph-client": "^3.0.7", + "cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^4.18.2", "fs": "^0.0.1-security", @@ -213,9 +214,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", - "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz", + "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -384,6 +385,18 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -991,6 +1004,14 @@ } } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", diff --git a/package.json b/package.json index fc26eb6..e2ad9df 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@azure/identity": "^3.3.2", "@azure/msal-node": "^2.6.1", "@microsoft/microsoft-graph-client": "^3.0.7", + "cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^4.18.2", "fs": "^0.0.1-security", diff --git a/public/assets/index-Dt4LGvko.css b/public/assets/index-Bq7sOAzP.css similarity index 80% rename from public/assets/index-Dt4LGvko.css rename to public/assets/index-Bq7sOAzP.css index c46a9b4..379bf95 100644 --- a/public/assets/index-Dt4LGvko.css +++ b/public/assets/index-Bq7sOAzP.css @@ -1 +1 @@ -:root{--font-size: 1vw;--width: 65vw;--img-margin: -2vw}@media (orientation: landscape){:root{--font-size: 1vh;--width: 65vh;--img-margin: -2vh}}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;font-size:var(--font-size)}body{height:100%;font-family:Calibri,sans-serif;background-color:#000;color:#fff}.header{text-align:center;width:100%;flex-grow:0}.resource-wrapper{width:100%}.title-row{font-weight:700;font-size:3em;padding:.25em 0}.event-row{display:flex;flex-wrap:nowrap;overflow-x:hidden;font-size:3em}.flex-row{display:flex;flex-direction:row}.flex-cell{display:flex;flex-direction:column;flex-grow:1;flex-basis:33%;justify-content:start;align-items:left;margin-right:.5em}.organizer{font-weight:lighter;font-style:italic}.horizontal-logo{width:100%}#resources-container{width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;flex-grow:1}#grid{display:grid;grid-template-columns:1fr 2fr 1fr;height:100%;width:100%}#schedule-container{height:100%;grid-column:1;padding:2em;display:flex;flex-direction:column}#schedule-container .header{margin-bottom:3em}#homepage-container{grid-column:3;padding:2em;text-align:center;display:flex;flex-direction:column;height:100%}.top-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:50%}#time-weather-container{display:grid;grid-template-columns:1fr 1fr;align-items:center;width:100%;font-size:5em;font-weight:700}.time{font-family:Calibri,sans-serif}.separator{font-family:Courier New,monospace}#slideshow{grid-column:2;overflow:hidden}.slideshow-img{transition:opacity .5s ease-in-out;opacity:0}#bottom-section{display:flex;flex-direction:column;justify-content:center;align-items:center}#weather-icon{align-self:end;width:2em;margin:var(--img-margin)}#temperature{align-self:start}#description{font-weight:lighter}#quote{font-size:5em;margin:0 10%;max-height:40vh;text-align:left}#author{margin-top:2.5%;font-size:4em;width:75%;text-align:right}#welcome-message{position:fixed;top:0;left:0;width:100%;height:100vh;background:linear-gradient(124deg,#ff7d68,#f17b7b,#f1d67b,#f0f17b,#7bf190,#7bebf1,#847bf1,#f370ff,#f8a9ff);background-size:1800% 1800%;animation:rainbow 30s ease infinite;justify-content:center;align-items:center;color:#fff;font-size:2em;display:flex;z-index:1001;padding:20em;opacity:0;transition:opacity 1s linear}#welcome-message.visible{opacity:1}@keyframes rainbow{0%{background-position:0% 82%}50%{background-position:100% 19%}to{background-position:0% 82%}} +:root{--font-size: 1vw;--width: 65vw;--img-margin: -2vw}@media (orientation: landscape){:root{--font-size: 1vh;--width: 65vh;--img-margin: -2vh}}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;font-size:var(--font-size)}body{height:100%;font-family:Calibri,sans-serif;background-color:#000;color:#fff}.header{text-align:center;width:100%;flex-grow:0}.resource-wrapper{width:100%}.title-row{font-weight:700;font-size:3em;padding:.25em 0}.event-row{display:flex;flex-wrap:nowrap;overflow-x:hidden;font-size:3em}.flex-row{display:flex;flex-direction:row}.flex-cell{display:flex;flex-direction:column;flex-grow:1;flex-basis:33%;justify-content:start;align-items:left;margin-right:.5em}.organizer{font-weight:lighter;font-style:italic}.horizontal-logo{width:100%}#resources-container{width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;flex-grow:1}#grid{display:grid;grid-template-columns:1fr 2fr 1fr;height:100%;width:100%}#schedule-container{height:100%;grid-column:1;padding:2em;display:flex;flex-direction:column}#schedule-container .header{margin-bottom:3em}#homepage-container{grid-column:3;padding:2em;text-align:center;display:flex;flex-direction:column;height:100%}.top-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:50%}#time-weather-container{display:grid;grid-template-columns:1fr 1fr;align-items:center;width:100%;font-size:5em;font-weight:700}.time{font-family:Calibri,sans-serif}.separator{font-family:Courier New,monospace}#slideshow{grid-column:2;overflow:hidden}.slideshow-img{transition:opacity .5s ease-in-out;opacity:0}#bottom-section{display:flex;flex-direction:column;justify-content:center;align-items:center}#weather-icon{align-self:end;width:2em;margin:var(--img-margin)}#temperature{align-self:start}#description{font-weight:lighter}#quote{font-size:5em;margin:0 10%;max-height:40vh;text-align:left}#author{margin-top:2.5%;font-size:4em;width:75%;text-align:right}#welcome-message{position:fixed;top:0;left:0;width:100%;height:100vh;background-color:#00adef;justify-content:center;align-items:center;color:#fff;font-size:2em;display:flex;z-index:1001;padding:20em;opacity:0;transition:opacity 1s linear}#welcome-message.visible{opacity:1} diff --git a/public/assets/index-DDszHAtm.js b/public/assets/index-DWgpMFbj.js similarity index 56% rename from public/assets/index-DDszHAtm.js rename to public/assets/index-DWgpMFbj.js index 8994576..e995a31 100644 --- a/public/assets/index-DDszHAtm.js +++ b/public/assets/index-DWgpMFbj.js @@ -1 +1 @@ -(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))i(t);new MutationObserver(t=>{for(const s of t)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function o(t){const s={};return t.integrity&&(s.integrity=t.integrity),t.referrerPolicy&&(s.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?s.credentials="include":t.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(t){if(t.ep)return;t.ep=!0;const s=o(t);fetch(t.href,s)}})();function M(n,e,o){e.sort((r,l)=>new Date(r.start.dateTime)-new Date(l.start.dateTime));const i=document.createElement("div");i.className="resource-wrapper";const t=document.createElement("div");switch(t.className="title-row",n.split("@")[0]){case"s-er-1431-00":t.innerHTML="ER 1431-00 Open Space";break;case"s-er-1431-03":t.innerHTML="ER 1431-03 Visualization Lab";break;case"s-er-1431-33":t.innerHTML="ER 1431-33 Ideation Room";break;case"s-er-1431-37":t.innerHTML="ER 1431-37 Multipurpose Room";break;case"s-er-1431-39":t.innerHTML="ER 1431-39 Conference Room";break}i.appendChild(t);const s=document.createElement("div");if(s.className="event-row",e.forEach((r,l)=>{if(l<3){const a=document.createElement("div");a.className="flex-cell";const v=r.subject.length>18?r.subject.substring(0,18)+"...":r.subject,C=!r.location.displayName||r.organizer.emailAddress.address===n?"Walk-Up":r.organizer.emailAddress.name,L=h(r.start.dateTime+"Z"),I=h(r.end.dateTime+"Z");if(new Date(r.end.dateTime)>new Date){const p=document.createElement("div");p.textContent=v;const d=document.createElement("div");d.textContent=C,d.className="organizer";const m=document.createElement("div");m.className="time-range",m.innerHTML=`${L} - ${I}`,a.appendChild(p),a.appendChild(d),a.appendChild(m),s.appendChild(a)}}}),s.children.length===0){const r=document.createElement("div");r.className="flex-cell",r.textContent="No upcoming meetings at this time",s.appendChild(r)}i.appendChild(s),o.appendChild(i)}function h(n){const e=new Date(n),o=e.getHours(),i=e.getMinutes().toString().padStart(2,"0");return`${o}:${i}`}async function f(){console.log("fetching events");const e=await(await fetch("http://localhost:8080/api/events")).json(),o=document.getElementById("resources-container");o.innerHTML="",Object.keys(e).forEach(t=>{M(t,e[t],o)})}function g(n){let e=h(new Date);n||(e=e.replace(":"," ")),document.getElementById("time").innerHTML=e}function b(n){const e=document.getElementById(n),o=e.textContent.length;o<=83?e.style.fontSize="5em":o<=166?e.style.fontSize="4em":e.style.fontSize="3em"}async function w(){try{const n=await fetch("http://localhost:8080/api/quotes");if(n.ok){const o=(await n.json()).results,i=Math.floor(Math.random()*o.length),t=o[i];document.getElementById("quote").innerHTML=`${t.content}`,b("quote"),document.getElementById("author").innerHTML=`${t.author}`}else console.error("Failed to fetch data")}catch(n){console.error("An error occurred:",n)}}async function y(){const e=await(await fetch("http://localhost:8080/api/weather")).json();if(e.cod===200){const o=e.main.temp,i=e.weather[0].description,s=`https://openweathermap.org/img/wn/${e.weather[0].icon}.png`;document.getElementById("weather-icon-container").innerHTML=`Weather Icon`,document.getElementById("temperature").innerHTML=`${o}°`,document.getElementById("description").innerHTML=`${i}`}else document.getElementById("weather").innerText="Weather data unavailable"}async function H(){try{const n=await fetch("http://localhost:8080/api/slideshow");if(!n.ok)throw new Error("Failed to fetch slideshow images");const e=await n.json();E(e)}catch(n){console.error("Error fetching slideshow images:",n)}}function N(n){const e=document.createElement("img");e.src=`http://localhost:8080${n}`,e.className="slideshow-img",e.style.width="100%",e.style.maxHeight="100vh",e.style.objectFit="cover";const o=n.split("/").pop().split(".")[0];return e.alt=o,e.title=o,e}let u=0;function E(n){if(n.length===0){console.log("No images found for the slideshow.");return}const e=document.getElementById("slideshow");e.innerHTML="";const o=N(n[u]);e.appendChild(o),setTimeout(()=>{o.style.opacity="1"},100),setTimeout(()=>{for(;e.children.length>1;)e.removeChild(e.firstChild)},100),u=(u+1)%n.length,setTimeout(()=>E(n),3e4)}const T=document.getElementById("welcome-message");function S(){T.classList.add("visible")}function x(){T.classList.remove("visible")}setInterval(function(){S(),setTimeout(x,3e4)},6e5);w();setInterval(w,60*60*1e3);y();setInterval(y,5*60*1e3);let c=!0;g(c);setInterval(()=>{g(c),c=!c},1e3);H();f();setInterval(f,3*60*1e3); +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))i(t);new MutationObserver(t=>{for(const s of t)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function o(t){const s={};return t.integrity&&(s.integrity=t.integrity),t.referrerPolicy&&(s.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?s.credentials="include":t.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(t){if(t.ep)return;t.ep=!0;const s=o(t);fetch(t.href,s)}})();function H(n,e,o){e.sort((r,d)=>new Date(r.start.dateTime)-new Date(d.start.dateTime));const i=document.createElement("div");i.className="resource-wrapper";const t=document.createElement("div");switch(t.className="title-row",n.split("@")[0]){case"s-er-1431-00":t.innerHTML="ER 1431-00 Open Space";break;case"s-er-1431-03":t.innerHTML="ER 1431-03 Visualization Lab";break;case"s-er-1431-33":t.innerHTML="ER 1431-33 Ideation Room";break;case"s-er-1431-37":t.innerHTML="ER 1431-37 Multipurpose Room";break;case"s-er-1431-39":t.innerHTML="ER 1431-39 Conference Room";break}i.appendChild(t);const s=document.createElement("div");if(s.className="event-row",e.forEach((r,d)=>{if(d<3){const c=document.createElement("div");c.className="flex-cell";const C=r.subject.length>18?r.subject.substring(0,18)+"...":r.subject,I=!r.location.displayName||r.organizer.emailAddress.address===n?"Walk-Up":r.organizer.emailAddress.name,L=p(r.start.dateTime+"Z"),M=p(r.end.dateTime+"Z");if(new Date(r.end.dateTime)>new Date){const g=document.createElement("div");g.textContent=C;const m=document.createElement("div");m.textContent=I,m.className="organizer";const u=document.createElement("div");u.className="time-range",u.innerHTML=`${L} - ${M}`,c.appendChild(g),c.appendChild(m),c.appendChild(u),s.appendChild(c)}}}),s.children.length===0){const r=document.createElement("div");r.className="flex-cell",r.textContent="No upcoming meetings at this time",s.appendChild(r)}i.appendChild(s),o.appendChild(i)}function p(n){const e=new Date(n),o=e.getHours(),i=e.getMinutes().toString().padStart(2,"0");return`${o}:${i}`}async function y(){console.log("fetching events");const e=await(await fetch("http://localhost:8080/api/events")).json(),o=document.getElementById("resources-container");o.innerHTML="",Object.keys(e).forEach(t=>{H(t,e[t],o)})}function E(n){let e=p(new Date);n||(e=e.replace(":"," ")),document.getElementById("time").innerHTML=e}function S(n){const e=document.getElementById(n),o=e.textContent.length;o<=83?e.style.fontSize="5em":o<=166?e.style.fontSize="4em":e.style.fontSize="3em"}async function T(){try{const n=await fetch("http://localhost:8080/api/quotes");if(n.ok){const o=(await n.json()).results,i=Math.floor(Math.random()*o.length),t=o[i];document.getElementById("quote").innerHTML=`${t.content}`,S("quote"),document.getElementById("author").innerHTML=`${t.author}`}else console.error("Failed to fetch data")}catch(n){console.error("An error occurred:",n)}}async function b(){const e=await(await fetch("http://localhost:8080/api/weather")).json();if(e.cod===200){const o=e.main.temp,i=e.weather[0].description,s=`https://openweathermap.org/img/wn/${e.weather[0].icon}.png`;document.getElementById("weather-icon-container").innerHTML=`Weather Icon`,document.getElementById("temperature").innerHTML=`${o}°`,document.getElementById("description").innerHTML=`${i}`}else document.getElementById("weather").innerText="Weather data unavailable"}async function k(){try{const n=await fetch("http://localhost:8080/api/slideshow");if(!n.ok)throw new Error("Failed to fetch slideshow images");const e=await n.json();v(e)}catch(n){console.error("Error fetching slideshow images:",n)}}function D(n){const e=document.createElement("img");e.src=`http://localhost:8080${n}`,e.className="slideshow-img",e.style.width="100%",e.style.maxHeight="100vh",e.style.objectFit="cover";const o=n.split("/").pop().split(".")[0];return e.alt=o,e.title=o,e}let h=0;function v(n){if(n.length===0){console.log("No images found for the slideshow.");return}const e=document.getElementById("slideshow");e.innerHTML="";const o=D(n[h]);e.appendChild(o),setTimeout(()=>{o.style.opacity="1"},100),setTimeout(()=>{for(;e.children.length>1;)e.removeChild(e.firstChild)},100),h=(h+1)%n.length,setTimeout(()=>v(n),3e4)}const f=document.getElementById("welcome-message"),N=document.querySelector("#welcome-message img"),w=["#00ADEF","#912338","#e5a712","#db0272","#8cc63e","#573996"],x=["black","white","black","white","black","white"];let a=0;function B(){f.classList.add("visible"),f.style.backgroundColor=w[a],N.src=x[a]==="white"?"ngci-logo-white-wide.svg":"ngci-logo-black.png",a=(a+1)%w.length}function $(){f.classList.remove("visible")}setInterval(function(){B(),setTimeout($,3e4)},6e5);T();setInterval(T,60*60*1e3);b();setInterval(b,5*60*1e3);let l=!0;E(l);setInterval(()=>{E(l),l=!l},1e3);k();y();setInterval(y,3*60*1e3); diff --git a/public/index.html b/public/index.html index e139b93..e5affb4 100644 --- a/public/index.html +++ b/public/index.html @@ -6,13 +6,13 @@ NGCI Daily Schedule - - + +
- +
diff --git a/public/ngci-logo-black.png b/public/ngci-logo-black.png new file mode 100755 index 0000000000000000000000000000000000000000..96249ba50e537cc3fcafe8bf6eec7d3c75437cf8 GIT binary patch literal 47613 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 vp|yGKq<+(8OjOSVk3&OWVY#QQcK { +// if (!deviceCodeResponse) { +// throw new Error("Device code response is undefined."); +// } +// console.log(deviceCodeResponse.message); +// }); +// +// GRAPH API SECTION - APP ONLY AUTH +// msGraphHelper.initializeGraphForAppOnlyAuth(settings); const data = fs.readFileSync('./resourceUPNs.json', 'utf8'); const resourceUPNs = JSON.parse(data); @@ -42,8 +57,10 @@ app.get('/api/events', async (req, res) => { try { const data = await msGraphHelper.getCalendarView(resource, startDateTime.toISOString(), endDateTime.toISOString()); + // fs.readFileSync(`./events/${resource}.json`, 'utf8'); const resourceEvents = data; events[resource] = resourceEvents; + // console.log(`${new Date()}: Grabbed events for ${resource}`); } catch (error) { console.error(error); }