summaryrefslogtreecommitdiffstats
path: root/public/src/app/rule-engine/condition/condition.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'public/src/app/rule-engine/condition/condition.component.ts')
-rw-r--r--public/src/app/rule-engine/condition/condition.component.ts68
1 files changed, 60 insertions, 8 deletions
diff --git a/public/src/app/rule-engine/condition/condition.component.ts b/public/src/app/rule-engine/condition/condition.component.ts
index f44fbf4..200b42d 100644
--- a/public/src/app/rule-engine/condition/condition.component.ts
+++ b/public/src/app/rule-engine/condition/condition.component.ts
@@ -3,10 +3,13 @@ import {
ViewEncapsulation,
ViewChild,
Output,
- EventEmitter
+ EventEmitter,
+ Input,
+ OnInit
} from '@angular/core';
import { TreeModel, TreeComponent, ITreeOptions } from 'angular-tree-component';
-import { some } from 'lodash';
+import { some, cloneDeep } from 'lodash';
+import { toJS } from 'mobx';
@Component({
selector: 'app-condition',
@@ -14,7 +17,9 @@ import { some } from 'lodash';
styleUrls: ['./condition.component.scss'],
encapsulation: ViewEncapsulation.None
})
-export class ConditionComponent {
+export class ConditionComponent implements OnInit {
+ @Input() condition;
+ @Input() isFilter = false;
conditionTree = [];
showType = false;
@ViewChild(TreeComponent) private tree: TreeComponent;
@@ -27,7 +32,9 @@ export class ConditionComponent {
animateAcceleration: 1.2
};
- constructor() {
+ ngOnInit(): void {
+ console.log('condition', this.condition);
+
this.conditionTree.push({
name: 'operator',
level: 0,
@@ -39,10 +46,23 @@ export class ConditionComponent {
left: '',
right: '',
operator: null,
- level: 1
+ level: 1,
+ emptyIsAssigned: false
});
+
+ if (this.condition) {
+ const condition = toJS(this.condition);
+ if (condition.name === 'condition') {
+ this.updateMode(true, condition);
+ } else {
+ const convertedCondition = this.convertConditionFromServer(condition);
+ this.updateMode(false, convertedCondition);
+ }
+ }
}
+ constructor() {}
+
onInitialized(tree) {
tree.treeModel.expandAll();
}
@@ -58,7 +78,8 @@ export class ConditionComponent {
left: data.left,
right: data.right,
operator: data.operator,
- level: 1
+ level: 1,
+ emptyIsAssigned: false
});
this.showType = false;
} else {
@@ -82,7 +103,8 @@ export class ConditionComponent {
left: '',
right: '',
operator: null,
- level: tempLevel
+ level: tempLevel,
+ emptyIsAssigned: false
};
selectedNode.data.children.push(conditionTemplate);
tree.treeModel.update();
@@ -108,7 +130,8 @@ export class ConditionComponent {
left: '',
right: '',
operator: null,
- level: selectedNode.data.level + 2
+ level: selectedNode.data.level + 2,
+ emptyIsAssigned: false
});
}
tree.treeModel.update();
@@ -149,6 +172,35 @@ export class ConditionComponent {
}
}
+ public changeRightToArrayOrString(data, toArray) {
+ data.forEach(element => {
+ if (element.name === 'operator') {
+ this.changeRightToArrayOrString(element.children, toArray);
+ }
+ if (element.name === 'condition') {
+ if (toArray) {
+ element.right = element.right.split(',');
+ } else {
+ element.right = element.right.join(',');
+ }
+ }
+ });
+ console.log(data);
+ return data;
+ }
+
+ public convertConditionFromServer(condition) {
+ const temp = new Array();
+ temp.push(condition);
+ const cloneCondition = cloneDeep(temp);
+ const conditionSetData = this.changeRightToArrayOrString(
+ cloneCondition,
+ false
+ );
+ console.log('condition to server:', conditionSetData);
+ return conditionSetData;
+ }
+
private deleteNodeAndUpdateTreeView(selectedNode: any, tree: any) {
selectedNode.parent.data.children.splice(selectedNode.index, 1);
tree.treeModel.update();