diff --git a/src/main/resources/public/js/fuzzyRule.js b/src/main/resources/public/js/fuzzyRule.js index 5d775f3..f075a52 100644 --- a/src/main/resources/public/js/fuzzyRule.js +++ b/src/main/resources/public/js/fuzzyRule.js @@ -46,17 +46,17 @@ function getFromRest(url, callBack) { } /* exported createRule */ - function createRule(ruleContentElement) { + function createRule() { var ruleString = "if "; - var inp = $('.selectpicker.inputVar').map(function() {return $(this).val();}).get(); - var inpVal = $('.selectpicker.inputVal').map(function() {return $(this).val();}).get(); + var inp = $('.selectpicker.inputVar').children(':selected').map(function() {return $(this).text();}).get(); + var inpVal = $('.selectpicker.inputVal').children(':selected').map(function() {return $(this).text();}).get(); for (var i = 0; i < inp.length; i++) { if (i > 0) { ruleString += ' and '; } ruleString += inp[i] + " is " + inpVal[i]; } - $(ruleContentElement).val(ruleString); + $('#ruleContent').val(ruleString); } /* exported fillSelect */ @@ -67,8 +67,8 @@ function fillSelect(selectElement, values) { }); } -function fillFuzzyTerms(variableElement, fuzzyTermsElement) { - getFromRest("/rule/getFuzzyTerms/"+$(variableElement).val(), function (fuzzyTerms) { +function fillFuzzyTerms(variablesElement, fuzzyTermsElement) { + getFromRest("/rule/getFuzzyTerms/"+$(variablesElement).val(), function (fuzzyTerms) { var fuzzyTermsData = []; $.each(fuzzyTerms, function (key, value) { fuzzyTermsData.push({ @@ -82,7 +82,7 @@ function fillFuzzyTerms(variableElement, fuzzyTermsElement) { }); } -function fillVariables(projectId, variableElement) { +function fillVariables(projectId, variablesElement) { getFromRest("/rule/getVariables/"+projectId, function (variables) { var variablesData = []; $.each(variables, function (key, value) { @@ -98,29 +98,40 @@ function fillVariables(projectId, variableElement) { } function variableValueChanged(variablesElement, fuzzyTermsElement) { - fillFuzzyTerms(variableElement, fuzzyTermsElement); + fillFuzzyTerms(variablesElement, fuzzyTermsElement); +} + +function fuzzyTermsValueChanged() { + createRule(); } function addVariableSelect(projectId) { - variablesElement = $(""); - $(variablesElement).append($("").text('Значения загружаются...')); + var variablesElement = $(""); fillVariables(projectId, variablesElement); return variablesElement; } -function addFuzzyTermsSelect(variableElement) { +function addFuzzyTermsSelect(variablesElement) { fuzzyTermsElement = $(""); - if ($(variableElement).val()) { - fillFuzzyTerms(variableElement, fuzzyTermsElement); + if ($(variablesElement).val()) { + fillFuzzyTerms(variablesElement, fuzzyTermsElement); } return fuzzyTermsElement; } function addAntecedent(parentElement, projectId) { - variableElement = addVariableSelect(projectId); - fuzzyTermsElement = addFuzzyTermsSelect(variableElement) - $(variablesElement).on( "change", function() {variableValueChanged(this, fuzzyTermsElement)}); - $(parentElement).append(variableElement); - $(parentElement).append(""); - $(parentElement).append(fuzzyTermsElement); + rowElement = $("
"); + if ($(parentElement).find('.row').length) { + $(rowElement).append(""); + } else { + $(rowElement).append(""); + } + var variablesElement = addVariableSelect(projectId); + var fuzzyTermsElement = addFuzzyTermsSelect(variablesElement) + $(variablesElement).on( "change", function() {variableValueChanged(variablesElement, fuzzyTermsElement)}); + $(fuzzyTermsElement).on( "change", function() {fuzzyTermsValueChanged()}); + $(rowElement).append(variablesElement); + $(rowElement).append(""); + $(rowElement).append(fuzzyTermsElement); + $(parentElement).append(rowElement); } diff --git a/src/main/resources/templates/rule/edit.html b/src/main/resources/templates/rule/edit.html index 929ab1c..8f8dc60 100644 --- a/src/main/resources/templates/rule/edit.html +++ b/src/main/resources/templates/rule/edit.html @@ -26,8 +26,10 @@