Skip to content

Commit

Permalink
Fix - Custom field validation on form submission
Browse files Browse the repository at this point in the history
  • Loading branch information
cocojoe committed Sep 12, 2017
1 parent 9973259 commit 09977da
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 3 deletions.
3 changes: 2 additions & 1 deletion Lock/DatabaseOnlyView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class DatabaseOnlyView: UIView, DatabaseView {

weak var identityField: InputField?
weak var passwordField: InputField?
var allFields: [InputField]?

// FIXME: Remove this from the view since it should not even know it exists
var navigator: Navigable?
Expand Down Expand Up @@ -143,13 +144,13 @@ class DatabaseOnlyView: UIView, DatabaseView {

self.identityField = showUsername ? form.usernameField : form.emailField
self.passwordField = form.passwordField
self.allFields = form.stackView.arrangedSubviews.map { $0 as? InputField }.filter { $0 != nil }.map { $0! }

if let passwordPolicyValidator = passwordPolicyValidator {
let passwordPolicyView = PolicyView(rules: passwordPolicyValidator.policy.rules)
passwordPolicyValidator.delegate = passwordPolicyView
let passwordIndex = form.stackView.arrangedSubviews.index(of: form.passwordField)
form.stackView.insertArrangedSubview(passwordPolicyView, at:passwordIndex!)

passwordPolicyView.isHidden = true
form.passwordField.errorLabel?.removeFromSuperview()
form.passwordField.onBeginEditing = { [weak self, weak passwordPolicyView] _ in
Expand Down
5 changes: 3 additions & 2 deletions Lock/DatabasePresenter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -178,9 +178,10 @@ class DatabasePresenter: Presentable, Loggable {
view.showSignUp(withUsername: self.database.requiresUsername, username: username, email: email, authCollectionView: authCollectionView, additionalFields: self.options.customSignupFields, passwordPolicyValidator: passwordPolicyValidator, showPassswordManager: self.passwordManager.available, showPassword: self.options.allowShowPassword)
let form = view.form
view.form?.onValueChange = self.handleInput
let action = { [weak form] (button: PrimaryButton) in
let action = { [weak form, weak view] (button: PrimaryButton) in
self.messagePresenter?.hideCurrent()
self.logger.info("perform sign up for email \(self.creator.email.verbatim())")
self.logger.info("Perform sign up for email \(self.creator.email.verbatim())")
view?.allFields?.forEach { self.handleInput($0) }
let interactor = self.creator
button.inProgress = true
interactor.create { createError, loginError in
Expand Down
1 change: 1 addition & 0 deletions Lock/DatabaseView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ protocol DatabaseView: class, View {
weak var showPasswordButton: IconButton? { get }
weak var identityField: InputField? { get }
weak var passwordField: InputField? { get }
var allFields: [InputField]? { get }

var traitCollection: UITraitCollection { get }

Expand Down

0 comments on commit 09977da

Please sign in to comment.