From 91da6028f887c8be4e98b941cd36809e7bafa548 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 4 Dec 2019 14:09:43 -0500 Subject: [PATCH] Add field for `wikimedia_commons` tag (re: #7064) --- data/presets.yaml | 6 ++++++ data/presets/fields.json | 1 + data/presets/fields/wikimedia_commons.json | 9 +++++++++ data/taginfo.json | 1 + dist/locales/en.json | 5 +++++ modules/ui/fields/input.js | 4 ++-- 6 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 data/presets/fields/wikimedia_commons.json diff --git a/data/presets.yaml b/data/presets.yaml index fbe399e18..5561bcb7e 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -2616,6 +2616,12 @@ en: # 'wikidata=*, wikipedia=*' label: Wikidata terms: '[translate with synonyms or related terms for ''Wikidata'', separated by commas]' + wikimedia_commons: + # wikimedia_commons=* + label: Wikimedia Commons Page + # wikimedia_commons field placeholder + placeholder: 'File:Example.jpg' + terms: '[translate with synonyms or related terms for ''Wikimedia Commons Page'', separated by commas]' wikipedia: # 'wikipedia=*, wikidata=*' label: Wikipedia diff --git a/data/presets/fields.json b/data/presets/fields.json index 4a376132f..d716f71fe 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -451,6 +451,7 @@ "wholesale": {"key": "wholesale", "type": "typeCombo", "label": "Wholesale"}, "width": {"key": "width", "type": "number", "minValue": 0, "label": "Width (Meters)"}, "wikidata": {"key": "wikidata", "keys": ["wikidata", "wikipedia"], "type": "wikidata", "icon": "wikipedia", "universal": true, "label": "Wikidata"}, + "wikimedia_commons": {"key": "wikimedia_commons", "type": "identifier", "label": "Wikimedia Commons Page", "placeholder": "File:Example.jpg", "urlFormat": "https://commons.wikimedia.org/wiki/{value}", "pattern": "^(?:File|Category):.{1,}", "universal": true}, "wikipedia": {"key": "wikipedia", "keys": ["wikipedia", "wikidata"], "type": "wikipedia", "icon": "wikipedia", "universal": true, "label": "Wikipedia"}, "windings": {"key": "windings", "type": "number", "minValue": 1, "label": "Windings", "placeholder": "1, 2, 3..."}, "windings/configuration": {"key": "windings:configuration", "type": "combo", "label": "Windings Configuration", "strings": {"options": {"star": "Star / Wye", "delta": "Delta", "open-delta": "Open Delta", "zigzag": "Zig Zag", "open": "Open", "scott": "Scott", "leblanc": "Leblanc"}}} diff --git a/data/presets/fields/wikimedia_commons.json b/data/presets/fields/wikimedia_commons.json new file mode 100644 index 000000000..347c5ffc0 --- /dev/null +++ b/data/presets/fields/wikimedia_commons.json @@ -0,0 +1,9 @@ +{ + "key": "wikimedia_commons", + "type": "identifier", + "label": "Wikimedia Commons Page", + "placeholder": "File:Example.jpg", + "urlFormat": "https://commons.wikimedia.org/wiki/{value}", + "pattern": "^(?:File|Category):.{1,}", + "universal": true +} diff --git a/data/taginfo.json b/data/taginfo.json index 13ef0b6b1..5d1d7c7e4 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1886,6 +1886,7 @@ {"key": "width", "description": "🄵 Width (Meters)"}, {"key": "wikidata", "description": "🄵 Wikidata, 🄵 Wikipedia"}, {"key": "wikipedia", "description": "🄵 Wikidata, 🄵 Wikipedia"}, + {"key": "wikimedia_commons", "description": "🄵 Wikimedia Commons Page"}, {"key": "windings", "description": "🄵 Windings"}, {"key": "windings:configuration", "value": "star", "description": "🄵 Windings Configuration"}, {"key": "windings:configuration", "value": "delta", "description": "🄵 Windings Configuration"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 1a3f34da4..9512f902d 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4681,6 +4681,11 @@ "label": "Wikidata", "terms": "" }, + "wikimedia_commons": { + "label": "Wikimedia Commons Page", + "terms": "", + "placeholder": "File:Example.jpg" + }, "wikipedia": { "label": "Wikipedia", "terms": "" diff --git a/modules/ui/fields/input.js b/modules/ui/fields/input.js index d21d36aa9..d90aa4a9b 100644 --- a/modules/ui/fields/input.js +++ b/modules/ui/fields/input.js @@ -104,7 +104,7 @@ export function uiFieldText(field, context) { .append('button') .attr('tabindex', -1) .call(svgIcon('#iD-icon-out-link')) - .attr('class', 'form-field-button foreign-id-permalink') + .attr('class', 'disabled form-field-button foreign-id-permalink') .attr('title', function() { var domainResults = /^https?:\/\/(.{1,}?)\//.exec(field.urlFormat); if (domainResults.length >= 2 && domainResults[1]) { @@ -118,7 +118,7 @@ export function uiFieldText(field, context) { var value = validIdentifierValueForLink(); if (value) { - var url = field.urlFormat.replace(/{value}/, value); + var url = field.urlFormat.replace(/{value}/, encodeURIComponent(value)); window.open(url, '_blank'); } })