2
1
Fork 0

Adds check to quit if there are unsaved changes

This commit is contained in:
sloum 2021-04-30 14:39:23 -07:00
parent 040d8f2bd1
commit 2776472acd
4 changed files with 22 additions and 1 deletions

View File

@ -133,6 +133,7 @@ func (b *Board) CreateLane(name string) {
if b.Current < 0 {
b.Current = 0
}
unsavedChanges = true
b.SetMessage("Lane created", false)
}
@ -490,6 +491,7 @@ func (b *Board) DeleteLane() {
if b.Current > len(b.Lanes)-1 {
b.Current -= 1
}
unsavedChanges = true
b.SetMessage("Lane deleted", false)
}
@ -604,6 +606,7 @@ func (b *Board) Regex(args []string) {
b.Lanes[b.Current].Stories[b.Lanes[b.Current].Current].BuildStorySlice(b.width)
b.Lanes[b.Current].Stories[b.Lanes[b.Current].Current].Draw(b)
}
unsavedChanges = true
b.SetMessage("Regular expression applied", false)
}
@ -647,5 +650,6 @@ func (b *Board) Write(com []string) {
defer f.Close()
f.Write(j)
b.SetMessage("File written", false)
unsavedChanges = false
}

View File

@ -26,6 +26,7 @@ func (l *Lane) CreateStory(name string, b *Board) {
if l.Current < 0 {
l.Current = 0
}
unsavedChanges = true
b.SetMessage("Story created", false)
}
@ -113,6 +114,7 @@ func (l *Lane) DeleteStory(b *Board) {
l.Current -= 1
}
b.StoryOpen = false
unsavedChanges = true
b.SetMessage("Story deleted", false)
}
@ -126,6 +128,7 @@ func (l *Lane) Update(args []string, b *Board) {
break
}
l.Title = title
unsavedChanges = true
b.SetMessage("Lane title updated", false)
default:
b.SetMessage(fmt.Sprintf("Unknown lane location %q", args[0]), true)

10
main.go
View File

@ -36,6 +36,7 @@ import (
var board Board
var fp string
var unsavedChanges bool
func ExpandedAbsFilepath(p string) string {
if strings.HasPrefix(p, "~/") {
@ -95,7 +96,7 @@ func GetConfirmation(prefix string) (bool, error) {
}
ln = strings.ToLower(ln)
switch ln {
case "y", "yes", "yeah", "yup":
case "y", "yes", "yeah", "yup", "ya", "yaas", "aye":
return true, nil
default:
return false, nil
@ -160,6 +161,13 @@ func WrapText(text string, lineWidth int) string {
}
func Quit() {
if unsavedChanges {
quitAnyway, _ := GetConfirmation("There are unsaved changed. Quit anyway? (y, n) ")
if !quitAnyway {
board.SetMessage("Quitting with unsaved work cancelled", false)
return
}
}
termios.Restore()
fmt.Print(cursorEnd)
fmt.Print("\033[0m\033[?25h")

View File

@ -82,6 +82,7 @@ func (s *Story) AddComment(comment string, b *Board) {
}
s.Comments = append(s.Comments, Comment{u.Name, comment, time.Now()})
s.BuildStorySlice(b.width)
unsavedChanges = true
}
func (s *Story) BuildStorySlice(width int) {
@ -265,7 +266,9 @@ func (s *Story) Update(args []string, b *Board) {
b.SetMessage("Task state updated", false)
default:
b.SetMessage(fmt.Sprintf("Unknown story location %q", args[0]), true)
return
}
unsavedChanges = true
s.BuildStorySlice(b.width)
}
@ -287,6 +290,7 @@ func (s *Story) AddRemoveUser(users []string, b *Board) {
}
sort.Strings(s.Users)
s.Updated = time.Now()
unsavedChanges = true
b.SetMessage("Updated user list", false)
}
@ -297,6 +301,7 @@ func (s *Story) AddTask(body string, b *Board) {
s.Tasks = append(s.Tasks, Task{body, false})
s.Updated = time.Now()
s.BuildStorySlice(b.width)
unsavedChanges = true
b.SetMessage("Task added", false)
}
@ -331,6 +336,7 @@ func (s *Story) DeleteTask(id string, b *Board) {
}
s.Updated = time.Now()
s.BuildStorySlice(b.width)
unsavedChanges = true
b.SetMessage("Task deleted", false)
}