mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-07-16 01:26:07 +00:00
feat(balancers): tabbed Observatory/Burst Observatory form (#5627)
* feat(balancers): tabbed Observatory/Burst form replacing raw JSON Replace the raw JSON editor for the Observatory / Burst Observatory sections with a proper Ant Design form, and split the Balancers page into two sub-tabs: "Balancer Settings" (the existing table) and "Observatory". Observers stay fully auto-managed by balancer strategy through the existing syncObservatories logic: users edit only the tunable probe fields, the subjectSelector is shown read-only since it is derived from the balancers, and deleting the last balancer that needs an observer now warns in the confirm dialog that the observer will be removed too. Overlapping selectors keep an observer alive while any balancer still references it. Also add the previously missing pingConfig.httpMethod field (HEAD/GET) and translations for the new strings across all 13 locales. * refactor(balancers): tighten httpMethod typing and align connectivity default Address automated review feedback on the Observatory form: - Use the ObservatoryHttpMethodSchema enum for pingConfig.httpMethod instead of a free-form z.string(), and drive the HTTP method Select from its options. Removes the previously dead enum export and the duplicate local list, and types the field as 'HEAD' | 'GET'. - Align the schema's connectivity default with DEFAULT_BURST_OBSERVATORY (the hicloud URL) so it matches what burst observers are actually created with. No behavior change.
This commit is contained in:
@@ -1663,6 +1663,36 @@
|
||||
"toastDeleted": "حذف شد",
|
||||
"toastDeleteFailed": "حذف ناموفق بود"
|
||||
},
|
||||
"tabBalancerSettings": "تنظیمات بالانسر",
|
||||
"tabObservatory": "رصدخانه",
|
||||
"observatory": {
|
||||
"title": "رصدخانه",
|
||||
"burstTitle": "رصدخانه Burst",
|
||||
"autoManaged": "رصدگرها بهصورت خودکار از روی بالانسرهای شما مدیریت میشوند. در ادامه میتوانید نحوهٔ پروبزدن را تنظیم کنید؛ خروجیهای تحت نظر از سلکتورهای بالانسر پیروی میکنند.",
|
||||
"emptyHint": "هیچ رصدگر اتصالی فعال نیست. وقتی یک بالانسر Least Ping یا Least Load بسازید — یا یک بالانسر Random / Round-robin همراه با fallback — بهصورت خودکار یکی اضافه میشود تا بالانسر بتواند خروجیها را اندازهگیری کند و بهترین را انتخاب کند.",
|
||||
"subjectSelector": "خروجیهای تحت نظر",
|
||||
"subjectSelectorDesc": "تگ خروجیهایی که این رصدگر پروب میکند. بهصورت خودکار از روی بالانسرهای شما مدیریت میشود.",
|
||||
"probeURL": "آدرس پروب (URL)",
|
||||
"probeURLDesc": "آدرسی که برای سنجش هر خروجی فراخوانی میشود. باید HTTP 204 برگرداند.",
|
||||
"probeInterval": "بازهٔ پروب",
|
||||
"probeIntervalDesc": "هر چند وقت یکبار هر خروجی پروب شود، مثلاً 30s یا 1m یا 2h45m.",
|
||||
"enableConcurrency": "پروب همزمان",
|
||||
"enableConcurrencyDesc": "همهٔ خروجیهای تحت نظر را بهجای یکییکی، همزمان پروب کن. سریعتر است اما در شبکه نمایانتر.",
|
||||
"destination": "مقصد پروب",
|
||||
"destinationDesc": "آدرسی که برای سنجش هر خروجی فراخوانی میشود. باید HTTP 204 برگرداند.",
|
||||
"connectivity": "بررسی اتصال",
|
||||
"connectivityDesc": "آدرس اختیاری برای بررسی شبکهٔ محلی که فقط پس از شکست مقصد امتحان میشود. برای نادیدهگرفتن خالی بگذارید.",
|
||||
"interval": "بازهٔ پروب",
|
||||
"intervalDesc": "میانگین فاصلهٔ زمانی بین پروبها برای هر خروجی، مثلاً 1m. کمینه 10s.",
|
||||
"timeout": "مهلت پروب",
|
||||
"timeoutDesc": "چه مدت برای پاسخ یک پروب صبر شود تا ناموفق بهحساب بیاید، مثلاً 5s.",
|
||||
"sampling": "تعداد نمونهگیری",
|
||||
"samplingDesc": "تعداد نتایج اخیر پروب که برای امتیازدهی به هر خروجی نگه داشته میشود.",
|
||||
"httpMethod": "متد HTTP",
|
||||
"httpMethodDesc": "متد HTTP که برای پروبها استفاده میشود.",
|
||||
"deleteAlsoObservatory": "این آخرین بالانسری است که از Observatory استفاده میکند، بنابراین آن هم حذف خواهد شد.",
|
||||
"deleteAlsoBurst": "این آخرین بالانسری است که از Burst Observatory استفاده میکند، بنابراین آن هم حذف خواهد شد."
|
||||
},
|
||||
"balancer": {
|
||||
"addBalancer": "افزودن بالانسر",
|
||||
"editBalancer": "ویرایش بالانسر",
|
||||
|
||||
Reference in New Issue
Block a user