Skip to content

Commit a9c4ed1

Browse files
committed
filte panel functionality complete for circular plot , pending replicate the same for scatter plot
1 parent 695b631 commit a9c4ed1

File tree

2 files changed

+39
-19
lines changed

2 files changed

+39
-19
lines changed

src/app.js

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import cloneMap from './cloneMap';
1010
import { blueColor, redColor, greenColor, grayColor } from './colors';
1111
import { sampleSourceMapper } from './sampleSourceMapper';
1212
import slider from './slider';
13+
import filterCloneData from './filterCloneData';
1314

1415
// tab switch implementation - show hide depending on button press , by default only description is shown
1516
d3.selectAll('#tab-switch-container > button').on('click', () => {
@@ -73,39 +74,26 @@ function start(cloneData, linkGenealogy = {}) {
7374
cloneData.genealogyInfo.split('\n').map((content) => subHeadingContainer.append('h3').attr('class', 'SubHeadingTitle').text(content))
7475

7576
let minRange = 1,
76-
maxRange = cloneData.versionCount + 1;
77+
maxRange = cloneData.versionCount;
7778

7879
// initialize slider
79-
slider(minRange, maxRange, cloneData.versionCount, (min, max) => {
80+
slider(minRange, maxRange, maxRange, (min, max) => {
8081
minRange = min;
8182
maxRange = max;
8283
});
8384

8485
// tab switch implementation - show hide depending on button press , by default only description is shown
8586
d3.selectAll('#recreatePlot').on('click', () => {
86-
let filterOptions = {};
87+
let filterOptions = {},
88+
filteredData;
8789
filterOptions['includeDeadGenealogies'] = d3.select('#filterGenealogy').property('checked');
88-
filterCloneData(cloneData, minRange, maxRange);
89-
circularMap(cloneData, linkGenealogy, filterOptions);
90+
filteredData = filterCloneData(cloneData, minRange, maxRange);
91+
circularMap(filteredData, linkGenealogy, filterOptions);
9092
})
9193

9294
// calling circular map
9395
circularMap(cloneData, linkGenealogy);
9496
// calling linear map
9597
matrix(cloneData, linkGenealogy);
9698

97-
}
98-
99-
function filterCloneData(cloneData, minRange, maxRange) {
100-
101-
let { genealogyList, deadGenealogyList, versionCount, uniqueVersionList } = cloneData,
102-
filteredVersionList = uniqueVersionList.slice(minRange - 1, maxRange - 1);
103-
104-
cloneData.genealogyList = _.filter(genealogyList, (changeList) => {
105-
106-
debugger;
107-
108-
})
109-
110-
11199
}

src/filterCloneData.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import _ from 'lodash';
2+
3+
export default function(cloneData, minRange, maxRange) {
4+
5+
let dataClone = _.cloneDeep(cloneData);
6+
7+
let { genealogyList, deadGenealogyList, versionCount, uniqueVersionList } = dataClone,
8+
filteredVersionList = uniqueVersionList.slice(minRange - 1, maxRange);
9+
10+
dataClone.uniqueVersionList = filteredVersionList;
11+
dataClone.versionCount = maxRange - minRange + 1;
12+
// each genealogy is a collection of changePairs
13+
// we filter out and remove changePairs that dont fall in the range
14+
// if we have a genealogy that is empty after the filtering then we remove the complete genealogy
15+
// which is why we have two lodash filters nested one into the other
16+
dataClone.genealogyList = _.filter(genealogyList, filterChangeList.bind({ filteredVersionList, minRange, maxRange }));
17+
dataClone.deadGenealogyList = _.filter(deadGenealogyList, filterChangeList.bind({ filteredVersionList, minRange, maxRange }));
18+
return dataClone;
19+
20+
}
21+
22+
function filterChangeList(changeList) {
23+
changeList.serialList = changeList.serialList.slice(this.minRange - 1, this.maxRange);
24+
changeList.set = _.filter(changeList.set, (changePair) => {
25+
if ((this.filteredVersionList.indexOf(changePair.source.version) == -1) || (this.filteredVersionList.indexOf(changePair.target.version) == -1)) {
26+
return false;
27+
} else {
28+
return true;
29+
}
30+
});
31+
return (changeList.set.length > 0);
32+
}

0 commit comments

Comments
 (0)