From 2c609e97b4d4d9a1debb35066b217b2e39e32f80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincent=20Membr=C3=A9?= Date: Mon, 14 Oct 2019 16:35:49 +0200 Subject: [PATCH] Fixes #15948: Event log page must only load one day back of logs by default --- .../rudder/rest/internal/EventLogAPI.scala | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/webapp/sources/rudder/rudder-rest/src/main/scala/com/normation/rudder/rest/internal/EventLogAPI.scala b/webapp/sources/rudder/rudder-rest/src/main/scala/com/normation/rudder/rest/internal/EventLogAPI.scala index e7d044a860f..74e22ba6b01 100644 --- a/webapp/sources/rudder/rudder-rest/src/main/scala/com/normation/rudder/rest/internal/EventLogAPI.scala +++ b/webapp/sources/rudder/rudder-rest/src/main/scala/com/normation/rudder/rest/internal/EventLogAPI.scala @@ -83,28 +83,26 @@ class EventLogAPI ( ) } - def getEventLogBySlice(start: Int, nbelement: Int, criteria : Option[String], optLimit:Option[Int] = None, orderBy:Option[String]): Box[(Int,Seq[EventLog])] = { - repos.getEventLogByCriteria(criteria, optLimit, orderBy).toBox match { - case Full(events) => Full((events.size, events.slice(start,start+nbelement))) - case eb: EmptyBox => eb ?~! s"Error when trying fetch eventlogs from database for page ${(start/nbelement)+1}" + def getEventLogBySlice(start: Int, criteria : Option[String], optLimit:Option[Int], orderBy:Option[String]): Box[Seq[EventLog]] = { + repos.getEventLogByCriteria(Some( s"1 = 1 order by id desc offset ${start}" ), optLimit, None).toBox match { + case Full(events) => Full( events) + case eb: EmptyBox => eb ?~! s"Error when trying fetch eventlogs from database for page ${(start/optLimit.getOrElse(1))+1}" } } def requestDispatch: PartialFunction[Req, () => Box[LiftResponse]] = { case Get(Nil, req) => - - (for { optDraw <- restExtractor.extractInt("draw")(req)(i => Full(i.toInt)) draw <- Box(optDraw) ?~! "Missing 'draw' field from datatable's request" optStart <- restExtractor.extractInt("start")(req)(i => Full(i.toInt)) start <- Box(optStart) ?~! "Missing 'start' field from datatable's request" optLength <- restExtractor.extractInt("length")(req)(i => Full(i.toInt)) - length <- Box(optLength) ?~! "Missing 'start' field from datatable's request" - (totalFiltered, events) <- getEventLogBySlice(start, length, None, None, Some("id DESC")) + length <- Box(optLength) ?~! "Missing 'length' field from datatable's request" + events <- getEventLogBySlice(start, None, Some(length), Some("id DESC")) totalRecord <- repos.getEventLogCount.toBox } yield { - responseFormater(draw, totalRecord, totalFiltered.toLong, events) + responseFormater(draw, totalRecord, totalRecord, events) }) match { case Full(resp) => JsonResponse(resp)