mirror of
https://github.com/apache/nifi.git
synced 2025-02-09 11:35:05 +00:00
NIFI-6968 Create Connection Model Allows Multiple Adds
This closes #4013. Signed-off-by: Andy LoPresto <alopresto@apache.org>
This commit is contained in:
parent
7503e5f43f
commit
425ba63e66
@ -65,6 +65,8 @@
|
||||
var CONNECTION_OFFSET_Y_INCREMENT = 75;
|
||||
var CONNECTION_OFFSET_X_INCREMENT = 200;
|
||||
|
||||
var connectionUpsertionInProgress = false;
|
||||
|
||||
var config = {
|
||||
urls: {
|
||||
api: '../nifi-api',
|
||||
@ -123,8 +125,8 @@
|
||||
text: '#ffffff'
|
||||
},
|
||||
disabled: function () {
|
||||
// ensure some relationships were selected
|
||||
return getSelectedRelationships().length === 0;
|
||||
// ensure some relationships were selected, also check create or updation in progress
|
||||
return getSelectedRelationships().length === 0 || isConnectionUpsertionInProgess();
|
||||
},
|
||||
handler: {
|
||||
click: function () {
|
||||
@ -139,6 +141,10 @@
|
||||
hover: '#C7D2D7',
|
||||
text: '#004849'
|
||||
},
|
||||
disabled: function() {
|
||||
// when add button is clicked, should disable until the addition action is completed
|
||||
return isConnectionUpsertionInProgess();
|
||||
},
|
||||
handler: {
|
||||
click: function () {
|
||||
$('#connection-configuration').modal('hide');
|
||||
@ -188,6 +194,10 @@
|
||||
hover: '#004849',
|
||||
text: '#ffffff'
|
||||
},
|
||||
disabled : function(){
|
||||
// when network is slow, should disable the button
|
||||
return isConnectionUpsertionInProgess();
|
||||
},
|
||||
handler: {
|
||||
click: function () {
|
||||
// add the connection
|
||||
@ -202,6 +212,9 @@
|
||||
hover: '#C7D2D7',
|
||||
text: '#004849'
|
||||
},
|
||||
disabled : function(){
|
||||
return isConnectionUpsertionInProgess();
|
||||
},
|
||||
handler: {
|
||||
click: function () {
|
||||
$('#connection-configuration').modal('hide');
|
||||
@ -782,12 +795,37 @@
|
||||
'</div>').append(relationshipLabel).append(relationshipValue).appendTo('#relationship-names');
|
||||
};
|
||||
|
||||
/**
|
||||
* To set or reset the connection addition/update in progress
|
||||
* @param {boolean} status the status of connection addition/update
|
||||
*/
|
||||
var setConnectionUpsertionInProgess = function(status)
|
||||
{
|
||||
var needToUpdateDOM = (connectionUpsertionInProgress !== status) ;
|
||||
connectionUpsertionInProgress = status;
|
||||
if(needToUpdateDOM){
|
||||
$('#connection-configuration').modal('refreshButtons');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns whether the connection addition/update in progress
|
||||
*/
|
||||
var isConnectionUpsertionInProgess = function()
|
||||
{
|
||||
return connectionUpsertionInProgress;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new connection.
|
||||
*
|
||||
* @argument {array} selectedRelationships The selected relationships
|
||||
*/
|
||||
var addConnection = function (selectedRelationships) {
|
||||
// to handle the case of slow network
|
||||
//the add/cancel buttons should be disabled
|
||||
setConnectionUpsertionInProgess(true);
|
||||
|
||||
// get the connection details
|
||||
var sourceId = $('#connection-source-id').val();
|
||||
var destinationId = $('#connection-destination-id').val();
|
||||
@ -984,6 +1022,8 @@
|
||||
'selectAll': true
|
||||
});
|
||||
|
||||
setConnectionUpsertionInProgess(false);
|
||||
|
||||
// close the dialog
|
||||
$('#connection-configuration').modal('hide');
|
||||
|
||||
@ -995,7 +1035,12 @@
|
||||
|
||||
// update the birdseye
|
||||
nfBirdseye.refresh();
|
||||
}).fail(nfErrorHandler.handleConfigurationUpdateAjaxError);
|
||||
}).fail(function(xhr, status, error){
|
||||
|
||||
// update the button status
|
||||
setConnectionUpsertionInProgess(false);
|
||||
nfErrorHandler.handleConfigurationUpdateAjaxError(xhr, status, error);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@ -1005,6 +1050,9 @@
|
||||
* @argument {array} selectedRelationships The selected relationships
|
||||
*/
|
||||
var updateConnection = function (selectedRelationships) {
|
||||
//apply, cancel buttons should be disabled, while the connection update is in progress
|
||||
setConnectionUpsertionInProgess(true);
|
||||
|
||||
// get the connection details
|
||||
var connectionId = $('#connection-id').text();
|
||||
var connectionUri = $('#connection-uri').val();
|
||||
@ -1064,6 +1112,9 @@
|
||||
dataType: 'json',
|
||||
contentType: 'application/json'
|
||||
}).done(function (response) {
|
||||
//update updation progress status
|
||||
setConnectionUpsertionInProgess(false);
|
||||
|
||||
// close the dialog
|
||||
$('#connection-configuration').modal('hide');
|
||||
|
||||
@ -1072,7 +1123,10 @@
|
||||
|
||||
// reload the connections source/destination components
|
||||
nfCanvasUtils.reloadConnectionSourceAndDestination(sourceComponentId, destinationComponentId);
|
||||
}).fail(nfErrorHandler.handleConfigurationUpdateAjaxError);
|
||||
}).fail(function(xhr, status, error){
|
||||
setConnectionUpsertionInProgess(false);
|
||||
nfErrorHandler.handleConfigurationUpdateAjaxError(xhr, status, error);
|
||||
});
|
||||
} else {
|
||||
return $.Deferred(function (deferred) {
|
||||
deferred.reject();
|
||||
@ -1492,12 +1546,13 @@
|
||||
disabled: function () {
|
||||
// ensure some relationships were selected with a processor as the source
|
||||
if (nfCanvasUtils.isProcessor(source)) {
|
||||
return getSelectedRelationships().length === 0;
|
||||
return getSelectedRelationships().length === 0 || isConnectionUpsertionInProgess();
|
||||
}
|
||||
return false;
|
||||
return isConnectionUpsertionInProgess();
|
||||
},
|
||||
handler: {
|
||||
click: function () {
|
||||
setConnectionUpsertionInProgess(true);
|
||||
// see if we're working with a processor as the source
|
||||
if (nfCanvasUtils.isProcessor(source)) {
|
||||
// update the selected relationships
|
||||
@ -1505,6 +1560,8 @@
|
||||
deferred.resolve();
|
||||
}).fail(function () {
|
||||
deferred.reject();
|
||||
}).always(function(){
|
||||
setConnectionUpsertionInProgess(false);
|
||||
});
|
||||
} else {
|
||||
// there are no relationships, but the source wasn't a processor, so update anyway
|
||||
@ -1512,6 +1569,8 @@
|
||||
deferred.resolve();
|
||||
}).fail(function () {
|
||||
deferred.reject();
|
||||
}).always(function(){
|
||||
setConnectionUpsertionInProgess(false);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -1524,6 +1583,9 @@
|
||||
hover: '#C7D2D7',
|
||||
text: '#004849'
|
||||
},
|
||||
disabled: function(){
|
||||
return isConnectionUpsertionInProgess();
|
||||
},
|
||||
handler: {
|
||||
click: function () {
|
||||
// hide the dialog
|
||||
|
Loading…
x
Reference in New Issue
Block a user