X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/43ecc0f42eaeface5f640479df7372bfb8021f23..58efb95f86cd806dda8cf00ad45d4347307a2306:/hotline/ui.go?ds=sidebyside diff --git a/hotline/ui.go b/hotline/ui.go index 5056954..f21f1e8 100644 --- a/hotline/ui.go +++ b/hotline/ui.go @@ -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") @@ -187,6 +187,10 @@ func (ui *UI) renderSettingsForm() *tview.Flex { } func (ui *UI) joinServer(addr, login, password string) error { + // append default port to address if no port supplied + if len(strings.Split(addr, ":")) == 1 { + addr += ":5500" + } if err := ui.HLClient.JoinServer(addr, login, password); err != nil { return errors.New(fmt.Sprintf("Error joining server: %v\n", err)) } @@ -220,14 +224,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) @@ -341,7 +361,8 @@ func (ui *UI) renderServerUI() *tview.Flex { newsPostForm := tview.NewForm(). SetButtonsAlign(tview.AlignRight). - AddButton("Post", nil) + //AddButton("Cancel", nil). // TODO: implement cancel button behavior + AddButton("Send", nil) newsPostForm.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { switch event.Key() { case tcell.KeyTab: @@ -357,7 +378,6 @@ func (ui *UI) renderServerUI() *tview.Flex { ui.HLClient.Logger.Errorw("Error posting news", "err", err) // TODO: display errModal to user } - //newsInput.SetText("") // clear the input field after chat send ui.Pages.RemovePage("newsInput") } @@ -367,7 +387,7 @@ func (ui *UI) renderServerUI() *tview.Flex { newsFlex. SetDirection(tview.FlexRow). SetBorder(true). - SetTitle("News Post") + SetTitle("| Post Message |") newsPostTextArea.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { ui.HLClient.Logger.Infow("key", "key", event.Key(), "rune", event.Rune()) @@ -439,7 +459,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() {