fix: make the shelf menus actually work

This commit is contained in:
2024-02-12 19:04:40 -06:00
parent a59702182f
commit 4e301c29fc
7 changed files with 43 additions and 9 deletions

View File

@@ -50,13 +50,13 @@ func (a *Shelves) cdelete() {
func (a *Shelves) cedit() {
selectedItem := a.getSelectedItem()
if selectedItem == nil {
a.displayError("DELETE SHELF ERROR", fmt.Errorf("no shelves to edit"))
a.displayError("SHELF EDIT ERROR", fmt.Errorf("no shelves to edit"))
return
}
shelf, err := a.client.RetrieveShelfByID(selectedItem.id)
if err != nil {
a.displayError("DELETE SHELF ERROR", fmt.Errorf("unable to retrieve shelf from server"))
a.displayError("SHELF EDIT ERROR", fmt.Errorf("unable to retrieve shelf from server"))
return
}
@@ -72,6 +72,11 @@ func (a *Shelves) edit() {
return
}
if createReq.BuildingID == nil {
a.displayError("SHELF EDIT ERROR", fmt.Errorf("shelf building cannot be empty"))
return
}
_, err := a.client.UpdateShelf(selectedItem.id, createReq)
if err != nil {
a.displayError("SHELF EDIT ERROR", err)
@@ -111,12 +116,12 @@ func (a *Shelves) delete() {
}
func (a *Shelves) crefresh() {
a.progressDialog.SetTitle("refreshing shelfs")
a.progressDialog.SetTitle("refreshing shelves")
a.progressDialog.Display()
ref := func() {
a.UpdateShelfData()
a.UpdateShelfData()
a.UpdateBuildingData()
a.progressDialog.Hide()
@@ -137,6 +142,11 @@ func (a *Shelves) create() {
return
}
if createReq.BuildingID == nil {
a.displayError("SHELF CREATE ERROR", fmt.Errorf("shelf building cannot be empty"))
return
}
_, err := a.client.CreateShelf(createReq)
if err != nil {
a.displayError("SHELF CREATE ERROR", err)

View File

@@ -42,7 +42,7 @@ func (a *Shelves) refresh() {
SetExpansion(a.shelfTableExpansions[2]).
SetAlign(tview.AlignLeft))
a.shelfTable.SetCell(row, 2,
a.shelfTable.SetCell(row, 3,
tview.NewTableCell(shelf.RoomNumber).
SetExpansion(a.shelfTableExpansions[3]).
SetAlign(tview.AlignLeft))

View File

@@ -136,6 +136,20 @@ func NewShelves(logger *zap.Logger, client *api.APIClient) *Shelves {
shelves.edit()
})
shelves.SetShelfListFunc(func() ([]types.ShelfLocation, error) {
if shlvr, err := shelves.client.RetrieveAllShelves(); err != nil {
return nil, err
} else {
var shlvo []types.ShelfLocation
for _, shelf := range shlvr {
shlvo = append(shlvo, *shelf)
}
return shlvo, nil
}
})
shelves.SetBuildingListFunc(func() (map[uint64]types.Building, error) {
if resp, err := shelves.client.RetrieveAllBuildings(); err != nil {
return nil, err

View File

@@ -47,7 +47,8 @@ type ShelfEditDialog struct {
logger *zap.Logger
client *api.APIClient
shelf *types.ShelfLocation
buildingList []*types.Building
buildingList []*types.Building
shelfNameField *tview.InputField
shelfRoomField *tview.InputField