Files
nocodb/packages/nc-gui/composables/useJobs.ts
Ramesh Mane e1db0de48f Nc fix: data exporter extension UI changes (#9005)
* fix(nc-gui): udpated data exporter extension ui

* fix(nc-gui): update data export extension

* fix(nc-gui): alway show add new export input settings

* fix(nc-gui): allow user to add data exporter extension only 1 time

* revert(nc-gui): limit extension at base level changes

* fix(nc-gui): show loading state while exporting data from extension

* feat(nocodb): add extension_id in jobs model

* fix(nc-gui): filter exported data based on extension id

* fix(nc-gui): show expired export data

* chore(nc-gui): lint

* fix(nc-gui): extension modal scroll issue

* fix: use result instead of migration

* fix(nc-gui): revert job migration changes

* fix(nc-gui): export data extension review changes

* feat(nc-gui): delete export functionality

* fix(nc-gui): remove expired exports

* fix(nocodb): failed export realtime list update

* feat(nc-gui): add more extension option in fullscreen modal

* fix(nc-gui): rename extension scroll issue

* fix(nc-gui): scroll into view duplicated extension

* fix(nc-gui): add search table/view functionality

* feat(nc-gui): resize extension height

* fix(nc-gui): min height issue

* fix(nc-gui): use 300px min width for extension side panel

* fix(nc-gui): update extension header right side gap

* fix(nc-gui): update extension search blank state text align

---------

Co-authored-by: mertmit <mertmit99@gmail.com>
2024-07-17 20:40:15 +05:30

65 lines
1.3 KiB
TypeScript

const jobsState = createGlobalState(() => {
const baseJobs = ref<Record<string, JobType[]>>({})
return { baseJobs }
})
interface JobType {
id: string
job: string
status: string
result: Record<string, any>
fk_user_id: string
fk_workspace_id: string
base_id: string
created_at: Date
updated_at: Date
extension_id: string
}
export const useJobs = createSharedComposable(() => {
const { baseJobs } = jobsState()
const { $api } = useNuxtApp()
const { base } = storeToRefs(useBase())
const activeBaseJobs = computed(() => {
if (!base.value || !base.value.id) {
return null
}
return baseJobs.value[base.value.id]
})
const jobList = computed<JobType[]>(() => {
return activeBaseJobs.value || []
})
const getJobsForBase = (baseId: string) => {
return baseJobs.value[baseId] || []
}
const loadJobsForBase = async (baseId?: string) => {
if (!baseId) {
baseId = base.value.id
if (!baseId) {
return
}
}
const jobs: JobType[] = await $api.jobs.list(baseId, {})
if (baseJobs.value[baseId]) {
baseJobs.value[baseId] = jobs || baseJobs.value[baseId]
} else {
baseJobs.value[baseId] = jobs || []
}
}
return {
jobList,
loadJobsForBase,
getJobsForBase,
}
})