Merge branch 'develop' of https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui into feature/open_url_options
This commit is contained in:
commit
54dd5351ed
@ -337,6 +337,7 @@ CGFloat const PanelAnimationDuration = 0.2;
|
|||||||
};
|
};
|
||||||
|
|
||||||
void (^completion)(BOOL) = ^(BOOL finished){
|
void (^completion)(BOOL) = ^(BOOL finished){
|
||||||
|
self.leftView.hidden = true;
|
||||||
self.mainViewCoverView.hidden = YES;
|
self.mainViewCoverView.hidden = YES;
|
||||||
[self panelDidDisappear:self.leftPanel animated:animated];
|
[self panelDidDisappear:self.leftPanel animated:animated];
|
||||||
self.mainView.accessibilityElementsHidden = NO;
|
self.mainView.accessibilityElementsHidden = NO;
|
||||||
@ -360,6 +361,7 @@ CGFloat const PanelAnimationDuration = 0.2;
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
[MVMCoreDispatchUtility performBlockOnMainThread:^{
|
[MVMCoreDispatchUtility performBlockOnMainThread:^{
|
||||||
|
self.leftView.hidden = false;
|
||||||
if (self.mainViewLeading.constant < .1) {
|
if (self.mainViewLeading.constant < .1) {
|
||||||
BOOL shouldExtendLeftPanel = [self shouldExtendLeftPanel];
|
BOOL shouldExtendLeftPanel = [self shouldExtendLeftPanel];
|
||||||
|
|
||||||
@ -540,6 +542,7 @@ CGFloat const PanelAnimationDuration = 0.2;
|
|||||||
};
|
};
|
||||||
|
|
||||||
void (^completion)(BOOL) = ^(BOOL finished){
|
void (^completion)(BOOL) = ^(BOOL finished){
|
||||||
|
self.rightView.hidden = true;
|
||||||
self.mainViewCoverView.hidden = YES;
|
self.mainViewCoverView.hidden = YES;
|
||||||
[self panelDidDisappear:self.rightPanel animated:animated];
|
[self panelDidDisappear:self.rightPanel animated:animated];
|
||||||
self.mainView.accessibilityElementsHidden = NO;
|
self.mainView.accessibilityElementsHidden = NO;
|
||||||
@ -563,6 +566,7 @@ CGFloat const PanelAnimationDuration = 0.2;
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
[MVMCoreDispatchUtility performBlockOnMainThread:^{
|
[MVMCoreDispatchUtility performBlockOnMainThread:^{
|
||||||
|
self.rightView.hidden = false;
|
||||||
if (self.mainViewTrailing.constant < .1) {
|
if (self.mainViewTrailing.constant < .1) {
|
||||||
BOOL shouldExtendRightPanel = [self shouldExtendRightPanel];
|
BOOL shouldExtendRightPanel = [self shouldExtendRightPanel];
|
||||||
|
|
||||||
@ -726,9 +730,9 @@ CGFloat const PanelAnimationDuration = 0.2;
|
|||||||
[self addPanel:panel];
|
[self addPanel:panel];
|
||||||
self.leftView = panel.view;
|
self.leftView = panel.view;
|
||||||
self.leftPanel = panel;
|
self.leftPanel = panel;
|
||||||
|
self.leftView.hidden = YES;
|
||||||
self.leftView.translatesAutoresizingMaskIntoConstraints = NO;
|
self.leftView.translatesAutoresizingMaskIntoConstraints = NO;
|
||||||
NSLayoutConstraint *leftPanelWidth = [NSLayoutConstraint constraintWithItem:self.leftView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:270];
|
NSLayoutConstraint *leftPanelWidth = [NSLayoutConstraint constraintWithItem:self.leftView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:270];
|
||||||
self.leftView.translatesAutoresizingMaskIntoConstraints = NO;
|
|
||||||
leftPanelWidth.active = YES;
|
leftPanelWidth.active = YES;
|
||||||
self.leftPanelWidth = leftPanelWidth;
|
self.leftPanelWidth = leftPanelWidth;
|
||||||
[NSLayoutConstraint constraintWithItem:self.mainView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.leftView attribute:NSLayoutAttributeRight multiplier:1.0 constant:0].active = YES;
|
[NSLayoutConstraint constraintWithItem:self.mainView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.leftView attribute:NSLayoutAttributeRight multiplier:1.0 constant:0].active = YES;
|
||||||
@ -762,6 +766,7 @@ CGFloat const PanelAnimationDuration = 0.2;
|
|||||||
[self addPanel:panel];
|
[self addPanel:panel];
|
||||||
self.rightView = panel.view;
|
self.rightView = panel.view;
|
||||||
self.rightPanel = panel;
|
self.rightPanel = panel;
|
||||||
|
self.rightView.hidden = YES;
|
||||||
self.rightView.translatesAutoresizingMaskIntoConstraints = NO;
|
self.rightView.translatesAutoresizingMaskIntoConstraints = NO;
|
||||||
NSLayoutConstraint *rightPanelWidth = [NSLayoutConstraint constraintWithItem:self.rightView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:270];
|
NSLayoutConstraint *rightPanelWidth = [NSLayoutConstraint constraintWithItem:self.rightView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:270];
|
||||||
rightPanelWidth.active = YES;
|
rightPanelWidth.active = YES;
|
||||||
|
|||||||
@ -111,22 +111,6 @@ import MVMCore
|
|||||||
/// - counter: keeps track of how many times causes another group validation
|
/// - counter: keeps track of how many times causes another group validation
|
||||||
/// - Returns: validity for the FormGroupRule.rules
|
/// - Returns: validity for the FormGroupRule.rules
|
||||||
public func validateGroup(_ group: FormGroupRule, counter: Int = 0) throws -> Bool {
|
public func validateGroup(_ group: FormGroupRule, counter: Int = 0) throws -> Bool {
|
||||||
let tuple = group.validate(fields)
|
|
||||||
|
|
||||||
group.rules.forEach { rule in
|
|
||||||
for formKey in rule.fields {
|
|
||||||
guard let formField = fields[formKey] as? FormRuleWatcherFieldProtocol,
|
|
||||||
let fieldValidity = tuple.fieldValidity[formKey] else { continue }
|
|
||||||
formField.setValidity(fieldValidity, rule: rule)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Notify the group watchers of validity.
|
|
||||||
for watcher in groupWatchers.filter({$0.groupName == group.groupName}) {
|
|
||||||
watcher.setValidity(tuple.valid)
|
|
||||||
}
|
|
||||||
|
|
||||||
var ruleChange = false
|
|
||||||
|
|
||||||
//loop the effects
|
//loop the effects
|
||||||
group.effects?.forEach({ effect in
|
group.effects?.forEach({ effect in
|
||||||
@ -140,24 +124,30 @@ import MVMCore
|
|||||||
|
|
||||||
//update the group form rules
|
//update the group form rules
|
||||||
if let ruleIds = effect.activatedRuleIds {
|
if let ruleIds = effect.activatedRuleIds {
|
||||||
let didChange = self.updateRules(for: group, with: effectTuple.valid, for: effect.fieldKey, and: ruleIds)
|
self.updateRules(for: group, with: effectTuple.valid, for: effect.fieldKey, and: ruleIds)
|
||||||
if(didChange) {
|
|
||||||
ruleChange = didChange
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
if ruleChange {
|
//validate the form
|
||||||
if counter > 3 {
|
let tuple = group.validate(fields)
|
||||||
throw ValidationError.other(error: "Effect caused validation loop error")
|
|
||||||
} else {
|
//set the validity for the fields
|
||||||
return try self.validateGroup(group, counter: counter + 1)
|
group.rules.forEach { rule in
|
||||||
|
for formKey in rule.fields {
|
||||||
|
guard let formField = fields[formKey] as? FormRuleWatcherFieldProtocol,
|
||||||
|
let fieldValidity = tuple.fieldValidity[formKey] else { continue }
|
||||||
|
formField.setValidity(fieldValidity, rule: rule)
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
return tuple.valid
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Notify the group watchers of validity.
|
||||||
|
for watcher in groupWatchers.filter({$0.groupName == group.groupName}) {
|
||||||
|
watcher.setValidity(tuple.valid)
|
||||||
|
}
|
||||||
|
|
||||||
|
return tuple.valid
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Updates the Fields in which a specific rule within a FormGroupRule validates against.
|
/// Updates the Fields in which a specific rule within a FormGroupRule validates against.
|
||||||
@ -166,6 +156,7 @@ import MVMCore
|
|||||||
/// - validity: If you the fieldKey should be added or removed from a rule
|
/// - validity: If you the fieldKey should be added or removed from a rule
|
||||||
/// - fieldKey: FieldKey that will be added or removed from a rule
|
/// - fieldKey: FieldKey that will be added or removed from a rule
|
||||||
/// - ruleIds: Array of ruleIds to add or remove the fieldKey into the rule.fields property
|
/// - ruleIds: Array of ruleIds to add or remove the fieldKey into the rule.fields property
|
||||||
|
@discardableResult
|
||||||
public func updateRules(for group: FormGroupRule, with validity: Bool, for fieldKey: String, and ruleIds: [String]) -> Bool{
|
public func updateRules(for group: FormGroupRule, with validity: Bool, for fieldKey: String, and ruleIds: [String]) -> Bool{
|
||||||
//update the group rules based on the validation of this rule to show/hide
|
//update the group rules based on the validation of this rule to show/hide
|
||||||
var ruleChange = false
|
var ruleChange = false
|
||||||
|
|||||||
@ -50,7 +50,7 @@ public class RuleEqualsIgnoreCaseModel: RulesProtocol {
|
|||||||
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
||||||
fieldValidity = false
|
fieldValidity = false
|
||||||
}
|
}
|
||||||
|
previousValidity[formKey] = valid
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -43,6 +43,7 @@ public class RuleEqualsModel: RulesProtocol {
|
|||||||
|
|
||||||
if compareValue != formField.formFieldValue() {
|
if compareValue != formField.formFieldValue() {
|
||||||
valid = false
|
valid = false
|
||||||
|
previousValidity[formKey] = valid
|
||||||
break
|
break
|
||||||
} else {
|
} else {
|
||||||
var fieldValidity = valid
|
var fieldValidity = valid
|
||||||
@ -50,9 +51,8 @@ public class RuleEqualsModel: RulesProtocol {
|
|||||||
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
if let validity = previousFieldValidity[formKey], !validity, fieldValidity {
|
||||||
fieldValidity = false
|
fieldValidity = false
|
||||||
}
|
}
|
||||||
|
previousValidity[formKey] = valid
|
||||||
}
|
}
|
||||||
previousValidity[formKey] = valid
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return (valid: valid, fieldValidity: previousValidity)
|
return (valid: valid, fieldValidity: previousValidity)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user