mirror of
https://github.com/gravitl/netmaker.git
synced 2024-09-21 07:46:04 +08:00
Merge pull request #1675 from pete1019/develop
Merge remote-tracking branch 'searchbar/1603' into searchbar
This commit is contained in:
commit
5926b65365
1
go.mod
1
go.mod
|
@ -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
6
go.sum
|
@ -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=
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Reference in a new issue