Repository: incubator-nifi
Updated Branches:
  refs/heads/NIFI-250 40670067c -> a1a769104


NIFI-250:
- Updating the controller service dialog to support a read only and editable 
modes.

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

Branch: refs/heads/NIFI-250
Commit: a1a769104881eaf44ca9736cd185edc972eb5807
Parents: 4067006
Author: Matt Gilman <[email protected]>
Authored: Fri Mar 13 14:48:08 2015 -0400
Committer: Matt Gilman <[email protected]>
Committed: Fri Mar 13 14:48:08 2015 -0400

----------------------------------------------------------------------
 .../canvas/reporting-task-configuration.jsp     |  17 ++-
 .../webapp/js/nf/canvas/nf-reporting-task.js    | 118 ++++++++++++++++++-
 .../src/main/webapp/js/nf/canvas/nf-settings.js |   2 +-
 3 files changed, 131 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/a1a76910/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/reporting-task-configuration.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/reporting-task-configuration.jsp
 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/reporting-task-configuration.jsp
index b138779..29737ea 100644
--- 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/reporting-task-configuration.jsp
+++ 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/reporting-task-configuration.jsp
@@ -23,13 +23,16 @@
                 <div class="settings-left">
                     <div class="setting">
                         <div class="setting-name">Name</div>
-                        <div class="setting-field">
+                        <div class="reporting-task-editable setting-field">
                             <input type="text" id="reporting-task-name" 
name="reporting-task-name"/>
                             <div class="reporting-task-enabled-container">
                                 <div id="reporting-task-enabled" 
class="nf-checkbox checkbox-unchecked"></div>
                                 <span> Enabled</span>
                             </div>
                         </div>
+                        <div class="reporting-task-read-only setting-field 
hidden">
+                            <span id="read-only-reporting-task-name"></span>
+                        </div>
                     </div>
                     <div class="setting">
                         <div class="setting-name">Id</div>
@@ -64,8 +67,11 @@
                                 Scheduling strategy
                                 <img class="setting-icon icon-info" 
src="images/iconInfo.png" alt="Info" title="The strategy used to schedule this 
reporting task."/>
                             </div>
-                            <div class="setting-field">
-                                <div type="text" 
id="reporting-task-scheduling-strategy-combo"></div>
+                            <div class="reporting-task-editable setting-field">
+                                <div 
id="reporting-task-scheduling-strategy-combo"></div>
+                            </div>
+                            <div class="reporting-task-read-only setting-field 
hidden">
+                                <span 
id="read-only-reporting-task-scheduling-strategy"></span>
                             </div>
                         </div>
                         <div 
class="reporting-task-scheduling-period-container">
@@ -73,10 +79,13 @@
                                 Run schedule
                                 <img class="setting-icon icon-info" 
src="images/iconInfo.png" alt="Info" title="The amount of time that should 
elapse between task executions."/>
                             </div>
-                            <div class="setting-field">
+                            <div class="reporting-task-editable setting-field">
                                 <input type="text" 
id="reporting-task-timer-driven-scheduling-period" 
class="reporting-task-scheduling-period small-setting-input"/>
                                 <input type="text" 
id="reporting-task-cron-driven-scheduling-period" 
class="reporting-task-scheduling-period small-setting-input"/>
                             </div>
+                            <div class="reporting-task-read-only setting-field 
hidden">
+                                <span 
id="read-only-reporting-task-scheduling-period"></span>
+                            </div>
                         </div>
                         <div class="clear"></div>
                     </div>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/a1a76910/nifi/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/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/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js
index c9af041..699b695 100644
--- 
a/nifi/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/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js
@@ -18,6 +18,11 @@
 /* global nf */
 
 nf.ReportingTask = (function () {
+    
+    var config = {
+        edit: 'edit',
+        readOnly: 'read-only'
+    };
 
     /**
      * Handle any expected reporting task configuration errors.
@@ -244,7 +249,7 @@ nf.ReportingTask = (function () {
             }
 
             // initialize the reporting task configuration dialog
-            $('#reporting-task-configuration').modal({
+            $('#reporting-task-configuration').data('mode', 
config.edit).modal({
                 headerText: 'Configure Reporting Task',
                 overlayBackground: false,
                 handler: {
@@ -277,6 +282,22 @@ nf.ReportingTask = (function () {
          * @argument {reportingTask} reportingTask      The reporting task
          */
         showConfiguration: function (reportingTask) {
+            var reportingTaskDialog = $('#reporting-task-configuration');
+            if (reportingTaskDialog.data('mode') === config.readOnly) {
+                // update the visibility
+                $('#reporting-task-configuration 
.reporting-task-read-only').hide();
+                $('#reporting-task-configuration 
.reporting-task-editable').show();
+                
+                // initialize the property table
+                $('#reporting-task-properties').propertytable({
+                    readOnly: false,
+                    newPropertyDialogContainer: 
'#new-reporting-task-property-container'
+                });
+                
+                // update the mode
+                reportingTaskDialog.data('mode', config.edit);
+            }
+            
             // reload the task in case the property descriptors have changed
             var reloadTask = $.ajax({
                 type: 'GET',
@@ -477,8 +498,103 @@ nf.ReportingTask = (function () {
             }).fail(nf.Common.handleAjaxError);
         }, 
         
+        /**
+         * Shows the reporting task details in a read only dialog.
+         * 
+         * @param {object} reportingTask
+         */
         showDetails: function(reportingTask) {
+            var reportingTaskDialog = $('#reporting-task-configuration');
+            if (reportingTaskDialog.data('mode') === config.edit) {
+                // update the visibility
+                $('#reporting-task-configuration 
.reporting-task-read-only').show();
+                $('#reporting-task-configuration 
.reporting-task-editable').hide();
+                
+                // initialize the property table
+                $('#reporting-task-properties').propertytable({
+                    readOnly: true,
+                    newPropertyDialogContainer: 
'#new-reporting-task-property-container'
+                });
+                
+                // update the mode
+                reportingTaskDialog.data('mode', config.readOnly);
+            }
             
+            // reload the task in case the property descriptors have changed
+            var reloadTask = $.ajax({
+                type: 'GET',
+                url: reportingTask.uri,
+                dataType: 'json'
+            });
+            
+            // get the reporting task history
+            var loadHistory = $.ajax({
+                type: 'GET',
+                url: '../nifi-api/controller/history/reporting-tasks/' + 
encodeURIComponent(reportingTask.id),
+                dataType: 'json'
+            });
+            
+            // once everything is loaded, show the dialog
+            $.when(reloadTask, loadHistory).done(function (taskResponse, 
historyResponse) {
+                // get the updated reporting task
+                reportingTask = taskResponse[0].reportingTask;
+                
+                // get the reporting task history
+                var reportingTaskHistory = historyResponse[0].componentHistory;
+                
+                // populate the reporting task settings
+                $('#reporting-task-id').text(reportingTask['id']);
+                
$('#reporting-task-type').text(nf.Common.substringAfterLast(reportingTask['type'],
 '.'));
+                
$('#read-only-reporting-task-name').text(reportingTask['name']);
+
+                // select the availability when appropriate
+                if (nf.Canvas.isClustered()) {
+                    if (reportingTask['availability'] === 'node') {
+                        $('#availability').text('Node');
+                    } else {
+                        $('#availability').text('Cluster Manager');
+                    }
+                }
+                
+                // scheduling
+                
$('#read-only-reporting-task-scheduling-strategy').text(reportingTask['schedulingStrategy']);
+                
$('#read-only-reporting-task-scheduling-period').text(reportingTask['schedulingPeriod']);
+                
+                var buttons = [{
+                        buttonText: 'Ok',
+                        handler: {
+                            click: function () {
+                                // hide the dialog
+                                reportingTaskDialog.modal('hide');
+                            }
+                        }
+                    }];
+
+                // determine if we should show the advanced button
+                if (nf.Common.isDefinedAndNotNull(nf.CustomProcessorUi) && 
nf.Common.isDefinedAndNotNull(reportingTask.customUiUrl) && 
reportingTask.customUiUrl !== '') {
+                    buttons.push({
+                        buttonText: 'Advanced',
+                        handler: {
+                            click: function () {
+                                // reset state and close the dialog manually 
to avoid hiding the faded background
+                                reportingTaskDialog.modal('hide');
+
+                                // show the custom ui
+                                
nf.CustomProcessorUi.showCustomUi(reportingTask.id, reportingTask.customUiUrl, 
false);
+                            }
+                        }
+                    });
+                }
+                
+                // show the dialog
+                reportingTaskDialog.modal('setButtonModel', 
buttons).modal('show');
+                
+                // load the property table
+                
$('#controller-service-properties').propertytable('loadProperties', 
reportingTask.properties, reportingTask.descriptors, 
reportingTaskHistory.propertyHistory);
+                
+                // show the details
+                reportingTaskDialog.modal('show');
+            });
         },
         
         /**

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/a1a76910/nifi/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/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
index fc01532..d3a3eff 100644
--- 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
+++ 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js
@@ -1439,7 +1439,7 @@ nf.Settings = (function () {
                 }
             } else if (reportingTasksGrid.getColumns()[args.cell].id === 
'moreDetails') {
                 if (target.hasClass('view-reporting-task')) {
-
+                    nf.ReportingTask.showDetails(reportingTask);
                 }
             }
         });

Reply via email to