Commit d3a2030f by Esteban Ramirez Mora

Actualizaciones

parent a8c3f712
......@@ -245,7 +245,7 @@
<div class="btn_nav_continer">
<button id="specie_before" class="btn btn-primary glyphicon glyphicon-chevron-up" type="button" ></button>
<button id="specie_before" class="btn btn-primary glyphicon glyphicon-chevron-up" type="button" ></button>
<button id="specie_next" class="btn btn-primary glyphicon glyphicon-chevron-down" type="button" ></button>
......@@ -292,6 +292,41 @@
</div>
<div id="tuto_agent" class="col-md-6 col-sm-12 col-xs-12">
<div class="form-group">
<label class = "text-sm" id="agent">Agente:</label>
<select id = "agent_selected" class="form-control">
<option value="model_default" selected disabled>Selecione un agente</option>
<option value="Patogenos">Patógeno</option>
<option value="Hospederos">Hospedero</option>
<option value="Vectores">Vector</option>
</select>
</div>
</div>
<div id="tuto_disease" class="col-md-6 col-sm-12 col-xs-12">
<div class="form-group" >
<label class = "text-sm" id="disease">Enfermedad:</label>
<select id = "disease_selected" class="form-control">
<option value = dis_default" selected disabled> Seleccione Enfermedad</option>
<option value ="todas">Sin enfermedad</option>
<!--<option value="Enfermedad de Chagas">Enfermedad de Chagas</option>
<option value="Fiebre de Zika"> Fiebre de Zika</option>
<option value="Fiebre de Dengue">Fiebre de Dengue</option>
<option value="Fiebre Chikunguña"> Fiebre Chikinguña</option>
<option value="Hantavirosis"> Hantavirosis</option>
<option value="Fiebre del Nilo"> Fiebre del Nilo</option>
<option value="Enfermedad de Lyme"> Enfermedad de Lyme </option>
<option value="Fiebre del Nilo"> Fiebre del Nilo</option>
<option value="Leptospirosis"> Leptospirosis</option>
<option value="Leishmaniasis"> Leishmaniasis</option>-->
</select>
</div>
</div>
</div>
<!-- container de 40% seteado en componete -->
......@@ -536,8 +571,8 @@
<div class="col-md-5 margin-top-five pull-left ">
<label class="label_item " id="labelValidationTemp" type="label"></label>
<input id="chkValidationTemp" class="checkbox_item " type="checkbox"/>
</div>
</div>
</div>
<!-- <div class="row"> -->
......@@ -553,11 +588,11 @@
Fin:
<input id="date_timepicker_end_val" type="text" value="" style="width: 100px;" disabled="true">
</div>
</div>
<!-- </div> -->
<!-- </div> -->
</div>
......@@ -582,11 +617,11 @@
<div class="col-md-5 margin-top-five pull-left ">
<label class="label_item " id="labelValidation" type="label"></label>
<input id="chkValidation" class="checkbox_item " type="checkbox"/>
</div>
</div>
</div>
</div>
......@@ -616,9 +651,9 @@
<input id="chkMinOcc" class="checkbox_item pull-left" type="checkbox" checked="true"/>
<input id="occ_number" class="occ_number " type="number" min="1" value="1">
</div>
</div>
</div>
</div>
</div>
......@@ -647,13 +682,13 @@
<input id="chkApriori" class="checkbox_item pull-left" type="checkbox" />
</div>
</div>
</div>
</div>
<div id="tuto_map_prob" class="row container_15p">
......@@ -679,11 +714,11 @@
<label class="label_item pull-left" id="lb_mapa_prob" type="label"></label>
<input id="chkMapaProb" class="checkbox_item pull-left" type="checkbox" />
</div>
</div>
</div>
</div>
<!-- </div> -->
......
......@@ -66,8 +66,8 @@
</header>
<section id="content">
<h2>Bienvenido a EPI-SPECIES<span>Plataforma Universitaria de Eco-epidemiologia Espacial</span></h2>
<p>EPI-SPECIES es una herramienta interactiva para el análisis del nicho epidemiológico de enfermedades infecciosas y la creación de modelos predictivos para analizar su dinámica espacio-temporal en México.</p>
<h2>Bienvenido a EpI-SPECIES<span>Plataforma Universitaria de Eco-epidemiología Espacial</span></h2>
<p>EpI-SPECIES es una herramienta interactiva para el análisis del nicho epidemiológico de enfermedades infecciosas y la creación de modelos predictivos para analizar su dinámica espacio-temporal en México.</p>
<h3>Análisis de nicho epidemiológico</h3>
<p>Si deseas realizar un análisis de nicho epidemiológico basta con seguir los siguientes pasos:</p>
<ul class="steps">
......@@ -76,7 +76,7 @@
<li>Analiza tus resultados</li>
<li><a class="button-1" href="https://epispecies.c3.unam.mx/geoportal_v0.1.html">Ir a Análisis de Nicho</a></li>
</ul>
<p>Si es la primera vez que utilizas la plataforma, te recomendamos dar clic en el botón de <b>Casos de uso</b> o el botón de <b>Tutorial</b> que te orientara paso a paso como utilizar EPI-SPECIES</p>
<p>Si es la primera vez que utilizas la plataforma, te recomendamos dar clic en el botón de <b>Casos de uso</b> o el botón de <b>Tutorial</b> que te orientara paso a paso como utilizar EpI-SPECIES</p>
</section>
<footer>
<p class="copyright">©Todos los derechos reservados Chilam · C3 · UNAM - 2021.</p>
......
......@@ -28,7 +28,7 @@
<article>
<pre class="prettyprint source linenums"><code>
/**
* Módulo variable, utilizado para crear y gestionar los selectores de grupos de variables en nicho ecológico y comunidad ecológica.
* Módulo variable, utilizado para crear y gos sestionar lelectores de grupos de variables en nicho ecológico y comunidad ecológica.
*
* @namespace variable_module
*/
......
......@@ -692,148 +692,189 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
_REGION_SELECTED = region_selected;
$.ajax({
url: _url_zacatuche + "/niche/especie/getGridGeoJson",
type: 'post',
dataType: "json",
data: {
"grid_res": grid_res,
"footprint_region": _REGION_SELECTED
},
success: function (json) {
console.log(json);
// Asegura que el grid este cargado antes de realizar una generacion por enlace
$("#loadData").prop("disabled", false);
$('#map').loading('stop');
$('#map2').loading('stop');
$('#tuto_mapa_occ').loading('stop');
let query = 'query{get_mesh(grid_res: "' + _grid_res + '"){cve simplified_geom}}'
console.log(query)
$.ajax({
method: "POST",
url : "http://10.90.0.42:4003/graphql/mesh/",
contentType: "application/json",
data: JSON.stringify({query: query}),
success: function (resp) {
let data = resp["data"];
let obj = data["get_mesh"]
let json = {type: 'FeatureCollection',crs: {}, features: []}
console.log(obj)
for (let i = 0; i < obj.length; i++)
{let prop = new Object();
let geom = new Object();
geom = Object.assign({},obj[i].simplified_geom)
prop = parseInt(obj[i].cve)
let prope = new Object();
prope.gridid =prop
let type = new Object();
type.type = "feature"
type.geometry = geom
type.properties = prope
json.features.push(type)
json.crs = {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:EPSG::4326"
}
}
}
_grid_map = json;
_grid_res = grid_res;
_first_loaded = true;
_pad = 0;
colorizeFeatures([], _grid_map, _tileLayer);
_tileIndex = geojsonvt(_grid_map, _tileOptions);
_tileLayer.redraw();
//console.log(json[1].geometry)
console.log(json)
// obj["features"].push( json["geometry"])
if (_tipo_modulo === _MODULO_NICHO) {
_grid_map_occ = jQuery.extend(true, {}, json) // se genera un clon del gridmap
_grid_map_target = jQuery.extend(true, {}, json) // se genera un clon del gridmap
_grid_map_decil = jQuery.extend(true, {}, json) // se genera un clon del gridmap
_grid_map_state_mun = jQuery.extend(true, {}, json) // se genera un clon del gridmap
// console.log(_grid_map_occ);
// console.log(_grid_map_target);
// console.log(features)
// Asegura que el grid este cargado antes de realizar una generacion por enlace
$("#loadData").prop("disabled", false);
$('#map').loading('stop');
$('#map2').loading('stop');
$('#tuto_mapa_occ').loading('stop');
_grid_map = json;
colorizeDecileFeatures(_grid_map_decil, _tileDecilLayer);
_tileIndexDecil = geojsonvt(_grid_map_decil, _tileOptions);
_tileDecilLayer.redraw();
_grid_res = grid_res;
_first_loaded = true;
colorizeTargetFeatures(_grid_map_target, _tileLayerSpecies);
_tileIndexSpecies = geojsonvt(_grid_map_target, _tileOptions);
_tileLayerSpecies.redraw();
_pad = 0;
colorizeFeatures([], _grid_map, _tileLayer);
_tileIndex = geojsonvt(_grid_map, _tileOptions);
_tileLayer.redraw();
colorizeFeatures([], _grid_map_occ, _tileLayerSP);
_tileIndexSP = geojsonvt(_grid_map_occ, _tileOptions);
_tileLayerSP.redraw();
if (_tipo_modulo === _MODULO_NICHO) {
colorizeFeaturesSelectedStateMun([], _grid_map_state_mun, _tileLayerStateMun);
_tileIndexStateMun = geojsonvt(_grid_map_state_mun, _tileOptions);
_tileLayerStateMun.redraw();
_grid_map_occ = jQuery.extend(true, {}, json) // se genera un clon del gridmap
_grid_map_target = jQuery.extend(true, {}, json) // se genera un clon del gridmap
_grid_map_decil = jQuery.extend(true, {}, json) // se genera un clon del gridmap
_grid_map_state_mun = jQuery.extend(true, {}, json) // se genera un clon del gridmap
console.log(_grid_map_occ);
console.log(_grid_map_target);
}
_first_loaded = false;
colorizeDecileFeatures(_grid_map_decil, _tileDecilLayer);
_tileIndexDecil = geojsonvt(_grid_map_decil, _tileOptions);
_tileDecilLayer.redraw();
// agrega listener para generar pop en celda
map.on('click', function (e) {
console.log(e.latlng.lat + ", " + e.latlng.lng);
colorizeTargetFeatures(_grid_map_target, _tileLayerSpecies);
_tileIndexSpecies = geojsonvt(_grid_map_target, _tileOptions);
_tileLayerSpecies.redraw();
if (_tipo_modulo === _MODULO_NICHO) {
_display_module.showGetFeatureInfo(e.latlng.lat, e.latlng.lng, _taxones, _REGION_SELECTED);
}
});
colorizeFeatures([], _grid_map_occ, _tileLayerSP);
_tileIndexSP = geojsonvt(_grid_map_occ, _tileOptions);
_tileLayerSP.redraw();
if (_tipo_modulo === _MODULO_NICHO) {
map_sp.on('click', function (e) {
console.log(e.latlng.lat + ", " + e.latlng.lng);
colorizeFeaturesSelectedStateMun([], _grid_map_state_mun, _tileLayerStateMun);
_tileIndexStateMun = geojsonvt(_grid_map_state_mun, _tileOptions);
_tileLayerStateMun.redraw();
if (_tipo_modulo === _MODULO_NICHO) {
// verifica que ya este la malla cargada y que al menos exista un especie solcitada
if(_grid_map_occ === undefined){
return
}
}
var rango_fechas = $("#sliderFecha").slider("values");
// console.log(rango_fechas)
_first_loaded = false;
if(_lin_inf === undefined)
_lin_inf = rango_fechas[0]
if(_lin_sup === undefined)
_lin_sup = rango_fechas[1]
// console.log("_lin_inf: " + _lin_inf)
// console.log("_lin_sup: " + _lin_sup)
// console.log("_sin_fecha: " + _sin_fecha)
// console.log("_con_fosil: " + _con_fosil)
console.log(_taxones)
console.log("_DELETE_STATE_CELLS: " + _DELETE_STATE_CELLS)
// agrega listener para generar pop en celda
map.on('click', function (e) {
_display_module.showGetFeatureInfoOccCell(e.latlng.lat, e.latlng.lng, _taxones, _lin_inf, _lin_sup, _sin_fecha, _con_fosil, _grid_res, _REGION_SELECTED, _DELETE_STATE_CELLS );
}
console.log(e.latlng.lat + ", " + e.latlng.lng);
});
if (_tipo_modulo === _MODULO_NICHO) {
_display_module.showGetFeatureInfo(e.latlng.lat, e.latlng.lng, _taxones, _REGION_SELECTED);
}
// metodo del módulo de NICHO para cargar las especies
busca_especie_grupo(taxones, region_selected, val_process, grid_res)
});
}
else{
if (_tipo_modulo === _MODULO_NICHO) {
map_sp.on('click', function (e) {
_display_module.callDisplayProcess(val_process)
console.log(e.latlng.lat + ", " + e.latlng.lng);
if (_tipo_modulo === _MODULO_NICHO) {
}
// verifica que ya este la malla cargada y que al menos exista un especie solcitada
if(_grid_map_occ === undefined){
return
}
},
error: function (requestObject, error, errorThrown) {
var rango_fechas = $("#sliderFecha").slider("values");
// console.log(rango_fechas)
if(_lin_inf === undefined)
_lin_inf = rango_fechas[0]
if(_lin_sup === undefined)
_lin_sup = rango_fechas[1]
// console.log("_lin_inf: " + _lin_inf)
// console.log("_lin_sup: " + _lin_sup)
// console.log("_sin_fecha: " + _sin_fecha)
// console.log("_con_fosil: " + _con_fosil)
console.log(_taxones)
console.log("_DELETE_STATE_CELLS: " + _DELETE_STATE_CELLS)
_display_module.showGetFeatureInfoOccCell(e.latlng.lat, e.latlng.lng, _taxones, _lin_inf, _lin_sup, _sin_fecha, _con_fosil, _grid_res, _REGION_SELECTED, _DELETE_STATE_CELLS );
}
});
// metodo del módulo de NICHO para cargar las especies
busca_especie_grupo(taxones, region_selected, val_process, grid_res)
}
else{
_display_module.callDisplayProcess(val_process)
}
console.log(requestObject);
console.log(error);
console.log(errorThrown);
// alert("Existe un error en la conexión con el servidor, intente mas tarde");
},
error: function (requestObject, error, errorThrown) {
console.log(requestObject);
console.log(error);
console.log(errorThrown);
// alert("Existe un error en la conexión con el servidor, intente mas tarde");
// console.log("abort");
$('#map').loading('stop');
$('#map2').loading('stop');
}
$('#map').loading('stop');
$('#map2').loading('stop');
}
});
});
}
......@@ -1049,6 +1090,7 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
if (_first_loaded) {
_VERBOSE ? console.log("first loaded") : _VERBOSE;
console.log(grid_map)
for (var i = 0; i < grid_map.features.length; i++) {
......@@ -2057,7 +2099,7 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
function busca_especie_grupo(taxones, region = 1, val_process = false, grid_res = "state", fuente = "nicho") {
_VERBOSE ? console.log("busca_especie_grupo") : _VERBOSE;
_VERBOSE ? console.log("busca_especie_grupo") : _VERBOSE;
console.log("_grid_map_occ: " + _grid_map_occ)
console.log("_grid_res: " + _grid_res)
......@@ -2170,127 +2212,135 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
"region": region
}
if (_AGENT_SELECTED == 'Hospederos')
var _url = 'http://10.90.0.42:4006/graphql/hospederos/'
else if (_AGENT_SELECTED == 'Patogenos')
var _url = "http://10.90.0.42:4007/graphql/patogenos/"
else
var _url = "http://10.90.0.42:4008/graphql/vectores/"
let nodo = _AGENT_SELECTED.toLowerCase()
fetch(_url_zacatuche + "/niche/especie/getGridSpeciesTaxon", {
let query = 'query{occurrences_by_taxon_' + nodo + '(query: "nombreenfermedad = \''+ _DISEASE_SELECTED + '\' AND '+ _PARENT_FIELD.toLowerCase() +' = \'' + _LABEL_VALUE +'\' "){individuosinfectados gridid_'+ _grid_res + '}}'
console.log(query)
$.ajax({
method: "POST",
body: JSON.stringify(data),
headers: {
"Content-Type": "application/json"
}
})
.then(resp => resp.json())
.then(resp => {
url: _url,
contentType: "application/json",
data: JSON.stringify({query: query}),
success: function (resp) {
let mesh = "gridid_" + _grid_res
let data2 = resp.data["occurrences_by_taxon_" + nodo]
//let data = resp["data"];
//let obj = data["get_mesh"]
console.log(data2)
let gridid = {gridid: []}
for (let i = 0; i < data2.length; i++) {
let mesh = "gridid_" + _grid_res
gridid.gridid.push(parseInt(data2[i][mesh]))
}
console.log(gridid)
$('#tuto_mapa_occ').loading('stop');
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}
// inicializa variables para eliminar celdas
_DELETE_STATE_CELLS = false;
_excludedcells = []
$("#deletePointsButton").css("backgroundColor", "#fff");
var a = gridid["gridid"];
var unique = a.filter(onlyUnique);
//console.log(unique)
//console.log(a)
let vec = []
_data_sp_occ = resp.data
// asigna una referencia global para tener el resultado de la útima petición
// _data_sp_occ = data_sp
for (let i = 0; i < unique.length; i++) {
let value = unique[i]
let arr = []
for (let j = 0; j < data2.length; j++)
if (data2[j][mesh] == value) {
arr.push(data2[j])
//console.log(arr)
}
var occurrences = arr.reduce(function (prev, cur) {
return prev + cur.individuosinfectados;
}, 0);
var num_cell_occ = resp.data.length
var num_occ = 0
//console.log('Total:', occurrences);
let aux = new Object();
aux.gridid = value
aux.fp = 0
aux.tp = 0
aux.occ = occurrences
aux.target = "true"
aux.tp = 0
_data_sp_occ.forEach(function(item){
num_occ += parseInt(item["occ"])
})
console.log(_data_sp_occ)
console.log("num_cell_occ: " + num_cell_occ)
console.log("num_occ: " + num_occ)
vec.push(aux)
// rellena cuadro de resumen
_fillSpeciesData(num_occ, num_cell_occ);
// manda mensaje cuando no hay registro de especies en celdas
if (num_cell_occ === 0) {
_VERBOSE ? console.log("No hay registros de especie") : _VERBOSE;
_toastr.info($.i18n.prop('lb_norecords'));
return;
}
}
$('#tuto_mapa_occ').loading('stop');
// Se activa boton de siguiente paso
$("#specie_next").css('visibility', 'visible');
$("#specie_next").show("slow");
// inicializa variables para eliminar celdas
_DELETE_STATE_CELLS = false;
_excludedcells = []
$("#deletePointsButton").css("backgroundColor", "#fff");
colorizeFeaturesByJSON(_grid_map_occ, _data_sp_occ)
clearAllLayers();
if (_tipo_modulo === _MODULO_NICHO) {
_data_sp_occ = vec
// asigna una referencia global para tener el resultado de la útima petición
// _data_sp_occ = data_sp
var num_cell_occ = vec.length
var num_occ = 0
var data = {
"target_taxons": taxones,
"liminf": _lin_inf,
"limsup": _lin_sup,
"sfecha": _sin_fecha,
"sfosil": _con_fosil,
"grid_res": grid_res,
"region": region
}
_data_sp_occ.forEach(function (item) {
num_occ += parseInt(item["occ"])
})
console.log(_data_sp_occ)
console.log("num_cell_occ: " + num_cell_occ)
console.log("num_occ: " + num_occ)
// $('#hist_fecha_container').loading({
// stoppable: true
// });
// rellena cuadro de resumen
_fillSpeciesData(num_occ, num_cell_occ);
// Histograma de años de la especie. Se comenta para analisis de covid19
// TODO: Hacerlo en fechas mensuales y diarias
// fetch(_url_zacatuche + "/niche/especie/getCountByYear", {
// method: "POST",
// body: JSON.stringify(data),
// headers: {
// "Content-Type": "application/json"
// }
// })
// .then(resp => resp.json())
// .then(resp => {
// manda mensaje cuando no hay registro de especies en celdas
if (num_cell_occ === 0) {
_VERBOSE ? console.log("No hay registros de especie") : _VERBOSE;
_toastr.info($.i18n.prop('lb_norecords'));
return;
}
// if(resp.ok == true){
// var data = resp.data
// console.log(data)
// Se activa boton de siguiente paso
$("#specie_next").css('visibility', 'visible');
$("#specie_next").show("slow");
// $('#hist_fecha_container').loading('stop');
// _histogram_module.createBarChartFecha(data);
colorizeFeaturesByJSON(_grid_map_occ, _data_sp_occ)
// }
clearAllLayers();
// })
// .catch(err => {
if (_tipo_modulo === _MODULO_NICHO) {
// // _VERBOSE ? console.log("error: " + textStatus) : _VERBOSE;
// _VERBOSE ? console.log(errorThrown) : _VERBOSE;
// _VERBOSE ? console.log(jqXHR.responseText) : _VERBOSE;
// });
}
})
.catch(err => {
// _VERBOSE ? console.log("error: " + textStatus) : _VERBOSE;
_VERBOSE ? console.log(errorThrown) : _VERBOSE;
_VERBOSE ? console.log(jqXHR.responseText) : _VERBOSE;
var data = {
"target_taxons": taxones,
"liminf": _lin_inf,
"limsup": _lin_sup,
"sfecha": _sin_fecha,
"sfosil": _con_fosil,
"grid_res": grid_res,
"region": region
}
$('#tuto_mapa_occ').loading('stop');
$('#hist_fecha_container').loading('stop');
$("#specie_next").css('visibility', 'hidden');
}
}
});
}
......@@ -2351,7 +2401,8 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
"sfecha": _sin_fecha,
"sfosil": _con_fosil,
"grid_res": grid_res_val,
"footprint_region": footprint_region
"footprint_region": footprint_region,
// "disease": disease
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-Test-Header', 'test-value');
......@@ -3156,7 +3207,7 @@ var map_module = (function (url_geoserver, workspace, verbose, url_zacatuche) {
}
......
......@@ -11,6 +11,10 @@ var module_nicho = (function () {
var _VERBOSE = true;
var _REGION_SELECTED;
var _REGION_TEXT_SELECTED;
var _DISEASE_SELECTED;
var _DISEASE_TEXT_SELECTED;
var _AGENT_SELECTED;
var _AGENT_TEXT_SELECTED;
// actualizar este arreglo si cambian los ids de las secciones
var _SCROLL_SECTIONS = ["section0","section1","map","myScrollableBlockEpsilonDecil","histcontainer_row"];
......@@ -60,7 +64,7 @@ var module_nicho = (function () {
map_taxon.set("especie", "species");
map_taxon.set("species", "species");
var _taxones = [];
var _taxones = [];
......@@ -264,6 +268,31 @@ var module_nicho = (function () {
});
$("#disease_selected").change(function (e) {
console.log("Cambiando a " + ($("#disease_selected").val()));
_DISEASE_SELECTED = ($("#disease_selected").val());
_DISEASE_TEXT_SELECTED = $("#disease_selected option:selected").text();
//_map_module_nicho.changeRegionView(_DISEASE_SELECTED);
_regenMessage();
});
$("#agent_selected").change(function (e) {
console.log("Cambiando a " + ($("#agent_selected").val()));
_AGENT_SELECTED = ($("#agent_selected").val());
_AGENT_TEXT_SELECTED = $("#agent_selected option:selected").text();
//_map_module_nicho.changeRegionView(_AGENT_SELECTED);
_regenMessage();
});
$("#grid_resolution").change(function (e) {
......@@ -273,6 +302,14 @@ var module_nicho = (function () {
});
$("#disease_selected").change(function (e) {
_VERBOSE ? console.log("Cambia enfermedad") : _VERBOSE;
// No es necesario regenerar resultados
_regenMessage();
});
// checkbox que se activa cuando se desea realizar el proceso de validación. (Proceso de validación todavia no implementado)
$("#chkApriori").click(function (event) {
......@@ -425,6 +462,10 @@ var module_nicho = (function () {
var region = _REGION_SELECTED;
var disease = _DISEASE_SELECTED;
var agent = _AGENT_SELECTED
var groupDatasetTotal = _componente_target.getGroupDatasetTotal()
console.log(groupDatasetTotal)
......@@ -464,14 +505,126 @@ var module_nicho = (function () {
var grid_res = $("#grid_resolution").val();
var footprint_region = parseInt($("#footprint_region_select").val());
var disease = $("#disease_selected").val();
var agent = $("#agent_selected").val();
// _map_module_nicho.loadD3GridMX(val_process, grid_res, footprint_region, _taxones);
_map_module_nicho.busca_especie_grupo(_taxones, footprint_region, val_process, grid_res);
_map_module_nicho.busca_especie_grupo(_taxones, footprint_region, val_process, grid_res, disease, agent);
});
$("#agent_selected").change(function() {
let var_obj = $(this).val();
let diseases = document.getElementById("disease_selected");
switch (var_obj){
case "Hospederos":
fetch("http://10.90.0.42:4006/graphql/hospederos/",{
method: "POST",
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({ query: 'query { get_diseases_hospederos {name}}'}),
})
.then(res => res.json())
.then((function(resp){
console.log(resp);
let data = resp ["data"]
let disease = data["get_diseases_hospederos"]
var select = document.getElementById("disease_selected")
$('select option[value="dis_default"]').attr("selected",true);
try {
let actual_modifiers =
$(".disease_opt").remove();
} catch (error) {
console.log("no diseases")
}
for (let index = 0; index < disease.length; index++){
console.log(disease[index]["name"])
var opt = document.createElement('option');
opt.setAttribute("class", "disease_opt")
opt.value = disease[index]["name"];
opt.innerHTML = disease[index]["name"];
select.append(opt);
}
}));
break;
case "Vectores":
fetch("http://10.90.0.42:4008/graphql/vectores/",{
method: "POST",
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({ query: 'query { get_diseases_vectores {name}}'}),
})
.then(res => res.json())
.then((function(resp){
console.log(resp);
let data = resp ["data"]
let disease = data["get_diseases_vectores"]
var select = document.getElementById("disease_selected")
$('select option[value="dis_default"]').attr("selected",true);
try {
let actual_modifiers =
$(".disease_opt").remove();
} catch (error) {
console.log("no diseases")
}
for (let index = 0; index < disease.length; index++){
console.log(disease[index]["name"])
var opt = document.createElement('option');
opt.setAttribute("class", "disease_opt")
opt.value = disease[index]["name"];
opt.innerHTML = disease[index]["name"];
select.append(opt);
}
}));
break;
case "Patogenos":
fetch("http://10.90.0.42:4007/graphql/patogenos/",{
method: "POST",
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({ query: 'query { get_diseases_patogenos {name}}'}),
})
.then(res => res.json())
.then((function(resp){
console.log(resp);
let data = resp ["data"]
let disease = data["get_diseases_patogenos"]
var select = document.getElementById("disease_selected")
$('select option[value="dis_default"]').attr("selected",true);
try {
let actual_modifiers =
$(".disease_opt").remove();
} catch (error) {
console.log("no diseases")
}
for (let index = 0; index < disease.length; index++){
console.log(disease[index]["name"])
var opt = document.createElement('option');
opt.setAttribute("class", "disease_opt")
opt.value = disease[index]["name"];
opt.innerHTML = disease[index]["name"];
select.append(opt);
}
}));
break;
default:
break;
}
});
$("")
$("#show_gen").click(function (e) {
_VERBOSE ? console.log("show_gen") : _VERBOSE;
......@@ -518,6 +671,10 @@ var module_nicho = (function () {
// data_link.grid_res = parseInt($("#grid_resolution").val());
data_link.grid_res = $("#grid_resolution").val();
data_link.footprint_region = $("#footprint_region_select").val();
data_link.disease = $("#disease_selected").val();
data_link.grid_agent = $("#agent_selected").val();
data_link.discardedFilterids = _map_module_nicho.get_discardedPoints().values().map(function (value) {
return value.feature.properties.gridid
......@@ -555,10 +712,15 @@ var module_nicho = (function () {
console.log("source")
_REGION_SELECTED = ($("#footprint_region_select").val() !== null && $("#footprint_region_select").val() !== undefined) ? parseInt($("#footprint_region_select").val()) : _REGION_SELECTED;
_DISEASE_SELECTED = ($("#disease_selected").val() !== null && $("#disease_selected").val() !== undefined) ? parseInt($("#disease_selected").val()) : _DISEASE_SELECTED;
_AGENT_SELECTED = ($("#agent_selected").val() !== null && $("#agent_selected").val() !== undefined) ? parseInt($("#agent_selected").val()): _AGENT_SELECTED;
_GRID_RES = $("#grid_resolution").val();
console.log("REGION_SELECTED: " + _REGION_SELECTED);
console.log("_GRID_RES: " + _GRID_RES);
console.log("_DISEASE_SELECTED" + _DISEASE_SELECTED);
console.log("_AGENT_SELECTED" + _AGENT_SELECTED);
console.log("Term: " + request.term);
$.ajax({
......@@ -608,7 +770,7 @@ var module_nicho = (function () {
jQuery(function(){
jQuery('#date_timepicker_start').datetimepicker({
scrollInput : false,
format:'Y-m-d',
format:'Yyyy',
onShow:function( ct ){
this.setOptions({
maxDate:jQuery('#date_timepicker_end').val()?jQuery('#date_timepicker_end').val():false
......@@ -799,6 +961,10 @@ var module_nicho = (function () {
var region = _json_config.region ? parseInt(_json_config.region) : 1;
var disease = _json_config.disease ? parseInt(_json_config.disease) : 1;
var agente = _json_config.agente ? parseInt(_json_config.agent) : 1;
// var rango_fechas = minFec != undefined && maxFec != undefined ? [minFec, maxFec] : undefined;
// recover deleted items
......@@ -826,7 +992,7 @@ var module_nicho = (function () {
}
// _procesaValoresEnlace(sfilters, filters, chkVal, chkPrb, chkApr, chkFec, chkOcc, rango_fechas, chkFosil, gridRes, region, map_dPoints, chkValTemp);
_procesaValoresEnlace(sfilters, filters, chkVal, chkPrb, chkApr, chkFec, chkOcc, minFec, maxFec, minFecVal, maxFecVal, chkFosil, gridRes, region, map_dPoints, chkValTemp);
_procesaValoresEnlace(sfilters, filters, chkVal, chkPrb, chkApr, chkFec, chkOcc, minFec, maxFec, minFecVal, maxFecVal, chkFosil, gridRes, region, disease, agente, map_dPoints, chkValTemp);
$("#show_gen").css('visibility', 'hidden');
......@@ -936,7 +1102,7 @@ var module_nicho = (function () {
* @param {integer} gridRes - Resolución de la malla para ser considerado en los cálculos
*/
// function _procesaValoresEnlace(subgroups_target, subgroups, chkVal, chkPrb, chkApr, chkFec, chkOcc, rango_fechas, chkFosil, gridRes, region, map_dPoints, chkValTemp) {
function _procesaValoresEnlace(subgroups_target, subgroups, chkVal, chkPrb, chkApr, chkFec, chkOcc, minFec, maxFec, minFecVal, maxFecVal, chkFosil, gridRes, region, map_dPoints, chkValTemp) {
function _procesaValoresEnlace(subgroups_target, subgroups, chkVal, chkPrb, chkApr, chkFec, chkOcc, minFec, maxFec, minFecVal, maxFecVal, chkFosil, gridRes, region, disease, agente, map_dPoints, chkValTemp) {
_VERBOSE ? console.log("_procesaValoresEnlace") : _VERBOSE;
......@@ -1019,6 +1185,12 @@ var module_nicho = (function () {
$('#footprint_region_select option[value=' + region + ']').attr('selected', 'selected');
$('#disease_selected option[value=' + disease + ']').attr('selected, selected');
$('#agent_selected option[value=' + agente + ']').attr('selected, selected');
console.log(subgroups_target)
console.log(subgroups)
......@@ -1170,9 +1342,14 @@ var module_nicho = (function () {
var mapa_prob = $("#chkMapaProb").is(':checked');
var grid_res = $("#grid_resolution").val();
var footprint_region = parseInt($("#footprint_region_select").val());
var disease = $("#disease_selected").val();
var agent = $("#agent_selected").val();
console.log("grid_res: " + grid_res);
console.log("footprint_region: " + footprint_region);
console.log("disease" + disease);
console.log("agent"+ agent);
var fossil = $("#chkFosil").is(':checked');
......@@ -1206,7 +1383,7 @@ var module_nicho = (function () {
// Falta agregar la condición makesense.
// Cuando se realiza una consulta por region seleccioanda se verica que la especie objetivo se encuentre dentro de esta area
_res_display_module_nicho.refreshData(num_items, val_process, slider_value, min_occ, mapa_prob, rango_fechas, chkFecha, fossil, grid_res, footprint_region, val_process_temp);
_res_display_module_nicho.refreshData(num_items, val_process, slider_value, min_occ, mapa_prob, rango_fechas, chkFecha, fossil, grid_res, footprint_region, disease, agent, val_process_temp);
}
......
......@@ -2776,9 +2776,13 @@ var res_display_module = (function (verbose, url_zacatuche) {
// console.log(data_body_request)
if(isdeletecell){
//let query = 'query{occurrences_by_taxon_' + nodo + '(query: "nombreenfermedad = \''+ _DISEASE_SELECTED + '\' AND '+ _PARENT_FIELD.toLowerCase() +' = \'' + _LABEL_VALUE +'\' AND longituddecimal ='+ long +' AND latituddecimal = ' + lat + '"){epitetoespecifico reino aniocolecta genero localidad sexo individuosinfectados gridid_'+ _grid_res + '}}'
fetch(_url_zacatuche + "/niche/especie/getIDCellFromCoordinates", {
if(isdeletecell){
fetch(_url_zacatuche + "/niche/especie/getIDCellFromCoordinates", {
method: "POST",
body: JSON.stringify(data_body_request),
headers: {
......@@ -2787,6 +2791,8 @@ var res_display_module = (function (verbose, url_zacatuche) {
})
.then(resp => resp.json())
.then(respuesta => {
console.log(_taxones)
console.log(respuesta.data)
if (respuesta.ok) {
......@@ -2820,42 +2826,27 @@ var res_display_module = (function (verbose, url_zacatuche) {
}
else{
fetch(_url_zacatuche + "/niche/especie/getCellOcurrences", {
method: "POST",
body: JSON.stringify(data_body_request),
headers: {
"Content-Type": "application/json"
}
})
.then(resp => resp.json())
.then(respuesta => {
if (respuesta.ok) {
var data = respuesta.data;
_VERBOSE ? console.log(data) : _VERBOSE;
if (_AGENT_SELECTED == 'Hospederos')
var _url = 'http://10.90.0.42:4006/graphql/hospederos/'
else if (_AGENT_SELECTED == 'Patogenos')
var _url = "http://10.90.0.42:4007/graphql/patogenos/"
else
var _url = "http://10.90.0.42:4008/graphql/vectores/"
if (data.length > 0) {
let nodo = _AGENT_SELECTED.toLowerCase()
let query = 'query{occurrences_by_taxon_' + nodo + '(query: "nombreenfermedad = \''+ _DISEASE_SELECTED + '\' AND '+ _PARENT_FIELD.toLowerCase() +' = \'' + _LABEL_VALUE +'\' AND longituddecimal ='+ long +' AND latituddecimal = ' + lat + '"){epitetoespecifico reino aniocolecta genero localidad sexo individuosinfectados gridid_'+ grid_res + '}}'
console.log(query)
var htmltable = _createOccTableFromData(data);
if (htmltable === "")
return;
_map_module_nicho.showPopUp(htmltable, [lat, long], true);
$.ajax({
method: "POST",
url: _url,
contentType: "application/json",
data: JSON.stringify({query: query}),
success: function (resp) {
console.log(resp)
}
}
$('#map2').loading('stop');
})
.catch(err => {
$('#map2').loading('stop');
_VERBOSE ? console.log("error: " + err) : _VERBOSE;
});
})
}
......
var _PARENT_FIELD = "";
var _LABEL_VALUE = "";
var _AGENT_SELECTED = "";
/**
* Módulo variable, utilizado para crear y gestionar los selectores de grupos de variables en nicho ecológico y comunidad ecológica.
......@@ -34,11 +37,16 @@ var variable_module = (function (verbose, url_zacatuche) {
var _toastr = toastr;
var _tipo_modulo;
var _MODULO_COMUNIDAD = 1;
var _available_variables = [];
var _REGION_SELECTED = 1;
var _REGION_SELECTED = 1
var _GRID_RES = "state";
// var _AGENT_SELECTED = "hospedero";
// var _PARENT_FIELD = "";
// var _LABEL_VALUE = "";
// var map_taxon = new Map()
// map_taxon.set("reino", "kingdom");
......@@ -64,7 +72,7 @@ var variable_module = (function (verbose, url_zacatuche) {
* @function getVarSelArray
* @public
* @memberof! table_module
*
*
*/
function getVarSelArray() {
return _var_sel_array;
......@@ -76,7 +84,7 @@ var variable_module = (function (verbose, url_zacatuche) {
* @function getSelectorVaribles
* @public
* @memberof! table_module
*
*
*/
function getSelectorVaribles() {
return _selectors_created;
......@@ -90,7 +98,7 @@ var variable_module = (function (verbose, url_zacatuche) {
* @function VariableSelector
* @public
* @memberof! table_module
*
*
* @param {String} parent - Id del contenedor del selector de variables
* @param {String} id - Id del selector de variables
* @param {String} title - Título del selector de variables desplegado en la parte superior
......@@ -103,8 +111,8 @@ var variable_module = (function (verbose, url_zacatuche) {
var sp_items = ['a_item_reino', 'a_item_phylum', 'a_item_clase', 'a_item_orden', 'a_item_familia', 'a_item_genero','a_item_especie'];
var sp_parent_field = ['reinovalido', 'phylumdivisionvalido', 'clasevalida', 'ordenvalido', 'familiavalida', 'generovalido','especieepiteto'];
var sp_data_field = ['phylumdivisionvalido', 'clasevalida', 'ordenvalido', 'familiavalida', 'generovalido', 'especieepiteto']; //'especievalidabusqueda'
var sp_parent_field = ['reino', 'phylum', 'clase', 'orden', 'familia', 'genero','epitetoespecifico','epitetoinfraespecifico'];
var sp_data_field = ['phylum', 'clase', 'orden', 'familia', 'genero','epitetoespecifico','epitetoinfraespecifico']; //'especievalidabusqueda'
var NUM_ABIO = 20;
var NIVEL_REINO = 2
var NIVEL_PHYLUM = 3
......@@ -142,6 +150,8 @@ var variable_module = (function (verbose, url_zacatuche) {
// Evento generado cuando se selecciona un grupo de variables climáticas, realiza la carga del árbol de selección del grupo seleccionado.
self.loadTreeVarRaster = function () {
......@@ -149,16 +159,16 @@ var variable_module = (function (verbose, url_zacatuche) {
if(!abio_tab) return;
_VERBOSE ? console.log("self.loadTreeVarRaster") : _VERBOSE;
var text_raster = _iTrans.prop('lb_raster');
var var_selected = "root_bioclim";
var level_root = 0;
var level_vartree = 1;
console.log("val: " + $("#footprint_region_select").val());
console.log("_REGION_SELECTED: " + _REGION_SELECTED);
_REGION_SELECTED = ($("#footprint_region_select").val() !== null && $("#footprint_region_select").val() !== undefined) ? parseInt($("#footprint_region_select").val()) : _REGION_SELECTED;
_GRID_RES = $("#grid_resolution").val();
......@@ -272,7 +282,7 @@ var variable_module = (function (verbose, url_zacatuche) {
console.log("REGION_SELECTED: " + _REGION_SELECTED);
console.log("_GRID_RES: " + _GRID_RES);
current_id = current_id.replace(/#/g,'').replace(/\(/g,'').replace(/\)/g,'')
console.log("current_id: " + current_id);
// console.log("id: " + id);
......@@ -347,14 +357,14 @@ var variable_module = (function (verbose, url_zacatuche) {
"children": default_son
};
}
}
else {
console.log(data[i].label)
// eliminacaraacteres especiales y espacios en blanco
var lb = data[i].label.replace(/[^a-zA-Z0-9]/g, "").replace(/ /g,'').replace(/#/g,'')
// console.log(_iTrans.prop(lb))
newNode = {
......@@ -369,15 +379,15 @@ var variable_module = (function (verbose, url_zacatuche) {
}
}
$('#jstree_variables_bioclim_' + id).jstree("create_node", current_node, newNode, 'last', false, false);
}
$("#jstree_variables_bioclim_" + id).jstree(true).delete_node(d.node.children[0]);
$("#jstree_variables_bioclim_" + id).jstree(true).set_icon(current_node.id, "./plugins/jstree/images/dna.png");
......@@ -402,7 +412,7 @@ var variable_module = (function (verbose, url_zacatuche) {
.text(_iTrans.prop(title))
.appendTo($("#" + parent));
}
// div contenedor del cuerpo de la sección grupo de variables, puede ser del 80% de la altura de la página o de 300px en su tamaño reducido
var container_height = reduced_height ? "container_60p" : "container_80p"
......@@ -544,6 +554,8 @@ var variable_module = (function (verbose, url_zacatuche) {
});
var input_sp = $('<input/>')
.attr('id', 'text_variable' + "_" + id)
.attr('type', 'text')
......@@ -554,41 +566,75 @@ var variable_module = (function (verbose, url_zacatuche) {
source: function (request, response) {
_VERBOSE ? console.log($("#footprint_region_select").val()) : _VERBOSE;
_REGION_SELECTED = ($("#footprint_region_select").val() !== null && $("#footprint_region_select").val() !== undefined) ? parseInt($("#footprint_region_select").val()) : _REGION_SELECTED;
_GRID_RES = $("#grid_resolution").val();
_DISEASE_SELECTED = $("#disease_selected").val()
_AGENT_SELECTED = $("#agent_selected").val();
console.log("REGION_SELECTED: " + _REGION_SELECTED);
console.log("_GRID_RES: " + _GRID_RES);
console.log("_AGENT_SELECTED: " + _AGENT_SELECTED);
console.log("_DISEASE_SELECTED: " + _DISEASE_SELECTED);
if (_AGENT_SELECTED == 'Hospederos')
var _url = 'http://10.90.0.42:4006/graphql/hospederos/'
else if (_AGENT_SELECTED == 'Patogenos')
var _url = "http://10.90.0.42:4007/graphql/patogenos/"
else
var _url = "http://10.90.0.42:4008/graphql/vectores/"
let nodo = _AGENT_SELECTED.toLowerCase()
var query = 'query{occurrences_by_taxon_' + nodo + '(query: "nombreenfermedad = \''+ _DISEASE_SELECTED + '\' AND '+ varfield.toLowerCase() +' LIKE \''+ request.term.charAt(0).toUpperCase() +
request.term.slice(1) +'%\' "){'+ varfield.toLowerCase() +'}}'
let lst = []
console.log(query)
$.ajax({
url: _url_zacatuche + "/niche/especie/getEntList",
dataType: "json",
type: "post",
data: {
searchStr: request.term,
nivel: self.varfilter_selected[1],
source: 0, // source para saber si viene de objetivo o el target
footprint_region: _REGION_SELECTED,
grid_res: _GRID_RES
},
method: "POST",
url: _url,
contentType: "application/json",
data: JSON.stringify({query: query}),
success: function (resp) {
let list = resp["data"]
console.log(resp)
response($.map(resp.data, function (item) {
let uniqueObjArray = [
...new Map(item.map((item) => [item["name"], item])).values(),
];
//uniqueObjArray.forEach(function(obj) {
// obj.reinovalido = obj.reino;
// delete obj.reino;
// });
console.log(uniqueObjArray)
_VERBOSE ? console.log(item) : _VERBOSE;
console.log(self.varfilter_selected[1]);
for (let i = 0; i < uniqueObjArray.length; i++) {
var opt = uniqueObjArray[i]
return{
label: item[self.varfilter_selected[1]],
id: item[self.varfilter_selected[1]]
};
_VERBOSE ? console.log(opt) : _VERBOSE;
console.log(self.varfilter_selected[1]);
return {
label: opt[self.varfilter_selected[1]],
id: opt[self.varfilter_selected[1]]
};
}
}));
}
});
})
},
minLength: 2,
......@@ -712,7 +758,7 @@ var variable_module = (function (verbose, url_zacatuche) {
// .click(function (e) {
// console.log(self.groupDatasetTotal);
// // console.log(self.getVarSelArray());
// // console.log(self.getVarSelArray());
// if(self.groupDatasetTotal.length == 0){
// console.log("No species selected");
......@@ -723,7 +769,7 @@ var variable_module = (function (verbose, url_zacatuche) {
// console.log(self.groupDatasetTotal);
// console.log(self.var_sel_array);
// $.each(self.groupDatasetTotal, function(index_i, grupo){
......@@ -731,7 +777,7 @@ var variable_module = (function (verbose, url_zacatuche) {
// $.each(grupo.elements, function(index_j, sp_grupo){
// var array_sp = sp_grupo.label.split(">>");
// var temp_item = {};
......@@ -753,12 +799,12 @@ var variable_module = (function (verbose, url_zacatuche) {
// $('#jstree_variables_species_' + id).off('open_node.jstree', self.getTreeVar);
// $("#jstree_variables_species_" + id).off('changed.jstree', self.getChangeTreeVar);
// $("#jstree_variables_species_" + id).off('ready.jstree', self.loadNodes);
// e.preventDefault();
// })
// .appendTo(tab_pane);
// .appendTo(tab_pane);
}
......@@ -829,7 +875,9 @@ var variable_module = (function (verbose, url_zacatuche) {
// Es un evento generado cuando se realiza la carga del árbol de selección (jstree: https://www.jstree.com/) que contiene el selector de variables.
// Es un evento generado cuando se realiza la carga del árbol de selección (jstree: https://www.jstree.com/) que contiene el selector de variables.
self.loadNodes = function () {
_VERBOSE ? console.log("self.loadNodes") : _VERBOSE;
......@@ -851,27 +899,45 @@ var variable_module = (function (verbose, url_zacatuche) {
_VERBOSE ? console.log(self.field_vartree) : _VERBOSE;
_VERBOSE ? console.log(self.value_vartree) : _VERBOSE;
_REGION_SELECTED = ($("#footprint_region_select").val() !== null && $("#footprint_region_select").val() !== undefined) ? parseInt($("#footprint_region_select").val()) : _REGION_SELECTED;
_GRID_RES = $("#grid_resolution").val();
_AGENT_SELECTED = $("#agent_selected").val();
console.log("REGION_SELECTED: " + _REGION_SELECTED);
console.log("_GRID_RES: " + _GRID_RES);
console.log("_AGENT_SELECTED" + _AGENT_SELECTED);
if (_AGENT_SELECTED == 'Hospederos')
var _url = 'http://10.90.0.42:4006/graphql/hospederos/'
else if (_AGENT_SELECTED == 'Patogenos')
var _url = "http://10.90.0.42:4007/graphql/patogenos/"
else
var _url = "http://10.90.0.42:4008/graphql/vectores/"
let nodo = _AGENT_SELECTED.toLowerCase()
let query = 'query{occurrences_by_taxon_' + nodo + '(query: "nombreenfermedad = \''+ _DISEASE_SELECTED + '\' AND '+ varfield.toLowerCase() +' = \'' + self.value_vartree +'\' "){'+ field_r +'}}'
console.log(query)
$.ajax({
url: _url_zacatuche + "/niche/especie/getVariables",
dataType: "json",
type: "post",
data: {
"field": field_r,
"parentfield": parentfield_r,
"parentitem": self.value_vartree,
"footprint_region": _REGION_SELECTED,
"grid_res": _GRID_RES
},
method: "POST",
url: _url,
contentType: "application/json",
data: JSON.stringify({query: query}),
success: function (resp) {
console.log(resp)
let data2 = resp.data["occurrences_by_taxon_"+ nodo]
console.log(data2)
let uniqueObjArray = [
...new Map(data2.map((item) => [item["name"], item])).values(),
];
console.log(uniqueObjArray)
let data = uniqueObjArray
data = resp.data;
var current_node = $('#jstree_variables_species_' + id).jstree(true).get_node($("#root"));
//current_node.prop('title', );
......@@ -881,15 +947,23 @@ var variable_module = (function (verbose, url_zacatuche) {
$('li').removeAttr("data-original-title");
$('#jstree_variables_species_' + id).removeAttr("data-original-title");
$('#jstree_variables_species_' + id).removeAttr("title");
if(field_r !== 'especievalidabusqueda'){
for (i = 0; i < data.length; i++) {
var idNode = "";
// console.log(data[i].name)
var namesp = data[i].name.replace(/ /g,"").replace(/\%/g,"").replace(/\)/g,"").replace(/\(/g,"").replace(/\./g,"").replace(/,/g,"")
let result = field_r;
console.log(Object.values(data))
var namesp1 = data[i]
var namesp = namesp1[field_r]
console.log(namesp)
var namesp = namesp1[field_r].replace(/ /g,"").replace(/\%/g,"").replace(/\)/g,"").replace(/\(/g,"").replace(/\./g,"").replace(/,/g,"")
// console.log(namesp)
if ($("#" + namesp).length > 0) {
......@@ -901,7 +975,7 @@ var variable_module = (function (verbose, url_zacatuche) {
console.log("idNode: " + idNode)
var default_son = self.level_vartree < 8 ? [{text: "cargando..."}] : [];
var label_taxon = self.level_vartree < 8 ? data[i].name + " (spp: " + data[i].spp + ")" : data[i].name;
var label_taxon = self.level_vartree < 8 ? namesp1[field_r] : namesp1[field_r];
// label_taxon = self.level_vartree == 8 ? self.value_vartree + " " + label_taxon : label_taxon;
......@@ -910,12 +984,12 @@ var variable_module = (function (verbose, url_zacatuche) {
var newNode = {
id: idNode,
text: label_taxon, //data[i].name + " (spp: " + data[i].spp + ")",
text: label_taxon, //data[i].name + " (spp: " + data[i].spp + ")",
icon: "plugins/jstree/images/dna.png",
attr: {
"nivel": self.level_vartree,
"type": _TYPE_TAXON
},
"nivel": self.level_vartree,
"type": _TYPE_TAXON
},
state: {'opened': false},
"children": default_son
};
......@@ -933,14 +1007,14 @@ var variable_module = (function (verbose, url_zacatuche) {
}
$("#jstree_variables_species_" + id).jstree(true).set_icon(current_node.id, "./plugins/jstree/images/dna.png");
var description_complement = '';
if(data[0].name.split(' ').length > 1 && field_r === 'especievalidabusqueda'){
if(namesp1[field_r].split(' ').length > 1 && field_r === 'especievalidabusqueda'){
description_complement += data[0].name.split(' ')[1];
description_complement += namesp1[field_r].split(' ')[1];
}
......@@ -955,11 +1029,120 @@ var variable_module = (function (verbose, url_zacatuche) {
}
}
});
})
}
$("#disease_selected").change(function () {
_VERBOSE ? console.log("self.loadNodes0") : _VERBOSE;
// se incrementa level para asignar el nivel adecuado a los hijos de la raiz
// la funcion es llamda dos veces, por tantro se decidio utilizar el arreglo + 1, en lufar de utilzar la variable global "level_vartree"
self.level_vartree = 5;
_VERBOSE ? console.log("level_vartree: " + self.level_vartree) : _VERBOSE;
console.log(self.varfilter_selected);
var field_r = 'orden';
var parentfield_r = self.parent_field_vartree;
if(parseInt(self.level_vartree) > 8){
field_r = 'especievalidabusqueda';
parentfield_r = '';
}
_VERBOSE ? console.log(self.field_vartree) : _VERBOSE;
_VERBOSE ? console.log(self.value_vartree) : _VERBOSE;
_REGION_SELECTED = ($("#footprint_region_select").val() !== null && $("#footprint_region_select").val() !== undefined) ? parseInt($("#footprint_region_select").val()) : _REGION_SELECTED;
_GRID_RES = $("#grid_resolution").val();
_AGENT_SELECTED = $("#agent_selected").val();
_DISEASE_SELECTED = $("#disease_selected").val()
console.log("REGION_SELECTED: " + _REGION_SELECTED);
console.log("_GRID_RES: " + _GRID_RES);
console.log("_AGENT_SELECTED" + _AGENT_SELECTED);
if (_AGENT_SELECTED == 'Hospederos')
var _url = 'http://10.90.0.42:4006/graphql/hospederos/'
else if (_AGENT_SELECTED == 'Patogenos')
var _url = "http://10.90.0.42:4007/graphql/patogenos/"
else
var _url = "http://10.90.0.42:4008/graphql/vectores/"
let nodo = _AGENT_SELECTED.toLowerCase()
let query = 'query{occurrences_by_taxon_' + nodo + '(query: "nombreenfermedad = \''+ _DISEASE_SELECTED + '\' "){clase}}'
console.log(query)
$.ajax({
method: "POST",
url: _url,
contentType: "application/json",
data: JSON.stringify({query: query}),
success: function (resp, event, ui) {
console.log(resp)
let data2 = resp.data["occurrences_by_taxon_" + nodo]
console.log(data2)
let uniqueObjArray = [
...new Map(data2.map((item) => [item["name"], item])).values(),
];
console.log(uniqueObjArray)
let data = uniqueObjArray
console.log(ui);
$('#jstree_variables_species_' + id).jstree("destroy").empty();
$('#jstree_variables_species_' + id).on('open_node.jstree', self.getTreeVar);
$("#jstree_variables_species_" + id).on('changed.jstree', self.getChangeTreeVar);
$("#jstree_variables_species_" + id).on('loaded.jstree', self.loadNodes);
self.value_vartree = ui.item.id;
self.field_vartree = self.varfilter_selected[0];
self.parent_field_vartree = self.varfilter_selected[1];
self.level_vartree = self.varfilter_selected[2];
// _VERBOSE ? console.log("nivel") : _VERBOSE;
_VERBOSE ? console.log(self.level_vartree) : _VERBOSE;
var icon = parseInt(self.level_vartree) === 8 ? "plugins/jstree/images/dna.png" : "plugins/jstree/dist/themes/default/throbber.gif"
// _VERBOSE ? console.log(self.level_vartree) : _VERBOSE;
var tree_reinos = [{
"text": self.value_vartree,
"id": "root",
"attr": {"nivel": self.level_vartree, "type": _TYPE_TAXON},
'state': {'opened': true},
"icon": icon
}];
$('#jstree_variables_species_' + id).jstree({
'plugins': ["wholerow", "checkbox"],
'core': {
'data': tree_reinos,
'themes': {
'name': 'proton',
'responsive': true
},
'check_callback': true
}
});
}
})
})
// Evento generado cuando se realiza la acción de abrir una rama del árbol de selección, realiza la carga de los elementos que componen la rama a la cual se desea tener acceso.
self.getTreeVar = function (e, d) {
......@@ -973,7 +1156,7 @@ var variable_module = (function (verbose, url_zacatuche) {
console.log("No se encontraron datos debajo de este nivel")
return;
}
var next_field = "";
var next_nivel = 0;
var parent_field = "";
......@@ -981,28 +1164,28 @@ var variable_module = (function (verbose, url_zacatuche) {
$("#jstree_variables_species_" + id).jstree(true).set_icon(d.node.id, "./plugins/jstree/dist/themes/default/throbber.gif");
if (d.node.original.attr.nivel == 2) {
parent_field = "reinovalido"
next_field = "phylumdivisionvalido";
parent_field = "reino"
next_field = "phylum";
next_nivel = 3;
} else if (d.node.original.attr.nivel == 3) {
parent_field = "phylumdivisionvalido"
next_field = "clasevalida";
parent_field = "phylum"
next_field = "clase";
next_nivel = 4;
} else if (d.node.original.attr.nivel == 4) {
parent_field = "clasevalida"
next_field = "ordenvalido";
parent_field = "clase"
next_field = "orden";
next_nivel = 5;
} else if (d.node.original.attr.nivel == 5) {
parent_field = "ordenvalido"
next_field = "familiavalida";
parent_field = "orden"
next_field = "familia";
next_nivel = 6;
} else if (d.node.original.attr.nivel == 6) {
parent_field = "familiavalida"
next_field = "generovalido";
parent_field = "familia"
next_field = "genero";
next_nivel = 7;
} else if (d.node.original.attr.nivel == 7) {
parent_field = "generovalido"
next_field = "especieepiteto";
parent_field = "genero"
next_field = "epitetoespecifico";
next_nivel = 8;
} else {
$('#jstree_variables_species_' + id).tooltip('hide');
......@@ -1013,35 +1196,67 @@ var variable_module = (function (verbose, url_zacatuche) {
_VERBOSE ? console.log(d.node.id) : _VERBOSE
_VERBOSE ? console.log(d.node.text) : _VERBOSE
var text_val = d.node.text
var regex = / \(spp: \d*\)/gi;
// elimina el (spp: N) del valir para realizar la busqueda de manera correcta
var label_value = text_val.replace(regex, '');
_VERBOSE ? console.log(label_value) : _VERBOSE
_VERBOSE ? console.log(label_value) : _VERBOSE
_REGION_SELECTED = ($("#footprint_region_select").val() !== null && $("#footprint_region_select").val() !== undefined) ? parseInt($("#footprint_region_select").val()) : _REGION_SELECTED;
_GRID_RES = $("#grid_resolution").val();
console.log("REGION_SELECTED: " + _REGION_SELECTED);
console.log("_GRID_RES: " + _GRID_RES);
if (_AGENT_SELECTED == 'Hospederos')
var _url = 'http://10.90.0.42:4006/graphql/hospederos/'
else if (_AGENT_SELECTED == 'Patogenos')
var _url = "http://10.90.0.42:4007/graphql/patogenos/"
else
var _url = "http://10.90.0.42:4008/graphql/vectores/"
let nodo = _AGENT_SELECTED.toLowerCase()
let query = 'query{occurrences_by_taxon_' + nodo + '(query: "nombreenfermedad = \''+ _DISEASE_SELECTED + '\' AND '+ parent_field.toLowerCase() +' = \'' + label_value +'\' "){'+ next_field +'}}'
console.log(query)
$.ajax({
url: _url_zacatuche + "/niche/especie/getVariables",
dataType: "json",
type: "post",
data: {
"field": next_field,
"parentfield": parent_field,
// "parentitem": d.node.text.split(" ")[0],
"parentitem": label_value,
"footprint_region": _REGION_SELECTED,
"grid_res": _GRID_RES
},
method: "POST",
url: _url,
contentType: "application/json",
data: JSON.stringify({query: query}),
success: function (resp) {
console.log(resp)
let data2 = resp.data["occurrences_by_taxon_" + nodo]
console.log(data2)
console.log(data2[0])
data = resp.data;
let uniqueObjArray = []
for (let i = 0; i < data2.length; i++) {
let val = data2[i];
//console.log(val)
if(uniqueObjArray.indexOf(val) === -1) {
uniqueObjArray.push(val);
}
}
let uniqueObjArray1 = [
...new Map( uniqueObjArray.map((item) => [item[next_field], item])).values(),
];
console.log(uniqueObjArray1)
let data = uniqueObjArray1
$('ul').tooltip('hide');
$('li').tooltip('hide');
......@@ -1053,7 +1268,8 @@ var variable_module = (function (verbose, url_zacatuche) {
for (i = 0; i < data.length; i++) {
var idNode = "";
var name_variable = data[i].name
var camp = data[i]
var name_variable = camp[next_field]
console.log("name_variable: " + name_variable)
......@@ -1064,11 +1280,11 @@ var variable_module = (function (verbose, url_zacatuche) {
} else {
// ._VERBOSE ? console.log("nuevo_id") : _VERBOSE;
idNode = data[i].id;
idNode = camp[next_field];
}
var default_son = next_nivel < 8 ? [{text: "cargando..."}] : [];
var label_taxon = next_nivel < 8 ? data[i].name + " (spp: " + data[i].spp + ")" : data[i].name;
var label_taxon = next_nivel < 8 ? camp[next_field] : camp[next_field]; //" (spp: " + data[i].spp + ")"
var newNode = {
id: idNode,
......@@ -1146,9 +1362,9 @@ var variable_module = (function (verbose, url_zacatuche) {
self.arrayVarSelected.push({label: node_temp.text, level: level, numlevel: node_temp.attr.nivel, type: node_temp.attr.type, parent: parent_node.text});
// if (node_temp.attr.nivel == 8) {
//
//
// self.arrayVarSelected.push({label: node_temp.text, level: level, numlevel: node_temp.attr.nivel, type: node_temp.attr.type, parent: parent_node.text});
//
//
// }
// else {
//
......@@ -1366,7 +1582,20 @@ var variable_module = (function (verbose, url_zacatuche) {
_VERBOSE ? console.log("self.addOtherGroup") : _VERBOSE;
// console.log(idTree);
// console.log(arraySelected);
console.log(arraySelected);
const iterator = arraySelected.values();
for (const value of iterator) {
var variable = value
console.log(variable)
_PARENT_FIELD = variable["level"]
_LABEL_VALUE = variable["label"]
console.log(_PARENT_FIELD)
console.log(_LABEL_VALUE)
}
// console.log(gpoName);
// console.log(idDivContainer);
// console.log(typeVar);
......@@ -1379,7 +1608,7 @@ var variable_module = (function (verbose, url_zacatuche) {
// _toastr.warning(_iTrans.prop('lb_nivel_reino'));
// return;
// }
var new_element = self.existsGroup(arraySelected);
// _VERBOSE ? console.log(new_element) : _VERBOSE;
......@@ -1633,7 +1862,7 @@ var variable_module = (function (verbose, url_zacatuche) {
success: function (resp) {
if (resp.ok === true) {
console.log(data);
var data = resp.data;
_available_variables = data;
......@@ -1656,7 +1885,7 @@ var variable_module = (function (verbose, url_zacatuche) {
* @function createSelectorComponent
* @public
* @memberof! table_module
*
*
* @param {String} parent - Id del contenedor del selector de variables
* @param {String} id - Id del selector de variables
* @param {String} title - Título del selector de variables desplegado en la parte superior
......@@ -1681,9 +1910,9 @@ var variable_module = (function (verbose, url_zacatuche) {
* @function _initializeVarComponents
* @private
* @memberof! table_module
*
*
* @param {object} language_module - Módulo de internacionalización
* @param {integer} tipo_modulo - Tipo de módulo donde serán asignados los selectores de variables, nicho o comunidad ecológica
* @param {integer} tipo_modulo - Tipo de módulo donde serán asignados los selectores de variables, nicho o comunidad ecológica
*/
function _initializeVarComponents(language_module, tipo_modulo, map_module) {
......@@ -1719,10 +1948,10 @@ var variable_module = (function (verbose, url_zacatuche) {
* @function startVar
* @public
* @memberof! table_module
*
*
* @param {String} id - Id del selector de variables
* @param {object} language_module - Módulo de internacionalización
* @param {integer} tipo_modulo - Tipo de módulo donde serán asignados los selectores de variables, nicho o comunidad ecológica
* @param {integer} tipo_modulo - Tipo de módulo donde serán asignados los selectores de variables, nicho o comunidad ecológica
*/
function startVar(id, language_module, tipo_modulo, map_module) {
_VERBOSE ? console.log("startVar") : _VERBOSE;
......
......@@ -6,7 +6,7 @@ lb_occ_min = Min. Celdas con ocurrencia (nj)
lb_apriori = A\u00f1adir a priori
lb_mapprob = Mapa de probabilidad
lb_reg_fecha = Incluir registros sin fecha
lb_range_fecha = Filtrar por fecha
lb_range_fecha = Filtrar por año
btn_regenerar = Regenerar
lb_genera_red = Generar red
lb_info_slider = ATR: Atracci\u00f3n entre nodos
......
......@@ -21,6 +21,7 @@ a_taxon = Grupos de interés
a_clima = Climáticas
a_topo = Topográficas
a_raster = Raster
a_socio = Socioeconómicas
lb_occ = Ocurrencias grupo
lb_occ_celda = Área con ocurrencias del grupo (ni)
btn_variable = Escoge Grupo
......@@ -165,7 +166,7 @@ lb_fosil = Fósiles
lb_apriori = Añadir a priori
lb_mapprob = Mapa de probabilidad
lb_reg_fecha = Registros sin fecha
lb_range_fecha = Filtrar por fecha
lb_range_fecha = Filtrar por año
labelFecha = {0} - {1}
reload_map = Filtrar
see_species = Ver Grupo de interés
......
......@@ -21,6 +21,7 @@ a_taxon = Taxonomic
a_clima = Climatic
a_topo = Others
a_raster = Raster
a_socio = Socioeconómicas
lb_occ = Species occurrences
lb_occ_celda = Cells with species occurrences
btn_variable = Taxon
......
......@@ -164,7 +164,7 @@ lb_fosil = Fósiles
lb_apriori = Añadir a priori
lb_mapprob = Mapa de probabilidad
lb_reg_fecha = Registros sin fecha
lb_range_fecha = Filtrar por fecha
lb_range_fecha = Filtrar por año
labelFecha = {0} - {1}
reload_map = Filtrar
see_species = Ver especies
......
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment