Skip to content

Commit

Permalink
Added better UI message handling.
Browse files Browse the repository at this point in the history
  • Loading branch information
murat-cileli committed Jun 20, 2024
1 parent e74a359 commit 9d72a34
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 9 deletions.
22 changes: 17 additions & 5 deletions src/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,25 @@ func (database *databaseType) Connect() error {
return nil
}

func (database *databaseType) Query(query string, addToHistory bool) (*sql.Rows, error) {
func (database *databaseType) Query(query string, isCustomQuery bool) (*sql.Rows, error) {
if isCustomQuery {
pageMainMessage.show(tview.AlignLeft, "Querying...", "[yellow::l]Executing query...[-:-:-:-] ")
app.Sync().ForceDraw()
}

rows, err := database.DB.Query(query)

if err != nil {
pageMainMessage.show(tview.AlignLeft, "", "[red]Error Message:[-:-:-:-] "+err.Error()+"\n\n[yellow]Executed Query[-:-:-:-]: "+query)
} else if addToHistory {
queryHistory.add(query)
queryHistory.resetIndex()
pageMainMessage.show(tview.AlignLeft, "", "[red]ERROR![-:-:-:-] "+err.Error()+"\n\n[yellow]Executed Query[-:-:-:-]: "+query)
} else {
if isCustomQuery {
queryHistory.add(query)
queryHistory.resetIndex()
}
columns, errColumns := rows.Columns()
if errColumns == nil && len(columns) == 0 {
pageMainMessage.show(tview.AlignLeft, "", "[green]Query executed successfully![-:-:-:-] No rows returned.\n\n[green]Executed Query[-:-:-:-]: "+query)
}
}

return rows, err
Expand Down
10 changes: 10 additions & 0 deletions src/page_main.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ func (pageMain *pageMainType) build() {
flexMain.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
if event.Rune() == 'w' && event.Modifiers() == tcell.ModAlt {
app.SetFocus(listDatabaseObjects)
return nil
}
if event.Rune() == 'q' && event.Modifiers() == tcell.ModAlt {
app.SetFocus(textAreaQuery)
Expand All @@ -58,16 +59,23 @@ func (pageMain *pageMainType) build() {
app.SetFocus(tableQueryResults)
tableQueryResults.SetSelectable(true, false)
}
if event.Rune() == 'h' && event.Modifiers() == tcell.ModAlt {
pagesMain.SwitchToPage("message")
app.SetFocus(textViewMessage)
pageMainMessage.show(tview.AlignLeft, "", "helpText")
}
return event
})

textAreaQuery.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
if event.Key() == tcell.KeyEnter && event.Modifiers() == tcell.ModAlt {
event = nil
textAreaQuery.SetDisabled(true)
results, err := database.Query(textAreaQuery.GetText(), true)
if err == nil {
pageMain.loadQueryResults(results)
}
textAreaQuery.SetDisabled(false)
} else if event.Key() == tcell.KeyUp && event.Modifiers() == tcell.ModAlt {
queryHistory := queryHistory.back()
if queryHistory != "" {
Expand Down Expand Up @@ -150,6 +158,8 @@ func (pageMain *pageMainType) loadQueryResults(rows *sql.Rows) {
return
}

pagesMain.SwitchToPage("tableQueryResults")

for i, column := range columns {
tableQueryResults.SetCell(
0, i,
Expand Down
9 changes: 5 additions & 4 deletions src/page_main_message.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package main

import (
"github.com/gdamore/tcell/v2"
"github.com/rivo/tview"
)

Expand All @@ -15,7 +14,6 @@ var textViewMessage *tview.TextView
func (pageMainMessage *pageMainMessageType) build() {
textViewMessage = tview.NewTextView()
textViewMessage.SetBorder(true)
textViewMessage.SetBorderColor(tcell.ColorDarkGray)
textViewMessage.SetBorderPadding(1, 1, 1, 1)
textViewMessage.SetTitleAlign(tview.AlignCenter)
textViewMessage.SetRegions(true)
Expand Down Expand Up @@ -55,7 +53,7 @@ func (pageMainMessage *pageMainMessageType) build() {
ABOUT
DBee is a free and open-source project maintained by Murat Çileli and other contributors. Feel free report issues or submit feature requests on GitHub. Thank you for using DBee!
DBee is a free and open-source project maintained by contributors. Feel free report issues or submit feature requests on GitHub. Thank you for using DBee!
[yellow]GitHub[-:-:-:-]: [:::https://github.com/murat-cileli/dbee]https://github.com/murat-cileli/dbee[:::-]
`
Expand All @@ -68,9 +66,12 @@ func (pageMainMessage *pageMainMessageType) show(textAlign int, title, message s
switch message {
case "helpText":
textViewMessage.SetTextAlign(tview.AlignLeft)
textViewMessage.SetTitle("DBee v0.2")
textViewMessage.SetTitle("DBee v0.2 Help (alt+h)")
textViewMessage.SetText(pageMainMessage.helpText)
default:
if title == "" {
title = "System Message"
}
textViewMessage.SetTextAlign(textAlign)
textViewMessage.SetTitle(title)
textViewMessage.SetText(message)
Expand Down

0 comments on commit 9d72a34

Please sign in to comment.