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

Further enhancements for events, queries, and auto-save #413

Open
3 of 16 tasks
LaCuneta opened this issue Feb 22, 2023 · 0 comments
Open
3 of 16 tasks

Further enhancements for events, queries, and auto-save #413

LaCuneta opened this issue Feb 22, 2023 · 0 comments

Comments

@LaCuneta
Copy link
Contributor

LaCuneta commented Feb 22, 2023

The first round of implementation work on events, queries, and auto-save is complete (#411). I wanted to collect other ideas that came up during development and demos in one spot to try not to forget them. If someone wants to work on any one of these tasks independently, we can take it off this list and open a new issue for it; just let us know. Also, extra tasks can be added here, too.

This does not include changes to connect NetLogo Web into other systems, such as adding support for loading and saving models to internet storage providers (Google Drive, GitHub, etc) or for creating a centralized model sharing service (like ModelingCommons).

  • Have some easy way to wipe the whole local cache from the UI. This might be useful with lab computers at the end of a semester or something like that.
  • Have some easy way to export and import your NetLogo Web local cache all at once, just in case. Not sure if there work here would be worth it relative to supporting real internet storage options.
  • Right now the changes in progress store the whole nlogo file as text. It could be compressed to save on local storage space. It could also only store incremental changes (widgets settings and values, code diffs, etc) from the original source.
  • Turn the auto-save system into a more general undo/redo system. You could do this with the "full model" style that is active now, but the user experience would be better if we stored only the incremental changes so you can undo or redo without a full session compile from scratch. That would be a fair bit of work.
  • Add a "Set to Authoritative" button to establish your current work as the "Original" for the next time the model is loaded or changed, sort of like a "commit".
  • Finish adding NetTango events (relayed through iframe) for everything - editing and playing.
  • Add a "skip cache warning" site setting for users who don't want the alert pop-up.
  • Get the query system properly unit tested.
  • Get the cache data versioning system properly unit tested. As changes are made to the cache format on future work, it's vital to have some unit tests around updates to existing data so we have confidence user work will not be interrupted when they are updated.
  • Add events for engine actions, such as ticks, turtle creation, etc. This work would be mostly done in Tortoise with some way to hook up the listener from Galapagos.
  • Add a primitive to the logging extension to generate an event from code.
  • Add events for the output widget.
  • Add events for command center commands and output.

Done

  • Make sure the query system is usable and convenient for embedding applications (NetTango is a good place to start). Right now it's geared towards iframe-style usage in static web pages. Refactored and swapped NetTango to use it.
  • Have some easy way to browse what model changes are cached so you can jump right back into the work without remembering the source you were using. This could include some basic file management features like duplicate and delete.
  • Add a "never cache" site setting for users who don't want to save WIP.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant