Newer
Older
import api from '@/helpers/api'
import { useRouter, useRoute } from "vue-router"
import WorkflowsTable from "@/components/workflows/WorkflowsTable.vue"
import { useI18n } from "vue-i18n"
import { mapGtId, setEvalColors } from "@/helpers/utils"
import Filters from "@/components/workflows/filters/Filters.vue"
import SelectButton from "primevue/selectbutton"
import WorkflowsTimeline from "@/components/workflows/WorkflowsTimeline.vue"
import filtersStore from "@/store/filters-store"
import workflowsStore from "@/store/workflows-store"
import type { ReleaseInfo } from "@/types";
const { t } = useI18n()
const data = ref([])
const filteredData = ref([])
const router = useRouter()
const route = useRoute()
{ name: t('table'), value: 'table' }
watch(() => filtersStore.gt, () => {
filteredData.value = data.value.filter(({ metadata }) => filtersStore.gt.findIndex(({ value }) => value === mapGtId(metadata.gt_workspace['id']) ) > -1)
})
watch(selectedOption, ({ value }) => {
router.push({ query: { view: value } })
})
await router.isReady()
loading.value = true
const option = options.value.find((option) => {
return route.query.view && route.query.view === option.value
})
workflowsStore.runs = await api.getRuns()
workflowsStore.gt = await api.getGroundTruth()
workflowsStore.workflows = await api.getWorkflows()
workflowsStore.runs.forEach(run => {
const gtId = mapGtId(run.metadata.gt_workspace.id)
if (!workflowsStore.gt.find(gt => gt.id === gtId)) console.log(gtId)
})
const releasesObj = workflowsStore.runs.reduce((acc, cur) => {
acc[cur.metadata.release_info.tag_name] = cur.metadata.release_info
return acc
}, {})
workflowsStore.releases = Object.keys(releasesObj).map(key => <ReleaseInfo>releasesObj[key])
<template v-if="loading">
Loading...
</template>
<template v-else>
<p class="text-amber-600 flex-grow-0 px-4 py-2 bg-amber-100 rounded-md text-sm"><span class="font-semibold">Disclaimer:</span> This is an experimental view.</p>
<SelectButton v-model="selectedOption" :options="options" optionLabel="name"></SelectButton>
</div>
<div v-if="selectedOption">
<WorkflowsTimeline v-if="selectedOption.value === 'timeline'" />
<WorkflowsTable v-else />
</div>
</template>