Commit Graph

636 Commits

Author SHA1 Message Date
Bryan Housel 728036be51 Don't write unsavable changes to localStorage (closes #2705) 2015-06-20 12:21:29 -04:00
Bryan Housel f4d93c442e Add connection#loadEntityVersion to fetch specific version 2015-06-18 11:46:43 -04:00
John Firebaugh f8a68c879f Adjust tree for force-rebased entities
Previously, entities that already existed in the rtree prior to the rebase
option would end up duplicated in the tree afterward.

Fixes #2637
2015-05-09 14:38:41 -07:00
Bryan Housel 7adb0ddbfb Smarter revert of new entities, more tests
re: #2611, #537
2015-04-29 22:47:07 -04:00
Bryan Housel ca02cf4b96 Graph#revert accept id instead of entity ref
trivial test cases (revert across create/update/delete) all pass
2015-04-28 11:22:46 -04:00
Bryan Housel 587d1451be More tests for Graph#revert (reverting new things should remove them) 2015-04-27 12:02:59 -04:00
Bryan Housel c10b83f28f iD.actions.Revert (see #537) 2015-04-26 01:08:31 -04:00
Bryan Housel 6b18066dd6 Graph#revert (see #537) 2015-04-26 01:07:48 -04:00
Bryan Housel 99d037e97f Better logic for adding area=yes (closes #2578)
This fixes a few issues:

1. before: checked first key in applyTags and break loop, now: check all of them
(this was what caused `area=yes` to be added to 'branded' presets:
the first key is for these is `name` which isn't in areaKeys.)

2. add `area=yes` if user is drawing an area but the preset can be an
area or a line (e.g. `barrier=city_wall`)

3. remove `area=yes` when switching to another preset
2015-04-22 17:04:18 -04:00
Olaf Veerman 89b354ddba Allow overzoom to be set on overlays
The default behaviour is to overzoom overlays past their max
scaleExtent. When 'overzoom':false is defined in imagery.json,
the layer will disappear on the max scaleExtent.
2015-03-26 12:04:54 -07:00
Bryan Housel 55c4fce55f Merge pull request #2516 from bhousel/zorrofix
Avoid zorroing connected ways when moving a way
2015-03-20 22:30:34 -04:00
Bryan Housel c69fbf3e3d In copy/paste, use the graph that entities originally came from
(fixes #2557)
2015-03-18 10:08:36 -04:00
Bryan Housel 05ff86e5c2 Prevent no-match parent relations from breaking getMatches
(e.g. a site relation with a fence in it)
Also, updated the test graph to contain one of these.
see https://github.com/openstreetmap/iD/pull/2554#issuecomment-78517442
2015-03-12 13:59:48 -04:00
Bryan Housel 3308b5507b Feature Filtering: don't match multipolygon lines as 'others'
(fixes #2548)

If the entity is a way that is a member of a parent relation,
use that parent relation's matches instead of matching 'other'
2015-03-10 00:06:29 -04:00
Bryan Housel 2485d74d5b Use interpolated D3 zooming for zoomIn/zoomOut 2015-03-09 16:34:07 -04:00
Bryan Housel 1f0087d133 Merge pull request #2525 from openstreetmap/conflict-resolution
Merge Conflict Resolution
2015-03-05 19:49:15 -05:00
Bryan Housel c503b9f96c fill remoteGraph with loadMultiple, finally do proper undeletion 2015-03-03 23:43:37 -05:00
Bryan Housel 56449bc589 Pend some failing tests
They should work but they don't.  No idea why.  PhantomJS issue?
2015-03-03 21:06:28 -05:00
Bryan Housel cb0e8ab66c Initial support for Multi Fetch GET
It will also be much faster to fetch the remote entities in batches
rather than one at a time through LoadEntity.

One bonus/hazard with Multi Fetch GET is that it will get deleted entities
with `visible=false`, rather than returning a HTTP Status Code 410 (Gone).

This will be the only way that we can really do proper undeletion
(Incrementing the current version by 1 is not guaranteed to work.  And
if a way is moved, fetching way/full will tell us whether the childnodes
are part of the way, but not necessarily whether they exist or not.)

We must be careful never to merge deleted entities into the real graph.
e.g, a deleted node will not have a 'loc' attribute, so code that assumes
every node must have a `loc` will be broken.

So because deleted entities are very special, the output from `loadMultiple`
should only be used for conflict resolution for now.
2015-03-03 20:54:09 -05:00
Bryan Housel fc94e7775f more tests 2015-03-02 22:47:49 -05:00
Bryan Housel e3139e250e improvements to iD.actions.MergeRemoteChanges
* if remote entity is deleted, log to conflicts() array
* if remote tag was deleted, delete from tags (not set undefined)
* update tests..
2015-03-02 13:07:24 -05:00
Bryan Housel 0730e0432b keep localGraph - UI can now flip between mine/theirs 2015-02-20 17:01:19 -05:00
Bryan Housel ad8c381301 WIP: handle conflicting local tag deletion
re: https://github.com/openstreetmap/iD/pull/2489#discussion-diff-22490581
2015-02-20 12:43:47 -05:00
Bryan Housel 38b50a347e WIP: Fix tests, simplify mergeChildNodes 2015-02-17 22:10:47 -05:00
John Firebaugh 9aab74c187 Test; simplify 2015-02-12 10:24:40 -08:00
samanpwbb d141827c3e Merge branch 'master' into conflict-resolution-ui 2015-02-06 19:08:50 -05:00
Bryan Housel 6d82ae4146 add iD.geo.Extent#contains 2015-02-06 13:56:51 -05:00
Bryan Housel 147e369c3b Add graph#overwrite (same as pop followed by perform)
to remove some of the overhead in creating difference and dispatching
change event multiple times..
2015-02-02 22:01:49 -05:00
Bryan Housel cac0258baf Merge pull request #2498 from bhousel/copy-paste
Copy paste map features with Cmd-C, Cmd-V
2015-01-15 21:24:58 -05:00
Bryan Housel ef2d6e75cf Add minzoom check to map.zoom() (closes #2499) 2015-01-13 23:09:19 -05:00
Bryan Housel ed4929273d Return entities from iD.Connection via callbacks
(instead of dispatching `load` event to merge them into `history`)

This is cleaner becuase now `context` doesn't need to keep an
`altGraph` state used only for Conflict Resolution.

The conflict resolution code calls the `iD.Connection` methods directly,
and other places in the code call `loadEntity` and `loadTiles` wrappers
that merge the entities into the main history.
2015-01-08 14:44:58 -05:00
Bryan Housel d9f204cf45 Remove Graph#freeze 2015-01-07 11:52:17 -05:00
Bryan Housel 90147b23db Make copy handle circular and other degenerate Relations 2015-01-04 23:15:47 -05:00
Bryan Housel f6d144c151 Improvements, and simplify code
* don't worry about deep copying, because immutability
* don't need `attrs` parameter which is usually empty
* don't worry about resetting `v` entity version
2015-01-01 22:49:44 -05:00
Bryan Housel 3bbf31902a Add accessor to get conflict details from iD.actions.MergeRemoteChanges 2014-12-29 22:47:44 -05:00
Bryan Housel 4b6abf7a42 Added iD.actions.CopyEntity 2014-12-28 22:01:10 -05:00
Bryan Housel dae0d2d55e Add entity copy methods 2014-12-28 22:00:55 -05:00
Bryan Housel 0c881ef9f2 merge ways with non-overlapping changes to nodelists 2014-12-13 22:50:29 -05:00
Bryan Housel 381142356b add Diff3 library 2014-12-13 22:49:44 -05:00
Bryan Housel 977e29cfdb Most iD.actions.MergeRemoteChanges features complete
(todo: merging ways where nodelist has not been reordered)
2014-12-11 23:52:53 -05:00
Bryan Housel dc1221b8ba pass graphs instead of entities to iD.actions.MergeRemoteChanges
(realized that I will need to compare more stuff from the
local and remote graphs in order to merge ways/relations)
2014-12-10 00:12:32 -05:00
Bryan Housel d85da08cfe fix "inherits entities from base prototypally" test 2014-12-10 00:11:09 -05:00
Bryan Housel eff18cb257 add tests for iD.actions.MergeRemoteChanges 2014-12-09 00:59:25 -05:00
Bryan Housel 3e97bd7d89 stub out iD.actions.MergeRemoteChanges 2014-12-06 22:11:54 -05:00
Bryan Housel 1c3d198b96 add force option for rebase to overwrite existing entities
related: openstreetmap/iD#2467
2014-12-04 19:50:32 -05:00
Bryan Housel dfe8fd1e90 features performance enhancements
1. reusue entity.geometry where possible
2. cache entity parents
2014-11-18 22:05:08 -05:00
John Firebaugh 9e9a4b3cc0 Fix tests 2014-11-11 14:32:50 -08:00
Bryan Housel b20f1495de restore toggle function and add test 2014-10-29 15:06:43 -04:00
Bryan Housel a2703f10c8 fix tests affected by change in equality testing re #2388 2014-10-28 21:49:31 -04:00
Bryan Housel 927c533bb4 add feature tests for auto-hiding 2014-10-28 21:37:04 -04:00