Projekt

Obecné

Profil

« Předchozí | Další » 

Revize f01a1530

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

Improved filtering deletion (refs #7559)

Zobrazit rozdíly:

sources/imiger-core/src/main/webapp/js/components/filterModalWindow.js
403 403
	_onFilterFormReset() {
404 404
		this._onBaseFilterChange('nodeType');
405 405

  
406
		let nodeList = app.nodeList;
407
		let edgeList = app.edgeList;
408
		nodeList.filter(node => node._rootElement.style.display === 'none').forEach(node => node._rootElement.style.display = '');
409
		edgeList.filter(edge => edge._rootElement.style.display === 'none').forEach(edge => edge._rootElement.style.display = '');
406
		this.resetFilter();
407
	}
408

  
409
	resetFilter() {
410
		var n = app.nodeList;
411
		var v = app.vertexList;
412
		var e = app.edgeList;
413
		app.deletedNodeList.forEach(node =>{
414
			n.push(node);
415
		});
416
		app.deletedVertexList.forEach(vertex => {
417
			v.push(vertex);
418
		});
419
		app.deletedEdgeList.forEach(edge => {
420
			e.push(edge);
421
		});
422
		n.filter(node => node._rootElement.style.display === 'none').forEach(node => node._rootElement.style.display = '');
423
		e.filter(edge => edge._rootElement.style.display === 'none').forEach(edge => edge._rootElement.style.display = '');
424
		app.deletedEdgeList = [];
425
		app.deletedVertexList = [];
426
		app.deletedNodeList = [];
410 427
	}
411 428

  
412 429
	_displayFilter(formData) {
......
483 500
		}
484 501

  
485 502
		nodeFilter.run(app.nodeList).forEach(node => {
486
			//node.isFound = true;
487 503
			node._rootElement.style.display = 'none';
488 504
			app.edgeList.forEach(edge => {
489 505
				if(edge.from.id === node.id || edge.to.id === node.id) {
......
491 507
				}
492 508
			});
493 509
		});
510

  
511
		var newNodeList = [];
512
		var newVertexList = [];
513
		var newEdgeList = [];
514

  
515
		app.nodeList.forEach(node => {
516
			if(node._rootElement.style.display !== 'none') {
517
				newNodeList.push(node);
518
			} else {
519
				app.deletedNodeList.push(node);
520
			}
521
		});
522
		app.vertexList.forEach(vertex => {
523
			if(vertex._rootElement.style.display !== 'none') {
524
				newVertexList.push(vertex);
525
			} else {
526
				app.deletedVertexList.push(vertex);
527
			}
528
		});
529
		app.edgeList.forEach(edge => {
530
			if(edge._rootElement.style.display !== 'none') {
531
				newEdgeList.push(edge);
532
			} else {
533
				app.deletedEdgeList.push(edge);
534
			}
535
		});
536

  
537
		app.nodeList = newNodeList;
538
		app.vertexList = newVertexList;
539
		app.edgeList = newEdgeList;
494 540
	}
495 541

  
496 542
	setDateBounds(minDate, maxDate) {
sources/imiger-core/src/main/webapp/js/components/navbar.js
11 11
			this._createSeparatorListItem(),
12 12

  
13 13
			this._createSearchListItem(),
14
			this._createSeparatorListItem(),
15 14

  
16 15
			this._createFilterListItem(),
17 16
			this._createSeparatorListItem(),
......
187 186

  
188 187
		function resetSearch() {
189 188
			let nodeList = app.nodeList;
190
			let edgeList = app.edgeList;
191
			nodeList.filter(node => node._rootElement.style.display === 'none').forEach(node => node._rootElement.style.display = '');
192
			edgeList.filter(edge => edge._rootElement.style.display === 'none').forEach(edge => edge._rootElement.style.display = '');
189
			nodeList.filter(node => node.isFound === true).forEach(node => node.isFound = false);
193 190

  
194 191
			searchInput.value = '';
195 192
			searchCounter.innerText = 0;
......
207 204
		const filterButton = DOM.h('button', {
208 205
			class: 'filter',
209 206
			id: 'filterButton',
210
			innerText: 'Filter nodes',
207
			innerText: 'Select nodes',
211 208
			onClick: () => app.filterModalWindowComponent.open(),
212 209
		});
213 210

  
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) < 0; //> -1
37
					return filterValues.indexOf(vertex.archetype) > -1;
38 38
				};
39 39
				break;
40 40

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

  
sources/imiger-core/src/main/webapp/js/services/filters/VertexAttributeFilter.js
184 184
			filterFn = vertex => {
185 185
				const attribute = vertex.attributes.find(attribute => attribute[0] === filterAttributeName);
186 186
				const attributeValue = parseFloat(attribute[1]);
187
				return (attributeValue >= filterValueFrom) && (attributeValue <= filterValueTo);
187
				return (attributeValue < filterValueFrom) || (attributeValue > filterValueTo);
188 188
			};
189 189

  
190 190
		} else {
sources/imiger-core/src/main/webapp/js/showGraphApp.js
30 30
		/** @prop {Node} activeNode */
31 31
		this.activeNode = null;
32 32

  
33
		this.deletedNodeList = [];
34
		this.deletedVertexList = [];
35
		this.deletedEdgeList = [];
36

  
37

  
33 38
		/** @prop {Diagram} diagram */
34 39
		this.diagram = null;
35 40

  

Také k dispozici: Unified diff