Commit ba8ada4f authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Implementa contenedor externo para timeDimension

Permite mostrar el control de la dimensión temporal para las capas del
mapa que lo soporten en un contenedor externo al propio mapa.

Adapta estilos para lograr un comportamiento responsive y adopta un
estilo oscuro, más acorde con la plataforma.

Actualiza submódulo.
parent 1e0d6995
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ define([
	, 'dojo/aspect'
	, 'leaflet'
	, 'moment'
	, 'put-selector'

	, 'leaflet-nontiledlayer'
	, 'iso8601-js-period'
@@ -14,6 +15,7 @@ define([
	, aspect
	, L
	, moment
	, put
) {

	return declare(null, {
@@ -23,7 +25,8 @@ define([
		constructor: function(args) {

			this.config = {
				_layersWithTimeDimension: {}
				_layersWithTimeDimension: {},
				getTimeDimensionExternalContainer: null
			};

			lang.mixin(this, this.config, args);
@@ -152,6 +155,34 @@ define([
				maxSpeed: 1,
				speedStep: 0.1
			}).addTo(this.map);

			if (this.getTimeDimensionExternalContainer) {
				this._manageTimeDimensionControlLocation();
			}
		},

		_manageTimeDimensionControlLocation: function() {

			var externalContainer = this.getTimeDimensionExternalContainer();

			if (!externalContainer) {
				return;
			}

			if (externalContainer.then) {
				externalContainer.then(lang.hitch(this, this._relocateTimeDimensionControl));
			} else {
				this._relocateTimeDimensionControl(externalContainer);
			}
		},

		_relocateTimeDimensionControl: function(externalContainer) {

			if (!externalContainer) {
				return;
			}

			put(externalContainer, this._timeDimensionControlInstance._container);
		},

		_removeTimeDimensionWidget: function() {
+20 −2
Original line number Diff line number Diff line
define([
	'dojo/_base/declare'
	, 'dojo/_base/lang'
	, 'dojo/Deferred'
	, 'put-selector'
	, 'app/designs/mapWithSideContent/Controller'
	, 'app/designs/mapWithSideContent/layout/MapAndContent'
	, 'app/designs/mapWithSideContent/layout/MapAndContentAndTopbar'
	, 'src/component/base/_ExternalConfig'
	, 'src/component/base/_Store'
	, 'src/component/atlas/Atlas'
@@ -14,6 +16,8 @@ define([
], function(
	declare
	, lang
	, Deferred
	, put
	, Controller
	, Layout
	, _ExternalConfig
@@ -38,7 +42,8 @@ define([
				ownChannel: 'marineMonitoringViewer',
				selectionTarget: redmicConfig.services.atlasLayerSelection,
				_activityLayersTarget: 'activityLayersTarget',
				externalConfigPropName: 'marineMonitoringViewerActivities'
				externalConfigPropName: 'marineMonitoringViewerActivities',
				_topbarNodeClassName: 'timeDimensionTopbarContainer'
			};

			lang.mixin(this, this.config, args);
@@ -51,6 +56,10 @@ define([

		_setConfigurations: function() {

			this.mapConfig = this._merge([{
				getTimeDimensionExternalContainer: lang.hitch(this, this._getExternalContainer)
			}, this.mapConfig || {}]);

			this.atlasConfig = this._merge([{
				parentChannel: this.getChannel(),
				localTarget: this._activityLayersTarget,
@@ -105,6 +114,10 @@ define([

			this.inherited(arguments);

			put(this.topbarNode, '.' + this._topbarNodeClassName);
			this._externalContainerDfd = new Deferred();
			this._externalContainerDfd.resolve(this.topbarNode);

			this._emitEvt('GET_EXTERNAL_CONFIG', {
				propertyName: this.externalConfigPropName
			});
@@ -114,6 +127,11 @@ define([
			});
		},

		_getExternalContainer: function() {

			return this._externalContainerDfd;
		},

		_onGotExternalConfig: function(evt) {

			var configValue = evt[this.externalConfigPropName];
Compare 71862294 to 11d30216
Original line number Diff line number Diff line
Subproject commit 71862294a2ef2139f63d32da16820d9f762b443a
Subproject commit 11d30216dbe118ccc2458466dc79016eabde19b8