Majority of comments.
This commit is contained in:
parent
ec3cd23fcf
commit
85b2db1f02
|
@ -10,7 +10,7 @@
|
|||
viewsV2,
|
||||
} from "@/stores/builder"
|
||||
import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
|
||||
import { helpers } from "@budibase/shared-core"
|
||||
import { helpers, utils } from "@budibase/shared-core"
|
||||
import { SourceType } from "@budibase/types"
|
||||
import { goto, params } from "@roxi/routify"
|
||||
import { DB_TYPE_EXTERNAL } from "@/constants/backend"
|
||||
|
@ -45,7 +45,7 @@
|
|||
}
|
||||
|
||||
export const show = async () => {
|
||||
const usage = await screenStore.usageOfScreens(getSourceID())
|
||||
const usage = await screenStore.usageInScreens(getSourceID())
|
||||
affectedScreens = processScreens(usage.screens)
|
||||
sourceType = usage.sourceType
|
||||
confirmDeleteDialog.show()
|
||||
|
@ -93,7 +93,6 @@
|
|||
}
|
||||
notifications.success("View deleted")
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
notifications.error("Error deleting view")
|
||||
}
|
||||
}
|
||||
|
@ -140,6 +139,8 @@
|
|||
return await deleteQuery(source as Query)
|
||||
case SourceType.DATASOURCE:
|
||||
return await deleteDatasource(source as Datasource)
|
||||
default:
|
||||
utils.unreachable(sourceType)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -504,8 +504,8 @@ export class ScreenStore extends BudiStore<ScreenState> {
|
|||
/**
|
||||
* Provides a list of screens that are used by a given source ID (table, view, datasource, query)
|
||||
*/
|
||||
async usageOfScreens(sourceId: string) {
|
||||
return API.usageOfScreens(sourceId)
|
||||
async usageInScreens(sourceId: string) {
|
||||
return API.usageInScreens(sourceId)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,14 +2,14 @@ import {
|
|||
DeleteScreenResponse,
|
||||
SaveScreenRequest,
|
||||
SaveScreenResponse,
|
||||
UsageOfScreensResponse,
|
||||
UsageInScreensResponse,
|
||||
} from "@budibase/types"
|
||||
import { BaseAPIClient } from "./types"
|
||||
|
||||
export interface ScreenEndpoints {
|
||||
saveScreen: (screen: SaveScreenRequest) => Promise<SaveScreenResponse>
|
||||
deleteScreen: (id: string, rev: string) => Promise<DeleteScreenResponse>
|
||||
usageOfScreens: (sourceId: string) => Promise<UsageOfScreensResponse>
|
||||
usageInScreens: (sourceId: string) => Promise<UsageInScreensResponse>
|
||||
}
|
||||
|
||||
export const buildScreenEndpoints = (API: BaseAPIClient): ScreenEndpoints => ({
|
||||
|
@ -35,7 +35,7 @@ export const buildScreenEndpoints = (API: BaseAPIClient): ScreenEndpoints => ({
|
|||
})
|
||||
},
|
||||
|
||||
usageOfScreens: async sourceId => {
|
||||
usageInScreens: async sourceId => {
|
||||
return await API.post({
|
||||
url: `/api/screens/usage/${sourceId}`,
|
||||
})
|
||||
|
|
|
@ -17,7 +17,7 @@ import {
|
|||
ScreenProps,
|
||||
ScreenUsage,
|
||||
SourceType,
|
||||
UsageOfScreensResponse,
|
||||
UsageInScreensResponse,
|
||||
UserCtx,
|
||||
} from "@budibase/types"
|
||||
import { builderSocket } from "../../websockets"
|
||||
|
@ -138,7 +138,7 @@ function findPlugins(component: ScreenProps, foundPlugins: string[]) {
|
|||
component._children.forEach(child => findPlugins(child, foundPlugins))
|
||||
}
|
||||
|
||||
export async function usage(ctx: UserCtx<void, UsageOfScreensResponse>) {
|
||||
export async function usage(ctx: UserCtx<void, UsageInScreensResponse>) {
|
||||
const sourceId = ctx.params.sourceId
|
||||
const sourceType = sdk.common.getSourceType(sourceId)
|
||||
const allScreens = await sdk.screens.fetch()
|
||||
|
@ -152,14 +152,8 @@ export async function usage(ctx: UserCtx<void, UsageOfScreensResponse>) {
|
|||
})
|
||||
}
|
||||
}
|
||||
const isInternalTable =
|
||||
sourceType === SourceType.TABLE &&
|
||||
sdk.tables.isInternal({ tableId: sourceId })
|
||||
const isInternalView =
|
||||
sourceType === SourceType.VIEW && sdk.views.isInternal(sourceId)
|
||||
ctx.body = {
|
||||
sourceType,
|
||||
internal: isInternalTable || isInternalView,
|
||||
screens: response,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import {
|
|||
Role,
|
||||
BuiltinPermissionID,
|
||||
SourceType,
|
||||
UsageOfScreensResponse,
|
||||
UsageInScreensResponse,
|
||||
} from "@budibase/types"
|
||||
|
||||
const {
|
||||
|
@ -193,7 +193,7 @@ describe("/screens", () => {
|
|||
await config.api.screen.save(basicScreen())
|
||||
})
|
||||
|
||||
function confirmScreen(usage: UsageOfScreensResponse, screen: Screen) {
|
||||
function confirmScreen(usage: UsageInScreensResponse, screen: Screen) {
|
||||
expect(usage.screens.length).toEqual(1)
|
||||
expect(usage.screens[0].url).toEqual(screen.routing.route)
|
||||
expect(usage.screens[0]._id).toEqual(screen._id!)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Screen, UsageOfScreensResponse } from "@budibase/types"
|
||||
import { Screen, UsageInScreensResponse } from "@budibase/types"
|
||||
import { Expectations, TestAPI } from "./base"
|
||||
|
||||
export class ScreenAPI extends TestAPI {
|
||||
|
@ -32,8 +32,8 @@ export class ScreenAPI extends TestAPI {
|
|||
usage = async (
|
||||
sourceId: string,
|
||||
expectations?: Expectations
|
||||
): Promise<UsageOfScreensResponse> => {
|
||||
return this._post<UsageOfScreensResponse>(
|
||||
): Promise<UsageInScreensResponse> => {
|
||||
return this._post<UsageInScreensResponse>(
|
||||
`/api/screens/usage/${sourceId}`,
|
||||
{
|
||||
expectations,
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { Screen } from "@budibase/types"
|
||||
import { Screen, Component } from "@budibase/types"
|
||||
|
||||
export function findInSettings(screen: Screen, toFind: string) {
|
||||
const foundIn: { setting: string; value: string }[] = []
|
||||
function recurse(props: Record<string, any>, parentKey = "") {
|
||||
function recurse(props: Component, parentKey = "") {
|
||||
for (const [key, value] of Object.entries(props)) {
|
||||
if (!value) {
|
||||
continue
|
||||
|
|
|
@ -21,8 +21,7 @@ export interface ScreenUsage {
|
|||
_id: string
|
||||
}
|
||||
|
||||
export interface UsageOfScreensResponse {
|
||||
export interface UsageInScreensResponse {
|
||||
sourceType: SourceType
|
||||
internal: boolean
|
||||
screens: ScreenUsage[]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue