diff --git a/core/init/migration/migrate.go b/core/init/migration/migrate.go index d8ef4abbe..8f7ac7cbf 100644 --- a/core/init/migration/migrate.go +++ b/core/init/migration/migrate.go @@ -30,6 +30,7 @@ func Init() { migrations.UpdateXpackHideMenuSort, migrations.AdjustXpackNode, migrations.UpdateAiAgentsMenu, + migrations.AddDashboardCarouselSetting, }) if err := m.Migrate(); err != nil { global.LOG.Error(err) diff --git a/core/init/migration/migrations/init.go b/core/init/migration/migrations/init.go index 67a410a8c..d66c1f380 100644 --- a/core/init/migration/migrations/init.go +++ b/core/init/migration/migrations/init.go @@ -591,13 +591,36 @@ var AddUpgradeBackupCopies = &gormigrate.Migration{ } var AddScriptSync = &gormigrate.Migration{ - ID: "20250916-add-script-sync", - Migrate: func(tx *gorm.DB) error { - if err := tx.Create(&model.Setting{Key: "ScriptSync", Value: constant.StatusEnable}).Error; err != nil { - return err - } - return nil - }, + ID: "20250916-add-script-sync", + Migrate: func(tx *gorm.DB) error { + if err := tx.Create(&model.Setting{Key: "ScriptSync", Value: constant.StatusEnable}).Error; err != nil { + return err + } + return nil + }, +} + +var AddDashboardCarouselSetting = &gormigrate.Migration{ + ID: "20260210-add-dashboard-carousel-setting", + Migrate: func(tx *gorm.DB) error { + var addSettingsIfMissing = func(tx *gorm.DB, key, value string) error { + var setting model.Setting + if err := tx.Where("key = ?", key).First(&setting).Error; err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return tx.Create(&model.Setting{Key: key, Value: value}).Error + } + return err + } + return nil + } + if err := addSettingsIfMissing(tx, "DashboardMemoVisible", constant.StatusEnable); err != nil { + return err + } + if err := addSettingsIfMissing(tx, "DashboardSimpleNodeVisible", constant.StatusEnable); err != nil { + return err + } + return nil + }, } var UpdateXpackHideMenuSort = &gormigrate.Migration{ diff --git a/frontend/src/api/interface/setting.ts b/frontend/src/api/interface/setting.ts index ea54a9a0c..902fbc694 100644 --- a/frontend/src/api/interface/setting.ts +++ b/frontend/src/api/interface/setting.ts @@ -34,6 +34,8 @@ export namespace Setting { allowIPs: string; bindDomain: string; securityEntrance: string; + dashboardMemoVisible: string; + dashboardSimpleNodeVisible: string; expirationDays: number; expirationTime: string; complexityVerification: string; diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index a97916fa7..709779a86 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -472,7 +472,8 @@ const message = { disk: 'Disk', memo: 'Memo', - memoPlaceholder: 'Click to edit memo...', + memoPlaceholder: 'Double-click to edit memo content...', + carouselSetting: 'Carousel settings', tooltipSensitiveInfo: 'Show/Hide sensitive info', }, tabs: { diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 737a330c2..4b1ff2294 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -474,7 +474,8 @@ const message = { networkCard: 'Tarjeta de red', disk: 'Disco', memo: 'Memo', - memoPlaceholder: 'Haga clic para editar el memo...', + memoPlaceholder: 'Doble clic para editar el memo...', + carouselSetting: 'Configuración del carrusel', tooltipSensitiveInfo: 'Mostrar/Ocultar información sensible', }, tabs: { diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index ef6d0a4b5..cf0d5891b 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -458,7 +458,8 @@ const message = { networkCard: 'ネットワークカード', disk: 'ディスク', memo: 'メモ', - memoPlaceholder: 'クリックしてメモを編集...', + memoPlaceholder: 'ダブルクリックしてメモを編集...', + carouselSetting: 'カルーセル設定', tooltipSensitiveInfo: '機密情報を表示/非表示', }, tabs: { diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 575be1b4c..6f032059c 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -461,7 +461,8 @@ const message = { networkCard: '네트워크 카드', disk: '디스크', memo: '메모', - memoPlaceholder: '클릭하여 메모를 편집...', + memoPlaceholder: '메모를 편집하려면 두 번 클릭...', + carouselSetting: '캐러셀 설정', tooltipSensitiveInfo: '민감한 정보 표시/숨기기', }, tabs: { diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 27b3113b7..239ec2dcd 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -467,7 +467,8 @@ const message = { networkCard: 'Kad rangkaian', disk: 'Disk', memo: 'Catatan', - memoPlaceholder: 'Klik untuk mengedit catatan...', + memoPlaceholder: 'Dwiklik untuk mengedit memo...', + carouselSetting: 'Tetapan karusel', tooltipSensitiveInfo: 'Tunjuk/Sembunyikan maklumat sensitif', }, tabs: { diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 62f7dae0c..5680d4223 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -465,7 +465,8 @@ const message = { networkCard: 'Placa de rede', disk: 'Disco', memo: 'Memo', - memoPlaceholder: 'Clique para editar o memo...', + memoPlaceholder: 'Clique duas vezes para editar o memo...', + carouselSetting: 'Configuração do carrossel', tooltipSensitiveInfo: 'Mostrar/Ocultar informações sensíveis', }, tabs: { diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 4b02196b0..215e0eefc 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -462,7 +462,8 @@ const message = { networkCard: 'Интерфейс', disk: 'Диск', memo: 'Заметка', - memoPlaceholder: 'Нажмите, чтобы редактировать заметку...', + memoPlaceholder: 'Дважды щелкните, чтобы редактировать заметку...', + carouselSetting: 'Настройки карусели', tooltipSensitiveInfo: 'Показать/скрыть конфиденциальную информацию', }, tabs: { diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index ead8db39d..fcecb3256 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -473,7 +473,8 @@ const message = { networkCard: 'Ağ kartı', disk: 'Disk', memo: 'Not', - memoPlaceholder: 'Notu düzenlemek için tıklayın...', + memoPlaceholder: 'Notu düzenlemek için çift tıklayın...', + carouselSetting: 'Karusel ayarları', tooltipSensitiveInfo: 'Hassas bilgileri göster/gizle', }, tabs: { diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index ff16b2ec3..f6cb6954a 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -456,7 +456,8 @@ const message = { networkCard: '網卡', disk: '磁碟', memo: '備忘錄', - memoPlaceholder: '點擊編輯備忘錄內容...', + memoPlaceholder: '雙擊可編輯備忘錄內容...', + carouselSetting: '輪播設定', tooltipSensitiveInfo: '顯示/隱藏敏感資訊', }, tabs: { diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 7947e13c2..040af6ce0 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -458,7 +458,8 @@ const message = { disk: '磁盘', memo: '备忘录', - memoPlaceholder: '点击编辑备忘录内容...', + memoPlaceholder: '双击可编辑备忘录内容...', + carouselSetting: '轮播设置', tooltipSensitiveInfo: '显示/隐藏敏感信息', }, tabs: { diff --git a/frontend/src/views/home/index.vue b/frontend/src/views/home/index.vue index 10f6e78a3..af57d0b9e 100644 --- a/frontend/src/views/home/index.vue +++ b/frontend/src/views/home/index.vue @@ -166,6 +166,7 @@ - +