Repository: nifi Updated Branches: refs/heads/NIFI-108-2 [created] b212e7516
NIFI-108: - Removing sort from UI. - Addressing issues with listing and flowfile retrieval when clustered. - Making the context menu item available when source and destination are still running. Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/b212e751 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/b212e751 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/b212e751 Branch: refs/heads/NIFI-108-2 Commit: b212e751654f2eb410307c4788daa32ff84fe334 Parents: 8639513 Author: Matt Gilman <[email protected]> Authored: Thu Jan 7 15:59:02 2016 -0500 Committer: Matt Gilman <[email protected]> Committed: Thu Jan 7 15:59:02 2016 -0500 ---------------------------------------------------------------------- .../src/main/asciidoc/images/iconDetails.png | Bin 0 -> 549 bytes .../nifi/web/api/dto/ListingRequestDTO.java | 26 ------ .../cluster/manager/impl/WebClusterManager.java | 23 ++--- .../org/apache/nifi/web/NiFiServiceFacade.java | 22 ++--- .../nifi/web/StandardNiFiServiceFacade.java | 92 +++++++++---------- .../apache/nifi/web/api/ConnectionResource.java | 61 +++--------- .../org/apache/nifi/web/api/dto/DtoFactory.java | 2 - .../org/apache/nifi/web/dao/ConnectionDAO.java | 9 +- .../web/dao/impl/StandardConnectionDAO.java | 32 +++---- .../src/main/webapp/js/nf/canvas/nf-actions.js | 2 +- .../main/webapp/js/nf/canvas/nf-context-menu.js | 2 +- .../webapp/js/nf/canvas/nf-queue-listing.js | 49 ++++------ 12 files changed, 118 insertions(+), 202 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-docs/src/main/asciidoc/images/iconDetails.png ---------------------------------------------------------------------- diff --git a/nifi-docs/src/main/asciidoc/images/iconDetails.png b/nifi-docs/src/main/asciidoc/images/iconDetails.png new file mode 100644 index 0000000..fe6b61f Binary files /dev/null and b/nifi-docs/src/main/asciidoc/images/iconDetails.png differ http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ListingRequestDTO.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ListingRequestDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ListingRequestDTO.java index e29f41f..67c8389 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ListingRequestDTO.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ListingRequestDTO.java @@ -38,8 +38,6 @@ public class ListingRequestDTO { private Integer percentCompleted; private Boolean finished; private String failureReason; - private String sortColumn; - private String sortDirection; private Integer maxResults; private Integer totalStepCount; private Integer completedStepCount; @@ -178,30 +176,6 @@ public class ListingRequestDTO { } /** - * @return the column on which the listing is sorted - */ - @ApiModelProperty(value = "The column on which the FlowFiles are sorted.") - public String getSortColumn() { - return sortColumn; - } - - public void setSortColumn(String sortColumn) { - this.sortColumn = sortColumn; - } - - /** - * @return the direction in which the FlowFiles are sorted - */ - @ApiModelProperty(value = "The direction in which the FlowFiles are sorted. Either ASCENDING or DESCENDING.") - public String getSortDirection() { - return sortDirection; - } - - public void setSortDirection(String sortDirection) { - this.sortDirection = sortDirection; - } - - /** * @return the maximum number of FlowFileSummary objects to return */ @ApiModelProperty(value = "The maximum number of FlowFileSummary objects to return") http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java index 55e58ac..7b9e14c 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java @@ -2447,7 +2447,7 @@ public class WebClusterManager implements HttpClusterManager, ProtocolHandler, C } private static boolean isListFlowFilesEndpoint(final URI uri, final String method) { - if ("GET".equalsIgnoreCase(method) && LISTING_REQUEST_URI.matcher(uri.getPath()).matches()) { + if (("GET".equalsIgnoreCase(method) || "DELETE".equalsIgnoreCase(method)) && LISTING_REQUEST_URI.matcher(uri.getPath()).matches()) { return true; } else if ("POST".equalsIgnoreCase(method) && LISTING_REQUESTS_URI.matcher(uri.getPath()).matches()) { return true; @@ -2516,7 +2516,7 @@ public class WebClusterManager implements HttpClusterManager, ProtocolHandler, C || isProvenanceQueryEndpoint(uri, method) || isProvenanceEventEndpoint(uri, method) || isControllerServicesEndpoint(uri, method) || isControllerServiceEndpoint(uri, method) || isControllerServiceReferenceEndpoint(uri, method) || isReportingTasksEndpoint(uri, method) || isReportingTaskEndpoint(uri, method) - || isDropRequestEndpoint(uri, method); + || isDropRequestEndpoint(uri, method) || isListFlowFilesEndpoint(uri, method); } private void mergeProcessorValidationErrors(final ProcessorDTO processor, Map<NodeIdentifier, ProcessorDTO> processorMap) { @@ -2860,8 +2860,7 @@ public class WebClusterManager implements HttpClusterManager, ProtocolHandler, C * @param listingRequestMap the mapping of all responses being merged */ private void mergeListingRequests(final ListingRequestDTO listingRequest, final Map<NodeIdentifier, ListingRequestDTO> listingRequestMap) { - final Comparator<FlowFileSummaryDTO> comparator = FlowFileSummaries.createDTOComparator( - SortColumn.valueOf(listingRequest.getSortColumn()), SortDirection.valueOf(listingRequest.getSortDirection())); + final Comparator<FlowFileSummaryDTO> comparator = FlowFileSummaries.createDTOComparator(SortColumn.QUEUE_POSITION, SortDirection.ASCENDING); final NavigableSet<FlowFileSummaryDTO> flowFileSummaries = new TreeSet<>(comparator); @@ -2898,15 +2897,17 @@ public class WebClusterManager implements HttpClusterManager, ProtocolHandler, C state = nodeState; } - for (final FlowFileSummaryDTO summaryDTO : nodeRequest.getFlowFileSummaries()) { - summaryDTO.setClusterNodeId(nodeIdentifier.getId()); - summaryDTO.setClusterNodeAddress(nodeAddress); + if (nodeRequest.getFlowFileSummaries() != null) { + for (final FlowFileSummaryDTO summaryDTO : nodeRequest.getFlowFileSummaries()) { + summaryDTO.setClusterNodeId(nodeIdentifier.getId()); + summaryDTO.setClusterNodeAddress(nodeAddress); - flowFileSummaries.add(summaryDTO); + flowFileSummaries.add(summaryDTO); - // Keep the set from growing beyond our max - if (flowFileSummaries.size() > listingRequest.getMaxResults()) { - flowFileSummaries.pollLast(); + // Keep the set from growing beyond our max + if (flowFileSummaries.size() > listingRequest.getMaxResults()) { + flowFileSummaries.pollLast(); + } } } http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java index 4bc1222..150dd67 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java @@ -16,25 +16,22 @@ */ package org.apache.nifi.web; -import java.util.Collection; -import java.util.Date; -import java.util.Set; import org.apache.nifi.controller.ScheduledState; - -import org.apache.nifi.controller.queue.SortColumn; -import org.apache.nifi.controller.queue.SortDirection; import org.apache.nifi.controller.repository.claim.ContentDirection; import org.apache.nifi.controller.service.ControllerServiceState; import org.apache.nifi.web.api.dto.BulletinBoardDTO; import org.apache.nifi.web.api.dto.BulletinQueryDTO; import org.apache.nifi.web.api.dto.ClusterDTO; +import org.apache.nifi.web.api.dto.ComponentHistoryDTO; import org.apache.nifi.web.api.dto.ConnectionDTO; import org.apache.nifi.web.api.dto.ControllerConfigurationDTO; import org.apache.nifi.web.api.dto.ControllerDTO; import org.apache.nifi.web.api.dto.ControllerServiceDTO; +import org.apache.nifi.web.api.dto.ControllerServiceReferencingComponentDTO; import org.apache.nifi.web.api.dto.CounterDTO; import org.apache.nifi.web.api.dto.CountersDTO; import org.apache.nifi.web.api.dto.DocumentedTypeDTO; +import org.apache.nifi.web.api.dto.DropRequestDTO; import org.apache.nifi.web.api.dto.FlowFileDTO; import org.apache.nifi.web.api.dto.FlowSnippetDTO; import org.apache.nifi.web.api.dto.FunnelDTO; @@ -45,9 +42,6 @@ import org.apache.nifi.web.api.dto.NodeSystemDiagnosticsDTO; import org.apache.nifi.web.api.dto.PortDTO; import org.apache.nifi.web.api.dto.ProcessGroupDTO; import org.apache.nifi.web.api.dto.ProcessorDTO; -import org.apache.nifi.web.api.dto.ComponentHistoryDTO; -import org.apache.nifi.web.api.dto.ControllerServiceReferencingComponentDTO; -import org.apache.nifi.web.api.dto.DropRequestDTO; import org.apache.nifi.web.api.dto.PropertyDescriptorDTO; import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO; import org.apache.nifi.web.api.dto.RemoteProcessGroupPortDTO; @@ -61,8 +55,8 @@ import org.apache.nifi.web.api.dto.UserGroupDTO; import org.apache.nifi.web.api.dto.action.ActionDTO; import org.apache.nifi.web.api.dto.action.HistoryDTO; import org.apache.nifi.web.api.dto.action.HistoryQueryDTO; -import org.apache.nifi.web.api.dto.provenance.ProvenanceEventDTO; import org.apache.nifi.web.api.dto.provenance.ProvenanceDTO; +import org.apache.nifi.web.api.dto.provenance.ProvenanceEventDTO; import org.apache.nifi.web.api.dto.provenance.ProvenanceOptionsDTO; import org.apache.nifi.web.api.dto.provenance.lineage.LineageDTO; import org.apache.nifi.web.api.dto.search.SearchResultsDTO; @@ -78,6 +72,10 @@ import org.apache.nifi.web.api.dto.status.NodeStatusDTO; import org.apache.nifi.web.api.dto.status.ProcessGroupStatusDTO; import org.apache.nifi.web.api.dto.status.StatusHistoryDTO; +import java.util.Collection; +import java.util.Date; +import java.util.Set; + /** * Defines the NiFiServiceFacade interface. */ @@ -585,11 +583,9 @@ public interface NiFiServiceFacade { * @param groupId group * @param connectionId The ID of the connection * @param listingRequestId The ID of the listing request - * @param column sort column - * @param direction sort direction * @return The ListingRequest */ - ListingRequestDTO createFlowFileListingRequest(String groupId, String connectionId, String listingRequestId, SortColumn column, SortDirection direction); + ListingRequestDTO createFlowFileListingRequest(String groupId, String connectionId, String listingRequestId); /** * Gets a new flow file listing request. http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java index 2f92588..8f9402c 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java @@ -16,25 +16,8 @@ */ package org.apache.nifi.web; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.Set; -import java.util.TimeZone; -import java.util.UUID; -import java.util.concurrent.TimeUnit; - -import javax.ws.rs.WebApplicationException; - +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.nifi.action.Action; import org.apache.nifi.action.Component; import org.apache.nifi.action.FlowChangeAction; @@ -53,18 +36,23 @@ import org.apache.nifi.cluster.manager.exception.UnknownNodeException; import org.apache.nifi.cluster.manager.impl.WebClusterManager; import org.apache.nifi.cluster.node.Node; import org.apache.nifi.cluster.protocol.NodeIdentifier; +import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.components.Validator; import org.apache.nifi.connectable.Connection; import org.apache.nifi.connectable.Funnel; import org.apache.nifi.connectable.Port; import org.apache.nifi.controller.Counter; import org.apache.nifi.controller.ProcessorNode; +import org.apache.nifi.controller.ReportingTaskNode; +import org.apache.nifi.controller.ScheduledState; import org.apache.nifi.controller.Snippet; import org.apache.nifi.controller.Template; import org.apache.nifi.controller.label.Label; -import org.apache.nifi.controller.queue.SortColumn; -import org.apache.nifi.controller.queue.SortDirection; import org.apache.nifi.controller.repository.claim.ContentDirection; +import org.apache.nifi.controller.service.ControllerServiceNode; +import org.apache.nifi.controller.service.ControllerServiceReference; +import org.apache.nifi.controller.service.ControllerServiceState; import org.apache.nifi.controller.status.ConnectionStatus; import org.apache.nifi.controller.status.PortStatus; import org.apache.nifi.controller.status.ProcessGroupStatus; @@ -82,9 +70,7 @@ import org.apache.nifi.remote.RootGroupPort; import org.apache.nifi.reporting.Bulletin; import org.apache.nifi.reporting.BulletinQuery; import org.apache.nifi.reporting.BulletinRepository; -import org.apache.nifi.web.api.dto.FlowFileDTO; -import org.apache.nifi.web.api.dto.ListingRequestDTO; -import org.apache.nifi.web.security.user.NiFiUserUtils; +import org.apache.nifi.reporting.ComponentType; import org.apache.nifi.user.AccountStatus; import org.apache.nifi.user.NiFiUser; import org.apache.nifi.user.NiFiUserGroup; @@ -94,16 +80,22 @@ import org.apache.nifi.web.api.dto.BulletinBoardDTO; import org.apache.nifi.web.api.dto.BulletinDTO; import org.apache.nifi.web.api.dto.BulletinQueryDTO; import org.apache.nifi.web.api.dto.ClusterDTO; +import org.apache.nifi.web.api.dto.ComponentHistoryDTO; import org.apache.nifi.web.api.dto.ConnectionDTO; import org.apache.nifi.web.api.dto.ControllerConfigurationDTO; import org.apache.nifi.web.api.dto.ControllerDTO; +import org.apache.nifi.web.api.dto.ControllerServiceDTO; +import org.apache.nifi.web.api.dto.ControllerServiceReferencingComponentDTO; import org.apache.nifi.web.api.dto.CounterDTO; import org.apache.nifi.web.api.dto.CountersDTO; import org.apache.nifi.web.api.dto.DocumentedTypeDTO; +import org.apache.nifi.web.api.dto.DropRequestDTO; import org.apache.nifi.web.api.dto.DtoFactory; +import org.apache.nifi.web.api.dto.FlowFileDTO; import org.apache.nifi.web.api.dto.FlowSnippetDTO; import org.apache.nifi.web.api.dto.FunnelDTO; import org.apache.nifi.web.api.dto.LabelDTO; +import org.apache.nifi.web.api.dto.ListingRequestDTO; import org.apache.nifi.web.api.dto.NodeDTO; import org.apache.nifi.web.api.dto.NodeSystemDiagnosticsDTO; import org.apache.nifi.web.api.dto.PortDTO; @@ -111,10 +103,11 @@ import org.apache.nifi.web.api.dto.PreviousValueDTO; import org.apache.nifi.web.api.dto.ProcessGroupDTO; import org.apache.nifi.web.api.dto.ProcessorConfigDTO; import org.apache.nifi.web.api.dto.ProcessorDTO; -import org.apache.nifi.web.api.dto.ComponentHistoryDTO; +import org.apache.nifi.web.api.dto.PropertyDescriptorDTO; import org.apache.nifi.web.api.dto.PropertyHistoryDTO; import org.apache.nifi.web.api.dto.RemoteProcessGroupDTO; import org.apache.nifi.web.api.dto.RemoteProcessGroupPortDTO; +import org.apache.nifi.web.api.dto.ReportingTaskDTO; import org.apache.nifi.web.api.dto.RevisionDTO; import org.apache.nifi.web.api.dto.SnippetDTO; import org.apache.nifi.web.api.dto.SystemDiagnosticsDTO; @@ -131,6 +124,7 @@ import org.apache.nifi.web.api.dto.provenance.lineage.LineageDTO; import org.apache.nifi.web.api.dto.search.SearchResultsDTO; import org.apache.nifi.web.api.dto.status.ClusterConnectionStatusDTO; import org.apache.nifi.web.api.dto.status.ClusterPortStatusDTO; +import org.apache.nifi.web.api.dto.status.ClusterProcessGroupStatusDTO; import org.apache.nifi.web.api.dto.status.ClusterProcessorStatusDTO; import org.apache.nifi.web.api.dto.status.ClusterRemoteProcessGroupStatusDTO; import org.apache.nifi.web.api.dto.status.ClusterStatusDTO; @@ -138,6 +132,7 @@ import org.apache.nifi.web.api.dto.status.ClusterStatusHistoryDTO; import org.apache.nifi.web.api.dto.status.ControllerStatusDTO; import org.apache.nifi.web.api.dto.status.NodeConnectionStatusDTO; import org.apache.nifi.web.api.dto.status.NodePortStatusDTO; +import org.apache.nifi.web.api.dto.status.NodeProcessGroupStatusDTO; import org.apache.nifi.web.api.dto.status.NodeProcessorStatusDTO; import org.apache.nifi.web.api.dto.status.NodeRemoteProcessGroupStatusDTO; import org.apache.nifi.web.api.dto.status.NodeStatusDTO; @@ -145,40 +140,41 @@ import org.apache.nifi.web.api.dto.status.ProcessGroupStatusDTO; import org.apache.nifi.web.api.dto.status.StatusHistoryDTO; import org.apache.nifi.web.controller.ControllerFacade; import org.apache.nifi.web.dao.ConnectionDAO; +import org.apache.nifi.web.dao.ControllerServiceDAO; import org.apache.nifi.web.dao.FunnelDAO; import org.apache.nifi.web.dao.LabelDAO; import org.apache.nifi.web.dao.PortDAO; import org.apache.nifi.web.dao.ProcessGroupDAO; import org.apache.nifi.web.dao.ProcessorDAO; import org.apache.nifi.web.dao.RemoteProcessGroupDAO; +import org.apache.nifi.web.dao.ReportingTaskDAO; import org.apache.nifi.web.dao.SnippetDAO; import org.apache.nifi.web.dao.TemplateDAO; -import org.apache.nifi.web.util.SnippetUtils; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.nifi.components.PropertyDescriptor; -import org.apache.nifi.components.Validator; -import org.apache.nifi.controller.ReportingTaskNode; -import org.apache.nifi.controller.ScheduledState; -import org.apache.nifi.controller.service.ControllerServiceNode; -import org.apache.nifi.controller.service.ControllerServiceReference; -import org.apache.nifi.controller.service.ControllerServiceState; -import org.apache.nifi.reporting.ComponentType; -import org.apache.nifi.web.api.dto.ControllerServiceDTO; -import org.apache.nifi.web.api.dto.ControllerServiceReferencingComponentDTO; -import org.apache.nifi.web.api.dto.DropRequestDTO; -import org.apache.nifi.web.api.dto.PropertyDescriptorDTO; -import org.apache.nifi.web.api.dto.ReportingTaskDTO; -import org.apache.nifi.web.api.dto.status.ClusterProcessGroupStatusDTO; -import org.apache.nifi.web.api.dto.status.NodeProcessGroupStatusDTO; -import org.apache.nifi.web.dao.ControllerServiceDAO; -import org.apache.nifi.web.dao.ReportingTaskDAO; import org.apache.nifi.web.security.user.NewAccountRequest; +import org.apache.nifi.web.security.user.NiFiUserUtils; +import org.apache.nifi.web.util.SnippetUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.access.AccessDeniedException; +import javax.ws.rs.WebApplicationException; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import java.util.Set; +import java.util.TimeZone; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + /** * Implementation of NiFiServiceFacade that performs revision checking. */ @@ -1088,8 +1084,8 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { } @Override - public ListingRequestDTO createFlowFileListingRequest(String groupId, String connectionId, String listingRequestId, SortColumn column, SortDirection direction) { - return dtoFactory.createListingRequestDTO(connectionDAO.createFlowFileListingRequest(groupId, connectionId, listingRequestId, column, direction)); + public ListingRequestDTO createFlowFileListingRequest(String groupId, String connectionId, String listingRequestId) { + return dtoFactory.createListingRequestDTO(connectionDAO.createFlowFileListingRequest(groupId, connectionId, listingRequestId)); } @Override http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java index 5831d6d..738da04 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java @@ -29,8 +29,6 @@ import org.apache.nifi.cluster.manager.exception.UnknownNodeException; import org.apache.nifi.cluster.manager.impl.WebClusterManager; import org.apache.nifi.cluster.node.Node; import org.apache.nifi.cluster.protocol.NodeIdentifier; -import org.apache.nifi.controller.queue.SortColumn; -import org.apache.nifi.controller.queue.SortDirection; import org.apache.nifi.stream.io.StreamUtils; import org.apache.nifi.util.NiFiProperties; import org.apache.nifi.web.ConfigurationSnapshot; @@ -1173,6 +1171,11 @@ public class ConnectionResource extends ApplicationResource { ) @PathParam("connection-id") String id) { + // replicate if cluster manager + if (properties.isClusterManager()) { + return clusterManager.applyRequest(HttpMethod.DELETE, getAbsolutePath(), getRequestParameters(true), getHeaders()).getResponse(); + } + // defer to the new endpoint that references /drop-requests in the URI return createDropRequest(httpServletRequest, clientId, id); } @@ -1186,7 +1189,7 @@ public class ConnectionResource extends ApplicationResource { * @return A listRequestEntity */ @POST - @Consumes(MediaType.WILDCARD) + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @Path("/{connection-id}/listing-requests") @PreAuthorize("hasRole('ROLE_DFM')") @@ -1213,47 +1216,16 @@ public class ConnectionResource extends ApplicationResource { value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response.", required = false ) - @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, + @FormParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @ApiParam( value = "The connection id.", required = true ) - @PathParam("connection-id") String id, - @ApiParam( - value = "The sort column.", - required = false, - defaultValue = "QUEUE_POSITION", - allowableValues = "QUEUE_POSITION, FLOWFILE_UUID, FILENAME, FLOWFILE_SIZE, QUEUED_DURATION, FLOWFILE_AGE, PENALIZATION" - ) - @FormParam("sortColumn") String sortColumn, - @ApiParam( - value = "The sort direction.", - required = false, - defaultValue = "asc", - allowableValues = "asc, desc" - ) - @FormParam("sortOrder") @DefaultValue("asc") String sortOrder) { - - // parse the sort column - final SortColumn column; - if (sortColumn == null) { - column = SortColumn.QUEUE_POSITION; - } else { - try { - column = SortColumn.valueOf(sortColumn); - } catch (final IllegalArgumentException iae) { - throw new IllegalArgumentException(String.format("Sort Column: Value must be one of [%s]", StringUtils.join(SortColumn.values(), ", "))); - } - } - - // normalize the sort order - if (!sortOrder.equalsIgnoreCase("asc") && !sortOrder.equalsIgnoreCase("desc")) { - throw new IllegalArgumentException("The sort order must be 'asc' or 'desc'."); - } + @PathParam("connection-id") String id) { // replicate if cluster manager if (properties.isClusterManager()) { - return clusterManager.applyRequest(HttpMethod.GET, getAbsolutePath(), getRequestParameters(true), getHeaders()).getResponse(); + return clusterManager.applyRequest(HttpMethod.POST, getAbsolutePath(), getRequestParameters(true), getHeaders()).getResponse(); } // handle expects request (usually from the cluster manager) @@ -1263,13 +1235,6 @@ public class ConnectionResource extends ApplicationResource { return generateContinueResponse().build(); } - final SortDirection direction; - if (sortOrder.equalsIgnoreCase("asc")) { - direction = SortDirection.ASCENDING; - } else { - direction = SortDirection.DESCENDING; - } - // ensure the id is the same across the cluster final String listingRequestId; final ClusterContext clusterContext = ClusterContextThreadLocal.getContext(); @@ -1280,7 +1245,7 @@ public class ConnectionResource extends ApplicationResource { } // submit the listing request - final ListingRequestDTO listingRequest = serviceFacade.createFlowFileListingRequest(groupId, id, listingRequestId, column, direction); + final ListingRequestDTO listingRequest = serviceFacade.createFlowFileListingRequest(groupId, id, listingRequestId); populateRemainingFlowFileListingContent(id, listingRequest); // create the revision @@ -1452,7 +1417,7 @@ public class ConnectionResource extends ApplicationResource { * @return A dropRequestEntity */ @POST - @Consumes(MediaType.WILDCARD) + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @Path("/{connection-id}/drop-requests") @PreAuthorize("hasRole('ROLE_DFM')") @@ -1479,7 +1444,7 @@ public class ConnectionResource extends ApplicationResource { value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response.", required = false ) - @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, + @FormParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @ApiParam( value = "The connection id.", required = true @@ -1488,7 +1453,7 @@ public class ConnectionResource extends ApplicationResource { // replicate if cluster manager if (properties.isClusterManager()) { - return clusterManager.applyRequest(HttpMethod.DELETE, getAbsolutePath(), getRequestParameters(true), getHeaders()).getResponse(); + return clusterManager.applyRequest(HttpMethod.POST, getAbsolutePath(), getRequestParameters(true), getHeaders()).getResponse(); } // handle expects request (usually from the cluster manager) http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java index 6433e9f..b7aa387 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java @@ -378,8 +378,6 @@ public final class DtoFactory { dto.setFailureReason(listingRequest.getFailureReason()); dto.setFinished(isListingRequestComplete(listingRequest.getState())); dto.setMaxResults(listingRequest.getMaxResults()); - dto.setSortColumn(listingRequest.getSortColumn().name()); - dto.setSortDirection(listingRequest.getSortDirection().name()); dto.setTotalStepCount(listingRequest.getTotalStepCount()); dto.setCompletedStepCount(listingRequest.getCompletedStepCount()); dto.setPercentCompleted(listingRequest.getCompletionPercentage()); http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java index 932cc23..2e1e8fd 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java @@ -16,16 +16,15 @@ */ package org.apache.nifi.web.dao; -import java.util.Set; import org.apache.nifi.connectable.Connection; import org.apache.nifi.controller.queue.DropFlowFileStatus; import org.apache.nifi.controller.queue.ListFlowFileStatus; -import org.apache.nifi.controller.queue.SortColumn; -import org.apache.nifi.controller.queue.SortDirection; import org.apache.nifi.controller.repository.FlowFileRecord; import org.apache.nifi.web.DownloadableContent; import org.apache.nifi.web.api.dto.ConnectionDTO; +import java.util.Set; + public interface ConnectionDAO { /** @@ -118,11 +117,9 @@ public interface ConnectionDAO { * @param groupId group id * @param id connection id * @param listingRequestId listing request id - * @param column sort column - * @param direction sort direction * @return The listing request status */ - ListFlowFileStatus createFlowFileListingRequest(String groupId, String id, String listingRequestId, SortColumn column, SortDirection direction); + ListFlowFileStatus createFlowFileListingRequest(String groupId, String id, String listingRequestId); /** * Verifies the listing can be processed. http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java index d5fb713..c5c6b07 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java @@ -16,18 +16,6 @@ */ package org.apache.nifi.web.dao.impl; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.regex.Matcher; -import javax.ws.rs.WebApplicationException; - import org.apache.nifi.admin.service.UserService; import org.apache.nifi.authorization.DownloadAuthorization; import org.apache.nifi.connectable.Connectable; @@ -40,14 +28,12 @@ import org.apache.nifi.controller.exception.ValidationException; import org.apache.nifi.controller.queue.DropFlowFileStatus; import org.apache.nifi.controller.queue.FlowFileQueue; import org.apache.nifi.controller.queue.ListFlowFileStatus; -import org.apache.nifi.controller.queue.SortColumn; -import org.apache.nifi.controller.queue.SortDirection; import org.apache.nifi.controller.repository.ContentNotFoundException; import org.apache.nifi.controller.repository.FlowFileRecord; +import org.apache.nifi.flowfile.FlowFilePrioritizer; import org.apache.nifi.flowfile.attributes.CoreAttributes; import org.apache.nifi.groups.ProcessGroup; import org.apache.nifi.groups.RemoteProcessGroup; -import org.apache.nifi.flowfile.FlowFilePrioritizer; import org.apache.nifi.processor.Relationship; import org.apache.nifi.remote.RemoteGroupPort; import org.apache.nifi.user.NiFiUser; @@ -64,6 +50,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.access.AccessDeniedException; +import javax.ws.rs.WebApplicationException; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; + public class StandardConnectionDAO extends ComponentDAO implements ConnectionDAO { private static final Logger logger = LoggerFactory.getLogger(StandardConnectionDAO.class); @@ -375,14 +373,14 @@ public class StandardConnectionDAO extends ComponentDAO implements ConnectionDAO } @Override - public ListFlowFileStatus createFlowFileListingRequest(String groupId, String id, String listingRequestId, SortColumn column, SortDirection direction) { + public ListFlowFileStatus createFlowFileListingRequest(String groupId, String id, String listingRequestId) { final Connection connection = locateConnection(groupId, id); final FlowFileQueue queue = connection.getFlowFileQueue(); // ensure we can list verifyList(queue); - return queue.listFlowFiles(listingRequestId, 100, column, direction); + return queue.listFlowFiles(listingRequestId, 100); } @Override http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js index 2f1bbd3..84d3ee3 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js @@ -975,7 +975,7 @@ nf.Actions = (function () { }); } else { // nothing was removed - nf.Dialog.showYesNoDialog({ + nf.Dialog.showOkDialog({ dialogContent: 'No FlowFiles were removed.', overlayBackground: false }); http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/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 55df1e9..089ac9e 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 @@ -307,7 +307,7 @@ nf.ContextMenu = (function () { * @param {selection} selection */ var canListQueue = function (selection) { - return nf.Common.isDFM() && isConnection(selection) && nf.CanvasUtils.supportsModification(selection); + return nf.Common.isDFM() && isConnection(selection); }; /** http://git-wip-us.apache.org/repos/asf/nifi/blob/b212e751/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 3c33f3a..6bb6df8 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 @@ -22,9 +22,6 @@ */ nf.QueueListing = (function () { - var DEFAULT_SORT_COL = 'QUEUE_POSITION'; - var DEFAULT_SORT_ASC = true; - /** * Initializes the listing request status dialog. */ @@ -78,7 +75,7 @@ nf.QueueListing = (function () { var dataUri = $('#flowfile-uri').text() + '/content'; // conditionally include the cluster node id - var clusterNodeId = $('#flowfile-cluster-node-id').text();; + var clusterNodeId = $('#flowfile-cluster-node-id').text(); if (!nf.Common.isBlank(clusterNodeId)) { var parameters = { 'clusterNodeId': clusterNodeId @@ -158,10 +155,8 @@ nf.QueueListing = (function () { * Performs a listing on the specified connection. * * @param connection the connection - * @param sortCol the sort column - * @param sortAsc if sort is asc */ - var performListing = function (connection, sortCol, sortAsc) { + var performListing = function (connection) { var MAX_DELAY = 4; var cancelled = false; var listingRequest = null; @@ -290,10 +285,6 @@ nf.QueueListing = (function () { $.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 @@ -332,9 +323,15 @@ nf.QueueListing = (function () { } }; + var params = {}; + if (nf.Common.isDefinedAndNotNull(flowFileSummary.clusterNodeId)) { + params['clusterNodeId'] = flowFileSummary.clusterNodeId; + } + $.ajax({ type: 'GET', url: flowFileSummary.uri, + data: params, dataType: 'json' }).done(function(response) { var flowFile = response.flowFile; @@ -352,12 +349,12 @@ nf.QueueListing = (function () { $('#flowfile-penalized').text(flowFile.penalized === true ? 'Yes' : 'No'); // conditionally show the cluster node identifier - if (nf.Common.isDefinedAndNotNull(flowFile.clusterNodeId)) { + if (nf.Common.isDefinedAndNotNull(flowFileSummary.clusterNodeId)) { // save the cluster node id - $('#flowfile-cluster-node-id').text(flowFile.clusterNodeId); + $('#flowfile-cluster-node-id').text(flowFileSummary.clusterNodeId); // render the cluster node address - formatFlowFileDetail('Node Address', flowFile.clusterNodeAddress); + formatFlowFileDetail('Node Address', flowFileSummary.clusterNodeAddress); } if (nf.Common.isDefinedAndNotNull(flowFile.contentClaimContainer)) { @@ -452,13 +449,13 @@ nf.QueueListing = (function () { // initialize the queue listing table var queueListingColumns = [ {id: 'moreDetails', field: 'moreDetails', name: ' ', sortable: false, resizable: false, formatter: moreDetailsFormatter, width: 50, maxWidth: 50}, - {id: 'QUEUE_POSITION', name: 'Position', field: 'position', sortable: true, resizable: false, width: 75, maxWidth: 75}, - {id: 'FLOWFILE_UUID', name: 'UUID', field: 'uuid', sortable: true, resizable: true}, - {id: 'FILENAME', name: 'Filename', field: 'filename', sortable: true, resizable: true}, - {id: 'FLOWFILE_SIZE', name: 'File Size', field: 'size', sortable: true, resizable: true, defaultSortAsc: false, formatter: dataSizeFormatter}, - {id: 'QUEUED_DURATION', name: 'Queued Duration', field: 'queuedDuration', sortable: true, resizable: true, formatter: durationFormatter}, - {id: 'FLOWFILE_AGE', name: 'Lineage Duration', field: 'lineageDuration', sortable: true, resizable: true, formatter: durationFormatter}, - {id: 'PENALIZATION', name: 'Penalized', field: 'penalized', sortable: true, resizable: false, width: 100, maxWidth: 100, formatter: penalizedFormatter} + {id: 'QUEUE_POSITION', name: 'Position', field: 'position', sortable: false, resizable: false, width: 75, maxWidth: 75}, + {id: 'FLOWFILE_UUID', name: 'UUID', field: 'uuid', sortable: false, resizable: true}, + {id: 'FILENAME', name: 'Filename', field: 'filename', sortable: false, resizable: true}, + {id: 'FLOWFILE_SIZE', name: 'File Size', field: 'size', sortable: false, resizable: true, defaultSortAsc: false, formatter: dataSizeFormatter}, + {id: 'QUEUED_DURATION', name: 'Queued Duration', field: 'queuedDuration', sortable: false, resizable: true, formatter: durationFormatter}, + {id: 'FLOWFILE_AGE', name: 'Lineage Duration', field: 'lineageDuration', sortable: false, resizable: true, formatter: durationFormatter}, + {id: 'PENALIZATION', name: 'Penalized', field: 'penalized', sortable: false, resizable: false, width: 100, maxWidth: 100, formatter: penalizedFormatter} ]; // conditionally show the cluster node identifier @@ -484,10 +481,6 @@ nf.QueueListing = (function () { var queueListingGrid = new Slick.Grid('#queue-listing-table', queueListingData, queueListingColumns, queueListingOptions); queueListingGrid.setSelectionModel(new Slick.RowSelectionModel()); queueListingGrid.registerPlugin(new Slick.AutoTooltips()); - queueListingGrid.onSort.subscribe(function (e, args) { - var connection = $('#queue-listing-table').data('connection'); - performListing(connection, args.sortCol.id, args.sortAsc); - }); // configure a click listener queueListingGrid.onClick.subscribe(function (e, args) { @@ -530,11 +523,8 @@ nf.QueueListing = (function () { * @param {object} The connection */ listQueue: function (connection) { - var queueListingGrid = $('#queue-listing-table').data('gridInstance'); - queueListingGrid.setSortColumn(DEFAULT_SORT_COL, DEFAULT_SORT_ASC); - // perform the initial listing - performListing(connection, DEFAULT_SORT_COL, DEFAULT_SORT_ASC).done(function () { + performListing(connection).done(function () { // update the connection name var connectionName = nf.CanvasUtils.formatConnectionName(connection.component); if (connectionName === '') { @@ -547,6 +537,7 @@ nf.QueueListing = (function () { $('#queue-listing-table').removeData('connection'); // clear the table + var queueListingGrid = $('#queue-listing-table').data('gridInstance'); var queueListingData = queueListingGrid.getData(); // clear the flowfiles
