You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2015/02/02 21:00:26 UTC
[1/6] incubator-nifi git commit: NIFI-307: - Updating how action
buttons are invoked in tables throughout the application.
Repository: incubator-nifi
Updated Branches:
refs/heads/develop 037f36dd9 -> ed8f77160
NIFI-307:
- Updating how action buttons are invoked in tables throughout the application.
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/9cd9d126
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/9cd9d126
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/9cd9d126
Branch: refs/heads/develop
Commit: 9cd9d126e34a3039fcf42215c4ad6e67551c8f25
Parents: 037f36d
Author: Matt Gilman <ma...@gmail.com>
Authored: Mon Feb 2 12:44:51 2015 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Mon Feb 2 12:44:51 2015 -0500
----------------------------------------------------------------------
.../webapp/js/nf/cluster/nf-cluster-table.js | 319 +++++++-------
.../webapp/js/nf/counters/nf-counters-table.js | 63 +--
.../webapp/js/nf/history/nf-history-table.js | 147 ++++---
.../js/nf/provenance/nf-provenance-table.js | 103 ++---
.../js/nf/templates/nf-templates-table.js | 73 ++-
.../main/webapp/js/nf/users/nf-users-table.js | 440 +++++++++----------
6 files changed, 562 insertions(+), 583 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/9cd9d126/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js
index 13b0e5f..2968919 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js
@@ -110,6 +110,22 @@ nf.ClusterTable = (function () {
};
/**
+ * Prompts to verify node connection.
+ *
+ * @argument {object} node The node
+ */
+ var promptForConnect = function (node) {
+ // prompt to connect
+ nf.Dialog.showYesNoDialog({
+ dialogContent: 'Connect \'' + formatNodeAddress(node) + '\' to this cluster?',
+ overlayBackground: false,
+ yesHandler: function () {
+ connect(node.nodeId);
+ }
+ });
+ };
+
+ /**
* Connects the node in the specified row.
*
* @argument {string} nodeId The node id
@@ -133,6 +149,22 @@ nf.ClusterTable = (function () {
};
/**
+ * Prompts to verify node disconnection.
+ *
+ * @argument {object} node The node
+ */
+ var promptForDisconnect = function (node) {
+ // prompt for disconnect
+ nf.Dialog.showYesNoDialog({
+ dialogContent: 'Disconnect \'' + formatNodeAddress(node) + '\' from the cluster?',
+ overlayBackground: false,
+ yesHandler: function () {
+ disconnect(node.nodeId);
+ }
+ });
+ };
+
+ /**
* Disconnects the node in the specified row.
*
* @argument {string} nodeId The node id
@@ -156,6 +188,22 @@ nf.ClusterTable = (function () {
};
/**
+ * Prompts to verify node disconnection.
+ *
+ * @argument {object} node The node
+ */
+ var promptForRemoval = function (node) {
+ // prompt for disconnect
+ nf.Dialog.showYesNoDialog({
+ dialogContent: 'Remove \'' + formatNodeAddress(node) + '\' from the cluster?',
+ overlayBackground: false,
+ yesHandler: function () {
+ remove(node.nodeId);
+ }
+ });
+ };
+
+ /**
* Disconnects the node in the specified row.
*
* @argument {string} nodeId The node id
@@ -230,6 +278,86 @@ nf.ClusterTable = (function () {
// perform the filter
return item[args.property].search(filterExp) >= 0;
};
+
+ /**
+ * Show the node details.
+ *
+ * @argument {object} item The item
+ */
+ var showNodeDetails = function (item) {
+ $.ajax({
+ type: 'GET',
+ url: config.urls.nodes + '/' + encodeURIComponent(item.nodeId),
+ dataType: 'json'
+ }).done(function (response) {
+ var node = response.node;
+
+ // update the dialog fields
+ $('#node-id').text(node.nodeId);
+ $('#node-address').text(formatNodeAddress(node));
+
+ // format the events
+ var events = $('#node-events');
+ if ($.isArray(node.events) && node.events.length > 0) {
+ var eventMessages = [];
+ $.each(node.events, function (i, event) {
+ eventMessages.push(event.timestamp + ": " + event.message);
+ });
+ $('<div></div>').append(nf.Common.formatUnorderedList(eventMessages)).appendTo(events);
+ } else {
+ events.append('<div><span class="unset">None</span></div>');
+ }
+
+ // show the dialog
+ $('#node-details-dialog').modal('show');
+ }).fail(nf.Common.handleAjaxError);
+ };
+
+ /**
+ * Makes the specified node the primary node of the cluster.
+ *
+ * @argument {object} item The node item
+ */
+ var makePrimary = function (item) {
+ $.ajax({
+ type: 'PUT',
+ url: config.urls.nodes + '/' + encodeURIComponent(item.nodeId),
+ data: {
+ primary: true
+ },
+ dataType: 'json'
+ }).done(function (response) {
+ var grid = $('#cluster-table').data('gridInstance');
+ var data = grid.getData();
+
+ var node = response.node;
+
+ // start the update
+ data.beginUpdate();
+ data.updateItem(node.nodeId, node);
+
+ // need to find the previous primary node
+ // get the property grid data
+ var clusterItems = data.getItems();
+ $.each(clusterItems, function (i, otherNode) {
+ // attempt to identify the previous primary node
+ if (node.nodeId !== otherNode.nodeId && otherNode.primary === true) {
+ // reset its primary status
+ otherNode.primary = false;
+ otherNode.status = 'CONNECTED';
+
+ // set the new node state
+ data.updateItem(otherNode.nodeId, otherNode);
+
+ // no need to continue processing
+ return false;
+ }
+ });
+
+ // end the update
+ data.endUpdate();
+ }).fail(nf.Common.handleAjaxError);
+ };
return {
/**
@@ -292,7 +420,7 @@ nf.ClusterTable = (function () {
// define a custom formatter for the more details column
var moreDetailsFormatter = function (row, cell, value, columnDef, dataContext) {
- return '<img src="images/iconDetails.png" title="View Details" class="pointer" style="margin-top: 4px;" onclick="javascript:nf.ClusterTable.showNodeDetails(\'' + row + '\');"/>';
+ return '<img src="images/iconDetails.png" title="View Details" class="pointer show-node-details" style="margin-top: 4px;"/>';
};
// define a custom formatter for the run status column
@@ -348,11 +476,11 @@ nf.ClusterTable = (function () {
// return the appropriate markup
if (canConnect) {
- return '<img src="images/iconConnect.png" title="Connect" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.ClusterTable.promptForConnect(\'' + row + '\');"/> <img src="images/iconDelete.png" title="Remove" class="pointer" onclick="javascript:nf.ClusterTable.promptForRemoval(\'' + row + '\');"/>';
+ return '<img src="images/iconConnect.png" title="Connect" class="pointer prompt-for-connect" style="margin-top: 2px;"/> <img src="images/iconDelete.png" title="Remove" class="pointer prompt-for-removal"/>';
} else if (canDisconnect) {
- var actions = '<img src="images/iconDisconnect.png" title="Disconnect" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.ClusterTable.promptForDisconnect(\'' + row + '\');"/>';
+ var actions = '<img src="images/iconDisconnect.png" title="Disconnect" class="pointer prompt-for-disconnect" style="margin-top: 2px;"/>';
if (canBecomePrimary) {
- actions += ' <img src="images/iconPrimary.png" title="Make Primary" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.ClusterTable.makePrimary(\'' + row + '\');"/>';
+ actions += ' <img src="images/iconPrimary.png" title="Make Primary" class="pointer make-primary" style="margin-top: 2px;"/>';
}
return actions;
} else {
@@ -360,7 +488,7 @@ nf.ClusterTable = (function () {
}
};
- columnModel.push({id: 'action', label: ' ', formatter: actionFormatter, resizable: false, sortable: false, width: 80, maxWidth: 80});
+ columnModel.push({id: 'actions', label: ' ', formatter: actionFormatter, resizable: false, sortable: false, width: 80, maxWidth: 80});
}
var clusterOptions = {
@@ -398,6 +526,31 @@ nf.ClusterTable = (function () {
sortAsc: args.sortAsc
}, clusterData);
});
+
+ // configure a click listener
+ clusterGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = clusterData.getItem(args.row);
+
+ // determine the desired action
+ if (clusterGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('prompt-for-connect')) {
+ promptForConnect(item);
+ } else if (target.hasClass('prompt-for-removal')) {
+ promptForRemoval(item);
+ } else if (target.hasClass('prompt-for-disconnect')) {
+ promptForDisconnect(item);
+ } else if (target.hasClass('make-primary')) {
+ makePrimary(item);
+ }
+ } else if (clusterGrid.getColumns()[args.cell].id === 'moreDetails') {
+ if (target.hasClass('show-node-details')) {
+ showNodeDetails(item);
+ }
+ }
+ });
// wire up the dataview to the grid
clusterData.onRowCountChanged.subscribe(function (e, args) {
@@ -420,122 +573,6 @@ nf.ClusterTable = (function () {
},
/**
- * Prompts to verify node connection.
- *
- * @argument {string} row The row
- */
- promptForConnect: function (row) {
- var grid = $('#cluster-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var node = data.getItem(row);
-
- // prompt to connect
- nf.Dialog.showYesNoDialog({
- dialogContent: 'Connect \'' + formatNodeAddress(node) + '\' to this cluster?',
- overlayBackground: false,
- yesHandler: function () {
- connect(node.nodeId);
- }
- });
- }
-
- },
-
- /**
- * Prompts to verify node disconnection.
- *
- * @argument {string} row The row
- */
- promptForDisconnect: function (row) {
- var grid = $('#cluster-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var node = data.getItem(row);
-
- // prompt for disconnect
- nf.Dialog.showYesNoDialog({
- dialogContent: 'Disconnect \'' + formatNodeAddress(node) + '\' from the cluster?',
- overlayBackground: false,
- yesHandler: function () {
- disconnect(node.nodeId);
- }
- });
- }
- },
-
- /**
- * Makes the specified node the primary node of the cluster.
- *
- * @argument {string} row The row
- */
- makePrimary: function (row) {
- var grid = $('#cluster-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- $.ajax({
- type: 'PUT',
- url: config.urls.nodes + '/' + encodeURIComponent(item.nodeId),
- data: {
- primary: true
- },
- dataType: 'json'
- }).done(function (response) {
- var node = response.node;
-
- // start the update
- data.beginUpdate();
- data.updateItem(node.nodeId, node);
-
- // need to find the previous primary node
- // get the property grid data
- var clusterItems = data.getItems();
- $.each(clusterItems, function (i, otherNode) {
- // attempt to identify the previous primary node
- if (node.nodeId !== otherNode.nodeId && otherNode.primary === true) {
- // reset its primary status
- otherNode.primary = false;
- otherNode.status = 'CONNECTED';
-
- // set the new node state
- data.updateItem(otherNode.nodeId, otherNode);
-
- // no need to continue processing
- return false;
- }
- });
-
- // end the update
- data.endUpdate();
- }).fail(nf.Common.handleAjaxError);
- }
- },
-
- /**
- * Prompts to verify node disconnection.
- *
- * @argument {string} row The row
- */
- promptForRemoval: function (row) {
- var grid = $('#cluster-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var node = data.getItem(row);
-
- // prompt for disconnect
- nf.Dialog.showYesNoDialog({
- dialogContent: 'Remove \'' + formatNodeAddress(node) + '\' from the cluster?',
- overlayBackground: false,
- yesHandler: function () {
- remove(node.nodeId);
- }
- });
- }
- },
-
- /**
* Update the size of the grid based on its container's current size.
*/
resetTableSize: function () {
@@ -575,46 +612,6 @@ nf.ClusterTable = (function () {
$('#total-nodes').text('0');
}
}).fail(nf.Common.handleAjaxError);
- },
-
- /**
- * Populate the expanded row.
- *
- * @argument {string} row The row
- */
- showNodeDetails: function (row) {
- var grid = $('#cluster-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- $.ajax({
- type: 'GET',
- url: config.urls.nodes + '/' + encodeURIComponent(item.nodeId),
- dataType: 'json'
- }).done(function (response) {
- var node = response.node;
-
- // update the dialog fields
- $('#node-id').text(node.nodeId);
- $('#node-address').text(formatNodeAddress(node));
-
- // format the events
- var events = $('#node-events');
- if ($.isArray(node.events) && node.events.length > 0) {
- var eventMessages = [];
- $.each(node.events, function (i, event) {
- eventMessages.push(event.timestamp + ": " + event.message);
- });
- $('<div></div>').append(nf.Common.formatUnorderedList(eventMessages)).appendTo(events);
- } else {
- events.append('<div><span class="unset">None</span></div>');
- }
-
- // show the dialog
- $('#node-details-dialog').modal('show');
- }).fail(nf.Common.handleAjaxError);
- }
}
};
}());
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/9cd9d126/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js
index 536ffdb..2b26aaa 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js
@@ -110,6 +110,26 @@ nf.CountersTable = (function () {
// perform the filter
return item[args.property].search(filterExp) >= 0;
};
+
+ /**
+ * Resets the specified counter.
+ *
+ * @argument {object} item The counter item
+ */
+ var resetCounter = function (item) {
+ $.ajax({
+ type: 'PUT',
+ url: config.urls.counters + '/' + encodeURIComponent(item.id),
+ dataType: 'json'
+ }).done(function (response) {
+ var counter = response.counter;
+
+ // get the table and update the row accordingly
+ var countersGrid = $('#counters-table').data('gridInstance');
+ var countersData = countersGrid.getData();
+ countersData.updateItem(counter.id, counter);
+ }).fail(nf.Common.handleAjaxError);
+ };
return {
/**
@@ -159,7 +179,7 @@ nf.CountersTable = (function () {
if (nf.Common.isDFM()) {
// function for formatting the actions column
var actionFormatter = function (row, cell, value, columnDef, dataContext) {
- return '<img src="images/iconResetCounter.png" title="Reset" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.CountersTable.resetCounter(\'' + row + '\');"/>';
+ return '<img src="images/iconResetCounter.png" title="Reset" class="pointer reset-counter" style="margin-top: 2px;"/>';
};
// add the action column
@@ -202,6 +222,21 @@ nf.CountersTable = (function () {
sortAsc: args.sortAsc
}, countersData);
});
+
+ // configure a click listener
+ countersGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = countersData.getItem(args.row);
+
+ // determine the desired action
+ if (countersGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('reset-counter')) {
+ resetCounter(item);
+ }
+ }
+ });
// wire up the dataview to the grid
countersData.onRowCountChanged.subscribe(function (e, args) {
@@ -224,32 +259,6 @@ nf.CountersTable = (function () {
},
/**
- * Resets the specified counter.
- *
- * @argument {string} row The row
- */
- resetCounter: function (row) {
- var grid = $('#counters-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- $.ajax({
- type: 'PUT',
- url: config.urls.counters + '/' + encodeURIComponent(item.id),
- dataType: 'json'
- }).done(function (response) {
- var counter = response.counter;
-
- // get the table and update the row accordingly
- var countersGrid = $('#counters-table').data('gridInstance');
- var countersData = countersGrid.getData();
- countersData.updateItem(counter.id, counter);
- }).fail(nf.Common.handleAjaxError);
- }
- },
-
- /**
* Update the size of the grid based on its container's current size.
*/
resetTableSize: function () {
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/9cd9d126/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js
index be0ea73..72fc549 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js
@@ -244,7 +244,7 @@ nf.HistoryTable = (function () {
// define a custom formatter for the more details column
var moreDetailsFormatter = function (row, cell, value, columnDef, dataContext) {
- return '<img src="images/iconDetails.png" title="View Details" class="pointer" style="margin-top: 4px;" onclick="javascript:nf.HistoryTable.showActionDetails(\'' + row + '\');"/>';
+ return '<img src="images/iconDetails.png" title="View Details" class="pointer show-action-details" style="margin-top: 4px;"/>';
};
// initialize the templates table
@@ -283,6 +283,21 @@ nf.HistoryTable = (function () {
});
historyGrid.setSortColumn('timestamp', false);
+ // configure a click listener
+ historyGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = historyModel.getItem(args.row);
+
+ // determine the desired action
+ if (historyGrid.getColumns()[args.cell].id === 'moreDetails') {
+ if (target.hasClass('show-action-details')) {
+ showActionDetails(item);
+ }
+ }
+ });
+
// listen for when the viewport changes so we can fetch the appropriate records
historyGrid.onViewportChanged.subscribe(function (e, args) {
var vp = historyGrid.getViewport();
@@ -325,6 +340,68 @@ nf.HistoryTable = (function () {
nf.HistoryTable.loadHistoryTable();
}).fail(nf.Common.handleAjaxError);
};
+
+ /**
+ * Shows the details for the specified action.
+ *
+ * @param {object} action
+ */
+ var showActionDetails = function (action) {
+ // create the markup for the dialog
+ var detailsMarkup = $('<div></div>').append(
+ $('<div class="action-detail"><div class="history-details-name">Id</div>' + nf.Common.escapeHtml(action.sourceId) + '</div>'));
+
+ // get any component details
+ var componentDetails = action.componentDetails;
+
+ // inspect the operation to determine if there are any component details
+ if (nf.Common.isDefinedAndNotNull(componentDetails)) {
+ if (action.sourceType === 'Processor') {
+ detailsMarkup.append(
+ $('<div class="action-detail"><div class="history-details-name">Type</div>' + nf.Common.escapeHtml(componentDetails.type) + '</div>'));
+ } else if (action.sourceType === 'RemoteProcessGroup') {
+ detailsMarkup.append(
+ $('<div class="action-detail"><div class="history-details-name">Uri</div>' + nf.Common.formatValue(componentDetails.uri) + '</div>'));
+ }
+ }
+
+ // get any action details
+ var actionDetails = action.actionDetails;
+
+ // inspect the operation to determine if there are any action details
+ if (nf.Common.isDefinedAndNotNull(actionDetails)) {
+ if (action.operation === 'Configure') {
+ detailsMarkup.append(
+ $('<div class="action-detail"><div class="history-details-name">Name</div>' + nf.Common.formatValue(actionDetails.name) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Value</div>' + nf.Common.formatValue(actionDetails.value) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Previous Value</div>' + nf.Common.formatValue(actionDetails.previousValue) + '</div>'));
+ } else if (action.operation === 'Connect' || action.operation === 'Disconnect') {
+ detailsMarkup.append(
+ $('<div class="action-detail"><div class="history-details-name">Source Id</div>' + nf.Common.escapeHtml(actionDetails.sourceId) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Source Name</div>' + nf.Common.formatValue(actionDetails.sourceName) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Source Type</div>' + nf.Common.escapeHtml(actionDetails.sourceType) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Relationship(s)</div>' + nf.Common.formatValue(actionDetails.relationship) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Destination Id</div>' + nf.Common.escapeHtml(actionDetails.destinationId) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Destination Name</div>' + nf.Common.formatValue(actionDetails.destinationName) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Destination Type</div>' + nf.Common.escapeHtml(actionDetails.destinationType) + '</div>'));
+ } else if (action.operation === 'Move') {
+ detailsMarkup.append(
+ $('<div class="action-detail"><div class="history-details-name">Group</div>' + nf.Common.formatValue(actionDetails.group) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Group Id</div>' + nf.Common.escapeHtml(actionDetails.groupId) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Previous Group</div>' + nf.Common.formatValue(actionDetails.previousGroup) + '</div>')).append(
+ $('<div class="action-detail"><div class="history-details-name">Previous Group Id</div>' + nf.Common.escapeHtml(actionDetails.previousGroupId) + '</div>'));
+ } else if (action.operation === 'Purge') {
+ detailsMarkup.append(
+ $('<div class="action-detail"><div class="history-details-name">End Date</div>' + nf.Common.escapeHtml(actionDetails.endDate) + '</div>'));
+ }
+ }
+
+ // populate the dialog
+ $('#action-details').append(detailsMarkup);
+
+ // show the dialog
+ $('#action-details-dialog').modal('show');
+ };
return {
init: function () {
@@ -356,74 +433,6 @@ nf.HistoryTable = (function () {
// request refresh of the current 'page'
historyGrid.onViewportChanged.notify();
- },
-
- /**
- * Shows the details for the specified action.
- *
- * @param {object} index
- */
- showActionDetails: function (index) {
- var historyGrid = $('#history-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(historyGrid)) {
- var historyModel = historyGrid.getData();
- var action = historyModel.getItem(index);
-
- // create the markup for the dialog
- var detailsMarkup = $('<div></div>').append(
- $('<div class="action-detail"><div class="history-details-name">Id</div>' + nf.Common.escapeHtml(action.sourceId) + '</div>'));
-
- // get any component details
- var componentDetails = action.componentDetails;
-
- // inspect the operation to determine if there are any component details
- if (nf.Common.isDefinedAndNotNull(componentDetails)) {
- if (action.sourceType === 'Processor') {
- detailsMarkup.append(
- $('<div class="action-detail"><div class="history-details-name">Type</div>' + nf.Common.escapeHtml(componentDetails.type) + '</div>'));
- } else if (action.sourceType === 'RemoteProcessGroup') {
- detailsMarkup.append(
- $('<div class="action-detail"><div class="history-details-name">Uri</div>' + nf.Common.formatValue(componentDetails.uri) + '</div>'));
- }
- }
-
- // get any action details
- var actionDetails = action.actionDetails;
-
- // inspect the operation to determine if there are any action details
- if (nf.Common.isDefinedAndNotNull(actionDetails)) {
- if (action.operation === 'Configure') {
- detailsMarkup.append(
- $('<div class="action-detail"><div class="history-details-name">Name</div>' + nf.Common.formatValue(actionDetails.name) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Value</div>' + nf.Common.formatValue(actionDetails.value) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Previous Value</div>' + nf.Common.formatValue(actionDetails.previousValue) + '</div>'));
- } else if (action.operation === 'Connect' || action.operation === 'Disconnect') {
- detailsMarkup.append(
- $('<div class="action-detail"><div class="history-details-name">Source Id</div>' + nf.Common.escapeHtml(actionDetails.sourceId) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Source Name</div>' + nf.Common.formatValue(actionDetails.sourceName) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Source Type</div>' + nf.Common.escapeHtml(actionDetails.sourceType) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Relationship(s)</div>' + nf.Common.formatValue(actionDetails.relationship) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Destination Id</div>' + nf.Common.escapeHtml(actionDetails.destinationId) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Destination Name</div>' + nf.Common.formatValue(actionDetails.destinationName) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Destination Type</div>' + nf.Common.escapeHtml(actionDetails.destinationType) + '</div>'));
- } else if (action.operation === 'Move') {
- detailsMarkup.append(
- $('<div class="action-detail"><div class="history-details-name">Group</div>' + nf.Common.formatValue(actionDetails.group) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Group Id</div>' + nf.Common.escapeHtml(actionDetails.groupId) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Previous Group</div>' + nf.Common.formatValue(actionDetails.previousGroup) + '</div>')).append(
- $('<div class="action-detail"><div class="history-details-name">Previous Group Id</div>' + nf.Common.escapeHtml(actionDetails.previousGroupId) + '</div>'));
- } else if (action.operation === 'Purge') {
- detailsMarkup.append(
- $('<div class="action-detail"><div class="history-details-name">End Date</div>' + nf.Common.escapeHtml(actionDetails.endDate) + '</div>'));
- }
- }
-
- // populate the dialog
- $('#action-details').append(detailsMarkup);
-
- // show the dialog
- $('#action-details-dialog').modal('show');
- }
}
};
}());
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/9cd9d126/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js
index 759bcda..2880375 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js
@@ -553,7 +553,7 @@ nf.ProvenanceTable = (function () {
// define a custom formatter for the more details column
var moreDetailsFormatter = function (row, cell, value, columnDef, dataContext) {
- return '<img src="images/iconDetails.png" title="View Details" class="pointer" style="margin-top: 4px;" onclick="javascript:nf.ProvenanceTable.showEventDetailsByIndex(\'' + row + '\');"/>';
+ return '<img src="images/iconDetails.png" title="View Details" class="pointer show-event-details" style="margin-top: 4px;"/>';
};
// define how general values are formatted
@@ -570,12 +570,12 @@ nf.ProvenanceTable = (function () {
// conditionally include the cluster node id
if (nf.Common.SUPPORTS_SVG) {
- markup += '<img src="images/iconLineage.png" title="Show Lineage" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.ProvenanceTable.showLineage(\'' + row + '\');"/>';
+ markup += '<img src="images/iconLineage.png" title="Show Lineage" class="pointer show-lineage" style="margin-top: 2px;"/>';
}
// conditionally support going to the component
if (isInShell && nf.Common.isDefinedAndNotNull(dataContext.groupId)) {
- markup += ' <img src="images/iconGoTo.png" title="Go To" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.ProvenanceTable.goTo(\'' + row + '\');"/>';
+ markup += ' <img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/>';
}
return markup;
@@ -599,7 +599,7 @@ nf.ProvenanceTable = (function () {
// conditionally show the action column
if (nf.Common.SUPPORTS_SVG || isInShell) {
- provenanceColumns.push({id: 'action', name: ' ', formatter: showLineageFormatter, resizable: false, sortable: false, width: 50, maxWidth: 50});
+ provenanceColumns.push({id: 'actions', name: ' ', formatter: showLineageFormatter, resizable: false, sortable: false, width: 50, maxWidth: 50});
}
var provenanceOptions = {
@@ -641,6 +641,27 @@ nf.ProvenanceTable = (function () {
sortAsc: args.sortAsc
}, provenanceData);
});
+
+ // configure a click listener
+ provenanceGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = provenanceData.getItem(args.row);
+
+ // determine the desired action
+ if (provenanceGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('show-lineage')) {
+ nf.ProvenanceLineage.showLineage(item.flowFileUuid, item.eventId.toString(), item.clusterNodeId);
+ } else if (target.hasClass('go-to')) {
+ goTo(item);
+ }
+ } else if (provenanceGrid.getColumns()[args.cell].id === 'moreDetails') {
+ if (target.hasClass('show-event-details')) {
+ nf.ProvenanceTable.showEventDetails(item);
+ }
+ }
+ });
// wire up the dataview to the grid
provenanceData.onRowCountChanged.subscribe(function (e, args) {
@@ -884,6 +905,25 @@ nf.ProvenanceTable = (function () {
}
};
+ /**
+ * Goes to the specified component if possible.
+ *
+ * @argument {object} item The event it
+ */
+ var goTo = function (item) {
+ // ensure the component is still present in the flow
+ if (nf.Common.isDefinedAndNotNull(item.groupId)) {
+ // only attempt this if we're within a frame
+ if (top !== window) {
+ // and our parent has canvas utils and shell defined
+ if (nf.Common.isDefinedAndNotNull(parent.nf) && nf.Common.isDefinedAndNotNull(parent.nf.CanvasUtils) && nf.Common.isDefinedAndNotNull(parent.nf.Shell)) {
+ parent.nf.CanvasUtils.showComponent(item.groupId, item.componentId);
+ parent.$('#shell-close-button').click();
+ }
+ }
+ }
+ };
+
return {
/**
* The max delay between requests.
@@ -910,31 +950,6 @@ nf.ProvenanceTable = (function () {
},
/**
- * Goes to the specified component if possible.
- *
- * @argument {string} row The row
- */
- goTo: function (row) {
- var grid = $('#provenance-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- // ensure the component is still present in the flow
- if (nf.Common.isDefinedAndNotNull(item.groupId)) {
- // only attempt this if we're within a frame
- if (top !== window) {
- // and our parent has canvas utils and shell defined
- if (nf.Common.isDefinedAndNotNull(parent.nf) && nf.Common.isDefinedAndNotNull(parent.nf.CanvasUtils) && nf.Common.isDefinedAndNotNull(parent.nf.Shell)) {
- parent.nf.CanvasUtils.showComponent(item.groupId, item.componentId);
- parent.$('#shell-close-button').click();
- }
- }
- }
- }
- },
-
- /**
* Update the size of the grid based on its container's current size.
*/
resetTableSize: function () {
@@ -1096,36 +1111,6 @@ nf.ProvenanceTable = (function () {
},
/**
- * Shows the lineage for the event in the specified row.
- *
- * @param {type} row
- */
- showLineage: function (row) {
- var grid = $('#provenance-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- nf.ProvenanceLineage.showLineage(item.flowFileUuid, item.eventId.toString(), item.clusterNodeId);
- }
- },
-
- /**
- * Gets the event details and shows the details dialog.
- *
- * @param {long} index
- */
- showEventDetailsByIndex: function (index) {
- var provenanceGrid = $('#provenance-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(provenanceGrid)) {
- var provenanceModel = provenanceGrid.getData();
- var event = provenanceModel.getItem(index);
-
- // show the event details
- nf.ProvenanceTable.showEventDetails(event);
- }
- },
-
- /**
* Shows the details for the specified action.
*
* @param {object} event
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/9cd9d126/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js
index 1756207..ec8f49e 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js
@@ -54,6 +54,22 @@ nf.TemplatesTable = (function () {
};
/**
+ * Prompts the user before attempting to delete the specified template.
+ *
+ * @argument {object} template The template
+ */
+ var promptToDeleteTemplate = function (template) {
+ // prompt for deletion
+ nf.Dialog.showYesNoDialog({
+ dialogContent: 'Delete template \'' + nf.Common.escapeHtml(template.name) + '\'?',
+ overlayBackground: false,
+ yesHandler: function () {
+ deleteTemplate(template.id);
+ }
+ });
+ };
+
+ /**
* Deletes the template with the specified id.
*
* @argument {string} templateId The template id
@@ -177,11 +193,11 @@ nf.TemplatesTable = (function () {
// function for formatting the actions column
var actionFormatter = function (row, cell, value, columnDef, dataContext) {
- var markup = '<img src="images/iconExport.png" title="Download" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.TemplatesTable.exportTemplate(\'' + row + '\');"/>';
+ var markup = '<img src="images/iconExport.png" title="Download" class="pointer export-template" style="margin-top: 2px;"/>';
// all DFMs to remove templates
if (nf.Common.isDFM()) {
- markup += ' <img src="images/iconDelete.png" title="Remove Template" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.TemplatesTable.promptToDeleteTemplate(\'' + row + '\');"/>';
+ markup += ' <img src="images/iconDelete.png" title="Remove Template" class="pointer prompt-to-delete-template" style="margin-top: 2px;"/>';
}
return markup;
};
@@ -230,6 +246,23 @@ nf.TemplatesTable = (function () {
}, templatesData);
});
+ // configure a click listener
+ templatesGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = templatesData.getItem(args.row);
+
+ // determine the desired action
+ if (templatesGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('export-template')) {
+ window.open(config.urls.templates + '/' + encodeURIComponent(item.id));
+ } else if (target.hasClass('prompt-to-delete-template')) {
+ promptToDeleteTemplate(item);
+ }
+ }
+ });
+
// wire up the dataview to the grid
templatesData.onRowCountChanged.subscribe(function (e, args) {
templatesGrid.updateRowCount();
@@ -261,42 +294,6 @@ nf.TemplatesTable = (function () {
},
/**
- * Exports the specified template.
- *
- * @argument {string} row The row
- */
- exportTemplate: function (row) {
- var grid = $('#templates-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- window.open(config.urls.templates + '/' + encodeURIComponent(item.id));
- }
- },
-
- /**
- * Prompts the user before attempting to delete the specified template.
- *
- * @argument {string} row The row
- */
- promptToDeleteTemplate: function (row) {
- var grid = $('#templates-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var template = data.getItem(row);
-
- // prompt for deletion
- nf.Dialog.showYesNoDialog({
- dialogContent: 'Delete template \'' + nf.Common.escapeHtml(template.name) + '\'?',
- overlayBackground: false,
- yesHandler: function () {
- deleteTemplate(template.id);
- }
- });
- }
- },
-
- /**
* Load the processor templates table.
*/
loadTemplatesTable: function () {
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/9cd9d126/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js
index 996544f..88ea225 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js
@@ -483,7 +483,7 @@ nf.UsersTable = (function () {
// define a custom formatter for the more details column
var moreDetailsFormatter = function (row, cell, value, columnDef, dataContext) {
- return '<img src="images/iconDetails.png" title="View Details" class="pointer" style="margin-top: 4px;" onclick="javascript:nf.UsersTable.showUserDetails(\'' + row + '\');"/>';
+ return '<img src="images/iconDetails.png" title="View Details" class="pointer show-user-details" style="margin-top: 4px;"/>';
};
// function for formatting the last accessed time
@@ -566,20 +566,20 @@ nf.UsersTable = (function () {
// if this represents a grouped row
if (nf.Common.isDefinedAndNotNull(dataContext.userGroup) && grouped) {
- var actions = '<img src="images/iconEdit.png" title="Edit Access" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.UsersTable.updateGroupAccess(\'' + row + '\');"/> <img src="images/iconRevoke.png" title="Revoke Access" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.UsersTable.revokeGroupAccess(\'' + row + '\');"/> <img src="images/ungroup.png" title="Ungroup" class="pointer" onclick="javascript:nf.UsersTable.ungroup(\'' + row + '\');"/>';
+ var actions = '<img src="images/iconEdit.png" title="Edit Access" class="pointer update-group-access" style="margin-top: 2px;"/> <img src="images/iconRevoke.png" title="Revoke Access" class="pointer revoke-group-access" style="margin-top: 2px;"/> <img src="images/ungroup.png" title="Ungroup" class="pointer ungroup"/>';
} else {
// return the appropriate markup for an individual user
- var actions = '<img src="images/iconEdit.png" title="Edit Access" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.UsersTable.updateUserAccess(\'' + row + '\');"/>';
+ var actions = '<img src="images/iconEdit.png" title="Edit Access" class="pointer update-user-access" style="margin-top: 2px;"/>';
if (dataContext.status === 'ACTIVE') {
- actions += ' <img src="images/iconRevoke.png" title="Revoke Access" class="pointer" onclick="javascript:nf.UsersTable.revokeUserAccess(\'' + row + '\');"/>';
+ actions += ' <img src="images/iconRevoke.png" title="Revoke Access" class="pointer revoke-user-access"/>';
// add an ungroup active if appropriate
if (nf.Common.isDefinedAndNotNull(dataContext.userGroup)) {
- actions += ' <img src="images/ungroup.png" title="Ungroup" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.UsersTable.ungroupUser(\'' + row + '\');"/>';
+ actions += ' <img src="images/ungroup.png" title="Ungroup" class="pointer ungroup-user" style="margin-top: 2px;"/>';
}
} else {
- actions += ' <img src="images/iconDelete.png" title="Delete Account" class="pointer" onclick="javascript:nf.UsersTable.deleteUserAccount(\'' + row + '\');"/>';
+ actions += ' <img src="images/iconDelete.png" title="Delete Account" class="pointer delete-user-account"/>';
}
}
@@ -632,6 +632,37 @@ nf.UsersTable = (function () {
sortAsc: args.sortAsc
}, usersData);
});
+
+ // configure a click listener
+ usersGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = usersData.getItem(args.row);
+
+ // determine the desired action
+ if (usersGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('update-group-access')) {
+ updateGroupAccess(item);
+ } else if (target.hasClass('revoke-group-access')) {
+ revokeGroupAccess(item);
+ } else if (target.hasClass('ungroup')) {
+ ungroup(item);
+ } else if (target.hasClass('update-user-access')) {
+ updateUserAccess(item);
+ } else if (target.hasClass('revoke-user-access')) {
+ revokeUserAccess(item);
+ } else if (target.hasClass('ungroup-user')) {
+ ungroupUser(item);
+ } else if (target.hasClass('delete-user-account')) {
+ deleteUserAccount(item);
+ }
+ } else if (usersGrid.getColumns()[args.cell].id === 'moreDetails') {
+ if (target.hasClass('show-user-details')) {
+ showUserDetails(item);
+ }
+ }
+ });
// wire up the dataview to the grid
usersData.onRowCountChanged.subscribe(function (e, args) {
@@ -804,193 +835,192 @@ nf.UsersTable = (function () {
}
};
- return {
- init: function () {
- initUserDetailsDialog();
- initUserRolesDialog();
- initGroupRolesDialog();
- initUserRevokeDialog();
- initUserDeleteDialog();
- initUserGroupDialog();
- initGroupRevokeDialog();
- initUsersTable();
- },
-
- /**
- * Disables the specified user's account.
- *
- * @argument {string} row The row
- */
- revokeUserAccess: function (row) {
- var grid = $('#users-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
+ /**
+ * Shows details for the specified user.
+ *
+ * @param {object} user
+ */
+ var showUserDetails = function (user) {
+ var grouped = $('#group-collaspe-checkbox').hasClass('checkbox-checked');
+
+ // update the dialog fields
+ $('#user-name-details-dialog').text(user.userName);
+ $('#user-dn-details-dialog').text(user.dn);
+
+ // handle fields that could vary for groups
+ if (nf.Common.isDefinedAndNotNull(user.creation)) {
+ $('#user-created-details-dialog').text(user.creation);
+ } else if (grouped && nf.Common.isDefinedAndNotNull(user.userGroup)) {
+ $('#user-created-details-dialog').html('<span class="unset">Multiple users with different creation timestamps.</span>');
+ } else {
+ $('#user-created-details-dialog').html('<span class="unset">No creation timestamp set</span>');
+ }
- // populate the users info
- $('#user-id-revoke-dialog').val(item.id);
- $('#user-name-revoke-dialog').text(item.userName);
+ if (nf.Common.isDefinedAndNotNull(user.lastVerified)) {
+ $('#user-verified-details-dialog').text(user.lastVerified);
+ } else if (grouped && nf.Common.isDefinedAndNotNull(user.userGroup)) {
+ $('#user-verified-details-dialog').html('<span class="unset">Multiple users with different last verified timestamps.</span>');
+ } else {
+ $('#user-verified-details-dialog').html('<span class="unset">No last verified timestamp set.</span>');
+ }
- // show the dialog
- $('#user-revoke-dialog').modal('show');
- }
- },
-
- /**
- * Delete's the specified user's account.
- *
- * @argument {string} row The row
- */
- deleteUserAccount: function (row) {
- var grid = $('#users-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
+ if (nf.Common.isDefinedAndNotNull(user.justification)) {
+ $('#user-justification-details-dialog').text(user.justification);
+ } else if (grouped && nf.Common.isDefinedAndNotNull(user.userGroup)) {
+ $('#user-justification-details-dialog').html('<span class="unset">Multiple users with different justifications.</span>');
+ } else {
+ $('#user-justification-details-dialog').html('<span class="unset">No justification set.</span>');
+ }
- // populate the users info
- $('#user-id-delete-dialog').val(item.id);
- $('#user-name-delete-dialog').text(item.userName);
+ // show the dialog
+ $('#user-details-dialog').modal('show');
+ };
+
+ /**
+ * Updates the specified groups level of access.
+ *
+ * @argument {object} item The user item
+ */
+ var updateGroupAccess = function (item) {
+ // record the current group
+ $('#group-name-roles-dialog').text(item.userGroup);
- // show the dialog
- $('#user-delete-dialog').modal('show');
- }
- },
-
- /**
- * Disables the specified group's account.
- *
- * @argument {string} row The row
- */
- revokeGroupAccess: function (row) {
- var grid = $('#users-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
+ // show the dialog
+ $('#group-roles-dialog').modal('show');
+ };
+
+ /**
+ * Disables the specified group's account.
+ *
+ * @argument {object} item The user item
+ */
+ var revokeGroupAccess = function (item) {
+ // record the current group
+ $('#group-name-revoke-dialog').text(item.userGroup);
- // record the current group
- $('#group-name-revoke-dialog').text(item.userGroup);
+ // show the dialog
+ $('#group-revoke-dialog').modal('show');
+ };
- // show the dialog
- $('#group-revoke-dialog').modal('show');
+ /**
+ * Ungroups the specified group.
+ *
+ * @argument {object} item The user item
+ */
+ var ungroup = function (item) {
+ // prompt for ungroup
+ nf.Dialog.showYesNoDialog({
+ dialogContent: 'Remove all users from group \'' + nf.Common.escapeHtml(item.userGroup) + '\'?',
+ overlayBackground: false,
+ yesHandler: function () {
+ $.ajax({
+ type: 'DELETE',
+ url: config.urls.userGroups + '/' + encodeURIComponent(item.userGroup),
+ dataType: 'json'
+ }).done(function (response) {
+ nf.UsersTable.loadUsersTable();
+ }).fail(nf.Common.handleAjaxError);
}
- },
-
- /**
- * Updates the specified users's level of access.
- *
- * @argument {string} row The row
- */
- updateUserAccess: function (row) {
- var grid = $('#users-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- // populate the user info
- $('#user-id-roles-dialog').val(item.id);
- $('#user-name-roles-dialog').attr('title', item.dn).text(item.userName);
- $('#user-justification-roles-dialog').html(nf.Common.formatValue(item.justification));
-
- // function for checking a checkbox
- var check = function (domId) {
- $('#' + domId).removeClass('checkbox-unchecked').addClass('checkbox-checked');
- };
-
- // go through each user role
- $.each(item.authorities, function (i, authority) {
- if (authority === 'ROLE_ADMIN') {
- check('role-admin-checkbox');
- } else if (authority === 'ROLE_DFM') {
- check('role-dfm-checkbox');
- } else if (authority === 'ROLE_PROVENANCE') {
- check('role-provenance-checkbox');
- } else if (authority === 'ROLE_MONITOR') {
- check('role-monitor-checkbox');
- } else if (authority === 'ROLE_NIFI') {
- check('role-nifi-checkbox');
- } else if (authority === 'ROLE_PROXY') {
- check('role-proxy-checkbox');
- }
- });
+ });
+ };
+
+ /**
+ * Updates the specified users's level of access.
+ *
+ * @argument {object} item The user item
+ */
+ var updateUserAccess = function (item) {
+ // populate the user info
+ $('#user-id-roles-dialog').val(item.id);
+ $('#user-name-roles-dialog').attr('title', item.dn).text(item.userName);
+ $('#user-justification-roles-dialog').html(nf.Common.formatValue(item.justification));
+
+ // function for checking a checkbox
+ var check = function (domId) {
+ $('#' + domId).removeClass('checkbox-unchecked').addClass('checkbox-checked');
+ };
- // show the dialog
- $('#user-roles-dialog').modal('show');
+ // go through each user role
+ $.each(item.authorities, function (i, authority) {
+ if (authority === 'ROLE_ADMIN') {
+ check('role-admin-checkbox');
+ } else if (authority === 'ROLE_DFM') {
+ check('role-dfm-checkbox');
+ } else if (authority === 'ROLE_PROVENANCE') {
+ check('role-provenance-checkbox');
+ } else if (authority === 'ROLE_MONITOR') {
+ check('role-monitor-checkbox');
+ } else if (authority === 'ROLE_NIFI') {
+ check('role-nifi-checkbox');
+ } else if (authority === 'ROLE_PROXY') {
+ check('role-proxy-checkbox');
}
- },
-
- /**
- * Updates the specified groups level of access.
- *
- * @argument {string} row The row
- */
- updateGroupAccess: function (row) {
- var grid = $('#users-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
+ });
- // record the current group
- $('#group-name-roles-dialog').text(item.userGroup);
+ // show the dialog
+ $('#user-roles-dialog').modal('show');
+ };
+
+ /**
+ * Disables the specified user's account.
+ *
+ * @argument {object} item The user item
+ */
+ var revokeUserAccess = function (item) {
+ // populate the users info
+ $('#user-id-revoke-dialog').val(item.id);
+ $('#user-name-revoke-dialog').text(item.userName);
- // show the dialog
- $('#group-roles-dialog').modal('show');
- }
- },
-
- /**
- * Prompts to verify group removal.
- *
- * @argument {string} row The row
- */
- ungroupUser: function (row) {
- var grid = $('#users-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- // prompt for ungroup
- nf.Dialog.showYesNoDialog({
- dialogContent: 'Remove user \'' + nf.Common.escapeHtml(item.userName) + '\' from group \'' + nf.Common.escapeHtml(item.userGroup) + '\'?',
- overlayBackground: false,
- yesHandler: function () {
- $.ajax({
- type: 'DELETE',
- url: config.urls.userGroups + '/' + encodeURIComponent(item.userGroup) + '/users/' + encodeURIComponent(item.id),
- dataType: 'json'
- }).done(function (response) {
- nf.UsersTable.loadUsersTable();
- }).fail(nf.Common.handleAjaxError);
- }
- });
- }
- },
-
- /**
- * Ungroups the specified group.
- *
- * @argument {string} row The row
- */
- ungroup: function (row) {
- var grid = $('#users-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- // prompt for ungroup
- nf.Dialog.showYesNoDialog({
- dialogContent: 'Remove all users from group \'' + nf.Common.escapeHtml(item.userGroup) + '\'?',
- overlayBackground: false,
- yesHandler: function () {
- $.ajax({
- type: 'DELETE',
- url: config.urls.userGroups + '/' + encodeURIComponent(item.userGroup),
- dataType: 'json'
- }).done(function (response) {
- nf.UsersTable.loadUsersTable();
- }).fail(nf.Common.handleAjaxError);
- }
- });
+ // show the dialog
+ $('#user-revoke-dialog').modal('show');
+ };
+
+ /**
+ * Prompts to verify group removal.
+ *
+ * @argument {object} item The user item
+ */
+ var ungroupUser = function (item) {
+ // prompt for ungroup
+ nf.Dialog.showYesNoDialog({
+ dialogContent: 'Remove user \'' + nf.Common.escapeHtml(item.userName) + '\' from group \'' + nf.Common.escapeHtml(item.userGroup) + '\'?',
+ overlayBackground: false,
+ yesHandler: function () {
+ $.ajax({
+ type: 'DELETE',
+ url: config.urls.userGroups + '/' + encodeURIComponent(item.userGroup) + '/users/' + encodeURIComponent(item.id),
+ dataType: 'json'
+ }).done(function (response) {
+ nf.UsersTable.loadUsersTable();
+ }).fail(nf.Common.handleAjaxError);
}
+ });
+ };
+
+ /**
+ * Delete's the specified user's account.
+ *
+ * @argument {object} item The user item
+ */
+ var deleteUserAccount = function (item) {
+ // populate the users info
+ $('#user-id-delete-dialog').val(item.id);
+ $('#user-name-delete-dialog').text(item.userName);
+
+ // show the dialog
+ $('#user-delete-dialog').modal('show');
+ };
+
+ return {
+ init: function () {
+ initUserDetailsDialog();
+ initUserRolesDialog();
+ initGroupRolesDialog();
+ initUserRevokeDialog();
+ initUserDeleteDialog();
+ initUserGroupDialog();
+ initGroupRevokeDialog();
+ initUsersTable();
},
/**
@@ -1037,54 +1067,6 @@ nf.UsersTable = (function () {
$('#total-users').text('0');
}
}).fail(nf.Common.handleAjaxError);
- },
-
- /**
- * Shows details for the specified user.
- *
- * @param {string} row
- */
- showUserDetails: function (row) {
- var usersGrid = $('#users-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(usersGrid)) {
- var usersData = usersGrid.getData();
-
- // get the user
- var user = usersData.getItem(row);
- var grouped = $('#group-collaspe-checkbox').hasClass('checkbox-checked');
-
- // update the dialog fields
- $('#user-name-details-dialog').text(user.userName);
- $('#user-dn-details-dialog').text(user.dn);
-
- // handle fields that could vary for groups
- if (nf.Common.isDefinedAndNotNull(user.creation)) {
- $('#user-created-details-dialog').text(user.creation);
- } else if (grouped && nf.Common.isDefinedAndNotNull(user.userGroup)) {
- $('#user-created-details-dialog').html('<span class="unset">Multiple users with different creation timestamps.</span>');
- } else {
- $('#user-created-details-dialog').html('<span class="unset">No creation timestamp set</span>');
- }
-
- if (nf.Common.isDefinedAndNotNull(user.lastVerified)) {
- $('#user-verified-details-dialog').text(user.lastVerified);
- } else if (grouped && nf.Common.isDefinedAndNotNull(user.userGroup)) {
- $('#user-verified-details-dialog').html('<span class="unset">Multiple users with different last verified timestamps.</span>');
- } else {
- $('#user-verified-details-dialog').html('<span class="unset">No last verified timestamp set.</span>');
- }
-
- if (nf.Common.isDefinedAndNotNull(user.justification)) {
- $('#user-justification-details-dialog').text(user.justification);
- } else if (grouped && nf.Common.isDefinedAndNotNull(user.userGroup)) {
- $('#user-justification-details-dialog').html('<span class="unset">Multiple users with different justifications.</span>');
- } else {
- $('#user-justification-details-dialog').html('<span class="unset">No justification set.</span>');
- }
-
- // show the dialog
- $('#user-details-dialog').modal('show');
- }
}
};
}());
\ No newline at end of file
[4/6] incubator-nifi git commit: NIFI-295: - Considering the default
value when a property is unset.
Posted by mc...@apache.org.
NIFI-295:
- Considering the default value when a property is unset.
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/600a47be
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/600a47be
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/600a47be
Branch: refs/heads/develop
Commit: 600a47be166e942b64bcc7c624af5db7b5c17cc2
Parents: 94b3903
Author: Matt Gilman <ma...@gmail.com>
Authored: Mon Feb 2 13:40:07 2015 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Mon Feb 2 13:40:07 2015 -0500
----------------------------------------------------------------------
.../apache/nifi/web/controller/ControllerFacade.java | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/600a47be/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java
index b2a1ae4..b009581 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java
@@ -1190,17 +1190,24 @@ public class ControllerFacade implements ControllerServiceProvider {
for (final Map.Entry<PropertyDescriptor, String> entry : procNode.getProperties().entrySet()) {
final PropertyDescriptor descriptor = entry.getKey();
- addIfAppropriate(searchStr, descriptor.getName(), "Property", matches);
- addIfAppropriate(searchStr, descriptor.getDescription(), "Property", matches);
+ addIfAppropriate(searchStr, descriptor.getName(), "Property name", matches);
+ addIfAppropriate(searchStr, descriptor.getDescription(), "Property description", matches);
// never include sensitive properties values in search results
if (descriptor.isSensitive()) {
continue;
}
- final String value = entry.getValue();
+ String value = entry.getValue();
+
+ // if unset consider default value
+ if (value == null) {
+ value = descriptor.getDefaultValue();
+ }
+
+ // evaluate if the value matches the search criteria
if (StringUtils.containsIgnoreCase(value, searchStr)) {
- matches.add("Property: " + descriptor.getName() + " - " + value);
+ matches.add("Property value: " + descriptor.getName() + " - " + value);
}
}
[5/6] incubator-nifi git commit: NIFI-289: - Added logging when error
conditions occur in UpdateAttribute REST endpoints.
Posted by mc...@apache.org.
NIFI-289:
- Added logging when error conditions occur in UpdateAttribute REST endpoints.
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/93b78a7d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/93b78a7d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/93b78a7d
Branch: refs/heads/develop
Commit: 93b78a7dd5d4e4fa43fc84c5992010389638d595
Parents: 600a47b
Author: Matt Gilman <ma...@gmail.com>
Authored: Mon Feb 2 14:02:24 2015 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Mon Feb 2 14:02:24 2015 -0500
----------------------------------------------------------------------
.../nifi/update/attributes/api/RuleResource.java | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/93b78a7d/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java
index 05ed0a1..dc2d27c 100644
--- a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java
+++ b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java
@@ -70,6 +70,8 @@ import com.sun.jersey.api.NotFoundException;
import org.apache.nifi.update.attributes.FlowFilePolicy;
import org.apache.nifi.update.attributes.entity.EvaluationContextEntity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
*
@@ -77,6 +79,8 @@ import org.apache.nifi.update.attributes.entity.EvaluationContextEntity;
@Path("/criteria")
public class RuleResource {
+ private static final Logger logger = LoggerFactory.getLogger(RuleResource.class);
+
@Context
private ServletContext servletContext;
@@ -612,7 +616,9 @@ public class RuleResource {
} catch (final InvalidRevisionException ire) {
throw new WebApplicationException(invalidRevision(ire.getMessage()));
} catch (final Exception e) {
- throw new WebApplicationException(error(e.getMessage()));
+ final String message = String.format("Unable to get UpdateAttribute[id=%s] criteria: %s", contextConfig.getProcessorId(), e);
+ logger.error(message, e);
+ throw new WebApplicationException(error(message));
}
Criteria criteria = null;
@@ -620,7 +626,9 @@ public class RuleResource {
try {
criteria = CriteriaSerDe.deserialize(processorInfo.getAnnotationData());
} catch (final IllegalArgumentException iae) {
- throw new WebApplicationException(error("Unable to load existing rules. Deserialization error: " + iae.getMessage()));
+ final String message = String.format("Unable to deserialize existing rules for UpdateAttribute[id=%s]. Deserialization error: %s", contextConfig.getProcessorId(), iae);
+ logger.error(message, iae);
+ throw new WebApplicationException(error(message));
}
}
// ensure the criteria isn't null
@@ -644,7 +652,9 @@ public class RuleResource {
} catch (final InvalidRevisionException ire) {
throw new WebApplicationException(invalidRevision(ire.getMessage()));
} catch (final Exception e) {
- throw new WebApplicationException(error(e.getMessage()));
+ final String message = String.format("Unable to save UpdateAttribute[id=%s] criteria: %s", contextConfig.getProcessorId(), e);
+ logger.error(message, e);
+ throw new WebApplicationException(error(message));
}
}
[3/6] incubator-nifi git commit: NIFI-297: - Fixed name of the nifi
user log.
Posted by mc...@apache.org.
NIFI-297:
- Fixed name of the nifi user log.
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/94b39036
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/94b39036
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/94b39036
Branch: refs/heads/develop
Commit: 94b39036dc10b025c321cf983dace0a3b9f45196
Parents: b4d07e2
Author: Matt Gilman <ma...@gmail.com>
Authored: Mon Feb 2 13:16:34 2015 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Mon Feb 2 13:16:34 2015 -0500
----------------------------------------------------------------------
.../nifi-resources/src/main/resources/conf/logback.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/94b39036/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml
index 5f4e933..42d3353 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml
@@ -42,7 +42,7 @@
</appender>
<appender name="USER_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>logs/${project.artifactId}-user.log</file>
+ <file>logs/nifi-user.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--
For daily rollover, use 'user_%d.log'.
@@ -50,7 +50,7 @@
To GZIP rolled files, replace '.log' with '.log.gz'.
To ZIP rolled files, replace '.log' with '.log.zip'.
-->
- <fileNamePattern>./logs/${project.artifactId}-user_%d.log</fileNamePattern>
+ <fileNamePattern>./logs/nifi-user_%d.log</fileNamePattern>
<!-- keep 30 log files worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
[2/6] incubator-nifi git commit: NIFI-307: - Updating how action
buttons are invoked in tables throughout the application. NIFI-311: -
Addressing visibility and behavior issue with the refresh button in the
component cluster summary dialog.
Posted by mc...@apache.org.
NIFI-307:
- Updating how action buttons are invoked in tables throughout the application.
NIFI-311:
- Addressing visibility and behavior issue with the refresh button in the component cluster summary dialog.
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/b4d07e26
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/b4d07e26
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/b4d07e26
Branch: refs/heads/develop
Commit: b4d07e262f05ce16b4731d9a4b57de1d8d35848e
Parents: 9cd9d12
Author: Matt Gilman <ma...@gmail.com>
Authored: Mon Feb 2 12:45:53 2015 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Mon Feb 2 12:45:53 2015 -0500
----------------------------------------------------------------------
.../webapp/js/nf/summary/nf-summary-table.js | 523 +++++++------------
.../src/main/webapp/js/nf/summary/nf-summary.js | 6 -
2 files changed, 190 insertions(+), 339 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/b4d07e26/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js
index 969d7bf..a4583bc 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js
@@ -263,7 +263,7 @@ nf.SummaryTable = (function () {
// define a custom formatter for showing more processor details
var moreProcessorDetails = function (row, cell, value, columnDef, dataContext) {
- var markup = '<img src="images/iconDetails.png" title="View Details" class="pointer" style="margin-top: 5px; float: left;" onclick="javascript:nf.SummaryTable.showProcessorDetails(\'' + row + '\');"/>';
+ var markup = '<img src="images/iconDetails.png" title="View Details" class="pointer show-processor-details" style="margin-top: 5px; float: left;"/>';
// if there are bulletins, render them on the graph
if (!nf.Common.isEmpty(dataContext.bulletins)) {
@@ -333,26 +333,26 @@ nf.SummaryTable = (function () {
var markup = '';
if (isInShell) {
- markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.goToProcessor(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/> ';
}
if (nf.Common.SUPPORTS_SVG) {
if (isClustered) {
- markup += '<img src="images/iconChart.png" title="Show History" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterProcessorStatusHistory(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-cluster-processor-status-history" style="margin-top: 2px;"/> ';
} else {
- markup += '<img src="images/iconChart.png" title="Show History" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showProcessorStatusHistory(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-processor-status-history" style="margin-top: 2px;"/> ';
}
}
if (isClustered) {
- markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterProcessorSummary(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-processor-summary" style="margin-top: 2px;"/> ';
}
return markup;
};
// define the action column for clusters and within the shell
- processorsColumnModel.push({id: 'action', name: ' ', formatter: processorActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
+ processorsColumnModel.push({id: 'actions', name: ' ', formatter: processorActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
}
// initialize the templates table
@@ -394,6 +394,38 @@ nf.SummaryTable = (function () {
}, processorsData);
});
+ // configure a click listener
+ processorsGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = processorsData.getItem(args.row);
+
+ // determine the desired action
+ if (processorsGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('go-to')) {
+ goTo(item.groupId, item.id);
+ } else if (target.hasClass('show-cluster-processor-status-history')) {
+ nf.StatusHistory.showClusterProcessorChart(item.groupId, item.id);
+ } else if (target.hasClass('show-processor-status-history')) {
+ nf.StatusHistory.showStandaloneProcessorChart(item.groupId, item.id);
+ } else if (target.hasClass('show-cluster-processor-summary')) {
+ // load the cluster processor summary
+ loadClusterProcessorSummary(item.id);
+
+ // hide the summary loading indicator
+ $('#summary-loading-container').hide();
+
+ // show the dialog
+ $('#cluster-processor-summary-dialog').modal('show');
+ }
+ } else if (processorsGrid.getColumns()[args.cell].id === 'moreDetails') {
+ if (target.hasClass('show-processor-details')) {
+ nf.ProcessorDetails.showDetails(item.groupId, item.id);
+ }
+ }
+ });
+
// wire up the dataview to the grid
processorsData.onRowCountChanged.subscribe(function (e, args) {
processorsGrid.updateRowCount();
@@ -464,6 +496,11 @@ nf.SummaryTable = (function () {
}
}
});
+
+ // cluster processor refresh
+ nf.Common.addHoverEffect('#cluster-processor-refresh-button', 'button-refresh', 'button-refresh-hover').click(function () {
+ loadClusterProcessorSummary($('#cluster-processor-id').text());
+ });
// initialize the cluster processor column model
var clusterProcessorsColumnModel = [
@@ -524,7 +561,7 @@ nf.SummaryTable = (function () {
// define a custom formatter for showing more processor details
var moreConnectionDetails = function (row, cell, value, columnDef, dataContext) {
- return '<img src="images/iconDetails.png" title="View Details" class="pointer" style="margin-top: 5px;" onclick="javascript:nf.SummaryTable.showConnectionDetails(\'' + row + '\');"/>';
+ return '<img src="images/iconDetails.png" title="View Details" class="pointer show-connection-details" style="margin-top: 5px;"/>';
};
// define the input, read, written, and output columns (reused between both tables)
@@ -548,26 +585,26 @@ nf.SummaryTable = (function () {
var markup = '';
if (isInShell) {
- markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.goToConnection(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/> ';
}
if (nf.Common.SUPPORTS_SVG) {
if (isClustered) {
- markup += '<img src="images/iconChart.png" title="Show History" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterConnectionStatusHistory(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-cluster-connection-status-history" style="margin-top: 2px;"/> ';
} else {
- markup += '<img src="images/iconChart.png" title="Show History" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showConnectionStatusHistory(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-connection-status-history" style="margin-top: 2px;"/> ';
}
}
if (isClustered) {
- markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterConnectionSummary(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-connection-summary" style="margin-top: 2px;"/> ';
}
return markup;
};
// define the action column for clusters and within the shell
- connectionsColumnModel.push({id: 'action', name: ' ', formatter: connectionActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
+ connectionsColumnModel.push({id: 'actions', name: ' ', formatter: connectionActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
}
// initialize the templates table
@@ -609,6 +646,38 @@ nf.SummaryTable = (function () {
}, connectionsData);
});
+ // configure a click listener
+ connectionsGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = connectionsData.getItem(args.row);
+
+ // determine the desired action
+ if (connectionsGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('go-to')) {
+ goTo(item.groupId, item.id);
+ } else if (target.hasClass('show-cluster-connection-status-history')) {
+ nf.StatusHistory.showClusterConnectionChart(item.groupId, item.id);
+ } else if (target.hasClass('show-connection-status-history')) {
+ nf.StatusHistory.showStandaloneConnectionChart(item.groupId, item.id);
+ } else if (target.hasClass('show-cluster-connection-summary')) {
+ // load the cluster processor summary
+ loadClusterConnectionSummary(item.id);
+
+ // hide the summary loading indicator
+ $('#summary-loading-container').hide();
+
+ // show the dialog
+ $('#cluster-connection-summary-dialog').modal('show');
+ }
+ } else if (connectionsGrid.getColumns()[args.cell].id === 'moreDetails') {
+ if (target.hasClass('show-connection-details')) {
+ nf.ConnectionDetails.showDetails(item.groupId, item.id);
+ }
+ }
+ });
+
// wire up the dataview to the grid
connectionsData.onRowCountChanged.subscribe(function (e, args) {
connectionsGrid.updateRowCount();
@@ -651,6 +720,11 @@ nf.SummaryTable = (function () {
}
}
});
+
+ // cluster connection refresh
+ nf.Common.addHoverEffect('#cluster-connection-refresh-button', 'button-refresh', 'button-refresh-hover').click(function () {
+ loadClusterConnectionSummary($('#cluster-connection-id').text());
+ });
// initialize the cluster processor column model
var clusterConnectionsColumnModel = [
@@ -734,18 +808,18 @@ nf.SummaryTable = (function () {
var markup = '';
if (isInShell) {
- markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.goToInputPort(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/> ';
}
if (isClustered) {
- markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterInputPortSummary(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-input-port-summary" style="margin-top: 2px;"/> ';
}
return markup;
};
// define the action column for clusters and within the shell
- inputPortsColumnModel.push({id: 'action', name: ' ', formatter: inputPortActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
+ inputPortsColumnModel.push({id: 'actions', name: ' ', formatter: inputPortActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
}
// initialize the input ports table
@@ -787,6 +861,30 @@ nf.SummaryTable = (function () {
}, inputPortsData);
});
+ // configure a click listener
+ inputPortsGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = inputPortsData.getItem(args.row);
+
+ // determine the desired action
+ if (inputPortsGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('go-to')) {
+ goTo(item.groupId, item.id);
+ } else if (target.hasClass('show-cluster-input-port-summary')) {
+ // load the cluster processor summary
+ loadClusterInputPortSummary(item.id);
+
+ // hide the summary loading indicator
+ $('#summary-loading-container').hide();
+
+ // show the dialog
+ $('#cluster-input-port-summary-dialog').modal('show');
+ }
+ }
+ });
+
// wire up the dataview to the grid
inputPortsData.onRowCountChanged.subscribe(function (e, args) {
inputPortsGrid.updateRowCount();
@@ -857,6 +955,11 @@ nf.SummaryTable = (function () {
}
}
});
+
+ // cluster input port refresh
+ nf.Common.addHoverEffect('#cluster-input-port-refresh-button', 'button-refresh', 'button-refresh-hover').click(function () {
+ loadClusterInputPortSummary($('#cluster-input-port-id').text());
+ });
// initialize the cluster input port column model
var clusterInputPortsColumnModel = [
@@ -927,18 +1030,18 @@ nf.SummaryTable = (function () {
var markup = '';
if (isInShell) {
- markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.goToOutputPort(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/> ';
}
if (isClustered) {
- markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterOutputPortSummary(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-output-port-summary" style="margin-top: 2px;"/> ';
}
return markup;
};
// define the action column for clusters and within the shell
- outputPortsColumnModel.push({id: 'action', name: ' ', formatter: outputPortActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
+ outputPortsColumnModel.push({id: 'actions', name: ' ', formatter: outputPortActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
}
// initialize the input ports table
@@ -980,6 +1083,30 @@ nf.SummaryTable = (function () {
}, outputPortsData);
});
+ // configure a click listener
+ outputPortsGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = outputPortsData.getItem(args.row);
+
+ // determine the desired action
+ if (outputPortsGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('go-to')) {
+ goTo(item.groupId, item.id);
+ } else if (target.hasClass('show-cluster-output-port-summary')) {
+ // load the cluster processor summary
+ loadClusterOutputPortSummary(item.id);
+
+ // hide the summary loading indicator
+ $('#summary-loading-container').hide();
+
+ // show the dialog
+ $('#cluster-output-port-summary-dialog').modal('show');
+ }
+ }
+ });
+
// wire up the dataview to the grid
outputPortsData.onRowCountChanged.subscribe(function (e, args) {
outputPortsGrid.updateRowCount();
@@ -1050,6 +1177,11 @@ nf.SummaryTable = (function () {
}
}
});
+
+ // cluster output port refresh
+ nf.Common.addHoverEffect('#cluster-output-port-refresh-button', 'button-refresh', 'button-refresh-hover').click(function () {
+ loadClusterOutputPortSummary($('#cluster-output-port-id').text());
+ });
// initialize the cluster output port column model
var clusterOutputPortsColumnModel = [
@@ -1152,26 +1284,26 @@ nf.SummaryTable = (function () {
var markup = '';
if (isInShell) {
- markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.goToRemoteProcessGroup(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/> ';
}
if (nf.Common.SUPPORTS_SVG) {
if (isClustered) {
- markup += '<img src="images/iconChart.png" title="Show History" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterRemoteProcessGroupStatusHistory(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-cluster-remote-process-group-status-history" style="margin-top: 2px;"/> ';
} else {
- markup += '<img src="images/iconChart.png" title="Show History" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showRemoteProcessGroupStatusHistory(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-remote-process-group-status-history" style="margin-top: 2px;"/> ';
}
}
if (isClustered) {
- markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterRemoteProcessGroupSummary(\'' + row + '\');"/> ';
+ markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-remote-process-group-summary" style="margin-top: 2px;"/> ';
}
return markup;
};
// define the action column for clusters and within the shell
- remoteProcessGroupsColumnModel.push({id: 'action', name: ' ', formatter: remoteProcessGroupActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
+ remoteProcessGroupsColumnModel.push({id: 'actions', name: ' ', formatter: remoteProcessGroupActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
}
// initialize the remote process groups table
@@ -1213,6 +1345,34 @@ nf.SummaryTable = (function () {
}, remoteProcessGroupsData);
});
+ // configure a click listener
+ remoteProcessGroupsGrid.onClick.subscribe(function (e, args) {
+ var target = $(e.target);
+
+ // get the node at this row
+ var item = remoteProcessGroupsData.getItem(args.row);
+
+ // determine the desired action
+ if (remoteProcessGroupsGrid.getColumns()[args.cell].id === 'actions') {
+ if (target.hasClass('go-to')) {
+ goTo(item.groupId, item.id);
+ } else if (target.hasClass('show-cluster-remote-process-group-status-history')) {
+ nf.StatusHistory.showClusterRemoteProcessGroupChart(item.groupId, item.id);
+ } else if (target.hasClass('show-remote-process-group-status-history')) {
+ nf.StatusHistory.showStandaloneRemoteProcessGroupChart(item.groupId, item.id);
+ } else if (target.hasClass('show-cluster-remote-process-group-summary')) {
+ // load the cluster processor summary
+ loadClusterRemoteProcessGroupSummary(item.id);
+
+ // hide the summary loading indicator
+ $('#summary-loading-container').hide();
+
+ // show the dialog
+ $('#cluster-remote-process-group-summary-dialog').modal('show');
+ }
+ }
+ });
+
// wire up the dataview to the grid
remoteProcessGroupsData.onRowCountChanged.subscribe(function (e, args) {
remoteProcessGroupsGrid.updateRowCount();
@@ -1283,6 +1443,11 @@ nf.SummaryTable = (function () {
}
}
});
+
+ // cluster remote process group refresh
+ nf.Common.addHoverEffect('#cluster-remote-process-group-refresh-button', 'button-refresh', 'button-refresh-hover').click(function () {
+ loadClusterRemoteProcessGroupSummary($('#cluster-remote-process-group-id').text());
+ });
// initialize the cluster remote process group column model
var clusterRemoteProcessGroupsColumnModel = [
@@ -1749,7 +1914,6 @@ nf.SummaryTable = (function () {
// populate the processor details
$('#cluster-processor-name').text(clusterProcessorStatus.processorName).ellipsis();
- ;
$('#cluster-processor-id').text(clusterProcessorStatus.processorId);
// update the stats last refreshed timestamp
@@ -1801,7 +1965,6 @@ nf.SummaryTable = (function () {
// populate the processor details
$('#cluster-connection-name').text(clusterConnectionStatus.connectionName).ellipsis();
- ;
$('#cluster-connection-id').text(clusterConnectionStatus.connectionId);
// update the stats last refreshed timestamp
@@ -1959,18 +2122,16 @@ nf.SummaryTable = (function () {
}
}).fail(nf.Common.handleAjaxError);
};
-
+
return {
/**
* URL for loading system diagnostics.
*/
systemDiagnosticsUrl: null,
-
/**
* URL for loading the summary.
*/
url: null,
-
/**
* Initializes the status table.
*
@@ -1994,7 +2155,6 @@ nf.SummaryTable = (function () {
});
}).promise();
},
-
/**
* Update the size of the grid based on its container's current size.
*/
@@ -2024,7 +2184,6 @@ nf.SummaryTable = (function () {
remoteProcessGroupGrid.resizeCanvas();
}
},
-
/**
* Load the processor status table.
*/
@@ -2043,7 +2202,7 @@ nf.SummaryTable = (function () {
// remove any tooltips from the processor table
var processorsGridElement = $('#processor-summary-table');
nf.Common.cleanUpTooltips(processorsGridElement, 'img.has-bulletins');
-
+
// get the processor grid/data
var processorsGrid = processorsGridElement.data('gridInstance');
var processorsData = processorsGrid.getData();
@@ -2129,308 +2288,6 @@ nf.SummaryTable = (function () {
$('#total-items').text('0');
}
}).fail(nf.Common.handleAjaxError);
- },
-
- // processor actions
-
- /**
- * Shows the details for the processor at the specified row.
- *
- * @param {type} row row index
- */
- showProcessorDetails: function (row) {
- var grid = $('#processor-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- nf.ProcessorDetails.showDetails(item.groupId, item.id);
- }
- },
-
- /**
- * Goes to the specified processor.
- *
- * @param {type} row
- */
- goToProcessor: function (row) {
- var grid = $('#processor-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- goTo(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the processor status history for a cluster.
- *
- * @param {type} row
- */
- showClusterProcessorStatusHistory: function (row) {
- var grid = $('#processor-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- nf.StatusHistory.showClusterProcessorChart(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the processor status history.
- *
- * @param {type} row
- */
- showProcessorStatusHistory: function (row) {
- var grid = $('#processor-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- nf.StatusHistory.showStandaloneProcessorChart(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the cluster processor details dialog for the specified processor.
- *
- * @argument {string} row The row
- */
- showClusterProcessorSummary: function (row) {
- var grid = $('#processor-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- // load the cluster processor summary
- loadClusterProcessorSummary(item.id);
-
- // hide the summary loading indicator
- $('#summary-loading-container').hide();
-
- // show the dialog
- $('#cluster-processor-summary-dialog').modal('show');
- }
- },
-
- // connection actions
-
- /**
- * Shows the details for the connection at the specified row.
- *
- * @param {type} row row index
- */
- showConnectionDetails: function (row) {
- var grid = $('#connection-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- nf.ConnectionDetails.showDetails(item.groupId, item.id);
- }
- },
-
- /**
- * Goes to the specified connection.
- *
- * @param {type} row
- */
- goToConnection: function (row) {
- var grid = $('#connection-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- goTo(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the connection status history for a cluster.
- *
- * @param {type} row
- */
- showClusterConnectionStatusHistory: function (row) {
- var grid = $('#connection-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- nf.StatusHistory.showClusterConnectionChart(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the connection status history.
- *
- * @param {type} row
- */
- showConnectionStatusHistory: function (row) {
- var grid = $('#connection-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- nf.StatusHistory.showStandaloneConnectionChart(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the cluster connection details dialog for the specified connection.
- *
- * @argument {string} row The row
- */
- showClusterConnectionSummary: function (row) {
- var grid = $('#connection-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- // load the cluster processor summary
- loadClusterConnectionSummary(item.id);
-
- // hide the summary loading indicator
- $('#summary-loading-container').hide();
-
- // show the dialog
- $('#cluster-connection-summary-dialog').modal('show');
- }
- },
-
- // input actions
-
- /**
- * Goes to the specified input port.
- *
- * @param {type} row
- */
- goToInputPort: function (row) {
- var grid = $('#input-port-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- goTo(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the cluster input port details dialog for the specified connection.
- *
- * @argument {string} row The row
- */
- showClusterInputPortSummary: function (row) {
- var grid = $('#input-port-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- // load the cluster processor summary
- loadClusterInputPortSummary(item.id);
-
- // hide the summary loading indicator
- $('#summary-loading-container').hide();
-
- // show the dialog
- $('#cluster-input-port-summary-dialog').modal('show');
- }
- },
-
- // output actions
-
- /**
- * Goes to the specified output port.
- *
- * @param {type} row
- */
- goToOutputPort: function (row) {
- var grid = $('#output-port-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- goTo(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the cluster output port details dialog for the specified connection.
- *
- * @argument {string} row The row
- */
- showClusterOutputPortSummary: function (row) {
- var grid = $('#output-port-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- // load the cluster processor summary
- loadClusterOutputPortSummary(item.id);
-
- // hide the summary loading indicator
- $('#summary-loading-container').hide();
-
- // show the dialog
- $('#cluster-output-port-summary-dialog').modal('show');
- }
- },
-
- // remote process group actions
-
- /**
- * Goes to the specified remote process group.
- *
- * @param {type} row
- */
- goToRemoteProcessGroup: function (row) {
- var grid = $('#remote-process-group-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- goTo(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the remote process group status history for a cluster.
- *
- * @param {type} row
- */
- showClusterRemoteProcessGroupStatusHistory: function (row) {
- var grid = $('#remote-process-group-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- nf.StatusHistory.showClusterRemoteProcessGroupChart(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the remote process group status history.
- *
- * @param {type} row
- */
- showRemoteProcessGroupStatusHistory: function (row) {
- var grid = $('#remote-process-group-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
- nf.StatusHistory.showStandaloneRemoteProcessGroupChart(item.groupId, item.id);
- }
- },
-
- /**
- * Shows the cluster remote process group details dialog for the specified connection.
- *
- * @argument {string} row The row
- */
- showClusterRemoteProcessGroupSummary: function (row) {
- var grid = $('#remote-process-group-summary-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(grid)) {
- var data = grid.getData();
- var item = data.getItem(row);
-
- // load the cluster processor summary
- loadClusterRemoteProcessGroupSummary(item.id);
-
- // hide the summary loading indicator
- $('#summary-loading-container').hide();
-
- // show the dialog
- $('#cluster-remote-process-group-summary-dialog').modal('show');
- }
}
};
}());
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/b4d07e26/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js
index 7b90a0f..4f80241 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js
@@ -69,12 +69,6 @@ nf.Summary = (function () {
nf.Common.addHoverEffect('#refresh-button', 'button-refresh', 'button-refresh-hover').click(function () {
nf.SummaryTable.loadProcessorSummaryTable();
});
- nf.Common.addHoverEffect('#cluster-processor-refresh-button', 'button-refresh', 'button-refresh-hover').click(function () {
- nf.SummaryTable.loadClusterProcessorSummary($('#cluster-processor-id').text());
- });
- nf.Common.addHoverEffect('#cluster-connection-refresh-button', 'button-refresh', 'button-refresh-hover').click(function () {
- nf.SummaryTable.loadClusterConnectionSummary($('#cluster-connection-id').text());
- });
// return a deferred for page initialization
return $.Deferred(function (deferred) {
[6/6] incubator-nifi git commit: NIFI-288: - Removing the border
radius on the provenance progress bars.
Posted by mc...@apache.org.
NIFI-288:
- Removing the border radius on the provenance progress bars.
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/ed8f7716
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/ed8f7716
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/ed8f7716
Branch: refs/heads/develop
Commit: ed8f7716061055e4039b1586a4c7ff41f6c3e06a
Parents: 93b78a7
Author: Matt Gilman <ma...@gmail.com>
Authored: Mon Feb 2 14:39:49 2015 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Mon Feb 2 14:39:49 2015 -0500
----------------------------------------------------------------------
.../nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/ed8f7716/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css
index 7877f69..751a647 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css
@@ -453,6 +453,11 @@ div.content-detail-value {
#provenance-percent-complete, #lineage-percent-complete {
width: 378px;
+ border-radius: 0;
+}
+
+#provenance-percent-complete .ui-progressbar-value, #lineage-percent-complete .ui-progressbar-value {
+ border-radius: 0;
}
div.progress-label {