Merge pull request #1675 from pete1019/develop

Merge remote-tracking branch 'searchbar/1603' into searchbar
This commit is contained in:
dcarns 2022-11-03 10:19:42 -04:00 committed by GitHub
commit 5926b65365
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 1 deletions

1
go.mod
View file

@ -40,6 +40,7 @@ require (
)
require (
github.com/agnivade/levenshtein v1.1.1
github.com/coreos/go-oidc/v3 v3.4.0
github.com/gorilla/websocket v1.5.0
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e

6
go.sum
View file

@ -73,8 +73,12 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/agnivade/levenshtein v1.1.1 h1:QY8M92nrzkmr798gCo3kmMyqXFzdQVpxLlGPRBij0P8=
github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo=
github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=
github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
@ -118,6 +122,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48 h1:fRzb/w+pyskVMQ+UbP35JkH8yB7MYb4q/qhBarqZE6g=
github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=
github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/docker v20.10.17+incompatible h1:JYCuMrWaVNophQTOrMMoSwudOVEfcegoZZrleKc1xwE=

View file

@ -10,6 +10,8 @@ import (
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/agnivade/levenshtein"
"github.com/gravitl/netmaker/logger"
"github.com/gravitl/netmaker/netclient/functions"
"github.com/gravitl/netmaker/netclient/gui/components"
@ -48,15 +50,48 @@ func Run(networks []string) error {
views.SetView(views.NetDetails, netDetailsViews)
window.SetFixedSize(false)
searchBar := widget.NewEntry()
searchBar.PlaceHolder = "Search a Network ..."
searchBar.TextStyle = fyne.TextStyle{
Italic: true,
}
searchBar.OnChanged = func(text string) {
if text == "" {
networkView = container.NewVScroll(views.GetNetworksView(networks))
networkView.SetMinSize(fyne.NewSize(400, 300))
views.RefreshComponent(views.Networks, networkView)
views.ShowView(views.Networks)
return
}
opts := []string{}
for _, n := range networks {
r := levenshtein.ComputeDistance(text, n)
if r <= 2 {
opts = append(opts, n)
}
}
// fmt.Println(opts)
networkView = container.NewVScroll(views.GetNetworksView(opts))
networkView.SetMinSize(fyne.NewSize(400, 300))
views.RefreshComponent(views.Networks, networkView)
views.ShowView(views.Networks)
opts = nil
}
toolbar := container.NewCenter(widget.NewToolbar(
components.NewToolbarLabelButton("Networks", theme.HomeIcon(), func() {
searchBar.Show()
views.ShowView(views.Networks)
views.ClearNotification()
}, components.Blue_color),
components.NewToolbarLabelButton("Join new", theme.ContentAddIcon(), func() {
searchBar.Hide()
views.ShowView(views.Join)
}, components.Gravitl_color),
components.NewToolbarLabelButton("Uninstall", theme.ErrorIcon(), func() {
searchBar.Hide()
confirmView := views.GetConfirmation("Confirm Netclient uninstall?", func() {
views.ShowView(views.Networks)
}, func() {
@ -96,8 +131,9 @@ func Run(networks []string) error {
views.CurrentContent = container.NewVBox()
views.CurrentContent.Add(container.NewGridWithRows(
1,
2,
toolbar,
searchBar,
))
views.CurrentContent.Add(views.GetView(views.Networks))
views.CurrentContent.Add(views.GetView(views.NetDetails))