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) {