converge/pkg/server/templates/usageinputs.go
Erik Brakkee 1b1f8f2167 A lot of work in getting cut and paste from the UI to
work properly.

Wrote two web components. One for cut and paste in general, and another for code samples.
2024-09-08 11:16:49 +02:00

55 lines
1.1 KiB
Go

package templates
import (
"fmt"
)
type UsageInputs struct {
Id string
SshKeys []string
ErrorMessages []string
RemoteShells map[string]bool
LocalShells map[string]bool
}
func NewUsageInputs(id string, sshPublicKeys []string, remoteShells []string, localShells []string) UsageInputs {
inputs := UsageInputs{
Id: id,
SshKeys: sshPublicKeys,
RemoteShells: make(map[string]bool),
LocalShells: make(map[string]bool),
}
for _, remoteShell := range remoteShells {
inputs.RemoteShells[remoteShell] = true
}
for _, localShell := range localShells {
inputs.LocalShells[localShell] = true
}
return inputs
}
func addSshKeys(shell string, keys []string) string {
quote := `"`
if shell == CMD {
quote = ""
}
res := ""
for index, key := range keys {
operator := ">>"
if index == 0 {
operator = ">"
}
res += fmt.Sprintf(" echo %s%s%s %s .authorized_keys<br/>", quote, key, quote,
operator)
}
return res + " "
}
func formControlTextClass(message string) string {
if message == "" {
return "form-control"
}
return "form-control is-invalid"
}