mirror of
https://github.com/wisplite/parchment.git
synced 2026-06-27 13:47:08 -05:00
add upload tools page for selecting packages or syncing
This commit is contained in:
@@ -27,11 +27,11 @@ func AppUI(app *tview.Application, currentFrame **tview.Frame, state *UIState, d
|
|||||||
SetError(state, "No cardputer connected")
|
SetError(state, "No cardputer connected")
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
SetSuccess(state, "Upload started")
|
SetError(state, "")
|
||||||
}
|
}
|
||||||
newFrame := UploadUI(app, currentFrame, state, device)
|
newFrame := UploadToolsUI(app, currentFrame, state, device)
|
||||||
*currentFrame = newFrame
|
*currentFrame = newFrame
|
||||||
state.Page = "upload"
|
state.Page = "upload-tools"
|
||||||
app.SetRoot(newFrame, true)
|
app.SetRoot(newFrame, true)
|
||||||
})
|
})
|
||||||
list.AddItem("Live Refresh", "Monitors for changes and automatically uploads to the Cardputer (WIP)", 'l', nil)
|
list.AddItem("Live Refresh", "Monitors for changes and automatically uploads to the Cardputer (WIP)", 'l', nil)
|
||||||
@@ -53,6 +53,22 @@ func SetSuccess(state *UIState, text string) {
|
|||||||
state.Success = text
|
state.Success = text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UploadToolsUI(app *tview.Application, currentFrame **tview.Frame, state *UIState, device *Device) *tview.Frame {
|
||||||
|
list := tview.NewList()
|
||||||
|
list.AddItem("Upload Package", "Uploads a chosen .cpkg file to the connected Cardputer", 'u', nil)
|
||||||
|
list.AddItem("Sync Project", "Automatically packages and uploads the current project", 's', nil)
|
||||||
|
list.AddItem("Back", "Go back to the home page", 'b', func() {
|
||||||
|
newFrame := AppUI(app, currentFrame, state, device)
|
||||||
|
*currentFrame = newFrame
|
||||||
|
state.Page = "home"
|
||||||
|
app.SetRoot(newFrame, true)
|
||||||
|
})
|
||||||
|
frame := tview.NewFrame(list)
|
||||||
|
frame.SetBorders(0, 0, 0, 0, 0, 0)
|
||||||
|
frame.AddText("Upload Tools", true, tview.AlignLeft, tcell.ColorWhite)
|
||||||
|
return frame
|
||||||
|
}
|
||||||
|
|
||||||
func UploadUI(app *tview.Application, currentFrame **tview.Frame, state *UIState, device *Device) *tview.Frame {
|
func UploadUI(app *tview.Application, currentFrame **tview.Frame, state *UIState, device *Device) *tview.Frame {
|
||||||
list := tview.NewFlex()
|
list := tview.NewFlex()
|
||||||
list.SetDirection(tview.FlexRow)
|
list.SetDirection(tview.FlexRow)
|
||||||
@@ -62,6 +78,37 @@ func UploadUI(app *tview.Application, currentFrame **tview.Frame, state *UIState
|
|||||||
progress.SetBorder(true)
|
progress.SetBorder(true)
|
||||||
progress.SetTitle("Upload Progress")
|
progress.SetTitle("Upload Progress")
|
||||||
list.AddItem(progress, 0, 1, false)
|
list.AddItem(progress, 0, 1, false)
|
||||||
|
go func() {
|
||||||
|
// check if a package.json file exists and load it
|
||||||
|
fsys := os.DirFS(".")
|
||||||
|
pkgData, err := loadPackageJSON(fsys)
|
||||||
|
if err != nil { // if the package.json file does not exist, show an error modal
|
||||||
|
modal := tview.NewModal()
|
||||||
|
modal.SetText("Failed to load package.json")
|
||||||
|
modal.AddButtons([]string{"OK"})
|
||||||
|
modal.SetDoneFunc(func(buttonIndex int, buttonLabel string) {
|
||||||
|
newFrame := AppUI(app, currentFrame, state, device)
|
||||||
|
*currentFrame = newFrame
|
||||||
|
state.Page = "home"
|
||||||
|
app.SetRoot(newFrame, true)
|
||||||
|
})
|
||||||
|
app.SetRoot(modal, true)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if pkgData == nil { // if the package.json file is empty, show an error modal
|
||||||
|
modal := tview.NewModal()
|
||||||
|
modal.SetText("Failed to load package.json")
|
||||||
|
modal.AddButtons([]string{"OK"})
|
||||||
|
modal.SetDoneFunc(func(buttonIndex int, buttonLabel string) {
|
||||||
|
newFrame := AppUI(app, currentFrame, state, device)
|
||||||
|
*currentFrame = newFrame
|
||||||
|
state.Page = "home"
|
||||||
|
app.SetRoot(newFrame, true)
|
||||||
|
})
|
||||||
|
app.SetRoot(modal, true)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}()
|
||||||
return tview.NewFrame(list)
|
return tview.NewFrame(list)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,6 +156,8 @@ func UpdateDeviceStatus(app *tview.Application, frame *tview.Frame, state *UISta
|
|||||||
frame.AddText("Package Tools", true, tview.AlignLeft, tcell.ColorWhite)
|
frame.AddText("Package Tools", true, tview.AlignLeft, tcell.ColorWhite)
|
||||||
case "upload":
|
case "upload":
|
||||||
frame.AddText("Uploading to Cardputer - Do not disconnect the cardputer until the upload is complete", true, tview.AlignLeft, tcell.ColorWhite)
|
frame.AddText("Uploading to Cardputer - Do not disconnect the cardputer until the upload is complete", true, tview.AlignLeft, tcell.ColorWhite)
|
||||||
|
case "upload-tools":
|
||||||
|
frame.AddText("Upload Tools", true, tview.AlignLeft, tcell.ColorWhite)
|
||||||
}
|
}
|
||||||
if state.Error != "" {
|
if state.Error != "" {
|
||||||
frame.AddText(state.Error, false, tview.AlignRight, tcell.ColorRed)
|
frame.AddText(state.Error, false, tview.AlignRight, tcell.ColorRed)
|
||||||
|
|||||||
Reference in New Issue
Block a user