Skip to content

Commit b75f7c7

Browse files
author
Pete
committed
Merge pull request #247 from Particular/error-message-sorting-
Added sort options and corrected bug with direction
2 parents af27dcb + a6275c0 commit b75f7c7

File tree

4 files changed

+40
-20
lines changed

4 files changed

+40
-20
lines changed

src/ServicePulse.Host/app/css/style.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ a.brand span {
578578
z-index: 1000;
579579
display: none;
580580
float: left;
581-
min-width: 160px;
581+
min-width: 240px;
582582
max-width: 300px;
583583
padding: 0px 0;
584584
margin: 2px 0 0;

src/ServicePulse.Host/app/js/failed_messages/failedMessages.controller.js

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
// need a map in some ui state for controlling animations
4444
var exgroups = response.data.map(function(obj) {
4545
var nObj = obj;
46-
nObj.workflow_state = createWorkflowState('ready', '');
46+
nObj.workflow_state = createWorkflowState('ready', '');
4747
return nObj;
4848
});
4949

@@ -58,6 +58,10 @@
5858
});
5959
};
6060

61+
var setSortButtonText = function (sort, direction) {
62+
$scope.model.sortButtonText = (sort === 'message_type' ? "Message Type" : "Time Sent") + " " + (direction === 'asc' ? "ASC" : "DESC");
63+
}
64+
6165
$scope.init = function() {
6266
page = 1;
6367

@@ -67,6 +71,10 @@
6771
$scope.allMessagesLoaded = false;
6872
$scope.model.newMessages = 0;
6973
$scope.model.activePageTab = "messages";
74+
$scope.model.sort = "time_sent";
75+
$scope.model.direction = "desc";
76+
77+
setSortButtonText($scope.model.sort, $scope.model.direction);
7078

7179
if ($scope.loadingData) {
7280
return;
@@ -112,7 +120,11 @@
112120
return false;
113121
};
114122

115-
var selectGroupInternal = function(group, sort, changeToMessagesTab) {
123+
var selectGroupInternal = function (group, sort, direction, changeToMessagesTab) {
124+
$scope.model.sort = sort;
125+
$scope.model.direction = direction;
126+
setSortButtonText(sort, direction);
127+
116128
if ($scope.loadingData) {
117129
return;
118130
}
@@ -126,15 +138,14 @@
126138
$scope.allMessagesLoaded = false;
127139
page = 1;
128140

129-
$scope.loadMoreResults(group, sort);
141+
$scope.loadMoreResults(group, sort, direction);
130142
};
131143

132-
$scope.selectGroup = function(group, sort) {
133-
134-
selectGroupInternal(group, sort, true);
144+
$scope.selectGroup = function(group, sort, direction) {
145+
selectGroupInternal(group, sort, direction, true);
135146
};
136147

137-
$scope.loadMoreResults = function(group, sort) {
148+
$scope.loadMoreResults = function(group) {
138149
$scope.allMessagesLoaded = $scope.model.failedMessages.length >= group.count;
139150

140151
if ($scope.allMessagesLoaded || $scope.loadingData) {
@@ -145,11 +156,18 @@
145156

146157
var allExceptionsGroupSelected = (!group || !group.id);
147158
if (allExceptionsGroupSelected) {
148-
serviceControlService.getFailedMessages($routeParams.sort, page).then(function(response) {
159+
serviceControlService.getFailedMessages(
160+
$scope.model.sort,
161+
page,
162+
$scope.model.direction).then(function (response) {
149163
processLoadedMessages(response.data);
150164
});
151165
} else {
152-
serviceControlService.getFailedMessagesForExceptionGroup(group.id, sort || $routeParams.sort, page).then(function(response) {
166+
serviceControlService.getFailedMessagesForExceptionGroup(
167+
group.id,
168+
$scope.model.sort,
169+
page,
170+
$scope.model.direction).then(function (response) {
153171
processLoadedMessages(response.data);
154172
});
155173
}
@@ -229,16 +247,16 @@
229247

230248
$scope.testSuccess = function(group) {
231249

232-
// <!--<button type="button" class="btn btn-default btn-sm" tooltip="Test" ng-click="testSuccess(excGroup)"><i class="fa fa-smile-o"></i></button>-->
250+
// <!--<button type="button" class="btn btn-default btn-sm" tooltip="Test" ng-click="testSuccess(excGroup)"><i class="fa fa-smile-o"></i></button>-->
233251

234252
group.workflow_state = { status: 'working', message: 'working' };
235253
var response = failedMessagesService.wait()
236254
.then(function(message) {
237-
group.workflow_state = createWorkflowState('success', message);
255+
group.workflow_state = createWorkflowState('success', message);
238256
}, function(message) {
239-
group.workflow_state = createWorkflowState('error', message);
257+
group.workflow_state = createWorkflowState('error', message);
240258
}, function(e) {
241-
group.workflow_state = createWorkflowState('working', 'working', 10, e);
259+
group.workflow_state = createWorkflowState('working', 'working', 10, e);
242260
})
243261
.finally(function() {
244262

@@ -357,7 +375,7 @@
357375
notifications.pushForCurrentRoute('Messages from group \'' + event.group_name + '\' were successfully archived.', 'info');
358376
}));
359377

360-
$scope.$on('$destroy', function () {
378+
$scope.$on('$destroy', function() {
361379
for (var i = 0; i < subscriptionDisposalMethods.length; i++) {
362380
subscriptionDisposalMethods[i]();
363381
}

src/ServicePulse.Host/app/js/failed_messages/failedMessages.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,14 @@ <h2 class="failedMessages-header">
132132
<button tooltip="All selected failed messages will be archived and will not be available for Retry" class="btn btn-default" ng-click="archiveSelected()" ng-disabled="model.selectedIds.length == 0" confirm-click="Are you sure you want to archive all selected failed messages? If you do they will not be available for Retry."><i class="fa fa-archive"></i> Archive {{model.selectedIds.length}} selected</button>
133133
<div class="btn-group pull-right">
134134
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
135-
Sort by
135+
Sorted by {{model.sortButtonText}}
136136
<span class="caret"></span>
137137
</button>
138138
<ul class="dropdown-menu">
139-
<li><a href="javascript://" ng-click="selectGroup(selectedExceptionGroup, 'message_type')">Message Type</a></li>
140-
<li><a href="javascript://" ng-click="selectGroup(selectedExceptionGroup, 'time_sent')">Time Sent</a></li>
139+
<li><a href="javascript://" ng-click="selectGroup(selectedExceptionGroup, 'message_type', 'asc')"><span class="glyphicon glyphicon-sort-by-alphabet" aria-hidden="true"></span> Message Type (ascending)</a></li>
140+
<li><a href="javascript://" ng-click="selectGroup(selectedExceptionGroup, 'message_type', 'desc')"><span class="glyphicon glyphicon-sort-by-alphabet-alt" aria-hidden="true"></span> Message Type (descending)</a></li>
141+
<li><a href="javascript://" ng-click="selectGroup(selectedExceptionGroup, 'time_sent', 'asc')"><span class="glyphicon glyphicon-sort-by-alphabet" aria-hidden="true"></span> Time Sent (ascending)</a></li>
142+
<li><a href="javascript://" ng-click="selectGroup(selectedExceptionGroup, 'time_sent', 'desc')"><span class="glyphicon glyphicon-sort-by-alphabet-alt" aria-hidden="true"></span> Time Sent (descending)</a></li>
141143
</ul>
142144
</div>
143145
</div>

src/ServicePulse.Host/app/js/services/services.service-control.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
});
3030
};
3131

32-
function getFailedMessages(sortBy, page) {
33-
var url = uri.join(scConfig.service_control_url, 'errors?status=unresolved&page=' + page + '&sort=' + sortBy);
32+
function getFailedMessages(sortBy, page, direction) {
33+
var url = uri.join(scConfig.service_control_url, 'errors?status=unresolved&page=' + page + '&sort=' + sortBy + '&direction=' + direction);
3434
return $http.get(url).then(function(response) {
3535
return {
3636
data: response.data,

0 commit comments

Comments
 (0)