Update to iD v1.9.1
authorBryan Housel <bryan@mapbox.com>
Thu, 3 Mar 2016 21:28:53 +0000 (16:28 -0500)
committerBryan Housel <bryan@mapbox.com>
Thu, 3 Mar 2016 21:28:53 +0000 (16:28 -0500)
vendor/assets/iD/iD.js
vendor/assets/iD/iD/locales/ja.json
vendor/assets/iD/iD/locales/pt.json
vendor/assets/iD/iD/traffico/stylesheets/traffico.css.erb [moved from vendor/assets/iD/iD/traffico/stylesheets/traffico.css with 94% similarity]

index c8a4af2..84eabfd 100644 (file)
@@ -19034,32 +19034,6 @@ window.iD = function () {
         }
     };
 
-    var locale, localePath;
-    context.locale = function(loc, path) {
-        locale = loc;
-        localePath = path;
-
-        // Also set iD.detect().locale (unless we detected 'en-us' and openstreetmap wants 'en')..
-        if (!(loc.toLowerCase() === 'en' && iD.detect().locale.toLowerCase() === 'en-us')) {
-            iD.detect().locale = loc;
-        }
-
-        return context;
-    };
-
-    context.loadLocale = function(cb) {
-        if (locale && locale !== 'en' && iD.data.locales.indexOf(locale) !== -1) {
-            localePath = localePath || context.assetPath() + 'locales/' + locale + '.json';
-            d3.json(localePath, function(err, result) {
-                window.locale[locale] = result;
-                window.locale.current(locale);
-                cb();
-            });
-        } else {
-            cb();
-        }
-    };
-
 
     /* Straight accessors. Avoid using these if you can. */
     var ui, connection, history;
@@ -19300,9 +19274,39 @@ window.iD = function () {
         return context;
     };
 
+    context.asset = function(_) {
+        var filename = assetPath + _;
+        return assetMap[filename] || filename;
+    };
+
     context.imagePath = function(_) {
-        var asset = 'img/' + _;
-        return assetMap[asset] || assetPath + asset;
+        return context.asset('img/' + _);
+    };
+
+    var locale, localePath;
+    context.locale = function(loc, path) {
+        locale = loc;
+        localePath = path;
+
+        // Also set iD.detect().locale (unless we detected 'en-us' and openstreetmap wants 'en')..
+        if (!(loc.toLowerCase() === 'en' && iD.detect().locale.toLowerCase() === 'en-us')) {
+            iD.detect().locale = loc;
+        }
+
+        return context;
+    };
+
+    context.loadLocale = function(cb) {
+        if (locale && locale !== 'en' && iD.data.locales.indexOf(locale) !== -1) {
+            localePath = localePath || context.asset('locales/' + locale + '.json');
+            d3.json(localePath, function(err, result) {
+                window.locale[locale] = result;
+                window.locale.current(locale);
+                cb();
+            });
+        } else {
+            cb();
+        }
     };
 
 
@@ -19362,7 +19366,7 @@ window.iD = function () {
 };
 
 
-iD.version = '1.9.0';
+iD.version = '1.9.1';
 
 (function() {
     var detected = {};
@@ -19465,14 +19469,14 @@ iD.services.mapillary = function() {
             .append('link')
             .attr('id', 'traffico')
             .attr('rel', 'stylesheet')
-            .attr('href', context.assetPath() + 'traffico/stylesheets/traffico.css');
+            .attr('href', context.asset('traffico/stylesheets/traffico.css'));
     }
 
     function loadSignDefs(context) {
         if (!iD.services.mapillary.sign_defs) {
             iD.services.mapillary.sign_defs = {};
             _.each(['au', 'br', 'ca', 'de', 'us'], function(region) {
-                d3.json(context.assetPath() + 'traffico/string-maps/' + region + '-map.json', function(err, data) {
+                d3.json(context.asset('traffico/string-maps/' + region + '-map.json'), function(err, data) {
                     if (err) return;
                     if (region === 'de') region = 'eu';
                     iD.services.mapillary.sign_defs[region] = data;
@@ -34529,7 +34533,7 @@ iD.ui.intro = function(context) {
             center = context.map().center(),
             zoom = context.map().zoom(),
             background = context.background().baseLayerSource(),
-            opacity = d3.select('.background-layer').style('opacity'),
+            opacity = d3.selectAll('#map .layer-background').style('opacity'),
             loadedTiles = context.connection().loadedTiles(),
             baseEntities = context.history().graph().base().entities,
             introGraph, name;
@@ -34552,7 +34556,7 @@ iD.ui.intro = function(context) {
         context.history().merge(d3.values(iD.Graph().load(introGraph).entities));
         context.background().bing();
 
-        d3.select('.background-layer').style('opacity', 1);
+        d3.selectAll('#map .layer-background').style('opacity', 1);
 
         var curtain = d3.curtain();
         selection.call(curtain);
@@ -34577,7 +34581,7 @@ iD.ui.intro = function(context) {
         steps[steps.length - 1].on('startEditing', function() {
             curtain.remove();
             navwrap.remove();
-            d3.select('.background-layer').style('opacity', opacity);
+            d3.selectAll('#map .layer-background').style('opacity', opacity);
             context.connection().toggle(true).flush().loadedTiles(loadedTiles);
             context.history().reset().merge(d3.values(baseEntities));
             context.background().baseLayerSource(background);
@@ -35627,6 +35631,88 @@ iD.ui.Notice = function(context) {
         disableTooHigh();
     };
 };
+iD.ui.PresetIcon = function() {
+    var preset, geometry;
+
+    function presetIcon(selection) {
+        selection.each(render);
+    }
+
+    function render() {
+        var selection = d3.select(this),
+            p = preset.apply(this, arguments),
+            geom = geometry.apply(this, arguments),
+            icon = p.icon || (geom === 'line' ? 'other-line' : 'marker-stroked'),
+            maki = iD.data.featureIcons.hasOwnProperty(icon + '-24');
+
+        if (icon === 'dentist') maki = true;  // workaround for dentist icon missing in `maki-sprite.json`
+
+        function tag_classes(p) {
+            var s = '';
+            for (var i in p.tags) {
+                s += ' tag-' + i;
+                if (p.tags[i] !== '*') {
+                    s += ' tag-' + i + '-' + p.tags[i];
+                }
+            }
+            return s;
+        }
+
+        var $fill = selection.selectAll('.preset-icon-fill')
+            .data([0]);
+
+        $fill.enter().append('div');
+
+        $fill.attr('class', function() {
+            return 'preset-icon-fill preset-icon-fill-' + geom + tag_classes(p);
+        });
+
+        var $frame = selection.selectAll('.preset-icon-frame')
+            .data([0]);
+
+        $frame.enter()
+            .append('div')
+            .call(iD.svg.Icon('#preset-icon-frame'));
+
+        $frame.attr('class', function() {
+            return 'preset-icon-frame ' + (geom === 'area' ? '' : 'hide');
+        });
+
+
+        var $icon = selection.selectAll('.preset-icon')
+            .data([0]);
+
+        $icon.enter()
+            .append('div')
+            .attr('class', 'preset-icon')
+            .call(iD.svg.Icon(''));
+
+        $icon
+            .attr('class', 'preset-icon preset-icon-' + (maki ? '32' : (geom === 'area' ? '44' : '60')));
+
+        $icon.selectAll('svg')
+            .attr('class', function() {
+                return 'icon ' + icon + tag_classes(p);
+            });
+
+        $icon.selectAll('use')       // workaround: maki parking-24 broken?
+            .attr('href', '#' + icon + (maki ? ( icon === 'parking' ? '-18' : '-24') : ''));
+    }
+
+    presetIcon.preset = function(_) {
+        if (!arguments.length) return preset;
+        preset = d3.functor(_);
+        return presetIcon;
+    };
+
+    presetIcon.geometry = function(_) {
+        if (!arguments.length) return geometry;
+        geometry = d3.functor(_);
+        return presetIcon;
+    };
+
+    return presetIcon;
+};
 iD.ui.preset = function(context) {
     var event = d3.dispatch('change'),
         state,
@@ -35894,88 +35980,6 @@ iD.ui.preset = function(context) {
 
     return d3.rebind(presets, event, 'on');
 };
-iD.ui.PresetIcon = function() {
-    var preset, geometry;
-
-    function presetIcon(selection) {
-        selection.each(render);
-    }
-
-    function render() {
-        var selection = d3.select(this),
-            p = preset.apply(this, arguments),
-            geom = geometry.apply(this, arguments),
-            icon = p.icon || (geom === 'line' ? 'other-line' : 'marker-stroked'),
-            maki = iD.data.featureIcons.hasOwnProperty(icon + '-24');
-
-        if (icon === 'dentist') maki = true;  // workaround for dentist icon missing in `maki-sprite.json`
-
-        function tag_classes(p) {
-            var s = '';
-            for (var i in p.tags) {
-                s += ' tag-' + i;
-                if (p.tags[i] !== '*') {
-                    s += ' tag-' + i + '-' + p.tags[i];
-                }
-            }
-            return s;
-        }
-
-        var $fill = selection.selectAll('.preset-icon-fill')
-            .data([0]);
-
-        $fill.enter().append('div');
-
-        $fill.attr('class', function() {
-            return 'preset-icon-fill preset-icon-fill-' + geom + tag_classes(p);
-        });
-
-        var $frame = selection.selectAll('.preset-icon-frame')
-            .data([0]);
-
-        $frame.enter()
-            .append('div')
-            .call(iD.svg.Icon('#preset-icon-frame'));
-
-        $frame.attr('class', function() {
-            return 'preset-icon-frame ' + (geom === 'area' ? '' : 'hide');
-        });
-
-
-        var $icon = selection.selectAll('.preset-icon')
-            .data([0]);
-
-        $icon.enter()
-            .append('div')
-            .attr('class', 'preset-icon')
-            .call(iD.svg.Icon(''));
-
-        $icon
-            .attr('class', 'preset-icon preset-icon-' + (maki ? '32' : (geom === 'area' ? '44' : '60')));
-
-        $icon.selectAll('svg')
-            .attr('class', function() {
-                return 'icon ' + icon + tag_classes(p);
-            });
-
-        $icon.selectAll('use')       // workaround: maki parking-24 broken?
-            .attr('href', '#' + icon + (maki ? ( icon === 'parking' ? '-18' : '-24') : ''));
-    }
-
-    presetIcon.preset = function(_) {
-        if (!arguments.length) return preset;
-        preset = d3.functor(_);
-        return presetIcon;
-    };
-
-    presetIcon.geometry = function(_) {
-        if (!arguments.length) return geometry;
-        geometry = d3.functor(_);
-        return presetIcon;
-    };
-
-    return presetIcon;
-};
 iD.ui.PresetList = function(context) {
     var event = d3.dispatch('choose'),
         id,
index fa05efc..4d031f4 100644 (file)
         }
     },
     "presets": {
+        "categories": {
+            "category-building": {
+                "name": "建物"
+            },
+            "category-golf": {
+                "name": "ゴルフ"
+            },
+            "category-landuse": {
+                "name": "土地利用"
+            },
+            "category-path": {
+                "name": "歩道"
+            },
+            "category-rail": {
+                "name": "線路"
+            },
+            "category-restriction": {
+                "name": "進行方向制限"
+            },
+            "category-road": {
+                "name": "車道"
+            },
+            "category-route": {
+                "name": "ルート"
+            },
+            "category-water-area": {
+                "name": "水域"
+            },
+            "category-water-line": {
+                "name": "流水"
+            }
+        },
         "fields": {
             "access": {
                 "label": "通行可",
                 "name": "転回場",
                 "terms": "転回場, 車回し"
             },
+            "highway/unclassified": {
+                "name": "一般道(2車線未満)",
+                "terms": "一般道(2車線未満)"
+            },
             "historic": {
                 "name": "史跡",
                 "terms": "史跡, 歴史的建造物"
                 "name": "浄水場",
                 "terms": "浄水場"
             },
+            "man_made/works": {
+                "name": "工場",
+                "terms": "プラント"
+            },
             "military/airfield": {
                 "name": "軍用飛行場",
                 "terms": "軍用飛行場, 航空基地, 飛行場, 空港, 空軍, 空自, 航空自衛隊, 軍事基地"
index 317dccd..c561081 100644 (file)
             "key": "D",
             "annotation": "Linhas/áreas desligadas.",
             "not_connected": "Para desligar é necessário selecionar 1 ponto comum a pelo menos 2 linhas ou áreas.",
-            "connected_to_hidden": "Não é possível desligar pois este elemento está ligado a outro elemento escondido."
+            "connected_to_hidden": "Não é possível desligar pois este elemento está ligado a outro elemento escondido.",
+            "relation": "Isto não pode ser desconectado porque conecta membros de uma relação."
         },
         "merge": {
             "title": "Combinar",
         "warnings": "Avisos",
         "modified": "Alterado",
         "deleted": "Eliminado",
-        "created": "Criado"
+        "created": "Criado",
+        "about_changeset_comments": "Sobre comentários de changesets"
     },
     "contributors": {
         "list": "Edições de {users}",
         "description": "Configuração da imagem de fundo",
         "percent_brightness": "{opacity}% transparente",
         "none": "Nenhum",
+        "best_imagery": "Melhor fonte de imagem para esse lugar",
         "custom": "Personalizado",
         "custom_button": "Editar fundo personalizando",
         "custom_prompt": "Introduzir um URL válido. Tokens válidos são {z}, {x}, {y} para esquemas Z/X/Y e {u} para esquemas QuadTile.",
         "fix_misalignment": "Corrigir alinhamento",
+        "imagery_source_faq": "De onde essa imagem vem?",
         "reset": "reiniciar",
         "minimap": {
             "description": "Mini-mapa",
         "view_on_osm": "Ver no OpenStreetMap",
         "facebook": "Partilhar no Facebook",
         "twitter": "Partilhar no Twitter",
-        "google": "Partilhar no Google+"
+        "google": "Partilhar no Google+",
+        "help_html": "Suas mudanças devem aparecer na \"Camada padrão\" em poucos minutos. Outras camadas e determinados recursos podem demorar mais.",
+        "help_link_text": "Detalhes"
     },
     "confirm": {
         "okay": "OK",
         "zoom": "Enquadrar trilho GPX",
         "browse": "Procurar por ficheiro .gpx"
     },
+    "mapillary_images": {
+        "tooltip": "Fotos ao nível da rua do Mapillary",
+        "title": "Camada de Fotos (Mapillary)"
+    },
+    "mapillary_signs": {
+        "tooltip": "Placas de trânsito do Mapillary",
+        "title": "Camada de Placas de Trânsito (Mapillary)"
+    },
     "mapillary": {
         "view_on_mapillary": "Ver esta imagem no Mapillary"
     },
         }
     },
     "presets": {
+        "categories": {
+            "category-building": {
+                "name": "Tipos de Edificações"
+            },
+            "category-golf": {
+                "name": "Recursos de Golfe"
+            },
+            "category-landuse": {
+                "name": "Tipos de Uso do Solo"
+            },
+            "category-path": {
+                "name": "Tipos de Caminhos"
+            },
+            "category-rail": {
+                "name": "Tipos de Ferrovias"
+            },
+            "category-restriction": {
+                "name": "Tipos de Restrição"
+            },
+            "category-road": {
+                "name": "Rodovias e Ruas"
+            },
+            "category-route": {
+                "name": "Tipos de Rotas"
+            },
+            "category-water-area": {
+                "name": "Elementos de Água"
+            },
+            "category-water-line": {
+                "name": "Tipos de Cursos d'água"
+            }
+        },
         "fields": {
             "access": {
                 "label": "Acesso autorizado",
             "shop": {
                 "label": "Tipo"
             },
+            "site": {
+                "label": "Tipo"
+            },
             "sloped_curb": {
                 "label": "Lancil inclinado"
             },
                 "name": "Ligação a uma estrada terciária",
                 "terms": "Tertiary Link, Ligação Estrada Municipal, Ligação Rodovia Municipal, Ligação Municipal,  Ligação Estrada Terciária, Entrada Estrada Municipal, Entrada Rodovia Municipal, Entrada Municipal, Entrada Estrada Terciária, Saída Municipal, Saída Rodovia Municipal, Saída Municipal, Saída Estrada Municipal"
             },
+            "highway/track": {
+                "name": "Estrada sem manutenção",
+                "terms": "Estrada de terra, estrada agrícola"
+            },
             "highway/traffic_signals": {
                 "name": "Semáforos",
                 "terms": "Semáforo, Vermelho, Verde, Amarelo, Sinal, Sinal de Trânsito"
                 "name": "Rampa para barcos",
                 "terms": "Slipway"
             },
+            "leisure/sports_centre": {
+                "name": "Centro Esportivo / Academia",
+                "terms": "Ginástica, Academia, Ginásio, Escola, Centro de Treinamento, Treinamento, Esportes, Centro de Esportes"
+            },
+            "leisure/sports_centre/swimming": {
+                "name": "Academia de Natação",
+                "terms": "Piscina, Natação, Aquática, Centro Aquático, Saltos ornamentais, Esportes Aquáticos, Polo aquático"
+            },
             "leisure/stadium": {
                 "name": "Estádio",
                 "terms": "Estádio, Stadium"
                 "name": "Circuito de corrida (não motorizada)",
                 "terms": "Racetrack (non-Motorsport), Circuito de Bicicletas"
             },
+            "leisure/water_park": {
+                "name": "Parque Aquático",
+                "terms": "Piscina, Parque de diversões, Lazer, Diversão,"
+            },
             "line": {
                 "name": "Linha",
                 "terms": "Linha, Line"
                 "name": "Loja de antiguidades",
                 "terms": "Antiques Shop, Antiguidade, Antiguidades, Antigo, Relíquia, Relíquias"
             },
+            "shop/art": {
+                "name": "Loja de Artes",
+                "terms": "Artesanato, Decoração, Objetos artísticos, Objetos decorativos, Quadros, Pintura,"
+            },
             "shop/baby_goods": {
                 "name": "Loja de acessórios para bebés",
                 "terms": "Baby Goods Store, Loja de Roupa, Carrinho, Brinquedos, Bébé, Bébe, Bebe, bébés"
                 "name": "Papelaria",
                 "terms": "Stationery Store, Loja de Material de Escritório"
             },
+            "shop/storage_rental": {
+                "name": "Aluguel de Armazenamento",
+                "terms": "Estoque, Armazenamento, Depósito"
+            },
             "shop/supermarket": {
                 "name": "Supermercado / Hipermercado",
                 "terms": "Hiper-mercado, Hiper mercado, Super-mercado, Super mercado, Compras, Loja, Alimentar, Alimentos"
                 "name": "Chalé / Casa de férias",
                 "terms": "Chalet"
             },
+            "tourism/gallery": {
+                "name": "Galeria de arte",
+                "terms": "Centro Cultural, Galeria, Exposição, Arte"
+            },
             "tourism/guest_house": {
                 "name": "Casa de hóspedes",
                 "terms": "Cama e Pequeno Almoço, Cama e Peq. Almoço, Cama e Almoço"
@@ -4,11 +4,11 @@
 
 @font-face {
   font-family: "traffico";
-  src: url("../fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.eot");
-  src: url("../fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.eot?#iefix") format("embedded-opentype"),
-       url("../fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.woff") format("woff"),
-       url("../fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.ttf") format("truetype"),
-       url("../fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.svg#traffico") format("svg");
+  src: url(<%= asset_path("iD/traffico/fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.eot") %>);
+  src: url(<%= asset_path("iD/traffico/fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.eot") %>?#iefix) format("embedded-opentype"),
+       url(<%= asset_path("iD/traffico/fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.woff") %>) format("woff"),
+       url(<%= asset_path("iD/traffico/fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.ttf") %>) format("truetype"),
+       url(<%= asset_path("iD/traffico/fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.svg") %>#traffico) format("svg");
   font-weight: normal;
   font-style: normal;
 }
@@ -16,7 +16,7 @@
 @media screen and (-webkit-min-device-pixel-ratio:0) {
   @font-face {
     font-family: "traffico";
-    src: url("../fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.svg#traffico") format("svg");
+    src: url(<%= asset_path("iD/traffico/fonts/traffico_d596ae6150aa5c55ac14b1e060efc523.svg") %>#traffico) format("svg");
   }
 }