Skip to content

Commit 81466af

Browse files
committed
bug fix
- prevent other click until when complete to load transaction detail page.
1 parent 8b2b8f8 commit 81466af

File tree

4 files changed

+30
-11
lines changed

4 files changed

+30
-11
lines changed

‎web/src/main/webapp/features/transactionTable/transaction-table.directive.js‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
// define private variables of methods
1818
var clear, appendTransactionList, resetIndexToTransactionList;
19+
var bIsDetailPageLoading = false;
1920

2021
// initialize scope variables
2122
scope.transactionList = [];
@@ -63,6 +64,9 @@
6364
* @param transaction
6465
*/
6566
scope.traceByApplication = function (transaction) {
67+
if ( bIsDetailPageLoading === true ) {
68+
return;
69+
}
6670
AnalyticsService.send(AnalyticsService.CONST.CALLSTACK, AnalyticsService.CONST.CLK_TRANSACTION);
6771
scope.currentTransaction = transaction;
6872
scope.$emit('transactionTableDirective.applicationSelected', transaction);
@@ -109,6 +113,9 @@
109113
scope.$on('transactionTableDirective.appendTransactionList', function (event, transactionList) {
110114
appendTransactionList(transactionList);
111115
});
116+
scope.$on('transactionTableDirective.completedDetailPageLoad', function () {
117+
bIsDetailPageLoading = false;
118+
});
112119

113120
/**
114121
* scope event on transactionTableDirective.clear

‎web/src/main/webapp/pages/transactionDetail/transaction-detail.controller.js‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,11 @@
198198
});
199199

200200
tooltipService.init( "callTree" );
201+
202+
// invoke top frame angular method
203+
try {
204+
top.angular.element( top.document.getElementById("main-container") ).scope().completedDetailPageLoad();
205+
} catch(e) {}
201206
}
202207
]);
203208
})();

‎web/src/main/webapp/pages/transactionList/transaction-list.controller.js‎

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(function() {
1+
(function( $ ) {
22
'use strict';
33
/**
44
* (en)TransactionListCtrl
@@ -18,7 +18,7 @@
1818
analyticsService.send(analyticsService.CONST.TRANSACTION_LIST_PAGE);
1919
// define private variables
2020
var nFetchCount, nLastFetchedIndex, htTransactionInfo, htTransactionData, oTimeSliderVoService;
21-
var aParamTransactionInfo;
21+
var aParamTransactionInfo, beforeTransactionDetailUrl = "";
2222

2323
// define private variables of methods
2424
var fetchStart, fetchNext, fetchAll, emitTransactionListToTable, getQuery, getTransactionList, changeTransactionDetail,
@@ -300,14 +300,19 @@
300300
* @param transaction
301301
*/
302302
changeTransactionDetail = function (transaction) {
303-
$location.path( "/transactionList/" + $routeParams.application + "/" + $routeParams.readablePeriod + "/" + $routeParams.queryEndDateTime + "/" + transaction.traceId + "-" + transaction.collectorAcceptTime + "-" + transaction.elapsed , false );
304-
var transactionDetailUrl = 'index.html#/transactionDetail'; // the filename should be existing, if not it's doesn't work on ie and firefox
305-
if (transaction.traceId && transaction.collectorAcceptTime) {
306-
transactionDetailUrl += '/' + $window.encodeURIComponent(transaction.traceId) + '/' + transaction.collectorAcceptTime;
307-
$timeout(function() {
303+
var transactionDetailUrl = 'index.html#/transactionDetail';
304+
if (transaction.traceId && transaction.collectorAcceptTime) {
305+
transactionDetailUrl += '/' + $window.encodeURIComponent(transaction.traceId) + '/' + transaction.collectorAcceptTime;
306+
}
307+
if ( beforeTransactionDetailUrl == transactionDetailUrl ) {
308+
$scope.$emit( "transactionTableDirective.completedDetailPageLoad" );
309+
} else {
310+
beforeTransactionDetailUrl = transactionDetailUrl;
311+
$location.path( "/transactionList/" + $routeParams.application + "/" + $routeParams.readablePeriod + "/" + $routeParams.queryEndDateTime + "/" + transaction.traceId + "-" + transaction.collectorAcceptTime + "-" + transaction.elapsed , false );
312+
$timeout(function () {
308313
$scope.transactionDetailUrl = transactionDetailUrl;
309314
});
310-
}
315+
}
311316
};
312317

313318
/**
@@ -326,8 +331,10 @@
326331
$timeout(function () {
327332
fetchNext();
328333
}, 1000);
329-
330334
});
335+
$scope.completedDetailPageLoad = function() {
336+
$scope.$emit( "transactionTableDirective.completedDetailPageLoad" );
337+
};
331338
}
332339
]);
333-
})();
340+
})( jQuery );

‎web/src/main/webapp/pages/transactionList/transactionList.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
<!-- Add your site or application content here -->
55
<div id="main-container" class="main-container">
66
<transaction-table-directive ng-style="table" class="ui-layout-north" loading-directive="sidebarLoading" loading-message="Loading..."></transaction-table-directive>
7-
<iframe class="ui-layout-center" ng-src="{{transactionDetailUrl}}" style="border:none;padding:0;margin:0;width:100%;height:100%;"></iframe>
7+
<iframe class="ui-layout-center" ng-src="{{transactionDetailUrl}}" style="border:none;padding:0;margin:0;width:100%;height:100%;" id="transactionDetailIframe"></iframe>
88
</div>

0 commit comments

Comments
 (0)