[Libreoffice-commits] online.git: loleaflet/build loleaflet/dist loleaflet/src

Henry Castro hcastro at collabora.com
Fri Apr 1 01:33:04 UTC 2016


 loleaflet/build/deps.js                       |    5 ++
 loleaflet/dist/leaflet.css                    |   36 +++++++++++++++
 loleaflet/src/layer/marker/ProgressOverlay.js |   62 ++++++++++++++++++++++++++
 loleaflet/src/layer/tile/TileLayer.js         |    3 -
 loleaflet/src/map/Map.js                      |   16 ++++++
 5 files changed, 121 insertions(+), 1 deletion(-)

New commits:
commit a1e3c30d6e6019c7aa8306b9617561e8bd761480
Author: Henry Castro <hcastro at collabora.com>
Date:   Thu Mar 31 21:26:19 2016 -0400

    loleaflet: bccu#1622, add a marker progress bar

diff --git a/loleaflet/build/deps.js b/loleaflet/build/deps.js
index 9f0131f..13c6fe1 100644
--- a/loleaflet/build/deps.js
+++ b/loleaflet/build/deps.js
@@ -74,6 +74,11 @@ var deps = {
 		desc: 'Used to display an image over a particular rectangular area of the map.'
 	},
 
+	ProgressOverlay: {
+		src: ['layer/marker/ProgressOverlay.js'],
+		desc: 'Used to display a progress image over rectangular are of the map.'
+	},
+
 	Marker: {
 		src: ['layer/marker/Icon.js',
 		      'layer/marker/Icon.Default.js',
diff --git a/loleaflet/dist/leaflet.css b/loleaflet/dist/leaflet.css
index 4170f47..5d48932 100644
--- a/loleaflet/dist/leaflet.css
+++ b/loleaflet/dist/leaflet.css
@@ -9,6 +9,7 @@
 .leaflet-map-pane canvas,
 .leaflet-zoom-box,
 .leaflet-image-layer,
+.leaflet-progress-layer,
 .leaflet-layer {
 	position: absolute;
 	left: 0;
@@ -649,3 +650,38 @@ a.leaflet-control-buttons:hover:first-child {
 	display: block;
 	margin: 0 auto;
 	}
+
+.leaflet-progress {
+	background: #ebebeb;
+	border-left: 1px solid transparent;
+	border-right: 1px solid transparent;
+	border-radius: 10px;
+	height:100%;
+	}
+
+.leaflet-progress > span {
+	position: relative;
+	float: left;
+	margin: 0 -1px;
+	height: 100%;
+	text-align: right;
+	background: #5aaadb;
+	border: 1px solid;
+	border-color: #459fd6 #3094d2 #277db2;
+	border-radius: 10px;
+	background-image: -webkit-linear-gradient(top, #aed5ed, #7bbbe2 70%, #5aaadb);
+	background-image: -moz-linear-gradient(top, #aed5ed, #7bbbe2 70%, #5aaadb);
+	background-image: -o-linear-gradient(top, #aed5ed, #7bbbe2 70%, #5aaadb);
+	background-image: linear-gradient(to bottom, #aed5ed, #7bbbe2 70%, #5aaadb);
+	-webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
+	box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
+	}
+
+.leaflet-progress > span > span {
+	padding: 0 8px;
+	font-size: 11px;
+	font-weight: bold;
+	color: #404040;
+	color: rgba(0, 0, 0, 0.7);
+	text-shadow: 0 1px rgba(255, 255, 255, 0.4);
+	}
diff --git a/loleaflet/src/layer/marker/ProgressOverlay.js b/loleaflet/src/layer/marker/ProgressOverlay.js
new file mode 100644
index 0000000..055f7dd
--- /dev/null
+++ b/loleaflet/src/layer/marker/ProgressOverlay.js
@@ -0,0 +1,62 @@
+/*
+ * L.ProgressOverlay is used to overlay progress images over the map.
+ */
+
+L.ProgressOverlay = L.Layer.extend({
+
+	initialize: function (latlng, size) {
+		this._latlng = L.latLng(latlng);
+		this._size = size;
+	},
+
+	onAdd: function () {
+		this._initLayout();
+		this.update();
+	},
+
+	onRemove: function () {
+		L.DomUtil.remove(this._container);
+	},
+
+	update: function () {
+		if (this._container) {
+			var offset = this._size.divideBy(2, true);
+			var pos = this._map.latLngToLayerPoint(this._latlng).round();
+			this._setPos(pos.subtract(offset));
+		}
+		return this;
+	},
+
+	_initLayout: function () {
+		this._container = L.DomUtil.create('div', 'leaflet-progress-layer');
+		this._progress = L.DomUtil.create('div', 'leaflet-progress', this._container);
+		this._bar = L.DomUtil.create('span', '', this._progress);
+		this._label = L.DomUtil.create('span', '', this._bar);
+
+		L.DomUtil.setStyle(this._label, 'line-height', this._size.y + 'px');
+
+		this._container.style.width  = this._size.x + 'px';
+		this._container.style.height = this._size.y + 'px';
+
+		L.DomEvent
+			.disableClickPropagation(this._progress)
+			.disableScrollPropagation(this._container);
+
+		if (this._container) {
+			this.getPane().appendChild(this._container);
+		}
+	},
+
+	_setPos: function (pos) {
+		L.DomUtil.setPosition(this._container, pos);
+	},
+
+	setValue: function (value) {
+		this._bar.style.width = value + '%';
+		this._label.innerHTML = value + '%';
+	}
+});
+
+L.progressOverlay = function (latlng, size) {
+	return new L.ProgressOverlay(latlng, size);
+};
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 5eee647..1da6533 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -175,6 +175,7 @@ L.TileLayer = L.GridLayer.extend({
 				}
 			},
 		this);
+
 		for (var key in this._selectionHandles) {
 			this._selectionHandles[key].on('drag dragend', this._onSelectionHandleDrag, this);
 		}
@@ -747,7 +748,7 @@ L.TileLayer = L.GridLayer.extend({
 		done(e, tile);
 	},
 
-   _mapOnError: function (e) {
+	_mapOnError: function (e) {
 		if (e.msg) {
 			this._map.setPermission('view');
 		}
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index c2ae5bd..e7c6229 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -103,6 +103,8 @@ L.Map = L.Evented.extend({
 			}
 		});
 
+		this.on('statusindicator', this._onUpdateProgress, this);
+
 		// when editing, we need the LOK session right away
 		if (options.permission === 'edit') {
 			this.setPermission(options.permission);
@@ -694,6 +696,20 @@ L.Map = L.Evented.extend({
 		}
 	},
 
+	_onUpdateProgress: function (e) {
+		if (e.statusType === 'start') {
+			this._progressBar = L.progressOverlay(this.getCenter(), L.point(100, 32));
+			this.addLayer(this._progressBar);
+		}
+		else if (e.statusType === 'setvalue' && this._progressBar) {
+			this._progressBar.setValue(e.value);
+		}
+		else if (e.statusType === 'finish' && this._progressBar) {
+			this.removeLayer(this._progressBar);
+			this._progressOverlay = null;
+		}
+	},
+
 	_isMouseEnteringLeaving: function (e) {
 		var target = e.target || e.srcElement,
 			related = e.relatedTarget;


More information about the Libreoffice-commits mailing list