| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // package win_server_login -- вход на бото-ферму
- package win_server_login
- import (
- "fmt"
- "github.com/charmbracelet/bubbles/textinput"
- tea "github.com/charmbracelet/bubbletea"
- "wartank/desktop/win_base"
- "wartank/pkg/alias"
- "wartank/pkg/cons"
- "wartank/pkg/types"
- )
- // WinServerLgin -- вход на бото-сервер вар-танк
- type WinServerLgin struct {
- *win_base.WinBase
- }
- // NewWinServerLogin -- возвращает новое окно для входа на бото-сервер вар-танк
- func NewWinServerLogin(desk types.IDesktop) (*WinServerLgin, error) {
- winBase, err := win_base.NewWinBase(desk, cons.WinServerLogin)
- if err != nil {
- return nil, fmt.Errorf("NewWinServerLogin(): in create WinBase, err=\n\t%w", err)
- }
- sf := &WinServerLgin{
- WinBase: winBase,
- }
- _ = tea.Model(sf)
- return sf, nil
- }
- // Init -- настраивает окно для бабл-теа
- func (sf *WinServerLgin) Init() tea.Cmd {
- return textinput.Blink
- }
- // Update -- обрабатывает команду цикла
- func (sf *WinServerLgin) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
- winName := alias.AWinName("")
- switch msg := msg.(type) {
- // Может клавиша нажата
- case tea.KeyMsg:
- switch msg.String() { // Да, нажато, а что именно?
- case "esc": // Нажатие "esc" прекращает логин на сервер
- winName = cons.WinConfig
- }
- }
- if winName != "" {
- sf.Desk().SetWin(winName)
- }
- return nil, nil
- }
- // View -- перерисовывание окна по требованию
- func (sf *WinServerLgin) View() string {
- s := "=Логин на бот-сервер вар-танк=\n\n"
- // err := desk.client.Login(desk.login, desk.pass)
- err := sf.Desk().MakeLogin()
- if err != nil {
- s += fmt.Sprintf("WinServerLgin.View(): err=\n\t%v", err)
- s += "\n\n[ctrl+q]-выход [esc]-отмена\n"
- return s
- }
- s += "WinServerLgin.View(): login ok\n"
- // desk.isLogin = true
- s += "\n\n[ctrl+q]-выход [esc]-отмена\n"
- return s
- }
|