Commit 565eaf07 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Aplica diseño browser a listado de detecciones

Comienza a migrar este widget al uso del nuevo diseño.

Actualiza valores relativos a la consulta de datos para adaptarse al
nuevo servicio.
parent d1095ab3
Loading
Loading
Loading
Loading
+89 −50
Original line number Diff line number Diff line
define([
	'app/base/views/extensions/_AddCompositeSearchInTooltipFromTextSearch'
	, 'app/designs/textSearchFacetsList/Controller'
	, 'app/designs/textSearchFacetsList/Layout'
	, 'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'src/component/browser/bars/Order'
	, 'src/component/browser/bars/Total'
	, 'src/component/base/_Module'
	, 'src/component/base/_Show'
	, 'src/component/base/_Store'
	, 'src/design/browser/_AddFacetComponent'
	, 'src/design/browser/_AddOrderBarComponent'
	, 'src/design/browser/_AddTotalBarComponent'
	, 'src/design/browser/_BrowserWithTopbarAndFilterPanelDesignLayout'
	, 'src/redmicConfig'
	, 'templates/LoadingCustom'
	, 'templates/ObservationFilterForm'
	, 'templates/ObservationRegisterList'
], function(
	_AddCompositeSearchInTooltipFromTextSearch
	, TextSearchFacetsListController
	, TextSearchFacetsListLayout
	, declare
	, lang
	, Order
	, Total
	, _Module
	, _Show
	, _Store
	, _AddFacetComponent
	, _AddOrderBarComponent
	, _AddTotalBarComponent
	, _BrowserWithTopbarAndFilterPanelDesignLayout
	, redmicConfig
	, LoadingCustom
	, TemplateFilter
	, TemplateList
) {

	return declare([
		TextSearchFacetsListLayout, TextSearchFacetsListController, _AddCompositeSearchInTooltipFromTextSearch
	], {
	return declare([_Module, _Show, _Store, _BrowserWithTopbarAndFilterPanelDesignLayout, _AddTotalBarComponent,
		_AddOrderBarComponent, _AddFacetComponent], {
		//	summary:
		//		Widget para mostrar un listado de las observaciones registradas en el punto seleccionado.

@@ -34,17 +39,18 @@ define([

			this.config = {
				ownChannel: 'activityFixedObservationSeriesList',
				target: redmicConfig.services.observationSeries
				actions: {
					ADD_TO_QUERY: 'addToQuery'
				},
				target: redmicConfig.services.acousticDetectionEvents
			};

			lang.mixin(this, this.config, args);
		},

		_afterSetConfigurations: function() {
		_setConfigurations: function() {

			this.filterConfig = this._merge([this.filterConfig || {}, {
				serializeOnQueryUpdate: false
			}]);
			this.inherited(arguments);

			this.browserConfig = this._merge([this.browserConfig || {}, {
				template: TemplateList,
@@ -54,25 +60,25 @@ define([
						message: this.i18n.selectStationWithRegisteredData,
						iconClass: 'fr fr-no-data'
					}
				},
				bars: [{
					instance: Total
				},{
					instance: Order,
					config: {
				}
			}], {
				arrayMergingStrategy: 'concatenate'
			});

			this.orderBarConfig = this._merge([this.orderBarConfig || {}, {
				defaultOrderField: 'date',
				options: [
					{value: 'date'}
				]
					}
				}]
			}], {
				arrayMergingStrategy: 'concatenate'
			});

			this.facetsConfig = this._merge([{
				aggs: redmicConfig.aggregations.observationSeries
			}, this.facetsConfig || {}]);
			this.facetConfig = this._merge([this.facetConfig || {}, {
				aggs: redmicConfig.aggregations.acousticDetectionEvents,
				propertyName: 'query',
				search: lang.hitch(this, this._requestData)
			}]);

			this.textSearchConfig = this._merge([{
				showExpandIcon: true
@@ -85,6 +91,8 @@ define([

		_defineSubscriptions: function() {

			this.inherited(arguments);

			this.subscriptionsConfig.push({
				channel : this.timeseriesDataChannel,
				callback: '_subObservationStationSet'
@@ -95,40 +103,71 @@ define([

			this.inherited(arguments);

			this._setTitle('');
			this._setBrowserTitle('');
		},

		_subObservationStationSet: function(stationData) {

			this._updateObservationEventsTarget(stationData);

			const stationName = stationData.site?.name || '';
			this._setBrowserTitle(stationName);

			this._requestObservationEvents(stationData);
		},

		_subObservationStationSet: function(data) {
		_setBrowserTitle: function(titleValue) {

			var dataDefinitionId = this._getDataDefinitionId(data),
				stationName = data.site && data.site.name;
			this._publish(this.getChannel('SET_PROPS'), {
				browserDesignTitle: titleValue
			});
		},

			this._setTitle(stationName);
		_updateObservationEventsTarget: function(stationData) {

			this._publish(this.filter.getChannel('SET_PROPS'), {
				serializeOnQueryUpdate: true
			const target = lang.replace(redmicConfig.services.acousticDetectionEvents, {
				activityid: this.pathVariableId,
				receptorid: stationData.id
			});

			this._emitEvt('ADD_TO_QUERY', {
				query: {
					terms: {
						dataDefinition: dataDefinitionId
			this._publish(this.getChannel('SET_PROPS'), {
				target
			});
		},
					returnFields: redmicConfig.returnFields.observationSeries
				}

		_requestObservationEvents: function(stationData) {

			const dataDefinitionId = this._getDataDefinitionId(stationData);

			const query = {
				'data-definition': dataDefinitionId
			};

			this._lastObservationEventsQuery = query;

			this._emitEvt('REQUEST', {
				method: 'GET',
				target: this.target,
				query
			});
		},

		_getDataDefinitionId: function(data) {

			var measurements = data.measurements;
			const countMeasurement = data.measurements.find(measurement => measurement.parameter?.id === 87);

			var countMeasurement = measurements.find(function(measurement) {
			return countMeasurement?.dataDefinition?.id;
		},

				return measurement.parameter && measurement.parameter.id === 87;
			});
		_requestData: function(newQueryData) {

			return countMeasurement && countMeasurement.dataDefinition && countMeasurement.dataDefinition.id;
			const query = this._merge([this._lastObservationEventsQuery || {}, newQueryData?.query || {}]);

			this._emitEvt('REQUEST', {
				method: 'GET',
				target: this.target,
				query
			});
		}
	});
});
+6 −15
Original line number Diff line number Diff line
@@ -260,7 +260,7 @@ define([], function() {
		'timeSeriesActivities': baseUri + 'timeseries/activities',
		'activityTimeSeriesStations': baseUri + 'activities/{activityid}/timeseriesstations',
		'acousticDetectionReceptors': baseUri + 'v1/acoustic-detection/activities/{id}/receptors',
		'observationSeries': baseUri + 'private/observationseries',
		'acousticDetectionEvents': baseUri + 'v1/acoustic-detection/activities/{activityid}/receptors/{receptorid}/detections',
		'timeSeriesStations': baseUri + 'surveystations',
		'surveyStationsTimeSeries': baseUri + 'datadefinitions/{datadefinitionid}/timeseries',

@@ -360,18 +360,15 @@ define([], function() {
				field: 'metricGroup.name'
			}
		},
		observationSeries: {
		acousticDetectionEvents: {
			animal: {
				field: 'observation.animal.name',
				minCount: 1
				field: 'animals'
			},
			species: {
				field: 'observation.taxonomy.scientificName',
				minCount: 1
				field: 'taxons'
			},
			organisation: {
				field: 'observation.organisation.name',
				minCount: 1
				field: 'organisations'
			}
		},
		organisation: {
@@ -467,13 +464,7 @@ define([], function() {
			'properties.measurements.unit.id', 'properties.measurements.unit.name',
			'properties.measurements.dataDefinition.id', 'properties.measurements.dataDefinition.z'
		],
		timeSeriesStationsMap: ['geometry'],
		observationSeries: [
			'date', 'remark', 'observation.note', 'observation.animal.id', 'observation.animal.name',
			'observation.taxonomy.id', 'observation.taxonomy.scientificName', 'observation.device.id',
			'observation.device.name', 'observation.device.model', 'observation.organisation.id',
			'observation.organisation.name'
		]
		timeSeriesStationsMap: ['geometry']
	};

	retObj.outerPaths = [