Skip to content

Commit 9e2701a

Browse files
committed
added new header for while fetching
1 parent 615f050 commit 9e2701a

File tree

4 files changed

+49
-23
lines changed

4 files changed

+49
-23
lines changed

internal/ui/tui/pages/device/cfg/response/resp.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,13 @@ var (
2929
)
3030

3131
type Model struct {
32-
ctx context.Context
33-
help mir_help.Model
34-
cfgReq *mir_apiv1.SendConfigRequest
35-
cfgResp map[string]*mir_apiv1.SendConfigResponse_ConfigResponse
36-
vp viewport.Model
37-
list menu.Model
32+
ctx context.Context
33+
help mir_help.Model
34+
cfgReq *mir_apiv1.SendConfigRequest
35+
cfgResp map[string]*mir_apiv1.SendConfigResponse_ConfigResponse
36+
fetching bool
37+
vp viewport.Model
38+
list menu.Model
3839
}
3940

4041
func NewModel(ctx context.Context) *Model {
@@ -64,6 +65,7 @@ func (m *Model) InitWithData(d any) tea.Cmd {
6465
)
6566
}
6667
m.cfgReq = req
68+
m.fetching = true
6769

6870
return tea.Batch(
6971
msgs.ReqMsgCmd("Config '"+req.Name+"' sent to "+strconv.Itoa(len(req.Targets.Ids))+" devices", msgs.DefaultTimeout),
@@ -99,6 +101,7 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
99101
case msgs.DeviceConfigSentMsg:
100102
m.cfgResp = msg.ConfigsResponses
101103
m.list = menu.New(m.renderCmdResp(m.cfgResp))
104+
m.fetching = false
102105
cmdRes = msgs.ResMsgCmd(strconv.Itoa(len(msg.ConfigsResponses))+" config responses received", 5*time.Second)
103106
case tea.KeyMsg:
104107
m.help, cmdKey = m.help.Update(msg)
@@ -141,7 +144,12 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
141144

142145
func (m *Model) View() string {
143146
v.Reset()
144-
header := styles.Help.Bold(false).Render(fmt.Sprintf("Configuration responses for %d devices\n", len(m.cfgResp)))
147+
header := ""
148+
if m.fetching {
149+
header = styles.Help.Bold(false).Render(fmt.Sprintf("Sending config '%s'...\n", m.cfgReq.Name))
150+
} else {
151+
header = styles.Help.Bold(false).Render(fmt.Sprintf("Configuration responses for %d devices\n", len(m.cfgResp)))
152+
}
145153
m.vp.SetContent(header + m.list.View())
146154
v.WriteString(m.vp.View())
147155
v.WriteString(m.help.View())

internal/ui/tui/pages/device/cfg/values/values.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@ var (
2929
)
3030

3131
type Model struct {
32-
ctx context.Context
33-
help mir_help.Model
34-
devCfgs []*mir_apiv1.DevicesConfigs_ConfigValues
35-
cfgName string
36-
targets *mir_apiv1.DeviceTarget
37-
vp viewport.Model
38-
list menu.Model
32+
ctx context.Context
33+
help mir_help.Model
34+
devCfgs []*mir_apiv1.DevicesConfigs_ConfigValues
35+
cfgName string
36+
targets *mir_apiv1.DeviceTarget
37+
fetching bool
38+
vp viewport.Model
39+
list menu.Model
3940
}
4041

4142
type InputData struct {
@@ -71,6 +72,7 @@ func (m *Model) InitWithData(d any) tea.Cmd {
7172
}
7273
m.cfgName = req.CfgName
7374
m.targets = req.Targets
75+
m.fetching = true
7476

7577
return tea.Batch(
7678
msgs.ReqMsgCmd("Config '"+req.CfgName+"' sent to "+strconv.Itoa(len(req.Targets.Ids))+" devices", msgs.DefaultTimeout),
@@ -106,6 +108,7 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
106108
m.devCfgs = append(m.devCfgs, cfg.CfgValues...)
107109
}
108110
m.list = menu.New(m.renderCfgValues(m.cfgName, m.devCfgs))
111+
m.fetching = false
109112
cmdRes = msgs.ResMsgCmd(fmt.Sprintf("%d configs fetched on %d devices", len(msg.Configs), len(m.targets.Ids)), msgs.DefaultTimeout)
110113
case tea.WindowSizeMsg:
111114
dims := utils.DefaultViewportDimensions()
@@ -135,7 +138,14 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
135138

136139
func (m *Model) View() string {
137140
v.Reset()
138-
header := styles.Help.Bold(false).Render(fmt.Sprintf("Configuration values for %d devices\n", len(m.targets.Ids)))
141+
142+
header := ""
143+
if m.fetching {
144+
header = styles.Help.Bold(false).Render(fmt.Sprintf("Fetching config '%s'...\n", m.cfgName))
145+
} else {
146+
header = styles.Help.Bold(false).Render(fmt.Sprintf("Configuration values for %d devices\n", len(m.targets.Ids)))
147+
}
148+
139149
m.vp.SetContent(header + m.list.View())
140150
v.WriteString(m.vp.View())
141151
v.WriteString(m.help.View())

internal/ui/tui/pages/device/cmd/response/resp.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,13 @@ var (
2929
)
3030

3131
type Model struct {
32-
ctx context.Context
33-
help mir_help.Model
34-
cmdReq *mir_apiv1.SendCommandRequest
35-
cmdResp map[string]*mir_apiv1.SendCommandResponse_CommandResponse
36-
vp viewport.Model
37-
list menu.Model
32+
ctx context.Context
33+
help mir_help.Model
34+
cmdReq *mir_apiv1.SendCommandRequest
35+
cmdResp map[string]*mir_apiv1.SendCommandResponse_CommandResponse
36+
fetching bool
37+
vp viewport.Model
38+
list menu.Model
3839
}
3940

4041
func NewModel(ctx context.Context) *Model {
@@ -64,6 +65,7 @@ func (m *Model) InitWithData(d any) tea.Cmd {
6465
)
6566
}
6667
m.cmdReq = req
68+
m.fetching = true
6769

6870
return tea.Batch(
6971
msgs.ReqMsgCmd("Command '"+req.Name+"' sent to "+strconv.Itoa(len(req.Targets.Ids))+" devices", msgs.DefaultTimeout),
@@ -99,6 +101,7 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
99101
case msgs.DeviceCommandSentMsg:
100102
m.cmdResp = msg.CommandsResponse
101103
m.list = menu.New(m.renderCmdResp(m.cmdResp))
104+
m.fetching = false
102105
cmdRes = msgs.ResMsgCmd(strconv.Itoa(len(msg.CommandsResponse))+" command responses received", 5*time.Second)
103106
case tea.KeyMsg:
104107
m.help, cmdKey = m.help.Update(msg)
@@ -141,7 +144,12 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
141144

142145
func (m *Model) View() string {
143146
v.Reset()
144-
header := styles.Help.Bold(false).Render(fmt.Sprintf("Command responses for %d devices\n", len(m.cmdResp)))
147+
header := ""
148+
if m.fetching {
149+
header = styles.Help.Bold(false).Render(fmt.Sprintf("Sending command '%s'...\n", m.cmdReq.Name))
150+
} else {
151+
header = styles.Help.Bold(false).Render(fmt.Sprintf("Command responses for %d devices\n", len(m.cmdResp)))
152+
}
145153
m.vp.SetContent(header + m.list.View())
146154
v.WriteString(m.vp.View())
147155
v.WriteString(m.help.View())

internal/ui/tui/router.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ type Model struct {
5050

5151
func NewModel(ctx context.Context, log zerolog.Logger, m *mir.Mir, cfg ui.Config) *Model {
5252
log = log.With().Str("page", "router").Logger()
53-
s := labelspinner.New(" 🛰️ ", styles.Mir.Render("Mir"), spinner.Dot)
53+
s := labelspinner.New(" 🛰️ ", styles.Mir.Render("Mir ("+store.MirCtx.Name+")"), spinner.Dot)
5454
routes := map[string]MirTeaModel{
5555
"/": mainmenu.NewModel(),
5656
"/devices": device_list.NewModel(ctx),

0 commit comments

Comments
 (0)