瀏覽代碼

outbound tag validation #1286

Alireza Ahmadi 1 年之前
父節點
當前提交
aa19637288

+ 4 - 2
web/html/xui/xray.html

@@ -747,7 +747,8 @@
                         }
                         outModal.close();
                     },
-                    isEdit: false
+                    isEdit: false,
+                    tags: this.templateSettings.outbounds.map(obj => obj.tag)
                 });
             },
             editOutbound(index){
@@ -760,7 +761,8 @@
                         this.outboundSettings = JSON.stringify(this.templateSettings.outbounds);
                         outModal.close();
                     },
-                    isEdit: true
+                    isEdit: true,
+                    tags: this.outboundData.filter((o) => o.key != index ).map(obj => obj.tag)
                 });
             },
             deleteOutbound(index){

+ 4 - 2
web/html/xui/xray_outbound_modal.html

@@ -21,10 +21,11 @@
         duplicateTag: false,
         isValid: true,
         activeKey: '1',
+        tags: [],
         ok() {
             ObjectUtil.execute(outModal.confirm, outModal.outbound.toJson());
         },
-        show({ title='', okText='{{ i18n "sure" }}', outbound, confirm=(outbound)=>{}, isEdit=false  }) {
+        show({ title='', okText='{{ i18n "sure" }}', outbound, confirm=(outbound)=>{}, isEdit=false, tags=[]  }) {
             this.title = title;
             this.okText = okText;
             this.confirm = confirm;
@@ -34,6 +35,7 @@
             this.visible = true;
             this.outbound = isEdit ? Outbound.fromJson(outbound) : new Outbound();
             this.isEdit = isEdit;
+            this.tags = tags;
             this.check()
         },
         close() {
@@ -44,7 +46,7 @@
             outModal.confirmLoading = loading;
         },
         check(){
-            if(outModal.outbound.tag == ''){
+            if(outModal.outbound.tag == '' || outModal.tags.includes(outModal.outbound.tag)){
                 this.duplicateTag = true;
                 this.isValid = false;
             } else {

+ 2 - 2
web/html/xui/xray_reverse_modal.html

@@ -111,9 +111,9 @@
                 ]
             }
             this.isEdit = isEdit;
-            this.inboundTags = app.templateSettings.inbounds.map(obj => obj.tag);
+            this.inboundTags = app.templateSettings.inbounds.filter((i) => !ObjectUtil.isEmpty(i.tag)).map(obj => obj.tag);
             this.inboundTags.push(...app.inboundTags);
-            this.outboundTags = app.templateSettings.outbounds.map(obj => obj.tag);
+            this.outboundTags = app.templateSettings.outbounds.filter((o) => !ObjectUtil.isEmpty(o.tag)).map(obj => obj.tag);
         },
         close() {
             reverseModal.visible = false;

+ 2 - 2
web/html/xui/xray_rule_modal.html

@@ -152,9 +152,9 @@
                 }
             }
             this.isEdit = isEdit;
-            this.inboundTags = app.templateSettings.inbounds.map(obj => obj.tag);
+            this.inboundTags = app.templateSettings.inbounds.filter((i) => !ObjectUtil.isEmpty(i.tag)).map(obj => obj.tag);
             this.inboundTags.push(...app.inboundTags);
-            this.outboundTags = app.templateSettings.outbounds.map(obj => obj.tag);
+            this.outboundTags = app.templateSettings.outbounds.filter((o) => !ObjectUtil.isEmpty(o.tag)).map(obj => obj.tag);
             if(app.templateSettings.reverse){
                 if(app.templateSettings.reverse.bridges) {
                     this.inboundTags.push(...app.templateSettings.reverse.bridges.map(b => b.tag));

+ 1 - 0
web/translation/translate.en_US.toml

@@ -390,6 +390,7 @@
 "editOutbound" = "Edit outbound"
 "editReverse" = "Edit reverse"
 "tag" = "Tag"
+"tagDesc" = "Unique tag"
 "address" = "Address"
 "reverse" = "Reverse"
 "domain" = "Domain"

+ 1 - 0
web/translation/translate.es_ES.toml

@@ -390,6 +390,7 @@
 "editOutbound" = "Editar salida"
 "editReverse" = "Editar reverso"
 "tag" = "Etiqueta"
+"tagDesc" = "etiqueta única"
 "address" = "Dirección"
 "reverse" = "Reverso"
 "domain" = "Dominio"

+ 1 - 0
web/translation/translate.fa_IR.toml

@@ -390,6 +390,7 @@
 "editOutbound" = "ویرایش خروجی"
 "editReverse" = "ویرایش معکوس"
 "tag" = "برچسب"
+"tagDesc" = "برچسب یگانه"
 "address" = "آدرس"
 "reverse" = "معکوس"
 "domain" = "دامنه"

+ 1 - 0
web/translation/translate.ru_RU.toml

@@ -390,6 +390,7 @@
 "editOutbound" = "Изменить исходящий"
 "editReverse" = "Редактировать реверс"
 "tag" = "Тег"
+"tagDesc" = "уникальный тег"
 "address" = "Адрес"
 "reverse" = "Обратный"
 "domain" = "Домен"

+ 1 - 0
web/translation/translate.vi_VN.toml

@@ -390,6 +390,7 @@
 "editOutbound" = "Chỉnh sửa gửi đi"
 "editReverse" = "Chỉnh sửa ngược lại"
 "tag" = "Thẻ"
+"tagDesc" = "thẻ duy nhất"
 "address" = "Địa chỉ"
 "reverse" = "Đảo ngược"
 "domain" = "Miền"

+ 1 - 0
web/translation/translate.zh_Hans.toml

@@ -390,6 +390,7 @@
 "editOutbound" = "编辑出站"
 "editReverse" = "编辑反向"
 "tag" = "标签"
+"tagDesc" = "独特的标签"
 "address" = "地址"
 "rreverse" = "反转"
 "domain" = "域名"