CASsim
CASsim copied to clipboard
Working UI to select runs, options, etc
- [x] Select drop down of which simulation-name
- [x] Select which run to view
- [x] Allow editing of frame index
- [x] Position controls better
- [x] Don't allow selecting an illegal run index
- [x] Allow selecting a different simulator
- [x] Allow exporting the modified JSON
- [x] The simulation run doesn't notice the frameIndex is invalid until too just after it happens. It should notice right before.
- [x] Data layer also disallows picking an invalid frame index
- [x] Fix the bug where the selectCurrentSimulationRunMaxFrameIndex caches the frame index too much
- [x] Disallow picking an invalid frame index (and verify what happens when it goes straight to an invalid one)
- [x] Allow modifying all properties of config and simOptions directly
- [x] Allow selecting a simulation via index or name
- [x] Select which frame of current run to view
- [x] Run the simOptions by optionsConfig and invalidate anything that doesn't match, so optionsValidator() only has to do extra stuff
- [x] Allow UI controls hiding
- [ ] Intermediate colors between green and red for intermediate values
- [x] Allow clicking on a status to run that status or switch to it
- [x] Show summary of rounds based on success or not
- [x] Allow modifying delay
- [x] Better padding / spacing in controls
- [x] Disabled buttons should not hover
- [x] Allow an extra frame delay at end of round
- [x] Add autoPlay option to simulation config (and rename other autoSimulate or autoGenerate)
- [x] Allow a pause button
- [x] Make all of optionsConfig readonly while playing
- [ ] Make playing status be more obvious when playing
- [ ] Make play button be more prominent
- [x] Add a play / pause / reset control (variable speed?)
- [ ] If you go previous through a simulationConfig boundary, and autoRun is false, then the last round is calculated even though we aren't in it?
- [x] Space bar should toggle play pause
- [x] Bug: If you are on the second simulation collection and refresh it goes back to the first one
- [ ] Show UI for problems in optionvalidator, their problem strings (instead of just warning)
- [ ] Allow modifying playType (maybe in simulation settings?
- [ ] Add a run button for the currently visible run (rememeber all of thse will need autoRun = false). This is actually not obvious; the caching selector layer assumes there is no modified state if the state object doesn't change.
- [ ] The pattern in simulation-controls.state-changed will have a different result (which m eans it will have to rerender even if a notional no op) after each and every state change, no matter what changed, because there isn't a selector logic...
- [x] If run count is very high, there's mostly border in the stauts summary in the top controls
- [ ] There's a moderate width/height value where the frame visualization doesn't fit in the view port (950 x 560)
- [x] The denominator of the status % should be the number of completed runs (currently it's all runs) (check for zero)
- [x] Render description in the UI (and have a max-height)
- [x] Autoexpand the simulation config on wide/large screens
- [x] Should run/frame count even be in the URL? It basically never makes sense to deep link to a given run/frame (although the sim options DOES make sense to link to)
- [x] Render a success percentage number in the UI for all of the rounds
- [x] Background color should extend the whole page even if scrollling
- [x] Space / arrow keys movement will do stuff even when editing in an input
- [ ] When transparent is true, render some kind of distinctive checkered background or something behind frame-visualization (background set on the it within sim-view, so it doesn't get picked up in the screenshotting?)
- [ ] Have a control in the UI to run all runs (ideally yielding after each one, showing status as each is calculted)
- [ ] Allow creating a config (simulation in collection) as a fresh one or a copy, reordering it, deleting one
- [ ] Buttons in the UI to advance or go back the simulationIndex
- [x] fe9a1ae0ca2686215c4e4a1061ca746831ef8db8 broke it so the very first frame we generate the very maximum frame count, which will include that in the output. the problem is that maxFrameIndex is set to 1000, and then we bail early in _ensureFrameDataUpTo despite not actually knowing where the end is
- [x] Make sure screenshotting machinery works even if autoGenerate is false
- [x] Allow an option to show future runs of status
- [x] Handle long description names that wrap the select control
- [x] Have a control in the sim config object to autoRun or not
- [ ] Cache simulations that are based on configs that are the same as the last seen thing, and cache modifications that are the last seen thing, for performance (more important with large numbers of autoGenerate config) (does autoGenerate run when the simulation is loaded, or when it's activated?)
- [x] Now when you load a simulation it autogenerates all runs no matter what.
- [x] Shouldn't be able to select filename or config while playing
- [x] Allow status to only show up in screenshotting (a different setting, e.g. display.statusScreenshot, which if true will only show up if it's screenshotting)
- [x] Title of a config should default to switching "-" and "_" to spaces and title casing by default
- [ ] Add a
default
boolean property to the configs, and make it so if the URL doesn't point explicitly to another one, the first one that has default = true will be selected. (This actually requires non-trivial changes to the logic to put in place a default URL)
Have a simulatorOptionsConfig method on the simulator that returns an object with config information about properties
Have options for simoptions. Each field is an object, with values, description, optional, default. Types: seed, number (min/Max/step), array (delimited and base type), string, enum. Sub objects can have @config properties to configure the object description, if it can be omitted, etc.