Compare commits

..

No commits in common. "a16a48a1c83feca23d7339e8eb54e2b44831e784" and "7c4f5b4ab3a8857b92f34ca30f188b7bdd228b36" have entirely different histories.

5 changed files with 38 additions and 41 deletions

View file

@ -27,7 +27,7 @@ jobs:
id: release id: release
uses: mikepenz/release-changelog-builder-action@v5 uses: mikepenz/release-changelog-builder-action@v5
with: with:
configuration: '.github/changelog-configuration.json' configuration: ".github/changelog-configuration.json"
failOnError: true failOnError: true
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "fancy-gatus", "name": "fancy-gatus",
"version": "2.0.1", "version": "2.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "fancy-gatus", "name": "fancy-gatus",
"version": "2.0.1", "version": "2.0.0",
"dependencies": { "dependencies": {
"@tailwindcss/vite": "^4.1.8", "@tailwindcss/vite": "^4.1.8",
"axios": "^1.9.0", "axios": "^1.9.0",

View file

@ -1,7 +1,7 @@
{ {
"name": "fancy-gatus", "name": "fancy-gatus",
"private": true, "private": true,
"version": "2.0.1", "version": "2.0.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite dev", "dev": "vite dev",

View file

@ -5,10 +5,10 @@
</script> </script>
<div <div
class="h-fit min-h-screen flex flex-col items-center bg-base-200" class="w-screen h-fit min-h-screen flex flex-col items-center bg-base-200"
data-theme={$persistentSettings.darkmode ? 'darkgray' : 'emerald'} data-theme={$persistentSettings.darkmode ? 'darkgray' : 'emerald'}
> >
<div class="md:w-5/6 xl:w-3/5 max-w-5xl h-full pl-4 md:pl-0 pr-4 md:pr-0 pt-5 pb-5"> <div class="w-full md:w-5/6 xl:w-3/5 max-w-5xl h-full pl-4 md:pl-0 pr-4 md:pr-0 pt-5 pb-5">
{@render children()} {@render children()}
</div> </div>
</div> </div>

View file

@ -1,6 +1,5 @@
<script lang="ts"> <script lang="ts">
import axios from 'axios' import axios from 'axios'
import type { AxiosError } from 'axios'
import { onMount } from 'svelte' import { onMount } from 'svelte'
import type { Config } from '$lib/types/config' import type { Config } from '$lib/types/config'
import type { Status } from '$lib/types/api' import type { Status } from '$lib/types/api'
@ -16,42 +15,41 @@
let config: Config = $state({}) let config: Config = $state({})
let apiData: Status[] = $state([]) let apiData: Status[] = $state([])
async function getConfig() { function getConfig() {
try { axios
const response = await axios.get('config.json', { baseURL: '/' }) .get('config.json', { baseURL: '/' })
.then((response) => {
config = response.data config = response.data
// Set title if defined in config // Set title if defined in config
if (config.title) { if (config.title) {
document.title = config.title document.title = config.title
} }
} catch (err) { getApiData()
const error = err as AxiosError })
if (error.response && error.response.status === 404) { .catch((error) => {
console.warn('No config.json file found. Using default values.') if (error.response.status === 404) {
} console.warn('No config.json file found. Using default values.')
console.log('Error getting config: ' + error) getApiData()
} } else {
console.log('Error getting config: ' + error)
}
})
} }
async function getApiData() { function getApiData() {
// Set base URL for API calls if defined in config // Set base URL for API calls if defined in config
if (config.gatusBaseUrl && axios.defaults.baseURL !== config.gatusBaseUrl) { if (config.gatusBaseUrl && axios.defaults.baseURL !== config.gatusBaseUrl) {
axios.defaults.baseURL = config.gatusBaseUrl axios.defaults.baseURL = config.gatusBaseUrl
} }
axios
try { .get('/api/v1/endpoints/statuses')
const response = await axios.get('/api/v1/endpoints/statuses') .then((response) => {
apiData = response.data apiData = response.data
loading = false loading = false
} catch (error) { })
console.log(error) .catch((error) => {
} console.log(error)
} })
async function refresh() {
await getConfig()
await getApiData()
} }
// Group statuses by their group name // Group statuses by their group name
@ -95,14 +93,13 @@
// Array of statuses where the last result has success = false // Array of statuses where the last result has success = false
let failedStatuses = $derived.by(() => { let failedStatuses = $derived.by(() => {
const filteredStatuses = groups.flatMap((item) => item.statuses) return apiData.filter((status) => {
return filteredStatuses.filter((status) => {
return !status.results[status.results.length - 1].success return !status.results[status.results.length - 1].success
}) })
}) })
onMount(() => { onMount(() => {
refresh() getConfig()
}) })
</script> </script>
@ -121,6 +118,6 @@
expandByDefault={config.defaultExpandGroups} expandByDefault={config.defaultExpandGroups}
/> />
{/each} {/each}
<RefreshSettings defaultRefreshInterval={config.defaultRefreshInterval} onRefresh={refresh} /> <RefreshSettings defaultRefreshInterval={config.defaultRefreshInterval} onRefresh={getConfig} />
<Footer /> <Footer />
{/if} {/if}