From feb8a4130487e6514c8abfbe7e35e95e625fe47d Mon Sep 17 00:00:00 2001
From: Anton Romanov
Date: Fri, 28 Feb 2025 12:09:10 +0400
Subject: [PATCH] #4 -- Fix events. construct rule
---
src/main/resources/public/js/fuzzyRule.js | 49 +++++++++++++--------
src/main/resources/templates/rule/edit.html | 4 +-
2 files changed, 33 insertions(+), 20 deletions(-)
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 @@
-
+
+
+ +