(closes#4237)
New rules:
- Rotation available if at least 2 unique nodes in selectedIDs
- Reflection available if at least 3 unique nodes in selectedIDs
1. All services are disabled in testing now to prevent network accesses
2. Only services are enabled when needed to test something
3. Many changes throughout code to allow iD to run with services disabled
(e.g. check for osm service instead of assuming context.connection() will work)
4. Actually export the services so we can disable and enable them
(closes#2633)
* move osmChangeJXON from osm service to osmChangeset
* cleanup putChangeset for code clarity
* adjust params for callbacks (pass changeset around instead of changeset_id)
* add commit.reset() to reset changeset object after successful save
* improve checks for changeset tags (trim whitespace, etc)
Old menu behavior can be restored with 2 cookies:
- `edit-menu-style=radial` - Display menu as a radial menu, limited to 8 items
- `edit-menu-show-always=1` - Show menu on all clicks, not just contextmenu/right
(closes#3824)
When hovering, there is also a companion `vertex-hover` element that might
sometimes get selected, and doesn't have the sibling class that enables drag.
This is because #surface can be transformed during a partial redraw
and d3.mouse() returns transformed point, not the real screen point.
a2cf4f32ec/src/point.js (L4-L9)
(see #3777)
* When entering Save mode, map content transitions inactive: appears grayscale
and dims slightly so colorblind users perceive a change. The sidebar controls
still let the user review their edits, or return to editing to address any
warnings.
* Adjusted the language a little bit "Save" -> "Upload" to make it clear that
an Upload needs to happen. No more 2 Save buttons.
These changes are needed now that `addNode`
* wants to preserve circularity
* automatically remove duplicates
* range checks index argument (can't call it with -1 anymore)
* Support move, rotate, reflect, delete post paste on multiselection
* Improve text and error msgs for singular vs multi selections
* Move `disabled` checks from actions to operations
* Reproject center of rotation (closes#3667)
* Cleanup tests