Skip to content

Commit c45957f

Browse files
authored
Fixes #1382: Added Search Before and After stable paging (#1385)
* WIP: 1382 Search After Paging Tests * Implemented search before and after stable paging * Fixed search after tests * Default to old paging in ui
1 parent ef3b7f8 commit c45957f

File tree

15 files changed

+368
-167
lines changed

15 files changed

+368
-167
lines changed

src/Exceptionless.Web/ClientApp/app/event/event-controller.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,7 @@
739739
);
740740
},
741741
options: {
742+
page: 1,
742743
limit: 10,
743744
mode: "summary",
744745
},

src/Exceptionless.Web/ClientApp/app/event/reference-controller.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
});
1717
},
1818
options: {
19+
page: 1,
1920
limit: 20,
2021
mode: "summary",
2122
},

src/Exceptionless.Web/ClientApp/app/events-controller.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@
214214
header: "Events",
215215
get: eventService.getAll,
216216
options: {
217+
page: 1,
217218
limit: 15,
218219
mode: "summary",
219220
},

src/Exceptionless.Web/ClientApp/app/stack/stack-controller.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -947,6 +947,7 @@
947947
showType: false,
948948
},
949949
options: {
950+
page: 1,
950951
limit: 10,
951952
mode: "summary",
952953
},

src/Exceptionless.Web/ClientApp/components/events/events-directive.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,13 @@
111111
vm.previous = links.previous;
112112
vm.next = links.next;
113113

114-
vm.pageSummary = paginationService.getCurrentPageSummary(
115-
response.data,
116-
vm.currentOptions.page,
117-
vm.currentOptions.limit
118-
);
114+
if (vm.currentOptions.page) {
115+
vm.pageSummary = paginationService.getCurrentPageSummary(
116+
response.data,
117+
vm.currentOptions.page,
118+
vm.currentOptions.limit
119+
);
120+
}
119121

120122
if (vm.events.length === 0 && vm.currentOptions.page && vm.currentOptions.page > 1) {
121123
return get();
@@ -227,6 +229,7 @@
227229
vm.beforeRelativeText = beforeRelativeText;
228230
vm.canRefresh = canRefresh;
229231
vm.currentEventId = vm.settings.eventId;
232+
vm.currentOptions = null;
230233
vm.events = [];
231234
vm.get = get;
232235
vm.hasFilter = filterService.hasFilter;

src/Exceptionless.Web/ClientApp/components/events/events-directive.tpl.html

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,7 @@
128128
</ul>
129129
</div>
130130
</div>
131-
<div
132-
class="col-sm-4 text-center"
133-
ng-class="vm.previous || vm.next ? 'col-xs-8': 'col-xs-12'"
134-
ng-if="vm.pageSummary"
135-
>
131+
<div class="col-sm-4 text-center" ng-class="vm.previous || vm.next ? 'col-xs-8': 'col-xs-12'">
136132
<small class="text-muted inline m-t-xs">{{vm.pageSummary}}</small>
137133
</div>
138134
<div class="col-sm-4 col-xs-4 text-right" ng-if="vm.previous || vm.next">

src/Exceptionless.Web/Controllers/Base/ExceptionlessApiController.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -219,23 +219,21 @@ protected OkWithHeadersContentResult<T> OkWithLinks<T>(T content, string[] links
219219
return new OkWithHeadersContentResult<T>(content, headers);
220220
}
221221

222-
protected OkWithResourceLinks<TEntity> OkWithResourceLinks<TEntity>(IEnumerable<TEntity> content, bool hasMore, Func<TEntity, string> pagePropertyAccessor = null, IHeaderDictionary headers = null, bool isDescending = false) where TEntity : class
222+
protected OkWithResourceLinks<TEntity> OkWithResourceLinks<TEntity>(IEnumerable<TEntity> content, bool hasMore, int? page = null, long? total = null, string before = null, string after = null) where TEntity : class
223223
{
224-
return new OkWithResourceLinks<TEntity>(content, hasMore, null, pagePropertyAccessor, headers, isDescending);
225-
}
226-
227-
protected OkWithResourceLinks<TEntity> OkWithResourceLinks<TEntity>(IEnumerable<TEntity> content, bool hasMore, int page, long? total = null, IHeaderDictionary headers = null) where TEntity : class
228-
{
229-
return new OkWithResourceLinks<TEntity>(content, hasMore, page, total, headers: headers);
224+
return new OkWithResourceLinks<TEntity>(content, hasMore, page, total, before, after);
230225
}
231226

232227
protected string GetResourceLink(string url, string type)
233228
{
234229
return url != null ? $"<{url}>; rel=\"{type}\"" : null;
235230
}
236231

237-
protected bool NextPageExceedsSkipLimit(int page, int limit)
232+
protected bool NextPageExceedsSkipLimit(int? page, int limit)
238233
{
234+
if (page is null)
235+
return false;
236+
239237
return (page + 1) * limit >= MAXIMUM_SKIP;
240238
}
241239
}

0 commit comments

Comments
 (0)