There was an error fetching the commit references. Please try again later.
Merge branch 'pagination'
This merge introduces pagination for lists of sessions (user specific: owned and visited), interposed questions and free text answers and skill questions. While the first three are paginated through the database, skill questions are paginated in memory so caching is still possible. Frontend usage To enable pagination, new HTTP headers based on RFC 7233 have been introduced: Request: Range: items=<start>-<end>, e.g. Range: items=0-9 Response: Content-Range: items <start>-<end>/<total>, e.g. Content-Range: items 0-9/42 Since it is not possible to determine the total count of items via CouchDB w/o performance losses, it is currently only set accurately for skill questions. In other cases total is set to -1. Backend usage Pagination support can be added to controllers by extending the newly introduced PaginationController. Additionally, applicable methods have to be marked with the @Pagination annotation so the Range header is parsed and the Content-Range header is set for responses. Pagination parameters are accessible in the controller through the offset and limit fields. If pagination on the DBAL is not possible, lists can be wrapped with PaginationListDecorator<T> to enable in memory pagination. See merge request !3
Showing
- src/main/java/de/thm/arsnova/PaginationListDecorator.java 214 additions, 0 deletionssrc/main/java/de/thm/arsnova/PaginationListDecorator.java
- src/main/java/de/thm/arsnova/aop/RangeAspect.java 105 additions, 0 deletionssrc/main/java/de/thm/arsnova/aop/RangeAspect.java
- src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java 4 additions, 2 deletions...de/thm/arsnova/controller/AudienceQuestionController.java
- src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java 11 additions, 6 deletions...de/thm/arsnova/controller/LecturerQuestionController.java
- src/main/java/de/thm/arsnova/controller/PaginationController.java 31 additions, 0 deletions.../java/de/thm/arsnova/controller/PaginationController.java
- src/main/java/de/thm/arsnova/controller/SessionController.java 8 additions, 5 deletions...ain/java/de/thm/arsnova/controller/SessionController.java
- src/main/java/de/thm/arsnova/dao/CouchDBDao.java 63 additions, 17 deletionssrc/main/java/de/thm/arsnova/dao/CouchDBDao.java
- src/main/java/de/thm/arsnova/dao/IDatabaseDao.java 7 additions, 7 deletionssrc/main/java/de/thm/arsnova/dao/IDatabaseDao.java
- src/main/java/de/thm/arsnova/services/IQuestionService.java 5 additions, 5 deletionssrc/main/java/de/thm/arsnova/services/IQuestionService.java
- src/main/java/de/thm/arsnova/services/ISessionService.java 4 additions, 4 deletionssrc/main/java/de/thm/arsnova/services/ISessionService.java
- src/main/java/de/thm/arsnova/services/QuestionService.java 12 additions, 13 deletionssrc/main/java/de/thm/arsnova/services/QuestionService.java
- src/main/java/de/thm/arsnova/services/ResponseProviderService.java 29 additions, 0 deletions...java/de/thm/arsnova/services/ResponseProviderService.java
- src/main/java/de/thm/arsnova/services/ResponseProviderServiceImpl.java 42 additions, 0 deletions.../de/thm/arsnova/services/ResponseProviderServiceImpl.java
- src/main/java/de/thm/arsnova/services/SessionService.java 8 additions, 8 deletionssrc/main/java/de/thm/arsnova/services/SessionService.java
- src/main/java/de/thm/arsnova/web/Pagination.java 35 additions, 0 deletionssrc/main/java/de/thm/arsnova/web/Pagination.java
- src/main/java/de/thm/arsnova/web/ResponseInterceptorHandler.java 50 additions, 0 deletions...n/java/de/thm/arsnova/web/ResponseInterceptorHandler.java
- src/main/webapp/WEB-INF/spring/arsnova-servlet.xml 6 additions, 1 deletionsrc/main/webapp/WEB-INF/spring/arsnova-servlet.xml
- src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java 7 additions, 7 deletionssrc/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
Please register or sign in to comment