Commit Graph

395 Commits

Author SHA1 Message Date
Filip Barl
8f2d47ce4e Time travel redesign (#2651)
* Initial top level control.

* Added the jump buttons.

* Tiny styling adjustments.

* Massive renaming.

* Pause info

* Added slider marks.

* Improved messaging.

* Freeze all updates when paused.

* Repositioned for Configure button.

* Improved the flow.

* Working browsing through slider.

* Small styling.

* Hide time travel button behind the feature flag.

* Fixed actions.

* Elements positioning corner cases.

* Removed nodes delta buffering code.

* Fixed the flow.

* Fixed almost all API call cases.

* Final touches

* Fixed the tests.

* Fix resource view updates when time travelling.

* Added some comments.

* Addressed some of @foot's comments.
2017-07-06 16:06:55 +02:00
Roland Schilter
cf8a95c878 Merge pull request #2683 from weaveworks/table-overflow-plus-one
Show table overflow only if limit exceeded by 2+
2017-07-06 15:50:11 +02:00
Roland Schilter
dfda3e0b0b Show table overflow only if limit exceeded by 2+
Having to toggle a +1 feels weird while that +1 takes up
the same vertical space as displaying that row.
2017-07-06 13:56:03 +02:00
Simon Howe
ee55d17b0e Review feedback on supporting multiple relatives in node-grid columns 2017-07-04 10:41:41 +02:00
Simon Howe
ffd531e44a Show multiple relatives in the nodes-grid view 2017-07-04 10:41:41 +02:00
Mike Lang
383ace4d7e Replace 'none' id for the none option in union types with ''
In union option groups, the list of selected ids is encoded as a comma-delimited string.
For example, if 'foo' and 'bar' are selected, the value 'foo,bar' is sent, ie ["foo", "bar"] -> "foo,bar"
Under this scheme, with nothing selected, the empty string should be sent, ie. [] -> ""

Before this change, the frontend code called the "none option" by id 'none'.
There were several issues with this:
* The frontend would send 'none' when nothing was selected, not ''. The backend ignored this as it ignores
  junk values in the options, treating them as though they hadn't been given.
* The backend would attempt to set the default value of an option to "nothing selected", ie. [], by sending ''.
  The frontend would interpret this as nothing selected, *not even the 'none' option*, which caused a visual bug.
* Everything would break if one of the legitimate options had the id 'none', which could easily happen eg.
  if a user had a 'none' k8s namespace. This is perhaps an unusual name, but our code shouldn't break when
  a particular arbitary string is used as an input.

With this change, the none option is called '', which fixes all the above problems:
* The frontend encodes [''] as ''
* The frontend decodes '' as [''], and therefore shows the '' option as selected
* The string '' is not a valid k8s namespace name and is a reasonable "prohibited value" for all other use cases.
  The backend already couldn't handle a value with this id correctly prior to this change anyway.
2017-06-21 15:03:18 -07:00
Filip Barl
eb64d3f09b Make API calls with time travel timestamp (#2600)
* Node details fetching reports at proper timestamp.

* Corrected all the relevant timestamps in the UI.

* Renamed some state variables.

* Time travel works for topologies list.

* Added a whole screen overlay for time travel.

* Polished the backend.

* Make time travel work also with the Resource View.

* Fixed the jest tests.

* Fixed the empty view message for resource view.

* Some naming polishing.

* Addressed the comments.
2017-06-20 12:31:22 +02:00
Filip Barl
fd8f9be9cb Fix the table sorting order bug for numerical values (#2587)
* Fix the table sorting order bug for numerical values.

* Addressed @davkal's comment.
2017-06-19 12:42:33 +02:00
Filip Barl
c4e0be45de Moved pause button back to footer. (#2585) 2017-06-14 11:39:45 +02:00
Filip Barl
83f557b638 Don't display the empty message when nodes are displayed. (#2597) 2017-06-14 11:03:54 +02:00
Filip Barl
b6dfe25499 Time travel control (#2524)
* Hacky working prototype.

* Operate with time.Duration offset instead of fixed timestamp.

* Polished the backend code.

* Made a nicer UI component.

* Small refactorings of the websockets code.

* Fixed the backend tests.

* Better websocketing and smoother transitions

* Small styling refactoring.

* Detecting empty topologies.

* Improved error messaging.

* Addressed some of David's comments.

* Moved nodesDeltaBuffer to a global state to fix the paused status rendering bug.

* Small styling changes

* Changed the websocket global state variables a bit.

* Polishing & refactoring.

* More polishing.

* Final refactoring.

* Addressed a couple of bugs.

* Hidden the timeline control behind Cloud context and a feature flag.

* Addressed most of @davkal's comments.

* Added mixpanel tracking.
2017-06-12 11:22:17 +02:00
Filip Barl
a585514d90 Hide container images status for pseudo nodes. (#2520) 2017-05-16 15:51:57 +01:00
Filip Barl
5935a32d0a Canvas zoom control (#2513)
* Added a zoom slider control in the bottom-right corner.

* Made the control vertical and added the buttons.

* Adjusted the styles and borders.

* Trying to fix Webpack

* Hide zoom control when there is no content.

* Polished the code.
2017-05-15 11:49:12 +02:00
Filip Barl
10b276c28a Use prop-types library to silence PropTypes deprecation warning (#2498)
* Use prop-types library to fix the deprecation warning.

* Updated weaveworks-ui-components version.
2017-05-05 18:23:43 +02:00
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
jpellizzari
3ec7cc82e6 Added service images widget 2017-05-03 10:31:25 -07:00
David Kaltschmidt
941f51645b Adds a default list to topology options if previous options are missing
This can happen when a new option is introduced while using an old URL
state.

Fixes #2489
2017-05-02 15:31:54 +02:00
Filip Barl
206a88df41 Calculate viewport dimensions from the scope-app div (#2473)
* Calculate viewport dimensions from the scope-app div.

* Addressed @foot's comments.
2017-04-27 15:36:22 +02:00
Filip Barl
65b9b48b53 Added mixpanel tracking for some basic events (#2462)
* Added mixpanel tracking for bunch of events.

* Changed hitEnter action to pinSearch.

* Moved all the event tracking out of app-actions.js

* Addressed @foot's comment.

* Added more keypress events tracking.

* Disable 'r' keyboard shortcut when Resource View is disabled
2017-04-27 14:26:07 +02:00
Filip Barl
23fb14d0be Polished the metric selection logic (#2468)
* Polished the metric selection code

* Fixed hovering advantage over pinning.
2017-04-26 16:18:42 +02:00
Filip Barl
c7bf7df975 Fixed view mode switching keyboard shortcuts (#2471)
* Replaced toggleGridMode with working actions.

* Addressed @foot's comment.
2017-04-26 14:26:47 +02:00
David Kaltschmidt
11d9903d8f Remove zoom on double-click
This was confusing in demos at KubeCon and DockerCon this year, as
clicking on nodes kept the UI zooming in.
Plus, when asked, users had no idea that double-click meant zoom in.

Fixes weaveworks/service-ui#453
2017-04-21 17:00:09 +02:00
Filip Barl
9c566562c9 Made view mode selector responsive. (#2421) 2017-04-07 15:04:38 +02:00
Filip Barl
d71fc313b6 Not showing metric selector when empty. (#2426) 2017-04-07 12:36:21 +02:00
Filip Barl
60629d3325 Fix the click origin of the details panel in the table mode. (#2423) 2017-04-05 16:27:42 +02:00
Filip Barl
43720bd7c7 Show sublabel in tooltip for Internet nodes in table view mode (#2410)
* Show sublabel in tooltip for Internet nodes in table view.

* Improves fake internet node from debug-toolbar.
2017-03-28 16:42:17 +02:00
Filip Barl
3e039a3143 Hide the opened help panel when clicking on the search bar icon. (#2406) 2017-03-28 13:04:41 +02:00
Jordan Pellizzari
1f390567d2 Merge pull request #2403 from weaveworks/2402-download-json
Fix for incorrect report.json URL in cloud
2017-03-27 14:12:36 -07:00
Filip Barl
4158fb1474 Keep the resource metric pinned on mouse out 2017-03-27 13:54:04 -07:00
jpellizzari
8e20ae5ac2 Added logic to default to noneLabel when no options are selected 2017-03-27 12:53:11 -07:00
jpellizzari
9bccc9918e Added noneLabel button to topology options 2017-03-27 12:53:10 -07:00
jpellizzari
bdea399a5a Fix for incorrect report.json URL in cloud 2017-03-27 12:32:30 -07:00
jpellizzari
fff47ee609 Added 'addOrRemove' flag to change topology action 2017-03-27 10:06:56 -07:00
jpellizzari
4612738580 Added comma-separated URL params 2017-03-27 10:06:56 -07:00
jpellizzari
454acdd999 Changed option value to list 2017-03-27 10:05:49 -07:00
jpellizzari
828d50fba0 unit test added 2017-03-27 10:04:28 -07:00
Filip Barl
69fd397217 Initial version of the resource view (#2296)
* Added resource view selector button

* Showing resource boxes in the resource view

* Crude CPU resource view prototype

* Improved the viewMode state logic

* Extracted zooming into a separate wrapper component

* Split the layout selectors between graph-view and resource-view

* Proper zooming logic for the resource view

* Moved all node networks utils to selectors

* Improved the zoom caching logic

* Further refactoring of selectors

* Added sticky labels to the resource boxes

* Added panning translation limits in the resource view

* Renamed GridModeSelector -> ViewModeSelector

* Polished the topology resource view selection logic

* Search bar hidden in the resource view

* Added per-layer topology names to the resource view

* Made metric selectors work for the resource view

* Adjusted the viewport selectors

* Renamed viewport selector to canvas (+ maximal zoom fix)

* Showing more useful metric info in the resource box labels

* Fetching only necessary nodes for the resource view

* Refactored the resource view layer component

* Addressed first batch UI comments (from the Scope meeting)

* Switch to deep zooming transform in the resource view to avoid SVG precision errors

* Renamed and moved resource view components

* Polished all the resource view components

* Changing the available metrics selection

* Improved and polished the state transition logic for the resource view

* Separated zoom limits from the zoom active state

* Renaming and bunch of comments

* Addressed all the UI comments (@davkal + @fons)

* Made graph view selectors independent from resource view selectors
2017-03-24 14:51:53 +01:00
Jordan Pellizzari
118280a2a8 Merge pull request #2361 from weaveworks/change-instance-fix
Clear client polling and nodes state on dismount
2017-03-22 08:37:01 -07:00
jpellizzari
0f86ad1bed Prevent client polling after shutdown 2017-03-20 18:35:04 -07:00
Filip Barl
7583bed567 Hide 'Save canvas as SVG' button in Table View 2017-03-20 14:56:10 +01:00
jpellizzari
d775020794 Added logic to turn off network requests when Scope dismounts 2017-03-01 14:03:27 -08:00
Filip Barl
19202a2e44 Fixed the selectors performance leaks. 2017-03-01 12:14:36 +01:00
Filip Barl
11ce5638c5 Moved nodes-chart-layout.
Moved nodes-chart-zoom.

Moved zoomCache to global state.

Moved nodes-chart-focus.

Fixed some bugs and polished the code.

Keeping track of topology options in zoomCache.

Fixed forceRelayout and circular layout.

Unified graph complexity heuristic criterion.
2017-03-01 12:14:36 +01:00
Jordan Pellizzari
5c7d2843f7 Merge pull request #2256 from weaveworks/contrast-as-component
Load contrast stylesheet
2017-02-22 10:03:19 -08:00
jpellizzari
f2f474ac80 Change to load contrast theme dynamically 2017-02-21 10:29:43 -08:00
Filip Barl
9ac546c8b9 Fix details panel links. 2017-02-21 18:40:45 +01:00
Filip Barl
e5c655aa88 Addressed the comments. 2017-02-20 11:10:44 +01:00
Filip Barl
6d0066cd38 Polished the selectors code and fixed failing tests. 2017-02-20 10:58:26 +01:00
Filip Barl
b9ba83ffca Moved the node networks computation to selectors. 2017-02-20 10:58:26 +01:00
Filip Barl
5bd8e8f690 Renamed 'subLabel' to 'labelMinor' and removed 'node_count' property. 2017-02-20 10:58:26 +01:00