mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-10-27 00:04:59 +03:00
feat(hosts): add drag-and-drop and global subscription ordering (#6895)
Hosts already had one saved order on the Hosts page, but subscriptions honoured it only inside each inbound, so a host of a later inbound could never come before one of an earlier inbound (#6894). A new opt-in setting makes raw/base64, Clash/Mihomo and JSON subscriptions follow the Hosts page order across inbounds; the default keeps today's inbound-first output unchanged. The Hosts table gains drag-and-drop reordering next to the Up/Down buttons, on a pointer-reorder hook the Routing Rules table now shares.
This commit is contained in:
@@ -100,6 +100,7 @@ export const EXAMPLES: Record<string, unknown> = {
|
||||
"subHappTunMode": "",
|
||||
"subHappTunType": "",
|
||||
"subHideSettings": false,
|
||||
"subHostSortMode": "inbound-first",
|
||||
"subIncyAnnounceUrl": "",
|
||||
"subIncyAppAutoDetect": false,
|
||||
"subIncyBannerBgColor": "",
|
||||
@@ -289,6 +290,7 @@ export const EXAMPLES: Record<string, unknown> = {
|
||||
"subHappTunMode": "",
|
||||
"subHappTunType": "",
|
||||
"subHideSettings": false,
|
||||
"subHostSortMode": "inbound-first",
|
||||
"subIncyAnnounceUrl": "",
|
||||
"subIncyAppAutoDetect": false,
|
||||
"subIncyBannerBgColor": "",
|
||||
|
||||
@@ -324,6 +324,10 @@ export const SCHEMAS: Record<string, unknown> = {
|
||||
"subHideSettings": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"subHostSortMode": {
|
||||
"example": "inbound-first",
|
||||
"type": "string"
|
||||
},
|
||||
"subIncyAnnounceUrl": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -679,6 +683,7 @@ export const SCHEMAS: Record<string, unknown> = {
|
||||
"subHappTunMode",
|
||||
"subHappTunType",
|
||||
"subHideSettings",
|
||||
"subHostSortMode",
|
||||
"subIncyAnnounceUrl",
|
||||
"subIncyAppAutoDetect",
|
||||
"subIncyBannerBgColor",
|
||||
@@ -1110,6 +1115,10 @@ export const SCHEMAS: Record<string, unknown> = {
|
||||
"subHideSettings": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"subHostSortMode": {
|
||||
"example": "inbound-first",
|
||||
"type": "string"
|
||||
},
|
||||
"subIncyAnnounceUrl": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -1473,6 +1482,7 @@ export const SCHEMAS: Record<string, unknown> = {
|
||||
"subHappTunMode",
|
||||
"subHappTunType",
|
||||
"subHideSettings",
|
||||
"subHostSortMode",
|
||||
"subIncyAnnounceUrl",
|
||||
"subIncyAppAutoDetect",
|
||||
"subIncyBannerBgColor",
|
||||
|
||||
@@ -108,6 +108,7 @@ export interface AllSetting {
|
||||
subHappTunMode: string;
|
||||
subHappTunType: string;
|
||||
subHideSettings: boolean;
|
||||
subHostSortMode: string;
|
||||
subIncyAnnounceUrl: string;
|
||||
subIncyAppAutoDetect: boolean;
|
||||
subIncyBannerBgColor: string;
|
||||
@@ -298,6 +299,7 @@ export interface AllSettingView {
|
||||
subHappTunMode: string;
|
||||
subHappTunType: string;
|
||||
subHideSettings: boolean;
|
||||
subHostSortMode: string;
|
||||
subIncyAnnounceUrl: string;
|
||||
subIncyAppAutoDetect: boolean;
|
||||
subIncyBannerBgColor: string;
|
||||
|
||||
@@ -124,6 +124,7 @@ export const AllSettingSchema = z.object({
|
||||
subHappTunMode: z.string(),
|
||||
subHappTunType: z.string(),
|
||||
subHideSettings: z.boolean(),
|
||||
subHostSortMode: z.string(),
|
||||
subIncyAnnounceUrl: z.string(),
|
||||
subIncyAppAutoDetect: z.boolean(),
|
||||
subIncyBannerBgColor: z.string(),
|
||||
@@ -315,6 +316,7 @@ export const AllSettingViewSchema = z.object({
|
||||
subHappTunMode: z.string(),
|
||||
subHappTunType: z.string(),
|
||||
subHideSettings: z.boolean(),
|
||||
subHostSortMode: z.string(),
|
||||
subIncyAnnounceUrl: z.string(),
|
||||
subIncyAppAutoDetect: z.boolean(),
|
||||
subIncyBannerBgColor: z.string(),
|
||||
|
||||
Reference in New Issue
Block a user