mirror of
https://github.com/apache/nifi.git
synced 2025-02-08 11:05:17 +00:00
NIFI-6505 - Addressing review feedback: reuse single method for getting parameter field values.
This commit is contained in:
parent
f3a04521c2
commit
aa07378a03
@ -761,7 +761,7 @@
|
|||||||
* Adds a new parameter.
|
* Adds a new parameter.
|
||||||
*/
|
*/
|
||||||
var addNewParameter = function () {
|
var addNewParameter = function () {
|
||||||
var param = getParameterFromFieldValues();
|
var param = serializeParameter();
|
||||||
|
|
||||||
var parameterGrid = $('#parameter-table').data('gridInstance');
|
var parameterGrid = $('#parameter-table').data('gridInstance');
|
||||||
var parameterData = parameterGrid.getData();
|
var parameterData = parameterGrid.getData();
|
||||||
@ -809,25 +809,24 @@
|
|||||||
/**
|
/**
|
||||||
* Builds a parameter object from the user-entered parameter inputs
|
* Builds a parameter object from the user-entered parameter inputs
|
||||||
*
|
*
|
||||||
|
* @param originalParameter Optional parameter to compare value against to determine if it has changed
|
||||||
* @return {{isEmptyStringSet: *, name: *, description: *, sensitive: *, value: *}}
|
* @return {{isEmptyStringSet: *, name: *, description: *, sensitive: *, value: *}}
|
||||||
*/
|
*/
|
||||||
var getParameterFromFieldValues = function () {
|
var serializeParameter = function (originalParameter) {
|
||||||
var name = $.trim($('#parameter-name').val());
|
var name = $.trim($('#parameter-name').val());
|
||||||
var value = $('#parameter-value-field').val();
|
|
||||||
var description = $('#parameter-description-field').val();
|
|
||||||
var isSensitive = $('#parameter-dialog').find('input[name="sensitive"]:checked').val() === 'sensitive' ? true : false;
|
|
||||||
var isEmptyStringSet = $('#parameter-set-empty-string-field').hasClass('checkbox-checked');
|
var isEmptyStringSet = $('#parameter-set-empty-string-field').hasClass('checkbox-checked');
|
||||||
|
|
||||||
if (_.isEmpty(value)) {
|
var serializedValue = serializeValue($('#parameter-value-field'), originalParameter, isEmptyStringSet);
|
||||||
value = isEmptyStringSet ? '' : null;
|
var description = $('#parameter-description-field').val();
|
||||||
}
|
var isSensitive = $('#parameter-dialog').find('input[name="sensitive"]:checked').val() === 'sensitive' ? true : false;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name: name,
|
name: name,
|
||||||
value: value,
|
value: serializedValue.value,
|
||||||
description: description,
|
description: description,
|
||||||
sensitive: isSensitive,
|
sensitive: isSensitive,
|
||||||
isEmptyStringSet: isEmptyStringSet
|
isEmptyStringSet: isEmptyStringSet,
|
||||||
|
hasValueChanged: serializedValue.hasChanged
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -835,9 +834,10 @@
|
|||||||
* Checks the validity of a parameter
|
* Checks the validity of a parameter
|
||||||
* @param parameter Parameter to validate
|
* @param parameter Parameter to validate
|
||||||
* @param existingParameters Existing parameters to verify there are no duplicates
|
* @param existingParameters Existing parameters to verify there are no duplicates
|
||||||
|
* @param editMode boolean indicating if validation should account for editing an existing parameter
|
||||||
* @return {boolean}
|
* @return {boolean}
|
||||||
*/
|
*/
|
||||||
var validateParameter = function (parameter, existingParameters) {
|
var validateParameter = function (parameter, existingParameters, editMode) {
|
||||||
if (parameter.name === '') {
|
if (parameter.name === '') {
|
||||||
nfDialog.showOkDialog({
|
nfDialog.showOkDialog({
|
||||||
headerText: 'Configuration Error',
|
headerText: 'Configuration Error',
|
||||||
@ -859,7 +859,8 @@
|
|||||||
// validate the parameter is not a duplicate
|
// validate the parameter is not a duplicate
|
||||||
var matchingParameter = _.find(existingParameters, { name: parameter.name });
|
var matchingParameter = _.find(existingParameters, { name: parameter.name });
|
||||||
|
|
||||||
if (_.isNil(matchingParameter)) {
|
// 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;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
var matchingParamIsHidden = _.get(matchingParameter, 'hidden', false);
|
var matchingParamIsHidden = _.get(matchingParameter, 'hidden', false);
|
||||||
@ -889,7 +890,7 @@
|
|||||||
var value = input.val();
|
var value = input.val();
|
||||||
if (!nfCommon.isBlank(value)) {
|
if (!nfCommon.isBlank(value)) {
|
||||||
// if the value is sensitive and the user has not made a change
|
// if the value is sensitive and the user has not made a change
|
||||||
if (parameter.sensitive === true && input.hasClass('sensitive') && parameter.isNew === false) {
|
if (!_.isEmpty(parameter) && parameter.sensitive === true && input.hasClass('sensitive') && parameter.isNew === false) {
|
||||||
serializedValue = parameter.previousValue;
|
serializedValue = parameter.previousValue;
|
||||||
hasChanged = false;
|
hasChanged = false;
|
||||||
} else {
|
} else {
|
||||||
@ -912,77 +913,53 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Update a parameter.
|
* Update a parameter.
|
||||||
|
*
|
||||||
|
* @param originalParameter that is being edited
|
||||||
*/
|
*/
|
||||||
var updateParameter = function () {
|
var updateParameter = function (originalParameter) {
|
||||||
var parameterName = $('#parameter-name').val();
|
var serializedParam = serializeParameter(originalParameter);
|
||||||
|
var parameterGrid = $('#parameter-table').data('gridInstance');
|
||||||
|
var parameterData = parameterGrid.getData();
|
||||||
|
|
||||||
// ensure the parameter name is specified
|
var isValid = validateParameter(serializedParam, parameterData.getItems(), true);
|
||||||
if (parameterName !== '') {
|
|
||||||
var parameterGrid = $('#parameter-table').data('gridInstance');
|
|
||||||
var parameterData = parameterGrid.getData();
|
|
||||||
|
|
||||||
// ensure the parameter name is unique
|
if (isValid) {
|
||||||
var matchingParameter = null;
|
var parameter = _.extend({}, originalParameter, {
|
||||||
$.each(parameterData.getItems(), function (_, item) {
|
id: originalParameter.id,
|
||||||
if (parameterName === item.name) {
|
hidden: false,
|
||||||
matchingParameter = item;
|
type: 'Parameter',
|
||||||
return false;
|
sensitive: originalParameter.sensitive,
|
||||||
}
|
name: originalParameter.name,
|
||||||
|
description: serializedParam.description,
|
||||||
|
referencingComponents: originalParameter.referencingComponents,
|
||||||
|
previousValue: originalParameter.value,
|
||||||
|
previousDescription: originalParameter.description,
|
||||||
|
isEditable: originalParameter.isEditable,
|
||||||
|
isEmptyStringSet: serializedParam.isEmptyStringSet,
|
||||||
|
isNew: originalParameter.isNew,
|
||||||
|
hasValueChanged: serializedParam.hasValueChanged,
|
||||||
|
isModified: serializedParam.value !== originalParameter.value || serializedParam.description !== originalParameter.description
|
||||||
});
|
});
|
||||||
|
|
||||||
if (matchingParameter !== null) {
|
// update row for the parameter
|
||||||
var isChecked = $('#parameter-set-empty-string-field').hasClass('checkbox-checked');
|
parameterData.updateItem(originalParameter.id, parameter);
|
||||||
|
|
||||||
var parameter = {
|
// sort the data
|
||||||
id: matchingParameter.id,
|
parameterData.reSort();
|
||||||
hidden: false,
|
|
||||||
type: 'Parameter',
|
|
||||||
sensitive: matchingParameter.sensitive,
|
|
||||||
name: parameterName,
|
|
||||||
description: $('#parameter-description-field').val(),
|
|
||||||
referencingComponents: matchingParameter.referencingComponents,
|
|
||||||
previousValue: matchingParameter.value,
|
|
||||||
previousDescription: matchingParameter.description,
|
|
||||||
isEditable: matchingParameter.isEditable,
|
|
||||||
isEmptyStringSet: isChecked,
|
|
||||||
isNew: matchingParameter.isNew
|
|
||||||
};
|
|
||||||
|
|
||||||
var input = $('#parameter-value-field');
|
// select the parameter row
|
||||||
var serializedValue = serializeValue(input, parameter, isChecked);
|
var row = parameterData.getRowById(originalParameter.id);
|
||||||
parameter.value = serializedValue.value;
|
parameterGrid.setActiveCell(row, parameterGrid.getColumnIndex('value'));
|
||||||
parameter.isModified = serializedValue.hasChanged || parameter.description !== parameter.previousDescription;
|
|
||||||
parameter.hasValueChanged = serializedValue.hasChanged;
|
|
||||||
|
|
||||||
// update row for the parameter
|
|
||||||
parameterData.updateItem(matchingParameter.id, parameter);
|
|
||||||
|
|
||||||
// sort the data
|
|
||||||
parameterData.reSort();
|
|
||||||
|
|
||||||
// select the parameter row
|
|
||||||
var row = parameterData.getRowById(matchingParameter.id);
|
|
||||||
parameterGrid.setActiveCell(row, parameterGrid.getColumnIndex('value'));
|
|
||||||
} else {
|
|
||||||
nfDialog.showOkDialog({
|
|
||||||
headerText: 'Parameter Does Not Exists',
|
|
||||||
dialogContent: 'A parameter with this name does not exist.'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// close the new parameter dialog
|
// close the new parameter dialog
|
||||||
$('#parameter-dialog').modal('hide');
|
$('#parameter-dialog').modal('hide');
|
||||||
|
|
||||||
// update the buttons to possibly trigger the disabled state
|
|
||||||
$('#parameter-context-dialog').modal('refreshButtons');
|
|
||||||
} else {
|
|
||||||
nfDialog.showOkDialog({
|
|
||||||
headerText: 'Create Parameter Error',
|
|
||||||
dialogContent: 'The name of the parameter must be specified.'
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update the buttons to possibly trigger the disabled state
|
||||||
|
$('#parameter-context-dialog').modal('refreshButtons');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates parameter contexts by issuing an update request and polling until it's completion.
|
* Updates parameter contexts by issuing an update request and polling until it's completion.
|
||||||
*
|
*
|
||||||
@ -1598,19 +1575,12 @@
|
|||||||
text: '#ffffff'
|
text: '#ffffff'
|
||||||
},
|
},
|
||||||
disabled: function () {
|
disabled: function () {
|
||||||
var input = $('#parameter-value-field');
|
var param = serializeParameter(parameter);
|
||||||
var isChecked = $('#parameter-set-empty-string-field').hasClass('checkbox-checked');
|
return param.value === parameter.value && param.description === parameter.description;
|
||||||
var serializedValue = serializeValue(input, parameter, isChecked);
|
|
||||||
|
|
||||||
var description = $('#parameter-description-field').val();
|
|
||||||
|
|
||||||
var hasChanged = serializedValue.hasChanged || description !== parameter.previousDescription;
|
|
||||||
|
|
||||||
return !hasChanged;
|
|
||||||
},
|
},
|
||||||
handler: {
|
handler: {
|
||||||
click: function () {
|
click: function () {
|
||||||
updateParameter();
|
updateParameter(parameter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
@ -1796,7 +1766,8 @@
|
|||||||
text: '#ffffff'
|
text: '#ffffff'
|
||||||
},
|
},
|
||||||
disabled: function () {
|
disabled: function () {
|
||||||
if ($('#parameter-name').val() !== '') {
|
var param = serializeParameter();
|
||||||
|
if (param.name !== '') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -1875,14 +1846,14 @@
|
|||||||
text: '#ffffff'
|
text: '#ffffff'
|
||||||
},
|
},
|
||||||
disabled: function () {
|
disabled: function () {
|
||||||
var parameterName = $('#parameter-name').val();
|
var param = serializeParameter();
|
||||||
var isUpdatingParameterContext = $('#parameter-context-updating-status').hasClass('show-status');
|
var isUpdatingParameterContext = $('#parameter-context-updating-status').hasClass('show-status');
|
||||||
|
|
||||||
if (isUpdatingParameterContext) {
|
if (isUpdatingParameterContext) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameterName !== '') {
|
if (param.name !== '') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -2401,7 +2372,7 @@
|
|||||||
showUpdateStatus(true);
|
showUpdateStatus(true);
|
||||||
|
|
||||||
var existingParameters = parameterContextEntity.component.parameters.map(function(p) { return p.parameter });
|
var existingParameters = parameterContextEntity.component.parameters.map(function(p) { return p.parameter });
|
||||||
var parameter = getParameterFromFieldValues();
|
var parameter = serializeParameter();
|
||||||
|
|
||||||
var isValid = validateParameter(parameter, existingParameters);
|
var isValid = validateParameter(parameter, existingParameters);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user