diff --git a/app.go b/app.go index 6a03dfa..eb8b2a0 100644 --- a/app.go +++ b/app.go @@ -95,6 +95,34 @@ func (a *App) DeleteConnection(id string) error { return config.SaveConfig(a.cfg) } +func (a *App) ReorderConnections(ids []string) error { + var newConns []config.ConnectionConfig + connMap := make(map[string]config.ConnectionConfig) + for _, c := range a.cfg.Connections { + connMap[c.ID] = c + } + + for _, id := range ids { + if c, ok := connMap[id]; ok { + newConns = append(newConns, c) + } + } + + // Add any connections that might have been missed + added := make(map[string]bool) + for _, c := range newConns { + added[c.ID] = true + } + for _, c := range a.cfg.Connections { + if !added[c.ID] { + newConns = append(newConns, c) + } + } + + a.cfg.Connections = newConns + return config.SaveConfig(a.cfg) +} + func (a *App) getExplorerForConnection(id string) (explorer.Explorer, error) { if id == "local" { return local.New(), nil diff --git a/frontend/index.html b/frontend/index.html index fd034e3..a00285e 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -95,7 +95,7 @@ -
+
@@ -104,7 +104,7 @@