mirror of
https://github.com/FoggedLens/iD.git
synced 2026-03-07 11:51:35 +00:00
Make "edited issues" mean "issues the user created" instead of "issues for features edited by the user"
Only include issues created by the user in the "warnings" changeset tags Include counts of issues resolved by the user in the changeset tags (close #6459) Don't include "fixme" issue counts in "warnings" changeset tags since they're not created by the user (close #6658) Don't cache crossing ways issues at the rule level
This commit is contained in:
@@ -24,7 +24,8 @@ var readOnlyTags = [
|
||||
/^imagery_used$/,
|
||||
/^host$/,
|
||||
/^locale$/,
|
||||
/^warnings:/
|
||||
/^warnings:/,
|
||||
/^resolved:/
|
||||
];
|
||||
|
||||
// treat most punctuation (except -, _, +, &) as hashtag delimiters - #4398
|
||||
@@ -147,31 +148,37 @@ export function uiCommit(context) {
|
||||
}
|
||||
}
|
||||
|
||||
// remove existing warning counts
|
||||
// remove existing issue counts
|
||||
for (var key in tags) {
|
||||
if (key.match(/^warnings:/)) {
|
||||
if (key.match(/(^warnings:)|(^resolved:)/)) {
|
||||
delete tags[key];
|
||||
}
|
||||
}
|
||||
|
||||
function addIssueCounts(issues, prefix) {
|
||||
var issuesByType = utilArrayGroupBy(issues, 'type');
|
||||
for (var issueType in issuesByType) {
|
||||
var issuesOfType = issuesByType[issueType];
|
||||
if (issuesOfType[0].subtype) {
|
||||
var issuesBySubtype = utilArrayGroupBy(issuesOfType, 'subtype');
|
||||
for (var issueSubtype in issuesBySubtype) {
|
||||
var issuesOfSubtype = issuesBySubtype[issueSubtype];
|
||||
tags[prefix + ':' + issueType + ':' + issueSubtype] = issuesOfSubtype.length.toString().substr(0, 255);
|
||||
}
|
||||
} else {
|
||||
tags[prefix + ':' + issueType] = issuesOfType.length.toString().substr(0, 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add counts of warnings generated by the user's edits
|
||||
var warnings = context.validator()
|
||||
.getIssuesBySeverity({ what: 'edited', where: 'all', includeIgnored: true, includeDisabledRules: true }).warning;
|
||||
addIssueCounts(warnings, 'warnings');
|
||||
|
||||
var warningsByType = utilArrayGroupBy(warnings, 'type');
|
||||
for (var warningType in warningsByType) {
|
||||
var warningsOfType = warningsByType[warningType];
|
||||
if (warningsOfType[0].subtype) {
|
||||
var warningsBySubtype = utilArrayGroupBy(warningsOfType, 'subtype');
|
||||
for (var warningSubtype in warningsBySubtype) {
|
||||
var warningsOfSubtype = warningsBySubtype[warningSubtype];
|
||||
tags['warnings:' + warningType + ':' + warningSubtype] = warningsOfSubtype.length.toString();
|
||||
}
|
||||
} else {
|
||||
tags['warnings:' + warningType] = warningsOfType.length.toString();
|
||||
}
|
||||
}
|
||||
|
||||
// add counts of issues resolved by the user's edits
|
||||
var resolvedIssues = context.validator().getResolvedIssues();
|
||||
addIssueCounts(resolvedIssues, 'resolved');
|
||||
|
||||
_changeset = _changeset.update({ tags: tags });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user