Skip to content

Commit 04ed433

Browse files
committed
重新 commit
1 parent b88da7c commit 04ed433

File tree

9 files changed

+109
-1
lines changed

9 files changed

+109
-1
lines changed

src/locales/ach-UG/translation.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,12 @@
420420
"menu_expand_num_before": "crwdns8608:0crwdne8608:0",
421421
"menu_expand_num_after": "crwdns8610:0crwdne8610:0",
422422
"script_name_cannot_be_set_to_empty": "crwdns8612:0crwdne8612:0",
423+
"edit_conflict": "Edit Conflict",
424+
"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?",
425+
"save_abort_when_edit_conflict": "The script was edited in another instance. Save aborted.",
426+
"scriptname_conflict": "Script Name Conflict",
427+
"confirm_save_when_scriptname_conflict": "This script name is already used by another script. Do you still want to save it?",
428+
"save_abort_when_scriptname_conflict": "This script name is already used by another script. Save aborted.",
423429
"eslint_config_format_error": "crwdns8614:0crwdne8614:0",
424430
"export_success": "crwdns8616:0crwdne8616:0",
425431
"get_backup_dir_url_failed": "crwdns8618:0crwdne8618:0",

src/locales/de-DE/translation.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,12 @@
429429
"menu_expand_num_before": "Wenn Menüelemente mehr als",
430430
"menu_expand_num_after": "sind, automatisch verbergen",
431431
"script_name_cannot_be_set_to_empty": "Skriptname kann nicht leer gesetzt werden",
432+
"edit_conflict": "Bearbeitungskonflikt",
433+
"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?",
434+
"save_abort_when_edit_conflict": "Dieses Skript wurde in einer anderen Instanz bearbeitet. Speichern abgebrochen.",
435+
"scriptname_conflict": "Skriptname-Konflikt",
436+
"confirm_save_when_scriptname_conflict": "Dieser Skriptname wird bereits von einem anderen Skript verwendet. Möchten Sie ihn trotzdem speichern?",
437+
"save_abort_when_scriptname_conflict": "Dieser Skriptname wird bereits von einem anderen Skript verwendet. Speichern abgebrochen.",
432438
"eslint_config_format_error": "eslint-Konfigurationsformat-Fehler",
433439
"export_success": "Export erfolgreich",
434440
"get_backup_dir_url_failed": "Backup-Verzeichnis-Adresse abrufen fehlgeschlagen",

src/locales/en-US/translation.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,12 @@
429429
"menu_expand_num_before": "Menu items more than",
430430
"menu_expand_num_after": "will be hidden.",
431431
"script_name_cannot_be_set_to_empty": "Script name cannot be empty",
432+
"edit_conflict": "Edit Conflict",
433+
"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?",
434+
"save_abort_when_edit_conflict": "The script was edited in another instance. Save aborted.",
435+
"scriptname_conflict": "Script Name Conflict",
436+
"confirm_save_when_scriptname_conflict": "This script name is already used by another script. Do you still want to save it?",
437+
"save_abort_when_scriptname_conflict": "This script name is already used by another script. Save aborted.",
432438
"eslint_config_format_error": "eslint configuration format error",
433439
"export_success": "Dump success saved",
434440
"get_backup_dir_url_failed": "Failed to get backup directory address",

src/locales/ja-JP/translation.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,12 @@
429429
"menu_expand_num_before": "メニュー項目が",
430430
"menu_expand_num_after": "個を超えると自動的に非表示",
431431
"script_name_cannot_be_set_to_empty": "スクリプト名を空に設定することはできません",
432+
"edit_conflict": "編集の競合",
433+
"confirm_override_when_edit_conflict": "このスクリプトは別のインスタンスで編集されています。置き換えるとその変更は上書きされます。このバージョンを保持しますか?",
434+
"save_abort_when_edit_conflict": "このスクリプトは別のインスタンスで編集されています。保存は中止されました。",
435+
"scriptname_conflict": "スクリプト名の競合",
436+
"confirm_save_when_scriptname_conflict": "このスクリプト名はすでに別のスクリプトで使用されています。それでも保存しますか?",
437+
"save_abort_when_scriptname_conflict": "このスクリプト名はすでに別のスクリプトで使用されています。保存を中止しました。",
432438
"eslint_config_format_error": "ESLint設定フォーマットエラー",
433439
"export_success": "エクスポートに成功しました",
434440
"get_backup_dir_url_failed": "バックアップディレクトリアドレスの取得に失敗しました",

src/locales/ru-RU/translation.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,12 @@
429429
"menu_expand_num_before": "Когда пунктов меню больше",
430430
"menu_expand_num_after": ", автоматически скрывать",
431431
"script_name_cannot_be_set_to_empty": "Имя скрипта не может быть пустым",
432+
"edit_conflict": "Конфликт редактирования",
433+
"confirm_override_when_edit_conflict": "Этот скрипт был изменён в другом экземпляре. Замена приведёт к перезаписи этих изменений. Хотите сохранить эту версию?",
434+
"save_abort_when_edit_conflict": "Скрипт был изменён в другом экземпляре. Сохранение отменено.",
435+
"scriptname_conflict": "Конфликт имени скрипта",
436+
"confirm_save_when_scriptname_conflict": "Это имя скрипта уже используется другим скриптом. Вы всё равно хотите сохранить его?",
437+
"save_abort_when_scriptname_conflict": "Это имя скрипта уже используется другим скриптом. Сохранение отменено.",
432438
"eslint_config_format_error": "Ошибка формата конфигурации ESLint",
433439
"export_success": "Экспорт успешен",
434440
"get_backup_dir_url_failed": "Ошибка получения адреса папки резервных копий",

src/locales/vi-VN/translation.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,12 @@
429429
"menu_expand_num_before": "Các mục menu nhiều hơn",
430430
"menu_expand_num_after": "sẽ bị ẩn.",
431431
"script_name_cannot_be_set_to_empty": "Tên script không được để trống",
432+
"edit_conflict": "Xung đột chỉnh sửa",
433+
"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?",
434+
"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.",
435+
"scriptname_conflict": "Xung đột tên script",
436+
"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ứ?",
437+
"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.",
432438
"eslint_config_format_error": "Lỗi định dạng cấu hình eslint",
433439
"export_success": "Đổ dữ liệu thành công đã lưu",
434440
"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: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,12 @@
429429
"menu_expand_num_before": "菜单项超过",
430430
"menu_expand_num_after": "个时,自动隐藏",
431431
"script_name_cannot_be_set_to_empty": "脚本name不可以设置为空",
432+
"edit_conflict": "编辑冲突",
433+
"confirm_override_when_edit_conflict": "此脚本已在其他实例中被修改。替换将覆盖这些更改。是否要保留此版本?",
434+
"save_abort_when_edit_conflict": "该脚本已在其他实例中被修改,保存已中止。",
435+
"scriptname_conflict": "脚本名称冲突",
436+
"confirm_save_when_scriptname_conflict": "该脚本名称已被其他脚本使用,是否仍要保存?",
437+
"save_abort_when_scriptname_conflict": "该脚本名称已被其他脚本使用,已取消保存。",
432438
"eslint_config_format_error": "ESLint配置格式错误",
433439
"export_success": "导出成功",
434440
"get_backup_dir_url_failed": "获取备份目录地址失败",

src/locales/zh-TW/translation.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,12 @@
429429
"menu_expand_num_before": "選單項目超過",
430430
"menu_expand_num_after": "個時,自動隱藏",
431431
"script_name_cannot_be_set_to_empty": "腳本名稱不可設定為空",
432+
"edit_conflict": "編輯衝突",
433+
"confirm_override_when_edit_conflict": "此腳本已在其他實例中被修改。替換將覆蓋這些變更。是否要保留此版本?",
434+
"save_abort_when_edit_conflict": "此腳本已在其他實例中被修改,已中止儲存。",
435+
"scriptname_conflict": "腳本名稱衝突",
436+
"confirm_save_when_scriptname_conflict": "此腳本名稱已被其他腳本使用,是否仍要儲存?",
437+
"save_abort_when_scriptname_conflict": "此腳本名稱已被其他腳本使用,已取消儲存。",
432438
"eslint_config_format_error": "ESLint設定格式錯誤",
433439
"export_success": "匯出成功",
434440
"get_backup_dir_url_failed": "取得備份目錄網址失敗",

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

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,38 @@ function ScriptEditor() {
306306
const code = e.getValue();
307307
const targetUUID = existingScript.uuid;
308308
return prepareScriptByCode(code, existingScript.origin || "", targetUUID, false, scriptDAO, { byEditor: true })
309-
.then((prepareScript) => {
309+
.then(async (prepareScript) => {
310310
const { script, oldScript } = prepareScript;
311+
// 新增/更改名字时,有相同名字的脚本的话,提醒一下是否真的储存
312+
if (
313+
(!oldScript || oldScript.name !== script.name || oldScript.namespace !== script.namespace) &&
314+
script.name &&
315+
script.namespace
316+
) {
317+
const searchResult = await scriptDAO.findByNameAndNamespace(script.name, script.namespace);
318+
if (searchResult && searchResult.uuid !== targetUUID) {
319+
const modalResult = await new Promise((resolve) => {
320+
modal.confirm!({
321+
focusLock: false,
322+
simple: false,
323+
closable: true,
324+
title: t("scriptname_conflict"),
325+
content: t("confirm_save_when_scriptname_conflict"),
326+
onOk: () => {
327+
resolve("yes");
328+
},
329+
onCancel: () => {
330+
resolve("no");
331+
},
332+
});
333+
});
334+
setTimeout(e.focus.bind(e), 50);
335+
if (modalResult === "no") {
336+
Message.warning(t("save_abort_when_scriptname_conflict"));
337+
return Promise.reject(new Error("This script name is already used by another script. Save aborted."));
338+
}
339+
}
340+
}
311341
if (targetUUID) {
312342
if (existingScript.createtime !== 0) {
313343
if (!oldScript || oldScript.uuid !== targetUUID) {
@@ -322,6 +352,36 @@ function ScriptEditor() {
322352
Message.warning(t("script_name_cannot_be_set_to_empty"));
323353
return Promise.reject(new Error("script name cannot be empty"));
324354
}
355+
const currentEditorUpdateTime = existingScript.updatetime;
356+
const latestUpdateTime = oldScript?.updatetime ?? 0;
357+
358+
if (
359+
currentEditorUpdateTime !== latestUpdateTime &&
360+
latestUpdateTime > 0 &&
361+
script.uuid === existingScript.uuid &&
362+
script.uuid === oldScript?.uuid
363+
) {
364+
const modalResult = await new Promise((resolve) => {
365+
modal.confirm!({
366+
focusLock: false,
367+
simple: false,
368+
closable: true,
369+
title: t("edit_conflict"),
370+
content: t("confirm_override_when_edit_conflict"),
371+
onOk: () => {
372+
resolve("yes");
373+
},
374+
onCancel: () => {
375+
resolve("no");
376+
},
377+
});
378+
});
379+
setTimeout(e.focus.bind(e), 50);
380+
if (modalResult === "no") {
381+
Message.warning(t("save_abort_when_edit_conflict"));
382+
return Promise.reject(new Error("The script was edited in another instance. Save Aborted."));
383+
}
384+
}
325385

326386
if (script.ignoreVersion) script.ignoreVersion = "";
327387
return scriptClient

0 commit comments

Comments
 (0)