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');
|
const subquestions = get(q, 'subquestions');
|
||||||
if ( subquestions ) {
|
if ( subquestions ) {
|
||||||
subquestions.forEach((subq) => {
|
subquestions.forEach((subq) => {
|
||||||
|
if ( get(subq, 'showIf.length') > 0 ) {
|
||||||
|
subq.showIf = `${q.variable}=${q.showSubquestionIf}&&${subq.showIf}`;
|
||||||
|
} else {
|
||||||
subq.showIf = `${q.variable}=${q.showSubquestionIf}`;
|
subq.showIf = `${q.variable}=${q.showSubquestionIf}`;
|
||||||
|
}
|
||||||
|
|
||||||
if ( q.group ) {
|
if ( q.group ) {
|
||||||
subq.group = q.group;
|
subq.group = q.group;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,18 +27,19 @@ export function evaluate(question, allQuestions) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const showIf = question.showIf.trim();
|
const and = question.showIf.split('&&');
|
||||||
|
|
||||||
let variables = getVariables(showIf, '=');
|
|
||||||
|
|
||||||
|
const result = and.every((showIf) => {
|
||||||
|
showIf = showIf.trim();
|
||||||
|
const variables = getVariables(showIf, '=');
|
||||||
if ( variables ) {
|
if ( variables ) {
|
||||||
const left = stringifyAnswer(getAnswer(variables.left, allQuestions));
|
const left = stringifyAnswer(getAnswer(variables.left, allQuestions));
|
||||||
const right = stringifyAnswer(variables.right);
|
const right = stringifyAnswer(variables.right);
|
||||||
|
|
||||||
return left === right;
|
return left === right;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
});
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function stringifyAnswer(answer) {
|
export function stringifyAnswer(answer) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue