MCPcopy Index your code
hub / github.com/Adembc/lazyssh / createConnectionForm

Method createConnectionForm

internal/adapters/ui/server_form.go:1269–1360  ·  view source on GitHub ↗

createConnectionForm creates the Connection & Proxy tab

()

Source from the content-addressed store, hash-verified

1267
1268// createConnectionForm creates the Connection & Proxy tab
1269func (sf *ServerForm) createConnectionForm() {
1270 form := tview.NewForm()
1271 defaultValues := sf.getDefaultValues()
1272
1273 form.AddTextView("\n[yellow]▶ Proxy & Command[-]", "", 0, 1, true, false)
1274 sf.addInputFieldWithHelp(form, "ProxyJump:", "ProxyJump", defaultValues.ProxyJump, 40, GetFieldPlaceholder("ProxyJump"))
1275 sf.addInputFieldWithHelp(form, "ProxyCommand:", "ProxyCommand", defaultValues.ProxyCommand, 40, GetFieldPlaceholder("ProxyCommand"))
1276 sf.addInputFieldWithHelp(form, "RemoteCommand:", "RemoteCommand", defaultValues.RemoteCommand, 40, GetFieldPlaceholder("RemoteCommand"))
1277
1278 // RequestTTY dropdown
1279 requestTTYOptions := createOptionsWithDefault("RequestTTY", []string{"", "yes", "no", "force", "auto"})
1280 requestTTYIndex := sf.findOptionIndex(requestTTYOptions, defaultValues.RequestTTY)
1281 sf.addDropDownWithHelp(form, "RequestTTY:", "RequestTTY", requestTTYOptions, requestTTYIndex)
1282
1283 // SessionType dropdown (OpenSSH 8.7+)
1284 sessionTypeOptions := createOptionsWithDefault("SessionType", []string{"", "none (-N)", "subsystem (-s)", "default"})
1285 sessionTypeIndex := sf.findOptionIndex(sessionTypeOptions, defaultValues.SessionType)
1286 sf.addDropDownWithHelp(form, "SessionType:", "SessionType", sessionTypeOptions, sessionTypeIndex)
1287
1288 form.AddTextView("\n[yellow]▶ Connection Settings[-]", "", 0, 1, true, false)
1289 sf.addValidatedInputField(form, "ConnectTimeout:", "ConnectTimeout", defaultValues.ConnectTimeout, 10, GetFieldPlaceholder("ConnectTimeout"))
1290 sf.addValidatedInputField(form, "ConnectionAttempts:", "ConnectionAttempts", defaultValues.ConnectionAttempts, 10, GetFieldPlaceholder("ConnectionAttempts"))
1291 sf.addValidatedInputField(form, "IPQoS:", "IPQoS", defaultValues.IPQoS, 20, GetFieldPlaceholder("IPQoS"))
1292
1293 // BatchMode dropdown (moved from Keep-Alive)
1294 batchModeOptions := createOptionsWithDefault("BatchMode", []string{"", "yes", "no"})
1295 batchModeIndex := sf.findOptionIndex(batchModeOptions, defaultValues.BatchMode)
1296 sf.addDropDownWithHelp(form, "BatchMode:", "BatchMode", batchModeOptions, batchModeIndex)
1297
1298 form.AddTextView("\n[yellow]▶ Bind Options[-]", "", 0, 1, true, false)
1299 sf.addValidatedInputField(form, "BindAddress:", "BindAddress", defaultValues.BindAddress, 40, GetFieldPlaceholder("BindAddress"))
1300
1301 // BindInterface dropdown with available network interfaces
1302 interfaceOptions := append([]string{""}, GetNetworkInterfaces()...)
1303 bindInterfaceIndex := sf.findOptionIndex(interfaceOptions, defaultValues.BindInterface)
1304 sf.addDropDownWithHelp(form, "BindInterface:", "BindInterface", interfaceOptions, bindInterfaceIndex)
1305
1306 // AddressFamily dropdown
1307 addressFamilyOptions := createOptionsWithDefault("AddressFamily", []string{"", "any", "inet", "inet6"})
1308 addressFamilyIndex := sf.findOptionIndex(addressFamilyOptions, defaultValues.AddressFamily)
1309 sf.addDropDownWithHelp(form, "AddressFamily:", "AddressFamily", addressFamilyOptions, addressFamilyIndex)
1310
1311 form.AddTextView("\n[yellow]▶ Hostname Canonicalization[-]", "", 0, 1, true, false)
1312
1313 // CanonicalizeHostname dropdown
1314 canonicalizeOptions := createOptionsWithDefault("CanonicalizeHostname", []string{"", "yes", "no", "always"})
1315 canonicalizeIndex := sf.findOptionIndex(canonicalizeOptions, defaultValues.CanonicalizeHostname)
1316 sf.addDropDownWithHelp(form, "CanonicalizeHostname:", "CanonicalizeHostname", canonicalizeOptions, canonicalizeIndex)
1317
1318 sf.addInputFieldWithHelp(form, "CanonicalDomains:", "CanonicalDomains", defaultValues.CanonicalDomains, 40, GetFieldPlaceholder("CanonicalDomains"))
1319
1320 // CanonicalizeFallbackLocal dropdown
1321 fallbackOptions := createOptionsWithDefault("CanonicalizeFallbackLocal", []string{"", "yes", "no"})
1322 fallbackIndex := sf.findOptionIndex(fallbackOptions, defaultValues.CanonicalizeFallbackLocal)
1323 sf.addDropDownWithHelp(form, "CanonicalizeFallbackLocal:", "CanonicalizeFallbackLocal", fallbackOptions, fallbackIndex)
1324
1325 sf.addValidatedInputField(form, "CanonicalizeMaxDots:", "CanonicalizeMaxDots", defaultValues.CanonicalizeMaxDots, 10, GetFieldPlaceholder("CanonicalizeMaxDots"))
1326

Callers 1

buildMethod · 0.95

Calls 9

getDefaultValuesMethod · 0.95
addInputFieldWithHelpMethod · 0.95
findOptionIndexMethod · 0.95
addDropDownWithHelpMethod · 0.95
setupFormShortcutsMethod · 0.95
GetFieldPlaceholderFunction · 0.85
createOptionsWithDefaultFunction · 0.85
GetNetworkInterfacesFunction · 0.85

Tested by

no test coverage detected