From 9ab1b409b0905f9477bc4478dcb03044135b296f Mon Sep 17 00:00:00 2001 From: Xubin Ren <52506698+Re-bin@users.noreply.github.com> Date: Sat, 29 Aug 2026 16:42:24 +0800 Subject: [PATCH] refactor(webui): simplify preset save label --- .../settings/models/ModelsSettings.tsx | 2 +- webui/src/i18n/locales/en/common.json | 2 +- webui/src/i18n/locales/es/common.json | 2 +- webui/src/i18n/locales/fr/common.json | 2 +- webui/src/i18n/locales/id/common.json | 2 +- webui/src/i18n/locales/ja/common.json | 2 +- webui/src/i18n/locales/ko/common.json | 2 +- webui/src/i18n/locales/pt-BR/common.json | 2 +- webui/src/i18n/locales/vi/common.json | 2 +- webui/src/i18n/locales/zh-CN/common.json | 2 +- webui/src/i18n/locales/zh-TW/common.json | 2 +- webui/src/tests/app-layout.test.tsx | 2 +- webui/src/tests/settings-models.test.tsx | 16 ++++++++-------- 13 files changed, 20 insertions(+), 20 deletions(-) diff --git a/webui/src/components/settings/models/ModelsSettings.tsx b/webui/src/components/settings/models/ModelsSettings.tsx index 41438991b..160085110 100644 --- a/webui/src/components/settings/models/ModelsSettings.tsx +++ b/webui/src/components/settings/models/ModelsSettings.tsx @@ -546,7 +546,7 @@ export function ModelsSettings({ > {saving || creatingSaving ? tx("settings.actions.saving", "Saving...") - : tx("settings.actions.savePreset", "Save preset")} + : tx("settings.actions.savePreset", "Save")} diff --git a/webui/src/i18n/locales/en/common.json b/webui/src/i18n/locales/en/common.json index 0e2e7454c..403b1643c 100644 --- a/webui/src/i18n/locales/en/common.json +++ b/webui/src/i18n/locales/en/common.json @@ -483,7 +483,7 @@ "save": "Save", "saving": "Saving", "saveOrder": "Save order", - "savePreset": "Save preset", + "savePreset": "Save", "edit": "Edit", "delete": "Delete", "deleting": "Deleting...", diff --git a/webui/src/i18n/locales/es/common.json b/webui/src/i18n/locales/es/common.json index ae1732955..9e632c360 100644 --- a/webui/src/i18n/locales/es/common.json +++ b/webui/src/i18n/locales/es/common.json @@ -271,7 +271,7 @@ "save": "Guardar", "saving": "Guardando", "saveOrder": "Guardar orden", - "savePreset": "Guardar preajuste", + "savePreset": "Guardar", "delete": "Eliminar", "deleting": "Eliminando...", "edit": "Editar", diff --git a/webui/src/i18n/locales/fr/common.json b/webui/src/i18n/locales/fr/common.json index 2893055d1..80fcb16cf 100644 --- a/webui/src/i18n/locales/fr/common.json +++ b/webui/src/i18n/locales/fr/common.json @@ -271,7 +271,7 @@ "save": "Enregistrer", "saving": "Enregistrement", "saveOrder": "Enregistrer l’ordre", - "savePreset": "Enregistrer le préréglage", + "savePreset": "Enregistrer", "delete": "Supprimer", "deleting": "Suppression...", "edit": "Modifier", diff --git a/webui/src/i18n/locales/id/common.json b/webui/src/i18n/locales/id/common.json index b2597c302..4d3636a45 100644 --- a/webui/src/i18n/locales/id/common.json +++ b/webui/src/i18n/locales/id/common.json @@ -271,7 +271,7 @@ "save": "Simpan", "saving": "Menyimpan", "saveOrder": "Simpan urutan", - "savePreset": "Simpan prasetel", + "savePreset": "Simpan", "delete": "Hapus", "deleting": "Menghapus...", "edit": "Ubah", diff --git a/webui/src/i18n/locales/ja/common.json b/webui/src/i18n/locales/ja/common.json index 044d164a0..aa2e8c10f 100644 --- a/webui/src/i18n/locales/ja/common.json +++ b/webui/src/i18n/locales/ja/common.json @@ -271,7 +271,7 @@ "save": "保存", "saving": "保存中", "saveOrder": "順序を保存", - "savePreset": "プリセットを保存", + "savePreset": "保存", "delete": "削除", "deleting": "削除中...", "edit": "編集", diff --git a/webui/src/i18n/locales/ko/common.json b/webui/src/i18n/locales/ko/common.json index 8bf2dc2a6..a68e30c3e 100644 --- a/webui/src/i18n/locales/ko/common.json +++ b/webui/src/i18n/locales/ko/common.json @@ -271,7 +271,7 @@ "save": "저장", "saving": "저장 중", "saveOrder": "순서 저장", - "savePreset": "프리셋 저장", + "savePreset": "저장", "delete": "삭제", "deleting": "삭제 중...", "edit": "편집", diff --git a/webui/src/i18n/locales/pt-BR/common.json b/webui/src/i18n/locales/pt-BR/common.json index 1a55adfcc..a0199f9b8 100644 --- a/webui/src/i18n/locales/pt-BR/common.json +++ b/webui/src/i18n/locales/pt-BR/common.json @@ -483,7 +483,7 @@ "save": "Salvar", "saving": "Salvando", "saveOrder": "Salvar ordem", - "savePreset": "Salvar predefinição", + "savePreset": "Salvar", "delete": "Excluir", "deleting": "Excluindo...", "edit": "Editar", diff --git a/webui/src/i18n/locales/vi/common.json b/webui/src/i18n/locales/vi/common.json index d4794bfbb..de59fcc0c 100644 --- a/webui/src/i18n/locales/vi/common.json +++ b/webui/src/i18n/locales/vi/common.json @@ -271,7 +271,7 @@ "save": "Lưu", "saving": "Đang lưu", "saveOrder": "Lưu thứ tự", - "savePreset": "Lưu cấu hình đặt trước", + "savePreset": "Lưu", "delete": "Xóa", "deleting": "Đang xóa...", "edit": "Sửa", diff --git a/webui/src/i18n/locales/zh-CN/common.json b/webui/src/i18n/locales/zh-CN/common.json index 6359b5d79..f6fca3246 100644 --- a/webui/src/i18n/locales/zh-CN/common.json +++ b/webui/src/i18n/locales/zh-CN/common.json @@ -483,7 +483,7 @@ "save": "保存", "saving": "正在保存", "saveOrder": "保存顺序", - "savePreset": "保存预设", + "savePreset": "保存", "edit": "编辑", "delete": "删除", "deleting": "正在删除...", diff --git a/webui/src/i18n/locales/zh-TW/common.json b/webui/src/i18n/locales/zh-TW/common.json index e28d4a9b7..50a037739 100644 --- a/webui/src/i18n/locales/zh-TW/common.json +++ b/webui/src/i18n/locales/zh-TW/common.json @@ -271,7 +271,7 @@ "save": "儲存", "saving": "正在儲存", "saveOrder": "儲存順序", - "savePreset": "儲存預設", + "savePreset": "儲存", "delete": "刪除", "deleting": "正在刪除…", "edit": "編輯", diff --git a/webui/src/tests/app-layout.test.tsx b/webui/src/tests/app-layout.test.tsx index 736f670e1..3bf2c8054 100644 --- a/webui/src/tests/app-layout.test.tsx +++ b/webui/src/tests/app-layout.test.tsx @@ -2531,7 +2531,7 @@ describe("App layout", () => { ).toBe(true); await user.click(screen.getByRole("button", { name: "Select model" })); await user.click(await screen.findByRole("option", { name: /openai\/gpt-4o-mini/ })); - expect(screen.getByRole("button", { name: "Save preset" })).toBeEnabled(); + expect(screen.getByRole("button", { name: "Save" })).toBeEnabled(); fireEvent.click(screen.getByRole("button", { name: "Cancel" })); expect(screen.queryByText("Up to date.")).not.toBeInTheDocument(); fireEvent.click( diff --git a/webui/src/tests/settings-models.test.tsx b/webui/src/tests/settings-models.test.tsx index 50746739f..47716f8c0 100644 --- a/webui/src/tests/settings-models.test.tsx +++ b/webui/src/tests/settings-models.test.tsx @@ -141,7 +141,7 @@ describe("Settings models", () => { fireEvent.change(screen.getByLabelText("Temperature"), { target: { value: "0.4" }, }); - fireEvent.click(screen.getByRole("button", { name: "Save preset" })); + fireEvent.click(screen.getByRole("button", { name: "Save" })); await waitFor(() => { expect(requestMutationMock).toHaveBeenCalledWith( @@ -173,7 +173,7 @@ describe("Settings models", () => { const nameInput = screen.getByRole("textbox", { name: "Preset name" }); fireEvent.change(nameInput, { target: { value: "Codex" } }); - fireEvent.click(screen.getByRole("button", { name: "Save preset" })); + fireEvent.click(screen.getByRole("button", { name: "Save" })); await waitFor(() => { expect(requestMutationMock).toHaveBeenCalledWith( @@ -196,7 +196,7 @@ describe("Settings models", () => { const nameInput = screen.getByRole("textbox", { name: "Preset name" }); fireEvent.change(nameInput, { target: { value: "Codex" } }); - fireEvent.click(screen.getByRole("button", { name: "Save preset" })); + fireEvent.click(screen.getByRole("button", { name: "Save" })); expect(await screen.findByRole("alert")).toHaveTextContent( "A preset with this name already exists.", @@ -368,7 +368,7 @@ describe("Settings models", () => { expect(screen.queryByRole("button", { name: "Save order" })).not.toBeInTheDocument(); expect(screen.getByLabelText("Temperature")).toHaveValue(0.4); - expect(screen.getByRole("button", { name: "Save preset" })).toBeEnabled(); + expect(screen.getByRole("button", { name: "Save" })).toBeEnabled(); }); it("keeps repeated fallback preset rows stable when changing the primary preset", async () => { @@ -604,7 +604,7 @@ describe("Settings models", () => { ); fireEvent.click(screen.getByRole("button", { name: "New model preset" })); expect(screen.queryByRole("dialog", { name: "New model preset" })).not.toBeInTheDocument(); - expect(screen.getByRole("button", { name: "Save preset" })).toBeDisabled(); + expect(screen.getByRole("button", { name: "Save" })).toBeDisabled(); expect( screen.queryByText("Complete the preset before saving."), ).not.toBeInTheDocument(); @@ -619,7 +619,7 @@ describe("Settings models", () => { target: { value: "openai/gpt-4o-mini" }, }); fireEvent.keyDown(modelSearch, { key: "Enter" }); - const saveButton = screen.getByRole("button", { name: "Save preset" }); + const saveButton = screen.getByRole("button", { name: "Save" }); expect(saveButton).toBeEnabled(); fireEvent.click(saveButton); @@ -656,7 +656,7 @@ describe("Settings models", () => { }); fireEvent.change(modelSearch, { target: { value: "openai/gpt-4o-mini" } }); fireEvent.keyDown(modelSearch, { key: "Enter" }); - fireEvent.click(screen.getByRole("button", { name: "Save preset" })); + fireEvent.click(screen.getByRole("button", { name: "Save" })); expect(requestMutationMock).not.toHaveBeenCalled(); expect(nameInput).toHaveAttribute("aria-invalid", "true"); @@ -1499,7 +1499,7 @@ describe("Settings models", () => { fireEvent.change(screen.getByLabelText("Reasoning effort"), { target: { value: "provider-native-mode" }, }); - fireEvent.click(screen.getByRole("button", { name: "Save preset" })); + fireEvent.click(screen.getByRole("button", { name: "Save" })); await waitFor(() => expect(fetchMock).toHaveBeenCalledWith(