Skip to content
This repository was archived by the owner on Sep 20, 2019. It is now read-only.

Commit 94f8dc3

Browse files
committed
merge upstream changes
2 parents daece73 + ffcfa2f commit 94f8dc3

17 files changed

+257
-55
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Thumbs.db
66
# Project
77
# ===========
88
dist/ui-leaflet.pre.js
9+
dist/coverage/
910
js/angular-leaflet-directive-webpage.ngmin.js
1011

1112
# Related ecosystem

.npmignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,5 @@ test
4242
Gruntfile.js
4343
package.json
4444
bower.json
45+
46+
dist/coverage/

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
"*.md",
6565
"Gruntfile.js",
6666
"package.json",
67-
"bower.json"
67+
"bower.json",
68+
"dist/coverage/"
6869
]
6970
}

dist/ui-leaflet.js

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2294,7 +2294,6 @@ angular.module('ui-leaflet').service('leafletMarkersHelpers', ["$rootScope", "$t
22942294
maybeWatch = leafletWatchHelpers.maybeWatch,
22952295
$log = leafletLogger;
22962296

2297-
22982297
var _string = function (marker) {
22992298
//this exists since JSON.stringify barfs on cyclic
23002299
var retStr = '';
@@ -2704,6 +2703,27 @@ angular.module('ui-leaflet').service('leafletMarkersHelpers', ["$rootScope", "$t
27042703
marker.setLatLng([markerData.lat, markerData.lng]);
27052704
}
27062705
};
2706+
2707+
var _getLayerModels = function (models, layerName){
2708+
if (!isDefined(models))
2709+
return;
2710+
if (layerName)
2711+
return models[layerName];
2712+
return models;
2713+
};
2714+
2715+
var _getModelFromModels = function (models, id, layerName){
2716+
if(!isDefined(models))
2717+
return;
2718+
if(!id){
2719+
$log.error(errorHeader + 'marker id missing in getMarker');
2720+
return;
2721+
}
2722+
if(layerName)
2723+
return models[layerName][id];
2724+
2725+
return models[id];
2726+
};
27072727
return {
27082728
resetMarkerGroup: _resetMarkerGroup,
27092729

@@ -2806,7 +2826,9 @@ angular.module('ui-leaflet').service('leafletMarkersHelpers', ["$rootScope", "$t
28062826
});
28072827
},
28082828
string: _string,
2809-
log: _log
2829+
log: _log,
2830+
getModelFromModels : _getModelFromModels,
2831+
getLayerModels : _getLayerModels
28102832
};
28112833
}]);
28122834

@@ -4396,6 +4418,8 @@ angular.module('ui-leaflet').directive('markers',
43964418
addMarkerToGroup = leafletMarkersHelpers.addMarkerToGroup,
43974419
createMarker = leafletMarkersHelpers.createMarker,
43984420
deleteMarker = leafletMarkersHelpers.deleteMarker,
4421+
getModelFromModels = leafletMarkersHelpers.getModelFromModels,
4422+
getLayerModels = leafletMarkersHelpers.getLayerModels,
43994423
$it = leafletIterators,
44004424
_defaultWatchOptions = leafletHelpers.watchOptions,
44014425
maybeWatch = leafletWatchHelpers.maybeWatch,
@@ -4523,7 +4547,7 @@ angular.module('ui-leaflet').directive('markers',
45234547
leafletMarkerEvents.bindEvents(mapId, marker, pathToMarker, model, leafletScope, layerName);
45244548
}
45254549
else {
4526-
var oldModel = isDefined(oldModels)? oldModels[newName] : undefined;
4550+
var oldModel = getModelFromModels(oldModels, newName, maybeLayerName);
45274551
updateMarker(model, oldModel, maybeLMarker, pathToMarker, leafletScope, layers, map);
45284552
}
45294553
}
@@ -4615,8 +4639,8 @@ angular.module('ui-leaflet').directive('markers',
46154639
var _clean = function(models, oldModels){
46164640
if(isNested) {
46174641
$it.each(models, function(markerToMaybeDel, layerName) {
4618-
var oldModel = isDefined(oldModels)? oldModels[layerName] : undefined;
4619-
_destroy(markerToMaybeDel, oldModel, leafletMarkers[layerName], map, layers);
4642+
var oldLayerModels = getLayerModels(oldModels, layerName);
4643+
_destroy(markerToMaybeDel, oldLayerModels, leafletMarkers[layerName], map, layers);
46204644
});
46214645
return;
46224646
}
@@ -4628,8 +4652,9 @@ angular.module('ui-leaflet').directive('markers',
46284652
var skips = null;
46294653
if(isNested) {
46304654
$it.each(models, function(markersToAdd, layerName) {
4631-
var oldModel = isDefined(oldModels)? oldModels[layerName] : undefined;
4632-
skips = _getNewModelsToSkipp(models[layerName], oldModel, leafletMarkers[layerName]);
4655+
var oldLayerModels = getLayerModels(oldModels, layerName);
4656+
var newlayerModels = getLayerModels(models, layerName);
4657+
skips = _getNewModelsToSkipp(newlayerModels, oldLayerModels, leafletMarkers[layerName]);
46334658
_addMarkers(attrs.id, markersToAdd, oldModels, map, layers, leafletMarkers, leafletScope,
46344659
watchOptions, layerName, skips);
46354660
});

dist/ui-leaflet.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ui-leaflet.min.no-header.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ui-leaflet_dev_mapped.js

Lines changed: 32 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ui-leaflet_dev_mapped.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<!DOCTYPE html>
2+
<html ng-app="demoapp">
3+
<head>
4+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
5+
<script src="../bower_components/angular/angular.min.js"></script>
6+
<script src="../bower_components/leaflet/dist/leaflet.js"></script>
7+
<script src="../bower_components/angular-simple-logger/dist/angular-simple-logger.js"></script>
8+
<script src="../dist/ui-leaflet_dev_mapped.js"></script>
9+
<link rel="stylesheet" href="../bower_components/leaflet/dist/leaflet.css"/>
10+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
11+
<script>
12+
var app = angular.module('demoapp', ['ui-leaflet']);
13+
app.controller('MixedMOverlaysMarkersNestedNoWatchController', function ($scope, leafletData, $timeout, leafletLogger) {
14+
leafletLogger.currentLevel = leafletLogger.LEVELS.debug;
15+
var _clonedMarkers;
16+
$timeout(function () {
17+
//should do nothing (not watched) and only see one destroy
18+
_clonedMarkers = angular.copy($scope.markers);
19+
},1000);
20+
$timeout(function () {
21+
leafletData.getDirectiveControls().then(function (controls) {
22+
//move all markers by a few decimal points
23+
for (var markerName in _clonedMarkers) {
24+
var marker = _clonedMarkers[markerName];
25+
marker.lat += .05;
26+
}
27+
//force manual update
28+
controls.markers.create(_clonedMarkers ,$scope.markers);
29+
$scope.markers = _clonedMarkers;
30+
});
31+
}, 4000);
32+
angular.extend($scope, {
33+
markersWatchOptions: {
34+
doWatch: false,
35+
isDeep: false,
36+
individual: {
37+
doWatch: false,
38+
isDeep: false
39+
}
40+
},
41+
center: {
42+
lat: 42.20133,
43+
lng: 2.19110,
44+
zoom: 11
45+
},
46+
47+
markers: {
48+
m1: {
49+
lat: 42.20133,
50+
lng: 2.19110,
51+
message: "I'm a car"
52+
},
53+
m2: {
54+
lat: 42.21133,
55+
lng: 2.18110,
56+
message: "I'm a car"
57+
}
58+
}
59+
});
60+
});
61+
</script>
62+
</head>
63+
<body ng-controller="MixedMOverlaysMarkersNestedNoWatchController">
64+
<leaflet
65+
lf-center="center"
66+
markers="markers"
67+
markers-watch-options="markersWatchOptions"
68+
height="480px" width="100%">
69+
</leaflet>
70+
<h1>Overlays with nested markers no watchers example</h1>
71+
</body>
72+
</html>

examples/0605-mixed-overlays-markers-nested-no-watch-example.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1111
<script>
1212
var app = angular.module("demoapp", ['ui-leaflet']);
13-
app.controller('MixedMOverlaysMarkersNestedNoWatchController', function ($scope, leafletData, $timeout) {
13+
app.controller('MixedMOverlaysMarkersNestedNoWatchController', function ($scope, leafletData, $timeout, leafletLogger) {
14+
leafletLogger.currentLevel = leafletLogger.LEVELS.debug;
1415
var _clonedMarkers;
1516
$timeout(function () {
1617
//should do nothing (not watched) and only see one destroy
17-
_clonedMarkers = angular.extend({},$scope.markers);
18-
$scope.markers = {};
18+
_clonedMarkers = angular.copy($scope.markers);
1919
},1000);
2020
$timeout(function () {
2121
leafletData.getDirectiveControls().then(function (controls) {
@@ -28,8 +28,8 @@
2828
}
2929
}
3030
//force manual update
31+
controls.markers.create(_clonedMarkers ,$scope.markers);
3132
$scope.markers = _clonedMarkers;
32-
controls.markers.create($scope.markers);
3333
});
3434
}, 4000);
3535
angular.extend($scope, {

grunt/karma.js

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,18 @@ module.exports = function (grunt, options) {
66
unit: {
77
configFile: 'test/karma-unit.conf.js',
88
autoWatch: false,
9-
singleRun: true
9+
singleRun: true,
10+
reporters: ['dots', 'coverage'],
11+
preprocessors: {
12+
'test/**/**/*.coffee': ['coffee'],
13+
'dist/<%= pkg.name %>.js': ['coverage']
14+
},
15+
coverageReporter: {
16+
reporters:[
17+
{ type : 'html', dir : 'dist/coverage/', subdir: "lib" },
18+
{type: 'text-summary', dir:'dist/coverage/', subdir:'lib'}
19+
]
20+
}
1021
},
1122
'unit-mocha': {
1223
configFile: 'test/karma-unit.conf.js',
@@ -38,23 +49,6 @@ module.exports = function (grunt, options) {
3849
browsers: ['Chrome'],
3950
autoWatch: true,
4051
singleRun: true
41-
},
42-
unit_coverage: {
43-
configFile: 'test/karma-unit.conf.js',
44-
autoWatch: false,
45-
singleRun: true,
46-
//logLevel: 'DEBUG',
47-
reporters: ['progress', 'coverage'],
48-
preprocessors: {
49-
'test/**/**/*.coffee': ['coffee'],
50-
'dist/<%= pkg.name %>.js': ['coverage']
51-
},
52-
coverageReporter: {
53-
reporters:[
54-
{type: 'lcov', dir:'coverage/', subdir:'report'},
55-
{type: 'text-summary', dir:'coverage/', subdir:'report'}
56-
]
57-
}
5852
}
5953
};
6054
};

grunt/watch.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
var getAvailPort = require('./utils/getAvailPort');
33
var port = getAvailPort(7777);
44

5-
var _files = ['src/**/*.js', 'test/unit/**.js', 'test/unit/**.coffee', 'test/e2e/**.js'];
5+
var _files = ['src/**/*.js', 'test/unit/**.js', 'test/unit/**.coffee', 'test/e2e/**.js',
6+
'test/unit/**/**.js', 'test/unit/**/**.coffee', 'test/e2e/**/**.js'];
67

78
module.exports = function(grunt, options) {
89
return {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
"dependencies": {
7272
"angular": "1.x",
7373
"angular-simple-logger": "~0.1.4",
74+
"karma-coverage": "^0.5.3",
7475
"leaflet": "0.7.x"
7576
}
7677
}

0 commit comments

Comments
 (0)