This commit is contained in:
Mark Payne 2015-02-02 15:52:26 -05:00
commit 54e922c8f5
97 changed files with 992 additions and 1142 deletions

View File

@ -24,7 +24,7 @@
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-maven-plugin</artifactId>
<version>1.0.0-incubating-SNAPSHOT</version>
<version>1.0.1-incubating-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<description>Apache NiFi Nar Plugin. It is currently a part of the Apache Incubator.</description>
<url>http://nifi.incubator.apache.org/maven-site/</url>

View File

@ -18,9 +18,9 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-api</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>jar</packaging>
</project>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-assembly</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<description>This is the assembly Apache NiFi (incubating)</description>
<build>
@ -206,7 +206,7 @@
<nifi.restore.directory />
<nifi.ui.banner.text></nifi.ui.banner.text>
<nifi.ui.banner.text />
<nifi.ui.autorefresh.interval>30 sec</nifi.ui.autorefresh.interval>
<nifi.nar.library.directory>./lib</nifi.nar.library.directory>
<nifi.nar.working.directory>./work/nar/</nifi.nar.working.directory>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-bootstrap</artifactId>
<packaging>jar</packaging>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-data-provenance-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-expression-language</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-flowfile-packager</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-logging-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<description>Utilities for logging</description>
<dependencies>
<dependency>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-processor-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>

View File

@ -18,8 +18,8 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-properties</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</project>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-security-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<description>Contains security functionality.</description>
<dependencies>
<dependency>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-socket-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<description>Utilities for socket communication</description>
<dependencies>
<dependency>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>jar</packaging>
<!--
This project intentionally has no additional dependencies beyond that pulled in by the parent. It is a general purpose utility library

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-web-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-write-ahead-log</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>

View File

@ -13,13 +13,12 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-commons</artifactId>

View File

@ -1,10 +1,10 @@
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-docs</artifactId>
<build>
@ -52,7 +52,7 @@
<toc>true</toc>
<docVersion>${project.version}</docVersion>
<sectanchors>true</sectanchors>
<idprefix/>
<idprefix />
<idseparator>-</idseparator>
<docinfo1>true</docinfo1>
</attributes>

View File

@ -20,7 +20,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-maven-archetypes</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-processor-bundle-archetype</artifactId>

View File

@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-maven-archetypes</artifactId>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-mock</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-framework-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<description>NiFi: Framework Nar</description>
<dependencies>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-administration</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<build>
<resources>
<resource>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-client-dto</artifactId>
<build>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-cluster-authorization-provider</artifactId>
<dependencies>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-framework-cluster-protocol</artifactId>
<packaging>jar</packaging>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-framework-cluster-web</artifactId>
<packaging>jar</packaging>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-framework-cluster</artifactId>
<packaging>jar</packaging>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-file-authorization-provider</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<build>
<resources>
<resource>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-framework-core-api</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-framework-core</artifactId>
<packaging>jar</packaging>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-nar-utils</artifactId>
<packaging>jar</packaging>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-resources</artifactId>
<packaging>pom</packaging>

View File

@ -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>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-runtime</artifactId>
<packaging>jar</packaging>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-security</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<description>Contains security functionality common to NiFi.</description>
<dependencies>
<dependency>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-site-to-site</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<dependencies>
<dependency> <!-- This can be removed after testing.... -->
<groupId>org.apache.nifi</groupId>

View File

@ -18,8 +18,8 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-user-actions</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</project>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-custom-ui-utilities</artifactId>
<dependencies>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-jetty</artifactId>
<packaging>jar</packaging>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-api</artifactId>
@ -118,7 +118,7 @@
<classifier>sources</classifier>
<scope>provided</scope>
<optional>true</optional>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>

View File

@ -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);
}
}

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-docs</artifactId>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-error</artifactId>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-optimistic-locking</artifactId>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-security</artifactId>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-web-ui</artifactId>
<packaging>war</packaging>

View File

@ -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 {

View File

@ -109,6 +109,22 @@ nf.ClusterTable = (function () {
return nf.Common.escapeHtml(node.address) + ':' + nf.Common.escapeHtml(node.apiPort);
};
/**
* 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.
*
@ -132,6 +148,22 @@ nf.ClusterTable = (function () {
}).fail(nf.Common.handleAjaxError);
};
/**
* 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.
*
@ -155,6 +187,22 @@ nf.ClusterTable = (function () {
}).fail(nf.Common.handleAjaxError);
};
/**
* 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.
*
@ -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 + '\');"/>&nbsp;<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;"/>&nbsp;<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 += '&nbsp;<img src="images/iconPrimary.png" title="Make Primary" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.ClusterTable.makePrimary(\'' + row + '\');"/>';
actions += '&nbsp;<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: '&nbsp;', formatter: actionFormatter, resizable: false, sortable: false, width: 80, maxWidth: 80});
columnModel.push({id: 'actions', label: '&nbsp;', 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) {
@ -419,122 +572,6 @@ nf.ClusterTable = (function () {
$('#displayed-nodes').text('0');
},
/**
* 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.
*/
@ -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);
}
}
};
}());

View File

@ -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) {
@ -223,32 +258,6 @@ nf.CountersTable = (function () {
$('#displayed-counters').text('0');
},
/**
* 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.
*/

View File

@ -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');
}
}
};
}());

View File

@ -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 += '&nbsp;<img src="images/iconGoTo.png" title="Go To" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.ProvenanceTable.goTo(\'' + row + '\');"/>';
markup += '&nbsp;<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: '&nbsp;', formatter: showLineageFormatter, resizable: false, sortable: false, width: 50, maxWidth: 50});
provenanceColumns.push({id: 'actions', name: '&nbsp;', 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.
@ -909,31 +949,6 @@ nf.ProvenanceTable = (function () {
}).fail(nf.Common.handleAjaxError);
},
/**
* 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.
*/
@ -1095,36 +1110,6 @@ nf.ProvenanceTable = (function () {
}).fail(closeDialog);
},
/**
* 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.
*

View File

@ -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 + '\');"/>&nbsp;';
markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/>&nbsp;';
}
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 + '\');"/>&nbsp;';
markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-cluster-processor-status-history" style="margin-top: 2px;"/>&nbsp;';
} else {
markup += '<img src="images/iconChart.png" title="Show History" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showProcessorStatusHistory(\'' + row + '\');"/>&nbsp;';
markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-processor-status-history" style="margin-top: 2px;"/>&nbsp;';
}
}
if (isClustered) {
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterProcessorSummary(\'' + row + '\');"/>&nbsp;';
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-processor-summary" style="margin-top: 2px;"/>&nbsp;';
}
return markup;
};
// define the action column for clusters and within the shell
processorsColumnModel.push({id: 'action', name: '&nbsp;', formatter: processorActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
processorsColumnModel.push({id: 'actions', name: '&nbsp;', 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 + '\');"/>&nbsp;';
markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/>&nbsp;';
}
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 + '\');"/>&nbsp;';
markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-cluster-connection-status-history" style="margin-top: 2px;"/>&nbsp;';
} else {
markup += '<img src="images/iconChart.png" title="Show History" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showConnectionStatusHistory(\'' + row + '\');"/>&nbsp;';
markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-connection-status-history" style="margin-top: 2px;"/>&nbsp;';
}
}
if (isClustered) {
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterConnectionSummary(\'' + row + '\');"/>&nbsp;';
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-connection-summary" style="margin-top: 2px;"/>&nbsp;';
}
return markup;
};
// define the action column for clusters and within the shell
connectionsColumnModel.push({id: 'action', name: '&nbsp;', formatter: connectionActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
connectionsColumnModel.push({id: 'actions', name: '&nbsp;', 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 + '\');"/>&nbsp;';
markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/>&nbsp;';
}
if (isClustered) {
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterInputPortSummary(\'' + row + '\');"/>&nbsp;';
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-input-port-summary" style="margin-top: 2px;"/>&nbsp;';
}
return markup;
};
// define the action column for clusters and within the shell
inputPortsColumnModel.push({id: 'action', name: '&nbsp;', formatter: inputPortActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
inputPortsColumnModel.push({id: 'actions', name: '&nbsp;', 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 + '\');"/>&nbsp;';
markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/>&nbsp;';
}
if (isClustered) {
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterOutputPortSummary(\'' + row + '\');"/>&nbsp;';
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-output-port-summary" style="margin-top: 2px;"/>&nbsp;';
}
return markup;
};
// define the action column for clusters and within the shell
outputPortsColumnModel.push({id: 'action', name: '&nbsp;', formatter: outputPortActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
outputPortsColumnModel.push({id: 'actions', name: '&nbsp;', 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 + '\');"/>&nbsp;';
markup += '<img src="images/iconGoTo.png" title="Go To" class="pointer go-to" style="margin-top: 2px;"/>&nbsp;';
}
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 + '\');"/>&nbsp;';
markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-cluster-remote-process-group-status-history" style="margin-top: 2px;"/>&nbsp;';
} else {
markup += '<img src="images/iconChart.png" title="Show History" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showRemoteProcessGroupStatusHistory(\'' + row + '\');"/>&nbsp;';
markup += '<img src="images/iconChart.png" title="Show History" class="pointer show-remote-process-group-status-history" style="margin-top: 2px;"/>&nbsp;';
}
}
if (isClustered) {
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.SummaryTable.showClusterRemoteProcessGroupSummary(\'' + row + '\');"/>&nbsp;';
markup += '<img src="images/iconClusterSmall.png" title="Show Details" class="pointer show-cluster-remote-process-group-summary" style="margin-top: 2px;"/>&nbsp;';
}
return markup;
};
// define the action column for clusters and within the shell
remoteProcessGroupsColumnModel.push({id: 'action', name: '&nbsp;', formatter: remoteProcessGroupActionFormatter, resizable: false, sortable: false, width: 75, maxWidth: 75});
remoteProcessGroupsColumnModel.push({id: 'actions', name: '&nbsp;', 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');
}
}
};
}());

View File

@ -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) {

View File

@ -53,6 +53,22 @@ nf.TemplatesTable = (function () {
data.sort(comparer, sortDetails.sortAsc);
};
/**
* 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.
*
@ -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 += '&nbsp;<img src="images/iconDelete.png" title="Remove Template" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.TemplatesTable.promptToDeleteTemplate(\'' + row + '\');"/>';
markup += '&nbsp;<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();
@ -260,42 +293,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.
*/

View File

@ -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 + '\');"/>&nbsp;<img src="images/iconRevoke.png" title="Revoke Access" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.UsersTable.revokeGroupAccess(\'' + row + '\');"/>&nbsp;&nbsp;<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;"/>&nbsp;<img src="images/iconRevoke.png" title="Revoke Access" class="pointer revoke-group-access" style="margin-top: 2px;"/>&nbsp;&nbsp;<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 += '&nbsp;<img src="images/iconRevoke.png" title="Revoke Access" class="pointer" onclick="javascript:nf.UsersTable.revokeUserAccess(\'' + row + '\');"/>';
actions += '&nbsp;<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 += '&nbsp;&nbsp;<img src="images/ungroup.png" title="Ungroup" class="pointer" style="margin-top: 2px;" onclick="javascript:nf.UsersTable.ungroupUser(\'' + row + '\');"/>';
actions += '&nbsp;&nbsp;<img src="images/ungroup.png" title="Ungroup" class="pointer ungroup-user" style="margin-top: 2px;"/>';
}
} else {
actions += '&nbsp;<img src="images/iconDelete.png" title="Delete Account" class="pointer" onclick="javascript:nf.UsersTable.deleteUserAccount(\'' + row + '\');"/>';
actions += '&nbsp;<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,6 +835,182 @@ nf.UsersTable = (function () {
}
};
/**
* 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>');
}
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');
};
/**
* 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
$('#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);
// 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 {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');
};
// 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');
}
});
// 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
$('#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();
@ -816,183 +1023,6 @@ nf.UsersTable = (function () {
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);
// populate the users info
$('#user-id-revoke-dialog').val(item.id);
$('#user-name-revoke-dialog').text(item.userName);
// 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);
// 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');
}
},
/**
* 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);
// record the current group
$('#group-name-revoke-dialog').text(item.userGroup);
// show the dialog
$('#group-revoke-dialog').modal('show');
}
},
/**
* 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');
}
});
// show the dialog
$('#user-roles-dialog').modal('show');
}
},
/**
* 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
$('#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);
}
});
}
},
/**
* Update the size of the grid based on its container's current size.
*/
@ -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');
}
}
};
}());

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-web</artifactId>
<packaging>pom</packaging>
@ -38,25 +38,25 @@
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-api</artifactId>
<type>war</type>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-error</artifactId>
<type>war</type>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-docs</artifactId>
<type>war</type>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-ui</artifactId>
<type>war</type>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-framework</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>nifi-framework-core-api</module>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-framework-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<description>NiFi: Framework Bundle</description>
<modules>
@ -32,82 +32,82 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework-cluster-protocol</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework-cluster-web</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-file-authorization-provider</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-cluster-authorization-provider</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework-cluster</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-runtime</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-client-dto</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-security</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework-core-api</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-site-to-site</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework-core</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-user-actions</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-administration</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-jetty</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-optimistic-locking</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-security</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-hadoop-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-hadoop-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<dependencies>
<dependency>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-hadoop-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-hdfs-processors</artifactId>
<packaging>jar</packaging>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-hadoop-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<description>A bundle of processors that work with Hadoop</description>
<modules>
@ -32,7 +32,7 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-hdfs-processors</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -17,11 +17,11 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-hadoop-libraries-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-hadoop-libraries-nar</artifactId>
<packaging>nar</packaging>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>

View File

@ -17,11 +17,11 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-hadoop-libraries-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<description>A bundle which provides the Hadoop libraries</description>
<modules>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-jetty-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<description>NiFi: Jetty Bundle</description>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-kafka-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-kafka-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<description>NiFi NAR for interacting with Apache Kafka</description>
<dependencies>

View File

@ -16,7 +16,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-kafka-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>nifi-kafka-processors</artifactId>

View File

@ -16,7 +16,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>nifi-kafka-bundle</artifactId>
@ -30,7 +30,7 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-kafka-processors</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-provenance-repository-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-persistent-provenance-repository</artifactId>
<packaging>jar</packaging>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-provenance-repository-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-provenance-repository-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<dependencies>
<dependency>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-provenance-repository-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-volatile-provenance-repository</artifactId>
<packaging>jar</packaging>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-provenance-repository-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>nifi-persistent-provenance-repository</module>
@ -32,12 +32,12 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-persistent-provenance-repository</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-volatile-provenance-repository</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-standard-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<description>NiFi Standard Extensions NAR</description>
<dependencies>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-prioritizers</artifactId>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-standard-processors</artifactId>
<packaging>jar</packaging>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-standard-reporting-tasks</artifactId>
<packaging>jar</packaging>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-standard-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<description>NiFi Standard Extensions Bundle</description>
<modules>
@ -34,17 +34,17 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-processors</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-prioritizers</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-reporting-tasks</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-distributed-cache-client-service-api</artifactId>
<packaging>jar</packaging>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-distributed-cache-services-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-distributed-cache-client-service</artifactId>
<packaging>jar</packaging>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-distributed-cache-services-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-distributed-cache-protocol</artifactId>
<description>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-distributed-cache-services-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-distributed-cache-server</artifactId>
<description>Provides a Controller Service for hosting Distributed Caches</description>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-distributed-cache-services-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-distributed-cache-services-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<dependencies>
<dependency>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-distributed-cache-services-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>nifi-distributed-cache-protocol</module>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-load-distribution-service-api</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-ssl-context-service-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<dependencies>
<dependency>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-ssl-context-service</artifactId>
<packaging>jar</packaging>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-ssl-context-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>nifi-ssl-context-service</module>

View File

@ -17,7 +17,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-ssl-context-service-api</artifactId>
<packaging>jar</packaging>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-standard-services-api-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<dependencies>
<dependency>

View File

@ -18,10 +18,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-standard-services</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>nifi-distributed-cache-client-service-api</module>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-model</artifactId>

View File

@ -17,10 +17,10 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-update-attribute-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>nar</packaging>
<dependencies>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-processor</artifactId>

View File

@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-update-attribute-ui</artifactId>
<packaging>war</packaging>

View File

@ -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));
}
}

View File

@ -18,11 +18,11 @@
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<artifactId>nifi-update-attribute-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
@ -37,18 +37,18 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-model</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-processor</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-ui</artifactId>
<type>war</type>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -13,19 +13,18 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-bundles</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
@ -44,70 +43,70 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-distributed-cache-client-service</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-distributed-cache-client-service-api</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-service-api</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-load-distribution-service-api</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-distributed-cache-protocol</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-distributed-cache-server</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-service</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-volatile-provenance-repository</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<!-- The following dependencies are marked provided because they must be provided by the container. Nars can assume they are there-->
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-runtime</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-properties</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>

View File

@ -23,7 +23,7 @@
</parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<packaging>pom</packaging>
<description>Apache NiFi is a dataflow system based on the concepts of flow-based programming. It is currently a part of the Apache Incubator.</description>
<url>http://nifi.incubator.apache.org/maven-site/</url>
@ -617,57 +617,57 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-web-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-expression-language</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-custom-ui-utilities</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-flowfile-packager</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-socket-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-data-provenance-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-runtime</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-bootstrap</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-resources</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<classifier>resources</classifier>
<scope>runtime</scope>
<type>zip</type>
@ -675,7 +675,7 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-docs</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<classifier>resources</classifier>
<scope>runtime</scope>
<type>zip</type>
@ -683,104 +683,104 @@
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-provenance-repository-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-services-api-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-ssl-context-service-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-distributed-cache-services-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-jetty-bundle</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-update-attribute-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-hadoop-libraries-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-hadoop-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-kafka-nar</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<type>nar</type>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-properties</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-security-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-logging-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-processor-utils</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-mock</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-write-ahead-log</artifactId>
<version>0.0.1-incubating-SNAPSHOT</version>
<version>0.0.2-incubating-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
@ -974,7 +974,7 @@
<plugin>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-maven-plugin</artifactId>
<version>1.0.0-incubating-SNAPSHOT</version>
<version>1.0.0-incubating</version>
<extensions>true</extensions>
</plugin>
</plugins>