Bryan Housel
9100ce3ee4
Don't validate vertices which extend beyond the downloaded map
...
(closes #5938 )
2019-04-10 13:40:06 -04:00
Bryan Housel
f309e925d8
Memoize disabled for all the other operations too
...
see 81127d71f
2019-04-10 11:28:41 -04:00
Bryan Housel
81127d71f3
Cache disabled() results in straighten action for consistent response
...
What could happen was:
- user could right click on a line
- this would trigger `disabled()` checks for each operation buttons
- the line was not fully downloaded, so would return `disabled()` 'not_downloaded'
(and also start download of the missing tiles)
- then the tooltip would pop into existence, calling `tooltip()`
- which calls `disabled()` again
- but this time it's fine and the `disabled()` is false
- so you'd see a greyed out button but the tooltip said everyting is ok and
you can click the button anyway
I fixed this by just caching the disabled test. This is probably ok anyway
because these tests can be expensive, and then the user will see a consistent
message like "The line is not yet fully downloaded".
If the user clicks off the line and back onto it, iD will reenter select mode,
rebuild the menu, redo the disabled test, and they will see the button enabled.
2019-04-10 10:19:23 -04:00
Bryan Housel
e30090996b
Add loadTileAtLoc to fetch data tile for a specific location
...
(closes #4890 )
This lets iD request needed tiles outside of the viewport, for example to
properly straighten lines or validate features that may have unloaded
connections.
2019-04-09 23:49:31 -04:00
Bryan Housel
95a1bbaf97
Add downloaded debug flag and visualization for tiles downloaded
2019-04-08 22:06:47 -04:00
Bryan Housel
df1a2ea361
Prevent some actions on features that extend beyond the loaded map
...
(closes #2248 )
2019-04-08 21:26:58 -04:00
Bryan Housel
2660a8554b
Add isDataLoaded and tilecache rtree for testing
...
(re: #2248 , #5938 , maybe others)
2019-04-08 15:59:42 -04:00
Bryan Housel
207cbd30dc
Pacify eslint
2019-04-08 12:33:19 -04:00
Bryan Housel
7556df7265
Make sure to return the current version of entity from tree.intersects
...
Since d5e427289 , the tree head graph will not update if only tags have
changed - it requires an addition, deletion, or geometry change.
This makes the tree a little more efficient, but we do need to make
sure to return the current entities to the caller.
2019-04-08 12:28:02 -04:00
Bryan Housel
8d66289cba
Run validation when switching fields, or when applying an issue fix
2019-04-07 23:10:20 -04:00
Bryan Housel
e377270372
WIP: introduce validatedGraph, try on mode change not history change
2019-04-06 13:39:19 -04:00
Bryan Housel
1bcc0f613c
WIP: fix caches, replace id() function with plain id property
2019-04-05 17:41:04 -04:00
Bryan Housel
78acd999c8
WIP: switch from validating everything to validating differences
2019-04-05 13:29:57 -04:00
Bryan Housel
af45dbce10
Trying to avoid one-off validations when history changes will trigger it
2019-04-05 11:37:02 -04:00
Bryan Housel
f17ebee402
Use Set, simplify util functions to collect entities with children
2019-04-05 11:05:04 -04:00
Bryan Housel
6508edf820
Avoid anonymous functions as validators
...
Givnig them names makes it easier to understand in the profiler
2019-04-05 09:50:22 -04:00
Bryan Housel
82a9375e0f
Move coreValidator test to test/spec/core/validator.js
2019-04-05 09:34:53 -04:00
Bryan Housel
8b1c0551cc
WIP: understand state held by the validator, avoid translations
...
- Make sure all state variables prefixed with `_`
- Add explicit `init`/`reset` methods
(graph/entity refs should never persist through a save to OSM)
- Thinking of how best cache validation results
2019-04-05 09:28:36 -04:00
Bryan Housel
d5e427289f
Avoid delete/reinsert on the coreTree when not needed
...
(re: #6140 )
2019-04-04 10:02:15 -04:00
Bryan Housel
68ed6da159
Merge branch 'master' into validation_and_change_perf
2019-04-04 09:30:30 -04:00
Bryan Housel
87e3b928d0
Reduce drawing during history changes
...
(closes #6086 )
2019-04-03 23:26:26 -04:00
Quincy Morgan
b52d8c1790
Add documentation for the geometry, tags, addTags, removeTags, and matchScore preset properties
2019-04-03 18:06:13 -07:00
Quincy Morgan
e71b139171
Simplify almost junction validation
2019-04-03 16:41:26 -07:00
Quincy Morgan
6641f62685
Reduce duplicate code in almost junction validation
2019-04-03 15:44:45 -07:00
Bryan Housel
86de378de5
Add didChange object to track what kind of things changed in the diff
2019-04-03 17:43:04 -04:00
Bryan Housel
765d765477
Pick a fake loc value where equality tests actually work
2019-04-03 17:25:10 -04:00
Quincy Morgan
cbae090f08
Fix crash in almost junction validation
2019-04-03 14:23:21 -07:00
Bryan Housel
167824a530
Make sure all nodes have an actual loc property
...
- This is to make difference comparisons easier
- The only nodes that didn't have a `loc` were fake nodes we made for testing
- So this commit also fixes the `osmIntersection` code and tests.
2019-04-03 16:20:45 -04:00
Quincy Morgan
34792d7fbf
Don't add field defaults when upgrading tags to a specific replacement
2019-04-03 10:57:42 -07:00
Quincy Morgan
d65298f383
Fix issue where generic vertex icon wouldn't show ( close #6138 )
2019-04-03 09:29:14 -07:00
Bryan Housel
561ffc402a
Remove annotatedChange events (we'll replace with something else)
2019-04-03 11:56:56 -04:00
greenkeeper[bot]
d40378d27d
chore(package): update rollup to version 1.8.0
2019-04-03 09:53:16 -04:00
greenkeeper[bot]
8f15ea761b
chore(package): update sinon to version 7.3.1
2019-04-03 09:53:03 -04:00
Quincy Morgan
bf391c997a
Fix issue where Points walkthrough could not be completed in some cases due to downgrade operation (re: #6103 )
2019-04-02 20:23:27 -07:00
Quincy Morgan
8779e1a6dc
Add Downgrade operation to remove most tags from features but retain address and building tags instead of immediate deletion
2019-04-02 11:09:08 -04:00
Quincy Morgan
d5a2ca131d
Fix issue with loading brand documentation ( close #6134 )
2019-04-02 07:21:30 -04:00
Quincy Morgan
103c533701
Add "Cycle & Foot Path" preset (re: #6070 )
...
Offer to add "bicycle=designated" to features with "highway=cycleway" + "foot=designated" but no "bicycle" tag
2019-04-01 15:33:50 -04:00
Quincy Morgan
04e4cfc031
Flag paths with "no" access value for their implied designation (re: #6070 )
2019-04-01 15:00:32 -04:00
Quincy Morgan
cf6e6c7970
Always display the wikidata label and description in the user's language, if available
2019-04-01 13:04:33 -04:00
Quincy Morgan
d5d4323c02
Replace "Use different layers" non-actionable quick fix with actionable quick fixes for setting a higher or lower layer ( close #5943 )
2019-04-01 11:52:04 -04:00
Quincy Morgan
2e7a47d0f2
Update the wikipedia tag when setting the wikidata tag via the field ( close #5543 )
2019-03-31 15:49:35 -04:00
Bryan Housel
1eeaca90a4
Add rollup-plugin-visualizer, but leave commented out
...
(this requires node 8+)
2019-03-30 10:11:00 -04:00
Bryan Housel
b2831ffbd9
Don't export coreValidator here, as it's already exported by core *
2019-03-30 09:58:42 -04:00
Bryan Housel
05f0e9f76f
Remove lodash isMatch
...
(re: #6087 )
2019-03-30 09:36:24 -04:00
Bryan Housel
7c01e63efa
Remove unnecessary cloning from history walkthrough stuff
...
(re: #6087 )
2019-03-30 09:09:33 -04:00
Bryan Housel
cda8f657ac
Swap fast-deep-equal for lodash isEqual
...
(re: #6087 )
2019-03-29 22:17:29 -04:00
Bryan Housel
3673a7c7e7
Remove lodash cloneDeep
...
(re #6087 )
- some were able to do a different approach
(validations/almost_junction, and settings/*)
- some were replaced with custom speedy cloners
(in orthogonalize clonePoints and osm.js cloneNoteCache)
- some just replaced with JSON.parse(JSON.stringify()))
2019-03-29 17:18:40 -04:00
Bryan Housel
d5abe468b9
Remove rest of the lodash iterators: map, reduce, forEach
...
(re: #6087 )
2019-03-29 15:14:21 -04:00
Bryan Housel
0d79e3e616
Remove lodash cloneDeep and forOwn from context.js
...
(re: #6087 )
Tests in Phantom run twice as fast now!
2019-03-29 12:57:37 -04:00
Quincy Morgan
0ca869a525
Expand preset documentation
2019-03-29 10:43:54 -04:00