Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Actions should be able to request additional data #4890

Closed
slhh opened this issue Mar 15, 2018 · 3 comments
Closed

Actions should be able to request additional data #4890

slhh opened this issue Mar 15, 2018 · 3 comments
Milestone

Comments

@slhh
Copy link
Contributor

slhh commented Mar 15, 2018

Some existing and potential actions need more data than available in the graph to be executed safely or to be executed at all.

Actions should be able to check for missing data, issue the database requests, and reschedule themselves on the last callback.

Maybe, iD needs to leave mode select and enter a new wait mode.

Related issues: e.g. #2248, #4876

@bhousel
Copy link
Member

bhousel commented Mar 15, 2018

I think what we really want to do is just have the action.disabled() return truthy (I think it returns a string) in the situations where it doesn't have enough data to be executed safely.

We can't schedule them asynchronously because the graph could change before they get a chance to run.

@bhousel bhousel added the considering Not Actionable - still considering if this is something we want label Mar 15, 2018
@slhh
Copy link
Contributor Author

slhh commented Mar 16, 2018

I think what we really want to do is just have the action.disabled() return truthy (I think it returns a string) in the situations where it doesn't have enough data to be executed safely.

In some cases this might be sufficient, but in general this seems to be quite unfriendly to the user.
I do also think about operations like a multipolygon split, which would likely be disabled in most cases due to missing data. The user needs to get rid of even very complex multipolygons (e.g. large forest MP) by splitting something off to reduce the complexity.

We can't schedule them asynchronously because the graph could change before they get a chance to run.
Sure, resolving the conflicts would at least be very hard.

My idea was to keep it still sychronized with the user interface. That means, in the hopefully rare cases requiring additional data, the UI would be temporarily not accepting any user input, which results in not changing the graph. ID needs to show an indicator of being busy like an hourglass. This is a little nasty, but not being able to use the intended operation is much worse.

@bhousel
Copy link
Member

bhousel commented Apr 23, 2019

Done in #6140
We display a message if the operation can not be executed safely because it needs data from another tile, and schedule download of the missing data.

Screenshot 2019-04-10 11 17 02

If the user clicks again after the data is downloaded, they will see the operation as available.

@bhousel bhousel added this to the 2.15.0 milestone Apr 23, 2019
@bhousel bhousel removed the considering Not Actionable - still considering if this is something we want label Apr 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants