Этот коммит содержится в:
higsch 2020-12-17 11:25:02 +01:00
родитель 8153b70726
Коммит 510b30dde8
8 изменённых файлов: 42 добавлений и 9 удалений

Просмотреть файл

@ -1,5 +1,5 @@
<script> <script>
import { highlightPolarization } from '../stores/filters'; import { highlightPolarization, highlightCib } from '../stores/filters';
import Checkbox from './Checkbox.svelte'; import Checkbox from './Checkbox.svelte';
@ -8,6 +8,9 @@
case 'polarization': case 'polarization':
$highlightPolarization = !$highlightPolarization; $highlightPolarization = !$highlightPolarization;
break; break;
case 'cib':
$highlightCib = !$highlightCib;
break;
} }
} }
</script> </script>
@ -20,6 +23,13 @@
<span>Polarization data filter</span> <span>Polarization data filter</span>
</Checkbox> </Checkbox>
</li> </li>
<li>
<Checkbox id="checkboxpanel-checkbox-cib"
checked={$highlightCib}
on:click={() => handleClick('cib')}>
<span>CIB data filter</span>
</Checkbox>
</li>
</ul> </ul>
<style> <style>

Просмотреть файл

@ -12,7 +12,8 @@
selectAllFilters, selectAllFilters,
contextData, contextData,
originalTimeDomain, originalTimeDomain,
highlightPolarization } from '../stores/filters'; highlightPolarization,
highlightCib } from '../stores/filters';
import { timeScale, attributionScoreScale } from '../stores/scales'; import { timeScale, attributionScoreScale } from '../stores/scales';
import Dropdown from './Dropdown.svelte'; import Dropdown from './Dropdown.svelte';
@ -35,6 +36,7 @@
selectAllFilters(); selectAllFilters();
contextData.unselectAll(); contextData.unselectAll();
$highlightPolarization = false; $highlightPolarization = false;
$highlightCib = false;
if ($originalTimeDomain) { if ($originalTimeDomain) {
$timeScale.domain($originalTimeDomain); $timeScale.domain($originalTimeDomain);
$timeScale = $timeScale; $timeScale = $timeScale;

Просмотреть файл

@ -11,7 +11,8 @@
textSearchFilter, textSearchFilter,
originalTimeDomain, originalTimeDomain,
contextData, contextData,
highlightPolarization } from '../stores/filters'; highlightPolarization,
highlightCib } from '../stores/filters';
import { urlFromFilters } from '../utils/share'; import { urlFromFilters } from '../utils/share';
import Icon from 'svelte-awesome'; import Icon from 'svelte-awesome';
@ -39,7 +40,8 @@
$textSearchFilter, $textSearchFilter,
$contextData, $contextData,
caseId, caseId,
$highlightPolarization); $highlightPolarization,
$highlightCib);
</script> </script>
<div class="share"> <div class="share">

Просмотреть файл

@ -6,7 +6,11 @@
import { sortConsistently } from '../utils/misc'; import { sortConsistently } from '../utils/misc';
import { hovered as eHovered, selected as eSelected } from '../stores/eventSelections'; import { hovered as eHovered, selected as eSelected } from '../stores/eventSelections';
import { hovered as cHovered } from '../stores/centroidSelections'; import { hovered as cHovered } from '../stores/centroidSelections';
import { disinformantNationFilter, selectAllFilters, unselectAllFilters, highlightPolarization } from '../stores/filters'; import {
disinformantNationFilter,
selectAllFilters,
unselectAllFilters,
highlightPolarization } from '../stores/filters';
import SourceLink from './SourceLink.svelte'; import SourceLink from './SourceLink.svelte';
import Centroid from './Centroid.svelte'; import Centroid from './Centroid.svelte';

Просмотреть файл

@ -37,13 +37,15 @@
contextData, contextData,
caseIdFilter, caseIdFilter,
tagFilter, tagFilter,
highlightPolarization } from '../stores/filters'; highlightPolarization,
highlightCib } from '../stores/filters';
import { import {
haveOverlap, haveOverlap,
withinRange, withinRange,
includesTextSearch, includesTextSearch,
isCaseId, isCaseId,
showPolarization, showPolarization,
showCib,
preloadImages } from '../utils/misc'; preloadImages } from '../utils/misc';
import { selected } from '../stores/eventSelections'; import { selected } from '../stores/eventSelections';
import { drawWrapper } from '../stores/elements'; import { drawWrapper } from '../stores/elements';
@ -143,6 +145,7 @@
$textSearchFilter = urlFilters.textSearch; $textSearchFilter = urlFilters.textSearch;
$caseIdFilter = urlFilters.caseId; $caseIdFilter = urlFilters.caseId;
$highlightPolarization = urlFilters.highlightPolarization; $highlightPolarization = urlFilters.highlightPolarization;
$highlightCib = urlFilters.highlightCib;
} }
}); });
@ -150,6 +153,7 @@
$: setScales(data, $width, $minDim, $maxDim, $panelHeight, $margin); $: setScales(data, $width, $minDim, $maxDim, $panelHeight, $margin);
$: if (data) { $: if (data) {
console.log(data.filter((d) => d.cib.hasCib));
// calculate scaled data points // calculate scaled data points
const scaledData = data.map((d) => ({ const scaledData = data.map((d) => ({
...d, ...d,
@ -214,6 +218,7 @@
&& withinRange($attributionScoreFilter, d.attributionScore) && withinRange($attributionScoreFilter, d.attributionScore)
&& isCaseId($caseIdFilter, d.id) && isCaseId($caseIdFilter, d.id)
&& showPolarization($highlightPolarization, d.polarization) && showPolarization($highlightPolarization, d.polarization)
&& showCib($highlightCib, d.cib)
})); }));
} }
</script> </script>

Просмотреть файл

@ -96,3 +96,5 @@ export const originalTimeDomain = writable(null);
export const caseIdFilter = writable(); export const caseIdFilter = writable();
export const highlightPolarization = writable(false); export const highlightPolarization = writable(false);
export const highlightCib = writable(false);

Просмотреть файл

@ -60,6 +60,12 @@ export const showPolarization = (filter, polarization) => {
return(polarization.fulfills10Articles || polarization.fulfills25Percent); return(polarization.fulfills10Articles || polarization.fulfills25Percent);
}; };
// check, if cib data can be shown
export const showCib = (filter, cib) => {
if (!filter) return(true);
return(cib.hasCib);
};
// extract filter items from data // extract filter items from data
export const extractFilterCategories = (data, name) => export const extractFilterCategories = (data, name) =>
uniq(data.map((d) => d[name]).flat()); uniq(data.map((d) => d[name]).flat());

Просмотреть файл

@ -11,13 +11,14 @@ export const urlFromFilters = (disinformantNations,
textSearch, textSearch,
contextData, contextData,
caseId = '', caseId = '',
highlightPolarization) => { highlightPolarization,
highlightCib) => {
const params = { const params = {
ts: encodeURIComponent(textSearch), ts: encodeURIComponent(textSearch),
as: [attributionScores[0], attributionScores[1]].join(';'), as: [attributionScores[0], attributionScores[1]].join(';'),
f: filtersToHex([disinformantNations, platforms, methods, sources, sourceCategories, tags, contextData]), f: filtersToHex([disinformantNations, platforms, methods, sources, sourceCategories, tags, contextData]),
id: caseId, id: caseId,
bool: filtersToBin([highlightPolarization]) bool: filtersToBin([highlightPolarization, highlightCib])
}; };
return `${baseUrl}/#${params.f}-${params.id}-${params.ts}-${params.as}-${params.bool}`; return `${baseUrl}/#${params.f}-${params.id}-${params.ts}-${params.as}-${params.bool}`;
@ -56,6 +57,7 @@ export const parseUrl = (hash) => {
caseId: caseId === '' ? undefined : +caseId, caseId: caseId === '' ? undefined : +caseId,
textSearch: decodeURIComponent(textSearch), textSearch: decodeURIComponent(textSearch),
attributionScores: attributionScores.split(';').map((d) => +d), attributionScores: attributionScores.split(';').map((d) => +d),
highlightPolarization: boolArray[0] highlightPolarization: boolArray[0],
highlightCib: boolArray[1]
}; };
}; };