From 2e44225d769a1b733ca17ae832940175ea4674f4 Mon Sep 17 00:00:00 2001 From: Claudinei <claudineigom18@gmail.com> Date: Mon, 15 May 2017 09:42:23 -0300 Subject: [PATCH 1/3] updating code with search by resource type --- client/src/app/+search/search.component.html | 26 +++++++++---------- .../repository/AuditEventRepository.java | 9 ++++--- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/client/src/app/+search/search.component.html b/client/src/app/+search/search.component.html index ffbeeca..2c085d8 100644 --- a/client/src/app/+search/search.component.html +++ b/client/src/app/+search/search.component.html @@ -17,32 +17,32 @@ <input name="id" type="text" class="form-control" [(ngModel)]="filtro.id" placeholder="ID do Log"> <br><span>Data Início: </span><br> - <input name="dataInicio" type="datetime-local" class="input form-control primary-border" [(ngModel)]="dateStart" - placeholder="dd/mm/aaaa --:--"> + <p-calendar name="dataInicio" dateFormat="dd.mm.yy" [(ngModel)]="dateStart" [maxDate]="dateEnd" [showTime]="true" [showIcon]="true"></p-calendar> + <br><span>Data Fim: </span><br> - <input name="dataFim" type="datetime-local" class="input form-control primary-border" [(ngModel)]="dateEnd" - placeholder="dd/mm/aaaa --:--"> + <p-calendar name="dataFim" dateFormat="dd.mm.yy" [(ngModel)]="dateEnd" [minDate]="dateStart" [showTime]="true" [showIcon]="true"></p-calendar> <br><span>Ip: </span><br> <input name="ip" type="text" class="input form-control primary-border" [(ngModel)]="filtro.ip" placeholder="IP"> + <br>Criticidade + <br><select name="securitySevel" class="form-control" + [(ngModel)]="filtro.securityLevel"> - <br><br><select name="securitySevel" class="form-control" - [(ngModel)]="filtro.securityLevel"> - - <option value="" selected>---Criticidade---</option> <!-- not selected / blank option --> + <option value="">---Criticidade---</option> <!-- not selected / blank option --> <option *ngFor="let crit of criticidades" value="{{crit}}"> {{crit}}</option> </select> - <select name="applicationName" class="form-control" - [(ngModel)]="filtro.applicationName"> + <br>Aplicação + <br><select name="applicationName" class="form-control" + [(ngModel)]="filtro.applicationName"> - <option value="" selected>---Aplicação---</option> <!-- not selected / blank option --> - <option *ngFor="let aplic of aplicacoes" value="{{aplic}}"> {{aplic}}</option> + <option value="" selected>---Aplicação---</option> <!-- not selected / blank option --> + <option *ngFor="let aplic of aplicacoes" value="{{aplic}}" > {{aplic}}</option> - </select> + </select> <br>Resource Types <br><select name="resourceTypes" class="form-control" diff --git a/src/main/java/br/pucminas/icei/audition/repository/AuditEventRepository.java b/src/main/java/br/pucminas/icei/audition/repository/AuditEventRepository.java index 16966e8..34edf4f 100644 --- a/src/main/java/br/pucminas/icei/audition/repository/AuditEventRepository.java +++ b/src/main/java/br/pucminas/icei/audition/repository/AuditEventRepository.java @@ -49,11 +49,11 @@ public SearchResponse search(Map<String, Object> filtro, Long start, Long max, } public List<String> listApplicationNames() { - return em.createQuery("SELECT distinct e.applicationName from AuditEvent e").getResultList(); + return em.createQuery("SELECT distinct e.applicationName from AuditEvent e order by e.applicationName").getResultList(); } public List<String> listResourceTypes(){ - return em.createQuery("SELECT distinct e.resource.resourceType from AuditEvent e").getResultList(); + return em.createQuery("SELECT distinct e.resource.resourceType from AuditEvent e order by e.resource.resourceType").getResultList(); } private SearchResponse buildQuery(Map<String, Object> filtro, @@ -68,11 +68,14 @@ private SearchResponse buildQuery(Map<String, Object> filtro, List<Predicate> predicates = new ArrayList(); + Iterator it = filtro.entrySet().iterator(); while (it.hasNext()) { Map.Entry pair = (Map.Entry) it.next(); String key = (String) pair.getKey(); - if (key == "action") { + if(key.equals("resourceType")){ + predicates.add(cb.equal(root.get("resource").get(key), pair.getValue())); + }else if (key.equals("action")) { predicates.add(cb.like(root.get(key), pair.getValue() + "%")); } else { predicates.add(cb.equal(root.get(key), pair.getValue())); From 129cec1bbe19d381692f6556827e5480f9c20d33 Mon Sep 17 00:00:00 2001 From: Claudinei <claudineigom18@gmail.com> Date: Tue, 16 May 2017 09:15:59 -0300 Subject: [PATCH 2/3] delete print --- .../br/pucminas/icei/audition/controller/AuditController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/br/pucminas/icei/audition/controller/AuditController.java b/src/main/java/br/pucminas/icei/audition/controller/AuditController.java index 8b9a333..3f3ec59 100644 --- a/src/main/java/br/pucminas/icei/audition/controller/AuditController.java +++ b/src/main/java/br/pucminas/icei/audition/controller/AuditController.java @@ -125,7 +125,6 @@ private Map<String, Object> deleteFilterDate(Map<String, Object> filtro){ if(pair.getKey() == "dateStart" || pair.getKey() == "dateEnd" || pair.getKey() == "timeStart" || pair.getKey() == "timeEnd") { it.remove(); resp.remove(pair.getKey(), value); - System.out.println(pair.getKey() + " ---> " + pair.getValue()); } } From 2dfe59b166e390e479e1cbe69a7edd9c6185055c Mon Sep 17 00:00:00 2001 From: Claudinei <claudineigom18@gmail.com> Date: Tue, 16 May 2017 11:20:46 -0300 Subject: [PATCH 3/3] description of log selected --- client/src/app/+search/search.component.html | 45 +++++++++++++++++++- client/src/app/+search/search.component.ts | 8 +++- client/src/app/shared/shared.module.ts | 3 +- 3 files changed, 52 insertions(+), 4 deletions(-) diff --git a/client/src/app/+search/search.component.html b/client/src/app/+search/search.component.html index 2c085d8..5a49071 100644 --- a/client/src/app/+search/search.component.html +++ b/client/src/app/+search/search.component.html @@ -76,14 +76,16 @@ <div class="container"> <div class="table-responsive tablescroll"> - <p-dataTable [value]="eventos" [rows]="10" [paginator]="true" [pageLinks]="3" lazy="true" [totalRecords]="totalRecords" - (onLazyLoad)="onLazyLoad($event)"> + (onLazyLoad)="onLazyLoad($event)" + selectionMode="single" + [(selection)]="logSelecionado" + (dblclick)="showDialog()"> <p-header>Lista de Eventos</p-header> <p-column field="id" header="ID"></p-column> <p-column field="applicationName" header="Aplicação"></p-column> @@ -101,6 +103,45 @@ </div> + <p-dialog header="Descrição do Log Selecionado" [(visible)]="display"> + <table class="table display"> + <thead> + <tr> + <th> ID</th> + <th> Aplicação</th> + <th> Usuário</th> + <th> Ação</th> + <th> Resource Type</th> + <th> Resource Id</th> + <th> Data e Hora</th> + <th> IP</th> + <th> Criticidade</th> + </tr> + + </thead> + <tbody> + <tr> + <td> {{ logSelecionado.id }}</td> + <td> {{ logSelecionado.applicationName }}</td> + <td> {{ logSelecionado.userName }}</td> + <td> {{ logSelecionado.action }}</td> + <td> {{ logSelecionado.resource.resourceType }}</td> + <td> {{ logSelecionado.resource.resourceId }}</td> + <td> {{ logSelecionado.dateTime[2] + '/' + logSelecionado.dateTime[1] + '/' + + logSelecionado.dateTime[0] + ' ' + logSelecionado.dateTime[3] + ':' + logSelecionado.dateTime[4] + + ':' + logSelecionado.dateTime[5]}} + </td> + <td> {{ logSelecionado.ip }}</td> + <td> {{ logSelecionado.securityLevel }}</td> + + </tr> + </tbody> + <th> Descrição</th><br/> + <td> {{ logSelecionado.description}}</td> + </table> + </p-dialog> + + <!-- Modal Descrição --> <div id="details"> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" diff --git a/client/src/app/+search/search.component.ts b/client/src/app/+search/search.component.ts index d7d7f1e..02cb99b 100644 --- a/client/src/app/+search/search.component.ts +++ b/client/src/app/+search/search.component.ts @@ -2,7 +2,7 @@ import {Component, OnInit} from '@angular/core'; import {Http, Headers, Response} from '@angular/http'; import { saveAs } from 'file-saver'; import {AppService} from "../app.service"; -import {Message} from 'primeng/primeng'; +import {Dialog, Message} from 'primeng/primeng'; /** * This class represents the lazy loaded AboutComponent. */ @@ -27,6 +27,9 @@ export class SearchComponent implements OnInit { totalRecords = 0 rows = 100 down = false + selectedEvent + display: boolean = false; + constructor(private http: Http, private appService: AppService) { } @@ -115,4 +118,7 @@ export class SearchComponent implements OnInit { } }); } + showDialog() { + this.display = true; + } } diff --git a/client/src/app/shared/shared.module.ts b/client/src/app/shared/shared.module.ts index e0ad9dc..9c6838b 100644 --- a/client/src/app/shared/shared.module.ts +++ b/client/src/app/shared/shared.module.ts @@ -7,7 +7,7 @@ import { BrowserAnimationsModule} from "@angular/platform-browser/animations" import { ToolbarComponent } from './toolbar/index'; import { NavbarComponent } from './navbar/index'; -import { CalendarModule, PaginatorModule, DataTableModule, GrowlModule, SharedModule as PShared } from "primeng/primeng" +import { CalendarModule, PaginatorModule, DataTableModule, GrowlModule, DialogModule, SharedModule as PShared } from "primeng/primeng" /** * Do not specify providers for modules that might be imported by a lazy loaded module. @@ -27,6 +27,7 @@ import { CalendarModule, PaginatorModule, DataTableModule, GrowlModule, SharedMo PaginatorModule, DataTableModule, GrowlModule, + DialogModule, PShared ] })