Skip to content

Commit b563ab1

Browse files
committed
ScriptEditor: 脚本名称冲突
1 parent 2dd57ff commit b563ab1

File tree

9 files changed

+54
-0
lines changed

9 files changed

+54
-0
lines changed

src/locales/ach-UG/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,9 @@
413413
"edit_conflict": "Edit Conflict",
414414
"confirm_override_when_edit_conflict": "This script was edited in another instance. Replacing it will overwrite those changes. Would you like to keep this version instead?",
415415
"save_abort_when_edit_conflict": "The script was edited in another instance. Save aborted.",
416+
"scriptname_conflict": "Script Name Conflict",
417+
"confirm_save_when_scriptname_conflict": "This script name is already used by another script. Do you still want to save it?",
418+
"save_abort_when_scriptname_conflict": "This script name is already used by another script. Save aborted.",
416419
"eslint_config_format_error": "crwdns8614:0crwdne8614:0",
417420
"export_success": "crwdns8616:0crwdne8616:0",
418421
"get_backup_dir_url_failed": "crwdns8618:0crwdne8618:0",

src/locales/de-DE/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,9 @@
422422
"edit_conflict": "Bearbeitungskonflikt",
423423
"confirm_override_when_edit_conflict": "Dieses Skript wurde in einer anderen Instanz bearbeitet. Beim Ersetzen werden diese Änderungen überschrieben. Möchten Sie stattdessen diese Version behalten?",
424424
"save_abort_when_edit_conflict": "Dieses Skript wurde in einer anderen Instanz bearbeitet. Speichern abgebrochen.",
425+
"scriptname_conflict": "Skriptname-Konflikt",
426+
"confirm_save_when_scriptname_conflict": "Dieser Skriptname wird bereits von einem anderen Skript verwendet. Möchten Sie ihn trotzdem speichern?",
427+
"save_abort_when_scriptname_conflict": "Dieser Skriptname wird bereits von einem anderen Skript verwendet. Speichern abgebrochen.",
425428
"eslint_config_format_error": "eslint-Konfigurationsformat-Fehler",
426429
"export_success": "Export erfolgreich",
427430
"get_backup_dir_url_failed": "Backup-Verzeichnis-Adresse abrufen fehlgeschlagen",

src/locales/en-US/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,9 @@
422422
"edit_conflict": "Edit Conflict",
423423
"confirm_override_when_edit_conflict": "This script was edited in another instance. Replacing it will overwrite those changes. Would you like to keep this version instead?",
424424
"save_abort_when_edit_conflict": "The script was edited in another instance. Save aborted.",
425+
"scriptname_conflict": "Script Name Conflict",
426+
"confirm_save_when_scriptname_conflict": "This script name is already used by another script. Do you still want to save it?",
427+
"save_abort_when_scriptname_conflict": "This script name is already used by another script. Save aborted.",
425428
"eslint_config_format_error": "eslint configuration format error",
426429
"export_success": "Dump success saved",
427430
"get_backup_dir_url_failed": "Failed to get backup directory address",

src/locales/ja-JP/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,9 @@
422422
"edit_conflict": "編集の競合",
423423
"confirm_override_when_edit_conflict": "このスクリプトは別のインスタンスで編集されています。置き換えるとその変更は上書きされます。このバージョンを保持しますか?",
424424
"save_abort_when_edit_conflict": "このスクリプトは別のインスタンスで編集されています。保存は中止されました。",
425+
"scriptname_conflict": "スクリプト名の競合",
426+
"confirm_save_when_scriptname_conflict": "このスクリプト名はすでに別のスクリプトで使用されています。それでも保存しますか?",
427+
"save_abort_when_scriptname_conflict": "このスクリプト名はすでに別のスクリプトで使用されています。保存を中止しました。",
425428
"eslint_config_format_error": "ESLint設定フォーマットエラー",
426429
"export_success": "エクスポートに成功しました",
427430
"get_backup_dir_url_failed": "バックアップディレクトリアドレスの取得に失敗しました",

src/locales/ru-RU/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,9 @@
422422
"edit_conflict": "Конфликт редактирования",
423423
"confirm_override_when_edit_conflict": "Этот скрипт был изменён в другом экземпляре. Замена приведёт к перезаписи этих изменений. Хотите сохранить эту версию?",
424424
"save_abort_when_edit_conflict": "Скрипт был изменён в другом экземпляре. Сохранение отменено.",
425+
"scriptname_conflict": "Конфликт имени скрипта",
426+
"confirm_save_when_scriptname_conflict": "Это имя скрипта уже используется другим скриптом. Вы всё равно хотите сохранить его?",
427+
"save_abort_when_scriptname_conflict": "Это имя скрипта уже используется другим скриптом. Сохранение отменено.",
425428
"eslint_config_format_error": "Ошибка формата конфигурации ESLint",
426429
"export_success": "Экспорт успешен",
427430
"get_backup_dir_url_failed": "Ошибка получения адреса папки резервных копий",

src/locales/vi-VN/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,9 @@
422422
"edit_conflict": "Xung đột chỉnh sửa",
423423
"confirm_override_when_edit_conflict": "Tập lệnh này đã được chỉnh sửa ở một phiên bản khác. Việc thay thế sẽ ghi đè các thay đổi đó. Bạn có muốn giữ phiên bản này không?",
424424
"save_abort_when_edit_conflict": "Tập lệnh đã được chỉnh sửa ở một phiên bản khác. Đã hủy lưu.",
425+
"scriptname_conflict": "Xung đột tên script",
426+
"confirm_save_when_scriptname_conflict": "Tên script này đã được sử dụng bởi một script khác. Bạn vẫn muốn lưu chứ?",
427+
"save_abort_when_scriptname_conflict": "Tên script này đã được sử dụng bởi một script khác. Đã hủy lưu.",
425428
"eslint_config_format_error": "Lỗi định dạng cấu hình eslint",
426429
"export_success": "Đổ dữ liệu thành công đã lưu",
427430
"get_backup_dir_url_failed": "Không thể lấy địa chỉ thư mục sao lưu",

src/locales/zh-CN/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,9 @@
422422
"edit_conflict": "编辑冲突",
423423
"confirm_override_when_edit_conflict": "此脚本已在其他实例中被修改。替换将覆盖这些更改。是否要保留此版本?",
424424
"save_abort_when_edit_conflict": "该脚本已在其他实例中被修改,保存已中止。",
425+
"scriptname_conflict": "脚本名称冲突",
426+
"confirm_save_when_scriptname_conflict": "该脚本名称已被其他脚本使用,是否仍要保存?",
427+
"save_abort_when_scriptname_conflict": "该脚本名称已被其他脚本使用,已取消保存。",
425428
"eslint_config_format_error": "ESLint配置格式错误",
426429
"export_success": "导出成功",
427430
"get_backup_dir_url_failed": "获取备份目录地址失败",

src/locales/zh-TW/translation.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,9 @@
422422
"edit_conflict": "編輯衝突",
423423
"confirm_override_when_edit_conflict": "此腳本已在其他實例中被修改。替換將覆蓋這些變更。是否要保留此版本?",
424424
"save_abort_when_edit_conflict": "此腳本已在其他實例中被修改,已中止儲存。",
425+
"scriptname_conflict": "腳本名稱衝突",
426+
"confirm_save_when_scriptname_conflict": "此腳本名稱已被其他腳本使用,是否仍要儲存?",
427+
"save_abort_when_scriptname_conflict": "此腳本名稱已被其他腳本使用,已取消儲存。",
425428
"eslint_config_format_error": "ESLint設定格式錯誤",
426429
"export_success": "匯出成功",
427430
"get_backup_dir_url_failed": "取得備份目錄網址失敗",

src/pages/options/routes/script/ScriptEditor.tsx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,36 @@ function ScriptEditor() {
240240
return prepareScriptByCode(code, existingScript.origin || "", targetUUID, false, scriptDAO, { byEditor: true })
241241
.then(async (prepareScript) => {
242242
const { script, oldScript } = prepareScript;
243+
// 新增/更改名字时,有相同名字的脚本的话,提醒一下是否真的储存
244+
if (
245+
(!oldScript || oldScript.name !== script.name || oldScript.namespace !== script.namespace) &&
246+
script.name &&
247+
script.namespace
248+
) {
249+
const searchResult = await scriptDAO.findByNameAndNamespace(script.name, script.namespace);
250+
if (searchResult && searchResult.uuid !== targetUUID) {
251+
const modalResult = await new Promise((resolve) => {
252+
modal.confirm!({
253+
focusLock: false,
254+
simple: false,
255+
closable: true,
256+
title: t("scriptname_conflict"),
257+
content: t("confirm_save_when_scriptname_conflict"),
258+
onOk: () => {
259+
resolve("yes");
260+
},
261+
onCancel: () => {
262+
resolve("no");
263+
},
264+
});
265+
});
266+
setTimeout(e.focus.bind(e), 50);
267+
if (modalResult === "no") {
268+
Message.warning(t("save_abort_when_scriptname_conflict"));
269+
return Promise.reject(new Error("This script name is already used by another script. Save aborted."));
270+
}
271+
}
272+
}
243273
if (targetUUID) {
244274
if (existingScript.createtime !== 0) {
245275
if (!oldScript || oldScript.uuid !== targetUUID) {

0 commit comments

Comments
 (0)