Commit Graph

98 Commits

Author SHA1 Message Date
Filip Barl
7669c325d7 Update node libraries (#2292)
* Upgraded Webpack 1.13 -> 2.2

* Made webpack.prodution.config.js work and updated yarn.lock

* Updated a lot of small dependencies.

* Upgraded React

* Bunch of small devDependencies updated.

* Fully updated devDependencies

* Updated optionalDependencies

* Updated everything except D3 zoom.

* Fixed linting error.

* Another update.

* Reverted materialize-css upgrade and applied new eslint rules

* Final fixes to webpack configs.

* Updated yarn.lock again.
2017-05-04 13:12:00 +02:00
David Kaltschmidt
85939d1248 Add /dev.html page w/ full redux dev tools
* normal page wont have store instrumented to stay lean
* reshuffled vendor deps to balance bundle sizes
2016-04-28 20:00:42 +02:00
David Kaltschmidt
96aae9bc99 Migrate from Flux to Redux
* better state visibility
* pure state changes
* state debug panel (show: crtl-h, move: ctrl-w)
2016-04-27 17:21:46 +02:00
Paul Bellamy
1539e668e7 Merge pull request #1290 from weaveworks/remove-container-control
Add control for removing stopped docker containers.
2016-04-22 14:13:40 +01:00
Tom Wilkie
901f46c5fc Report if newer version are availible in /api (#1366)
* Report if newer version are availible in /api

* Render version update hint in UI, next to version

* Fix lint
2016-04-22 10:25:00 +01:00
David Kaltschmidt
62ed88cf16 Close details panel when node was removed via control 2016-04-21 18:34:51 +02:00
David Kaltschmidt
d554f02ff7 Dont clear node details when closing a terminal
* a route event no longer clears the loaded node details

Fixes #1302
2016-04-14 18:02:03 +02:00
Simon Howe
7e5302afbb Nice and red and blinky ui label for broken plugins 2016-04-13 10:26:48 +02:00
Paul Bellamy
7632e0b3c5 Adding support for plugins, with basic example of iowait, and ebpf
Squash of:
* Include plugins in the report
* show plugin list in the UI
* moving metric and metadata templates into the probe reports
* update js for prime -> priority
* added retry to plugin handshake
* added iowait plugin
* review feedback
* plugin documentation
2016-04-12 17:22:14 +01:00
Simon Howe
0a9f26bb60 Adds a shortcut panel! 2016-04-07 18:33:56 +02:00
David Kaltschmidt
9586c23526 Apply topology options also to sub-topologies
Subtopologies inherit the applied options if the keys are the same.
The labels are still determined by the topology itself.

Fixes #1221
2016-04-06 17:33:47 +02:00
David Kaltschmidt
d520cffec7 Performance tweaks
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
2016-04-05 15:45:13 +02:00
Simon Howe
4ec8b97fef metrics-on-canvas review feedback updates.
- Refactor some things.
- Fixes heptagon moc rendering
- Experiment w/ duller colors.
2016-04-04 21:02:30 +02:00
Simon Howe
432ea920fe Terminology change from lock -> pin
In meetings etc the term pin is more often used.
2016-04-04 17:48:44 +02:00
Simon Howe
9d968a789b Tidying up MoC
- no rand ids, org code
- Fixes tests, no .includes in jest for now
- Small comment on moc stuff
- Patch up differences after MoC rebase
2016-04-04 17:48:44 +02:00
Simon Howe
1710db6262 Save locked metric in the url.
- introduces "metric type" so we can flick across topos and keep the
  "type" of metric selected. Cheating and using label as the type atm.
2016-04-04 17:48:44 +02:00
Simon Howe
f64908acf2 No metric selected by default.
- Fixes metric keyboard selection order
2016-04-04 17:48:43 +02:00
Simon Howe
1ad7c2c7a3 Return to mock-metrics for now.
- 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
2016-04-04 17:48:43 +02:00
Simon Howe
319fe31356 Show metrics that are available for displayed nodes.
- change color to bg
- show "x" to remove the metric.
- Small debugToolbar enhancements.
2016-04-04 17:48:41 +02:00
Simon Howe
cc3d392010 Adds < and > keyboard shortcuts for next/prev metric-on-canvas 2016-04-04 17:48:41 +02:00
Simon Howe
a104962aa2 Simple metric selection clicking!
Locks onto a metric after you mouseout.
2016-04-04 17:48:40 +02:00
Simon Howe
ef1c69eb2a Basic hover to select metric 2016-04-04 17:48:40 +02:00
Simon Howe
d31aadf7b1 Metrics on canvas!
- Adds metric on canvas support for more shapes
- More variation from the debug bar.
2016-04-04 17:48:40 +02:00
Paul Bellamy
80dc714c1e rename LabelMajor to Label 2016-03-29 14:00:11 +01:00
David Kaltschmidt
88abeb7168 Topology filter overhaul, still needs backend support 2016-03-29 13:26:49 +02:00
Simon Howe
1e4d6e829d Hide empty topo's that set hidden_if_empty=true. 2016-03-23 15:36:55 +01:00
David Kaltschmidt
f7ff70f913 Own adjacency was already included 2016-03-16 13:15:04 +01:00
David Kaltschmidt
9fa086d4b6 Getting both directions in edge highlighting 2016-03-16 13:09:37 +01:00
David Kaltschmidt
2ce5a39d45 Make node/edge highlighter objects immutable in app store
* refactor, no functionality changed
2016-03-16 11:29:40 +01:00
David Kaltschmidt
e4270f69b7 Upgraded dev deps and linted JS according to latest airbnb rules 2016-03-15 18:09:45 +01:00
David Kaltschmidt
658a38f40a Upgrade npm app dependencies 2016-03-15 13:45:57 +01:00
David Kaltschmidt
3f8a26d551 Make app-store's topologies object immutable
* refactoring, functionality should be the same
* adapted tests
2016-03-15 10:02:05 +01:00
David Kaltschmidt
4b4b27e6a8 Handle server disconnects gracefully in the UI
Keeps the scope UI's CPU usage low in the browser when the backend is
not reachable

* dont update app state when repeated errors come in
* dont update app state when websocket keeps failing
* adjust first loading text, and show icon to draw attention
2016-03-07 19:52:52 +01:00
David Kaltschmidt
d7507cf67c Pause Button
* pauses topology and details panel updates
* buffers requests
* un-pause plays back the buffered requests
* automatically un-pauses when topology is changed, or other node is
  clicked (then discards buffer)

Fixes #1025
2016-03-07 15:26:22 +01:00
David Kaltschmidt
9dafaef9a9 Force-relayout button
* new button in footer
* when clicked, forces a relayout that could help with degraded graphs
* sets a store flag that will be unset on next nodes delta update
* fixes #863
2016-02-24 15:55:36 +01:00
Simon Howe
2c626776a1 Grey out bottom of stack when there aren't 3 nodes in the stack
E.g. greying out the bottom 2/3 visual nodes if the stack actually only
has a single node.

- Server returns "node_count" for agg nodes.
2016-02-22 12:42:37 +01:00
David Kaltschmidt
476b7917e4 Let shape be determined by backend 2016-02-22 12:42:36 +01:00
Simon Howe
dcb621d7e6 Close terminal when we click "show node in its topology" 2016-01-29 13:14:47 +01:00
Simon Howe
5500c2f280 Fixes harmless exception: hitting esc with no cards open. 2016-01-29 13:14:08 +01:00
Simon Howe
bac56c6c03 Fixes terminal being closed when its node's card is closed. 2016-01-29 13:13:33 +01:00
Simon Howe
6edbd49791 Fixes pipe status when reloading page.
Correctly load in state from the url.
2016-01-21 21:15:54 +01:00
Simon Howe
d5cf3d2c59 Fixes exec/attach from the 2nd+ card.
- Also fixes strange issue where hitting ESC while a terminal was
  active, would update the route, reload the top card, and break the
  terminal connection status.
2016-01-21 16:57:22 +01:00
Simon Howe
0785d5393a Fixes pipes again
- Treat control objects that come back from the server as little
  black boxes.
- Pass our local client nodeId around more instead, use that for
  comparisons etc, (vs. inspecting the control object and doing brittle
  magic w/ the ids).
2016-01-19 16:48:35 +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
Simon
359ec29c09 Merge pull request #797 from weaveworks/758-independent-node-controls
Fix node controls so they behave independently across nodes
2016-01-19 14:41:37 +01:00
Simon Howe
3c5e357150 Highlight a single unconnected node on hover.
Wasn't happening before.
2016-01-13 17:01:37 +01:00
Simon Howe
5b390994b8 Fix node controls so they behave independently across nodes
If one node was busy performing an action, any other nodes controls
would also be in a 'blocked and waiting' state.
2016-01-05 19:17:10 +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
0c5331d33c Render hostname in UI 2015-12-04 15:45:16 +01: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