Jelajahi Sumber

add error prompt when output duplicated pin widget

wangweimin 4 tahun lalu
induk
melakukan
adea34e916
2 mengubah file dengan 9 tambahan dan 0 penghapusan
  1. 2 0
      webiojs/src/i18n.ts
  2. 7 0
      webiojs/src/models/pin.ts

+ 2 - 0
webiojs/src/i18n.ts

@@ -14,6 +14,7 @@ const translations: { [lang: string]: { [msgid: string]: string } } = {
         "submit": "Submit",
         "reset": "Reset",
         "cancel": "Cancel",
+        "duplicated_pin_name": "App Error: Duplicated pin widget name %1",
     },
     "zh": {
         "disconnected_with_server": "与服务器连接已断开,请刷新页面重新操作",
@@ -24,6 +25,7 @@ const translations: { [lang: string]: { [msgid: string]: string } } = {
         "submit": "提交",
         "reset": "重置",
         "cancel": "取消",
+        "duplicated_pin_name": "应用错误: 输出了相同name的pin widget %1",
     },
 };
 

+ 7 - 0
webiojs/src/models/pin.ts

@@ -1,5 +1,7 @@
 import {get_input_item_from_type} from "./input/index"
 import {InputItem} from "./input/base";
+import {error_alert} from "../utils";
+import {t} from "../i18n";
 
 let after_show_callbacks: (() => void) [] = [];
 
@@ -51,6 +53,11 @@ export let PinWidget = {
     handle_type: 'pin',
     get_element: function (spec: any) {
         let input_spec = spec.input;
+        if(input_spec.name in name2input){
+            error_alert(t("duplicated_pin_name", input_spec.name));
+            throw new Error(`Duplicated pin widget name: ${input_spec.name}`);
+        }
+
         input_spec.onchange = true;
         input_spec.onblur = true;
         let InputClass = get_input_item_from_type(input_spec.type);