mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-01 09:44:00 +00:00
feat: add error handler for server summary tab
This commit is contained in:
@@ -82,33 +82,42 @@
|
|||||||
wrapper
|
wrapper
|
||||||
/>
|
/>
|
||||||
{:then summary}
|
{:then summary}
|
||||||
<div class="wrapper">
|
{#if 'errorMessage' in summary}
|
||||||
<TabControl
|
<div class="wrapper error-wrapper">
|
||||||
isInline
|
<div class="error-message">
|
||||||
inlineTabs={true}
|
<h3>{_t('serverSummaryTab.errorTitle', { defaultMessage: 'Error loading server summary' })}</h3>
|
||||||
containerMaxWidth="100%"
|
<p>{summary.errorMessage}</p>
|
||||||
flex1={true}
|
</div>
|
||||||
value={$serverSummarySelectedTab}
|
</div>
|
||||||
onUserChange={index => serverSummarySelectedTab.set(index)}
|
{:else}
|
||||||
tabs={[
|
<div class="wrapper">
|
||||||
{
|
<TabControl
|
||||||
label: _t('serverSummaryTab.variables', { defaultMessage: 'Variables' }),
|
isInline
|
||||||
component: SummaryVariables,
|
inlineTabs={true}
|
||||||
props: { variables: summary.variables || [] },
|
containerMaxWidth="100%"
|
||||||
},
|
flex1={true}
|
||||||
{
|
value={$serverSummarySelectedTab}
|
||||||
label: _t('serverSummaryTab.processes', { defaultMessage: 'Processes' }),
|
onUserChange={index => serverSummarySelectedTab.set(index)}
|
||||||
component: SummaryProcesses,
|
tabs={[
|
||||||
props: { processes: summary.processes || [], conid },
|
{
|
||||||
},
|
label: _t('serverSummaryTab.variables', { defaultMessage: 'Variables' }),
|
||||||
{
|
component: SummaryVariables,
|
||||||
label: _t('serverSummaryTab.databases', { defaultMessage: 'Databases' }),
|
props: { variables: summary.variables || [] },
|
||||||
component: SummaryDatabases,
|
},
|
||||||
props: { rows: summary.databases?.rows ?? [], columns: summary.databases?.columns ?? [] },
|
{
|
||||||
},
|
label: _t('serverSummaryTab.processes', { defaultMessage: 'Processes' }),
|
||||||
]}
|
component: SummaryProcesses,
|
||||||
/>
|
props: { processes: summary.processes || [], conid },
|
||||||
</div>
|
},
|
||||||
|
{
|
||||||
|
label: _t('serverSummaryTab.databases', { defaultMessage: 'Databases' }),
|
||||||
|
component: SummaryDatabases,
|
||||||
|
props: { rows: summary.databases?.rows ?? [], columns: summary.databases?.columns ?? [] },
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
{/await}
|
{/await}
|
||||||
|
|
||||||
<svelte:fragment slot="toolstrip">
|
<svelte:fragment slot="toolstrip">
|
||||||
@@ -130,4 +139,24 @@
|
|||||||
.action-separator {
|
.action-separator {
|
||||||
margin: 0 5px;
|
margin: 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.error-wrapper {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-message {
|
||||||
|
background: var(--theme-bg-1);
|
||||||
|
border: 1px solid var(--theme-border);
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 20px;
|
||||||
|
max-width: 500px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-message h3 {
|
||||||
|
color: var(--theme-font-error);
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user