Clean up handling for UI refresh events

-Always unbind event if object isn't visible

-Use widget-specific refresh event for multi-edit actions, to prevent
 other widgets from being refreshed unecessarily.
This commit is contained in:
Brian Federle 2011-12-09 09:12:25 -08:00
parent 3a94a41baf
commit 314c1f90c4
2 changed files with 20 additions and 11 deletions

View File

@ -439,9 +439,14 @@
return false;
});
$(window).bind('cloudStack.fullRefresh', function(event) {
refreshChart();
});
var fullRefreshEvent = function(event) {
if ($charts.is(':visible')) {
refreshChart();
} else {
$(window).unbind('cloudStack.fullRefresh', fullRefreshEvent);
}
};
$(window).bind('cloudStack.fullRefresh', fullRefreshEvent);
};
loadNetworkData();

View File

@ -159,7 +159,7 @@
$loading.remove();
$dataItem.remove();
} else {
$(window).trigger('cloudStack.fullRefresh');
$multi.trigger('refresh');
}
complete();
@ -168,7 +168,7 @@
error(args);
$loading.remove();
$dataItem.show();
return cloudStack.dialog.error;
}
});
@ -513,7 +513,7 @@
complete: function(completeArgs) {
complete(args);
$loading.remove();
$(window).trigger('cloudStack.fullRefresh');
getData();
},
error: function(args) {
@ -555,10 +555,10 @@
'input[type=radio]:checked, input[type=checkbox]:checked'
).size()) {
cloudStack.dialog.notice({ message: 'Please select an instance '});
return false;
}
$dataList.fadeOut(function() {
addItem($.map(
$dataList.find('tr.multi-edit-selected'),
@ -631,11 +631,15 @@
// Get existing data
getData();
$(window).bind('cloudStack.fullRefresh', function(event) {
var fullRefreshEvent = function(event) {
if ($multi.is(':visible')) {
getData();
getData();
} else {
$(window).unbind('cloudStack.fullRefresh', fullRefreshEvent);
}
});
};
$(window).bind('cloudStack.fullRefresh', fullRefreshEvent);
$multi.bind('refresh', fullRefreshEvent);
$multi.bind('change select', function() {
_medit.refreshItemWidths($multi);