show (route) relation colours in lists and comboboxes

This commit is contained in:
Martin Raifer
2022-12-12 19:03:03 +01:00
parent 5ef99280bc
commit 4e3e942127
5 changed files with 62 additions and 5 deletions
+2
View File
@@ -310,6 +310,8 @@ export function uiFeatureList(context) {
label
.append('span')
.attr('class', 'entity-name')
.classed('has-colour', d => d.entity && d.entity.type === 'relation' && d.entity.tags.colour)
.style('border-color', d => d.entity && d.entity.type === 'relation' && d.entity.tags.colour)
.text(function(d) { return d.name; });
enter
+2
View File
@@ -198,6 +198,8 @@ export function uiSectionRawMemberEditor(context) {
labelLink
.append('span')
.attr('class', 'member-entity-name')
.classed('has-colour', d => d.member.type === 'relation' && d.member.tags.colour)
.style('border-color', d => d.member.type === 'relation' && d.member.tags.colour)
.text(function(d) { return utilDisplayName(d.member); });
label
+28 -4
View File
@@ -239,7 +239,7 @@ export function uiSectionRawMembershipEditor(context) {
var graph = context.graph();
function baseDisplayLabel(entity) {
function baseDisplayValue(entity) {
var matched = presetManager.match(entity, graph);
var presetName = (matched && matched.name()) || t('inspector.relation');
var entityName = utilDisplayName(entity) || '';
@@ -247,23 +247,45 @@ export function uiSectionRawMembershipEditor(context) {
return presetName + ' ' + entityName;
}
function baseDisplayLabel(entity) {
var matched = presetManager.match(entity, graph);
var presetName = (matched && matched.name()) || t('inspector.relation');
var entityName = utilDisplayName(entity) || '';
return selection => {
selection
.append('b')
.text(presetName + ' ');
selection
.append('span')
.classed('has-colour', entity.tags.colour)
.style('border-color', entity.tags.colour)
.text(entityName);
};
}
var explicitRelation = q && context.hasEntity(q.toLowerCase());
if (explicitRelation && explicitRelation.type === 'relation' && explicitRelation.id !== entityID) {
// loaded relation is specified explicitly, only show that
result.push({
relation: explicitRelation,
value: baseDisplayLabel(explicitRelation) + ' ' + explicitRelation.id
value: baseDisplayValue(explicitRelation) + ' ' + explicitRelation.id,
display: baseDisplayLabel(explicitRelation)
});
} else {
context.history().intersects(context.map().extent()).forEach(function(entity) {
if (entity.type !== 'relation' || entity.id === entityID) return;
var value = baseDisplayLabel(entity);
var value = baseDisplayValue(entity);
if (q && (value + ' ' + entity.id).toLowerCase().indexOf(q.toLowerCase()) === -1) return;
result.push({ relation: entity, value: value });
result.push({
relation: entity,
value,
display: baseDisplayLabel(entity)
});
});
result.sort(function(a, b) {
@@ -349,6 +371,8 @@ export function uiSectionRawMembershipEditor(context) {
labelLink
.append('span')
.attr('class', 'member-entity-name')
.classed('has-colour', d => d.relation.tags.colour)
.style('border-color', d => d.relation.tags.colour)
.text(function(d) { return utilDisplayName(d.relation); });
labelEnter