mirror of https://github.com/rancher/ui.git
Support and logic for catalog question conditions
https://github.com/rancher/rancher/issues/13693
This commit is contained in:
parent
c440a88c65
commit
b384603506
|
|
@ -61,7 +61,12 @@ export default Resource.extend({
|
|||
const subquestions = get(q, 'subquestions');
|
||||
if ( subquestions ) {
|
||||
subquestions.forEach((subq) => {
|
||||
subq.showIf = `${q.variable}=${q.showSubquestionIf}`;
|
||||
if ( get(subq, 'showIf.length') > 0 ) {
|
||||
subq.showIf = `${q.variable}=${q.showSubquestionIf}&&${subq.showIf}`;
|
||||
} else {
|
||||
subq.showIf = `${q.variable}=${q.showSubquestionIf}`;
|
||||
}
|
||||
|
||||
if ( q.group ) {
|
||||
subq.group = q.group;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,18 +27,19 @@ export function evaluate(question, allQuestions) {
|
|||
return true;
|
||||
}
|
||||
|
||||
const showIf = question.showIf.trim();
|
||||
const and = question.showIf.split('&&');
|
||||
|
||||
let variables = getVariables(showIf, '=');
|
||||
|
||||
if ( variables ) {
|
||||
const left = stringifyAnswer(getAnswer(variables.left, allQuestions));
|
||||
const right = stringifyAnswer(variables.right);
|
||||
|
||||
return left === right;
|
||||
}
|
||||
|
||||
return false;
|
||||
const result = and.every((showIf) => {
|
||||
showIf = showIf.trim();
|
||||
const variables = getVariables(showIf, '=');
|
||||
if ( variables ) {
|
||||
const left = stringifyAnswer(getAnswer(variables.left, allQuestions));
|
||||
const right = stringifyAnswer(variables.right);
|
||||
return left === right;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
export function stringifyAnswer(answer) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue