Commit Graph

86 Commits

Author SHA1 Message Date
Milos Brzakovic (E-Search)
3f9fee0c05 Merge branch 'develop' into validation_queryparams_conflict_resolve 2021-07-06 19:07:07 +02:00
Bryan Housel
76943351ca Better handling of headGraph, separate head and base queues
This involves a few things to make the validator less weird
- _headGraph shouldn't be allowed to change while validation is happening..
- So we don't allow that to happen anymore, and keep track of _headPromise and _headIsCurrent
- If head graph falls behind, kick off another validation to catch it up
- Separate head and base work queues, so we aren't waiting for the base entities to validate
  before providing feedback to the user about what they are editing
  (the base queue can get quite large around metropolitan areas)
2021-02-12 18:07:36 -05:00
Bryan Housel
f87c2d9357 Allow validators to return provisional results, revalidate after delay
Also add a ton of commments to validator.js
2021-01-27 10:38:48 -05:00
Bryan Housel
11201eb822 Rewrite the validator in ES6/Promises, several improvements here:
- implements a validation work queue, jobs are run during browser idle callbacks
- when merging base entities, don't run validations 2x on both base and head graphs (this was wasteful)
- keep track of resolved issues in a separate set (it's not a simple compare of base/head anymore)
  this happens after validation queue is empty and avoids race conditions and inaccurate resolved counts
2021-01-25 12:50:11 -05:00
Bryan Housel
abde015288 Allow validation severity to be overridden with url params 2020-12-10 15:40:58 -05:00
Quincy Morgan
70619d3634 Reset validator whenever reseting the history (close #8108) 2020-10-21 19:30:18 -04:00
Peter Newman
4205ca1d07 Fix the seemingly safe spellings found by codespell
Untested, only checked by inspection.

(cherry picked from commit 2c47a11008)
2020-08-10 17:32:37 +01:00
Quincy Morgan
a58abe3c6f Move localStorage interface from a property of coreContext to a corePreferences function 2020-04-01 11:00:48 -07:00
Quincy Morgan
c2d82eb9ce Don't require translations in coreValidator 2020-03-02 13:49:51 -08:00
Quincy Morgan
f0fe025c55 Ensure unshared issues aren't displayed during multiselection even if just one of the features has issues 2020-02-26 18:49:03 -08:00
Quincy Morgan
9d31d444d0 Show only issues shared by all features on multiselection 2020-02-04 12:09:54 -05:00
Bryan Housel
eb0c297bbd Rewrite the issue gathering code to not use for..of 2020-02-03 17:25:34 -05:00
Quincy Morgan
b4bc5305a1 Enable the issues section for multiple selected features (close #7324) 2020-02-03 12:17:14 -05:00
Bryan Housel
b949cc6bb6 Sometimes the issue cache has junk in it.
I got this to happen after some issues had been detected on the live map,
then starting the intro walkthrough (which replaces the graph).

No time now to dig into the root cause, but this might make the problem go
away so the tutorial doesn't get too weird.
2020-01-27 17:38:29 -05:00
Quincy Morgan
9345ec7a82 Update reload unsquare issues function name 2020-01-07 11:41:04 -05:00
Quincy Morgan
24c72b64d1 Load issue fixes dynamically instead of cacheing them (close #7037) 2019-11-13 14:35:01 -05:00
Quincy Morgan
56f31adcf1 Always sort the entity issues list deterministically
Don't skip validations just because a different validation produced issues
2019-10-12 17:01:03 +02:00
Quincy Morgan
7251a2ab90 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
2019-10-04 16:50:44 +02:00
Quincy Morgan
6a515576f1 Add an "Extract this point" quick fix for points-as-vertices validation warnings (re: #6319) 2019-10-01 18:21:03 +02:00
Quincy Morgan
525916da74 Recategorize tags_suggests_area validation rule into mismatched_geometry rule
Warn about points tagged as vertices and vertices tagged as points (close #6319)
2019-09-26 10:56:30 +02:00
Quincy Morgan
d5da5a601c Fix error upon revalidating after changing unsquare building threshold (close #6690) 2019-07-26 14:11:15 -04:00
Quincy Morgan
1ed73b6531 Convert validation rules to validate against a specific graph, not always the current graph (re: #6459) 2019-06-06 16:27:31 -04:00
Bryan Housel
511f8ecc82 Allow user to adjust the threshold for the unsquare building warning 2019-05-18 15:44:29 -04:00
Bryan Housel
bdb454e1b3 Remove utilCallWhenIdle, use requestIdleCallback/cancelIdleCallback
Places where a reset or connection switch would be problematic,
we can now cancel the callbacks.
2019-05-16 22:28:56 -04:00
Quincy Morgan
b4b91dcb9e Revalidate the related entities of deleted entities when revalidating (close #6345) 2019-05-10 15:46:04 -04:00
Quincy Morgan
7a6949aa2e Account for the width of open panes when centering the map on issues 2019-05-10 11:33:59 -04:00
Quincy Morgan
1bbd496dfe When selecting an issue in the Issues pane, highlight the issue after selecting the feature
Use the same behavior when selecting an issue in the commit sidebar as in the issues pane
2019-05-10 10:18:46 -04:00
Quincy Morgan
f264cc47f0 Don't flag almost junctions when endpoint is building or parking entrance
Include issues for disabled rules in entity issues
2019-05-09 14:38:19 -04:00
Quincy Morgan
1d797b8fc6 Validate connected ways when validating a way to avoid stale connectivity issues (close #6335) 2019-05-08 14:56:49 -04:00
Bryan Housel
86c6805cf7 Optionally include ids members of modified relations in extantIDs
(closes #6273)
2019-05-08 13:53:48 -04:00
Quincy Morgan
bfc944e30a Fix two potential exceptions and one lint warning 2019-05-02 16:26:33 -07:00
Quincy Morgan
424f6ca72d Don't skip other validations even if there are missing tag issues 2019-05-02 11:51:01 -07:00
Quincy Morgan
b4dacdad2a Reduce very close nodes validation threshold (close #6292)
Use spherical distances for very close nodes validation
Don't flag very close nodes from different ways
Don't flag very close nodes if both have interesting tags
Update very close nodes validation reference string
2019-05-02 11:39:12 -07:00
Quincy Morgan
d061ec6b61 Don't add ignore fix more than once
Tweak hidden issues text
2019-05-01 20:21:47 -07:00
Quincy Morgan
eeaad79cb1 Display info about hidden issues in the "no issues" UI 2019-05-01 14:50:56 -07:00
Quincy Morgan
52d92f125c Add button to reset ignored issues
Don't cache issue extent
2019-04-30 16:32:36 -07:00
Quincy Morgan
375779882d Add ability to ignore warnings
Replace issue's array of entities with array of entity IDs
Improve issue ID hashing
2019-04-29 17:52:32 -07:00
Quincy Morgan
ecc217f5d8 Add validation rule to flag impossible oneway highways and waterways (close #6216) 2019-04-26 12:04:43 -07:00
Quincy Morgan
aa91c2d768 Move old multipolygon warning into Outdated Tags rule (close #6218) 2019-04-24 15:46:50 -07:00
Quincy Morgan
d01bb78707 Reduce circular dependencies caused by importing from indexes, the location of the validation models, and the location of areaKeys (close #6237) 2019-04-24 13:45:59 -07:00
Bryan Housel
7e04175559 Add Enable All / Disable All validation rules links
(closes #5986)
2019-04-23 13:01:15 -04:00
Bryan Housel
3fe9d75f35 Fix issues with issue cache for entities that no longer exist 2019-04-22 19:35:23 -04:00
Bryan Housel
b5c5a00abc Get rid of the many_deletions validation 🔪
It just doesn't fit in with all of the other validations that work on
entities, and it's not an actionable warning anyway.
https://github.com/openstreetmap/iD/pull/6140#issuecomment-483014618
2019-04-19 13:33:29 -04:00
Bryan Housel
ca02f7ed06 Must use context.graph to validate entities instead of validatedgraph
This is because all the validators use it, and it's the right thing to do.
As entites load from the OSM or are restored from history, the most
updated version of them will be in context.graph, not validatedGraph
2019-04-19 10:00:38 -04:00
Bryan Housel
a56c1af725 pacify eslint 2019-04-18 19:26:05 -04:00
Bryan Housel
0eed80e1d2 Persist disabled rules in localStorage 2019-04-18 17:30:55 -04:00
Bryan Housel
7c8a6eac9d Reintroduce disabled rules
- They still run, but results are excluded from lists
- Also make sure to revalidate/dispatch/update when toggling rules
2019-04-18 17:05:33 -04:00
Bryan Housel
9c4881cade Change autofix to accept arguments to perform, implement "fix all" 2019-04-17 17:51:29 -04:00
Bryan Housel
d6327aec56 Make reference function optional
Now it shows the "No documentation available" message if there is not one
2019-04-17 09:05:05 -04:00
Bryan Housel
01d2e3eaf3 Replace validator tooltip with reference function, add tag diff 2019-04-16 17:07:53 -04:00