Merge branch 'feature/form_group_fix' into 'develop'

Feature/form group fix

See merge request BPHV_MIPS/mvm_core_ui!716
This commit is contained in:
Suresh, Kamlesh Jain 2021-05-17 17:20:50 -04:00
commit 345fb971cc
3 changed files with 14 additions and 13 deletions

View File

@ -79,7 +79,7 @@ public typealias ButtonAction = (Button) -> ()
addActionBlock(event: .touchUpInside) { [weak self] sender in addActionBlock(event: .touchUpInside) { [weak self] sender in
guard let self = self, let actionModel = actionModel else { return } 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)
} }
} }

View File

@ -449,8 +449,8 @@ import UIKit
} }
/// Override this method to avoid adding form params. /// Override this method to avoid adding form params.
open func addFormParams(_ requestParameters: MVMCoreRequestParameters) { open func addFormParams(requestParameters: MVMCoreRequestParameters, actionInformation: [AnyHashable: Any]?, additionalData: [AnyHashable: Any]?) {
formValidator?.addFormParams(requestParameters: requestParameters) formValidator?.addFormParams(requestParameters: requestParameters, model: additionalData?[KeySourceModel] as? MoleculeModelProtocol & FormItemProtocol)
} }
public func handleFieldErrors(_ fieldErrors: [Any]?, loadObject: MVMCoreLoadObject) { 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]?) { 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") requestParameters.parentPageType = loadObject?.pageJSON?.optionalStringForKey("parentPageType")
var pageForwardedData = additionalData ?? [:] var pageForwardedData = additionalData ?? [:]
executeBehaviors { (behavior: PageLocalDataShareBehavior) in executeBehaviors { (behavior: PageLocalDataShareBehavior) in

View File

@ -117,20 +117,20 @@ import MVMCore
// MARK: Form params // MARK: Form params
// TODO: Temporary hacks, rewrite architecture to support this. // TODO: Temporary hacks, rewrite architecture to support this.
@objc public extension FormValidator { public extension FormValidator {
@objc func addFormParams(requestParameters: MVMCoreRequestParameters) { func addFormParams(requestParameters: MVMCoreRequestParameters, model: (MoleculeModelProtocol & FormItemProtocol)?) {
let groupName = getGroupName(forPageType: requestParameters.pageType) ?? FormValidator.defaultGroupName let groupName = model?.groupName ?? getGroupName(forPageType: requestParameters.pageType) ?? FormValidator.defaultGroupName
let formParams = self.getFormParams(forGroup: groupName) let formParams = getFormParams(forGroup: groupName)
requestParameters.add(formParams) requestParameters.add(formParams)
} }
@objc func getFormParams( forGroup groupName: String) -> [String: Any] { @objc func getFormParams(forGroup groupName: String) -> [String: Any] {
var extraParam: [String: Any] = [:] var extraParam: [String: Any] = [:]
for (fieldKey, field) in fields { for (fieldKey, field) in fields {
if let formFieldValue = field.formFieldValue(), if let formFieldValue = field.formFieldValue(),
groupName == field.groupName { groupName == field.groupName {
extraParam[fieldKey] = formFieldValue extraParam[fieldKey] = formFieldValue
} }
} }
@ -154,3 +154,4 @@ public extension FormValidator {
return nil return nil
} }
} }