NIFI-4764: Add tooltips to status bar icons

add tooltip to process groups
cleanup
This closes #2394
This commit is contained in:
Marco Gaido 2018-01-10 17:00:55 +01:00 committed by Matt Gilman
parent bcac2766bc
commit 39a484b631
No known key found for this signature in database
GPG Key ID: DF61EC19432AEE37
3 changed files with 69 additions and 29 deletions

View File

@ -149,7 +149,13 @@ image::nifi-toolbar-components.png["NiFi Components Toolbar"]
The Components Toolbar runs across the top left portion of your screen. It consists of the components you can drag onto the
canvas to build your dataflow. Each component is described in more detail in link:building-dataflow.html[Building a Dataflow].
The Status Bar is under the Components Toolbar. The Status bar provides information about the number of threads that are currently active in the flow, the amount of data that currently exists in the flow, how many Remote Process Groups exist on the canvas in each state (Transmitting, Not Transmitting), how many Processors exist on the canvas in each state (Stopped, Running, Invalid, Disabled), how many versioned Process Groups exist on the canvas in each state (Up to date, Locally modified, Stale, Locally modified and stale, Sync failure) and the timestamp at which all of this information was last refreshed. Additionally, if the instance of NiFi is clustered, the Status bar shows how many nodes are in the cluster and how many are currently connected.
The Status Bar is under the Components Toolbar. The Status bar provides information about the number of threads that are
currently active in the flow, the amount of data that currently exists in the flow, how many Remote Process Groups exist
on the canvas in each state (Transmitting, Not Transmitting), how many Processors exist on the canvas in each state
(Stopped, Running, Invalid, Disabled), how many versioned Process Groups exist on the canvas in each state (Up to date,
Locally modified, Stale, Locally modified and stale, Sync failure) and the timestamp at which all of this information
was last refreshed. Additionally, if the instance of NiFi is clustered, the Status bar shows how many nodes are in the
cluster and how many are currently connected.
The Operate Palette sits to the left-hand side of the screen. It consists of buttons that are
used by DFMs to manage the flow, as well as by administrators who manage user access

View File

@ -17,23 +17,23 @@
<%@ page contentType="text/html" pageEncoding="UTF-8" session="false" %>
<div id="flow-status" flex layout="row" layout-align="space-between center">
<div id="flow-status-container" layout="row" layout-align="space-around center">
<div class="fa fa-cubes" ng-if="appCtrl.nf.ClusterSummary.isClustered()"><span id="connected-nodes-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.connectedNodesCount}}</span></div>
<div class="icon icon-threads"><span id="active-thread-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.activeThreadCount}}</span></div>
<div class="fa fa-list"><span id="total-queued">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.totalQueued}}</span></div>
<div class="fa fa-bullseye"><span id="controller-transmitting-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerTransmittingCount}}</span></div>
<div class="icon icon-transmit-false"><span id="controller-not-transmitting-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerNotTransmittingCount}}</span></div>
<div class="fa fa-play"><span id="controller-running-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerRunningCount}}</span></div>
<div class="fa fa-stop"><span id="controller-stopped-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerStoppedCount}}</span></div>
<div class="fa fa-warning"><span id="controller-invalid-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerInvalidCount}}</span></div>
<div class="icon icon-enable-false"><span id="controller-disabled-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerDisabledCount}}</span></div>
<div class="fa fa-check"><span id="controller-up-to-date-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerUpToDateCount}}</span></div>
<div class="fa fa-asterisk"><span id="controller-locally-modified-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerLocallyModifiedCount}}</span></div>
<div class="fa fa-arrow-circle-up"><span id="controller-stale-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerStaleCount}}</span></div>
<div class="fa fa-exclamation-circle">
<div class="fa fa-cubes" ng-if="appCtrl.nf.ClusterSummary.isClustered()" title="Connected nodes / Total number of nodes in the cluster"><span id="connected-nodes-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.connectedNodesCount}}</span></div>
<div class="icon icon-threads" title="Active threads"><span id="active-thread-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.activeThreadCount}}</span></div>
<div class="fa fa-list" title="Total queued data"><span id="total-queued">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.totalQueued}}</span></div>
<div class="fa fa-bullseye" title="Transmitting Remote Process Groups"><span id="controller-transmitting-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerTransmittingCount}}</span></div>
<div class="icon icon-transmit-false" title="Not Transmitting Remote Process Groups"><span id="controller-not-transmitting-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerNotTransmittingCount}}</span></div>
<div class="fa fa-play" title="Running Components"><span id="controller-running-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerRunningCount}}</span></div>
<div class="fa fa-stop" title="Stopped Components"><span id="controller-stopped-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerStoppedCount}}</span></div>
<div class="fa fa-warning" title="Invalid Components"><span id="controller-invalid-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerInvalidCount}}</span></div>
<div class="icon icon-enable-false" title="Disabled Components"><span id="controller-disabled-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerDisabledCount}}</span></div>
<div class="fa fa-check" title="Up to date Versioned Process Groups"><span id="controller-up-to-date-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerUpToDateCount}}</span></div>
<div class="fa fa-asterisk" title="Locally modified Versioned Process Groups"><span id="controller-locally-modified-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerLocallyModifiedCount}}</span></div>
<div class="fa fa-arrow-circle-up" title="Stale Versioned Process Groups"><span id="controller-stale-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerStaleCount}}</span></div>
<div class="fa fa-exclamation-circle" title="Locally modified and stale Versioned Process Groups">
<span id="controller-locally-modified-and-stale-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerLocallyModifiedAndStaleCount}}</span>
</div>
<div class="fa fa-question"><span id="controller-sync-failure-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerSyncFailureCount}}</span></div>
<div class="fa fa-refresh"><span id="stats-last-refreshed">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.statsLastRefreshed}}</span></div>
<div class="fa fa-question" title="Sync failure Versioned Process Groups"><span id="controller-sync-failure-count">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.controllerSyncFailureCount}}</span></div>
<div class="fa fa-refresh" title="Last refresh"><span id="stats-last-refreshed">{{appCtrl.serviceProvider.headerCtrl.flowStatusCtrl.statsLastRefreshed}}</span></div>
<div id="canvas-loading-container" class="loading-container"></div>
</div>
<div layout="row" layout-align="end center">

View File

@ -308,7 +308,10 @@
'class': 'process-group-transmitting process-group-contents-icon',
'font-family': 'FontAwesome'
})
.text('\uf140');
.text('\uf140')
.append("title")
.text("Transmitting Remote Process Groups");
// transmitting count
details.append('text')
@ -324,7 +327,9 @@
'class': 'process-group-not-transmitting process-group-contents-icon',
'font-family': 'flowfont'
})
.text('\ue80a');
.text('\ue80a')
.append("title")
.text("Not Transmitting Remote Process Groups");
// not transmitting count
details.append('text')
@ -340,7 +345,9 @@
'class': 'process-group-running process-group-contents-icon',
'font-family': 'FontAwesome'
})
.text('\uf04b');
.text('\uf04b')
.append("title")
.text("Running Components");
// running count
details.append('text')
@ -356,7 +363,9 @@
'class': 'process-group-stopped process-group-contents-icon',
'font-family': 'FontAwesome'
})
.text('\uf04d');
.text('\uf04d')
.append("title")
.text("Stopped Components");
// stopped count
details.append('text')
@ -372,7 +381,9 @@
'class': 'process-group-invalid process-group-contents-icon',
'font-family': 'FontAwesome'
})
.text('\uf071');
.text('\uf071')
.append("title")
.text("Invalid Components");
// invalid count
details.append('text')
@ -388,7 +399,9 @@
'class': 'process-group-disabled process-group-contents-icon',
'font-family': 'flowfont'
})
.text('\ue802');
.text('\ue802')
.append("title")
.text("Disabled Components");
// disabled count
details.append('text')
@ -407,7 +420,9 @@
'class': 'process-group-up-to-date process-group-contents-icon',
'font-family': 'FontAwesome'
})
.text('\uf00c');
.text('\uf00c')
.append("title")
.text("Up to date Versioned Process Groups");
// up to date count
details.append('text')
@ -427,7 +442,9 @@
'class': 'process-group-locally-modified process-group-contents-icon',
'font-family': 'FontAwesome'
})
.text('\uf069');
.text('\uf069')
.append("title")
.text("Locally modified Versioned Process Groups");
// locally modified count
details.append('text')
@ -447,7 +464,9 @@
'class': 'process-group-stale process-group-contents-icon',
'font-family': 'FontAwesome'
})
.text('\uf0aa');
.text('\uf0aa')
.append("title")
.text("Stale Versioned Process Groups");
// stale count
details.append('text')
@ -467,7 +486,9 @@
'class': 'process-group-locally-modified-and-stale process-group-contents-icon',
'font-family': 'FontAwesome'
})
.text('\uf06a');
.text('\uf06a')
.append("title")
.text("Locally modified and stale Versioned Process Groups");
// locally modified and stale count
details.append('text')
@ -487,7 +508,9 @@
'class': 'process-group-sync-failure process-group-contents-icon',
'font-family': 'FontAwesome'
})
.text('\uf128');
.text('\uf128')
.append("title")
.text("Sync failure Versioned Process Groups");
// sync failure count
details.append('text')
@ -847,6 +870,7 @@
.text(function (d) {
return d.activeRemotePortCount;
});
transmittingCount.append("title").text("Transmitting Remote Process Groups");
// update not transmitting
var notTransmitting = details.select('text.process-group-not-transmitting')
@ -868,6 +892,7 @@
.text(function (d) {
return d.inactiveRemotePortCount;
});
notTransmittingCount.append("title").text("Not transmitting Remote Process Groups")
// update running
var running = details.select('text.process-group-running')
@ -889,6 +914,7 @@
.text(function (d) {
return d.runningCount;
});
runningCount.append("title").text("Running Components");
// update stopped
var stopped = details.select('text.process-group-stopped')
@ -910,6 +936,7 @@
.text(function (d) {
return d.stoppedCount;
});
stoppedCount.append("title").text("Stopped Components");
// update invalid
var invalid = details.select('text.process-group-invalid')
@ -931,6 +958,7 @@
.text(function (d) {
return d.invalidCount;
});
invalidCount.append("title").text("Invalid Components");
// update disabled
var disabled = details.select('text.process-group-disabled')
@ -944,7 +972,7 @@
var invalidX = parseInt(invalidCount.attr('x'), 10);
return invalidX + Math.round(invalidCount.node().getComputedTextLength()) + CONTENTS_SPACER;
});
details.select('text.process-group-disabled-count')
var disabledCount = details.select('text.process-group-disabled-count')
.attr('x', function () {
var disabledCountX = parseInt(disabled.attr('x'), 10);
return disabledCountX + Math.round(disabled.node().getComputedTextLength()) + CONTENTS_VALUE_SPACER;
@ -952,6 +980,7 @@
.text(function (d) {
return d.disabledCount;
});
disabledCount.append("title").text("Disabled Components");
// up to date current
var upToDate = details.select('text.process-group-up-to-date')
@ -969,6 +998,7 @@
.text(function (d) {
return d.upToDateCount;
});
upToDateCount.append("title").text("Up to date Versioned Process Groups");
// update locally modified
var locallyModified = details.select('text.process-group-locally-modified')
@ -990,6 +1020,7 @@
.text(function (d) {
return d.locallyModifiedCount;
});
locallyModifiedCount.append("title").text("Locally modified Versioned Process Groups");
// update stale
var stale = details.select('text.process-group-stale')
@ -1011,6 +1042,7 @@
.text(function (d) {
return d.staleCount;
});
staleCount.append("title").text("Stale Versioned Process Groups");
// update locally modified and stale
var locallyModifiedAndStale = details.select('text.process-group-locally-modified-and-stale')
@ -1032,6 +1064,7 @@
.text(function (d) {
return d.locallyModifiedAndStaleCount;
});
locallyModifiedAndStaleCount.append("title").text("Locally modified and stale Versioned Process Groups");
// update sync failure
var syncFailure = details.select('text.process-group-sync-failure')
@ -1045,7 +1078,7 @@
var syncFailureX = parseInt(locallyModifiedAndStaleCount.attr('x'), 10);
return syncFailureX + Math.round(locallyModifiedAndStaleCount.node().getComputedTextLength()) + CONTENTS_SPACER - 2;
});
details.select('text.process-group-sync-failure-count')
var syncFailureCount = details.select('text.process-group-sync-failure-count')
.attr('x', function () {
var syncFailureCountX = parseInt(syncFailure.attr('x'), 10);
return syncFailureCountX + Math.round(syncFailure.node().getComputedTextLength()) + CONTENTS_VALUE_SPACER;
@ -1053,6 +1086,7 @@
.text(function (d) {
return d.syncFailureCount;
});
syncFailureCount.append("title").text("Sync failure Versioned Process Groups");
// update version control information
var versionControl = processGroup.select('text.version-control')