diff --git a/application/src/main/java/org/thingsboard/server/controller/EventController.java b/application/src/main/java/org/thingsboard/server/controller/EventController.java index ea8dda9673..28c922afda 100644 --- a/application/src/main/java/org/thingsboard/server/controller/EventController.java +++ b/application/src/main/java/org/thingsboard/server/controller/EventController.java @@ -242,7 +242,7 @@ public class EventController extends BaseController { @ApiOperation(value = "Clear Events (clearEvents)", notes = "Clears events for specified entity.") @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") - @RequestMapping(value = "/events/{entityType}/{entityId}/{eventType}/clear", method = RequestMethod.DELETE) + @RequestMapping(value = "/events/{entityType}/{entityId}/{eventType}/clear", method = RequestMethod.POST) @ResponseStatus(HttpStatus.OK) public void clearEvents( @ApiParam(value = ENTITY_TYPE_PARAM_DESCRIPTION, required = true) @@ -250,13 +250,14 @@ public class EventController extends BaseController { @ApiParam(value = ENTITY_ID_PARAM_DESCRIPTION, required = true) @PathVariable(ENTITY_ID) String strEntityId, @ApiParam(value = TENANT_ID_PARAM_DESCRIPTION, required = true) - @RequestParam("tenantId") String strTenantId, - @ApiParam(value = "A string value representing event type", example = "STATS", required = true) @PathVariable("eventType") String eventType, @ApiParam(value = EVENT_START_TIME_DESCRIPTION) + @RequestParam("tenantId") String strTenantId, + @ApiParam(value = "A string value representing event type", example = "STATS", required = true) @RequestParam(required = false) Long startTime, @ApiParam(value = EVENT_END_TIME_DESCRIPTION) - @RequestParam(required = false) Long endTime) throws ThingsboardException { + @RequestParam(required = false) Long endTime, + @RequestBody EventFilter eventFilter) throws ThingsboardException { checkParameter("EntityId", strEntityId); checkParameter("EntityType", strEntityType); try { diff --git a/ui-ngx/src/app/core/http/event.service.ts b/ui-ngx/src/app/core/http/event.service.ts index fd740d73a7..e54f760b00 100644 --- a/ui-ngx/src/app/core/http/event.service.ts +++ b/ui-ngx/src/app/core/http/event.service.ts @@ -44,5 +44,12 @@ export class EventService { return this.http.post>(`/api/events/${entityId.entityType}/${entityId.id}` + `${pageLink.toQuery()}&tenantId=${tenantId}`, {...filters, eventType}, defaultHttpOptionsFromConfig(config)); } - + + public clearEvents(entityId: EntityId, eventType: EventType | DebugEventType, filters: FilterEventBody, tenantId: string, + startTime?: number, endTime?: number, config?: RequestConfig) { + return this.http.post(`/api/events/${entityId.entityType}/${entityId.id}/${eventType}/clear&tenantId=${tenantId}` + + (startTime ? `&startTime=${startTime}` : ``) + (endTime ? `&endTime=${endTime}` : ``), {...filters, eventType}, + defaultHttpOptionsFromConfig(config)); + } + } diff --git a/ui-ngx/src/app/modules/home/components/event/event-table-config.ts b/ui-ngx/src/app/modules/home/components/event/event-table-config.ts index 2d5cfbb428..07d8bfb82f 100644 --- a/ui-ngx/src/app/modules/home/components/event/event-table-config.ts +++ b/ui-ngx/src/app/modules/home/components/event/event-table-config.ts @@ -48,7 +48,6 @@ import { EventFilterPanelData, FilterEntityColumn } from '@home/components/event/event-filter-panel.component'; -import { HttpClient } from '@angular/common/http'; export class EventTableConfig extends EntityTableConfig { @@ -83,8 +82,7 @@ export class EventTableConfig extends EntityTableConfig { private debugEventTypes: Array = null, private overlay: Overlay, private viewContainerRef: ViewContainerRef, - private cd: ChangeDetectorRef, - private http: HttpClient) { + private cd: ChangeDetectorRef) { super(); this.loadDataOnInit = false; this.tableTitle = ''; @@ -143,7 +141,7 @@ export class EventTableConfig extends EntityTableConfig { icon: 'delete', isEnabled: () => true, onAction: ($event, entity) => { - this.http.delete(`/events/${entity.entityId.entityType}/${entity.entityId.id}/${entity.eventTypeValue}/clear`).subscribe(); + this.eventService.clearEvents(entity.entityId, entity.eventType, entity.filterParams, entity.tenantId, , ).subscribe(); } }); } diff --git a/ui-ngx/src/app/modules/home/components/event/event-table.component.ts b/ui-ngx/src/app/modules/home/components/event/event-table.component.ts index e875036562..85bd4cf81a 100644 --- a/ui-ngx/src/app/modules/home/components/event/event-table.component.ts +++ b/ui-ngx/src/app/modules/home/components/event/event-table.component.ts @@ -104,8 +104,7 @@ export class EventTableComponent implements OnInit { this.debugEventTypes, this.overlay, this.viewContainerRef, - this.cd, - this.http + this.cd ); } diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index f4a868a5c9..fee65c086f 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -1853,7 +1853,7 @@ "event": { "event-type": "Event type", "events-filter": "Events Filter", - "clean-events": "Clean Events", + "clean-events": "Clear Events", "type-error": "Error", "type-lc-event": "Lifecycle event", "type-stats": "Statistics",