This is an automated email from the ASF dual-hosted git repository. scottyaslan pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nifi.git
commit 10b4f6fd89cfb7f996a9ab1258eee7c8e00f6a8a Author: Rob Fellows <[email protected]> AuthorDate: Tue Sep 3 16:57:47 2019 -0400 NIFI-6506 - review feedback * fixed issues converting sensitive props to parameters * only include parameter value if it has changed (even for non-sensitive params) * do not allow null parameter values when editing parameters. --- .../jquery/propertytable/jquery.propertytable.js | 9 +++-- .../webapp/js/nf/canvas/nf-parameter-contexts.js | 47 +++++++++++++++------- 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.js index 7709824..c4050d6 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.js @@ -1578,15 +1578,16 @@ if (options.readOnly !== true && !_.isNil(parameterContextId)) { var descriptors = table.data('descriptors'); - var propertyDescriptor = descriptors[property.displayName]; + var propertyDescriptor = descriptors[property.property]; nfParameterContexts.convertPropertyToParameter(property, propertyDescriptor, parameterContextId) .done(function (parameter) { - // set the property value to the reference the parameter that was created - propertyData.updateItem(property.id, $.extend(property, { + var updatedItem = _.extend({}, property, { previousValue: property.value, value: '#{' + parameter.name + '}' - })); + }); + // set the property value to the reference the parameter that was created + propertyData.updateItem(property.id, updatedItem); }); } } diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-parameter-contexts.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-parameter-contexts.js index 49aa47e..3fdc7f0 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-parameter-contexts.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-parameter-contexts.js @@ -814,12 +814,23 @@ */ var serializeParameter = function (originalParameter) { var name = $.trim($('#parameter-name').val()); + var value = $('#parameter-value-field').val(); var isEmptyStringSet = $('#parameter-set-empty-string-field').hasClass('checkbox-checked'); - - var serializedValue = serializeValue($('#parameter-value-field'), originalParameter, isEmptyStringSet); var description = $('#parameter-description-field').val(); var isSensitive = $('#parameter-dialog').find('input[name="sensitive"]:checked').val() === 'sensitive' ? true : false; + var parameter = { + name: name, + value: value, + description: description, + sensitive: isSensitive, + isEmptyStringSet: isEmptyStringSet, + previousValue: null, + isNew: true + }; + + var serializedValue = serializeValue($('#parameter-value-field'), _.isNil(originalParameter) ? parameter : originalParameter, isEmptyStringSet); + return { name: name, value: serializedValue.value, @@ -859,6 +870,14 @@ // validate the parameter is not a duplicate var matchingParameter = _.find(existingParameters, { name: parameter.name }); + // If in edit mode, the value can not be null + if (editMode === true && _.isNil(parameter.value)) { + nfDialog.showOkDialog({ + headerText: 'Configuration Error', + dialogContent: 'The value of the parameter must be specified.' + }); + } + // Valid if no duplicate is found or it is edit mode and a matching parameter was found if (_.isNil(matchingParameter) || (editMode === true && !_.isNil(matchingParameter))) { return true; @@ -885,7 +904,7 @@ var serializeValue = function (input, parameter, isChecked) { var serializedValue; - var hasChanged = true; + var hasChanged = parameter.value !== parameter.previousValue; var value = input.val(); if (!nfCommon.isBlank(value)) { @@ -938,7 +957,7 @@ isEmptyStringSet: serializedParam.isEmptyStringSet, isNew: originalParameter.isNew, hasValueChanged: serializedParam.hasValueChanged, - isModified: serializedParam.value !== originalParameter.value || serializedParam.description !== originalParameter.description + isModified: serializedParam.hasValueChanged || serializedParam.description !== originalParameter.description }); // update row for the parameter @@ -1013,10 +1032,11 @@ text: '#ffffff' }, disabled: function () { - if ($('#parameter-context-name').val() !== '') { - return false; + var param = serializeParameter(); + if (_.isEmpty(param.name) || (_.isNil(param.value) && !param.isEmptyStringSet)) { + return true; } - return true; + return false; }, handler: { click: function () { @@ -1400,7 +1420,7 @@ return '<span class="table-cell sensitive">Sensitive value set</span>'; } else if (value === '') { return '<span class="table-cell blank">Empty string set</span>'; - } else if (nfCommon.isNull(value)) { + } else if (_.isNil(value)) { return '<span class="unset">No value set</span>'; } else { return nfCommon.escapeHtml(value); @@ -1576,7 +1596,7 @@ }, disabled: function () { var param = serializeParameter(parameter); - return param.value === parameter.value && param.description === parameter.description; + return !param.hasValueChanged && param.description === parameter.description; }, handler: { click: function () { @@ -1849,14 +1869,10 @@ var param = serializeParameter(); var isUpdatingParameterContext = $('#parameter-context-updating-status').hasClass('show-status'); - if (isUpdatingParameterContext) { + if (isUpdatingParameterContext || _.isEmpty(param.name)) { return true; } - - if (param.name !== '') { - return false; - } - return true; + return false; }, handler: { click: callbacks.onApply @@ -2477,6 +2493,7 @@ if (nfCommon.isSensitiveProperty(propertyDescriptor)) { $('#parameter-sensitive-radio-button').prop('checked', true); $('#parameter-not-sensitive-radio-button').prop('checked', false); + $('#parameter-value-field').val(null); } else { $('#parameter-sensitive-radio-button').prop('checked', false); $('#parameter-not-sensitive-radio-button').prop('checked', true);
