]> git.r.bdr.sh - rbdr/mobius/commitdiff
Initial bookmark creation
authorJeff Halter <redacted>
Wed, 4 Aug 2021 01:07:10 +0000 (18:07 -0700)
committerJeff Halter <redacted>
Tue, 3 Aug 2021 20:07:10 +0000 (13:07 -0700)
hotline/client.go
hotline/ui.go

index b423f9f7d778a1c30ec3341b72b742e98c6618f6..e676e65b73d084b5cb1977d8231eb804f6f71ec9 100644 (file)
@@ -46,6 +46,12 @@ func (cp *ClientPrefs) IconBytes() []byte {
        return iconBytes
 }
 
+func (cp *ClientPrefs) AddBookmark(name, addr, login, pass string) error {
+       cp.Bookmarks = append(cp.Bookmarks, Bookmark{Addr: addr, Login: login, Password: pass})
+
+       return nil
+}
+
 func readConfig(cfgPath string) (*ClientPrefs, error) {
        fh, err := os.Open(cfgPath)
        if err != nil {
index 5f1670df229367ab79171e78d92c507e22f36f89..b8c0430e34ac350f1584a36a6746c62f85ae3aa7 100644 (file)
@@ -95,7 +95,7 @@ func (ui *UI) showBookmarks() *tview.List {
                list.AddItem(srv.Name, srv.Addr, rune(shortcut+i), func() {
                        ui.Pages.RemovePage("joinServer")
 
-                       newJS := ui.renderJoinServerForm(addr, login, pass, "bookmarks", true, true)
+                       newJS := ui.renderJoinServerForm("", addr, login, pass, "bookmarks", true, true)
 
                        ui.Pages.AddPage("joinServer", newJS, true, true)
                })
@@ -125,7 +125,7 @@ func (ui *UI) getTrackerList() *tview.List {
                list.AddItem(string(srv.Name), string(srv.Description), rune(shortcut+i), func() {
                        ui.Pages.RemovePage("joinServer")
 
-                       newJS := ui.renderJoinServerForm(addr, GuestAccount, "", trackerListPage, false, true)
+                       newJS := ui.renderJoinServerForm("", addr, GuestAccount, "", trackerListPage, false, true)
 
                        ui.Pages.AddPage("joinServer", newJS, true, true)
                        ui.Pages.ShowPage("joinServer")
@@ -220,14 +220,30 @@ func (ui *UI) joinServer(addr, login, password string) error {
        return nil
 }
 
-func (ui *UI) renderJoinServerForm(server, login, password, backPage string, save, defaultConnect bool) *tview.Flex {
+func (ui *UI) renderJoinServerForm(name, server, login, password, backPage string, save, defaultConnect bool) *tview.Flex {
        joinServerForm := tview.NewForm()
        joinServerForm.
+               //      AddInputField("Name", server, 0, func(textToCheck string, lastChar rune) bool {
+               //      return false
+               //}, nil).
                AddInputField("Server", server, 0, nil, nil).
                AddInputField("Login", login, 0, nil, nil).
                AddPasswordField("Password", password, 0, '*', nil).
                AddCheckbox("Save", save, func(checked bool) {
+                       ui.HLClient.Logger.Infow("saving bookmark")
                        // TODO: Implement bookmark saving
+
+                       ui.HLClient.pref.AddBookmark(joinServerForm.GetFormItem(0).(*tview.InputField).GetText(), joinServerForm.GetFormItem(0).(*tview.InputField).GetText(), joinServerForm.GetFormItem(1).(*tview.InputField).GetText(), joinServerForm.GetFormItem(2).(*tview.InputField).GetText())
+                       out, err := yaml.Marshal(ui.HLClient.pref)
+                       if err != nil {
+                               panic(err)
+                       }
+
+                       err = ioutil.WriteFile(ui.HLClient.cfgPath, out, 0666)
+                       if err != nil {
+                               panic(err)
+                       }
+                       //              pref := ui.HLClient.pref
                }).
                AddButton("Cancel", func() {
                        ui.Pages.SwitchToPage(backPage)
@@ -439,7 +455,7 @@ func (ui *UI) Start() {
        )
 
        mainMenu.AddItem("Join Server", "", 'j', func() {
-               joinServerPage := ui.renderJoinServerForm("", GuestAccount, "", "home", false, false)
+               joinServerPage := ui.renderJoinServerForm("", "", GuestAccount, "", "home", false, false)
                ui.Pages.AddPage("joinServer", joinServerPage, true, true)
        }).
                AddItem("Bookmarks", "", 'b', func() {