Skip to content

Commit

Permalink
add search network
Browse files Browse the repository at this point in the history
  • Loading branch information
ernesto27 committed Jun 27, 2023
1 parent 46b6e52 commit 040f33d
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 10 deletions.
2 changes: 2 additions & 0 deletions docker/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ type Docker struct {

Containers []MyContainer
Images []MyImage
Networks []types.NetworkResource
}

type MyNetwork struct {
Expand Down Expand Up @@ -322,6 +323,7 @@ func (d *Docker) NetworkList() ([]types.NetworkResource, error) {
return networks, err
}

d.Networks = networks
return networks, nil
}

Expand Down
33 changes: 23 additions & 10 deletions models/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ const (
ImageOptions

NetworkList
NetworkSearch
)

type LogsView struct {
Expand All @@ -51,6 +52,7 @@ type model struct {
imageSearch textinput.Model
imageOptions Options
networkList table.Model
networkSearch textinput.Model
ready bool
currentView currentView
ContainerID string
Expand All @@ -65,18 +67,12 @@ func NewModel(dockerClient *docker.Docker, version string) *model {
dockerClient: dockerClient,
containerSearch: NewSearch(),
imageSearch: NewSearch(),
networkSearch: NewSearch(),
currentView: ContainerList,
dockerVersion: version,
}
m.setContainerList()

rows := []table.Row{
{"ID", "Name", "Driver", "IP Subnet", "IP Gateway"},
{"ID", "Name", "Driver", "IP Subnet", "IP Gateway"},
}

m.networkList = NewNetworkList(rows)

return m
}

Expand Down Expand Up @@ -207,16 +203,24 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.currentView = ImageList
return m, tea.ClearScreen
}
case NetworkSearch:
value := m.networkSearch.Value()
networks := NewNetworkList(GetNetworkRows(m.dockerClient.Networks, value))
m.networkList = networks
m.currentView = NetworkList
}

case "ctrl+f":
if m.currentView == ContainerList {
switch m.currentView {
case ContainerList:
m.containerSearch.SetValue("")
m.currentView = ContainerSearch

} else if m.currentView == ImageList {
case ImageList:
m.imageSearch.SetValue("")
m.currentView = ImageSearch
case NetworkList:
m.networkSearch.SetValue("")
m.currentView = NetworkSearch
}

return m, tea.ClearScreen
Expand Down Expand Up @@ -328,6 +332,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.imageList, _ = m.imageList.Update(msg)
m.imageDetail, _ = m.imageDetail.Update(msg)
m.networkList, _ = m.networkList.Update(msg)
m.networkSearch, _ = m.networkSearch.Update(msg)
m.imageSearch, cmd = m.imageSearch.Update(msg)

cmds = append(cmds, cmd)
Expand Down Expand Up @@ -359,6 +364,7 @@ func (m model) View() string {
GENERAL ↑/↓: Navigate • ctrl/c: Exit • ctrl/r: refresh • esc: Back
CONTAINERS ctrl/f: Search • ctrl/l: Logs • ctrl/o: Options • ctrl/e: Attach cmd
IMAGES ctrl/b: List • ctrl/f: Search
NETWORKS ctrl/n: List
`

switch m.currentView {
Expand Down Expand Up @@ -392,6 +398,13 @@ func (m model) View() string {

case NetworkList:
return baseStyle.Render(m.networkList.View()) + helpStyle("\n DockerVersion: "+m.dockerVersion+" \n"+commands)
case NetworkSearch:
return fmt.Sprintf(
"Search network by name\n\n%s\n\n%s",
m.networkSearch.View(),
"(esc to back)",
) + "\n"

default:
return ""

Expand Down

0 comments on commit 040f33d

Please sign in to comment.