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