1+ // Function to update the modal content
2+ function updateSelectedSignalsModal ( ) {
3+ var selectedSignals = localStorage . getItem ( 'selectedSignals' ) ;
4+ var signals = selectedSignals ? JSON . parse ( selectedSignals ) : { } ;
5+
6+ var selectedSignalsList = document . getElementById ( 'selectedSignalsList' ) ;
7+ selectedSignalsList . innerHTML = '' ; // Clear existing items
8+
9+
10+ for ( const signal in signals ) {
11+ let data = JSON . parse ( localStorage . getItem ( "selectedSignals" ) ) [ signal ] ;
12+ console . log ( data ) ;
13+ var tr = document . createElement ( 'tr' ) ;
14+ var memberName = document . createElement ( 'td' ) ;
15+ memberName . textContent = data [ 'info' ] [ 'memberName' ] ;
16+ tr . appendChild ( memberName ) ;
17+ var memberDescription = document . createElement ( 'td' ) ;
18+ memberDescription . textContent = data [ 'info' ] [ 'memberDescription' ] ;
19+ tr . appendChild ( memberDescription ) ;
20+ var dataSource = document . createElement ( 'td' ) ;
21+ dataSource . textContent = data [ 'epivis' ] [ 'params' ] [ 'data_source' ] ;
22+ tr . appendChild ( dataSource ) ;
23+ var signalName = document . createElement ( 'td' ) ;
24+ signalName . textContent = data [ 'epivis' ] [ 'params' ] [ 'signal' ] ;
25+ tr . appendChild ( signalName ) ;
26+ var timeType = document . createElement ( 'td' ) ;
27+ timeType . textContent = data [ 'epivis' ] [ 'params' ] [ 'time_type' ] ;
28+ tr . appendChild ( timeType ) ;
29+ var geoType = document . createElement ( 'td' ) ;
30+ geoType . textContent = data [ 'epivis' ] [ 'params' ] [ 'geo_type' ] ;
31+ tr . appendChild ( geoType ) ;
32+ var geoValue = document . createElement ( 'td' ) ;
33+ geoValue . textContent = data [ 'epivis' ] [ 'params' ] [ 'geo_value' ] ;
34+ tr . appendChild ( geoValue ) ;
35+ selectedSignalsList . appendChild ( tr ) ;
36+ }
37+ }
38+
39+ function addSelectedSignals ( dataSource , timeType , signalSetEndpoint ) {
40+ let selectedSignals = localStorage . getItem ( "selectedSignals" ) ;
41+ selectedSignals = selectedSignals ? JSON . parse ( selectedSignals ) : { } ;
42+ var dataSignals = Array . from ( document . getElementsByName ( 'selectedSignal' ) , ( signal ) => ( signal . checked ) ? signal : null ) . filter ( ( el ) => el !== null ) ;
43+ var geographicType = document . getElementById ( 'geographic_type' ) . value ;
44+ // geographicValue is a comma separated string of geographic values. type can be string or integer
45+ // in case of string, it should be converted to lowercase
46+ // else it will be treated as integer
47+ var geographicValue = $ ( '#geographic_value' ) . select2 ( 'data' ) . map ( ( el ) => ( typeof el . id === 'string' ) ? el . id . toLowerCase ( ) : el . id ) . join ( ',' ) ;
48+
49+ if ( geographicType === 'Choose...' || geographicValue === '' ) {
50+ showWarningAlert ( "Geographic Type or Geographic Value is not selected." ) ;
51+ return ;
52+ }
53+
54+ var geographicValues = geographicValue . split ( ',' ) ;
55+ dataSignals . forEach ( ( signal ) => {
56+ geographicValues . forEach ( ( geographicValue ) => {
57+ selectedSignals [ `${ signal . value } _${ geographicValue } ` ] = {
58+ info : {
59+ memberName : signal . getAttribute ( 'data-member-name' ) ,
60+ memberDescription : signal . getAttribute ( 'data-member-description' ) ,
61+ } ,
62+ epivis : {
63+ color : '#' + ( Math . random ( ) * 0xFFFFFF << 0 ) . toString ( 16 ) . padStart ( 6 , '0' ) ,
64+ title : "value" ,
65+ params : {
66+ _endpoint : signalSetEndpoint ,
67+ data_source : dataSource ,
68+ signal : signal . value ,
69+ time_type : timeType ,
70+ geo_type : geographicType ,
71+ geo_value : geographicValue
72+ }
73+ }
74+ } ;
75+ } ) ;
76+ } ) ;
77+ localStorage . setItem ( "selectedSignals" , JSON . stringify ( selectedSignals ) ) ;
78+ updateSelectedSignalsModal ( ) ;
79+ $ ( "#showSelectedSignalsButton" ) . show ( ) ;
80+ }
81+
82+ function plotData ( epivisUrl ) {
83+ var dataSets = [ ] ;
84+ for ( const signal in JSON . parse ( localStorage . getItem ( "selectedSignals" ) ) ) {
85+ dataSets . push ( JSON . parse ( localStorage . getItem ( "selectedSignals" ) ) [ signal ] [ 'epivis' ] ) ;
86+ }
87+ var urlParamsEncoded = btoa ( `{"datasets":${ JSON . stringify ( dataSets ) } }` ) ;
88+
89+ var linkToEpivis = `${ epivisUrl } #${ urlParamsEncoded } `
90+ window . open ( linkToEpivis , '_blank' ) . focus ( ) ;
91+ }
92+
93+ document . addEventListener ( 'DOMContentLoaded' , function ( ) {
94+ // Call the function to update the modal content when the page loads
95+ updateSelectedSignalsModal ( ) ;
96+
97+ } ) ;
98+
99+
100+
101+ //for (const signal in JSON.parse(localStorage.getItem("selectedSignals"))) {console.log(JSON.parse(localStorage.getItem("selectedSignals"))[signal])}
0 commit comments