JGirault has uploaded a new change for review. https://gerrit.wikimedia.org/r/317076
Change subject: Fix how Wikivoyage shows external groups in the layers dropdown ...................................................................... Fix how Wikivoyage shows external groups in the layers dropdown Bug: T148346 Change-Id: I6e22a243da182e0b7c8965c10fe977c7ee8ea7be --- M lib/wikimedia-mapdata.js M modules/box/Map.js M modules/wikivoyage/WVMapLayers.js M modules/wikivoyage/styles/control-layers.less 4 files changed, 28 insertions(+), 5 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Kartographer refs/changes/76/317076/1 diff --git a/lib/wikimedia-mapdata.js b/lib/wikimedia-mapdata.js index 0e14db5..7ac88be 100644 --- a/lib/wikimedia-mapdata.js +++ b/lib/wikimedia-mapdata.js @@ -161,6 +161,7 @@ var ExternalGroup = function () { // call the constructor this.initialize.apply( this, arguments ); + this.isExternal = true; }; extend( ExternalGroup.prototype, Group.prototype ); @@ -309,7 +310,11 @@ /* globals module */ /** - * Internal Data Group. + * A hybrid group is a group that is not considered as a {@link Kartographer.Data.Group.HybridGroup} + * because it does not implement a `fetch` method. + * + * This abstraction is useful for the Developer API: the data is passed directly but still needs to + * be parsed to extract the external sub-groups. * * @class Kartographer.Data.Group.HybridGroup * @extends Kartographer.Data.Group @@ -332,6 +337,7 @@ Group.prototype.initialize.call( this, groupId, geoJSON, options ); this.externals = []; + this.isExternal = false; }; /** diff --git a/modules/box/Map.js b/modules/box/Map.js index 6880fc4..56b0329 100644 --- a/modules/box/Map.js +++ b/modules/box/Map.js @@ -359,8 +359,14 @@ DataManager.loadGroups( dataGroups ).then( function ( dataGroups ) { $.each( dataGroups, function ( key, group ) { + var layerOptions = { + attribution: group.attribution + }; + if ( group.isExternal ) { + layerOptions.name = group.attribution; + } if ( !$.isEmptyObject( group.getGeoJSON() ) ) { - map.addGeoJSONLayer( group.id, group.getGeoJSON(), { attribution: group.attribution } ); + map.addGeoJSONLayer( group.id, group.getGeoJSON(), layerOptions ); } else { mw.log.warn( 'Layer not found or contains no data: "' + group.id + '"' ); } @@ -386,9 +392,15 @@ DataManager.load( groupData ).then( function ( dataGroups ) { $.each( dataGroups, function ( key, group ) { - var groupId = inlineDataLayerKey + inlineDataLayerId++; + var groupId = inlineDataLayerKey + inlineDataLayerId++, + layerOptions = { + attribution: group.attribution || options.attribution + }; + if ( group.isExternal ) { + layerOptions.name = group.attribution; + } if ( !$.isEmptyObject( group.getGeoJSON() ) ) { - map.addGeoJSONLayer( groupId, group.getGeoJSON(), { attribution: group.attribution || options.attribution } ); + map.addGeoJSONLayer( groupId, group.getGeoJSON(), layerOptions ); } else { mw.log.warn( 'Layer not found or contains no data: "' + groupId + '"' ); } diff --git a/modules/wikivoyage/WVMapLayers.js b/modules/wikivoyage/WVMapLayers.js index 41c315f..a8e6161 100644 --- a/modules/wikivoyage/WVMapLayers.js +++ b/modules/wikivoyage/WVMapLayers.js @@ -84,9 +84,10 @@ } ); return this; } + this.addLayer( layer, - wikivoyage.formatLayerName( mw.msg( 'kartographer-wv-group' ) + id ), + layer.options.name || wikivoyage.formatLayerName( mw.msg( 'kartographer-wv-group' ) + ' ' + id ), true ); return this; diff --git a/modules/wikivoyage/styles/control-layers.less b/modules/wikivoyage/styles/control-layers.less index 72224d8..1b059fd 100644 --- a/modules/wikivoyage/styles/control-layers.less +++ b/modules/wikivoyage/styles/control-layers.less @@ -39,6 +39,10 @@ .leaflet-control-layers-list * { line-height: normal; vertical-align: middle; + + a { + vertical-align: bottom; + } } .leaflet-control-layers-list { -- To view, visit https://gerrit.wikimedia.org/r/317076 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6e22a243da182e0b7c8965c10fe977c7ee8ea7be Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Kartographer Gerrit-Branch: master Gerrit-Owner: JGirault <julien.inbox.w...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits