You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2015/02/10 20:35:01 UTC

[2/2] incubator-nifi git commit: NIFI-250: - Rendering the references in the disable controller service dialog. - Reloading controller service table when appropriate. - Padding in dialogs with a border.

NIFI-250:
- Rendering the references in the disable controller service dialog.
- Reloading controller service table when appropriate.
- Padding in dialogs with a border.

Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/4bc5ed13
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/4bc5ed13
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/4bc5ed13

Branch: refs/heads/NIFI-250
Commit: 4bc5ed13ef981b49390b1e8460105e8ed227b446
Parents: 5390c76
Author: Matt Gilman <ma...@gmail.com>
Authored: Tue Feb 10 14:34:48 2015 -0500
Committer: Matt Gilman <ma...@gmail.com>
Committed: Tue Feb 10 14:34:48 2015 -0500

----------------------------------------------------------------------
 .../nifi/web/api/dto/ControllerServiceDTO.java  |  30 +
 .../nifi/web/api/dto/PropertyDescriptorDTO.java |  14 +
 .../org/apache/nifi/web/api/dto/DtoFactory.java |   3 +
 .../nifi-framework/nifi-web/nifi-web-ui/pom.xml |   5 +-
 .../main/resources/filters/canvas.properties    |   2 +-
 .../disable-controller-service-dialog.jsp       |   6 +
 .../nifi-web-ui/src/main/webapp/css/canvas.css  |   3 +-
 .../css/controller-service-configuration.css    | 156 -----
 .../src/main/webapp/css/controller-service.css  | 199 ++++++
 .../css/disable-controller-service-dialog.css   |  28 -
 .../nifi-web-ui/src/main/webapp/css/main.css    |   7 +
 .../src/main/webapp/css/settings.css            |   1 +
 .../webapp/js/jquery/modal/jquery.modal.css     |   1 -
 .../main/webapp/js/nf/canvas/nf-canvas-utils.js |  26 -
 .../src/main/webapp/js/nf/canvas/nf-canvas.js   |   2 +-
 .../nf-controller-service-configuration.js      | 497 -------------
 .../js/nf/canvas/nf-controller-service.js       | 692 +++++++++++++++++++
 .../src/main/webapp/js/nf/canvas/nf-settings.js | 130 ++--
 18 files changed, 997 insertions(+), 805 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java
index c66eb7a..b6d707c 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java
@@ -189,6 +189,8 @@ public class ControllerServiceDTO extends NiFiComponentDTO {
         private Boolean enabled;
         
         private String referenceType;
+        private Integer activeThreadCount;
+        private Set<ControllerServiceReferenceDTO> references;
 
         /**
          * Group id for this component referencing a controller service. If this
@@ -282,5 +284,33 @@ public class ControllerServiceDTO extends NiFiComponentDTO {
         public void setReferenceType(String referenceType) {
             this.referenceType = referenceType;
         }
+
+        /**
+         * The active thread count for the referencing component.
+         * 
+         * @return 
+         */
+        public Integer getActiveThreadCount() {
+            return activeThreadCount;
+        }
+
+        public void setActiveThreadCount(Integer activeThreadCount) {
+            this.activeThreadCount = activeThreadCount;
+        }
+
+        /**
+         * If this referencing component represents a ControllerService, these
+         * are the components that reference it.
+         * 
+         * @return 
+         */
+        public Set<ControllerServiceReferenceDTO> getReferences() {
+            return references;
+        }
+
+        public void setReferences(Set<ControllerServiceReferenceDTO> references) {
+            this.references = references;
+        }
+        
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java
index ee4d250..4d6d10f 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java
@@ -34,6 +34,7 @@ public class PropertyDescriptorDTO {
     private boolean sensitive;
     private boolean dynamic;
     private boolean supportsEl;
+    private boolean identifiesControllerService;
 
     /**
      * The set of allowable values for this property. If empty then the
@@ -155,6 +156,19 @@ public class PropertyDescriptorDTO {
     public void setSupportsEl(boolean supportsEl) {
         this.supportsEl = supportsEl;
     }
+
+    /**
+     * Whether this descriptor represents a controller service.
+     * 
+     * @return 
+     */
+    public boolean isIdentifiesControllerService() {
+        return identifiesControllerService;
+    }
+
+    public void setIdentifiesControllerService(boolean identifiesControllerService) {
+        this.identifiesControllerService = identifiesControllerService;
+    }
     
     /**
      * The allowable values for a property with a constrained set of options.

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java
index 4fe235f..4d034f5 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java
@@ -903,6 +903,7 @@ public final class DtoFactory {
                 final ProcessorNode node = ((ProcessorNode) component);
                 reference.setGroupId(node.getProcessGroup().getIdentifier());
                 reference.setState(node.getScheduledState().name());
+                reference.setActiveThreadCount(node.getActiveThreadCount());
                 reference.setType(node.getProcessor().getClass().getName());
                 reference.setReferenceType(Processor.class.getSimpleName());
             } else if (component instanceof ControllerServiceNode) {
@@ -913,6 +914,7 @@ public final class DtoFactory {
             } else if (component instanceof ReportingTask) {
                 final ReportingTaskNode node = ((ReportingTaskNode) component);
                 reference.setState(node.getScheduledState().name());
+                reference.setActiveThreadCount(node.getActiveThreadCount());
                 reference.setType(node.getReportingTask().getClass().getName());
                 reference.setReferenceType(ReportingTask.class.getSimpleName());
             }
@@ -1816,6 +1818,7 @@ public final class DtoFactory {
         dto.setDescription(propertyDescriptor.getDescription());
         dto.setDefaultValue(propertyDescriptor.getDefaultValue());
         dto.setSupportsEl(propertyDescriptor.isExpressionLanguageSupported());
+        dto.setIdentifiesControllerService(propertyDescriptor.getControllerServiceDefinition() != null);
 
         final Class<? extends ControllerService> serviceDefinition = propertyDescriptor.getControllerServiceDefinition();
         if (propertyDescriptor.getAllowableValues() == null) {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml
index 2eb2416..0e2a292 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml
@@ -267,7 +267,7 @@
                                                 <include>${staging.dir}/js/nf/canvas/nf-canvas-toolbox.js</include>
                                                 <include>${staging.dir}/js/nf/canvas/nf-custom-processor-ui.js</include>
                                                 <include>${staging.dir}/js/nf/canvas/nf-registration.js</include>
-                                                <include>${staging.dir}/js/nf/canvas/nf-controller-service-configuration.js</include>
+                                                <include>${staging.dir}/js/nf/canvas/nf-controller-service.js</include>
                                                 <include>${staging.dir}/js/nf/canvas/nf-processor-configuration.js</include>
                                                 <include>${staging.dir}/js/nf/nf-processor-details.js</include>
                                                 <include>${staging.dir}/js/nf/canvas/nf-process-group-configuration.js</include>
@@ -403,7 +403,7 @@
                                             <insertNewLine>true</insertNewLine>
                                             <output>${project.build.directory}/${project.build.finalName}/css/nf-canvas-all.css</output>
                                             <includes>
-                                                <include>${staging.dir}/css/controller-service-configuration.css</include>
+                                                <include>${staging.dir}/css/controller-service.css</include>
                                                 <include>${staging.dir}/css/processor-configuration.css</include>
                                                 <include>${staging.dir}/css/processor-details.css</include>
                                                 <include>${staging.dir}/css/process-group-configuration.css</include>
@@ -419,7 +419,6 @@
                                                 <include>${staging.dir}/css/dialog.css</include>
                                                 <include>${staging.dir}/css/new-processor-dialog.css</include>
                                                 <include>${staging.dir}/css/new-controller-service-dialog.css</include>
-                                                <include>${staging.dir}/css/disable-controller-service-dialog.css</include>
                                                 <include>${staging.dir}/css/graph.css</include>
                                                 <include>${staging.dir}/css/header.css</include>
                                                 <include>${staging.dir}/css/main.css</include>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties
index 44841ef..6d0d0ef 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties
@@ -24,7 +24,7 @@ nf.canvas.script.tags=<script type="text/javascript" src="js/nf/nf-namespace.js?
 <script type="text/javascript" src="js/nf/canvas/nf-canvas-toolbox.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/canvas/nf-custom-processor-ui.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/canvas/nf-registration.js?${project.version}"></script>\n\
-<script type="text/javascript" src="js/nf/canvas/nf-controller-service-configuration.js?${project.version}"></script>\n\
+<script type="text/javascript" src="js/nf/canvas/nf-controller-service.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/canvas/nf-processor-configuration.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/nf-processor-details.js?${project.version}"></script>\n\
 <script type="text/javascript" src="js/nf/canvas/nf-process-group-configuration.js?${project.version}"></script>\n\

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp
index f4a4e72..33a0bd9 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp
@@ -23,5 +23,11 @@
                 <span id="disable-controller-service-name"></span>
             </div>
         </div>
+        <div class="setting">
+            <div class="setting-name">References</div>
+            <div class="setting-field">
+                <div id="disable-controller-service-references"></div>
+            </div>
+        </div>
     </div>
 </div>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css
index e59aba7..9c31200 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css
@@ -20,7 +20,7 @@
 @import url(process-group-configuration.css);
 @import url(process-group-details.css);
 @import url(remote-process-group-configuration.css);
-@import url(controller-service-configuration.css);
+@import url(controller-service.css);
 @import url(port-configuration.css);
 @import url(port-details.css);
 @import url(label-configuration.css);
@@ -31,7 +31,6 @@
 @import url(dialog.css);
 @import url(new-processor-dialog.css);
 @import url(new-controller-service-dialog.css);
-@import url(disable-controller-service-dialog.css);
 @import url(graph.css);
 @import url(header.css);
 @import url(main.css);

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service-configuration.css
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service-configuration.css b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service-configuration.css
deleted file mode 100644
index 2978cd8..0000000
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service-configuration.css
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
-    Controller service configuration styles.
-*/
-
-#controller-service-configuration {
-    position: absolute;
-    overflow: hidden;
-    width: 800px;
-    height: 450px;
-    font-size: 10px;
-    z-index: 1301;
-    display: none;
-}
-
-div.controller-service-configuration-tab-container {
-    margin-top: -10px;
-    padding: 5px 11px;
-}
-
-#controller-service-configuration-advanced {
-    display: none;
-}
-
-#controller-service-configuration-tabs {
-    background-color: transparent;
-    width: 778px;
-    height: 21px;
-    border-bottom: 3px solid #666;
-}
-
-#controller-service-configuration div.configuration-tab {
-    height: 320px;
-    overflow: auto;
-    padding: 10px;
-    background: #eee url(../images/bgTabContainer.png) repeat-x;
-    display: none;
-}
-
-/* controller-service settings */
-
-#controller-service-configuration div.settings-left {
-    float: left;
-    width: 330px;
-}
-
-#controller-service-configuration div.settings-right {
-    float: left;
-    width: 382px;
-}
-
-#controller-service-configuration div.spacer {
-    float: left;
-    margin-right: 40px;
-}
-
-#controller-service-configuration .setting-input {
-    font-size: 11px !important;
-    width: 320px;
-}
-
-#controller-service-configuration .small-setting-input {
-    font-size: 11px !important;
-    width: 130px;
-}
-
-#controller-service-name {
-    font-size: 11px !important;
-    width: 250px;
-    float: left;
-}
-
-#controller-service-enabled {
-    width: 12px;
-    height: 12px;
-    float: left;
-    margin-right: 4px;
-}
-
-div.controller-service-enabled-container {
-    float: left;
-    margin-top: 5px;
-    margin-left: 10px;
-}
-
-div.availability-setting {
-    float: left;
-    width: 140px;
-}
-
-/*
-    Service references
-*/
-
-#controller-service-references {
-    border: 0 solid #CCCCCC;
-    height: 280px;
-    overflow-y: auto;
-    overflow-x: hidden;
-    padding: 2px;
-    width: 376px;
-}
-
-div.reference-block {
-    margin-bottom: 4px;
-}
-
-span.reference-title {
-    margin-left: 5px;
-    font-weight: bold
-}
-
-span.reference-count {
-    margin-left: 5px;
-    color: #aaa;
-}
-
-ul.reference-listing {
-    margin-left: 20px;
-    margin-bottom: 8px;
-}
-
-ul.reference-listing li {
-    margin-bottom: 3px;
-}
-
-span.reference-type {
-    margin-left: 5px;
-    color: #aaa;
-}
-
-/*
-    Comments
-*/
-
-#controller-service-comments {
-    height: 250px;
-    width: 748px !important;
-    margin-top: 10px;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service.css
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service.css b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service.css
new file mode 100644
index 0000000..835bbd8
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service.css
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+    Controller service configuration styles.
+*/
+
+#controller-service-configuration {
+    position: absolute;
+    overflow: hidden;
+    width: 800px;
+    height: 450px;
+    font-size: 10px;
+    z-index: 1301;
+    display: none;
+}
+
+div.controller-service-configuration-tab-container {
+    margin-top: -10px;
+    padding: 5px 11px;
+}
+
+#controller-service-configuration-advanced {
+    display: none;
+}
+
+#controller-service-configuration-tabs {
+    background-color: transparent;
+    width: 778px;
+    height: 21px;
+    border-bottom: 3px solid #666;
+}
+
+#controller-service-configuration div.configuration-tab {
+    height: 320px;
+    overflow: auto;
+    padding: 10px;
+    background: #eee url(../images/bgTabContainer.png) repeat-x;
+    display: none;
+}
+
+/* controller-service settings */
+
+#controller-service-configuration div.settings-left {
+    float: left;
+    width: 330px;
+}
+
+#controller-service-configuration div.settings-right {
+    float: left;
+    width: 382px;
+}
+
+#controller-service-configuration div.spacer {
+    float: left;
+    margin-right: 40px;
+}
+
+#controller-service-configuration .setting-input {
+    font-size: 11px !important;
+    width: 320px;
+}
+
+#controller-service-configuration .small-setting-input {
+    font-size: 11px !important;
+    width: 130px;
+}
+
+#controller-service-name {
+    font-size: 11px !important;
+    width: 250px;
+    float: left;
+}
+
+#controller-service-enabled {
+    width: 12px;
+    height: 12px;
+    float: left;
+    margin-right: 4px;
+}
+
+div.controller-service-enabled-container {
+    float: left;
+    margin-top: 5px;
+    margin-left: 10px;
+}
+
+div.availability-setting {
+    float: left;
+    width: 140px;
+}
+
+/*
+    Service references
+*/
+
+#controller-service-references {
+    border: 0 solid #CCCCCC;
+    height: 280px;
+    overflow-y: auto;
+    overflow-x: hidden;
+    padding: 2px;
+    width: 376px;
+}
+
+div.reference-block {
+    margin-bottom: 6px;
+}
+
+span.reference-title {
+    margin-left: 5px;
+    font-weight: bold
+}
+
+span.reference-count {
+    margin-left: 5px;
+    color: #aaa;
+}
+
+ul.reference-listing {
+    margin-left: 20px;
+    margin-bottom: 6px;
+}
+
+ul.reference-listing li {
+    margin-bottom: 6px;
+}
+
+div.reference-state {
+    margin-top: -2px;
+}
+
+span.service.expansion-button {
+    margin-right: 4px;
+    margin-top: 2px;
+}
+
+span.reference-active-thread-count {
+}
+
+span.reference-name {
+    margin-left: 5px;
+    margin-right: 5px;
+}
+
+span.reference-type {
+    color: #aaa;
+    font-style: italic;
+}
+
+div.reference-references {
+    margin-left: 20px;
+    margin-top: 6px;
+    clear: left;
+}
+
+/*
+    Comments
+*/
+
+#controller-service-comments {
+    height: 250px;
+    width: 748px !important;
+    margin-top: 10px;
+}
+
+/*
+    Disable dialog
+*/
+
+#disable-controller-service-dialog {
+    z-index: 1301;
+    display: none;
+    width: 500px;
+    height: 450px;
+    line-height: normal;
+}
+
+#disable-controller-service-references {
+    border: 0 solid #CCCCCC;
+    padding: 2px;
+    width: 474px;
+    height: 290px;
+    overflow: auto;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/disable-controller-service-dialog.css
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/disable-controller-service-dialog.css b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/disable-controller-service-dialog.css
deleted file mode 100644
index 6a16e17..0000000
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/disable-controller-service-dialog.css
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* 
-    New controller service dialog.
-*/
-
-#disable-controller-service-dialog {
-    z-index: 1301;
-    display: none;
-    width: 500px;
-    height: 450px;
-    line-height: normal;
-}

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css
index c57c6ee..83c7831 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css
@@ -210,6 +210,13 @@ div.disabled {
     background: transparent url(../images/iconDisable.png) repeat scroll 0 0;
 }
 
+div.enabled {
+    float: left;
+    width: 16px;
+    height: 16px;
+    background: transparent url(../images/iconEnable.png) repeat scroll 0 0;
+}
+
 div.stopped {
     float: left;
     width: 16px;

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css
index e1a8cc9..36fef5c 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css
@@ -47,6 +47,7 @@ span.expansion-button {
     width: 10px;
     height: 10px;
     display: inline-block;
+    float: left;
 }
 
 span.ancestor-type {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css
index 9cfbe7c..f834275 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css
@@ -25,7 +25,6 @@
 }
 
 .show-border {
-    padding: 10px;
     border: 3px solid #365C6A;
     box-shadow: 4px 4px 6px rgba(0, 0, 0, 0.9);
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js
index 42de660..83a3117 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js
@@ -400,32 +400,6 @@ nf.CanvasUtils = (function () {
         },
         
         /**
-         * Reloads components that reference this controller service.
-         * 
-         * @param {object} controllerService
-         */
-        reloadControllerServiceReferences: function (controllerService) {
-            var reloadOther = false;
-
-            // reload all dependent processors if they are currently visible
-            $.each(controllerService.references, function(_, reference) {
-                if (reference.referenceType === 'Processor') {
-                    if (nf.Canvas.getGroupId() === reference.groupId) {
-                        var processor = nf.Processor.get(reference.id);
-                        nf.Processor.reload(processor.component);
-                    }
-                } else {
-                    reloadOther = true;
-                }
-            });
-
-            // reload the controller services and reporting tasks if necessary
-            if (reloadOther) {
-                nf.Settings.loadSettings();
-            }
-        },
-        
-        /**
          * Handles component bulletins.
          * 
          * @param {selection} selection                    The component

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js
index 5a1ec02..7207314 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js
@@ -1025,7 +1025,7 @@ nf.Canvas = (function () {
 
                         // initialize components
                         nf.ConnectionConfiguration.init();
-                        nf.ControllerServiceConfiguration.init();
+                        nf.ControllerService.init();
                         nf.ProcessorConfiguration.init();
                         nf.ProcessGroupConfiguration.init();
                         nf.RemoteProcessGroupConfiguration.init();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/4bc5ed13/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service-configuration.js
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service-configuration.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service-configuration.js
deleted file mode 100644
index c43b017..0000000
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service-configuration.js
+++ /dev/null
@@ -1,497 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-nf.ControllerServiceConfiguration = (function () {
-
-    /**
-     * Handle any expected controller service configuration errors.
-     * 
-     * @argument {object} xhr       The XmlHttpRequest
-     * @argument {string} status    The status of the request
-     * @argument {string} error     The error
-     */
-    var handleControllerServiceConfigurationError = function (xhr, status, error) {
-        if (xhr.status === 400) {
-            var errors = xhr.responseText.split('\n');
-
-            var content;
-            if (errors.length === 1) {
-                content = $('<span></span>').text(errors[0]);
-            } else {
-                content = nf.Common.formatUnorderedList(errors);
-            }
-
-            nf.Dialog.showOkDialog({
-                dialogContent: content,
-                overlayBackground: false,
-                headerText: 'Configuration Error'
-            });
-        } else {
-            nf.Common.handleAjaxError(xhr, status, error);
-        }
-    };
-
-    /**
-     * Determines whether the user has made any changes to the controller service configuration
-     * that needs to be saved.
-     */
-    var isSaveRequired = function () {
-        var details = $('#controller-service-configuration').data('controllerServiceDetails');
-
-        // determine if any controller service settings have changed
-
-        if ($('#controller-service-name').val() !== details.name) {
-            return true;
-        }
-        if ($('#controller-service-comments').val() !== details.comments) {
-            return true;
-        }
-        
-        if ($('#controller-service-enabled').hasClass('checkbox-checked') && details['enabled'] === false) {
-            return true;
-        } else if ($('#controller-service-enabled').hasClass('checkbox-unchecked') && details['enabled'] === true) {
-            return true;
-        }
-        
-        // defer to the properties
-        return $('#controller-service-properties').propertytable('isSaveRequired');
-    };
-
-    /**
-     * Marshals the data that will be used to update the contr oller service's configuration.
-     */
-    var marshalDetails = function () {
-        // properties
-        var properties = $('#controller-service-properties').propertytable('marshalProperties');
-
-        // create the controller service dto
-        var controllerServiceDto = {};
-        controllerServiceDto['id'] = $('#controller-service-id').text();
-        controllerServiceDto['name'] = $('#controller-service-name').val();
-        
-        // set the properties
-        if ($.isEmptyObject(properties) === false) {
-            controllerServiceDto['properties'] = properties;
-        }
-        
-        // mark the controller service disabled if appropriate
-        if ($('#controller-service-enabled').hasClass('checkbox-unchecked')) {
-            controllerServiceDto['enabled'] = false;
-        } else if ($('#controller-service-enabled').hasClass('checkbox-checked')) {
-            controllerServiceDto['enabled'] = true;
-        }
-
-        // create the controller service entity
-        var controllerServiceEntity = {};
-        controllerServiceEntity['revision'] = nf.Client.getRevision();
-        controllerServiceEntity['controllerService'] = controllerServiceDto;
-
-        // return the marshaled details
-        return controllerServiceEntity;
-    };
-
-    /**
-     * Validates the specified details.
-     * 
-     * @argument {object} details       The details to validate
-     */
-    var validateDetails = function (details) {
-        return true;
-    };
-    
-    /**
-     * Reloads the specified controller service.
-     * 
-     * @param {object} controllerService
-     */
-    var reloadControllerService = function (controllerService) {
-        return $.ajax({
-            type: 'GET',
-            url: controllerService.uri,
-            dataType: 'json'
-        }).done(function (response) {
-            renderControllerService(response.controllerService);
-        }).fail(nf.Common.handleAjaxError);
-    };
-    
-    /**
-     * Reloads the specified controller service.
-     * 
-     * @param {object} controllerService
-     */
-    var renderControllerService = function (controllerService) {
-        // get the table and update the row accordingly
-        var controllerServiceGrid = $('#controller-services-table').data('gridInstance');
-        var controllerServiceData = controllerServiceGrid.getData();
-        controllerServiceData.updateItem(controllerService.id, controllerService);
-
-        // reload the controller service references
-        nf.CanvasUtils.reloadControllerServiceReferences(controllerService);
-    };
-    
-    /**
-     * Adds a border to the controller service references if necessary.
-     */
-    var updateReferencesBorder = function () {
-        var controllerServiceReferences = $('#controller-service-references');
-        if (controllerServiceReferences.is(':visible') && controllerServiceReferences.get(0).scrollHeight > controllerServiceReferences.innerHeight()) {
-            controllerServiceReferences.css('border-width', '1px');
-        } else {
-            controllerServiceReferences.css('border-width', '0px');
-        }
-    };
-    
-    /**
-     * Adds the specified reference for this controller service.
-     * 
-     * @param {array} references
-     */
-    var createReferences = function (references) {
-        var processors = $('<ul class="reference-listing clear"></ul>');
-        var services = $('<ul class="reference-listing clear"></ul>');
-        var tasks = $('<ul class="reference-listing clear"></ul>');
-        $.each(references, function (_, reference) {
-            if (reference.referenceType === 'Processor') {
-                var processorLink = $('<span class="link"></span>').text(reference.name).on('click', function () {
-                    // show the component
-                    nf.CanvasUtils.showComponent(reference.groupId, reference.id);
-                    
-                    // close the dialog and shell
-                    $('#controller-service-configuration').modal('hide');
-                    $('#shell-close-button').click();
-                });
-                
-                var processorType = $('<span class="reference-type"></span>').text('(' + nf.Common.substringAfterLast(reference.type, '.') + ')');
-                var processorItem = $('<li></li>').append(processorLink).append(processorType);
-                processors.append(processorItem);
-            } else if (reference.referenceType === 'ControllerService') {
-                var serviceLink = $('<span class="link"></span>').text(reference.name).on('click', function () {
-                    var controllerServiceGrid = $('#controller-services-table').data('gridInstance');
-                    var controllerServiceData = controllerServiceGrid.getData();
-                    
-                    // select the selected row
-                    var row = controllerServiceData.getRowById(reference.id);
-                    controllerServiceGrid.setSelectedRows([row]);
-                    
-                    // close the dialog and shell
-                    $('#controller-service-configuration').modal('hide');
-                });
-                
-                var serviceType = $('<span class="reference-type"></span>').text('(' + nf.Common.substringAfterLast(reference.type, '.') + ')');
-                var serviceItem = $('<li></li>').append(serviceLink).append(serviceType);
-                services.append(serviceItem);
-            } else if (reference.referenceType === 'ReportingTask') {
-                var taskItem = $('<li></li>').text(reference.name).on('click', function () {
-                    
-                    // close the dialog and shell
-                    $('#controller-service-configuration').modal('hide');
-                });
-                tasks.append(taskItem);
-            }
-        });
-        
-        // toggles the visibility of a listing
-        var toggle = function (twist, list) {
-            if (twist.hasClass('expanded')) {
-                twist.removeClass('expanded').addClass('collapsed');
-                list.hide();
-            } else {
-                twist.removeClass('collapsed').addClass('expanded');
-                list.show();
-            }
-        };
-        
-        // create the collapsable listing for each type
-        var controllerServiceReferences = $('#controller-service-references');
-        var createReferenceBlock = function (titleText, list) {
-            var twist = $('<span class="expansion-button expanded"></span>');
-            var title = $('<span class="reference-title"></span>').text(titleText);
-            var count = $('<span class="reference-count"></span>').text('(' + list.children().length + ')');
-            
-            // create the reference block
-            $('<div class="reference-block pointer unselectable"></div>').on('click', function () {
-                // toggle this block
-                toggle(twist, list);
-                
-                // update the border if necessary
-                updateReferencesBorder();
-            }).append(twist).append(title).append(count).appendTo(controllerServiceReferences);
-            
-            // show message for empty list
-            if (list.is(':empty')) {
-                list.append('<li class="unset" style="margin-top: 2px;">No ' + titleText.toLowerCase() + ' reference this service.</li>');
-            }
-            
-            // add the listing
-            list.appendTo(controllerServiceReferences);
-        };
-        
-        // create blocks for each type of component
-        createReferenceBlock('Processors', processors);
-        createReferenceBlock('Controller Services', services);
-        createReferenceBlock('Reporting Tasks', tasks);
-        
-        // update the border if necessary
-        updateReferencesBorder();
-    };
-    
-    return {
-        /**
-         * Initializes the controller service configuration dialog.
-         */
-        init: function () {
-            // initialize the configuration dialog tabs
-            $('#controller-service-configuration-tabs').tabbs({
-                tabStyle: 'tab',
-                selectedTabStyle: 'selected-tab',
-                tabs: [{
-                        name: 'Settings',
-                        tabContentId: 'controller-service-standard-settings-tab-content'
-                    }, {
-                        name: 'Properties',
-                        tabContentId: 'controller-service-properties-tab-content'
-                    }, {
-                        name: 'Comments',
-                        tabContentId: 'controller-service-comments-tab-content'
-                    }],
-                select: function () {
-                    // update the property table size in case this is the first time its rendered
-                    if ($(this).text() === 'Properties') {
-                        $('#controller-service-properties').propertytable('resetTableSize');
-                    }
-
-                    // close all fields currently being edited
-                    $('#controller-service-properties').propertytable('saveRow');
-
-                    // show the border around the processor relationships if necessary
-                    updateReferencesBorder();
-                }
-            });
-            
-            // we clustered we need to show the controls for editing the availability
-            if (nf.Canvas.isClustered()) {
-                $('#availability-setting-container').show();
-            }
-
-            // initialize the conroller service configuration dialog
-            $('#controller-service-configuration').modal({
-                headerText: 'Configure Controller Service',
-                overlayBackground: false,
-                handler: {
-                    close: function () {
-                        // empty the references list
-                        $('#controller-service-references').css('border-width', '0').empty();
-
-                        // cancel any active edits
-                        $('#controller-service-properties').propertytable('cancelEdit');
-
-                        // clear the tables
-                        $('#controller-service-properties').propertytable('clear');
-
-                        // removed the cached controller service details
-                        $('#controller-service-configuration').removeData('controllerServiceDetails');
-                    }
-                }
-            });
-
-            // initialize the property table
-            $('#controller-service-properties').propertytable({
-                readOnly: false,
-                newPropertyDialogContainer: 'body'
-            });
-        },
-        
-        /**
-         * Shows the configuration dialog for the specified controller service.
-         * 
-         * @argument {controllerService} controllerService      The controller service
-         */
-        showConfiguration: function (controllerService) {
-            // reload the service in case the property descriptors have changed
-            var reloadService = $.ajax({
-                type: 'GET',
-                url: controllerService.uri,
-                dataType: 'json'
-            });
-            
-            // get the controller service history
-            var loadHistory = $.ajax({
-                type: 'GET',
-                url: '../nifi-api/controller/history/controller-services/' + encodeURIComponent(controllerService.id),
-                dataType: 'json'
-            });
-            
-            // once everything is loaded, show the dialog
-            $.when(reloadService, loadHistory).done(function (serviceResponse, historyResponse) {
-                // get the updated controller service
-                controllerService = serviceResponse[0].controllerService;
-                
-                // get the controller service history
-                var controllerServiceHistory = historyResponse[0].componentHistory;
-                
-                // record the controller service details
-                $('#controller-service-configuration').data('controllerServiceDetails', controllerService);
-
-                // determine if the enabled checkbox is checked or not
-                var controllerServiceEnableStyle = 'checkbox-checked';
-                if (controllerService['enabled'] === false) {
-                    controllerServiceEnableStyle = 'checkbox-unchecked';
-                }
-
-                // populate the controller service settings
-                $('#controller-service-id').text(controllerService['id']);
-                $('#controller-service-type').text(nf.Common.substringAfterLast(controllerService['type'], '.'));
-                $('#controller-service-name').val(controllerService['name']);
-                $('#controller-service-enabled').removeClass('checkbox-unchecked checkbox-checked').addClass(controllerServiceEnableStyle);
-                $('#controller-service-comments').val(controllerService['comments']);
-
-                // select the availability when appropriate
-                if (nf.Canvas.isClustered()) {
-                    if (controllerService['availability'] === 'node') {
-                        $('#availability').text('Node');
-                    } else {
-                        $('#availability').text('Cluster Manager');
-                    }
-                }
-
-                // load the controller references list
-                if (!nf.Common.isEmpty(controllerService.references)) {
-                    createReferences(controllerService.references);
-                } else {
-                    $('#controller-service-references').append('<div class="unset">This service has no components referencing it.</div>');
-                }
-
-                var buttons = [{
-                        buttonText: 'Apply',
-                        handler: {
-                            click: function () {
-                                // close all fields currently being edited
-                                $('#controller-service-properties').propertytable('saveRow');
-
-                                // marshal the settings and properties and update the controller service
-                                var updatedControllerService = marshalDetails();
-
-                                // ensure details are valid as far as we can tell
-                                if (validateDetails(updatedControllerService)) {
-                                    // update the selected component
-                                    $.ajax({
-                                        type: 'PUT',
-                                        data: JSON.stringify(updatedControllerService),
-                                        url: controllerService.uri,
-                                        dataType: 'json',
-                                        processData: false,
-                                        contentType: 'application/json'
-                                    }).done(function (response) {
-                                        if (nf.Common.isDefinedAndNotNull(response.controllerService)) {
-                                            // update the revision
-                                            nf.Client.setRevision(response.revision);
-
-                                            // reload the controller service
-                                            renderControllerService(response.controllerService);
-
-                                            // close the details panel
-                                            $('#controller-service-configuration').modal('hide');
-                                        }
-                                    }).fail(handleControllerServiceConfigurationError);
-                                }
-                            }
-                        }
-                    }, {
-                        buttonText: 'Cancel',
-                        handler: {
-                            click: function () {
-                                $('#controller-service-configuration').modal('hide');
-                            }
-                        }
-                    }];
-
-                // determine if we should show the advanced button
-                if (nf.Common.isDefinedAndNotNull(controllerService.customUiUrl) && controllerService.customUiUrl !== '') {
-                    buttons.push({
-                        buttonText: 'Advanced',
-                        handler: {
-                            click: function () {
-                                var openCustomUi = function () {
-                                    // reset state and close the dialog manually to avoid hiding the faded background
-                                    $('#controller-service-configuration').modal('hide');
-
-                                    // show the custom ui
-                                    nf.CustomProcessorUi.showCustomUi($('#controller-service-id').text(), controllerService.customUiUrl, true).done(function () {
-                                        // once the custom ui is closed, reload the controller service
-                                        reloadControllerService(controllerService);
-                                    });
-                                };
-
-                                // close all fields currently being edited
-                                $('#controller-service-properties').propertytable('saveRow');
-
-                                // determine if changes have been made
-                                if (isSaveRequired()) {
-                                    // see if those changes should be saved
-                                    nf.Dialog.showYesNoDialog({
-                                        dialogContent: 'Save changes before opening the advanced configuration?',
-                                        overlayBackground: false,
-                                        noHandler: openCustomUi,
-                                        yesHandler: function () {
-                                            // marshal the settings and properties and update the controller service
-                                            var updatedControllerService = marshalDetails();
-
-                                            // ensure details are valid as far as we can tell
-                                            if (validateDetails(updatedControllerService)) {
-                                                // update the selected component
-                                                $.ajax({
-                                                    type: 'PUT',
-                                                    data: JSON.stringify(updatedControllerService),
-                                                    url: controllerService.uri,
-                                                    dataType: 'json',
-                                                    processData: false,
-                                                    contentType: 'application/json'
-                                                }).done(function (response) {
-                                                    if (nf.Common.isDefinedAndNotNull(response.controllerService)) {
-                                                        // update the revision
-                                                        nf.Client.setRevision(response.revision);
-
-                                                        // open the custom ui
-                                                        openCustomUi();
-                                                    }
-                                                }).fail(handleControllerServiceConfigurationError);
-                                            }
-                                        }
-                                    });
-                                } else {
-                                    // if there were no changes, simply open the custom ui
-                                    openCustomUi();
-                                }
-                            }
-                        }
-                    });
-                }
-
-                // set the button model
-                $('#controller-service-configuration').modal('setButtonModel', buttons);
-                
-                // load the property table
-                $('#controller-service-properties').propertytable('loadProperties', controllerService.properties, controllerService.descriptors, controllerServiceHistory.propertyHistory);
-
-                // show the details
-                $('#controller-service-configuration').modal('show');
-
-                // show the border if necessary
-                updateReferencesBorder();
-            }).fail(nf.Common.handleAjaxError);
-        }
-    };
-}());