From d265303a9422511d5787acf096248f579d2a1bb1 Mon Sep 17 00:00:00 2001 From: Ava Gaiety Wroten Date: Wed, 25 Dec 2019 22:36:18 -0600 Subject: [PATCH] Time header, branding in footer, auto-refreshing --- .gitignore | 2 ++ copyAssets.sh | 1 + package.json | 3 ++- src/.DS_Store | Bin 6148 -> 0 bytes src/assets/.DS_Store | Bin 6148 -> 0 bytes src/assets/app.js | 38 ++++++++++++++++++++++++++------------ src/assets/header.jpg | Bin 0 -> 28408 bytes src/assets/styles.css | 39 +++++++++++++++++++++++++++++---------- src/index.html | 12 +++++++++--- 9 files changed, 69 insertions(+), 26 deletions(-) delete mode 100644 src/.DS_Store delete mode 100644 src/assets/.DS_Store create mode 100644 src/assets/header.jpg diff --git a/.gitignore b/.gitignore index 7ab347e..3106bd8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ public data/raw/real data/json +.DS_Store +src/DS_Store # Logs logs *.log diff --git a/copyAssets.sh b/copyAssets.sh index 9092157..5f82e4c 100644 --- a/copyAssets.sh +++ b/copyAssets.sh @@ -4,3 +4,4 @@ cp -R src/assets public cp node_modules/vital-css/dist/css/vital.min.css public/assets cp node_modules/vue/dist/vue.min.js public/assets cp node_modules/axios/dist/axios.min.js public/assets +cp node_modules/moment/min/moment.min.js public/assets diff --git a/package.json b/package.json index 9cc27b6..7ce418d 100644 --- a/package.json +++ b/package.json @@ -29,5 +29,6 @@ "moment": "^2.24.0", "vital-css": "^2.2.1", "vue": "^2.6.10" - } + }, + "dependencies": {} } diff --git a/src/.DS_Store b/src/.DS_Store deleted file mode 100644 index 6f0c15d99075410188bf85594f341ff44316bd88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!A`aXK%_}+2`v)Entq1Rt zIJ3Ku5cJ^17@28i-|XznZuYg==`zN+GwC-Nt1!k4P{e`>%@=~>s4G&?9z-tZNLk`f zlaU|B{z^1C{vreT?#j$#2|NR~{QlnkQ5Ym?z5c-q#nMK3(=aT{+O}@pVLWwHFP$Wg zH@?Q+xt9)oZC}K3xUfC{G8jy|mEDs#O1&T&jAe4rA3(^>RS@;#sS{74ej?{_)qr7` zrrE7jXS3E}qb81;SxwB^?RrfdG+S9_8rA*A@mcTw@oDy)y}T-7Ieddsb~Mi64UDBd zKDgs3jH5g7&vWLngv0@v`1oq82Awbcs>YFL|bF7P#zu7;O`@j zmk?3F#=8Wf&}eJS6~YJzSE+z1mFp`8SLxsvI?mRZD^%%>%avgsy)xG~6fRc>zmVaK z+X|^A28e-W28ya%!TNvt{r!JAiF(8UG4QV#;H8e+abQcjwytarYpnq7fudksu5gh8 jhAhPpi=}uER0{Y78i2OOTp@Ts=tn@(Kn*eQs|4cY~M*OKj6%6fg>`ngZh6-5{S*{57cj{fbTD4*cd%Y4X)K z=_S|`il|GRk~3esV1I)jD>fe@USJ2)EY*9%mmrO!EN?cyvbFWfrHxI?vTgf{{lXjY zsh9itIBWZ(XQKAV&j*2yA9Ei6j{V?C)SDjGuHENJ?ng;)B$K1C2g>uOQ4;cLn~#$) zlh5%~hhY_@y5Rd@Dx=5=Sbx7VyYw{~{t^QyIVqjmS-Xn68^_GbR}gPb)n z>~GSpYCMIH2o`1;_gh|<57Sf1GGoX)9j$})escZYkB6V{oyQ9Qft3#aHrm7+B{5I> z7(vX!q8KaJhc_t0O7_cZ$i9PfcExS5aymg)4^ac_o|SfavF@K1a!@t4@(SqRv~_vq z-_*RIQNSp0(F%zD!GQ~OH5Llx)`3D^0e}@WOG7LU1d-!tbTt+V(F0>D6{u2~zG5(y zj&?`$T#bc7l}=2KjOXZ)nZBVgIXc=MNhjtiG^J6%C{R{lT~%x1{D1K0`+qsf)Qkc~ zf&WSYR_S=1Hm0P{)}_gbv(|wh!G#H4p-`rv(8sY1#8JErmxew^1VC3~p%5)F^N)a( L!4yV;3svA3;W((L diff --git a/src/assets/app.js b/src/assets/app.js index 1cc77d5..3ef43d8 100644 --- a/src/assets/app.js +++ b/src/assets/app.js @@ -15,24 +15,38 @@ new Vue({ fetchingUptime: true, uptime: '', + + time: '', + date: '', }, created() { - this.fetchLastBuildDate(); - this.fetchDiskSpace(); - this.fetchCPUUsage(); - this.fetchUptime(); + this.fetchStats(true); + this.updateTimeAndDate(); + setInterval(this.updateTimeAndDate, 1000); // 1 Second + setInterval(this.fetchStats, 600000); // 10 Minutes }, methods: { - async fetchLastBuildDate() { - this.fetchingLastBuildDate = true; + fetchStats(showAsFetching = false) { + this.fetchLastBuildDate(showAsFetching); + this.fetchDiskSpace(showAsFetching); + this.fetchCPUUsage(showAsFetching); + this.fetchUptime(showAsFetching); + }, + updateTimeAndDate() { + let currentTime = moment(); + this.time = currentTime.format('h:mm'); + this.date = currentTime.format('dddd, MMMM Do'); + }, + async fetchLastBuildDate(showAsFetching) { + this.fetchingLastBuildDate = showAsFetching; try { let { data } = await axios.get('/api/builddate'); this.lastBuildDate = data.pretty; this.fetchingLastBuildDate = false; } catch (err) { throw new Error(err); } }, - async fetchDiskSpace() { - this.fetchingDiskSpace = true; + async fetchDiskSpace(showAsFetching) { + this.fetchingDiskSpace = showAsFetching; try { let { data } = await axios.get('/api/diskspace'); this.diskSize = data.size; @@ -41,8 +55,8 @@ new Vue({ this.fetchingDiskSpace = false; } catch (err) { throw new Error(err); } }, - async fetchCPUUsage() { - this.fetchingCPUUsage = true; + async fetchCPUUsage(showAsFetching) { + this.fetchingCPUUsage = showAsFetching; try { let { data } = await axios.get('/api/cpuusage'); this.cpuUsageNum = data.num; @@ -50,8 +64,8 @@ new Vue({ this.fetchingCPUUsage = false; } catch (err) { throw new Error(err); } }, - async fetchUptime() { - this.fetchingUptime = true; + async fetchUptime(showAsFetching) { + this.fetchingUptime = showAsFetching; try { let { data } = await axios.get('/api/uptime'); this.uptime = data.uptime; diff --git a/src/assets/header.jpg b/src/assets/header.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5d1233fc277d069f8977bbad9158832a840241c1 GIT binary patch literal 28408 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 literal 0 HcmV?d00001 diff --git a/src/assets/styles.css b/src/assets/styles.css index c6bec40..197d1ed 100644 --- a/src/assets/styles.css +++ b/src/assets/styles.css @@ -5,30 +5,49 @@ body { header { position: relative; color: white; - height: 3rem; + height: 15rem; + text-align: center; + padding-top: 3rem; + background: url('./header.jpg'); + background-size: cover; + background-position: bottom; +} + +header:after { + content: ''; + background: linear-gradient(180deg, rgba(2,0,36,0) 0%, rgba(40,42,54,1) 100%); + height: 4rem; + position: absolute; + bottom: 0; + left: 0; + right: 0; +} + +footer { + text-align: center; + color: #f1fa8c; +} + +.branding { + line-height: 2.5rem; + display: inline-block; + margin-right: 2rem; } .logo { height: 2rem; + vertical-align: bottom; margin: .5rem; } .name { - position: absolute; - top: 0; - left: 3rem; - line-height: 3rem; color: #6272a4; - margin: 0; -} - -footer { - color: #f1fa8c; } .feed-card { background: #44475a; color: #f8f8f2; + border-radius: .5rem; } h1, h2, h3, h4, h5, h6 { diff --git a/src/index.html b/src/index.html index 2c18619..11d0de2 100644 --- a/src/index.html +++ b/src/index.html @@ -18,11 +18,12 @@ +
-