From a1510b43e07d1033b36e3c0f374182a5666a3299 Mon Sep 17 00:00:00 2001 From: Roland Schilter Date: Fri, 4 May 2018 15:45:17 -0700 Subject: [PATCH 1/3] Sentence cased text everywhere Follows Weave Cloud's direction of sentence case on most things. --- app/api_topologies.go | 24 +++++++-------- app/api_topologies_test.go | 2 +- client/app/scripts/charts/nodes-grid.js | 3 +- .../node-details/node-details-image-status.js | 2 +- client/app/styles/_base.scss | 29 ------------------- probe/awsecs/reporter.go | 12 ++++---- probe/docker/reporter.go | 14 ++++----- probe/host/reporter.go | 6 ++-- probe/kubernetes/reporter.go | 18 ++++++------ probe/overlay/weave.go | 8 ++--- probe/process/reporter.go | 2 +- render/detailed/node.go | 2 +- render/detailed/node_test.go | 4 +-- render/detailed/summary_test.go | 4 +-- 14 files changed, 51 insertions(+), 79 deletions(-) diff --git a/app/api_topologies.go b/app/api_topologies.go index 5618a6d9de..25df445550 100644 --- a/app/api_topologies.go +++ b/app/api_topologies.go @@ -43,8 +43,8 @@ var ( ID: "pseudo", Default: "hide", Options: []APITopologyOption{ - {Value: "show", Label: "Show Unmanaged", filter: nil, filterPseudo: false}, - {Value: "hide", Label: "Hide Unmanaged", filter: render.IsNotPseudo, filterPseudo: true}, + {Value: "show", Label: "Show unmanaged", filter: nil, filterPseudo: false}, + {Value: "hide", Label: "Hide unmanaged", filter: render.IsNotPseudo, filterPseudo: true}, }, } ) @@ -151,8 +151,8 @@ func MakeRegistry() *Registry { Default: "application", Options: []APITopologyOption{ {Value: "all", Label: "All", filter: nil, filterPseudo: false}, - {Value: "system", Label: "System Containers", filter: render.IsSystem, filterPseudo: false}, - {Value: "application", Label: "Application Containers", filter: render.IsApplication, filterPseudo: false}}, + {Value: "system", Label: "System containers", filter: render.IsSystem, filterPseudo: false}, + {Value: "application", Label: "Application containers", filter: render.IsApplication, filterPseudo: false}}, }, { ID: "stopped", @@ -167,8 +167,8 @@ func MakeRegistry() *Registry { ID: "pseudo", Default: "hide", Options: []APITopologyOption{ - {Value: "show", Label: "Show Uncontained", filter: nil, filterPseudo: false}, - {Value: "hide", Label: "Hide Uncontained", filter: render.IsNotPseudo, filterPseudo: true}, + {Value: "show", Label: "Show uncontained", filter: nil, filterPseudo: false}, + {Value: "hide", Label: "Hide uncontained", filter: render.IsNotPseudo, filterPseudo: true}, }, }, } @@ -178,8 +178,8 @@ func MakeRegistry() *Registry { ID: "unconnected", Default: "hide", Options: []APITopologyOption{ - {Value: "show", Label: "Show Unconnected", filter: nil, filterPseudo: false}, - {Value: "hide", Label: "Hide Unconnected", filter: render.IsConnected, filterPseudo: false}, + {Value: "show", Label: "Show unconnected", filter: nil, filterPseudo: false}, + {Value: "hide", Label: "Hide unconnected", filter: render.IsConnected, filterPseudo: false}, }, }, } @@ -236,7 +236,7 @@ func MakeRegistry() *Registry { id: kubeControllersID, parent: podsID, renderer: render.KubeControllerRenderer, - Name: "controllers", + Name: "Controllers", Options: []APITopologyOptionGroup{unmanagedFilter}, HideIfEmpty: true, }, @@ -244,7 +244,7 @@ func MakeRegistry() *Registry { id: servicesID, parent: podsID, renderer: render.PodServiceRenderer, - Name: "services", + Name: "Services", Options: []APITopologyOptionGroup{unmanagedFilter}, HideIfEmpty: true, }, @@ -260,14 +260,14 @@ func MakeRegistry() *Registry { id: ecsServicesID, parent: ecsTasksID, renderer: render.ECSServiceRenderer, - Name: "services", + Name: "Services", Options: []APITopologyOptionGroup{unmanagedFilter}, HideIfEmpty: true, }, APITopologyDesc{ id: swarmServicesID, renderer: render.SwarmServiceRenderer, - Name: "services", + Name: "Services", Rank: 3, Options: []APITopologyOptionGroup{unmanagedFilter}, HideIfEmpty: true, diff --git a/app/api_topologies_test.go b/app/api_topologies_test.go index a1b44cbd1c..c8d117914c 100644 --- a/app/api_topologies_test.go +++ b/app/api_topologies_test.go @@ -51,7 +51,7 @@ func TestAPITopology(t *testing.T) { } // TODO: add ECS nodes in report fixture - if topology.Name == "Tasks" || topology.Name == "services" { + if topology.Name == "Tasks" || topology.Name == "Services" { continue } diff --git a/client/app/scripts/charts/nodes-grid.js b/client/app/scripts/charts/nodes-grid.js index 6bff51b29e..b90bd8a74f 100644 --- a/client/app/scripts/charts/nodes-grid.js +++ b/client/app/scripts/charts/nodes-grid.js @@ -2,6 +2,7 @@ import React from 'react'; import { connect } from 'react-redux'; import { List as makeList, Map as makeMap } from 'immutable'; +import capitalize from 'lodash/capitalize'; import NodeDetailsTable from '../components/node-details/node-details-table'; import { clickNode, sortOrderChanged } from '../actions/app-actions'; @@ -47,7 +48,7 @@ function getColumns(nodes) { .toList() .flatMap((n) => { const metadata = (n.get('parents') || makeList()) - .map(m => makeMap({ id: m.get('topologyId'), label: m.get('topologyId') })); + .map(m => makeMap({ id: m.get('topologyId'), label: capitalize(m.get('topologyId')) })); return metadata; }) .toSet() diff --git a/client/app/scripts/components/node-details/node-details-image-status.js b/client/app/scripts/components/node-details/node-details-image-status.js index 167333691d..bc51f57afb 100644 --- a/client/app/scripts/components/node-details/node-details-image-status.js +++ b/client/app/scripts/components/node-details/node-details-image-status.js @@ -91,7 +91,7 @@ class NodeDetailsImageStatus extends React.PureComponent { return (
- Container Image Status + Container image status {containers &&
Date: Tue, 15 May 2018 11:39:31 -0700 Subject: [PATCH 2/3] More space between sorter caret and label --- client/app/styles/_base.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/app/styles/_base.scss b/client/app/styles/_base.scss index 5b26c18a0a..53d53a0ec5 100644 --- a/client/app/styles/_base.scss +++ b/client/app/styles/_base.scss @@ -1013,7 +1013,7 @@ a { } &-sorter { - margin: 0 0.25em; + margin: 0 0.35em; } &:first-child { From 46f87114fd756f64a7c773ff405ca7ae86b4024f Mon Sep 17 00:00:00 2001 From: Roland Schilter Date: Tue, 15 May 2018 13:43:18 -0700 Subject: [PATCH 3/3] Use full topology name for table header --- client/app/scripts/charts/nodes-grid.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/client/app/scripts/charts/nodes-grid.js b/client/app/scripts/charts/nodes-grid.js index b90bd8a74f..af81b37f66 100644 --- a/client/app/scripts/charts/nodes-grid.js +++ b/client/app/scripts/charts/nodes-grid.js @@ -8,6 +8,7 @@ import NodeDetailsTable from '../components/node-details/node-details-table'; import { clickNode, sortOrderChanged } from '../actions/app-actions'; import { shownNodesSelector } from '../selectors/node-filters'; import { trackAnalyticsEvent } from '../utils/tracking-utils'; +import { findTopologyById } from '../utils/topology-utils'; import { TABLE_VIEW_MODE } from '../constants/naming'; import { windowHeightSelector } from '../selectors/canvas'; @@ -19,7 +20,15 @@ const IGNORED_COLUMNS = ['docker_container_ports', 'docker_container_id', 'docke 'docker_container_command', 'docker_container_networks']; -function getColumns(nodes) { +function topologyLabel(topologies, id) { + const topology = findTopologyById(topologies, id); + if (!topology) { + return capitalize(id); + } + return topology.get('fullName'); +} + +function getColumns(nodes, topologies) { const metricColumns = nodes .toList() .flatMap((n) => { @@ -44,11 +53,12 @@ function getColumns(nodes) { .toList() .sortBy(m => m.get('label')); + const relativesColumns = nodes .toList() .flatMap((n) => { const metadata = (n.get('parents') || makeList()) - .map(m => makeMap({ id: m.get('topologyId'), label: capitalize(m.get('topologyId')) })); + .map(m => makeMap({ id: m.get('topologyId'), label: topologyLabel(topologies, m.get('topologyId')) })); return metadata; }) .toSet() @@ -109,7 +119,7 @@ class NodesGrid extends React.Component { render() { const { - nodes, gridSortedBy, gridSortedDesc, searchNodeMatches, searchQuery, windowHeight + nodes, gridSortedBy, gridSortedDesc, searchNodeMatches, searchQuery, windowHeight, topologies } = this.props; const height = this.tableRef ? windowHeight - this.tableRef.getBoundingClientRect().top - 30 : 0; @@ -132,7 +142,7 @@ class NodesGrid extends React.Component { .toList() .filter(n => !(searchQuery && searchNodeMatches.get(n.get('id'), makeMap()).isEmpty())) .toJS(), - columns: getColumns(nodes) + columns: getColumns(nodes, topologies) }; return ( @@ -168,6 +178,7 @@ function mapStateToProps(state) { searchQuery: state.get('searchQuery'), selectedNodeId: state.get('selectedNodeId'), windowHeight: windowHeightSelector(state), + topologies: state.get('topologies'), }; }