Changing how messaging is generated.
This commit is contained in:
parent
555cc15553
commit
880f27e0ff
|
@ -25,22 +25,7 @@
|
||||||
|
|
||||||
$: isInternalTable = isInternal && sourceType === SourceType.TABLE
|
$: isInternalTable = isInternal && sourceType === SourceType.TABLE
|
||||||
|
|
||||||
const getViewsMessage = () => {
|
const getDatasourceQueries = () => {
|
||||||
if (!source || !("views" in source)) {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
const views = Object.values(source?.views ?? [])
|
|
||||||
if (views.length < 1) {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if (views.length === 1) {
|
|
||||||
return "1 view"
|
|
||||||
}
|
|
||||||
|
|
||||||
return `${views.length} views`
|
|
||||||
}
|
|
||||||
|
|
||||||
const getQueriesMessage = () => {
|
|
||||||
if (sourceType !== SourceType.DATASOURCE) {
|
if (sourceType !== SourceType.DATASOURCE) {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@ -48,14 +33,7 @@
|
||||||
const queryList = get(queries).list.filter(
|
const queryList = get(queries).list.filter(
|
||||||
query => query.datasourceId === sourceId
|
query => query.datasourceId === sourceId
|
||||||
)
|
)
|
||||||
if (queryList.length < 1) {
|
return queryList
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if (queryList.length === 1) {
|
|
||||||
return "1 query"
|
|
||||||
}
|
|
||||||
|
|
||||||
return `${queryList.length} queries`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSourceID(): string {
|
function getSourceID(): string {
|
||||||
|
@ -168,21 +146,35 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildMessage() {
|
function buildMessage(sourceType: string) {
|
||||||
let message = ""
|
if (!source) {
|
||||||
if (isInternalTable) {
|
return ""
|
||||||
message = `All ${sourceType} data will also be deleted`
|
}
|
||||||
const viewsMessage = getViewsMessage()
|
let message = `Removing ${source?.name} `
|
||||||
if (viewsMessage) {
|
let initialLength = message.length
|
||||||
message += `, including ${viewsMessage}. `
|
if (sourceType === SourceType.TABLE) {
|
||||||
} else {
|
const views = "views" in source ? Object.values(source?.views ?? []) : []
|
||||||
message += ". "
|
if (isInternalTable) {
|
||||||
|
message += `will delete its data${
|
||||||
|
views.length ? `, views (${views.length})` : ""
|
||||||
|
}`
|
||||||
|
} else if (views.length) {
|
||||||
|
message += `will delete its views (${views.length})`
|
||||||
}
|
}
|
||||||
} else if (sourceType === SourceType.DATASOURCE) {
|
} else if (sourceType === SourceType.DATASOURCE) {
|
||||||
const queriesMessage = getQueriesMessage()
|
const queryList = getDatasourceQueries()
|
||||||
message = `This will include deleting ${queriesMessage}. `
|
if (queryList.length) {
|
||||||
|
message += `will delete its queries (${queryList.length})`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (affectedScreens.length) {
|
||||||
|
message +=
|
||||||
|
initialLength !== message.length
|
||||||
|
? ", and break connected screens:"
|
||||||
|
: "will break connected screens:"
|
||||||
|
} else {
|
||||||
|
message += "."
|
||||||
}
|
}
|
||||||
message += "<b>This action cannot be undone.</b>"
|
|
||||||
return message
|
return message
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -192,12 +184,12 @@
|
||||||
okText="Delete"
|
okText="Delete"
|
||||||
onOk={deleteSource}
|
onOk={deleteSource}
|
||||||
onCancel={hideDeleteDialog}
|
onCancel={hideDeleteDialog}
|
||||||
title={`Are you sure you want to delete ${source?.name}?`}
|
title={`Are you sure you want to delete this ${sourceType}?`}
|
||||||
>
|
>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
{#if affectedScreens.length > 0}
|
{#if affectedScreens.length > 0 && sourceType}
|
||||||
<p class="warning">
|
<p class="warning">
|
||||||
Removing this {sourceType} will break the following screens:
|
{buildMessage(sourceType)}
|
||||||
<span class="screens">
|
<span class="screens">
|
||||||
{#each affectedScreens as item, idx}
|
{#each affectedScreens as item, idx}
|
||||||
<Link overBackground target="_blank" href={item.url}
|
<Link overBackground target="_blank" href={item.url}
|
||||||
|
@ -208,8 +200,7 @@
|
||||||
</p>
|
</p>
|
||||||
{/if}
|
{/if}
|
||||||
<p class="warning">
|
<p class="warning">
|
||||||
<!-- eslint-disable-next-line svelte/no-at-html-tags -->
|
<b>This action cannot be undone.</b>
|
||||||
{@html buildMessage()}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</ConfirmDialog>
|
</ConfirmDialog>
|
||||||
|
@ -228,6 +219,7 @@
|
||||||
.screens {
|
.screens {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
padding-bottom: var(--spacing-l);
|
||||||
gap: var(--spacing-xs);
|
gap: var(--spacing-xs);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue