mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-18 14:45:12 +02:00
Fix adding localized value before name (#1797)
This commit is contained in:
@@ -55,26 +55,30 @@ iD.ui.preset.localized = function(field, context) {
|
||||
function key(lang) { return field.key + ':' + lang; }
|
||||
|
||||
function changeLang(d) {
|
||||
var value = d3.select(this).value(),
|
||||
var lang = d3.select(this).value(),
|
||||
t = {},
|
||||
language = _.find(iD.data.wikipedia, function(d) {
|
||||
return d[0].toLowerCase() === value.toLowerCase() ||
|
||||
d[1].toLowerCase() === value.toLowerCase();
|
||||
return d[0].toLowerCase() === lang.toLowerCase() ||
|
||||
d[1].toLowerCase() === lang.toLowerCase();
|
||||
});
|
||||
|
||||
if (language) value = language[2];
|
||||
if (language) lang = language[2];
|
||||
|
||||
if (d.lang && d.lang !== value) {
|
||||
if (d.lang && d.lang !== lang) {
|
||||
t[key(d.lang)] = undefined;
|
||||
}
|
||||
|
||||
if (value && d.value) {
|
||||
t[key(value)] = d.value;
|
||||
} else if (value && wikiTitles && wikiTitles[d.lang]) {
|
||||
t[key(value)] = wikiTitles[d.lang];
|
||||
var value = d3.select(this.parentNode)
|
||||
.selectAll('.localized-value')
|
||||
.value();
|
||||
|
||||
if (lang && value) {
|
||||
t[key(lang)] = value;
|
||||
} else if (lang && wikiTitles && wikiTitles[d.lang]) {
|
||||
t[key(lang)] = wikiTitles[d.lang];
|
||||
}
|
||||
|
||||
d.lang = value;
|
||||
d.lang = lang;
|
||||
event.change(t);
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ describe('iD.ui.preset.localized', function() {
|
||||
happen.once(selection.selectAll('.localized-value').node(), {type: 'blur'});
|
||||
});
|
||||
|
||||
it("creates a tag when the language and value are both set", function() {
|
||||
it("creates a tag after setting language then value", function() {
|
||||
var localized = iD.ui.preset.localized(field, {});
|
||||
selection.call(localized);
|
||||
happen.click(selection.selectAll('.localized-add').node());
|
||||
@@ -58,6 +58,22 @@ describe('iD.ui.preset.localized', function() {
|
||||
happen.once(selection.selectAll('.localized-value').node(), {type: 'change'});
|
||||
});
|
||||
|
||||
it("creates a tag after setting value then language", function() {
|
||||
var localized = iD.ui.preset.localized(field, {});
|
||||
selection.call(localized);
|
||||
happen.click(selection.selectAll('.localized-add').node());
|
||||
|
||||
selection.selectAll('.localized-value').value('Value');
|
||||
happen.once(selection.selectAll('.localized-value').node(), {type: 'change'});
|
||||
|
||||
localized.on('change', function(tags) {
|
||||
expect(tags).to.eql({'name:de': 'Value'});
|
||||
});
|
||||
|
||||
selection.selectAll('.localized-lang').value('Deutsch');
|
||||
happen.once(selection.selectAll('.localized-lang').node(), {type: 'change'});
|
||||
});
|
||||
|
||||
it("changes an existing language", function() {
|
||||
var localized = iD.ui.preset.localized(field, {});
|
||||
selection.call(localized);
|
||||
|
||||
Reference in New Issue
Block a user