]> git.openstreetmap.org Git - rails.git/commitdiff
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 c8a4af2e0aa089d6e1f5dde7b4f84fe1cb2ce271..84eabfdad07ac500e06d2e20cb7fa3fa7cc4daa9 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 fa05efc0f3ae32909075c5808e3072908a0ae0fb..4d031f41e924d7b870a1adbd4d705ca99ceca45d 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 317dccd6b2e894c1d4890b94b27ee50fd5030232..c5610816eb0437b5fb8cc166e38b5793104fca7a 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"
similarity index 94%
rename from vendor/assets/iD/iD/traffico/stylesheets/traffico.css
rename to vendor/assets/iD/iD/traffico/stylesheets/traffico.css.erb
index 849af6e346f29928ea3a2a41481f49609f6247ad..15044e8b4bf3e60572b29734a8159ece6be97ce4 100644 (file)
@@ -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");
   }
 }