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/12/22 15:10:14 UTC
nifi git commit: NIFI-108: - Only showing the flowfile listing table
when the listing is successful and the listing is not empty.
Repository: nifi
Updated Branches:
refs/heads/NIFI-108 fc628e866 -> 42c964f09
NIFI-108:
- Only showing the flowfile listing table when the listing is successful and the listing is not empty.
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/42c964f0
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/42c964f0
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/42c964f0
Branch: refs/heads/NIFI-108
Commit: 42c964f09df7fdef551cb63be2c1449452b75fed
Parents: fc628e8
Author: Matt Gilman <ma...@gmail.com>
Authored: Tue Dec 22 09:09:57 2015 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Tue Dec 22 09:09:57 2015 -0500
----------------------------------------------------------------------
.../main/webapp/js/nf/canvas/nf-context-menu.js | 1 -
.../webapp/js/nf/canvas/nf-queue-listing.js | 267 ++++++++++---------
2 files changed, 140 insertions(+), 128 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/42c964f0/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js
index 1e7925e..7412dd8 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js
@@ -306,7 +306,6 @@ nf.ContextMenu = (function () {
* @param {selection} selection
*/
var canListQueue = function (selection) {
- // TODO verify source/destination stopped and 0 active threads
return nf.Common.isDFM() && isConnection(selection) && nf.CanvasUtils.supportsModification(selection);
};
http://git-wip-us.apache.org/repos/asf/nifi/blob/42c964f0/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js
index 5b6e9d9..3f17a3b 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js
@@ -146,6 +146,10 @@ nf.QueueListing = (function () {
$('#flowfile-attributes-container').empty();
$('#flowfile-cluster-node-id').text('');
$('#additional-flowfile-details').empty();
+
+ // reset stats
+ $('#displayed-flowfiles, #total-flowfiles-count').text('0');
+ $('#total-flowfiles-size').text(nf.Common.formatDataSize(0));
}
}
}).draggable({
@@ -167,51 +171,66 @@ nf.QueueListing = (function () {
var listingRequest = null;
var listingRequestTimer = null;
- // updates the progress bar
- var updateProgress = function (percentComplete) {
- // remove existing labels
- var progressBar = $('#listing-request-percent-complete');
- progressBar.find('div.progress-label').remove();
-
- // update the progress bar
- var label = $('<div class="progress-label"></div>').text(percentComplete + '%');
- if (percentComplete > 0) {
- label.css('margin-top', '-19px');
- }
- progressBar.progressbar('value', percentComplete).append(label);
- };
+ return $.Deferred(function (deferred) {
+ // updates the progress bar
+ var updateProgress = function (percentComplete) {
+ // remove existing labels
+ var progressBar = $('#listing-request-percent-complete');
+ progressBar.find('div.progress-label').remove();
+
+ // update the progress bar
+ var label = $('<div class="progress-label"></div>').text(percentComplete + '%');
+ if (percentComplete > 0) {
+ label.css('margin-top', '-19px');
+ }
+ progressBar.progressbar('value', percentComplete).append(label);
+ };
- // update the button model of the drop request status dialog
- $('#listing-request-status-dialog').modal('setButtonModel', [{
- buttonText: 'Stop',
- handler: {
- click: function () {
- cancelled = true;
+ // update the button model of the drop request status dialog
+ $('#listing-request-status-dialog').modal('setButtonModel', [{
+ buttonText: 'Stop',
+ handler: {
+ click: function () {
+ cancelled = true;
- // we are waiting for the next poll attempt
- if (listingRequestTimer !== null) {
- // cancel it
- clearTimeout(listingRequestTimer);
+ // we are waiting for the next poll attempt
+ if (listingRequestTimer !== null) {
+ // cancel it
+ clearTimeout(listingRequestTimer);
- // cancel the listing request
- completeListingRequest();
+ // cancel the listing request
+ completeListingRequest();
+ }
}
}
- }
- }]);
+ }]);
- // completes the listing request by removing it
- var completeListingRequest = function () {
- if (nf.Common.isDefinedAndNotNull(listingRequest)) {
- $.ajax({
- type: 'DELETE',
- url: listingRequest.uri,
- dataType: 'json'
- }).always(function() {
- $('#listing-request-status-dialog').modal('hide');
+ // completes the listing request by removing it
+ var completeListingRequest = function () {
+ $('#listing-request-status-dialog').modal('hide');
+
+ var reject = cancelled;
+
+ // ensure the listing requests are present
+ if (nf.Common.isDefinedAndNotNull(listingRequest)) {
+ $.ajax({
+ type: 'DELETE',
+ url: listingRequest.uri,
+ dataType: 'json'
+ });
// use the listing request from when the listing completed
- if (nf.Common.isDefinedAndNotNull(listingRequest.flowFileSummaries)) {
+ if (nf.Common.isEmpty(listingRequest.flowFileSummaries)) {
+ if (cancelled === false) {
+ reject = true;
+
+ // show the dialog
+ nf.Dialog.showOkDialog({
+ dialogContent: 'The queue has no FlowFiles.',
+ overlayBackground: false
+ });
+ }
+ } else {
// update the queue size
$('#total-flowfiles-count').text(nf.Common.formatInteger(listingRequest.queueSize.objectCount));
$('#total-flowfiles-size').text(nf.Common.formatDataSize(listingRequest.queueSize.byteCount));
@@ -224,76 +243,74 @@ nf.QueueListing = (function () {
queueListingData.beginUpdate();
queueListingData.setItems(listingRequest.flowFileSummaries, 'uuid');
queueListingData.endUpdate();
- } else {
- if (cancelled === false) {
- nf.Dialog.showOkDialog({
- dialogContent: 'The queue has no FlowFiles.',
- overlayBackground: false
- });
- }
}
- });
- } else {
- // close the dialog
- $('#listing-request-status-dialog').modal('hide');
- }
- };
+ } else {
+ reject = true;
+ }
- // process the listing request
- var processListingRequest = function (delay) {
- // update the percent complete
- updateProgress(listingRequest.percentCompleted);
+ if (reject) {
+ deferred.reject();
+ } else {
+ deferred.resolve();
+ }
+ };
- // update the status of the listing request
- $('#listing-request-status-message').text(listingRequest.state);
+ // process the listing request
+ var processListingRequest = function (delay) {
+ // update the percent complete
+ updateProgress(listingRequest.percentCompleted);
+
+ // update the status of the listing request
+ $('#listing-request-status-message').text(listingRequest.state);
+
+ // close the dialog if the
+ if (listingRequest.finished === true || cancelled === true) {
+ completeListingRequest();
+ } else {
+ // wait delay to poll again
+ listingRequestTimer = setTimeout(function () {
+ // clear the listing request timer
+ listingRequestTimer = null;
+
+ // schedule to poll the status again in nextDelay
+ pollListingRequest(Math.min(MAX_DELAY, delay * 2));
+ }, delay * 1000);
+ }
+ };
- // close the dialog if the
- if (listingRequest.finished === true || cancelled === true) {
- completeListingRequest();
- } else {
- // wait delay to poll again
- listingRequestTimer = setTimeout(function () {
- // clear the listing request timer
- listingRequestTimer = null;
-
- // schedule to poll the status again in nextDelay
- pollListingRequest(Math.min(MAX_DELAY, delay * 2));
- }, delay * 1000);
- }
- };
+ // schedule for the next poll iteration
+ var pollListingRequest = function (nextDelay) {
+ $.ajax({
+ type: 'GET',
+ url: listingRequest.uri,
+ dataType: 'json'
+ }).done(function(response) {
+ listingRequest = response.listingRequest;
+ processListingRequest(nextDelay);
+ }).fail(completeListingRequest).fail(nf.Common.handleAjaxError);
+ };
- // schedule for the next poll iteration
- var pollListingRequest = function (nextDelay) {
+ // issue the request to list the flow files
$.ajax({
- type: 'GET',
- url: listingRequest.uri,
+ type: 'POST',
+ url: connection.component.uri + '/listing-requests',
+ data: {
+ sortColumn: sortCol,
+ sortOrder: sortAsc ? 'asc' : 'desc'
+ },
dataType: 'json'
}).done(function(response) {
- listingRequest = response.listingRequest;
- processListingRequest(nextDelay);
- }).fail(completeListingRequest).fail(nf.Common.handleAjaxError);
- };
-
- // issue the request to list the flow files
- $.ajax({
- type: 'POST',
- url: connection.component.uri + '/listing-requests',
- data: {
- sortColumn: sortCol,
- sortOrder: sortAsc ? 'asc' : 'desc'
- },
- dataType: 'json'
- }).done(function(response) {
- // initialize the progress bar value
- updateProgress(0);
+ // initialize the progress bar value
+ updateProgress(0);
- // show the progress dialog
- $('#listing-request-status-dialog').modal('show');
+ // show the progress dialog
+ $('#listing-request-status-dialog').modal('show');
- // process the drop request
- listingRequest = response.listingRequest;
- processListingRequest(1);
- }).fail(completeListingRequest).fail(nf.Common.handleAjaxError);
+ // process the drop request
+ listingRequest = response.listingRequest;
+ processListingRequest(1);
+ }).fail(completeListingRequest).fail(nf.Common.handleAjaxError);
+ }).promise();
};
/**
@@ -518,41 +535,37 @@ nf.QueueListing = (function () {
* @param {object} The connection
*/
listQueue: function (connection) {
- // update stats
- $('#displayed-flowfiles, #total-flowfiles-count').text('0');
- $('#total-flowfiles-size').text(nf.Common.formatDataSize(0));
-
- // update the connection name
- var connectionName = nf.CanvasUtils.formatConnectionName(connection.component);
- if (connectionName === '') {
- connectionName = 'Connection';
- }
- $('#queue-listing-header-text').text(connectionName);
-
- // show the listing container
- nf.Shell.showContent('#queue-listing-container').done(function () {
- $('#queue-listing-table').removeData('connection');
+ // perform the initial listing
+ performListing(connection, DEFAULT_SORT_COL, DEFAULT_SORT_ASC).done(function () {
+ // update the connection name
+ var connectionName = nf.CanvasUtils.formatConnectionName(connection.component);
+ if (connectionName === '') {
+ connectionName = 'Connection';
+ }
+ $('#queue-listing-header-text').text(connectionName);
- // clear the table
- var queueListingGrid = $('#queue-listing-table').data('gridInstance');
- if (nf.Common.isDefinedAndNotNull(queueListingGrid)) {
- var queueListingData = queueListingGrid.getData();
+ // show the listing container
+ nf.Shell.showContent('#queue-listing-container').done(function () {
+ $('#queue-listing-table').removeData('connection');
- // clear the flowfiles
- queueListingData.beginUpdate();
- queueListingData.setItems([], 'uuid');
- queueListingData.endUpdate();
- }
- });
+ // clear the table
+ var queueListingGrid = $('#queue-listing-table').data('gridInstance');
+ if (nf.Common.isDefinedAndNotNull(queueListingGrid)) {
+ var queueListingData = queueListingGrid.getData();
- // adjust the table size
- resetTableSize();
+ // clear the flowfiles
+ queueListingData.beginUpdate();
+ queueListingData.setItems([], 'uuid');
+ queueListingData.endUpdate();
+ }
+ });
- // store the connection for access later
- $('#queue-listing-table').data('connection', connection);
+ // adjust the table size
+ resetTableSize();
- // perform the initial listing
- performListing(connection, DEFAULT_SORT_COL, DEFAULT_SORT_ASC);
+ // store the connection for access later
+ $('#queue-listing-table').data('connection', connection);
+ });
}
};
}());
\ No newline at end of file