diff --git a/ui/scripts/ui-custom/enableStaticNAT.js b/ui/scripts/ui-custom/enableStaticNAT.js
index 405813e7a39..47d5dd298db 100644
--- a/ui/scripts/ui-custom/enableStaticNAT.js
+++ b/ui/scripts/ui-custom/enableStaticNAT.js
@@ -89,7 +89,9 @@
}
var complete = args.complete;
+ var start = args.start;
+ start();
$dataList.fadeOut(function() {
action({
tierID: $dataList.find('.tier-select select').val(),
diff --git a/ui/scripts/ui/widgets/detailView.js b/ui/scripts/ui/widgets/detailView.js
index 838bfbddcf4..4fc2689ab4e 100644
--- a/ui/scripts/ui/widgets/detailView.js
+++ b/ui/scripts/ui/widgets/detailView.js
@@ -98,21 +98,27 @@
var $form = options.$form;
var viewArgs = $detailView.data('view-args');
+ var $loading = $('
').addClass('loading-overlay');
+
+ var setLoadingState = function() {
+ if (viewArgs && viewArgs.onPerformAction) {
+ viewArgs.onPerformAction();
+ }
+
+ $detailView.addClass('detail-view-loading-state');
+ $detailView.prepend($loading);
+ };
if (customAction && !noAdd) {
customAction({
context: context,
$detailView: $detailView,
+ start: setLoadingState,
complete: function(args) {
- if (viewArgs && viewArgs.onPerformAction) {
- viewArgs.onPerformAction();
+ if (!$detailView.hasClass('detail-view-loading-state')) {
+ setLoadingState();
}
-
- // Set loading appearance
- var $loading = $('
').addClass('loading-overlay');
-
- $detailView.prepend($loading);
-
+
args = args ? args : {};
var $item = args.$item;
@@ -134,6 +140,7 @@
if (!$detailView.parents('html').size()) return;
$loading.remove();
+ $detailView.removeClass('detail-view-loading-state');
replaceListViewItem($detailView, args.data);
if (!noRefresh) {