Files
iD/modules/presets/field.js
Quincy Morgan 67afa20dc0 Let comboboxes filter against terms, not just values
Add terms property to fields
Make terms translatable for searchable fields
Account for fields' terms and keys when filtering with the Add field menu (close #5763)
2019-08-09 11:12:40 -05:00

42 lines
989 B
JavaScript

import { t } from '../util/locale';
export function presetField(id, field) {
field = Object.assign({}, field); // shallow copy
field.id = id;
// for use in classes, element ids, css selectors
field.safeid = id.replace(/[^_a-zA-Z0-9\-]/g, '_');
field.matchGeometry = function(geometry) {
return !field.geometry || field.geometry === geometry;
};
field.t = function(scope, options) {
return t('presets.fields.' + id + '.' + scope, options);
};
field.label = function() {
return field.overrideLabel || field.t('label', {'default': id});
};
var placeholder = field.placeholder;
field.placeholder = function() {
return field.t('placeholder', {'default': placeholder});
};
field.originalTerms = (field.terms || []).join();
field.terms = function() {
return field.t('terms', { 'default': field.originalTerms }).toLowerCase().trim().split(/\s*,+\s*/);
};
return field;
}