diff options
Diffstat (limited to 'go-src/windowsHelpers.go')
| -rw-r--r-- | go-src/windowsHelpers.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/go-src/windowsHelpers.go b/go-src/windowsHelpers.go index 761e0d2..f59f34f 100644 --- a/go-src/windowsHelpers.go +++ b/go-src/windowsHelpers.go @@ -161,6 +161,42 @@ func formWindow(boxTitle string, backWindow window, formInputs []formInput, curr return } +type multiFormProp struct { + propInd int + editTitle string + formInp formInput + updateF func([]string) bool + postSucUpdateF func([]string) +} + +func validatedMultiForm(input string, returnWindow window, props ...multiFormProp) { + propInd, _ := strconv.Atoi(input) + inputs, triedUpdate, updateSuccessful := []formInput{{currentPasswordInName, inputBackSpec, nil}}, false, false + + for _, v := range props { + if v.propInd == propInd { + triedUpdate = true + + values := formWindow(v.editTitle, returnWindow, append(inputs, v.formInp)) + updateSuccessful = v.updateF(values) + + if updateSuccessful && v.postSucUpdateF != nil { + v.postSucUpdateF(values) + } + break + } + } + + if !triedUpdate { + defer showError(invalidCommand, returnWindow) + } + if !updateSuccessful { + defer showError(invalidArgument, returnWindow) + } else { + defer returnWindow() + } +} + /* Error */ func showError(message string, callback window, callbackData ...string) { |
