Implemented code to find out if any comparison checks inside a select are true.
This commit is contained in:
parent
ed38ce6a38
commit
b0b857147d
@ -528,10 +528,20 @@ impl<'a> DustRenderer<'a> {
|
|||||||
None,
|
None,
|
||||||
¶meterized_block.explicit_context,
|
¶meterized_block.explicit_context,
|
||||||
);
|
);
|
||||||
|
let new_breadcrumbs_ref = new_breadcrumbs.as_ref().unwrap_or(breadcrumbs);
|
||||||
match ¶meterized_block.contents {
|
match ¶meterized_block.contents {
|
||||||
None => return Ok("".to_owned()),
|
None => return Ok("".to_owned()),
|
||||||
Some(body) => {
|
Some(body) => {
|
||||||
let comparison_helpers = body.elements.iter().filter_map(|te| match te {
|
let param_map = ParametersContext::new(
|
||||||
|
self,
|
||||||
|
breadcrumbs,
|
||||||
|
¶meterized_block.params,
|
||||||
|
None,
|
||||||
|
);
|
||||||
|
let are_any_checks_true = body
|
||||||
|
.elements
|
||||||
|
.iter()
|
||||||
|
.filter_map(|te| match te {
|
||||||
TemplateElement::TETag(dt) => match dt {
|
TemplateElement::TETag(dt) => match dt {
|
||||||
DustTag::DTHelperEquals(_)
|
DustTag::DTHelperEquals(_)
|
||||||
| DustTag::DTHelperNotEquals(_)
|
| DustTag::DTHelperNotEquals(_)
|
||||||
@ -542,7 +552,15 @@ impl<'a> DustRenderer<'a> {
|
|||||||
_ => None,
|
_ => None,
|
||||||
},
|
},
|
||||||
_ => None,
|
_ => None,
|
||||||
});
|
})
|
||||||
|
.map(|dt| {
|
||||||
|
self.perform_comparison_check(
|
||||||
|
dt,
|
||||||
|
new_breadcrumbs_ref,
|
||||||
|
Some(¶m_map),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
.any(|check_result| check_result.unwrap_or(false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user