diff options
| -rw-r--r-- | go-src/windows.go | 25 | ||||
| -rw-r--r-- | go-src/windowsHelpers.go | 15 |
2 files changed, 18 insertions, 22 deletions
diff --git a/go-src/windows.go b/go-src/windows.go index 89294a1..73f8733 100644 --- a/go-src/windows.go +++ b/go-src/windows.go @@ -32,16 +32,14 @@ func StartupWindow(...string) { func loginWindow(values ...string) { // Takes form user input - inputs := formWindow(loginNavTitle, StartupWindow, + var inputs []string + formWindow(loginNavTitle, StartupWindow, []formInput{ {usernameInName, inputBackSpec, nil}, {passwordInName, "", nil}, }, - values..., + &inputs, ) - if len(inputs) == 0 { - return - } if !usernameExists(inputs[0]) { defer showError(valueDoesNotExist(usernameInName), loginWindow) @@ -56,17 +54,16 @@ func loginWindow(values ...string) { } func registerWindow(values ...string) { - inputs := formWindow(registerNavTitle, StartupWindow, + var inputs []string + formWindow(registerNavTitle, StartupWindow, []formInput{ {usernameInName, usernameSpec, stringValidUsername}, {passwordInName, passwordSpec, stringValidPassword}, {nameInName, nameSpec, stringValidName}, }, - values..., + &inputs, ) - if len(inputs) == 0 { - return - } + if usernameExists(inputs[0]) { defer showError(valueAlreadyTaken(usernameInName), registerWindow, values...) return @@ -126,16 +123,14 @@ func chatsWindow(values ...string) { } func createChatWindow(values ...string) { - inputs := formWindow(createChatNavTitle, chatsWindow, + var inputs []string + formWindow(createChatNavTitle, chatsWindow, []formInput{ {chatNameInName, chatNameSpec, stringValidChatName}, {chatDescInName, chatDescSpec, stringValidChatDesc}, }, - values..., + &inputs, ) - if len(inputs) == 0 { - return - } if chatNameExists(inputs[0]) { defer showError(valueAlreadyTaken(chatNameInName), createChatWindow, values...) return diff --git a/go-src/windowsHelpers.go b/go-src/windowsHelpers.go index 7d2e35c..c5845ea 100644 --- a/go-src/windowsHelpers.go +++ b/go-src/windowsHelpers.go @@ -121,16 +121,15 @@ type formInput struct { validationFunc func(string) bool } -func formWindow(boxTitle string, backWindow window, formInputs []formInput, currentValues ...string) (userInputs []string) { - userInputs = currentValues +func formWindow(boxTitle string, backWindow window, formInputs []formInput, output *[]string) { // Go through all inputs - for i, v := range formInputs[len(currentValues):] { + for i, v := range formInputs[len(*output):] { csi.ClearScreen() ui.NormalBox(true, boxTitle) // Show filled input fields - for j, va := range userInputs { + for j, va := range *output { ui.InputFieldFilled(formInputs[j].name, va) } @@ -148,7 +147,7 @@ func formWindow(boxTitle string, backWindow window, formInputs []formInput, curr // If input data isn't valid, show an error and the same screen if !v.validationFunc(input) { formCallback := func(...string) { - defer formWindow(boxTitle, backWindow, formInputs, userInputs...) + defer formWindow(boxTitle, backWindow, formInputs, output) } defer showError(invalidValueFor(v.name), formCallback) return @@ -156,7 +155,7 @@ func formWindow(boxTitle string, backWindow window, formInputs []formInput, curr } // Add current input as a filled input - userInputs = append(userInputs, input) + *output = append(*output, input) } return } @@ -177,7 +176,9 @@ func validatedMultiForm(input string, returnWindow window, props ...multiFormPro if v.propInd == propInd { triedUpdate = true - values := formWindow(v.editTitle, returnWindow, append(inputs, v.formInp)) + var values []string + formWindow(v.editTitle, returnWindow, append(inputs, v.formInp), &values) + updateSuccessful = v.updateF(values) if updateSuccessful && v.postSucUpdateF != nil { |
