Revize bd03aa57
Přidáno uživatelem Vít Mazín před téměř 6 roky(ů)
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
Filter fix (refs #7559)