* adds `?hash` to JS and CSS bundle URLs against caching in production
* uses `html-webpack-plugin` to generate html dynamically
* html based on template in `app/html/index.html`
* per-app html files no longer needed
* `build/` dir is now completely deleteable, and fully gitignored
* top-level `make` now requires `client/app` to pick up on html and
style changes
* cleaned up `server.js` code for production bundle testing
* added readme entry about testing production bundles
Add debug.html to show toolbar
Perfjankie test runner
Playing w/ the pure mixin for perf. improvements
* Works well! Smoother zooming/panning when things have settled.
* Extract node movement to node-container, make nodes pure
Extracted node chart elements into own components
Keep control objects immutable while in components
Keep layout state objects alive
Made other components pure, removed mixin from stateless components
Remove font size adjustment from scaling
Fix zoomscale
Move node transform to node
* makes more sense there because the coords are rounded in the container
dynamic coords precision based on topology size
Make edge points immutable
Remove nodes maximum for layout engine
Dont send all canvas state down to next component
moving layout handling back to nodes-chart.js
Omit some props for edges/nodes, dont animate edges on low precision
Moved AppStore access out of lower components
- Fixes metric font-size on selected nodes
- Round metric-height value to be the same as rounded displayed value.
- No red/green colors in the MoC! They have to much association w/ success/failure
- Bring MoC under new linting rules
- adds support for immutable-console-renderer
- fixes up metrics actually displaying after bad fixes when rebasing.
- Mock all metrics client side for demoing
Refactored nodedetails to support multiple data sets, probably broke some tests
Allow api requests to out-of-view topologies
Fix ESC behavior with details panel
Stack details panel like cards
Details pain side-by-side
Details panel piles
Fix node details table header styles
Render load and not-found captions like relatives
Fix topology click action
Make node detail tables sortable
Grouped metrics for details health
Group metrics in same style
Link node details children
Fix scroll issues on double-details
Fix DESC sort order for node details table
Save selected node labels in state - allows rendering of node labels from other topologies before details are loaded
Change detail card UX, newest one at top, pile at bottom
Details panel one pile w/ animation
Sort details table nodes by metadata too
Animate sidepanel from children too
Fix radial layout
Dont set origin if a node was already selected, suppresses animation
stack effect: shift top cards to the left, shrink lower cards vertically
Clear details card stack if sibling is selected
Check if node is still selected on API response
Make detail table sorters robust against non-uniform metadata
Dont show scrollbar all the time, fix sort icon issue
Button to show topology for relative
Overflow metrics for details panel health
Fix JS error when no metrics are available for container image details
Column-based rendering of node details table
Fix JS tests
Review feedback (UI)
- term.js
- Add eslintignore
- Fix color and es2015 after rebase
- Fix JS test, probably deleted during conflict resolution
- Moves terminal close button to top-right of window
- Consitent w/ details window.
- Changes padding of details window close button so both close buttons
are horizonally aligned.
- Terminal resizes w/ browser window.
- No longer can drag window around.
- Add tiny big of padding between term and node-details.
- Playing w/ terminal placement. This one's more drawer-like.
- Send DELETE when we close a terminal window.
- Dont lint or bable JS vendor files
- Ignore ctags 'tags' files.
- Adds popping out terminal out into a new browser window.
- Simplify code as now we've just a single terminal window.
- ESC is back to close the terminal, then the details panel.
- Fixes bug w/ slow response to closing the details panel.
- Moving away from "drawer-style" for terminal size and position to a
simple window.
- Just gotta handle the case for refreshing a popped out terminal.
- Stop terminal text being auto-deselected.
- window resizes will still deselect.
- Adds state.connected to react.scu check.
- Don't delete pipe when browser closes
- To allow for nicer refresh flows
- scope-app will time out pipe after a while.
- Keep terminal-open/closed state in the url.
- shouldComponentUpdate fix to prevent deselection of text has been
rolled back so gotta come up w/ another way to handle that...
- Fixes terminal text-selection again.
- Make pipes work for non-raw terminals too.
- Move document.title updating somewhere more sensible.
- Pass rawTty prop along to all terminals.
- Don't render react root into doc.body
- Reconnect the websocket if we lose it.
- First, slightly rough, attempt at displaying if pipe has been deleted
- Refactor controlPipe structure in the AppStore/hash.
- Merge controlPipeId, controlPipeRaw, controlPipeStatus into a single object.
- Adds a status bar to the terminal window.
- Error handling in popout working again.
- Don't show terminal cursor when not connected.
- Simplify controlPipe status and error handling.
- Don't keep the status in the hash.
- Use special new action receiveControlPipeFromParams rather than
adding lots of branching to receiveControlPipe.
- You can reload a terminal but it doesn't exist in history stack.
- Pull out terminal into its own entry point!
- Fixes prod webpack build
- Fixes terminal-app websocket path when running on prod.
- Fixes old terminals appearing when closing a terminal.
- History hacking wasn't working, this is a little simpler.
Refactored mixins into utils
ES2015 module exports
ES2015-style imports
WIP Fixing tests
Fixes tests after es2015 code migrations.
We we're require()ing an ES2015 module[1]. Have to make sure you account
for the .default in this case.
[1] We had to use ES5 `require` in Jest:
(https://github.com/babel/babel-jest/issues/16)
* replace mergeDeep with merge on node updates to set adjacency to
updated value
* added json-loader to make json import of websocket frames easier
* console message for this was `Cannot read property 'id' of undefined`
* get rid of gulp
* use webpack-dev-server to serve app.js
* express serves static files
* 2 webpack configs: local and production
* for development with backend, websocket URL is injected
* remove unneeded static files
* using browsersync instead of livereload
* `gulp serve` works as before
* `gulp sync` starts browserSync and serves UI on port 3000
* everything is built in `build/`
* build release with `gulp build --release`
- Also added linter configuration, and make linter fail on error
- fixing ES6 errors and added ES6 transformer
- gulp target to try local build
- linted gulpfile
- cant hook into gulp lint yet, because gulp does currently not support
ES6 which some rules demand, since gulp cant transpile itself, we have a
chicken and egg problem.
- ES6 transpiler for test runner
- removed old linter config
- adapted editorconfig to reflect linter config
- fixes#61
- dont clear nodes cache if topo is the same
- combined stores that were interdependent
- dont show topology grouping menu if unsupported
- also harmonized some variable names
- removed old grouping switcher
- moved topo actions to app actions, removed search
- get correct topology url
- first JS test using Jest
- make tests run on circle using the build container.
- replaced jest test runner with karma/jasmine
- Use debian for UI build and test container.
- updated karma-browserify