Merge pull request #1912 from weaveworks/1844-visually-duplicate-rows

Add label_minor to tooltips in connections table
This commit is contained in:
Simon
2016-10-19 15:03:38 +02:00
committed by GitHub
9 changed files with 42 additions and 33 deletions

View File

@@ -66,7 +66,7 @@ function renderIdCell(props) {
<div style={iconStyle}><i className="fa fa-square" /></div>
<div className="truncate">
{props.label} {showSubLabel &&
<span className="nodes-grid-label-minor">{props.label_minor}</span>}
<span className="nodes-grid-label-minor">{props.labelMinor}</span>}
</div>
</div>
);

View File

@@ -54,7 +54,7 @@ const deltaAdd = (
node_count: nodeCount,
id: name,
label: name,
label_minor: name,
labelMinor: name,
latest: {},
origins: [],
rank: name,

View File

@@ -18,17 +18,20 @@ class NodeDetailsTableNodeLink extends React.Component {
}
render() {
if (this.props.linkable) {
const { label, labelMinor, linkable } = this.props;
const title = !labelMinor ? label : `${label} (${labelMinor})`;
if (linkable) {
return (
<span className="node-details-table-node-link" title={this.props.label}
<span className="node-details-table-node-link" title={title}
onClick={this.handleClick}>
{this.props.label}
{label}
</span>
);
}
return (
<span className="node-details-table-node" title={this.props.label}>
{this.props.label}
<span className="node-details-table-node" title={title}>
{label}
</span>
);
}

View File

@@ -30,7 +30,7 @@ describe('RootReducer', () => {
adjacency: ['n1', 'n2'],
pseudo: undefined,
label: undefined,
label_minor: undefined,
labelMinor: undefined,
filtered: false,
metrics: undefined,
node_count: undefined,
@@ -43,7 +43,7 @@ describe('RootReducer', () => {
adjacency: undefined,
pseudo: undefined,
label: undefined,
label_minor: undefined,
labelMinor: undefined,
filtered: false,
metrics: undefined,
node_count: undefined,

View File

@@ -84,7 +84,7 @@ export const dataNodesSelector = createSelector(
id,
label: node.get('label'),
pseudo: node.get('pseudo'),
subLabel: node.get('label_minor'),
subLabel: node.get('labelMinor'),
nodeCount: node.get('node_count'),
metrics: node.get('metrics'),
rank: node.get('rank'),

View File

@@ -6,7 +6,7 @@ import { slugify } from './string-utils';
// topolevel search fields
const SEARCH_FIELDS = makeMap({
label: 'label',
sublabel: 'label_minor'
sublabel: 'labelMinor'
});
const COMPARISONS = makeMap({

View File

@@ -43,11 +43,12 @@ type ConnectionsSummary struct {
// Connection is a row in the connections table.
type Connection struct {
ID string `json:"id"` // ID of this element in the UI. Must be unique for a given ConnectionsSummary.
NodeID string `json:"nodeId"` // ID of a node in the topology. Optional, must be set if linkable is true.
Label string `json:"label"`
Linkable bool `json:"linkable"`
Metadata []report.MetadataRow `json:"metadata,omitempty"`
ID string `json:"id"` // ID of this element in the UI. Must be unique for a given ConnectionsSummary.
NodeID string `json:"nodeId"` // ID of a node in the topology. Optional, must be set if linkable is true.
Label string `json:"label"`
LabelMinor string `json:"labelMinor,omitempty"`
Linkable bool `json:"linkable"`
Metadata []report.MetadataRow `json:"metadata,omitempty"`
}
type connectionsByID []Connection
@@ -128,13 +129,15 @@ func (c *connectionCounters) rows(r report.Report, ns report.Nodes, includeLocal
// MakeNodeID(ns[row.remoteNodeID]). As we don't need the whole summary.
summary, _ := MakeNodeSummary(r, ns[row.remoteNodeID])
connection := Connection{
ID: fmt.Sprintf("%s-%s-%s-%s", row.remoteNodeID, row.remoteAddr, row.localAddr, row.port),
NodeID: summary.ID,
Label: summary.Label,
Linkable: true,
ID: fmt.Sprintf("%s-%s-%s-%s", row.remoteNodeID, row.remoteAddr, row.localAddr, row.port),
NodeID: summary.ID,
Label: summary.Label,
LabelMinor: summary.LabelMinor,
Linkable: true,
}
if row.remoteAddr != "" {
connection.Label = row.remoteAddr
connection.LabelMinor = ""
}
if includeLocal {
connection.Metadata = append(connection.Metadata,

View File

@@ -153,10 +153,11 @@ func TestMakeDetailedHostNode(t *testing.T) {
Columns: detailed.NormalColumns,
Connections: []detailed.Connection{
{
ID: connectionID(fixture.ServerHostNodeID, ""),
NodeID: fixture.ServerHostNodeID,
Label: "server",
Linkable: true,
ID: connectionID(fixture.ServerHostNodeID, ""),
NodeID: fixture.ServerHostNodeID,
Label: "server",
LabelMinor: "hostname.com",
Linkable: true,
Metadata: []report.MetadataRow{
{
ID: "port",
@@ -259,10 +260,11 @@ func TestMakeDetailedContainerNode(t *testing.T) {
Columns: detailed.NormalColumns,
Connections: []detailed.Connection{
{
ID: connectionID(fixture.ClientContainerNodeID, ""),
NodeID: fixture.ClientContainerNodeID,
Label: "client",
Linkable: true,
ID: connectionID(fixture.ClientContainerNodeID, ""),
NodeID: fixture.ClientContainerNodeID,
Label: "client",
LabelMinor: "client.hostname.com",
Linkable: true,
Metadata: []report.MetadataRow{
{
ID: "port",
@@ -375,10 +377,11 @@ func TestMakeDetailedPodNode(t *testing.T) {
Columns: detailed.NormalColumns,
Connections: []detailed.Connection{
{
ID: connectionID(fixture.ClientPodNodeID, ""),
NodeID: fixture.ClientPodNodeID,
Label: "pong-a",
Linkable: true,
ID: connectionID(fixture.ClientPodNodeID, ""),
NodeID: fixture.ClientPodNodeID,
Label: "pong-a",
LabelMinor: "1 container",
Linkable: true,
Metadata: []report.MetadataRow{
{
ID: "port",

View File

@@ -45,7 +45,7 @@ type Column struct {
type NodeSummary struct {
ID string `json:"id"`
Label string `json:"label"`
LabelMinor string `json:"label_minor"`
LabelMinor string `json:"labelMinor"`
Rank string `json:"rank"`
Shape string `json:"shape,omitempty"`
Stack bool `json:"stack,omitempty"`