aboutsummaryrefslogtreecommitdiff
path: root/go-src/windowsHelpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'go-src/windowsHelpers.go')
-rw-r--r--go-src/windowsHelpers.go36
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) {