diff --git a/frontend/src/pages/settings/GeneralTab.vue b/frontend/src/pages/settings/GeneralTab.vue new file mode 100644 index 00000000..45574308 --- /dev/null +++ b/frontend/src/pages/settings/GeneralTab.vue @@ -0,0 +1,475 @@ + + + + + + + Remark model + Sample: #{{ remarkSample }} + + + + + {{ label }} + + + + {{ sep }} + + + + + + + Panel listen IP + The IP the panel binds to. Leave empty to listen on all interfaces. + + + + + + + Panel domain + Optional domain used in URLs and certs. + + + + + + + Panel port + Restart required after changing. + + + + + + + Panel base path + The URL prefix the panel is served under. Default is "/". + + + + + + + Session max age (minutes) + Login session lifetime. + + + + + + + Page size + Inbounds table page size. 0 disables pagination. + + + + + + + Language + + + + {{ l.icon }} + {{ l.name }} + + + + + + + + + Expiry notification (days) + Notify before clients expire (0 = disabled). + + + + + + + Traffic notification (GB) + Notify before clients run out of traffic (0 = disabled). + + + + + + + + + Public key path + Absolute path to the panel's TLS certificate. + + + + + + + Private key path + Absolute path to the panel's TLS private key. + + + + + + + + + Enable external traffic info + Push traffic events to an external endpoint. + + + + + + + External traffic URI + HTTP(S) endpoint that receives traffic events. + + + + + + + Restart xray on client disable + Apply changes immediately by restarting xray. + + + + + + + + + Time location + IANA timezone, e.g. "Local", "UTC", "Asia/Tehran". + + + + + + + Date picker + Calendar style used for expiry pickers. + + + + {{ item.name }} + + + + + + + + + Enable LDAP sync + + + + + + + LDAP host + + + + + + + LDAP port + + + + + + + Use TLS (LDAPS) + + + + + + + Bind DN + + + + + + + Password + + + + + + + Base DN + + + + + + + User filter + + + + + + + User attribute (username/email) + + + + + + + VLESS flag attribute + + + + + + + Generic flag attribute (optional) + If set, overrides VLESS flag — e.g. shadowInactive. + + + + + + + Truthy values + Comma-separated; default: true,1,yes,on + + + + + + + Invert flag + Enable when the attribute means disabled (e.g. shadowInactive). + + + + + + + Sync schedule + Cron-like string, e.g. @every 1m + + + + + + + Inbound tags + Inbounds that LDAP sync may auto-create or auto-delete clients on. + + + + {{ opt.label }} + + + + No inbounds found. Create one in Inbounds first. + + + + + + Auto create clients + + + + + + + Auto delete clients + + + + + + + Default total (GB) + + + + + + + Default expiry (days) + + + + + + + Default IP limit + + + + + + + + + diff --git a/frontend/src/pages/settings/SettingsPage.vue b/frontend/src/pages/settings/SettingsPage.vue index c376d2ff..26d5da84 100644 --- a/frontend/src/pages/settings/SettingsPage.vue +++ b/frontend/src/pages/settings/SettingsPage.vue @@ -14,6 +14,7 @@ import { theme as themeState } from '@/composables/useTheme.js'; import { useMediaQuery } from '@/composables/useMediaQuery.js'; import AppSidebar from '@/components/AppSidebar.vue'; import { useAllSetting } from './useAllSetting.js'; +import GeneralTab from './GeneralTab.vue'; const antdThemeConfig = computed(() => ({ algorithm: themeState.isDark ? antdTheme.darkAlgorithm : antdTheme.defaultAlgorithm, @@ -206,7 +207,7 @@ const alertVisible = ref(true); Panel - +