Projekt

Obecné

Profil

« Předchozí | Další » 

Revize bd03aa57

Přidáno uživatelem Vít Mazín před téměř 6 roky(ů)

Filter fix (refs #7559)

Zobrazit rozdíly:

sources/imiger-core/src/main/webapp/js/components/filterModalWindow.js
415 415
		});
416 416
		app.deletedVertexList.forEach(vertex => {
417 417
			v.push(vertex);
418
			app.viewportComponent.addNode(vertex);
418 419
		});
419 420
		app.deletedEdgeList.forEach(edge => {
420 421
			e.push(edge);
......
500 501
		}
501 502

  
502 503
		nodeFilter.run(app.nodeList).forEach(node => {
503
			node._rootElement.style.display = 'none';
504
			app.edgeList.forEach(edge => {
505
				if(edge.from.id === node.id || edge.to.id === node.id) {
506
					edge._rootElement.style.display = 'none';
504
			if(node instanceof Group) {
505
				let outEdges = node.outEdgeList;
506
				let inEdges = node.inEdgeList;
507
				this._hideEdges(outEdges);
508
				this._hideEdges(inEdges);
509
				node._rootElement.style.display = 'none';
510
			} else {
511
				if(node._group === null) {
512
					node._rootElement.style.display = 'none';
513
					app.edgeList.forEach(edge => {
514
						if(edge.from.id === node.id || edge.to.id === node.id) {
515
							edge._rootElement.style.display = 'none';
516
						}
517
					});
507 518
				}
508
			});
519
			}
520
			app.viewportComponent.removeNode(node);
509 521
		});
510 522

  
511 523
		var newNodeList = [];
......
539 551
		app.edgeList = newEdgeList;
540 552
	}
541 553

  
554
	_hideEdges(edges) {
555
		edges.forEach(edge => {
556
			edge._rootElement.style.display = 'none';
557
		});
558
	}
559

  
542 560
	setDateBounds(minDate, maxDate) {
543 561
		if(minDate !== null && maxDate !== null) {
544 562
			this._showSlider = DOM.h('script', {
sources/imiger-core/src/main/webapp/js/services/filters/NodeTypeFilter.js
28 28
		switch (this._operation) {
29 29
			case EnumFilterOperation.EQ:
30 30
				filterFn = node => {
31
					return (node instanceof Vertex && filterValues.indexOf(NodeTypeFilter.VERTEX) > -1)
32
						|| (node instanceof Group && filterValues.indexOf(NodeTypeFilter.GROUP) > -1);
31
					return (node instanceof Vertex && filterValues.indexOf(NodeTypeFilter.VERTEX) < 0)
32
						|| (node instanceof Group && filterValues.indexOf(NodeTypeFilter.GROUP) < 0);
33 33
				};
34 34
				break;
35 35

  
36 36
			case EnumFilterOperation.NEQ:
37 37
				filterFn = node => {
38
					return (node instanceof Vertex && filterValues.indexOf(NodeTypeFilter.VERTEX) < 0)
39
						|| (node instanceof Group && filterValues.indexOf(NodeTypeFilter.GROUP) < 0);
38
					return (node instanceof Vertex && filterValues.indexOf(NodeTypeFilter.VERTEX) > -1)
39
						|| (node instanceof Group && filterValues.indexOf(NodeTypeFilter.GROUP) > -1);
40 40
				};
41 41
				break;
42 42

  
sources/imiger-core/src/main/webapp/js/services/filters/VertexArchetypeFilter.js
34 34
		switch (this._operation) {
35 35
			case EnumFilterOperation.EQ:
36 36
				filterFn = vertex => {
37
					return filterValues.indexOf(vertex.archetype) > -1;
37
					return filterValues.indexOf(vertex.archetype) < 0;
38 38
				};
39 39
				break;
40 40

  
41 41
			case EnumFilterOperation.NEQ:
42 42
				filterFn = vertex => {
43
					return filterValues.indexOf(vertex.archetype) < 0;
43
					return filterValues.indexOf(vertex.archetype) > -1;
44 44
				};
45 45
				break;
46 46

  
sources/imiger-core/src/main/webapp/js/services/filters/VertexAttributeFilter.js
66 66
		let comparatorFn;
67 67
		switch (operation) {
68 68
			case StringFilterOperation.EQ:
69
				comparatorFn = (a, b) => a === b;
69
				comparatorFn = (a, b) => a !== b;
70 70
				break;
71 71

  
72 72
			case StringFilterOperation.NEQ:
73
				comparatorFn = (a, b) => a !== b;
73
				comparatorFn = (a, b) => a === b;
74 74
				break;
75 75

  
76 76
			case StringFilterOperation.CONTAINS:
77
				comparatorFn = (a, b) => a.includes(b);
77
				comparatorFn = (a, b) => !(a.includes(b));
78 78
				break;
79 79

  
80 80
			case StringFilterOperation.STARTS_WITH:
81
				comparatorFn = (a, b) => a.startsWith(b);
81
				comparatorFn = (a, b) => !(a.startsWith(b));
82 82
				break;
83 83

  
84 84
			case StringFilterOperation.ENDS_WITH:
85
				comparatorFn = (a, b) => a.endsWith(b);
85
				comparatorFn = (a, b) => !(a.endsWith(b));
86 86
				break;
87 87

  
88 88
			case StringFilterOperation.REGEXP:
89
				comparatorFn = (a, b) => a.match(new RegExp(b, 'i'));
89
				comparatorFn = (a, b) => !(a.match(new RegExp(b, 'i')));
90 90
				break;
91 91

  
92 92
			default:
......
110 110
					const attributeValues = attribute[1].split(', ');
111 111

  
112 112
					// some (at least one) of the attribute items should be contained in the filters
113
					return attributeValues.some(attributeValue => {
114
						return filterValues.indexOf(attributeValue) > -1;
115
					});
113
					 let count = 0;
114
					 attributeValues.forEach(value => {
115
						if(filterValues.indexOf(value) > -1) {
116
							count++;
117
						}
118
					 });
119

  
120
					 return count === 0;
116 121
				};
117 122
				break;
118 123

  
......
122 127
					const attributeValues = attribute[1].split(', ');
123 128

  
124 129
					// every of the attribute items should not be contained in the filters (translated: none of the items should be contained in the filters)
125
					return attributeValues.every(attributeValue => {
126
						return filterValues.indexOf(attributeValue) < 0;
130
					let count = 0;
131
					attributeValues.forEach(value => {
132
						if(filterValues.indexOf(value) > -1) {
133
						count++;
134
					}
127 135
					});
136

  
137
					return count > 0;
128 138
				};
129 139
				break;
130 140

  
......
153 163

  
154 164
			let comparatorFn;
155 165
			switch (operation) {
156
				case DateFilterOperation.EQ:
166
				case DateFilterOperation.NEQ:
157 167
					comparatorFn = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
158 168
					break;
159 169

  
160
				case DateFilterOperation.NEQ:
170
				case DateFilterOperation.EQ:
161 171
					comparatorFn = (a, b) => a.getFullYear() !== b.getFullYear() || a.getMonth() !== b.getMonth() || a.getDate() !== b.getDate();
162 172
					break;
163 173

  

Také k dispozici: Unified diff