NIFI-3369 - Disable "Add" button on new...

...connection dialog if no relationships selected

Disabled confirmation button for both Create and Configure Connection
dialogs when no relationship was selected.

Signed-off-by: Scott Aslan <scottyaslan@gmail.com>

This closes #2152
This commit is contained in:
yuri1969 2017-09-12 19:51:10 +02:00 committed by Scott Aslan
parent 0e50279467
commit 1f1269c817
2 changed files with 33 additions and 32 deletions

View File

@ -73,6 +73,16 @@
d3.select('path.connector').remove();
};
/**
* Activates dialog's button model refresh on a connection relationships change.
*/
var addDialogRelationshipsChangeListener = function() {
// refresh button model when a relationship selection changes
$('div.available-relationship').bind('change', function() {
$('#connection-configuration').modal('refreshButtons');
});
}
/**
* Initializes the source in the new connection dialog.
*
@ -90,6 +100,8 @@
createRelationshipOption(relationship.name);
});
addDialogRelationshipsChangeListener();
// if there is a single relationship auto select
var relationships = $('#relationship-names').children('div');
if (relationships.length === 1) {
@ -104,21 +116,13 @@
hover: '#004849',
text: '#ffffff'
},
disabled: function () {
// ensure some relationships were selected
return getSelectedRelationships().length === 0;
},
handler: {
click: function () {
// get the selected relationships
var selectedRelationships = getSelectedRelationships();
// ensure some relationships were selected
if (selectedRelationships.length > 0) {
addConnection(selectedRelationships);
} else {
// inform users that no relationships were selected
nfDialog.showOkDialog({
headerText: 'Connection Configuration',
dialogContent: 'The connection must have at least one relationship selected.'
});
}
addConnection(getSelectedRelationships());
// close the dialog
$('#connection-configuration').modal('hide');
@ -1331,6 +1335,8 @@
createRelationshipOption(name);
});
addDialogRelationshipsChangeListener();
// ensure all selected relationships are present
// (may be undefined) and selected
$.each(selectedRelationships, function (i, name) {
@ -1395,30 +1401,23 @@
hover: '#004849',
text: '#ffffff'
},
disabled: function () {
// ensure some relationships were selected with a processor as the source
if (nfCanvasUtils.isProcessor(source)) {
return getSelectedRelationships().length === 0;
}
return false;
},
handler: {
click: function () {
// get the selected relationships
var selectedRelationships = getSelectedRelationships();
// see if we're working with a processor as the source
if (nfCanvasUtils.isProcessor(source)) {
if (selectedRelationships.length > 0) {
// if there are relationships selected update
updateConnection(selectedRelationships).done(function () {
// update the selected relationships
updateConnection(getSelectedRelationships()).done(function () {
deferred.resolve();
}).fail(function () {
deferred.reject();
});
} else {
// inform users that no relationships were selected and the source is a processor
nfDialog.showOkDialog({
headerText: 'Connection Configuration',
dialogContent: 'The connection must have at least one relationship selected.'
});
// reject the deferred
deferred.reject();
}
} else {
// there are no relationships, but the source wasn't a processor, so update anyway
updateConnection(undefined).done(function () {

View File

@ -61,6 +61,8 @@
} else {
checkbox.removeClass('checkbox-checked').addClass('checkbox-unchecked');
}
// emit a state change event
checkbox.trigger('change');
});
// setup click areas for custom checkboxes