Repository: nifi
Updated Branches:
  refs/heads/master 470513fa2 -> 293dc2993


http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-processor-component.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-processor-component.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-processor-component.js
index 9514874..78d5b62 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-processor-component.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-processor-component.js
@@ -415,6 +415,7 @@ nf.ng.ProcessorComponent = function (serviceProvider) {
 
                 // configure the new processor dialog
                 this.getElement().modal({
+                    scrollableContentStyle: 'scrollable',
                     headerText: 'Add Processor'
                 });
             },
@@ -561,7 +562,7 @@ nf.ng.ProcessorComponent = function (serviceProvider) {
                 }]);
 
             // set a new handler for closing the the dialog
-            this.modal.update('setHandler', {
+            this.modal.update('setCloseHandler', {
                 close: function () {
                     // remove the handler
                     grid.onDblClick.unsubscribe(gridDoubleClick);

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-remote-process-group-component.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-remote-process-group-component.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-remote-process-group-component.js
index 77ddfa4..6de3e1f 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-remote-process-group-component.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-remote-process-group-component.js
@@ -119,6 +119,7 @@ nf.ng.RemoteProcessGroupComponent = function 
(serviceProvider) {
                 var defaultYieldDuration = "10 sec";
                 // configure the new remote process group dialog
                 this.getElement().modal({
+                    scrollableContentStyle: 'scrollable',
                     headerText: 'Add Remote Process Group',
                     handler: {
                         close: function () {

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-template-component.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-template-component.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-template-component.js
index b332c5b..fad3324 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-template-component.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/header/components/nf-ng-template-component.js
@@ -76,6 +76,7 @@ nf.ng.TemplateComponent = function (serviceProvider) {
             init: function () {
                 // configure the instantiate template dialog
                 this.getElement().modal({
+                    scrollableContentStyle: 'scrollable',
                     headerText: 'Add Template',
                     overlayBackgroud: false
                 });

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js
index 3cd8c55..593ac3f 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js
@@ -35,6 +35,7 @@ nf.Actions = (function () {
 
         // configure the drop request status dialog
         $('#drop-request-status-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             handler: {
                 close: function () {
                     // reset the progress bar

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/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-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js
index ed9327e..d83c60a 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js
@@ -134,7 +134,7 @@ nf.Canvas = (function () {
             cluster: '../nifi-api/controller/cluster'
         }
     };
-    
+
     /**
      * Starts polling.
      *
@@ -299,42 +299,42 @@ nf.Canvas = (function () {
 
         // handle canvas events
         svg.on('mousedown.selection', function () {
-                canvasClicked = true;
-
-                if (d3.event.button !== 0) {
-                    // prevent further propagation (to parents and others 
handlers
-                    // on the same element to prevent zoom behavior)
-                    d3.event.stopImmediatePropagation();
-                    return;
-                }
-
-                // show selection box if shift is held down
-                if (d3.event.shiftKey) {
-                    var position = d3.mouse(canvas.node());
-                    canvas.append('rect')
-                        .attr('rx', 6)
-                        .attr('ry', 6)
-                        .attr('x', position[0])
-                        .attr('y', position[1])
-                        .attr('class', 'selection')
-                        .attr('width', 0)
-                        .attr('height', 0)
-                        .attr('stroke-width', function () {
-                            return 1 / nf.Canvas.View.scale();
-                        })
-                        .attr('stroke-dasharray', function () {
-                            return 4 / nf.Canvas.View.scale();
-                        })
-                        .datum(position);
+            canvasClicked = true;
 
-                    // prevent further propagation (to parents and others 
handlers
-                    // on the same element to prevent zoom behavior)
-                    d3.event.stopImmediatePropagation();
+            if (d3.event.button !== 0) {
+                // prevent further propagation (to parents and others handlers
+                // on the same element to prevent zoom behavior)
+                d3.event.stopImmediatePropagation();
+                return;
+            }
 
-                    // prevents the browser from changing to a text selection 
cursor
-                    d3.event.preventDefault();
-                }
-            })
+            // show selection box if shift is held down
+            if (d3.event.shiftKey) {
+                var position = d3.mouse(canvas.node());
+                canvas.append('rect')
+                    .attr('rx', 6)
+                    .attr('ry', 6)
+                    .attr('x', position[0])
+                    .attr('y', position[1])
+                    .attr('class', 'selection')
+                    .attr('width', 0)
+                    .attr('height', 0)
+                    .attr('stroke-width', function () {
+                        return 1 / nf.Canvas.View.scale();
+                    })
+                    .attr('stroke-dasharray', function () {
+                        return 4 / nf.Canvas.View.scale();
+                    })
+                    .datum(position);
+
+                // prevent further propagation (to parents and others handlers
+                // on the same element to prevent zoom behavior)
+                d3.event.stopImmediatePropagation();
+
+                // prevents the browser from changing to a text selection 
cursor
+                d3.event.preventDefault();
+            }
+        })
             .on('mousemove.selection', function () {
                 // update selection box if shift is held down
                 if (d3.event.shiftKey) {
@@ -451,7 +451,7 @@ nf.Canvas = (function () {
             });
             svg.attr({
                 'height': canvasContainer.height(),
-                'width': canvasContainer.width()
+                'width': $(window).width()
             });
 
             //breadcrumbs
@@ -478,15 +478,48 @@ nf.Canvas = (function () {
                 updateGraphSize();
                 updateFlowStatusContainerSize();
 
+                // resize shell when appropriate
+                var shell = $('#shell-dialog');
+                if (shell.is(':visible')){
+                    setTimeout(function(shell){
+                        nf.Shell.resizeContent(shell);
+                        if(shell.find('#shell-iframe').is(':visible')) {
+                            nf.Shell.resizeIframe(shell);
+                        }
+                    }, 50, shell);
+                }
+
+                // resize dialogs when appropriate
+                var dialogs = $('.dialog');
+                for (var i = 0, len = dialogs.length; i < len; i++) {
+                    if ($(dialogs[i]).is(':visible')){
+                        setTimeout(function(dialog){
+                            dialog.modal('resize');
+                        }, 50, $(dialogs[i]));
+                    }
+                }
+
                 // resize grids when appropriate
                 var gridElements = $('*[class*="slickgrid_"]');
-                for (var i = 0, len = gridElements.length; i < len; i++) {
-                    if ($(gridElements[i]).is(':visible')){
+                for (var j = 0, len = gridElements.length; j < len; j++) {
+                    if ($(gridElements[j]).is(':visible')){
                         setTimeout(function(gridElement){
                             gridElement.data('gridInstance').resizeCanvas();
-                        }, 50, $(gridElements[i]));
+                        }, 50, $(gridElements[j]));
+                    }
+                }
+
+                // toggle tabs .scrollable when appropriate
+                var tabsContainers = $('.tab-container');
+                var tabsContents = [];
+                for (var k = 0, len = tabsContainers.length; k < len; k++) {
+                    if ($(tabsContainers[k]).is(':visible')){
+                        tabsContents.push($('#' + 
$(tabsContainers[k]).attr('id') + '-content'));
                     }
                 }
+                $.each(tabsContents, function (index, tabsContent) {
+                    nf.Common.toggleScrollable(tabsContent.get(0));
+                });
             }
         }).on('keydown', function (evt) {
             // if a dialog is open, disable canvas shortcuts
@@ -606,7 +639,7 @@ nf.Canvas = (function () {
 
             // update the access policies
             accessPolicy = flowResponse.accessPolicy;
-            
+
             // update the breadcrumbs
             nf.ng.Bridge.injector.get('breadcrumbsCtrl').resetBreadcrumbs();
             
nf.ng.Bridge.injector.get('breadcrumbsCtrl').generateBreadcrumbs(breadcrumb);
@@ -746,7 +779,7 @@ nf.Canvas = (function () {
             userXhr.done(function () {
                 // load the client id
                 var clientXhr = nf.Client.init();
-                
+
                 // get the controller config to register the status poller
                 var configXhr = $.ajax({
                     type: 'GET',
@@ -898,10 +931,10 @@ nf.Canvas = (function () {
                 return accessPolicy.canRead === true;
             }
         },
-        
+
         /**
          * Whether the current user can write in this group.
-         * 
+         *
          * @returns {boolean}   can write
          */
         canWrite: function () {

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-component-state.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-component-state.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-component-state.js
index b18a2fa..fd57303 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-component-state.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-component-state.js
@@ -224,6 +224,7 @@ nf.ComponentState = (function () {
 
             // initialize the processor configuration dialog
             $('#component-state-dialog').modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: 'Component State',
                 buttons: [{
                     buttonText: 'Close',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js
index e6593cd..b2ca3f8 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js
@@ -1123,11 +1123,15 @@ nf.ConnectionConfiguration = (function () {
 
             // initialize the configure connection dialog
             $('#connection-configuration').modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: 'Configure Connection',
                 handler: {
                     close: function () {
                         // reset the dialog on close
                         resetDialog();
+                    },
+                    open: function () {
+                        nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                     }
                 }
             });
@@ -1136,6 +1140,7 @@ nf.ConnectionConfiguration = (function () {
             $('#connection-configuration-tabs').tabbs({
                 tabStyle: 'tab',
                 selectedTabStyle: 'selected-tab',
+                scrollableTabContentStyle: 'scrollable',
                 tabs: [{
                     name: 'Details',
                     tabContentId: 'connection-details-tab-content'

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js
index 5f1954b..e92d2ce 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js
@@ -1523,6 +1523,7 @@ nf.ControllerService = (function () {
             $('#controller-service-configuration-tabs').tabbs({
                 tabStyle: 'tab',
                 selectedTabStyle: 'selected-tab',
+                scrollableTabContentStyle: 'scrollable',
                 tabs: [{
                     name: 'Settings',
                     tabContentId: 
'controller-service-standard-settings-tab-content'
@@ -1554,6 +1555,7 @@ nf.ControllerService = (function () {
             // initialize the conroller service configuration dialog
             $('#controller-service-configuration').modal({
                 headerText: 'Configure Controller Service',
+                scrollableContentStyle: 'scrollable',
                 handler: {
                     close: function () {
                         // empty the referencing components list
@@ -1573,6 +1575,9 @@ nf.ControllerService = (function () {
 
                         // removed the cached controller service details
                         
$('#controller-service-configuration').removeData('controllerServiceDetails');
+                    },
+                    open: function () {
+                        nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                     }
                 }
             });
@@ -1580,6 +1585,7 @@ nf.ControllerService = (function () {
             // initialize the disable service dialog
             $('#disable-controller-service-dialog').modal({
                 headerText: 'Disable Controller Service',
+                scrollableContentStyle: 'scrollable',
                 handler: {
                     close: function () {
                         var disableDialog = $(this);
@@ -1624,6 +1630,7 @@ nf.ControllerService = (function () {
             // initialize the enable service dialog
             $('#enable-controller-service-dialog').modal({
                 headerText: 'Enable Controller Service',
+                scrollableContentStyle: 'scrollable',
                 handler: {
                     close: function () {
                         var enableDialog = $(this);

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-services.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-services.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-services.js
index 24c8a38..cba56af 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-services.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-services.js
@@ -380,6 +380,7 @@ nf.ControllerServices = (function () {
         // initialize the controller service dialog
         $('#new-controller-service-dialog').modal({
             headerText: 'Add Controller Service',
+            scrollableContentStyle: 'scrollable',
             handler: {
                 close: function () {
                     // clear the selected row

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js
index 4875e40..7994009 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js
@@ -322,6 +322,7 @@ nf.GoTo = (function () {
          */
         init: function () {
             $('#connections-dialog').modal({
+                scrollableContentStyle: 'scrollable',
                 buttons: [{
                     buttonText: 'Close',
                     color: {

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js
index 36d4c00..ca2b39b 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js
@@ -28,6 +28,7 @@ nf.LabelConfiguration = (function () {
         init: function () {
             // make the new property dialog draggable
             $('#label-configuration').modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: 'Configure Label',
                 buttons: [{
                     buttonText: 'Apply',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js
index be8fb23..dfe2241 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js
@@ -24,6 +24,7 @@ nf.PortConfiguration = (function () {
      */
     var initPortConfigurationDialog = function () {
         $('#port-configuration').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Configure Port',
             buttons: [{
                 buttonText: 'Apply',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js
index 5ca78c3..0f8496d 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js
@@ -23,6 +23,7 @@ nf.PortDetails = (function () {
         init: function () {
             // configure the processor details dialog
             $('#port-details').modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: 'Port Details',
                 buttons: [{
                     buttonText: 'Ok',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js
index 2e5f39d..790c9f5 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js
@@ -175,12 +175,6 @@ nf.ProcessGroupConfiguration = (function () {
         nf.Shell.showContent('#process-group-configuration').done(function () {
             reset();
         });
-        $('#process-group-refresh-container').width($('#shell').width());
-
-        // add a shell:resize listener
-        $('#shell').on('shell:resize', function () {
-            $('#process-group-refresh-container').width($('#shell').width());
-        });
 
         // adjust the table size
         nf.ProcessGroupConfiguration.resetTableSize();
@@ -207,6 +201,7 @@ nf.ProcessGroupConfiguration = (function () {
             $('#process-group-configuration-tabs').tabbs({
                 tabStyle: 'tab',
                 selectedTabStyle: 'selected-tab',
+                scrollableTabContentStyle: 'scrollable',
                 tabs: [{
                     name: 'General',
                     tabContentId: 
'general-process-group-configuration-tab-content'

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js
index 4db2f0e..019d3aa 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js
@@ -23,6 +23,7 @@ nf.ProcessGroupDetails = (function () {
         init: function () {
             // configure the processor details dialog
             $('#process-group-details').modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: 'Process Group Details',
                 buttons: [{
                     buttonText: 'Ok',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js
index e60699b..a1602df 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js
@@ -456,6 +456,7 @@ nf.ProcessorConfiguration = (function () {
             $('#processor-configuration-tabs').tabbs({
                 tabStyle: 'tab',
                 selectedTabStyle: 'selected-tab',
+                scrollableTabContentStyle: 'scrollable',
                 tabs: [{
                     name: 'Settings',
                     tabContentId: 'processor-standard-settings-tab-content'
@@ -491,6 +492,7 @@ nf.ProcessorConfiguration = (function () {
 
             // initialize the processor configuration dialog
             $('#processor-configuration').modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: 'Configure Processor',
                 handler: {
                     close: function () {
@@ -502,6 +504,9 @@ nf.ProcessorConfiguration = (function () {
 
                         // removed the cached processor details
                         
$('#processor-configuration').removeData('processorDetails');
+                    },
+                    open: function () {
+                        nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                     }
                 }
             });

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js
index aadc57b..d6fa1ed 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-queue-listing.js
@@ -41,6 +41,8 @@ nf.QueueListing = (function () {
 
         // configure the drop request status dialog
         $('#listing-request-status-dialog').modal({
+            scrollableContentStyle: 'scrollable',
+            headerText: 'Queue Listing',
             handler: {
                 close: function () {
                     // reset the progress bar
@@ -189,6 +191,7 @@ nf.QueueListing = (function () {
         $('#flowfile-details-tabs').tabbs({
             tabStyle: 'tab',
             selectedTabStyle: 'selected-tab',
+            scrollableTabContentStyle: 'scrollable',
             tabs: [{
                 name: 'Details',
                 tabContentId: 'flowfile-details-tab-content'
@@ -199,6 +202,7 @@ nf.QueueListing = (function () {
         });
 
         $('#flowfile-details-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'FlowFile',
             buttons: [{
                 buttonText: 'Ok',
@@ -219,6 +223,9 @@ nf.QueueListing = (function () {
                     $('#flowfile-attributes-container').empty();
                     $('#flowfile-cluster-node-id').text('');
                     $('#additional-flowfile-details').empty();
+                },
+                open: function () {
+                    nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                 }
             }
         });
@@ -245,7 +252,7 @@ nf.QueueListing = (function () {
                 // update the progress bar
                 var label = $('<div 
class="progress-label"></div>').text(percentComplete + '%');
                 if (percentComplete > 0) {
-                    label.css('margin-top', '-19px');
+                    label.css('margin-top', '-24px');
                 }
                 progressBar.progressbar('value', 
percentComplete).append(label);
             };

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js
index b652059..63ded6b 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js
@@ -22,6 +22,7 @@ nf.RemoteProcessGroupConfiguration = (function () {
         init: function () {
             $('#remote-process-group-configuration').modal({
                 headerText: 'Configure Remote Process Group',
+                scrollableContentStyle: 'scrollable',
                 buttons: [{
                     buttonText: 'Apply',
                     color: {

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js
index f533d83..d757496 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js
@@ -22,6 +22,7 @@ nf.RemoteProcessGroupDetails = (function () {
         init: function () {
             $('#remote-process-group-details').modal({
                 headerText: 'Remote Process Group Details',
+                scrollableContentStyle: 'scrollable',
                 buttons: [{
                     buttonText: 'Ok',
                     color: {

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js
index 9907c6c..d91457e 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js
@@ -25,6 +25,7 @@ nf.RemoteProcessGroupPorts = (function () {
     var initRemotePortConfigurationDialog = function () {
         $('#remote-port-configuration').modal({
             headerText: 'Configure Remote Port',
+            scrollableContentStyle: 'scrollable',
             buttons: [{
                 buttonText: 'Apply',
                 color: {
@@ -146,6 +147,7 @@ nf.RemoteProcessGroupPorts = (function () {
      */
     var initRemoteProcessGroupConfigurationDialog = function () {
         $('#remote-process-group-ports').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Remote Process Group Ports',
             buttons: [{
                 buttonText: 'Close',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js
index b736df9..2cf66ab 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js
@@ -305,6 +305,7 @@ nf.ReportingTask = (function () {
             $('#reporting-task-configuration-tabs').tabbs({
                 tabStyle: 'tab',
                 selectedTabStyle: 'selected-tab',
+                scrollableTabContentStyle: 'scrollable',
                 tabs: [{
                     name: 'Settings',
                     tabContentId: 
'reporting-task-standard-settings-tab-content'
@@ -331,6 +332,7 @@ nf.ReportingTask = (function () {
 
             // initialize the reporting task configuration dialog
             $('#reporting-task-configuration').data('mode', 
config.edit).modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: 'Configure Reporting Task',
                 handler: {
                     close: function () {
@@ -345,6 +347,9 @@ nf.ReportingTask = (function () {
 
                         // removed the cached reporting task details
                         
$('#reporting-task-configuration').removeData('reportingTaskDetails');
+                    },
+                    open: function () {
+                        nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                     }
                 }
             });

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
index cca62ce..6e3db6a 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
@@ -530,6 +530,7 @@ nf.Settings = (function () {
 
         // initialize the reporting task dialog
         $('#new-reporting-task-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Add Reporting Task',
             buttons: [{
                     buttonText: 'Add',
@@ -954,6 +955,7 @@ nf.Settings = (function () {
             $('#settings-tabs').tabbs({
                 tabStyle: 'tab',
                 selectedTabStyle: 'selected-tab',
+                scrollableTabContentStyle: 'scrollable',
                 tabs: [{
                     name: 'General',
                     tabContentId: 'general-settings-tab-content'

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js
index 5d25e4e..f5e8e90 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js
@@ -335,6 +335,7 @@ nf.ClusterTable = (function () {
         init: function () {
             // initialize the user details dialog
             $('#node-details-dialog').modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: 'Node Details',
                 buttons: [{
                     buttonText: 'Ok',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js
index 6a6b36d..c18b9b3 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js
@@ -158,8 +158,40 @@ nf.Counters = (function () {
                             setBodySize();
                         }).fail(nf.Common.handleAjaxError);
 
-                        // listen for browser resize events to reset the body 
size
-                        $(window).resize(setBodySize);
+                        $(window).on('resize', function (e) {
+                            setBodySize();
+                            // resize dialogs when appropriate
+                            var dialogs = $('.dialog');
+                            for (var i = 0, len = dialogs.length; i < len; 
i++) {
+                                if ($(dialogs[i]).is(':visible')){
+                                    setTimeout(function(dialog){
+                                        dialog.modal('resize');
+                                    }, 50, $(dialogs[i]));
+                                }
+                            }
+
+                            // resize grids when appropriate
+                            var gridElements = $('*[class*="slickgrid_"]');
+                            for (var j = 0, len = gridElements.length; j < 
len; j++) {
+                                if ($(gridElements[j]).is(':visible')){
+                                    setTimeout(function(gridElement){
+                                        
gridElement.data('gridInstance').resizeCanvas();
+                                    }, 50, $(gridElements[j]));
+                                }
+                            }
+
+                            // toggle tabs .scrollable when appropriate
+                            var tabsContainers = $('.tab-container');
+                            var tabsContents = [];
+                            for (var k = 0, len = tabsContainers.length; k < 
len; k++) {
+                                if ($(tabsContainers[k]).is(':visible')){
+                                    tabsContents.push($('#' + 
$(tabsContainers[k]).attr('id') + '-content'));
+                                }
+                            }
+                            $.each(tabsContents, function (index, tabsContent) 
{
+                                nf.Common.toggleScrollable(tabsContent.get(0));
+                            });
+                        });
                     });
                 });
             });

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js
index 1892f7b..299c622 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js
@@ -40,6 +40,7 @@ nf.HistoryTable = (function () {
      */
     var initDetailsDialog = function () {
         $('#action-details-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Action Details',
             buttons: [{
                 buttonText: 'Ok',
@@ -98,6 +99,7 @@ nf.HistoryTable = (function () {
 
         // configure the filter dialog
         $('#history-filter-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Filter History',
             buttons: [{
                 buttonText: 'Filter',
@@ -188,6 +190,7 @@ nf.HistoryTable = (function () {
 
         // configure the filter dialog
         $('#history-purge-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Purge History',
             buttons: [{
                 buttonText: 'Purge',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js
index c6087bc..b82d285 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js
@@ -157,8 +157,40 @@ nf.History = (function () {
                         setBodySize();
                     }).fail(nf.Common.handleAjaxError);
 
-                    // listen for browser resize events to reset the body size
-                    $(window).resize(setBodySize);
+                    $(window).on('resize', function (e) {
+                        setBodySize();
+                        // resize dialogs when appropriate
+                        var dialogs = $('.dialog');
+                        for (var i = 0, len = dialogs.length; i < len; i++) {
+                            if ($(dialogs[i]).is(':visible')){
+                                setTimeout(function(dialog){
+                                    dialog.modal('resize');
+                                }, 50, $(dialogs[i]));
+                            }
+                        }
+
+                        // resize grids when appropriate
+                        var gridElements = $('*[class*="slickgrid_"]');
+                        for (var j = 0, len = gridElements.length; j < len; 
j++) {
+                            if ($(gridElements[j]).is(':visible')){
+                                setTimeout(function(gridElement){
+                                    
gridElement.data('gridInstance').resizeCanvas();
+                                }, 50, $(gridElements[j]));
+                            }
+                        }
+
+                        // toggle tabs .scrollable when appropriate
+                        var tabsContainers = $('.tab-container');
+                        var tabsContents = [];
+                        for (var k = 0, len = tabsContainers.length; k < len; 
k++) {
+                            if ($(tabsContainers[k]).is(':visible')){
+                                tabsContents.push($('#' + 
$(tabsContainers[k]).attr('id') + '-content'));
+                            }
+                        }
+                        $.each(tabsContents, function (index, tabsContent) {
+                            nf.Common.toggleScrollable(tabsContent.get(0));
+                        });
+                    });
                 });
             });
         }

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js
index 7872964..7c9951e 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js
@@ -329,6 +329,23 @@ nf.Common = (function () {
         },
 
         /**
+         * Determine if an `element` has content overflow and adds the 
`.scrollable` class if it does.
+         *
+         * @param {HTMLElement} element The DOM element to toggle .scrollable 
upon.
+         */
+        toggleScrollable: function (element) {
+            if ($(element).is(':visible')){
+                if (element.offsetHeight < element.scrollHeight ||
+                    element.offsetWidth < element.scrollWidth) {
+                    // your element has overflow
+                    $(element).addClass('scrollable');
+                } else {
+                    $(element).removeClass('scrollable');
+                }
+            }
+        },
+
+        /**
          * Method for handling ajax errors.
          * 
          * @argument {object} xhr       The XmlHttpRequest

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js
index d7fd6a8..74c8ccf 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js
@@ -293,6 +293,7 @@ nf.ConnectionDetails = (function () {
             $('#connection-details-tabs').tabbs({
                 tabStyle: 'tab',
                 selectedTabStyle: 'selected-tab',
+                scrollableTabContentStyle: 'scrollable',
                 tabs: [{
                     name: 'Details',
                     tabContentId: 'read-only-connection-details-tab-content'
@@ -305,6 +306,7 @@ nf.ConnectionDetails = (function () {
             // configure the connection details dialog
             $('#connection-details').modal({
                 headerText: 'Connection Details',
+                scrollableContentStyle: 'scrollable',
                 buttons: [{
                     buttonText: 'Ok',
                     color: {
@@ -345,6 +347,9 @@ nf.ConnectionDetails = (function () {
                         
$('#read-only-back-pressure-object-threshold').text('');
                         
$('#read-only-back-pressure-data-size-threshold').text('');
                         $('#read-only-prioritizers').empty();
+                    },
+                    open: function () {
+                        nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                     }
                 }
             });

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js
index 486c3b7..d90ead0 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js
@@ -20,6 +20,7 @@
 $(document).ready(function () {
     // configure the ok dialog
     $('#nf-ok-dialog').modal({
+        scrollableContentStyle: 'scrollable',
         handler: {
             close: function () {
                 // clear the content
@@ -33,6 +34,7 @@ $(document).ready(function () {
 
     // configure the yes/no dialog
     $('#nf-yes-no-dialog').modal({
+        scrollableContentStyle: 'scrollable',
         handler: {
             close: function () {
                 // clear the content and reset the button model

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js
index 466cfd9..f76adf6 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js
@@ -51,6 +51,7 @@ nf.ProcessorDetails = (function () {
             $('#processor-details-tabs').tabbs({
                 tabStyle: 'tab',
                 selectedTabStyle: 'selected-tab',
+                scrollableTabContentStyle: 'scrollable',
                 tabs: [{
                     name: 'Settings',
                     tabContentId: 'details-standard-settings-tab-content'
@@ -84,6 +85,7 @@ nf.ProcessorDetails = (function () {
             // configure the processor details dialog
             $('#processor-details').modal({
                 headerText: 'Processor Details',
+                scrollableContentStyle: 'scrollable',
                 handler: {
                     close: function () {
                         // empty the relationship list
@@ -108,6 +110,9 @@ nf.ProcessorDetails = (function () {
                         // removed the cached processor details
                         $('#processor-details').removeData('processorDetails');
                         $('#processor-details').removeData('processorHistory');
+                    },
+                    open: function () {
+                        nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                     }
                 }
             });

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js
index 930f019..c2ecc49 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js
@@ -20,6 +20,7 @@
 $(document).ready(function () {
     // configure the dialog
     $('#shell-dialog').modal({
+        scrollableContentStyle: 'scrollable',
         header: false,
         footer: false
     });
@@ -49,6 +50,26 @@ nf.Shell = (function () {
     var showContentResize = null;
 
     return {
+        
+        resizeContent: function (shell) {
+            var contentContainer = shell.find('.shell-content-container');
+            contentContainer.css({
+                width: shell.width(),
+                height: shell.height() - 28 - 40 //subtract 
shell-close-container and padding
+            });
+            shell.trigger("shell:content:resize");
+        },
+
+        // handle resize
+        resizeIframe: function (shell) {
+            var shellIframe = shell.find('#shell-iframe');
+            shellIframe.css({
+                width: shell.width(),
+                height: shell.height() - 28 - 40 //subtract 
shell-close-container and padding
+            });
+            shell.trigger("shell:iframe:resize");
+        },
+        
         /**
          * Shows a page in the shell.
          * 
@@ -73,9 +94,12 @@ nf.Shell = (function () {
                 shell.empty();
 
                 // register a new close handler
-                $('#shell-dialog').modal('setHandler', {
+                $('#shell-dialog').modal('setCloseHandler', {
                     close: function () {
                         deferred.resolve();
+                    },
+                    open: function () {
+                        nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                     }
                 });
 
@@ -98,23 +122,6 @@ nf.Shell = (function () {
                     width: shell.width(),
                     height: shell.height() - 28 //subtract 
shell-close-container
                 }).appendTo(shell);
-
-                // remove the window resize listener
-                if (typeof showPageResize === 'function') {
-                    $(window).off('resize', showPageResize);
-                }
-
-                // handle resize
-                showPageResize = function () {
-                    shellIframe.css({
-                        width: shell.width(),
-                        height: shell.height() - 28 //subtract 
shell-close-container
-                    });
-                    shell.trigger("shell:resize");
-                };
-
-                // add a window resize listener
-                $(window).resize(showPageResize);
             }).promise();
         },
         
@@ -143,7 +150,7 @@ nf.Shell = (function () {
                     content.detach();
 
                     // register a new close handler
-                    $('#shell-dialog').modal('setHandler', {
+                    $('#shell-dialog').modal('setCloseHandler', {
                         close: function () {
                             deferred.resolve();
 
@@ -159,30 +166,13 @@ nf.Shell = (function () {
                     $('#shell-dialog').modal('show');
 
                     // create the content container
-                    var contentContainer = $('<div>').css({
+                    var contentContainer = 
$('<div>').addClass('shell-content-container').css({
                         width: shell.width(),
                         height: shell.height()
                     }).append(content).appendTo(shell);
-
-                    // remove the window resize listener
-                    if (typeof showContentResize === 'function') {
-                        $(window).off('resize', showContentResize);
-                    }
                     
                     // show the content
                     content.show();
-
-                    // handle resizes
-                    showContentResize = function () {
-                        contentContainer.css({
-                            width: shell.width(),
-                            height: shell.height()
-                        });
-                        shell.trigger("shell:resize");
-                    };
-                    
-                    // add a window resize listener
-                    $(window).resize(showContentResize);
                 }
             }).promise();
         }

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js
index 797aaad..8729958 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js
@@ -850,7 +850,7 @@ nf.StatusHistory = (function () {
             },
             start: function (e, ui) {
                 var helperOffset = ui.helper.offset();
-                var dialogOuter = ((statusHistoryDialog.outerWidth() - 
statusHistoryDialog.width()) / 2) + 8; //8 for the box shadow
+                var dialogOuter = ((statusHistoryDialog.outerWidth() - 
statusHistoryDialog.width()) / 2);
                 var dialogContent = 
statusHistoryDialog.find('.dialog-content');
                 var dialogContentPaddingRight = ((dialogContent.outerWidth() - 
dialogContent.width()) / 2);
                 var chartOuter = chartContainer.outerWidth() - 
chartContainer.width();
@@ -859,9 +859,8 @@ nf.StatusHistory = (function () {
                 maxWidth = $('body').width() - helperOffset.left - dialogOuter 
- dialogContentPaddingRight - chartOuter;
 
                 // calculate the max height of the component
-                var dialogContentPaddingBottom = ((dialogContent.outerHeight() 
- dialogContent.height()) / 2);
-                var dialogButtonsHeight = 
statusHistoryDialog.find('.dialog-buttons').height() + 5; //5 for the box shadow
-                maxHeight = $('body').height() - helperOffset.top - 
dialogOuter - chartOuter - dialogContentPaddingBottom - dialogButtonsHeight - 
chartControlContainer.outerHeight(true);
+                var dialogContentPaddingBottom = dialogContent.outerHeight() - 
dialogContent.height() - parseInt(dialogContent.css('padding-top'), 10);
+                maxHeight = $('body').height() - helperOffset.top - 
dialogOuter - chartOuter - dialogContentPaddingBottom - 
chartControlContainer.outerHeight(true);
 
                 // record the current extent so it can be reset on stop
                 if (!brush.empty()) {
@@ -1077,6 +1076,7 @@ nf.StatusHistory = (function () {
 
             // configure the dialog and make it draggable
             $('#status-history-dialog').modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: "Status History",
                 buttons: [{
                     buttonText: 'Close',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js
index 5d1d76a..a1317e4 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js
@@ -39,6 +39,7 @@ nf.ProvenanceLineage = (function () {
 
         // initialize the dialog
         $('#lineage-query-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Computing FlowFile lineage...',
             handler: {
                 close: function () {

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js
index 9f739a3..b68d7d0 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js
@@ -185,6 +185,7 @@ nf.ProvenanceTable = (function () {
         $('#event-details-tabs').tabbs({
             tabStyle: 'tab',
             selectedTabStyle: 'selected-tab',
+            scrollableTabContentStyle: 'scrollable',
             tabs: [{
                 name: 'Details',
                 tabContentId: 'event-details-tab-content'
@@ -198,6 +199,7 @@ nf.ProvenanceTable = (function () {
         });
 
         $('#event-details-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Provenance Event',
             buttons: [{
                 buttonText: 'Ok',
@@ -221,6 +223,9 @@ nf.ProvenanceTable = (function () {
                     $('#child-flowfiles-container').empty();
                     $('#provenance-event-cluster-node-id').text('');
                     
$('#modified-attribute-toggle').removeClass('checkbox-checked').addClass('checkbox-unchecked');
+                },
+                open: function () {
+                    nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                 }
             }
         });
@@ -359,6 +364,7 @@ nf.ProvenanceTable = (function () {
 
         // configure the search dialog
         $('#provenance-search-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Search Events',
             buttons: [{
                 buttonText: 'Search',
@@ -460,6 +466,7 @@ nf.ProvenanceTable = (function () {
 
         // initialize the dialog
         $('#provenance-query-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Searching provenance events...',
             handler: {
                 close: function () {

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js
index fe16705..f1ac3b9 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js
@@ -222,8 +222,40 @@ nf.Provenance = (function () {
                         setBodySize();
                     });
 
-                    // listen for browser resize events to reset the body size
-                    $(window).resize(setBodySize);
+                    $(window).on('resize', function (e) {
+                        setBodySize();
+                        // resize dialogs when appropriate
+                        var dialogs = $('.dialog');
+                        for (var i = 0, len = dialogs.length; i < len; i++) {
+                            if ($(dialogs[i]).is(':visible')){
+                                setTimeout(function(dialog){
+                                    dialog.modal('resize');
+                                }, 50, $(dialogs[i]));
+                            }
+                        }
+
+                        // resize grids when appropriate
+                        var gridElements = $('*[class*="slickgrid_"]');
+                        for (var j = 0, len = gridElements.length; j < len; 
j++) {
+                            if ($(gridElements[j]).is(':visible')){
+                                setTimeout(function(gridElement){
+                                    
gridElement.data('gridInstance').resizeCanvas();
+                                }, 50, $(gridElements[j]));
+                            }
+                        }
+
+                        // toggle tabs .scrollable when appropriate
+                        var tabsContainers = $('.tab-container');
+                        var tabsContents = [];
+                        for (var k = 0, len = tabsContainers.length; k < len; 
k++) {
+                            if ($(tabsContainers[k]).is(':visible')){
+                                tabsContents.push($('#' + 
$(tabsContainers[k]).attr('id') + '-content'));
+                            }
+                        }
+                        $.each(tabsContents, function (index, tabsContent) {
+                            nf.Common.toggleScrollable(tabsContent.get(0));
+                        });
+                    });
                 });
             });
         }

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js
index eedeed2..799c2cc 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js
@@ -32,6 +32,7 @@ nf.ClusterSearch = (function () {
         init: function () {
             // configure the view single node dialog
             $('#view-single-node-dialog').modal({
+                scrollableContentStyle: 'scrollable',
                 headerText: 'Select node',
                 buttons: [{
                     buttonText: 'Ok',

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js
index 6042703..7a3d260 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js
@@ -73,6 +73,7 @@ nf.SummaryTable = (function () {
         $('#summary-tabs').tabbs({
             tabStyle: 'tab',
             selectedTabStyle: 'selected-tab',
+            scrollableTabContentStyle: 'scrollable',
             tabs: [{
                 name: 'Processors',
                 tabContentId: 'processor-summary-tab-content'
@@ -528,6 +529,7 @@ nf.SummaryTable = (function () {
 
         // initialize the cluster processor summary dialog
         $('#cluster-processor-summary-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Cluster Processor Summary',
             buttons: [{
                 buttonText: 'Close',
@@ -784,6 +786,7 @@ nf.SummaryTable = (function () {
 
         // initialize the cluster connection summary dialog
         $('#cluster-connection-summary-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Cluster Connection Summary',
             buttons: [{
                 buttonText: 'Close',
@@ -1088,6 +1091,7 @@ nf.SummaryTable = (function () {
 
         // initialize the cluster process group summary dialog
         $('#cluster-process-group-summary-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Cluster Process Group Summary',
             buttons: [{
                 buttonText: 'Close',
@@ -1331,6 +1335,7 @@ nf.SummaryTable = (function () {
 
         // initialize the cluster input port summary dialog
         $('#cluster-input-port-summary-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Cluster Input Port Summary',
             buttons: [{
                 buttonText: 'Close',
@@ -1570,6 +1575,7 @@ nf.SummaryTable = (function () {
 
         // initialize the cluster output port summary dialog
         $('#cluster-output-port-summary-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Cluster Output Port Summary',
             buttons: [{
                 buttonText: 'Close',
@@ -1866,6 +1872,7 @@ nf.SummaryTable = (function () {
 
         // initialize the cluster remote process group summary dialog
         $('#cluster-remote-process-group-summary-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'Cluster Remote Process Group Summary',
             buttons: [{
                 buttonText: 'Close',
@@ -1969,6 +1976,7 @@ nf.SummaryTable = (function () {
         $('#system-diagnostics-tabs').tabbs({
             tabStyle: 'tab',
             selectedTabStyle: 'selected-tab',
+            scrollableTabContentStyle: 'scrollable',
             tabs: [{
                 name: 'JVM',
                 tabContentId: 'jvm-tab-content'
@@ -1980,6 +1988,7 @@ nf.SummaryTable = (function () {
 
         // initialize the system diagnostics dialog
         $('#system-diagnostics-dialog').modal({
+            scrollableContentStyle: 'scrollable',
             headerText: 'System Diagnostics',
             buttons: [{
                 buttonText: 'Close',
@@ -1998,6 +2007,9 @@ nf.SummaryTable = (function () {
                 close: function () {
                     // show the summary loading container
                     $('#summary-loading-container').show();
+                },
+                open: function () {
+                    nf.Common.toggleScrollable($('#' + 
this.find('.tab-container').attr('id') + '-content').get(0));
                 }
             }
         });

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js
index 8476621..f67a753 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js
@@ -183,8 +183,40 @@ nf.Summary = (function () {
                             setBodySize();
                         }).fail(nf.Common.handleAjaxError);
 
-                        // listen for browser resize events to reset the body 
size
-                        $(window).resize(setBodySize);
+                        $(window).on('resize', function (e) {
+                            setBodySize();
+                            // resize dialogs when appropriate
+                            var dialogs = $('.dialog');
+                            for (var i = 0, len = dialogs.length; i < len; 
i++) {
+                                if ($(dialogs[i]).is(':visible')){
+                                    setTimeout(function(dialog){
+                                        dialog.modal('resize');
+                                    }, 50, $(dialogs[i]));
+                                }
+                            }
+
+                            // resize grids when appropriate
+                            var gridElements = $('*[class*="slickgrid_"]');
+                            for (var j = 0, len = gridElements.length; j < 
len; j++) {
+                                if ($(gridElements[j]).is(':visible')){
+                                    setTimeout(function(gridElement){
+                                        
gridElement.data('gridInstance').resizeCanvas();
+                                    }, 50, $(gridElements[j]));
+                                }
+                            }
+
+                            // toggle tabs .scrollable when appropriate
+                            var tabsContainers = $('.tab-container');
+                            var tabsContents = [];
+                            for (var k = 0, len = tabsContainers.length; k < 
len; k++) {
+                                if ($(tabsContainers[k]).is(':visible')){
+                                    tabsContents.push($('#' + 
$(tabsContainers[k]).attr('id') + '-content'));
+                                }
+                            }
+                            $.each(tabsContents, function (index, tabsContent) 
{
+                                nf.Common.toggleScrollable(tabsContent.get(0));
+                            });
+                        });
                     });
                 });
             });

http://git-wip-us.apache.org/repos/asf/nifi/blob/293dc299/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js
index 678c25f..da5785b 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js
@@ -157,8 +157,40 @@ nf.Templates = (function () {
                             setBodySize();
                         }).fail(nf.Common.handleAjaxError);
 
-                        // listen for browser resize events to reset the body 
size
-                        $(window).resize(setBodySize);
+                        $(window).on('resize', function (e) {
+                            setBodySize();
+                            // resize dialogs when appropriate
+                            var dialogs = $('.dialog');
+                            for (var i = 0, len = dialogs.length; i < len; 
i++) {
+                                if ($(dialogs[i]).is(':visible')){
+                                    setTimeout(function(dialog){
+                                        dialog.modal('resize');
+                                    }, 50, $(dialogs[i]));
+                                }
+                            }
+
+                            // resize grids when appropriate
+                            var gridElements = $('*[class*="slickgrid_"]');
+                            for (var j = 0, len = gridElements.length; j < 
len; j++) {
+                                if ($(gridElements[j]).is(':visible')){
+                                    setTimeout(function(gridElement){
+                                        
gridElement.data('gridInstance').resizeCanvas();
+                                    }, 50, $(gridElements[j]));
+                                }
+                            }
+
+                            // toggle tabs .scrollable when appropriate
+                            var tabsContainers = $('.tab-container');
+                            var tabsContents = [];
+                            for (var k = 0, len = tabsContainers.length; k < 
len; k++) {
+                                if ($(tabsContainers[k]).is(':visible')){
+                                    tabsContents.push($('#' + 
$(tabsContainers[k]).attr('id') + '-content'));
+                                }
+                            }
+                            $.each(tabsContents, function (index, tabsContent) 
{
+                                nf.Common.toggleScrollable(tabsContent.get(0));
+                            });
+                        });
                     });
                 });
             });

Reply via email to