Commit Graph

2710 Commits

Author SHA1 Message Date
Bryan Housel
2ebbb68604 Restore tooltips on rule checkboxes, separate 'tip' and 'reference'
Reference will show on clicking info button, and can contain more
useful information than a tooltip can.
2019-04-19 13:24:55 -04:00
Bryan Housel
4d66cacb27 Nodes needs Array.length not Set.size 2019-04-19 11:04:41 -04:00
Bryan Housel
1092ddb125 Make sure to update the save count when restoring changes too 2019-04-19 10:56:00 -04:00
Bryan Housel
ae06e28f9b Try to avoid style recalculation when typing on the comment box
I think this doesn't completely work.. It reduces the amount
of unnecessary DOM changes, but there are still some more.
2019-04-19 10:02:25 -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
c4209515a5 Only consider hiding features matched to a rule
(Fixes accidental hiding of vertices)
2019-04-18 19:26:17 -04:00
Bryan Housel
a56c1af725 pacify eslint 2019-04-18 19:26:05 -04:00
Bryan Housel
a55b4387fe Make sure the notification badge starts out hidden 2019-04-18 19:06:23 -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
0d70f0670d Better test for whether untagged entities can be deleted
Now entities can always be deleted if the user created them in the first
place.. We skip asking `operationDelete.disabled()` because there are reasons
why this may return true.

A thing that could happen before:
- User creates an untagged entity
- Quits browser and restarts iD
- Restores history
- The entity happens to be in a part of the map that hasn't been loaded yet,
  so `operationDelete.disabled()` returns true, and the issue ends up
  as a 'warning' instead of an 'error'
2019-04-16 22:56:43 -04:00
Bryan Housel
01d2e3eaf3 Replace validator tooltip with reference function, add tag diff 2019-04-16 17:07:53 -04:00
Bryan Housel
8afd8887cf Restyle much of the issues and entity issues - avoid tooltips 2019-04-16 12:33:48 -04:00
Bryan Housel
294ce00211 substitute 'info' for 'data' (so I can use 'info' for an info drawer) 2019-04-15 16:56:21 -04:00
Bryan Housel
f6708fd84c Hide feature if _all_ rules hidden (was: if _any_ rule hidden)
This matters as we start to match more rules for hybrid features like rail
platforms, which now match both path and rail.  We want to show them unless the
user has hidden all the rules that they match.

Also this changes the test code slightly to actually test rule matching.
Before it was really just testing hiding.
2019-04-15 10:20:58 -04:00
Bryan Housel
15e73d2836 Trying out simpler outdated_tags code, with tag diff 2019-04-14 17:25:51 -04:00
Bryan Housel
5a0f21fa7a Add ability for a fix to be auto, and add auto fix buttons
This also changes some of the list items that were previously buttons to divs,
since we can't nest buttons.
2019-04-13 10:50:47 -04:00
Bryan Housel
ce89d7359b Sort issues list by dist from the map center, cutoff at 1000 items 2019-04-12 14:26:05 -04:00
Bryan Housel
da1fe8343a Remove mode checking code from missing_tag, as these validate anytime
This was causing it to not immediately flag "area with no tags" as an error.
(until the user edited the area some other way)
2019-04-12 12:49:47 -04:00
Bryan Housel
0ec9cd91dc Warm up the feature matching cache upon merging fetched data
Also rename `_features` to `_rules`, since we use the word features too much
2019-04-12 12:25:37 -04:00
Bryan Housel
efcd6b6bc2 Consolidate idle functions into idle.js, defer validation after merge 2019-04-12 10:49:21 -04:00
Bryan Housel
0dd262d1dd Don't dispatch 'change' on history.merged, dispatch 'merge' only
Change performs an expensive immediate redraw, and merge can schedule
a redraw for later.
2019-04-12 09:56:18 -04:00
Bryan Housel
2b050549eb Avoid reflow in minimap by hardcoding its dimensions 2019-04-11 21:05:04 -04:00
Bryan Housel
31b64f253c Rerun validation when assigning a preset 2019-04-11 15:11:29 -04:00
Bryan Housel
96c277f46d Simplify issue-options css 2019-04-11 14:59:32 -04:00
Bryan Housel
35049ab40a Replace getErrors/getWarnings with getIssues/getIssuesBySeverity
The idea here is that the validator will now hold onto lots of issues,
but the calling code will only want some small subset of them
(edited/everything) (inview/everywhere) and can pass these as options
so that we don't need filtering code spread throughtout the app.
2019-04-11 14:48:23 -04:00
Bryan Housel
569cbd1a92 entity.v can be 0, so check for === undefined instead 2019-04-11 14:40:34 -04:00
Bryan Housel
4c563f4edf Add validation options
Check:  [] My Edits  [] Everything
Where:  [] In View   [] Everywhere
2019-04-11 11:55:17 -04:00
Bryan Housel
0a77a494aa Merge branch 'master' into validation_and_change_perf 2019-04-10 14:22:20 -04:00
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
Quincy Morgan
89d8f887be Allow disconnecting multiple selected vertices at once (close #6164) 2019-04-09 14:04:52 -07:00
Quincy Morgan
ae80c88f37 Render relation route icon lines dynamically (close #5926) 2019-04-08 19:58:50 -07: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
Quincy Morgan
50a0982d79 Merge pull request #6161 from jguthrie100/fix_closed_way_disconnect
Leave way as closed when disconnecting
2019-04-08 11:08:33 -07: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
J Guthrie
00c7eaddc2 Fix to work with PhatomJS 2019-04-08 17:07:12 +01:00
J Guthrie
ac29803b6f Fix eslint error 2019-04-08 16:38:10 +01:00
J Guthrie
4d24db597e Small refactor to improve efficiency 2019-04-08 16:28:01 +01:00
Jamie Guthrie
d3d0a560eb Remove excess whitespace 2019-04-08 16:01:08 +01:00
J Guthrie
d7865ac4aa don't unclose way if it is part of a larger disconnect operation 2019-04-08 12:42:16 +01:00
J Guthrie
7edebb897f Only allow disconnect when selected ways relate to selected node 2019-04-08 12:41:05 +01:00
Bryan Housel
8d66289cba Run validation when switching fields, or when applying an issue fix 2019-04-07 23:10:20 -04:00