From 20686e39b67bde995ae8ed2bce2423eb43f616ed Mon Sep 17 00:00:00 2001 From: BluemediaGER Date: Sat, 15 Jan 2022 02:22:37 +0100 Subject: [PATCH] Initial build --- README.md | 23 +++ package.json | 2 + public/favicon.ico | Bin 0 -> 15086 bytes public/index.html | 4 +- src/App.vue | 144 +++++++++++++++- src/assets/logo.png | Bin 0 -> 3607 bytes src/components/Endpoint.vue | 61 +++++++ src/components/EndpointGroup.vue | 41 +++++ src/components/EndpointHistory.vue | 54 ++++++ src/components/Footer.vue | 25 +++ src/components/Header.vue | 33 ++++ src/components/Loader.vue | 256 +++++++++++++++++++++++++++++ src/components/OverallStatus.vue | 60 +++++++ yarn.lock | 17 ++ 14 files changed, 714 insertions(+), 6 deletions(-) create mode 100644 public/favicon.ico create mode 100644 src/assets/logo.png create mode 100644 src/components/Endpoint.vue create mode 100644 src/components/EndpointGroup.vue create mode 100644 src/components/EndpointHistory.vue create mode 100644 src/components/Footer.vue create mode 100644 src/components/Header.vue create mode 100644 src/components/Loader.vue create mode 100644 src/components/OverallStatus.vue diff --git a/README.md b/README.md index ecc671c..10be58d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,26 @@ # fancy-gatus Fancy-Gatus is an alternative frontend for [Gatus](https://github.com/TwiN/gatus). The goal is to provide a simplified and modern status page based on data from a Gatus instance, which only displays the most important information in a way that is understandable for end users. + +## Project setup +``` +yarn install +``` + +### Compiles and hot-reloads for development +``` +yarn serve +``` + +### Compiles and minifies for production +``` +yarn build +``` + +### Lints and fixes files +``` +yarn lint +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/package.json b/package.json index 15ecd5d..9f852b7 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "axios": "^0.24.0", + "bootstrap-icons-vue": "^0.8.0", "core-js": "^3.6.5", "vue": "^3.0.0" }, diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0cff86ff531a9459887e28711f279f444735a49f GIT binary patch literal 15086 zcmeHOdu$ZP8K1rL1DX_^wuw}g1cOqU5S37rhtoLNg}A}SHpcjkFE+*j1IFM7ff5s& zsDU_g(iBQ~KkOhSt=g*4s1j0J`=8LXRaFutZRB9;&<6W}JCh<(r*=L4ezQBrc)fSG z_aaDTrSZ4B^Z0(>bLM8pjA_it=FVkAli8c!Wb9$aSaP!QoW$5UdY42L^|f(~?Vtv; zs10>tRaEd^T=(ka*5BA_;P3C(YACVg68+JEd4K&Br!3Lu5ZZ`))_y6mt2rTM-?~Y+ z2kQyUXb&2!?Tx74Ul;fFgXE*gIU4?pUAc+_Yhl z_DS<%#-GV${Mn^Ce%L_DV77sX1yu(9o_xw#hIlaZiS{#eUXz}fS&`~EUHe@&vObgX zjf)tE45|&xek5&xSWx^(y(gd2etM)KVScQ9YT3NoW>%!eceqlu%TR8FTYm z>d8 z-86w+l|jZba;ln-Fej+Jz) zUu;S_B9$Q+eklhid}`0Od&OKP=QZ=3@cn%44A!W2V>41)gn}Qo@C@XRz^4!!nA7CE zR{uS%uQ@kX^U`TBNY777Sg9q9Gxd(qjo{UzPil#lt_I6{iQ52K7-M4@Jl&B zk#8@3QoQEcr*)Hq@v>VlWw4`KkSh^;u&1p zO}5C4hEGZSW*K6J-)9fQr!H2egsO9^_Q0>s-Lc0nVy?ivAl;*Ej!|MSKKf4sA7^jx2jXy;U4o2a-N?1Vu{%_ zw$Rs-KCioElow-?6c_Wv=HPFaU|Cg_VRwH`0TVtPV>4e z=OS-YeA9Z_t_TdopaQWPS@#`M4k3)I&Gsm z)H9Y2I?C8o&?}5NLHp_a5ojAp&`K17(4R3Ps0T%RQ1l0F)u|Yto&`UmfNKdpNd4saG@#Be(Vzlv8#SP3-eXWHhm=bI0rNI74(C0F9CjPGAZXJ9spZ~vbXj)SO=h0M*llc#K65?9w!pndd%QpR7bVEomUjK5aP_@R0q z27IgRBOJ9>HZjX$=NYopE{uPqFjpYeB=Z3H-Cd5O7b|#!S0DoHFkBM(zME}%1pSP|4hQJ|xLD~V|;#CadJjyEVW7xX0 zIewa|SG)I;zx<5>9QdyL*6{~LzBA8bgvAY0~AoY}=8d~j2!dBGnZ-7gA$OuFy{ z#sFRA9}6`G{qa@b>$+H$ja*})3z35&(Y4Ae(7mCH7q06fy1EX;Th<|#5K|Nu+KRxw$T01ZP-z{eJ&|GBHW{X!m0{X08K&I_ zy|faYP6c&NDhwsv*wSbfWA)QE2F4yG9=w%`eqo;i+Y-rCeESrZt0-y^gR8wVZt}tP zTJe#MT3c6>BRLcn>#}ZtV0(%7`YS8gXY@OGjLvI*bf8XqdS`|6%Ynv0ebr-*b#~*#>Hk!`ZFrCusr~ioQA=*RFJ+u!h3hs?M Lv_V_ms`vdLYtg4M literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html index 3e5a139..3deb2ed 100644 --- a/public/index.html +++ b/public/index.html @@ -5,11 +5,11 @@ - <%= htmlWebpackPlugin.options.title %> + Fancy Gatus
diff --git a/src/App.vue b/src/App.vue index fd7fd3f..79248f1 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,21 +1,157 @@ + + +.shadow-box { + box-shadow: 0 15px 70px rgb(0 0 0 / 10%); + padding: 10px; + border-radius: 10px; +} +.green { + color: var(--green); +} +.orange { + color: var(--orange); +} + \ No newline at end of file diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e1828ad914238b480783a4bbc77e53ebdca554 GIT binary patch literal 3607 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 a1)>PHoSd=<&DzUPfGN!CdX=F^;(q`NI6}Ap literal 0 HcmV?d00001 diff --git a/src/components/Endpoint.vue b/src/components/Endpoint.vue new file mode 100644 index 0000000..2fd1921 --- /dev/null +++ b/src/components/Endpoint.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/src/components/EndpointGroup.vue b/src/components/EndpointGroup.vue new file mode 100644 index 0000000..c06b19a --- /dev/null +++ b/src/components/EndpointGroup.vue @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/src/components/EndpointHistory.vue b/src/components/EndpointHistory.vue new file mode 100644 index 0000000..8b2e6c1 --- /dev/null +++ b/src/components/EndpointHistory.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/src/components/Footer.vue b/src/components/Footer.vue new file mode 100644 index 0000000..2221ba6 --- /dev/null +++ b/src/components/Footer.vue @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file diff --git a/src/components/Header.vue b/src/components/Header.vue new file mode 100644 index 0000000..fb2f6e5 --- /dev/null +++ b/src/components/Header.vue @@ -0,0 +1,33 @@ + + + + + \ No newline at end of file diff --git a/src/components/Loader.vue b/src/components/Loader.vue new file mode 100644 index 0000000..0e34d1f --- /dev/null +++ b/src/components/Loader.vue @@ -0,0 +1,256 @@ + + + + + \ No newline at end of file diff --git a/src/components/OverallStatus.vue b/src/components/OverallStatus.vue new file mode 100644 index 0000000..5aad5c7 --- /dev/null +++ b/src/components/OverallStatus.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index e1fa90e..e923897 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1941,6 +1941,13 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +axios@^0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" + integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== + dependencies: + follow-redirects "^1.14.4" + babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -2114,6 +2121,11 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= +bootstrap-icons-vue@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/bootstrap-icons-vue/-/bootstrap-icons-vue-0.8.0.tgz#922dfc368e62c85fe9cadad4f3568ce4c2b7bdba" + integrity sha512-bFBpTGNN5RtUpSH7zTz3WkZs2UZA7WXSmkwAKsrA7qddjbIQrvoGsu/yNJiAl14eJgZ+rTqmjqSB+0gRlNZEfA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -4026,6 +4038,11 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd" integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A== +follow-redirects@^1.14.4: + version "1.14.7" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" + integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ== + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"