mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-23 16:49:40 +02:00
Don't run other validators if feature is missing tags
Don't run disconnected highway check if there is an almost junction issue already Only run way validators on ways
This commit is contained in:
@@ -359,6 +359,7 @@ export function validationHighwayCrossingOtherWays() {
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.crossing_ways;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
@@ -82,6 +82,7 @@ export function validationDeprecatedTag() {
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.deprecated_tags;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ export function validationDisconnectedHighway() {
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.disconnected_highway;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ export function validationGenericName(context) {
|
||||
}
|
||||
|
||||
|
||||
return function validation(entity) {
|
||||
var validation = function(entity) {
|
||||
var issues = [];
|
||||
var generic = isGenericName(entity);
|
||||
if (generic) {
|
||||
@@ -74,4 +74,8 @@ export function validationGenericName(context) {
|
||||
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.generic_name;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
@@ -166,6 +166,7 @@ export function validationHighwayAlmostJunction() {
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.highway_almost_junction;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
@@ -54,25 +54,35 @@ export function IssueManager(context) {
|
||||
return issuesByEntityId[entityID];
|
||||
};
|
||||
|
||||
var entityValidations = [
|
||||
var genericEntityValidations = [
|
||||
validations.validationDeprecatedTag(),
|
||||
validations.validationDisconnectedHighway(),
|
||||
validations.validationGenericName(),
|
||||
validations.validationHighwayCrossingOtherWays(),
|
||||
validations.validationHighwayAlmostJunction(),
|
||||
validations.validationMapCSSChecks(),
|
||||
validations.validationMissingTag(),
|
||||
validations.validationOldMultipolygon(),
|
||||
validations.validationTagSuggestsArea()
|
||||
validations.validationOldMultipolygon()
|
||||
];
|
||||
|
||||
function validateEntity(entity) {
|
||||
return _flatten(_map(
|
||||
entityValidations,
|
||||
function(fn) {
|
||||
return fn(entity, context);
|
||||
var issues = [];
|
||||
// runs validation and appends resulting issues, returning true if validation passed
|
||||
function runValidation(fn) {
|
||||
var typeIssues = fn(entity, context);
|
||||
issues = issues.concat(typeIssues);
|
||||
return typeIssues.length === 0;
|
||||
}
|
||||
// other validations require feature to be tagged
|
||||
if (!runValidation(validations.validationMissingTag())) return issues;
|
||||
if (entity.type === 'way') {
|
||||
if (runValidation(validations.validationHighwayAlmostJunction())) {
|
||||
// only check for disconnected highway if no almost junctions
|
||||
runValidation(validations.validationDisconnectedHighway());
|
||||
}
|
||||
));
|
||||
runValidation(validations.validationHighwayCrossingOtherWays());
|
||||
runValidation(validations.validationTagSuggestsArea());
|
||||
}
|
||||
genericEntityValidations.forEach(function(fn) {
|
||||
runValidation(fn);
|
||||
})
|
||||
return issues;
|
||||
}
|
||||
|
||||
self.validate = function() {
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
} from './validation_issue';
|
||||
|
||||
export function validationManyDeletions() {
|
||||
|
||||
var threshold = 100;
|
||||
|
||||
var validation = function(changes, context) {
|
||||
@@ -34,6 +35,7 @@ export function validationManyDeletions() {
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.map_rule_issue;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { services } from '../services';
|
||||
|
||||
import {
|
||||
ValidationIssueType
|
||||
} from './validation_issue';
|
||||
export function validationMapCSSChecks() {
|
||||
var validation = function(entity, context) {
|
||||
if (!services.maprules) return [];
|
||||
@@ -17,6 +19,7 @@ export function validationMapCSSChecks() {
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.map_rule_issue;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@ export function validationMissingTag() {
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.missing_tag;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
|
||||
export function validationOldMultipolygon() {
|
||||
|
||||
return function validation(entity, context) {
|
||||
var validation = function(entity, context) {
|
||||
var issues = [];
|
||||
var graph = context.graph();
|
||||
var mistaggedMultipolygon = osmIsSimpleMultipolygonOuterMember(entity, graph);
|
||||
@@ -47,4 +47,8 @@ export function validationOldMultipolygon() {
|
||||
}
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.old_multipolygon;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
@@ -76,6 +76,7 @@ export function validationTagSuggestsArea() {
|
||||
return issues;
|
||||
};
|
||||
|
||||
validation.type = ValidationIssueType.tag_suggests_area;
|
||||
|
||||
return validation;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user