mirror of
https://github.com/FoggedLens/iD.git
synced 2026-03-06 19:31:41 +00:00
Fix an issue where the commit sidebar would not show all warning and errors
Remove use of lodash from commit_warnings.js
This commit is contained in:
@@ -1,39 +1,25 @@
|
||||
import _map from 'lodash-es/map';
|
||||
|
||||
import { t } from '../util/locale';
|
||||
import { modeSelect } from '../modes';
|
||||
import { svgIcon } from '../svg';
|
||||
import { tooltip } from '../util/tooltip';
|
||||
import { utilEntityOrMemberSelector } from '../util';
|
||||
import _reduce from 'lodash-es/reduce';
|
||||
import _forEach from 'lodash-es/forEach';
|
||||
import _uniqBy from 'lodash-es/uniqBy';
|
||||
|
||||
export function uiCommitWarnings(context) {
|
||||
|
||||
function commitWarnings(selection) {
|
||||
|
||||
var issues = context.validator().getIssues();
|
||||
var issuesBySeverity = {
|
||||
warning: context.validator().getWarnings(),
|
||||
error: context.validator().getErrors()
|
||||
};
|
||||
|
||||
issues = _reduce(issues, function(issues, val) {
|
||||
var severity = val.severity;
|
||||
if (issues.hasOwnProperty(severity)) {
|
||||
issues[severity].push(val);
|
||||
} else {
|
||||
issues[severity] = [val];
|
||||
}
|
||||
return issues;
|
||||
}, {});
|
||||
|
||||
_forEach(issues, function(instances, severity) {
|
||||
instances = _uniqBy(instances, function(val) {
|
||||
return val.entity || (val.id + '_' + val.message.replace(/\s+/g,''));
|
||||
});
|
||||
for (var severity in issuesBySeverity) {
|
||||
var issues = issuesBySeverity[severity];
|
||||
var section = severity + '-section';
|
||||
var instanceItem = severity + '-item';
|
||||
var issueItem = severity + '-item';
|
||||
|
||||
var container = selection.selectAll('.' + section)
|
||||
.data(instances.length ? [0] : []);
|
||||
.data(issues.length ? [0] : []);
|
||||
|
||||
container.exit()
|
||||
.remove();
|
||||
@@ -55,14 +41,14 @@ export function uiCommitWarnings(context) {
|
||||
|
||||
|
||||
var items = container.select('ul').selectAll('li')
|
||||
.data(instances);
|
||||
.data(issues, function(d) { return d.id(); });
|
||||
|
||||
items.exit()
|
||||
.remove();
|
||||
|
||||
var itemsEnter = items.enter()
|
||||
.append('li')
|
||||
.attr('class', instanceItem);
|
||||
.attr('class', issueItem);
|
||||
|
||||
itemsEnter
|
||||
.call(svgIcon('#iD-icon-alert', 'pre-text'));
|
||||
@@ -82,36 +68,30 @@ export function uiCommitWarnings(context) {
|
||||
|
||||
|
||||
items
|
||||
.on('mouseover', mouseover)
|
||||
.on('mouseout', mouseout)
|
||||
.on('click', warningClick);
|
||||
|
||||
function mouseover(d) {
|
||||
if (d.entities) {
|
||||
context.surface().selectAll(
|
||||
utilEntityOrMemberSelector(
|
||||
_map(d.entities, function(e) { return e.id; }),
|
||||
context.graph()
|
||||
)
|
||||
).classed('hover', true);
|
||||
}
|
||||
}
|
||||
|
||||
function mouseout() {
|
||||
context.surface().selectAll('.hover')
|
||||
.classed('hover', false);
|
||||
}
|
||||
|
||||
function warningClick(d) {
|
||||
if (d.entities && d.entities.length > 0) {
|
||||
context.map().zoomTo(d.entities[0]);
|
||||
context.enter(modeSelect(
|
||||
context,
|
||||
_map(d.entities, function(e) { return e.id; })
|
||||
));
|
||||
}
|
||||
}
|
||||
});
|
||||
.on('mouseover', function(d) {
|
||||
if (d.entities) {
|
||||
context.surface().selectAll(
|
||||
utilEntityOrMemberSelector(
|
||||
d.entities.map(function(e) { return e.id; }),
|
||||
context.graph()
|
||||
)
|
||||
).classed('hover', true);
|
||||
}
|
||||
})
|
||||
.on('mouseout', function() {
|
||||
context.surface().selectAll('.hover')
|
||||
.classed('hover', false);
|
||||
})
|
||||
.on('click', function(d) {
|
||||
if (d.entities && d.entities.length > 0) {
|
||||
context.map().zoomTo(d.entities[0]);
|
||||
context.enter(modeSelect(
|
||||
context,
|
||||
d.entities.map(function(e) { return e.id; })
|
||||
));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user