You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
214 lines
5.8 KiB
214 lines
5.8 KiB
var poseidon_translations = { |
|
el_gr: { |
|
measurement_tab_title: 'Μετρήσεις', |
|
choose_date_from: 'Ημερομηνία Από', |
|
choose_date_to: 'Ημερομηνία Έως', |
|
clear_btn: 'Καθαρισμός Φόρμας', |
|
execute_btn: 'Εμφάνιση Αποτελεσμάτων', |
|
panel_title: 'Poseidon System', |
|
select_geo: 'Επιλέξτε Περιοχή', |
|
choose_parameter: 'Επιλέξτε Παράμετρο', |
|
choose_date_from: 'Ημερομηνία Από', |
|
choose_date_to: 'Ημερομηνία Έως', |
|
no_records: 'Δεν βρέθηκαν δεδομένα', |
|
filename: 'Αρχεία', |
|
send_email: 'Αποστολή e-mail', |
|
please_wait: 'Παρακαλώ περιμένετε...' |
|
}, |
|
en_us: { |
|
measurement_tab_title: 'Measurements', |
|
choose_date_from: 'Date From', |
|
choose_date_to: 'Date To', |
|
clear_btn: 'Clear Form', |
|
execute_btn: 'Show Results', |
|
panel_title: 'Poseidon System', |
|
select_geo: 'Select Area', |
|
choose_parameter: 'Select Parameter', |
|
choose_date_from: 'Date From', |
|
choose_date_to: 'Date To', |
|
no_records: 'No records found', |
|
filename: 'Files', |
|
send_email: 'Send e-mail', |
|
please_wait: 'Please wait...' |
|
} |
|
} |
|
|
|
var poseidon_layers = [ |
|
['poseidon:poseidon', 'da3386bf44588b37a7ff447ae374582f18340009637aa630afaa963a41d3650d'] |
|
]; |
|
|
|
function poseidon_measurements_tab(w) { |
|
|
|
w.setPosition(-150,-150) |
|
w.setWidth(700); |
|
w.setHeight(530); |
|
|
|
var _layer = mapFindLayerById(w._feature._layerId); |
|
|
|
if (poseidon_layers.findIndex(x => x[0] === _layer._layerObject._layerName) >= 0) { |
|
|
|
var _Id = Ext.id(); |
|
|
|
var tab = Ext.create('Ext.Panel', |
|
{ |
|
title: poseidon_translations[language].measurement_tab_title, |
|
border: false, |
|
layout: 'fit', |
|
autoScroll: true, |
|
items: [{ |
|
xtype: 'tabpanel', |
|
id: _Id, |
|
border: false, |
|
style: 'padding:0px;', |
|
items: [ |
|
|
|
] |
|
}], |
|
listeners: { |
|
beforerender: function () { |
|
|
|
var p = new fn_get(); |
|
|
|
p._async = true; |
|
|
|
p._data = [{ |
|
_layerId: w._feature._layerId, |
|
_serviceType: mapFindLayerById(w._feature._layerId)._serviceObject._serviceType, |
|
_serviceName: mapFindLayerById(w._feature._layerId)._serviceObject._serviceName, |
|
_layerName: mapFindLayerById(w._feature._layerId)._layerObject._layerName, |
|
_featureUrl: w._feature._featureUrl, |
|
_request: "getAttributes" |
|
}] |
|
|
|
p._timeout = 5000; |
|
|
|
p._success = function (_response, _opts) { |
|
|
|
var _response = Ext.JSON.decode(_response.responseText)[0]._response._attributes[0][0]; |
|
|
|
var parameters = JSON.parse(_response.pgroup) |
|
|
|
var categories = []; |
|
|
|
Object.keys(parameters).forEach(function (i) { |
|
if (!categories.find(o => o["category"] === parameters[i]['long'])) |
|
categories.push({ "category": parameters[i]['long'], "parameters": [] }); |
|
}) |
|
|
|
for (const property in parameters) { |
|
|
|
var cat = categories.find(category => category['category'] === parameters[property]['long']) |
|
|
|
cat.parameters.push(property); |
|
} |
|
|
|
categories.forEach(function (tab) { |
|
|
|
var category_tab = poseidon_create_category_tab(tab, _Id, _response) |
|
|
|
Ext.getCmp(_Id).add(category_tab); |
|
|
|
}) |
|
|
|
Ext.getCmp(_Id).setActiveTab(0); |
|
|
|
}; |
|
|
|
p.get(); |
|
|
|
} |
|
} |
|
} |
|
); |
|
|
|
return tab |
|
|
|
} |
|
|
|
} |
|
|
|
function poseidon_create_category_tab(tab, _Id, _response) { |
|
|
|
var category_tab = Ext.create('Ext.Panel', { |
|
title: tab["category"], |
|
border: false, |
|
layout: 'fit', |
|
autoScroll: true, |
|
id: tab["category"] + _Id, |
|
items: [{ |
|
xtype: 'tabpanel', |
|
layout: 'form', |
|
border: false, |
|
items: tab.parameters.map(function (param) { |
|
|
|
return poseidon_create_tab_parameter(tab, param, _Id, _response) |
|
|
|
}) |
|
}] |
|
}); |
|
|
|
return category_tab; |
|
|
|
} |
|
|
|
function poseidon_create_tab_parameter(tab, param, _Id, _response) { |
|
|
|
var id = _response['tspr'] + '_' + _response['type'] + '_' + _response['name_code']; |
|
var chosenDtEnd = _response['dateEnd'].split('T')[0]; |
|
var chosenDtStart = _response['dateStart'].split('T')[0]; |
|
|
|
var parameter_tab = Ext.create('Ext.Panel', { |
|
title: param, |
|
border: false, |
|
layout: 'fit', |
|
autoScroll: true, |
|
id: tab["category"] + param + _Id, |
|
html: '<div id="' + tab["category"] + param + _Id + '_chart" style="width:100%; height:400px;">' + poseidon_translations[language].please_wait + '</div>', |
|
listeners: { |
|
afterrender: function () { |
|
|
|
var title = ''; |
|
|
|
fetch(host + 'modules/poseidon/index.php?request=0&id=' + id) |
|
.then(response => response.json()) |
|
.then(data => { |
|
title = data['info']['params'][tab["category"].charAt(0)][param]['name'] + ' (' + data['info']['params'][tab["category"].charAt(0)][param]['unit'] + ')'; |
|
}); |
|
|
|
Highcharts.getJSON(host + 'modules/poseidon/index.php?request=1&id=' + id + '¶m=' + param + '&chosenDtStart=' + chosenDtStart + '&chosenDtEnd=' + chosenDtEnd, function (data) { |
|
|
|
var d = data[0][0].data; |
|
|
|
var dn = []; |
|
|
|
d.forEach(function (i) { |
|
dn.push([i.x, i.y]); |
|
}); |
|
|
|
Highcharts.stockChart(tab["category"] + param + _Id + '_chart', { |
|
|
|
rangeSelector: { |
|
selected: 1 |
|
}, |
|
|
|
title: { |
|
text: title |
|
}, |
|
|
|
series: [{ |
|
name: param, |
|
data: dn |
|
}] |
|
}); |
|
}); |
|
|
|
} |
|
} |
|
}); |
|
|
|
return parameter_tab; |
|
|
|
} |
|
|
|
|
|
init_featureInfoWindow_tabs.push(poseidon_measurements_tab); |