refactor(ui): Improve dev environment (#1429)

This commit is contained in:
PythonGermany
2025-12-10 22:29:46 +01:00
committed by GitHub
parent b0629773e5
commit a55eb7da40
6 changed files with 25 additions and 18 deletions

View File

@@ -133,7 +133,7 @@
</div> </div>
<a <a
:href="`${SERVER_URL}/oidc/login`" :href="`/oidc/login`"
class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 px-8 w-full" class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 px-8 w-full"
@click="isOidcLoading = true" @click="isOidcLoading = true"
> >
@@ -162,7 +162,6 @@ import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card'
import Social from './components/Social.vue' import Social from './components/Social.vue'
import Tooltip from './components/Tooltip.vue' import Tooltip from './components/Tooltip.vue'
import Loading from './components/Loading.vue' import Loading from './components/Loading.vue'
import { SERVER_URL } from '@/main'
const route = useRoute() const route = useRoute()
@@ -196,7 +195,7 @@ const buttons = computed(() => {
// Methods // Methods
const fetchConfig = async () => { const fetchConfig = async () => {
try { try {
const response = await fetch(`${SERVER_URL}/api/v1/config`, { credentials: 'include' }) const response = await fetch(`/api/v1/config`, { credentials: 'include' })
if (response.status === 200) { if (response.status === 200) {
const data = await response.json() const data = await response.json()
config.value = data config.value = data

View File

@@ -3,6 +3,4 @@ import App from './App.vue'
import './index.css' import './index.css'
import router from './router' import router from './router'
export const SERVER_URL = process.env.NODE_ENV === 'production' ? '' : 'http://localhost:8080'
createApp(App).use(router).mount('#app') createApp(App).use(router).mount('#app')

View File

@@ -213,7 +213,6 @@ import Settings from '@/components/Settings.vue'
import Pagination from '@/components/Pagination.vue' import Pagination from '@/components/Pagination.vue'
import Loading from '@/components/Loading.vue' import Loading from '@/components/Loading.vue'
import ResponseTimeChart from '@/components/ResponseTimeChart.vue' import ResponseTimeChart from '@/components/ResponseTimeChart.vue'
import { SERVER_URL } from '@/main.js'
import { generatePrettyTimeAgo, generatePrettyTimeDifference } from '@/utils/time' import { generatePrettyTimeAgo, generatePrettyTimeDifference } from '@/utils/time'
const router = useRouter() const router = useRouter()
@@ -228,7 +227,6 @@ const resultPageSize = 50
const showResponseTimeChartAndBadges = ref(false) const showResponseTimeChartAndBadges = ref(false)
const showAverageResponseTime = ref(false) const showAverageResponseTime = ref(false)
const selectedChartDuration = ref('24h') const selectedChartDuration = ref('24h')
const serverUrl = SERVER_URL === '.' ? '..' : SERVER_URL
const isRefreshing = ref(false) const isRefreshing = ref(false)
const latestResult = computed(() => { const latestResult = computed(() => {
@@ -305,7 +303,7 @@ const lastCheckTime = computed(() => {
const fetchData = async () => { const fetchData = async () => {
isRefreshing.value = true isRefreshing.value = true
try { try {
const response = await fetch(`${serverUrl}/api/v1/endpoints/${route.params.key}/statuses?page=${currentPage.value}&pageSize=${resultPageSize}`, { const response = await fetch(`/api/v1/endpoints/${route.params.key}/statuses?page=${currentPage.value}&pageSize=${resultPageSize}`, {
credentials: 'include' credentials: 'include'
}) })
@@ -386,15 +384,15 @@ const prettifyTimestamp = (timestamp) => {
} }
const generateHealthBadgeImageURL = () => { const generateHealthBadgeImageURL = () => {
return `${serverUrl}/api/v1/endpoints/${endpointStatus.value.key}/health/badge.svg` return `/api/v1/endpoints/${endpointStatus.value.key}/health/badge.svg`
} }
const generateUptimeBadgeImageURL = (duration) => { const generateUptimeBadgeImageURL = (duration) => {
return `${serverUrl}/api/v1/endpoints/${endpointStatus.value.key}/uptimes/${duration}/badge.svg` return `/api/v1/endpoints/${endpointStatus.value.key}/uptimes/${duration}/badge.svg`
} }
const generateResponseTimeBadgeImageURL = (duration) => { const generateResponseTimeBadgeImageURL = (duration) => {
return `${serverUrl}/api/v1/endpoints/${endpointStatus.value.key}/response-times/${duration}/badge.svg` return `/api/v1/endpoints/${endpointStatus.value.key}/response-times/${duration}/badge.svg`
} }
onMounted(() => { onMounted(() => {

View File

@@ -193,7 +193,6 @@ import Settings from '@/components/Settings.vue'
import Loading from '@/components/Loading.vue' import Loading from '@/components/Loading.vue'
import AnnouncementBanner from '@/components/AnnouncementBanner.vue' import AnnouncementBanner from '@/components/AnnouncementBanner.vue'
import PastAnnouncements from '@/components/PastAnnouncements.vue' import PastAnnouncements from '@/components/PastAnnouncements.vue'
import { SERVER_URL } from '@/main.js'
const props = defineProps({ const props = defineProps({
announcements: { announcements: {
@@ -434,7 +433,7 @@ const fetchData = async () => {
} }
try { try {
// Fetch endpoints // Fetch endpoints
const endpointResponse = await fetch(`${SERVER_URL}/api/v1/endpoints/statuses?page=1&pageSize=${resultPageSize}`, { const endpointResponse = await fetch(`/api/v1/endpoints/statuses?page=1&pageSize=${resultPageSize}`, {
credentials: 'include' credentials: 'include'
}) })
if (endpointResponse.status === 200) { if (endpointResponse.status === 200) {
@@ -445,7 +444,7 @@ const fetchData = async () => {
} }
// Fetch suites // Fetch suites
const suiteResponse = await fetch(`${SERVER_URL}/api/v1/suites/statuses?page=1&pageSize=${resultPageSize}`, { const suiteResponse = await fetch(`/api/v1/suites/statuses?page=1&pageSize=${resultPageSize}`, {
credentials: 'include' credentials: 'include'
}) })
if (suiteResponse.status === 200) { if (suiteResponse.status === 200) {

View File

@@ -154,7 +154,6 @@ import StepDetailsModal from '@/components/StepDetailsModal.vue'
import Settings from '@/components/Settings.vue' import Settings from '@/components/Settings.vue'
import Loading from '@/components/Loading.vue' import Loading from '@/components/Loading.vue'
import { generatePrettyTimeAgo } from '@/utils/time' import { generatePrettyTimeAgo } from '@/utils/time'
import { SERVER_URL } from '@/main'
const router = useRouter() const router = useRouter()
const route = useRoute() const route = useRoute()
@@ -191,7 +190,7 @@ const fetchData = async () => {
} }
try { try {
const response = await fetch(`${SERVER_URL}/api/v1/suites/${route.params.key}/statuses`, { const response = await fetch(`/api/v1/suites/${route.params.key}/statuses`, {
credentials: 'include' credentials: 'include'
}) })

View File

@@ -6,5 +6,19 @@ module.exports = {
filenameHashing: false, filenameHashing: false,
productionSourceMap: false, productionSourceMap: false,
outputDir: '../static', outputDir: '../static',
publicPath: '/' publicPath: '/',
} devServer: {
port: 8081,
https: false,
client: {
webSocketURL:'auto://0.0.0.0/ws'
},
proxy: {
'^/api|^/css|^/oicd': {
target: "http://localhost:8080",
changeOrigin: true,
secure: false,
}
}
}
}