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