Commit Graph

70 Commits

Author SHA1 Message Date
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
bf9b5bf947 Procedural color creation for nodes
* color hue is based on the first 2 letters of node rank
* color lightness is based on the first 2 letters of node label
2015-11-20 14:47:05 +01:00
David Kaltschmidt
8eb4be8d4f Added tests for single nodes layout 2015-11-17 22:30:53 +01:00
David Kaltschmidt
8691b04d66 Separate single nodes to render them differently
* Layout single nodes next to/below graph
* fixes #375
2015-11-17 15:24:34 +01:00
David Kaltschmidt
9fb3099a89 Dont scale graph on resize, only selected nodes 2015-11-12 17:22:33 +01:00
David Kaltschmidt
117f8b8444 Fix sublabel sizing 2015-11-12 16:18:19 +01:00
David Kaltschmidt
b6905d136d Undo pan/zoom after unselecting a node 2015-11-12 15:00:06 +01:00
David Kaltschmidt
3ca7415d47 Always center selected node
* dont allow panning while node is selected
* Shift nodes, not canvas on circling selection
* scale nodes on window resize
* Scale selected node to viewable size
2015-11-12 13:59:26 +01:00
David Kaltschmidt
7d5cc11d7e Enable linter for js test files 2015-11-11 19:09:40 +01:00
David Kaltschmidt
59064e8a2d Upgrade to Babel 6 2015-11-11 18:42:48 +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
abcb94b1f1 UI for controls.
- Make backend address configurable via env variable
- `BACKEND_HOST=1.2.3.4:4040 npm start` points the frontend to the app on that server. Just for development
- Render control icons
  - removed close x for details panel
  - added control icons in its space
  - closing of panel still works by clicking on same node, or background
- Dont allow control while pending
- Render and auto-dismiss control error
- Make tests pass
2015-11-06 17:44:28 +00:00
David Kaltschmidt
af175b62bc Review feedback 2015-11-05 11:02:18 +01:00
David Kaltschmidt
f7aad21016 Use edge points to determine changed endpoints 2015-11-05 11:00:31 +01:00
David Kaltschmidt
6cf93f8e17 Prevent dangling reused edge 2015-11-05 11:00:31 +01:00
David Kaltschmidt
1831e07224 Track trivial layout runs 2015-11-05 11:00:31 +01:00
David Kaltschmidt
413220db6b Fixed bug in unseen nodes detection 2015-11-05 11:00:31 +01:00
David Kaltschmidt
1fe036ab6a Simplified dance heuristics 2015-11-05 11:00:31 +01:00
David Kaltschmidt
83d7a87d43 dont relayout when node dissappears 2015-11-05 11:00:31 +01:00
David Kaltschmidt
47ba0ff2a4 Skip layout when only edges changed 2015-11-05 11:00:31 +01:00
David Kaltschmidt
7306e8fb5f Rewrote nodes-layout to use immutablejs 2015-11-05 11:00:31 +01:00
David Kaltschmidt
e4da515fa1 Refactored doLayout signature 2015-11-05 10:58:13 +01:00
David Kaltschmidt
3d08b15430 JS test framework for node layout 2015-11-05 10:58:13 +01:00
David Kaltschmidt
5c086aeeb3 show message if topology is empty 2015-11-03 18:27:23 +01:00
David Kaltschmidt
2d7e546ae5 Render filtered node count in status bar
* always set updated topology object when received
* track whether route was set on initial load
* removed connection count from status bar (was not deemed important)
* fixed issue where topology option changes did not affect details pane
* only show filtered nodes when count > 0
* clear nodes graph when empty topology is loaded
* also prevent JS error if nodes are hovered over that should be gone
* fixed options sync issue between graph and status bar
* implemented topology options with immutable DS
2015-09-29 08:51:56 +00:00
David Kaltschmidt
a3597c9639 Fix zooming and autoshift
* track panning to not trigger mouse up event
* offset angle for circle
* fixed panning/zooming
* center the center node if radius bigger than screen
2015-09-21 11:44:26 +02:00
David Kaltschmidt
808fc55832 filter loopback adjacents on radial layout
needed to adjust size of nodes, too
2015-09-18 18:08:35 +02:00
David Kaltschmidt
6e3883d07e Dont shift canvas after it has been autoshifted 2015-09-18 18:07:52 +02:00
David
79bf8badd7 Merge pull request #501 from weaveworks/495-cover-nodes
Dont cover other nodes on radial layout
2015-09-18 18:07:00 +02:00
David Kaltschmidt
1cce7e514e animate node zoom on focus 2015-09-18 17:58:34 +02:00
David Kaltschmidt
5b4e084c01 Dont cover other nodes on radial layout
* shift center of radial layout a bit
* shrink blurred nodes
* blow up focused nodes a bit
2015-09-16 21:05:12 +02:00
David Kaltschmidt
438e25df6f s/topology/view/ 2015-09-16 16:29:23 +02:00
David Kaltschmidt
74840169a5 changed topo max nodes text, fade in topo 2015-09-16 15:39:53 +02:00
David Kaltschmidt
7f4673ae4b Show message in UI when topology too big to render 2015-09-16 12:53:33 +02:00
David Kaltschmidt
56d040e3ee WIP track layout aborts 2015-09-16 12:23:31 +02:00
David Kaltschmidt
c1523863c4 Close details on canvas click 2015-09-16 12:12:51 +02:00
David Kaltschmidt
05e21a9d42 take zoom scale into account when shifting canvas 2015-09-16 11:48:09 +02:00
David Kaltschmidt
7b9e1e2867 add node radius to circle radius for canvas shift 2015-09-16 11:30:35 +02:00
David
f74e286700 Merge pull request #473 from weaveworks/324-highlight-selected
Highlight selected node
2015-09-14 14:49:13 +02:00
David Kaltschmidt
6191999c9e shift canvas up/down if node circle off canvas 2015-09-11 16:39:00 +02:00
David Kaltschmidt
bc7e8f27fc animate shifting of canvas 2015-09-11 16:26:22 +02:00
David Kaltschmidt
afbd1397df shift canvas if selected nodes are hidden 2015-09-11 15:41:26 +02:00
David Kaltschmidt
31f7a97016 setState only once in componentWillReceiveProps
setstate does not set this.state immediately, so successive function
calls cant rely on it
2015-09-11 14:42:10 +02:00
David Kaltschmidt
6c5c2c2c94 ignore previous node state/flush states on topo change 2015-09-11 11:03:59 +02:00
David Kaltschmidt
72c433eb86 make sure circular layouts lots of nodes spreadout 2015-09-10 15:55:07 +02:00
David Kaltschmidt
b49e1f55d2 Use full adjacency also for mouseover nodes 2015-09-10 15:38:03 +02:00
David Kaltschmidt
2c6c7f1995 Set beginning and end points to node coordinates
This is to ignore node bounding box which sometimes leads to
disconnected edges.
2015-09-10 15:17:46 +02:00
David Kaltschmidt
f764e4415e respect both ways of adjacency for selected node 2015-09-09 18:26:44 +02:00
David Kaltschmidt
2c554fe273 blur nodes that not selected nor adjacent 2015-09-09 18:12:02 +02:00
David Kaltschmidt
f0a5fcc439 highlight selected node and circle adjacent nodes 2015-09-09 16:36:33 +02:00