Skip to content

Commit 314c1f9

Browse files
committed
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.
1 parent 3a94a41 commit 314c1f9

2 files changed

Lines changed: 20 additions & 11 deletions

File tree

ui/scripts/ui-custom/zoneChart.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -439,9 +439,14 @@
439439
return false;
440440
});
441441

442-
$(window).bind('cloudStack.fullRefresh', function(event) {
443-
refreshChart();
444-
});
442+
var fullRefreshEvent = function(event) {
443+
if ($charts.is(':visible')) {
444+
refreshChart();
445+
} else {
446+
$(window).unbind('cloudStack.fullRefresh', fullRefreshEvent);
447+
}
448+
};
449+
$(window).bind('cloudStack.fullRefresh', fullRefreshEvent);
445450
};
446451

447452
loadNetworkData();

ui/scripts/ui/multiEdit.js

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@
159159
$loading.remove();
160160
$dataItem.remove();
161161
} else {
162-
$(window).trigger('cloudStack.fullRefresh');
162+
$multi.trigger('refresh');
163163
}
164164

165165
complete();
@@ -168,7 +168,7 @@
168168
error(args);
169169
$loading.remove();
170170
$dataItem.show();
171-
171+
172172
return cloudStack.dialog.error;
173173
}
174174
});
@@ -513,7 +513,7 @@
513513
complete: function(completeArgs) {
514514
complete(args);
515515
$loading.remove();
516-
$(window).trigger('cloudStack.fullRefresh');
516+
getData();
517517
},
518518

519519
error: function(args) {
@@ -555,10 +555,10 @@
555555
'input[type=radio]:checked, input[type=checkbox]:checked'
556556
).size()) {
557557
cloudStack.dialog.notice({ message: 'Please select an instance '});
558-
558+
559559
return false;
560560
}
561-
561+
562562
$dataList.fadeOut(function() {
563563
addItem($.map(
564564
$dataList.find('tr.multi-edit-selected'),
@@ -631,11 +631,15 @@
631631
// Get existing data
632632
getData();
633633

634-
$(window).bind('cloudStack.fullRefresh', function(event) {
634+
var fullRefreshEvent = function(event) {
635635
if ($multi.is(':visible')) {
636-
getData();
636+
getData();
637+
} else {
638+
$(window).unbind('cloudStack.fullRefresh', fullRefreshEvent);
637639
}
638-
});
640+
};
641+
$(window).bind('cloudStack.fullRefresh', fullRefreshEvent);
642+
$multi.bind('refresh', fullRefreshEvent);
639643

640644
$multi.bind('change select', function() {
641645
_medit.refreshItemWidths($multi);

0 commit comments

Comments
 (0)