Merge branch 'modzeleg' into developer
This commit is contained in:
		| @@ -8,6 +8,9 @@ import org.springframework.http.HttpStatus; | |||||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
|  |  | ||||||
|  | import java.time.LocalDateTime; | ||||||
|  | import java.util.UUID; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * It's the REST api for {@link com.release11.klaus.model.Event} |  * It's the REST api for {@link com.release11.klaus.model.Event} | ||||||
|  * @author Gabriel Modzelewski |  * @author Gabriel Modzelewski | ||||||
| @@ -27,8 +30,24 @@ public class EventController { | |||||||
|      * @return list of Event's |      * @return list of Event's | ||||||
|      */ |      */ | ||||||
|     @PostMapping |     @PostMapping | ||||||
|     public ResponseEntity getHistory(@RequestBody EventRequestDto event){ |     public ResponseEntity filterHistory(@RequestBody EventRequestDto event){ | ||||||
|         return new ResponseEntity(service.getEventsByDateTimeAndBusinessKeys(event), HttpStatus.OK); |         return new ResponseEntity(service.getEventsByDateTimeAndBusinessKeys(event), HttpStatus.OK); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @GetMapping(path = "/{uuid}/{messageId}") | ||||||
|  |     public ResponseEntity getLastDay(@PathVariable UUID uuid, | ||||||
|  |                                      @PathVariable Integer messageId){ | ||||||
|  |         LocalDateTime requestTime = LocalDateTime.now(); | ||||||
|  |         LocalDateTime dayBeforeRequest = requestTime.minusDays(1L); | ||||||
|  |         EventRequestDto eventRequestDto = EventRequestDto.builder() | ||||||
|  |                 .clientUUID(uuid) | ||||||
|  |                 .mockedResponseId(messageId) | ||||||
|  |                 .localDateTimeFrom(dayBeforeRequest) | ||||||
|  |                 .localDateTimeTo(requestTime) | ||||||
|  |                 .build(); | ||||||
|  |         return new ResponseEntity(service.getEventsByDateTimeAndBusinessKeys(eventRequestDto), HttpStatus.OK); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ import java.time.LocalDateTime; | |||||||
| @ToString | @ToString | ||||||
| @NoArgsConstructor | @NoArgsConstructor | ||||||
| @AllArgsConstructor | @AllArgsConstructor | ||||||
| public class Event { | public class Event implements Comparable<Event>{ | ||||||
|  |  | ||||||
|     @DateTimeFormat(pattern = "yyyy-MM-ddTHH:mm:ss") |     @DateTimeFormat(pattern = "yyyy-MM-ddTHH:mm:ss") | ||||||
|     private LocalDateTime dateTimeStamp; |     private LocalDateTime dateTimeStamp; | ||||||
| @@ -29,4 +29,9 @@ public class Event { | |||||||
|     private String level; |     private String level; | ||||||
|     @Nullable |     @Nullable | ||||||
|     private String message; |     private String message; | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public int compareTo(Event o) { | ||||||
|  |         return this.getDateTimeStamp().compareTo(o.getDateTimeStamp()) * -1; | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -8,6 +8,7 @@ import lombok.AllArgsConstructor; | |||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
|  | import java.util.Collections; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| @@ -37,7 +38,9 @@ public class EtrackServiceImpl implements EtrackService { | |||||||
|         if (eventsDto.getMockedResponseId() != null){ |         if (eventsDto.getMockedResponseId() != null){ | ||||||
|             businessKeys.put(BusinessKey.MESSAGE_ID, String.valueOf(eventsDto.getMockedResponseId())); |             businessKeys.put(BusinessKey.MESSAGE_ID, String.valueOf(eventsDto.getMockedResponseId())); | ||||||
|         } |         } | ||||||
|         return eventRepository.findEvents(eventsDto.getLocalDateTimeFrom(), eventsDto.getLocalDateTimeTo(), |         List<Event> events = eventRepository.findEvents(eventsDto.getLocalDateTimeFrom(), eventsDto.getLocalDateTimeTo(), | ||||||
|                 businessKeys); |                 businessKeys); | ||||||
|  |         Collections.sort(events); | ||||||
|  |         return events; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								src/main/resources/static/css/main.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/main/resources/static/css/main.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | .overflowedTableContent { | ||||||
|  |     max-height: 750px; | ||||||
|  |     overflow: scroll; | ||||||
|  | } | ||||||
| @@ -4,6 +4,7 @@ | |||||||
|     <title>R11 MockedServices</title> |     <title>R11 MockedServices</title> | ||||||
|     <meta charset="utf-8"> |     <meta charset="utf-8"> | ||||||
|     <link rel="stylesheet" href="css/fontello.css" type="text/css"> |     <link rel="stylesheet" href="css/fontello.css" type="text/css"> | ||||||
|  |     <link rel="stylesheet" href="css/main.css" type="text/css"> | ||||||
|     <link rel="stylesheet" href="http://gordon.zipper.release11.com:8085/common.css" type="text/css"> |     <link rel="stylesheet" href="http://gordon.zipper.release11.com:8085/common.css" type="text/css"> | ||||||
|     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> |     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> | ||||||
| </head> | </head> | ||||||
| @@ -63,9 +64,7 @@ | |||||||
|                         <textarea id="bodyEditor" class="data-field bordered-field max-width with-padding height-300 vertically-resizeable"></textarea> |                         <textarea id="bodyEditor" class="data-field bordered-field max-width with-padding height-300 vertically-resizeable"></textarea> | ||||||
|                     </div> |                     </div> | ||||||
|                     <!-- show/hide --> |                     <!-- show/hide --> | ||||||
|                     <div id="optional" class="clickable-text highlight"> |                     <button id="optional" class="clickable-text highlight switch"><span class="toggleIndicator"></span> show/hide advanced settings</button> | ||||||
|                         <h3>> show/hide advanced settings</h3> |  | ||||||
|                     </div> |  | ||||||
|                     <!-- advanced --> |                     <!-- advanced --> | ||||||
|                     <div id="advanced" class="max-width with-padding hiddable"> |                     <div id="advanced" class="max-width with-padding hiddable"> | ||||||
|                         <!-- tab menu --> |                         <!-- tab menu --> | ||||||
| @@ -102,7 +101,8 @@ | |||||||
|                             <!-- history --> |                             <!-- history --> | ||||||
|                             <div id="history" class="medium-vertical-margin tabcontent"> |                             <div id="history" class="medium-vertical-margin tabcontent"> | ||||||
|                                 <div class="block-display max-width"> |                                 <div class="block-display max-width"> | ||||||
|                                     <div class="display-space-between max-width small-vertical-margin"> |                                     <button id="btn-history-filter" class="clickable-text highlight switch"><span class="toggleIndicator"></span> filter</button> | ||||||
|  |                                     <div id ="history-filter" class="display-space-between max-width small-vertical-margin hiddable"> | ||||||
|                                         <div class="three-fourth-width display-space-evenly"> |                                         <div class="three-fourth-width display-space-evenly"> | ||||||
|                                             <div class="block-display half-width with-padding"> |                                             <div class="block-display half-width with-padding"> | ||||||
|                                                 <label for="historyFrom" class="block-label">From</label> |                                                 <label for="historyFrom" class="block-label">From</label> | ||||||
| @@ -118,7 +118,7 @@ | |||||||
|                                         <button id="btn-searchHistory" class="quater-width action-button active small-margins">Search</button> |                                         <button id="btn-searchHistory" class="quater-width action-button active small-margins">Search</button> | ||||||
|                                     </div> |                                     </div> | ||||||
|                                  |                                  | ||||||
|                                     <div class="max-width centered-content large-vertical-margin"> |                                     <div class="max-width centered-content large-vertical-margin overflowedTableContent"> | ||||||
|                                         <table id="historyTable" class="table-default"> |                                         <table id="historyTable" class="table-default"> | ||||||
|                                             <thead> |                                             <thead> | ||||||
|                                                 <tr class="bottom-border"> |                                                 <tr class="bottom-border"> | ||||||
|   | |||||||
| @@ -40,6 +40,8 @@ function getData(){ | |||||||
|     }); |     }); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| function checkUuid(){ | function checkUuid(){ | ||||||
|     if(clientUUID == null || clientUUID == undefined || clientUUID == ''){ |     if(clientUUID == null || clientUUID == undefined || clientUUID == ''){ | ||||||
|         clientUUID = json[0].clientUUID; |         clientUUID = json[0].clientUUID; | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| var historyJson = {}; | var historyJson = {}; | ||||||
| const maxIterations = 30; | const maxIterations = 200; | ||||||
|  |  | ||||||
| function filterHistory(){ | function filterHistory(){ | ||||||
|     var dateFrom = new Date($('#historyFrom').val() + 'T' + $('#historyTimeFrom').val()); |     var dateFrom = new Date($('#historyFrom').val() + 'T' + $('#historyTimeFrom').val()); | ||||||
| @@ -52,6 +52,13 @@ function loadHistory(dateFrom, dateTo){ | |||||||
|     }); |     }); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function getLast24hHistoryData(){ | ||||||
|  |     $.getJSON(host + '/api/event/' + clientUUID + '/' + lastId, function(data){ | ||||||
|  |         historyJson = data; | ||||||
|  |         displayHistory(); | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  |  | ||||||
| function historyToHtml(){ | function historyToHtml(){ | ||||||
|     var innerHTML = ''; |     var innerHTML = ''; | ||||||
|     var iterations = historyJson.length <= maxIterations ? historyJson.length : maxIterations; |     var iterations = historyJson.length <= maxIterations ? historyJson.length : maxIterations; | ||||||
|   | |||||||
| @@ -22,8 +22,16 @@ function changeAdvancedVisibility(){ | |||||||
|     setCookie(); |     setCookie(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | const historyFilter = $('#history-filter'); | ||||||
|  | const historyFilterSwitch = function(){ | ||||||
|  |     historyFilter.toggleClass('active'); | ||||||
|  | } | ||||||
|  |  | ||||||
| $("#optional").click(changeAdvancedVisibility); | $("#optional").click(changeAdvancedVisibility); | ||||||
| $('#historyTab').click(showHistory); | $('#historyTab').click(showHistory); | ||||||
|  | $('#btn-history-filter').click(historyFilterSwitch); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| const tabitem = $('.tabitem'); | const tabitem = $('.tabitem'); | ||||||
| function showHistory(){ | function showHistory(){ | ||||||
| @@ -33,8 +41,16 @@ function showHistory(){ | |||||||
|     $('#history').addClass('active'); |     $('#history').addClass('active'); | ||||||
|     $('#historyTab').addClass('active'); |     $('#historyTab').addClass('active'); | ||||||
|     $('#historyTab').off('click'); |     $('#historyTab').off('click'); | ||||||
|  |     initializeHistory(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function initializeHistory(){ | ||||||
|  |     historyFilter.removeClass('active'); | ||||||
|  |     getLast24hHistoryData(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| function showHeaders(){ | function showHeaders(){ | ||||||
|     $('#historyTab').click(showHistory); |     $('#historyTab').click(showHistory); | ||||||
|     tabitem.removeClass('active'); |     tabitem.removeClass('active'); | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										4
									
								
								target/classes/static/css/main.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								target/classes/static/css/main.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | .overflowedTableContent { | ||||||
|  |     max-height: 750px; | ||||||
|  |     overflow: scroll; | ||||||
|  | } | ||||||
| @@ -4,6 +4,7 @@ | |||||||
|     <title>R11 MockedServices</title> |     <title>R11 MockedServices</title> | ||||||
|     <meta charset="utf-8"> |     <meta charset="utf-8"> | ||||||
|     <link rel="stylesheet" href="css/fontello.css" type="text/css"> |     <link rel="stylesheet" href="css/fontello.css" type="text/css"> | ||||||
|  |     <link rel="stylesheet" href="css/main.css" type="text/css"> | ||||||
|     <link rel="stylesheet" href="http://gordon.zipper.release11.com:8085/common.css" type="text/css"> |     <link rel="stylesheet" href="http://gordon.zipper.release11.com:8085/common.css" type="text/css"> | ||||||
|     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> |     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> | ||||||
| </head> | </head> | ||||||
| @@ -63,9 +64,7 @@ | |||||||
|                         <textarea id="bodyEditor" class="data-field bordered-field max-width with-padding height-300 vertically-resizeable"></textarea> |                         <textarea id="bodyEditor" class="data-field bordered-field max-width with-padding height-300 vertically-resizeable"></textarea> | ||||||
|                     </div> |                     </div> | ||||||
|                     <!-- show/hide --> |                     <!-- show/hide --> | ||||||
|                     <div id="optional" class="clickable-text highlight"> |                     <button id="optional" class="clickable-text highlight switch"><span class="toggleIndicator"></span> show/hide advanced settings</button> | ||||||
|                         <h3>> show/hide advanced settings</h3> |  | ||||||
|                     </div> |  | ||||||
|                     <!-- advanced --> |                     <!-- advanced --> | ||||||
|                     <div id="advanced" class="max-width with-padding hiddable"> |                     <div id="advanced" class="max-width with-padding hiddable"> | ||||||
|                         <!-- tab menu --> |                         <!-- tab menu --> | ||||||
| @@ -102,7 +101,8 @@ | |||||||
|                             <!-- history --> |                             <!-- history --> | ||||||
|                             <div id="history" class="medium-vertical-margin tabcontent"> |                             <div id="history" class="medium-vertical-margin tabcontent"> | ||||||
|                                 <div class="block-display max-width"> |                                 <div class="block-display max-width"> | ||||||
|                                     <div class="display-space-between max-width small-vertical-margin"> |                                     <button id="btn-history-filter" class="clickable-text highlight switch"><span class="toggleIndicator"></span> filter</button> | ||||||
|  |                                     <div id ="history-filter" class="display-space-between max-width small-vertical-margin hiddable"> | ||||||
|                                         <div class="three-fourth-width display-space-evenly"> |                                         <div class="three-fourth-width display-space-evenly"> | ||||||
|                                             <div class="block-display half-width with-padding"> |                                             <div class="block-display half-width with-padding"> | ||||||
|                                                 <label for="historyFrom" class="block-label">From</label> |                                                 <label for="historyFrom" class="block-label">From</label> | ||||||
| @@ -118,7 +118,7 @@ | |||||||
|                                         <button id="btn-searchHistory" class="quater-width action-button active small-margins">Search</button> |                                         <button id="btn-searchHistory" class="quater-width action-button active small-margins">Search</button> | ||||||
|                                     </div> |                                     </div> | ||||||
|                                  |                                  | ||||||
|                                     <div class="max-width centered-content large-vertical-margin"> |                                     <div class="max-width centered-content large-vertical-margin overflowedTableContent"> | ||||||
|                                         <table id="historyTable" class="table-default"> |                                         <table id="historyTable" class="table-default"> | ||||||
|                                             <thead> |                                             <thead> | ||||||
|                                                 <tr class="bottom-border"> |                                                 <tr class="bottom-border"> | ||||||
|   | |||||||
| @@ -40,6 +40,8 @@ function getData(){ | |||||||
|     }); |     }); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| function checkUuid(){ | function checkUuid(){ | ||||||
|     if(clientUUID == null || clientUUID == undefined || clientUUID == ''){ |     if(clientUUID == null || clientUUID == undefined || clientUUID == ''){ | ||||||
|         clientUUID = json[0].clientUUID; |         clientUUID = json[0].clientUUID; | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| var historyJson = {}; | var historyJson = {}; | ||||||
| const maxIterations = 30; | const maxIterations = 200; | ||||||
|  |  | ||||||
| function filterHistory(){ | function filterHistory(){ | ||||||
|     var dateFrom = new Date($('#historyFrom').val() + 'T' + $('#historyTimeFrom').val()); |     var dateFrom = new Date($('#historyFrom').val() + 'T' + $('#historyTimeFrom').val()); | ||||||
| @@ -52,6 +52,13 @@ function loadHistory(dateFrom, dateTo){ | |||||||
|     }); |     }); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function getLast24hHistoryData(){ | ||||||
|  |     $.getJSON(host + '/api/event/' + clientUUID + '/' + lastId, function(data){ | ||||||
|  |         historyJson = data; | ||||||
|  |         displayHistory(); | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  |  | ||||||
| function historyToHtml(){ | function historyToHtml(){ | ||||||
|     var innerHTML = ''; |     var innerHTML = ''; | ||||||
|     var iterations = historyJson.length <= maxIterations ? historyJson.length : maxIterations; |     var iterations = historyJson.length <= maxIterations ? historyJson.length : maxIterations; | ||||||
|   | |||||||
| @@ -22,8 +22,16 @@ function changeAdvancedVisibility(){ | |||||||
|     setCookie(); |     setCookie(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | const historyFilter = $('#history-filter'); | ||||||
|  | const historyFilterSwitch = function(){ | ||||||
|  |     historyFilter.toggleClass('active'); | ||||||
|  | } | ||||||
|  |  | ||||||
| $("#optional").click(changeAdvancedVisibility); | $("#optional").click(changeAdvancedVisibility); | ||||||
| $('#historyTab').click(showHistory); | $('#historyTab').click(showHistory); | ||||||
|  | $('#btn-history-filter').click(historyFilterSwitch); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| const tabitem = $('.tabitem'); | const tabitem = $('.tabitem'); | ||||||
| function showHistory(){ | function showHistory(){ | ||||||
| @@ -33,8 +41,16 @@ function showHistory(){ | |||||||
|     $('#history').addClass('active'); |     $('#history').addClass('active'); | ||||||
|     $('#historyTab').addClass('active'); |     $('#historyTab').addClass('active'); | ||||||
|     $('#historyTab').off('click'); |     $('#historyTab').off('click'); | ||||||
|  |     initializeHistory(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function initializeHistory(){ | ||||||
|  |     historyFilter.removeClass('active'); | ||||||
|  |     getLast24hHistoryData(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| function showHeaders(){ | function showHeaders(){ | ||||||
|     $('#historyTab').click(showHistory); |     $('#historyTab').click(showHistory); | ||||||
|     tabitem.removeClass('active'); |     tabitem.removeClass('active'); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user