From 085c990475044a4d40077540679702181ce4271f Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Fri, 7 May 2021 12:05:11 -0400 Subject: [PATCH 1/4] fix --- MVMCoreUI/BaseClasses/Button.swift | 2 +- .../BaseControllers/ViewController.swift | 6 ++-- MVMCoreUI/FormUIHelpers/FormValidator.swift | 29 ++++--------------- 3 files changed, 10 insertions(+), 27 deletions(-) diff --git a/MVMCoreUI/BaseClasses/Button.swift b/MVMCoreUI/BaseClasses/Button.swift index 1802e25d..a94cafe8 100644 --- a/MVMCoreUI/BaseClasses/Button.swift +++ b/MVMCoreUI/BaseClasses/Button.swift @@ -79,7 +79,7 @@ public typealias ButtonAction = (Button) -> () addActionBlock(event: .touchUpInside) { [weak self] sender in guard let self = self, let actionModel = actionModel else { return } - Self.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData) + Self.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData, sourceModel: self.model) } } diff --git a/MVMCoreUI/BaseControllers/ViewController.swift b/MVMCoreUI/BaseControllers/ViewController.swift index 8a22e23a..3cbd2e50 100644 --- a/MVMCoreUI/BaseControllers/ViewController.swift +++ b/MVMCoreUI/BaseControllers/ViewController.swift @@ -449,8 +449,8 @@ import UIKit } /// Override this method to avoid adding form params. - open func addFormParams(_ requestParameters: MVMCoreRequestParameters) { - formValidator?.addFormParams(requestParameters: requestParameters) + open func addFormParams(requestParameters: MVMCoreRequestParameters, actionInformation: [AnyHashable: Any]?, additionalData: [AnyHashable: Any]?) { + formValidator?.addFormParams(requestParameters: requestParameters, model: additionalData?[KeySourceModel] as? MoleculeModelProtocol & FormFieldProtocol) } public func handleFieldErrors(_ fieldErrors: [Any]?, loadObject: MVMCoreLoadObject) { @@ -472,7 +472,7 @@ import UIKit //-------------------------------------------------- open func handleOpenPage(for requestParameters: MVMCoreRequestParameters, actionInformation: [AnyHashable: Any]?, additionalData: [AnyHashable: Any]?) { - addFormParams(requestParameters) + addFormParams(requestParameters: requestParameters, actionInformation: actionInformation, additionalData: additionalData) requestParameters.parentPageType = loadObject?.pageJSON?.optionalStringForKey("parentPageType") var pageForwardedData = additionalData ?? [:] executeBehaviors { (behavior: PageLocalDataShareBehavior) in diff --git a/MVMCoreUI/FormUIHelpers/FormValidator.swift b/MVMCoreUI/FormUIHelpers/FormValidator.swift index 82022b4c..28029397 100644 --- a/MVMCoreUI/FormUIHelpers/FormValidator.swift +++ b/MVMCoreUI/FormUIHelpers/FormValidator.swift @@ -112,20 +112,19 @@ import MVMCore // MARK: Form params // TODO: Temporary hacks, rewrite architecture to support this. -@objc public extension FormValidator { +public extension FormValidator { - @objc func addFormParams(requestParameters: MVMCoreRequestParameters) { - let groupName = getGroupName(forPageType: requestParameters.pageType) ?? FormValidator.defaultGroupName - let formParams = self.getFormParams(forGroup: groupName) + func addFormParams(requestParameters: MVMCoreRequestParameters, model: (MoleculeModelProtocol & FormFieldProtocol)?) { + let groupName = model?.groupName ?? FormValidator.defaultGroupName + let formParams = getFormParams(forGroup: groupName) requestParameters.add(formParams) } - @objc func getFormParams( forGroup groupName: String) -> [String: Any] { + @objc func getFormParams(forGroup groupName: String) -> [String: Any] { var extraParam: [String: Any] = [:] for (fieldKey, field) in fields { - if let formFieldValue = field.formFieldValue(), - groupName == field.groupName { + if let formFieldValue = field.formFieldValue(), groupName == field.groupName { extraParam[fieldKey] = formFieldValue } } @@ -133,19 +132,3 @@ import MVMCore return extraParam } } - -// TODO: Temporary hacks, rewrite architecture to support this. -public extension FormValidator { - - func getGroupName(forPageType pageType: String?) -> String? { - - for actionItem in groupWatchers { - if let buttonModel = actionItem as? ButtonModel, - pageType == (buttonModel.action as? ActionOpenPageProtocol)?.pageType { - return buttonModel.groupName - } - } - - return nil - } -} From 9998a514f3f28077a2eb3bea2bd2885b4d2a0883 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Mon, 17 May 2021 16:31:23 -0400 Subject: [PATCH 2/4] get groupName from model --- MVMCoreUI/FormUIHelpers/FormValidator.swift | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/MVMCoreUI/FormUIHelpers/FormValidator.swift b/MVMCoreUI/FormUIHelpers/FormValidator.swift index 28029397..f27bb968 100644 --- a/MVMCoreUI/FormUIHelpers/FormValidator.swift +++ b/MVMCoreUI/FormUIHelpers/FormValidator.swift @@ -114,8 +114,8 @@ import MVMCore // TODO: Temporary hacks, rewrite architecture to support this. public extension FormValidator { - func addFormParams(requestParameters: MVMCoreRequestParameters, model: (MoleculeModelProtocol & FormFieldProtocol)?) { - let groupName = model?.groupName ?? FormValidator.defaultGroupName + func addFormParams(requestParameters: MVMCoreRequestParameters, model: (MoleculeModelProtocol & FormItemProtocol)?) { + let groupName = model?.groupName ?? getGroupName(forPageType: requestParameters.pageType) ?? FormValidator.defaultGroupName let formParams = getFormParams(forGroup: groupName) requestParameters.add(formParams) } @@ -132,3 +132,20 @@ public extension FormValidator { return extraParam } } + +// TODO: Temporary hacks, rewrite architecture to support this. +public extension FormValidator { + + func getGroupName(forPageType pageType: String?) -> String? { + + for actionItem in groupWatchers { + if let buttonModel = actionItem as? ButtonModel, + pageType == (buttonModel.action as? ActionOpenPageProtocol)?.pageType { + return buttonModel.groupName + } + } + + return nil + } +} + From 150db410768574f8c43595380ca667d364627d04 Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Mon, 17 May 2021 17:03:29 -0400 Subject: [PATCH 3/4] remvoe newline --- MVMCoreUI/FormUIHelpers/FormValidator.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MVMCoreUI/FormUIHelpers/FormValidator.swift b/MVMCoreUI/FormUIHelpers/FormValidator.swift index f27bb968..34623976 100644 --- a/MVMCoreUI/FormUIHelpers/FormValidator.swift +++ b/MVMCoreUI/FormUIHelpers/FormValidator.swift @@ -124,7 +124,8 @@ public extension FormValidator { var extraParam: [String: Any] = [:] for (fieldKey, field) in fields { - if let formFieldValue = field.formFieldValue(), groupName == field.groupName { + if let formFieldValue = field.formFieldValue(), + groupName == field.groupName { extraParam[fieldKey] = formFieldValue } } From 6a08f57626f482760d6e4f1082da4891afc6e4bf Mon Sep 17 00:00:00 2001 From: "Suresh, Kamlesh" Date: Mon, 17 May 2021 17:11:55 -0400 Subject: [PATCH 4/4] FormFieldProtocol to FormItemProtocol --- MVMCoreUI/BaseControllers/ViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MVMCoreUI/BaseControllers/ViewController.swift b/MVMCoreUI/BaseControllers/ViewController.swift index 3cbd2e50..cd67632f 100644 --- a/MVMCoreUI/BaseControllers/ViewController.swift +++ b/MVMCoreUI/BaseControllers/ViewController.swift @@ -450,7 +450,7 @@ import UIKit /// Override this method to avoid adding form params. open func addFormParams(requestParameters: MVMCoreRequestParameters, actionInformation: [AnyHashable: Any]?, additionalData: [AnyHashable: Any]?) { - formValidator?.addFormParams(requestParameters: requestParameters, model: additionalData?[KeySourceModel] as? MoleculeModelProtocol & FormFieldProtocol) + formValidator?.addFormParams(requestParameters: requestParameters, model: additionalData?[KeySourceModel] as? MoleculeModelProtocol & FormItemProtocol) } public func handleFieldErrors(_ fieldErrors: [Any]?, loadObject: MVMCoreLoadObject) {