Skip to content

Commit 0f78205

Browse files
committed
Merge branch 'main' of github.com:ToeiRei/Keymaster
2 parents aa0c837 + 691af92 commit 0f78205

9 files changed

Lines changed: 35 additions & 23 deletions

File tree

ui/tui/helpers/crud/create_model.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ func (m *CreateModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter])
7272
form.WithOnSubmit(func(result TRecordCreate, err error) (tea.Cmd, bool) {
7373
return progresspopup.Open(
7474
progresspopup.Spinner,
75-
"Creating "+m.crud.Texts.EntityNameSingular,
75+
"Creating "+m.crud.Texts.EntityNameSingular(),
7676
func(ctx context.Context, _ progresspopup.ProgressChan) tea.Cmd {
7777
record, err := m.crud.createRecord(ctx, result)
7878
return util.TeaMsgToCmd(createMsgCreateResult[TRecord]{record, err})
@@ -112,7 +112,7 @@ func (m *CreateModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter])
112112
switch msg := msg.(type) {
113113
case createMsgCreateResult[TRecord]:
114114
if msg.err != nil {
115-
return messagepopup.Open(messagepopup.Error, "Error creating "+m.crud.Texts.EntityNameSingular+":\n"+msg.err.Error(), nil)
115+
return messagepopup.Open(messagepopup.Error, "Error creating "+m.crud.Texts.EntityNameSingular()+":\n"+msg.err.Error(), nil)
116116
}
117117
return tea.Sequence(m.crud.routerControll.Pop(1), util.TeaMsgToCmd(CreateMsgCreated[TRecord]{msg.record}))
118118
}
@@ -137,7 +137,7 @@ func (m *CreateModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter])
137137
}
138138
m.focussed = true
139139
return tea.Batch(
140-
windowtitle.Announce(m.crud.Texts.EntityNameMultiple),
140+
windowtitle.Announce(m.crud.Texts.EntityNameMultiple()),
141141
m.form.Focus(parentKeyMap),
142142
)
143143
}

ui/tui/helpers/crud/crud.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import (
1515
)
1616

1717
type Texts struct {
18-
EntityNameSingular string
19-
EntityNameMultiple string
18+
EntityNameSingular func() string
19+
EntityNameMultiple func() string
2020
}
2121

2222
type Crud[

ui/tui/helpers/crud/list_model.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func (m *ListModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter]) U
8585
m.records = msg.records
8686
m.refreshTable()
8787
if msg.err != nil {
88-
return choicepopup.Open("Error loading "+m.crud.Texts.EntityNameMultiple+":\n"+msg.err.Error(), choicepopup.Choices{
88+
return choicepopup.Open("Error loading "+m.crud.Texts.EntityNameMultiple()+":\n"+msg.err.Error(), choicepopup.Choices{
8989
choicepopup.Choice{Name: "Close", Cmd: m.crud.routerControll.Pop(1), KeyBindings: keys.KeyBindingList{keys.Close()}},
9090
choicepopup.Choice{Name: "Reload", Cmd: m.reload(), KeyBindings: nil},
9191
})
@@ -115,7 +115,7 @@ func (m *ListModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter]) U
115115

116116
case listMsgDeleteResult[TRecord]:
117117
if msg.err != nil {
118-
return messagepopup.Open(messagepopup.Error, "Error deleting "+m.crud.Texts.EntityNameSingular+":\n"+msg.err.Error(), nil)
118+
return messagepopup.Open(messagepopup.Error, "Error deleting "+m.crud.Texts.EntityNameSingular()+":\n"+msg.err.Error(), nil)
119119
}
120120
// full reload
121121
if m.crud.listReloadAfterChange {
@@ -137,7 +137,7 @@ func (m *ListModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter]) U
137137
case key.Matches(msg, ListBaseKeyMap.Edit):
138138
selectedRecord := m.selectedRecord()
139139
if selectedRecord == nil {
140-
return messagepopup.Open(messagepopup.Info, "Please select a "+m.crud.Texts.EntityNameSingular+" to edit.", nil)
140+
return messagepopup.Open(messagepopup.Info, "Please select a "+m.crud.Texts.EntityNameSingular()+" to edit.", nil)
141141
}
142142
return m.crud.routerControll.Push(util.ModelPointer(NewUpdate(
143143
m.crud,
@@ -147,15 +147,15 @@ func (m *ListModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter]) U
147147
case key.Matches(msg, ListBaseKeyMap.Delete):
148148
selectedRecord := m.selectedRecord()
149149
if selectedRecord == nil {
150-
return messagepopup.Open(messagepopup.Info, "Please select a "+m.crud.Texts.EntityNameSingular+" to delete.", nil)
150+
return messagepopup.Open(messagepopup.Info, "Please select a "+m.crud.Texts.EntityNameSingular()+" to delete.", nil)
151151
}
152152
return choicepopup.Open(
153-
"Do you realy want to delete this "+m.crud.Texts.EntityNameSingular+"?",
153+
"Do you realy want to delete this "+m.crud.Texts.EntityNameSingular()+"?",
154154
choicepopup.Choices{
155155
{Name: "Cancel", Cmd: nil, KeyBindings: keys.KeyBindingList{keys.Cancel()}},
156156
{Name: "Delete", Cmd: progresspopup.Open(
157157
progresspopup.Spinner,
158-
"Deleting "+m.crud.Texts.EntityNameSingular,
158+
"Deleting "+m.crud.Texts.EntityNameSingular(),
159159
func(ctx context.Context, _ progresspopup.ProgressChan) tea.Cmd {
160160
err := m.crud.deleteRecord(ctx, m.crud.getRecordId(*selectedRecord))
161161
return func() tea.Msg {
@@ -204,7 +204,7 @@ func (m *ListModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter]) F
204204
m.focussed = true
205205
m.table.Focus()
206206
return tea.Batch(
207-
windowtitle.Announce(m.crud.Texts.EntityNameMultiple),
207+
windowtitle.Announce(m.crud.Texts.EntityNameMultiple()),
208208
util.AnnounceKeyMapCmd(parentKeyMap, ListBaseKeyMap, m.crud.listGlobalKeyMap),
209209
)
210210
}
@@ -221,7 +221,7 @@ var _ util.Model = (*ListModel[any, any, any, any, any])(nil)
221221
func (m *ListModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter]) reload() tea.Cmd {
222222
return progresspopup.Open(
223223
progresspopup.Spinner,
224-
"Loading "+m.crud.Texts.EntityNameMultiple, func(ctx context.Context, pc progresspopup.ProgressChan) tea.Cmd {
224+
"Loading "+m.crud.Texts.EntityNameMultiple(), func(ctx context.Context, pc progresspopup.ProgressChan) tea.Cmd {
225225
records, err := m.crud.getRecords(ctx, util.NewZero[TFilter]())
226226
return util.TeaMsgToCmd(listMsgReloaded[TRecord]{records, err})
227227
},

ui/tui/helpers/crud/new.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func WithListDuplicateAction[
167167
](recordToRecordCreate func(record TRecord) TRecordCreate) Option[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter] {
168168
return WithListAction(func(ctx ListMsgInterceptorCtx[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter]) tea.Cmd {
169169
if ctx.SelectedRecord == nil {
170-
return messagepopup.Open(messagepopup.Error, "Please select a "+ctx.Crud.Texts.EntityNameSingular+" to duplicate.", nil)
170+
return messagepopup.Open(messagepopup.Error, "Please select a "+ctx.Crud.Texts.EntityNameSingular()+" to duplicate.", nil)
171171
}
172172

173173
return ctx.Crud.OpenCreate(recordToRecordCreate(*ctx.SelectedRecord))

ui/tui/helpers/crud/update_model.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func (m *UpdateModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter])
7171
form.WithOnSubmit(func(result TRecordUpdate, err error) (tea.Cmd, bool) {
7272
return progresspopup.Open(
7373
progresspopup.Spinner,
74-
"Updating "+m.crud.Texts.EntityNameSingular,
74+
"Updating "+m.crud.Texts.EntityNameSingular(),
7575
func(ctx context.Context, _ progresspopup.ProgressChan) tea.Cmd {
7676
record, err := m.crud.updateRecord(ctx, m.crud.getRecordId(m.record), result)
7777
return util.TeaMsgToCmd(updateMsgUpdateResult[TRecord]{record, err})
@@ -116,7 +116,7 @@ func (m *UpdateModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter])
116116
case updateMsgUpdateResult[TRecord]:
117117
if msg.err != nil {
118118
if msg.err != nil {
119-
return messagepopup.Open(messagepopup.Error, "Error updating "+m.crud.Texts.EntityNameSingular+":\n"+msg.err.Error(), nil)
119+
return messagepopup.Open(messagepopup.Error, "Error updating "+m.crud.Texts.EntityNameSingular()+":\n"+msg.err.Error(), nil)
120120
}
121121
return nil
122122
}
@@ -143,7 +143,7 @@ func (m *UpdateModel[TRecord, TRecordCreate, TRecordUpdate, TRecordId, TFilter])
143143
}
144144
m.focussed = true
145145
return tea.Batch(
146-
windowtitle.Announce(m.crud.Texts.EntityNameMultiple),
146+
windowtitle.Announce(m.crud.Texts.EntityNameMultiple()),
147147
m.form.Focus(parentKeyMap),
148148
)
149149
}

ui/tui/views/account/crud.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,10 @@ func formRows[T comparable]() []form.FormOpt[T] {
9292

9393
func NewCrud(c client.Client, rc router.Controll) *crud.Crud[recordT, recordCreateT, recordUpdateT, recordIdT, filterT] {
9494
return crud.New(
95-
crud.Texts{EntityNameSingular: "Account", EntityNameMultiple: "Accounts"},
95+
crud.Texts{
96+
EntityNameSingular: func() string { return "Account" },
97+
EntityNameMultiple: func() string { return "Accounts" },
98+
},
9699

97100
func(record recordT) recordIdT { return record.account.Id },
98101
func(ctx context.Context, filter filterT) ([]recordT, error) {
@@ -208,7 +211,7 @@ func NewCrud(c client.Client, rc router.Controll) *crud.Crud[recordT, recordCrea
208211
crud.WithListAction(
209212
func(ctx crud.ListMsgInterceptorCtx[recordT, recordCreateT, recordUpdateT, recordIdT, filterT]) tea.Cmd {
210213
if ctx.SelectedRecord == nil {
211-
return messagepopup.Open(messagepopup.Error, "Please select a "+ctx.Crud.Texts.EntityNameSingular+".", nil)
214+
return messagepopup.Open(messagepopup.Error, "Please select a "+ctx.Crud.Texts.EntityNameSingular()+".", nil)
212215
}
213216

214217
ctx.Crud.ReloadOnNextFocus = true

ui/tui/views/linkaccount/crud.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,10 @@ func formRows[T comparable]() []form.FormOpt[T] {
5252

5353
func NewCrud(c client.Client, rc router.Controll, account client.Account) *crud.Crud[recordT, recordCreateT, recordUpdateT, recordIdT, filterT] {
5454
return crud.New(
55-
crud.Texts{EntityNameSingular: "Link", EntityNameMultiple: "Links"},
55+
crud.Texts{
56+
EntityNameSingular: func() string { return "Link" },
57+
EntityNameMultiple: func() string { return "Links" },
58+
},
5659

5760
func(record recordT) recordIdT { return record.link.Id },
5861
func(ctx context.Context, filter filterT) ([]recordT, error) {

ui/tui/views/linkpublickey/crud.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,10 @@ func formRows[T comparable](c client.Client) func() []form.FormOpt[T] {
9898

9999
func NewCrud(c client.Client, rc router.Controll, publicKey client.PublicKey) *crud.Crud[recordT, recordCreateT, recordUpdateT, recordIdT, filterT] {
100100
return crud.New(
101-
crud.Texts{EntityNameSingular: "Link", EntityNameMultiple: "Links"},
101+
crud.Texts{
102+
EntityNameSingular: func() string { return "Link" },
103+
EntityNameMultiple: func() string { return "Links" },
104+
},
102105

103106
func(record recordT) recordIdT { return record.link.Id },
104107
func(ctx context.Context, filter filterT) ([]recordT, error) {

ui/tui/views/publickey/crud.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,10 @@ func publicKeyToRecord(ctx context.Context, c client.Client, publicKey client.Pu
9292

9393
func NewCrud(c client.Client, rc router.Controll) *crud.Crud[recordT, recordCreateT, recordUpdateT, recordIdT, filterT] {
9494
return crud.New(
95-
crud.Texts{EntityNameSingular: "Public Key", EntityNameMultiple: "Public Keys"},
95+
crud.Texts{
96+
EntityNameSingular: func() string { return "Public Key" },
97+
EntityNameMultiple: func() string { return "Public Keys" },
98+
},
9699

97100
func(record recordT) recordIdT { return record.publicKey.Id },
98101
func(ctx context.Context, filter filterT) ([]recordT, error) {
@@ -234,7 +237,7 @@ func NewCrud(c client.Client, rc router.Controll) *crud.Crud[recordT, recordCrea
234237
crud.WithListAction(
235238
func(ctx crud.ListMsgInterceptorCtx[recordT, recordCreateT, recordUpdateT, recordIdT, filterT]) tea.Cmd {
236239
if ctx.SelectedRecord == nil {
237-
return messagepopup.Open(messagepopup.Error, "Please select a "+ctx.Crud.Texts.EntityNameSingular+".", nil)
240+
return messagepopup.Open(messagepopup.Error, "Please select a "+ctx.Crud.Texts.EntityNameSingular()+".", nil)
238241
}
239242

240243
ctx.Crud.ReloadOnNextFocus = true

0 commit comments

Comments
 (0)