mirror of
https://github.com/itdoginfo/podkop.git
synced 2026-01-27 04:40:37 +03:00
fix: reorder options on settings tab
This commit is contained in:
@@ -82,56 +82,6 @@ function createSettingsContent(section) {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
o = section.option(
|
|
||||||
form.ListValue,
|
|
||||||
'config_path',
|
|
||||||
_('Config File Path'),
|
|
||||||
_(
|
|
||||||
'Select path for sing-box config file. Change this ONLY if you know what you are doing',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
o.value('/etc/sing-box/config.json', 'Flash (/etc/sing-box/config.json)');
|
|
||||||
o.value('/tmp/sing-box/config.json', 'RAM (/tmp/sing-box/config.json)');
|
|
||||||
o.default = '/etc/sing-box/config.json';
|
|
||||||
o.rmempty = false;
|
|
||||||
|
|
||||||
o = section.option(
|
|
||||||
form.Value,
|
|
||||||
'cache_path',
|
|
||||||
_('Cache File Path'),
|
|
||||||
_(
|
|
||||||
'Select or enter path for sing-box cache file. Change this ONLY if you know what you are doing',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
o.value('/tmp/sing-box/cache.db', 'RAM (/tmp/sing-box/cache.db)');
|
|
||||||
o.value(
|
|
||||||
'/usr/share/sing-box/cache.db',
|
|
||||||
'Flash (/usr/share/sing-box/cache.db)',
|
|
||||||
);
|
|
||||||
o.default = '/tmp/sing-box/cache.db';
|
|
||||||
o.rmempty = false;
|
|
||||||
o.validate = function (section_id, value) {
|
|
||||||
if (!value) {
|
|
||||||
return _('Cache file path cannot be empty');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!value.startsWith('/')) {
|
|
||||||
return _('Path must be absolute (start with /)');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!value.endsWith('cache.db')) {
|
|
||||||
return _('Path must end with cache.db');
|
|
||||||
}
|
|
||||||
|
|
||||||
const parts = value.split('/').filter(Boolean);
|
|
||||||
if (parts.length < 2) {
|
|
||||||
return _('Path must contain at least one directory (like /tmp/cache.db)');
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
o = section.option(
|
o = section.option(
|
||||||
widgets.DeviceSelect,
|
widgets.DeviceSelect,
|
||||||
'iface',
|
'iface',
|
||||||
@@ -169,54 +119,6 @@ function createSettingsContent(section) {
|
|||||||
return !isWireless;
|
return !isWireless;
|
||||||
};
|
};
|
||||||
|
|
||||||
o = section.option(
|
|
||||||
form.ListValue,
|
|
||||||
'update_interval',
|
|
||||||
_('List Update Frequency'),
|
|
||||||
_('Select how often the lists will be updated'),
|
|
||||||
);
|
|
||||||
Object.entries(main.UPDATE_INTERVAL_OPTIONS).forEach(([key, label]) => {
|
|
||||||
o.value(key, _(label));
|
|
||||||
});
|
|
||||||
o.default = '1d';
|
|
||||||
o.rmempty = false;
|
|
||||||
|
|
||||||
o = section.option(
|
|
||||||
form.Flag,
|
|
||||||
'quic_disable',
|
|
||||||
_('QUIC disable'),
|
|
||||||
_('For issues with the video stream'),
|
|
||||||
);
|
|
||||||
o.default = '0';
|
|
||||||
o.rmempty = false;
|
|
||||||
|
|
||||||
o = section.option(
|
|
||||||
form.Flag,
|
|
||||||
'yacd',
|
|
||||||
_('Yacd enable'),
|
|
||||||
`<a href="${main.getClashApiUrl()}/ui" target="_blank">${main.getClashApiUrl()}/ui</a>`,
|
|
||||||
);
|
|
||||||
o.default = '0';
|
|
||||||
o.rmempty = false;
|
|
||||||
|
|
||||||
o = section.option(
|
|
||||||
form.Flag,
|
|
||||||
'exclude_ntp',
|
|
||||||
_('Exclude NTP'),
|
|
||||||
_('Allows you to exclude NTP protocol traffic from the tunnel'),
|
|
||||||
);
|
|
||||||
o.default = '0';
|
|
||||||
o.rmempty = false;
|
|
||||||
|
|
||||||
o = section.option(
|
|
||||||
form.Flag,
|
|
||||||
'detour',
|
|
||||||
_('Proxy download of lists'),
|
|
||||||
_('Downloading all lists via main Proxy/VPN'),
|
|
||||||
);
|
|
||||||
o.default = '0';
|
|
||||||
o.rmempty = false;
|
|
||||||
|
|
||||||
o = section.option(
|
o = section.option(
|
||||||
form.Flag,
|
form.Flag,
|
||||||
'mon_restart_ifaces',
|
'mon_restart_ifaces',
|
||||||
@@ -265,6 +167,45 @@ function createSettingsContent(section) {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
o = section.option(
|
||||||
|
form.ListValue,
|
||||||
|
'update_interval',
|
||||||
|
_('List Update Frequency'),
|
||||||
|
_('Select how often the lists will be updated'),
|
||||||
|
);
|
||||||
|
Object.entries(main.UPDATE_INTERVAL_OPTIONS).forEach(([key, label]) => {
|
||||||
|
o.value(key, _(label));
|
||||||
|
});
|
||||||
|
o.default = '1d';
|
||||||
|
o.rmempty = false;
|
||||||
|
|
||||||
|
o = section.option(
|
||||||
|
form.Flag,
|
||||||
|
'yacd',
|
||||||
|
_('Yacd enable'),
|
||||||
|
`<a href="${main.getClashApiUrl()}/ui" target="_blank">${main.getClashApiUrl()}/ui</a>`,
|
||||||
|
);
|
||||||
|
o.default = '0';
|
||||||
|
o.rmempty = false;
|
||||||
|
|
||||||
|
o = section.option(
|
||||||
|
form.Flag,
|
||||||
|
'quic_disable',
|
||||||
|
_('QUIC disable'),
|
||||||
|
_('For issues with the video stream'),
|
||||||
|
);
|
||||||
|
o.default = '0';
|
||||||
|
o.rmempty = false;
|
||||||
|
|
||||||
|
o = section.option(
|
||||||
|
form.Flag,
|
||||||
|
'detour',
|
||||||
|
_('Proxy download of lists'),
|
||||||
|
_('Downloading all lists via main Proxy/VPN'),
|
||||||
|
);
|
||||||
|
o.default = '0';
|
||||||
|
o.rmempty = false;
|
||||||
|
|
||||||
o = section.option(
|
o = section.option(
|
||||||
form.Flag,
|
form.Flag,
|
||||||
'dont_touch_dhcp',
|
'dont_touch_dhcp',
|
||||||
@@ -273,6 +214,64 @@ function createSettingsContent(section) {
|
|||||||
);
|
);
|
||||||
o.default = '0';
|
o.default = '0';
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
|
|
||||||
|
o = section.option(
|
||||||
|
form.ListValue,
|
||||||
|
'config_path',
|
||||||
|
_('Config File Path'),
|
||||||
|
_(
|
||||||
|
'Select path for sing-box config file. Change this ONLY if you know what you are doing',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
o.value('/etc/sing-box/config.json', 'Flash (/etc/sing-box/config.json)');
|
||||||
|
o.value('/tmp/sing-box/config.json', 'RAM (/tmp/sing-box/config.json)');
|
||||||
|
o.default = '/etc/sing-box/config.json';
|
||||||
|
o.rmempty = false;
|
||||||
|
|
||||||
|
o = section.option(
|
||||||
|
form.Value,
|
||||||
|
'cache_path',
|
||||||
|
_('Cache File Path'),
|
||||||
|
_(
|
||||||
|
'Select or enter path for sing-box cache file. Change this ONLY if you know what you are doing',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
o.value('/tmp/sing-box/cache.db', 'RAM (/tmp/sing-box/cache.db)');
|
||||||
|
o.value(
|
||||||
|
'/usr/share/sing-box/cache.db',
|
||||||
|
'Flash (/usr/share/sing-box/cache.db)',
|
||||||
|
);
|
||||||
|
o.default = '/tmp/sing-box/cache.db';
|
||||||
|
o.rmempty = false;
|
||||||
|
o.validate = function (section_id, value) {
|
||||||
|
if (!value) {
|
||||||
|
return _('Cache file path cannot be empty');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!value.startsWith('/')) {
|
||||||
|
return _('Path must be absolute (start with /)');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!value.endsWith('cache.db')) {
|
||||||
|
return _('Path must end with cache.db');
|
||||||
|
}
|
||||||
|
|
||||||
|
const parts = value.split('/').filter(Boolean);
|
||||||
|
if (parts.length < 2) {
|
||||||
|
return _('Path must contain at least one directory (like /tmp/cache.db)');
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
o = section.option(
|
||||||
|
form.Flag,
|
||||||
|
'exclude_ntp',
|
||||||
|
_('Exclude NTP'),
|
||||||
|
_('Allows you to exclude NTP protocol traffic from the tunnel'),
|
||||||
|
);
|
||||||
|
o.default = '0';
|
||||||
|
o.rmempty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const EntryPoint = {
|
const EntryPoint = {
|
||||||
|
|||||||
Reference in New Issue
Block a user