Ei muokkausyhteenvetoa |
Ei muokkausyhteenvetoa |
||
| (61 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
| Rivi 135: | Rivi 135: | ||
memo.widgetEl.css( 'position', 'relative' ); | memo.widgetEl.css( 'position', 'relative' ); | ||
memo.widgetEl.css( 'margin-bottom', '0.5em' ); | //memo.widgetEl.css( 'margin-bottom', '0.5em' ); | ||
// add loader animation | // add loader animation | ||
| Rivi 145: | Rivi 145: | ||
// add chart container | // add chart container | ||
memo.widgetEl.append( '<div class="card JwCard | memo.widgetEl.append( '<div class="card JwCard Xmb-2" style="position: relative; width: 100%; height: 100%;"><div class="card-header" style="min-height: 49px;"></div><div class="card-body p-2" style="position: relative; width: 100%; height: 100%;"><div class="chart-container" style="position: relative; z-index: 110; width: 100%; height: 100%;"></div></div><div class="card-footer"></div>' ); | ||
memo.chartEl = jQuery( this ).find( '.chart-container' ); | memo.chartEl = jQuery( this ).find( '.chart-container' ); | ||
memo.chartEl.css( 'height', memo.height + 'px' ); | memo.chartEl.css( 'height', memo.height + 'px' ); | ||
| Rivi 404: | Rivi 404: | ||
} | } | ||
if ( memo.obscode == 'cond' ) { console.log( so ); } | |||
memo.jw.loadObses( so, function( o ) { | memo.jw.loadObses( so, function( o ) { | ||
if ( memo.obscode == 'cond' ) { console.log( memo.jw.obs ); } | |||
memo.obses = memo.jw.obs; | memo.obses = memo.jw.obs; | ||
drawVisualization(memo); | drawVisualization(memo); | ||
| Rivi 501: | Rivi 503: | ||
obs.data.val = obs.data.val/100; | obs.data.val = obs.data.val/100; | ||
obs.value = obs.value/100; | obs.value = obs.value/100; | ||
} | |||
if ( memo.obscode == 'snow_load' ) { | |||
obs.value = obs.data.load; | |||
} | } | ||
| Rivi 516: | Rivi 522: | ||
// create addinfo | // create addinfo | ||
obs.addInfo = ""; | obs.addInfo = ""; | ||
if ( !!obs.media_url ) { | if ( !!obs.media_url ) { | ||
obs.img = new Image(); | obs.img = new Image(); | ||
obs.img.src = obs.media_url; | obs.img.src = obs.media_url; | ||
obs.addInfo = '<img style=" | obs.addInfo = '<img style="object-fit: cover; width: 200px; height: 200px; margin: 5px 0 8px 0;" src="' + obs.media_url + '" />'; | ||
} | } | ||
if ( !!obs.printouts[ 'Lisätiedot' ][0] ) { | if ( !!obs.printouts[ 'Lisätiedot' ][0] ) { | ||
| Rivi 591: | Rivi 597: | ||
obs.popup += '(' + obs.obsdatetime.inRelationToToday(memo.lang) + ')'; | obs.popup += '(' + obs.obsdatetime.inRelationToToday(memo.lang) + ')'; | ||
obs.popup += '</div>'; | obs.popup += '</div>'; | ||
if (!!obs.addInfo) { | if (!!obs.addInfo) { | ||
| Rivi 686: | Rivi 692: | ||
if ( depthcats[0] == 'surface' ) { | if ( depthcats[0] == 'surface' ) { | ||
memo.title = memo.title.replace( ' | memo.title = memo.title.replace( '[D]', '(' + i18n[ 'surface' ][ memo.lang ] + ')' ); | ||
} else if ( depthcats[0] == 'bottom' ) { | } else if ( depthcats[0] == 'bottom' ) { | ||
memo.title = memo.title.replace( ' | memo.title = memo.title.replace( '[D]', '(' + i18n[ 'bottom' ][ memo.lang ] + ')' ); | ||
} | } | ||
| Rivi 724: | Rivi 730: | ||
memo.options.vAxis.viewWindow.min = 0; | memo.options.vAxis.viewWindow.min = 0; | ||
} else { | } else { | ||
memo.options.vAxis.viewWindow.min = memo.obsMinValue; | // memo.options.vAxis.viewWindow.min = memo.obsMinValue; | ||
} | } | ||
} else { | } else { | ||
| Rivi 769: | Rivi 775: | ||
if ( memo.obsesA.length == 0 ) { | if ( memo.obsesA.length == 0 ) { | ||
console.log( 'No obses' ); | console.log( 'No obses' ); | ||
//console.log( memo ); | |||
} else if (memo.graphType == 'trend') { | } else if (memo.graphType == 'trend') { | ||
| Rivi 1 403: | Rivi 1 410: | ||
mwDate.setDate( mwDate.getDate() - mwDate.getDay() + 3 ); | mwDate.setDate( mwDate.getDate() - mwDate.getDay() + 3 ); | ||
memo.obsesA[o].mwDate = mwDate; | memo.obsesA[o].mwDate = mwDate; | ||
y = mwDate.getFullYear(); | y = mwDate.getFullYear(); | ||
w = mwDate.getWeek(); | w = mwDate.getWeek(); | ||
v = memo.obsesA[o].value + memo.distF*Math.random() - memo.distF*Math.random(); | v = memo.obsesA[o].value + memo.distF*Math.random() - memo.distF*Math.random(); | ||
if ( memo.season == 'winter' && w == 1 && y == memo.curSeason ) { y++; } | if ( memo.season == 'winter' && w == 1 && y == memo.curSeason ) { y++; } | ||
if ( memo.season == 'summer' && w == 1 && y < memo.obsesA[o].compareDate.getFullYear() ) { y++; } | |||
if ( typeof memo.avgW[y] == 'undefined' ) { memo.avgW[y] = {}; } | if ( typeof memo.avgW[y] == 'undefined' ) { memo.avgW[y] = {}; } | ||
| Rivi 1 420: | Rivi 1 430: | ||
} | } | ||
} | } | ||
console.log( memo ); | |||
// calculate standard deviation | // calculate standard deviation | ||
devSum = 0; | devSum = 0; | ||
| Rivi 1 626: | Rivi 1 638: | ||
y = obs.mwDate.getFullYear(); | y = obs.mwDate.getFullYear(); | ||
w = obs.mwDate.getWeek(); | w = obs.mwDate.getWeek(); | ||
if ( memo.season == 'winter' && w == 1 && y == memo.curSeason ) { y++; } | |||
if ( ( memo.season == 'winter' && w == 1 && y == memo.curSeason ) || y < memo.curSeason ) { y++; } | |||
var diff = obs.value - memo.avgW[ y ][ w ].avg; | var diff = obs.value - memo.avgW[ y ][ w ].avg; | ||
var diff = Math.round( diff*100 ); | var diff = Math.round( diff*100 ); | ||
| Rivi 1 678: | Rivi 1 692: | ||
memo.options.hAxis.ticks.push({v: middleOfMonth, f: i18n.months[m]['roman'] }); | memo.options.hAxis.ticks.push({v: middleOfMonth, f: i18n.months[m]['roman'] }); | ||
} | } | ||
} | |||
if ( memo.obscode == 'level' ) { | |||
memo.options.vAxis.viewWindow.min = Math.floor( memo.obsMinValue * 10 ) / 10; | |||
memo.options.vAxis.viewWindow.max = Math.ceil( memo.obsMaxValue * 10 ) / 10 ; | |||
} | } | ||
//console.log( memo ); | |||
drawChart( memo ); | drawChart( memo ); | ||
| Rivi 1 784: | Rivi 1 805: | ||
} | } | ||
var doResize = function( memo, force = false ) { | var doResize = function( memo, force = false ) { | ||
function wait() { | function wait() { | ||
if ( typeof memo.chartEl != 'undefined' && typeof memo.options != 'undefined' ) { | |||
var w = memo.chartEl.width(); | var w = memo.chartEl.width(); | ||
| Rivi 1 854: | Rivi 1 877: | ||
memo.chart.draw( memo.data, memo.options ); | memo.chart.draw( memo.data, memo.options ); | ||
} | } | ||
} else { | |||
setTimeout( wait, 500 ); | |||
} | |||
} | } | ||
//wait(); | //wait(); | ||
if ( typeof memo.chartEl != 'undefined' ) { | if ( typeof memo.chartEl != 'undefined' ) { | ||
setTimeout( wait, | setTimeout( wait, 100 ); | ||
} | } | ||
| Rivi 1 963: | Rivi 1 989: | ||
2: { 'fi': 'Runsaasti', 'en': 'Abundant', 'sv': 'Rikligt' }, | 2: { 'fi': 'Runsaasti', 'en': 'Abundant', 'sv': 'Rikligt' }, | ||
3: { 'fi': 'Erit. runsaasti', 'en': 'Very abundant', 'sv': 'Ytterst rikligt' } | 3: { 'fi': 'Erit. runsaasti', 'en': 'Very abundant', 'sv': 'Ytterst rikligt' } | ||
}, | |||
'unit': '', | |||
'axisTitleV': { 'fi': '', 'en': '', 'sv': '', 'ru': '' } | |||
}, | |||
'jelly': { | |||
'type': 'cat', | |||
'min': -0.5, | |||
'season': 'summer', | |||
'trend': { 'type': 'gaussian', 'layout': 'line' }, | |||
'title': { 'fi': 'Meduusat', 'en': 'Jelly fish', 'sv': 'Maneter' }, | |||
'catNames': { | |||
0: { 'fi': 'Ei meduusoja', 'en': 'No jelly fish', 'sv': 'Inga maneter' }, | |||
1: { 'fi': 'Vähän meduusoja', 'en': 'Some jelly fish', 'sv': 'Lite med maneter' }, | |||
2: { 'fi': 'Runsaasti meduusoja', 'en': 'Abundant with jelly fish', 'sv': 'Rikligt med maneter' } | |||
}, | |||
'catNamesShort': { | |||
0: { 'fi': 'Ei yhtään', 'en': 'None', 'sv': 'Inga' }, | |||
1: { 'fi': 'Vähän', 'en': 'Some', 'sv': 'Lite' }, | |||
2: { 'fi': 'Runsaasti', 'en': 'Abundant', 'sv': 'Rikligt' } | |||
}, | |||
'unit': '', | |||
'axisTitleV': { 'fi': '', 'en': '', 'sv': '', 'ru': '' } | |||
}, | |||
'trash': { | |||
'type': 'cat', | |||
'min': -0.5, | |||
'season': 'summer', | |||
'trend': { 'type': 'gaussian', 'layout': 'line' }, | |||
'title': { 'fi': 'Roskaisuus', 'en': 'Litter', 'sv': 'Rosk' }, | |||
'catNames': { | |||
0: { 'fi': 'Ei roskia', 'en': 'No litter', 'sv': 'Ingen rosk' }, | |||
1: { 'fi': 'Vähän roskia', 'en': 'Some litter', 'sv': 'Lite med rosk' }, | |||
2: { 'fi': 'Paljon roskia', 'en': 'Abundant with litter', 'sv': 'Rikligt med rosk' }, | |||
3: { 'fi': 'Erittäin paljon roskia', 'en': 'Very abundant with litter', 'sv': 'Ytterst rikligt med rosk' }, | |||
}, | |||
'catNamesShort': { | |||
0: { 'fi': 'Ei yhtään', 'en': 'None', 'sv': 'Inga' }, | |||
1: { 'fi': 'Vähän', 'en': 'Some', 'sv': 'Lite' }, | |||
2: { 'fi': 'Paljon', 'en': 'Abundant', 'sv': 'Rikligt' }, | |||
3: { 'fi': 'Erit. paljon', 'en': 'Very abundant', 'sv': 'Ytterst rikligt' }, | |||
}, | }, | ||
'unit': '', | 'unit': '', | ||
| Rivi 2 033: | Rivi 2 099: | ||
'direction': 1, | 'direction': 1, | ||
'trend': { 'type': 'gaussian', 'layout': 'line' }, | 'trend': { 'type': 'gaussian', 'layout': 'line' }, | ||
'title': { 'fi': 'Happamuus, pH', 'en': 'Acidity, pH', 'sv': 'Surhet, pH', 'ru': '???' }, | 'title': { 'fi': 'Happamuus, pH [D]', 'en': 'Acidity, pH', 'sv': 'Surhet, pH', 'ru': '???' }, | ||
'unit': '', | 'unit': '', | ||
'axisTitleV': { 'fi': 'Happamuus, pH', 'en': 'Acidity, pH', 'sv': 'Surhet, pH', 'ru': 'm' } | 'axisTitleV': { 'fi': 'Happamuus, pH', 'en': 'Acidity, pH', 'sv': 'Surhet, pH', 'ru': 'm' } | ||
| Rivi 2 043: | Rivi 2 109: | ||
'direction': 1, | 'direction': 1, | ||
'trend': { 'type': 'gaussian', 'layout': 'line' }, | 'trend': { 'type': 'gaussian', 'layout': 'line' }, | ||
'title': { 'fi': 'Sähkönjohtavuus', 'en': 'Conductivity', 'sv': 'Konduktivitet', 'ru': '???' }, | 'title': { 'fi': 'Sähkönjohtavuus [D]', 'en': 'Conductivity', 'sv': 'Konduktivitet', 'ru': '???' }, | ||
'unit': 'mS/m', | 'unit': 'mS/m', | ||
'axisTitleV': { 'fi': 'Sähkönjohtavuus, mS/m', 'en': 'Conductivity, mS/m', 'sv': 'Konduktivitet, mS/m', 'ru': 'm' } | 'axisTitleV': { 'fi': 'Sähkönjohtavuus, mS/m', 'en': 'Conductivity, mS/m', 'sv': 'Konduktivitet, mS/m', 'ru': 'm' } | ||
| Rivi 2 053: | Rivi 2 119: | ||
'direction': 1, | 'direction': 1, | ||
'trend': { 'type': 'gaussian', 'layout': 'line' }, | 'trend': { 'type': 'gaussian', 'layout': 'line' }, | ||
'title': { 'fi': 'Kokonaisfosfori', 'en': 'Total phosphorus', 'sv': 'Totalfosfor', 'ru': '???' }, | 'title': { 'fi': 'Kokonaisfosfori [D]', 'en': 'Total phosphorus', 'sv': 'Totalfosfor', 'ru': '???' }, | ||
'unit': 'µg/l', | 'unit': 'µg/l', | ||
'axisTitleV': { 'fi': 'Pitoisuus, µg/l', 'en': 'Concentration, µg/l', 'sv': 'Koncentration, µg/l', 'ru': 'm' }, | 'axisTitleV': { 'fi': 'Pitoisuus, µg/l', 'en': 'Concentration, µg/l', 'sv': 'Koncentration, µg/l', 'ru': 'm' }, | ||
| Rivi 2 064: | Rivi 2 130: | ||
'direction': 1, | 'direction': 1, | ||
'trend': { 'type': 'gaussian', 'layout': 'line' }, | 'trend': { 'type': 'gaussian', 'layout': 'line' }, | ||
'title': { 'fi': 'Kokonaistyppi', 'en': 'Total nitrogen', 'sv': 'Totalkväve', 'ru': '???' }, | 'title': { 'fi': 'Kokonaistyppi [D]', 'en': 'Total nitrogen', 'sv': 'Totalkväve', 'ru': '???' }, | ||
'unit': 'µg/l', | 'unit': 'µg/l', | ||
'axisTitleV': { 'fi': 'Pitoisuus, µg/l', 'en': 'Concentration, µg/l', 'sv': 'Koncentration, µg/l', 'ru': 'm' } | 'axisTitleV': { 'fi': 'Pitoisuus, µg/l', 'en': 'Concentration, µg/l', 'sv': 'Koncentration, µg/l', 'ru': 'm' } | ||
| Rivi 2 074: | Rivi 2 140: | ||
'direction': 1, | 'direction': 1, | ||
'trend': { 'type': 'gaussian', 'layout': 'line' }, | 'trend': { 'type': 'gaussian', 'layout': 'line' }, | ||
'title': { 'fi': 'Happipitoisuus', 'en': 'Dissolved oxygen', 'sv': 'Syrehalt', 'ru': '???' }, | 'title': { 'fi': 'Happipitoisuus [D]', 'en': 'Dissolved oxygen', 'sv': 'Syrehalt', 'ru': '???' }, | ||
'unit': 'mg/l', | 'unit': 'mg/l', | ||
'axisTitleV': { 'fi': 'Pitoisuus, mg/l', 'en': 'Concentration, mg/l', 'sv': 'Koncentration, mg/l', 'ru': 'm' } | 'axisTitleV': { 'fi': 'Pitoisuus, mg/l', 'en': 'Concentration, mg/l', 'sv': 'Koncentration, mg/l', 'ru': 'm' } | ||
| Rivi 2 085: | Rivi 2 151: | ||
'direction': 1, | 'direction': 1, | ||
'trend': { 'type': 'gaussian', 'layout': 'line' }, | 'trend': { 'type': 'gaussian', 'layout': 'line' }, | ||
'title': { 'fi': 'Hapen kyllästysaste', 'en': 'Oxygen saturation', 'sv': 'Syremättnad' }, | 'title': { 'fi': 'Hapen kyllästysaste [D]', 'en': 'Oxygen saturation', 'sv': 'Syremättnad' }, | ||
'unit': '%', | 'unit': '%', | ||
'axisTitleV': { 'fi': 'Kyllästys-%', 'en': 'Oxygen saturation, %', 'sv': 'Syremättnad, %' } | 'axisTitleV': { 'fi': 'Kyllästys-%', 'en': 'Oxygen saturation, %', 'sv': 'Syremättnad, %' } | ||
| Rivi 2 095: | Rivi 2 161: | ||
'direction': 1, | 'direction': 1, | ||
'trend': { 'type': 'gaussian', 'layout': 'line' }, | 'trend': { 'type': 'gaussian', 'layout': 'line' }, | ||
'title': { 'fi': 'A-klorofylli', 'en': 'Chlorophyll a', 'sv': 'Klorofyll a', 'ru': '???' }, | 'title': { 'fi': 'A-klorofylli [D]', 'en': 'Chlorophyll a', 'sv': 'Klorofyll a', 'ru': '???' }, | ||
'unit': 'µg/l', | 'unit': 'µg/l', | ||
'axisTitleV': { 'fi': 'pitoisuus, µg/l', 'en': 'Concentration, µg/l', 'sv': 'Konsentration, µg/l' } | 'axisTitleV': { 'fi': 'pitoisuus, µg/l', 'en': 'Concentration, µg/l', 'sv': 'Konsentration, µg/l' } | ||


