X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/65a67281bcf5f1258512b96136920aceb64a8b23..44f6dce2dcac82048e460bb1f2a8fec6fb58b539:/src/handlebar_helpers.js diff --git a/src/handlebar_helpers.js b/src/handlebar_helpers.js index 6443d37..de8778b 100644 --- a/src/handlebar_helpers.js +++ b/src/handlebar_helpers.js @@ -1,3 +1,5 @@ +'use strict'; + function formatOSMType(sType, bExcludeExternal) { if (sType === 'N') return 'node'; if (sType === 'W') return 'way'; @@ -12,8 +14,14 @@ function formatOSMType(sType, bExcludeExternal) { } Handlebars.registerHelper({ - isaddresses_unused: function (aAddressLine) { - return ((aAddressLine.isaddress && aAddressLine.isaddress === 'f') ? 'notused' : ''); + formatOSMType: function (sType, bExcludeExternal) { + return formatOSMType(sType, bExcludeExternal); + }, + shortOSMType: function (sType) { + if (sType === 'node') return 'N'; + if (sType === 'way') return 'W'; + if (sType === 'relation') return 'R'; + return ''; }, // { osm_type: 'R', osm_id: 12345 } // relation 12345' + sTitleEscaped + '' + '' + sTitleEscaped + '' ); }, + formatPlaceType: function (aPlace) { + var sOut = aPlace.class + ':' + aPlace.type; + if (aPlace.type && aPlace.type === 'administrative' && aPlace.place_type) { + sOut = sOut + ' (' + aPlace.place_type + ')'; + } + return new Handlebars.SafeString(sOut); + }, coverageType: function (aPlace) { return (aPlace.isarea ? 'Polygon' : 'Point'); }, @@ -88,7 +108,7 @@ Handlebars.registerHelper({ return (iLevel < 15 ? iLevel : ''); }, formatMapIcon: function (sIcon) { - if (!sIcon) return; + if (!sIcon) return ''; var url = sIcon; if (!url.match(/^http/)) url = get_config_value('Images_Base_Url') + url; @@ -104,14 +124,17 @@ Handlebars.registerHelper({ return s && s[0].toUpperCase() + s.slice(1); } - if (aPlace.type && aPlace.type === 'yes') { + if (aPlace.type && aPlace.type === 'yes' && aPlace.class) { return capitalize(aPlace.class.replace(/_/g, ' ')); } - return capitalize(aPlace.type.replace(/_/g, ' ')); + if (aPlace.type) { + return capitalize(aPlace.type.replace(/_/g, ' ')); + } + return ''; }, formatSearchRank: function (iRank) { // same as - // https://github.com/openstreetmap/Nominatim/blob/master/sql/functions.sql + // https://github.com/osm-search/Nominatim/blob/master/sql/functions.sql // get_searchrank_label() if (iRank < 2) return 'continent'; @@ -133,13 +156,10 @@ Handlebars.registerHelper({ return 'other: ' + iRank; }, tooManyHierarchyLinesWarning: function (aPlace) { - if (!aPlace.hierarchy) return; + if (!aPlace.hierarchy) return ''; - var c = 0; - for (var type in aPlace.hierarchy) { - c = c + type.length + 1; - } - if (c < 500) return; + var c = Object.keys(aPlace.hierarchy); + if (c < 500) return ''; return new Handlebars.SafeString( '

There are more child objects which are not shown.

' @@ -173,7 +193,9 @@ Handlebars.registerHelper({ var select = $('