feat(web): добавить поддержку быстрого доступа на дашборде и обновить настройки интерфейса
Docker / build (push) Failing after 19s
Docker / build (push) Failing after 19s
- Внедрён компонент QuickActionGrid для отображения часто используемых разделов на дашборде, управляемый настройкой showQuickActions. - Добавлен новый параметр showQuickActions в схему настроек для управления видимостью быстрого доступа. - Обновлён интерфейс настроек для включения переключателя отображения быстрого доступа. - Добавлен компонент SystemMonitorPopover в заголовок приложения для мониторинга системы. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -44,6 +44,7 @@ export type SettingsDto = Omit<
|
||||
| 'integrationEnabled'
|
||||
| 'customFields'
|
||||
| 'appSwitcherJson'
|
||||
| 'showQuickActions'
|
||||
> & {
|
||||
telegramBotTokenSet: boolean
|
||||
integrationTokenSet: boolean
|
||||
@@ -56,6 +57,7 @@ export type SettingsDto = Omit<
|
||||
notifyVpsDownEnabled: boolean
|
||||
webhookEnabled: boolean
|
||||
integrationEnabled: boolean
|
||||
showQuickActions: boolean
|
||||
notifyIntervalMinutes: number
|
||||
uptimeCheckIntervalMinutes: number
|
||||
customFields: unknown[]
|
||||
@@ -81,7 +83,8 @@ function toDto(row: Row | undefined): SettingsDto | undefined {
|
||||
customFields = []
|
||||
}
|
||||
}
|
||||
const { telegramBotToken, integrationToken, appSwitcherJson, ...rest } = row
|
||||
const { telegramBotToken, integrationToken, appSwitcherJson, showQuickActions: _showQa, ...rest } =
|
||||
row
|
||||
return {
|
||||
...rest,
|
||||
telegramBotTokenSet: Boolean(telegramBotToken?.trim()),
|
||||
@@ -95,6 +98,7 @@ function toDto(row: Row | undefined): SettingsDto | undefined {
|
||||
notifyVpsDownEnabled: Boolean(row.notifyVpsDownEnabled),
|
||||
webhookEnabled: Boolean(row.webhookEnabled),
|
||||
integrationEnabled: Boolean(row.integrationEnabled),
|
||||
showQuickActions: row.showQuickActions == null ? true : Boolean(row.showQuickActions),
|
||||
notifyIntervalMinutes: Number(row.notifyIntervalMinutes) || 60,
|
||||
uptimeCheckIntervalMinutes: Number(row.uptimeCheckIntervalMinutes) || 5,
|
||||
customFields: Array.isArray(customFields) ? customFields : [],
|
||||
@@ -135,6 +139,7 @@ interface SettingsInput {
|
||||
integrationEnabled?: boolean
|
||||
integrationLastSyncAt?: string
|
||||
cfdmApiUrl?: string
|
||||
showQuickActions?: boolean
|
||||
}
|
||||
|
||||
function buildValues(id: string, existing: Row | undefined, r: SettingsInput) {
|
||||
@@ -238,6 +243,16 @@ function buildValues(id: string, existing: Row | undefined, r: SettingsInput) {
|
||||
? r.integrationLastSyncAt || ''
|
||||
: existing?.integrationLastSyncAt ?? '',
|
||||
cfdmApiUrl: r.cfdmApiUrl !== undefined ? r.cfdmApiUrl || '' : existing?.cfdmApiUrl ?? '',
|
||||
showQuickActions:
|
||||
r.showQuickActions !== undefined
|
||||
? r.showQuickActions
|
||||
? 1
|
||||
: 0
|
||||
: existing?.showQuickActions == null
|
||||
? 1
|
||||
: existing.showQuickActions
|
||||
? 1
|
||||
: 0,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ const COLUMN_MIGRATIONS: string[] = [
|
||||
`ALTER TABLE settings ADD COLUMN integrationEnabled INTEGER`,
|
||||
`ALTER TABLE settings ADD COLUMN integrationLastSyncAt TEXT`,
|
||||
`ALTER TABLE settings ADD COLUMN cfdmApiUrl TEXT`,
|
||||
`ALTER TABLE settings ADD COLUMN showQuickActions INTEGER`,
|
||||
`ALTER TABLE vps_domains ADD COLUMN targetIps TEXT`,
|
||||
]
|
||||
|
||||
|
||||
@@ -133,6 +133,7 @@ export const settings = sqliteTable('settings', {
|
||||
integrationEnabled: integer('integrationEnabled'),
|
||||
integrationLastSyncAt: text('integrationLastSyncAt'),
|
||||
cfdmApiUrl: text('cfdmApiUrl'),
|
||||
showQuickActions: integer('showQuickActions'),
|
||||
})
|
||||
|
||||
export const vpsDomains = sqliteTable('vps_domains', {
|
||||
|
||||
Reference in New Issue
Block a user