mirror of
https://github.com/FoggedLens/iD.git
synced 2026-03-19 01:23:25 +00:00
fetch options from referenced strings
This commit is contained in:
@@ -26,7 +26,6 @@ export function uiFieldCombo(field, context) {
|
|||||||
var _isMulti = (field.type === 'multiCombo' || field.type === 'manyCombo');
|
var _isMulti = (field.type === 'multiCombo' || field.type === 'manyCombo');
|
||||||
var _isNetwork = (field.type === 'networkCombo');
|
var _isNetwork = (field.type === 'networkCombo');
|
||||||
var _isSemi = (field.type === 'semiCombo');
|
var _isSemi = (field.type === 'semiCombo');
|
||||||
var _optarray = field.options;
|
|
||||||
var _showTagInfoSuggestions = field.type !== 'manyCombo' && field.autoSuggestions !== false;
|
var _showTagInfoSuggestions = field.type !== 'manyCombo' && field.autoSuggestions !== false;
|
||||||
var _allowCustomValues = field.type !== 'manyCombo' && field.customValues !== false;
|
var _allowCustomValues = field.type !== 'manyCombo' && field.customValues !== false;
|
||||||
var _snake_case = (field.snake_case || (field.snake_case === undefined));
|
var _snake_case = (field.snake_case || (field.snake_case === undefined));
|
||||||
@@ -152,15 +151,16 @@ export function uiFieldCombo(field, context) {
|
|||||||
|
|
||||||
|
|
||||||
function setStaticValues(callback) {
|
function setStaticValues(callback) {
|
||||||
if (!_optarray) return;
|
var stringsField = field.resolveReference('stringsCrossReference');
|
||||||
|
if (!field.options || stringsField.options) return;
|
||||||
|
|
||||||
_comboData = _optarray.map(function(v) {
|
_comboData = (field.options || stringsField.options).map(function(v) {
|
||||||
return {
|
return {
|
||||||
key: v,
|
key: v,
|
||||||
value: field.t('options.' + v, { default: v }),
|
value: stringsField.t('options.' + v, { default: v }),
|
||||||
title: v,
|
title: v,
|
||||||
display: field.t.append('options.' + v, { default: v }),
|
display: stringsField.t.append('options.' + v, { default: v }),
|
||||||
klass: field.hasTextForStringId('options.' + v) ? '' : 'raw-option'
|
klass: stringsField.hasTextForStringId('options.' + v) ? '' : 'raw-option'
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -170,6 +170,7 @@ export function uiFieldCombo(field, context) {
|
|||||||
|
|
||||||
|
|
||||||
function setTaginfoValues(q, callback) {
|
function setTaginfoValues(q, callback) {
|
||||||
|
var stringsField = field.resolveReference('stringsCrossReference');
|
||||||
var fn = _isMulti ? 'multikeys' : 'values';
|
var fn = _isMulti ? 'multikeys' : 'values';
|
||||||
var query = (_isMulti ? field.key : '') + q;
|
var query = (_isMulti ? field.key : '') + q;
|
||||||
var hasCountryPrefix = _isNetwork && _countryCode && _countryCode.indexOf(q.toLowerCase()) === 0;
|
var hasCountryPrefix = _isNetwork && _countryCode && _countryCode.indexOf(q.toLowerCase()) === 0;
|
||||||
@@ -215,13 +216,13 @@ export function uiFieldCombo(field, context) {
|
|||||||
_comboData = data.map(function(d) {
|
_comboData = data.map(function(d) {
|
||||||
var k = d.value;
|
var k = d.value;
|
||||||
if (_isMulti) k = k.replace(field.key, '');
|
if (_isMulti) k = k.replace(field.key, '');
|
||||||
var label = field.t('options.' + k, { default: k });
|
var label = stringsField.t('options.' + k, { default: k });
|
||||||
return {
|
return {
|
||||||
key: k,
|
key: k,
|
||||||
value: _isMulti ? k : label,
|
value: _isMulti ? k : label,
|
||||||
display: field.t.append('options.' + k, { default: k }),
|
display: stringsField.t.append('options.' + k, { default: k }),
|
||||||
title: d.title || label,
|
title: d.title || label,
|
||||||
klass: field.hasTextForStringId('options.' + k) ? '' : 'raw-option'
|
klass: stringsField.hasTextForStringId('options.' + k) ? '' : 'raw-option'
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -415,6 +416,7 @@ export function uiFieldCombo(field, context) {
|
|||||||
|
|
||||||
combo.tags = function(tags) {
|
combo.tags = function(tags) {
|
||||||
_tags = tags;
|
_tags = tags;
|
||||||
|
var stringsField = field.resolveReference('stringsCrossReference');
|
||||||
|
|
||||||
if (_isMulti || _isSemi) {
|
if (_isMulti || _isSemi) {
|
||||||
_multiData = [];
|
_multiData = [];
|
||||||
@@ -527,7 +529,7 @@ export function uiFieldCombo(field, context) {
|
|||||||
.classed('raw-value', function(d) {
|
.classed('raw-value', function(d) {
|
||||||
var k = d.key;
|
var k = d.key;
|
||||||
if (_isMulti) k = k.replace(field.key, '');
|
if (_isMulti) k = k.replace(field.key, '');
|
||||||
return !field.hasTextForStringId('options.' + k);
|
return !stringsField.hasTextForStringId('options.' + k);
|
||||||
})
|
})
|
||||||
.classed('draggable', allowDragAndDrop)
|
.classed('draggable', allowDragAndDrop)
|
||||||
.classed('mixed', function(d) {
|
.classed('mixed', function(d) {
|
||||||
@@ -565,7 +567,7 @@ export function uiFieldCombo(field, context) {
|
|||||||
}).filter(Boolean);
|
}).filter(Boolean);
|
||||||
|
|
||||||
var showsValue = !isMixed && tags[field.key] && !(field.type === 'typeCombo' && tags[field.key] === 'yes');
|
var showsValue = !isMixed && tags[field.key] && !(field.type === 'typeCombo' && tags[field.key] === 'yes');
|
||||||
var isRawValue = showsValue && !field.hasTextForStringId('options.' + tags[field.key]);
|
var isRawValue = showsValue && !stringsField.hasTextForStringId('options.' + tags[field.key]);
|
||||||
var isKnownValue = showsValue && !isRawValue;
|
var isKnownValue = showsValue && !isRawValue;
|
||||||
|
|
||||||
var isReadOnly = !_allowCustomValues || isKnownValue;
|
var isReadOnly = !_allowCustomValues || isKnownValue;
|
||||||
|
|||||||
Reference in New Issue
Block a user