36 Commits

Author SHA1 Message Date
Simon Howe
ac5d258378 Fixes scope working under a path
- Adds proxy server for easy testing of scope under a path.
2016-02-18 14:17:51 +01:00
David Kaltschmidt
d39fd847b7 Details Panel UI Redesign
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)
2016-01-19 16:47:05 +01:00
David Kaltschmidt
57dfe4a4e8 Dont use -p on webpack when declaring uglifyjs plugin 2015-12-16 18:53:11 +01:00
Simon Howe
dbd789317d Also proxy WS to the BE while in dev mode.
WS weren't using the proxy.
2015-12-15 16:39:57 +01:00
Simon Howe
3b2af2ae6c Terminal UI for pipes
- 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.
2015-12-10 12:52:44 +00:00
David Kaltschmidt
6b445466ef Move JS to ES2015
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)
2015-12-01 14:35:22 +01:00
David Kaltschmidt
c723978ec5 Upgraded react to 0.14.3
also add production globals to webpack config to reduce bundle size
2015-11-19 18:19:39 +01:00
David Kaltschmidt
2eb80d79bc object-assign no longer needed under babel 6 2015-11-11 19:35:21 +01:00
David Kaltschmidt
6cb825f6f3 Disable coverage on jest, it's broken 2015-11-11 18:58:56 +01:00
David Kaltschmidt
59064e8a2d Upgrade to Babel 6 2015-11-11 18:42:48 +01:00
David Kaltschmidt
1019e45940 Upgrade node version to v4.2.2, and jest to 0.7.1
* the jest update will allow for jest --watch to keep jest running
2015-11-11 18:24:09 +01:00
David Kaltschmidt
e2553fd3fc Upgrade optional dev tools 2015-11-11 17:40:09 +01:00
David Kaltschmidt
c09ca3f6e3 Upgraded dev dependencies
cant do Babel 6 yet, while being on node 0.10
2015-11-11 17:36:31 +01:00
David Kaltschmidt
b56fd96a35 Updated app dependencies
* reduces bundle size by another 20%
2015-11-11 16:11:28 +01:00
David Kaltschmidt
acbf8a665d Upgrade eslint, react and react-motion
* get rid of material-ui
* reduced bundle size by 20%
2015-11-11 15:51:27 +01:00
David Kaltschmidt
3d08b15430 JS test framework for node layout 2015-11-05 10:58:13 +01:00
David Kaltschmidt
7722b2f1dc Fixing most npm deps versions 2015-11-03 13:22:01 +01:00
David Kaltschmidt
bc7ee66ed9 Fix npm install by fixing version of react-tap-event-plugin 2015-11-03 11:25:56 +01:00
David Kaltschmidt
92e56a492b Fix package.json syntax error 2015-10-26 17:49:21 +00:00
David Kaltschmidt
a2877102f1 remove old karma test config, make webpackdevserver optional
`npm install` continues to install everything, but `npm install
--no-optional` wont install the dev server.
2015-10-26 17:49:21 +00:00
David Kaltschmidt
cacc2e1bc3 Move testing to Jest 2015-10-26 17:49:21 +00:00
David Kaltschmidt
8483492eb7 New sidebar in the bottom left
* status bar (fixes #207)
* moved topology options to sidebar
* render topology option like snackbar
* upgrade material-ui to 0.11
2015-09-15 15:03:18 +02:00
David Kaltschmidt
4584bed4b7 WIP use react-motion to animate edges 2015-09-08 13:23:46 +02:00
David Kaltschmidt
398fb7a6ba fix JS error on missing edge target
* 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`
2015-09-04 15:44:11 +02:00
David Kaltschmidt
b17d958b07 use immutable objects for storing nodes
makes checking for topology changes easier, which triggers fewer
re-renders
fix JS store tests with Immutables
only update graph if topology changed
2015-09-02 16:00:28 +02:00
David Kaltschmidt
e518bedecb Update the JS tooling
* 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
2015-08-24 12:41:17 +02:00
Tom Wilkie
e7ab9816cd Use node:0.10 as the ui build image, and upgrade karma and karma webpack 2015-08-17 16:26:22 +00:00
David Kaltschmidt
1085a7fcd9 include roboto in build
no need for internet connection anymore
include roboto via materialize

see http://materializecss.com/

roboto licensed under APLv2, see
https://github.com/google/roboto/blob/master/LICENSE
2015-06-16 18:02:52 +02:00
David Kaltschmidt
24bd8d1908 use karma-coverage and istanbul 2015-06-16 15:41:27 +02:00
David Kaltschmidt
49c1493c79 replaced console.log with debug package 2015-06-11 20:57:13 +02:00
David Kaltschmidt
4d027fef19 changed tooling from browserify to webpack
* 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`
2015-05-29 11:48:55 +02:00
David Kaltschmidt
7d1ee40a2b Fixed lint errors in all js files
- 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
2015-05-28 15:07:13 +00:00
David Kaltschmidt
42a3f57e11 Added linter for js
- use global stricts
- use airbnb linter rules
- gulp lint target
- make target client-lint
2015-05-28 15:06:46 +00:00
David Kaltschmidt
66d66a4d01 Fix grouping bar for topologies that don't support grouping
- 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
2015-05-22 16:41:48 +00:00
David Kaltschmidt
4ca869d891 Automated UI building
- Add Dockerfile for js build image
- Wire up dockerized-ui build to the makefile.
- Removed unused dev tools from package.json/gulp
2015-05-20 10:45:35 +00:00
Tom Wilkie
d50e827fd5 Intial commit 2015-05-19 10:02:02 +00:00