Fix wikipedia

This commit is contained in:
Tom MacWright
2016-09-05 21:48:22 -04:00
parent 6189af9b47
commit 92f2908ffe
2 changed files with 25 additions and 21 deletions

View File

@@ -50,11 +50,13 @@ export function wikipedia(field, context) {
lang = selection.selectAll('input.wiki-lang')
.data([0]);
getSetValue(lang.enter().append('input')
lang = lang.enter().append('input')
.attr('type', 'text')
.attr('class', 'wiki-lang')
.attr('placeholder', t('translate.localized_translation_language')),
language()[1]);
.attr('placeholder', t('translate.localized_translation_language'))
.merge(lang);
getSetValue(lang, language()[1]);
lang
.call(langcombo)
@@ -64,10 +66,11 @@ export function wikipedia(field, context) {
title = selection.selectAll('input.wiki-title')
.data([0]);
title.enter().append('input')
title = title.enter().append('input')
.attr('type', 'text')
.attr('class', 'wiki-title')
.attr('id', 'preset-input-' + field.id);
.attr('id', 'preset-input-' + field.id)
.merge(title);
title
.call(titlecombo)
@@ -77,11 +80,12 @@ export function wikipedia(field, context) {
link = selection.selectAll('a.wiki-link')
.data([0]);
link.enter().append('a')
link = link.enter().append('a')
.attr('class', 'wiki-link button-input-action minor')
.attr('tabindex', -1)
.attr('target', '_blank')
.call(Icon('#icon-out-link', 'inline'));
.call(Icon('#icon-out-link', 'inline'))
.merge(link);
}
function language() {

View File

@@ -34,8 +34,8 @@ describe('wikipedia', function() {
var wikipedia = iD.ui.fields.wikipedia(field, context);
selection.call(wikipedia);
wikipedia.tags({wikipedia: 'en:Title'});
expect(selection.selectAll('.wiki-lang').value()).to.equal('English');
expect(selection.selectAll('.wiki-title').value()).to.equal('Title');
expect(iD.util.getSetValue(selection.selectAll('.wiki-lang'))).to.equal('English');
expect(iD.util.getSetValue(selection.selectAll('.wiki-title'))).to.equal('Title');
expect(selection.selectAll('.wiki-link').attr('href')).to.equal('https://en.wikipedia.org/wiki/Title');
});
@@ -46,7 +46,7 @@ describe('wikipedia', function() {
var spy = sinon.spy();
wikipedia.on('change.spy', spy);
selection.selectAll('.wiki-lang').value('Deutsch');
iD.util.getSetValue(selection.selectAll('.wiki-lang'), 'Deutsch');
happen.once(selection.selectAll('.wiki-lang').node(), { type: 'change' });
happen.once(selection.selectAll('.wiki-lang').node(), { type: 'blur' });
expect(spy.callCount).to.equal(2);
@@ -55,7 +55,7 @@ describe('wikipedia', function() {
spy = sinon.spy();
wikipedia.on('change.spy', spy);
selection.selectAll('.wiki-title').value('Title');
iD.util.getSetValue(selection.selectAll('.wiki-title'), 'Title');
happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' });
happen.once(selection.selectAll('.wiki-title').node(), { type: 'blur' });
expect(spy.callCount).to.equal(3);
@@ -69,21 +69,21 @@ describe('wikipedia', function() {
wikipedia.on('change', changeTags);
selection.call(wikipedia);
selection.selectAll('.wiki-title').value('http://de.wikipedia.org/wiki/Title');
iD.util.getSetValue(selection.selectAll('.wiki-title'), 'http://de.wikipedia.org/wiki/Title');
happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' });
expect(selection.selectAll('.wiki-lang').value()).to.equal('Deutsch');
expect(selection.selectAll('.wiki-title').value()).to.equal('Title');
expect(iD.util.getSetValue(selection.selectAll('.wiki-lang'))).to.equal('Deutsch');
expect(iD.util.getSetValue(selection.selectAll('.wiki-title'))).to.equal('Title');
});
it('preserves existing language', function() {
selection.call(iD.ui.fields.wikipedia(field, context));
selection.selectAll('.wiki-lang').value('Deutsch');
iD.util.getSetValue(selection.selectAll('.wiki-lang'), 'Deutsch');
var wikipedia = iD.ui.fields.wikipedia(field, context);
selection.call(wikipedia);
wikipedia.tags({});
expect(selection.selectAll('.wiki-lang').value()).to.equal('Deutsch');
expect(iD.util.getSetValue(selection.selectAll('.wiki-lang'))).to.equal('Deutsch');
});
it('does not set delayed wikidata tag if wikipedia field has changed', function(done) {
@@ -94,13 +94,13 @@ describe('wikipedia', function() {
var spy = sinon.spy();
wikipedia.on('change.spy', spy);
selection.selectAll('.wiki-lang').value('Deutsch');
selection.selectAll('.wiki-title').value('Skip');
iD.util.getSetValue(selection.selectAll('.wiki-lang'), 'Deutsch');
iD.util.getSetValue(selection.selectAll('.wiki-title'), 'Skip');
happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' });
happen.once(selection.selectAll('.wiki-title').node(), { type: 'blur' });
window.setTimeout(function() {
selection.selectAll('.wiki-title').value('Title');
iD.util.getSetValue(selection.selectAll('.wiki-title'), 'Title');
happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' });
happen.once(selection.selectAll('.wiki-title').node(), { type: 'blur' });
}, 10);
@@ -125,8 +125,8 @@ describe('wikipedia', function() {
var spy = sinon.spy();
wikipedia.on('change.spy', spy);
selection.selectAll('.wiki-lang').value('Deutsch');
selection.selectAll('.wiki-title').value('Title');
iD.util.getSetValue(selection.selectAll('.wiki-lang'), 'Deutsch');
iD.util.getSetValue(selection.selectAll('.wiki-title'), 'Title');
happen.once(selection.selectAll('.wiki-title').node(), { type: 'change' });
happen.once(selection.selectAll('.wiki-title').node(), { type: 'blur' });