This is an automated email from the ASF dual-hosted git repository. bhaisaab pushed a commit to branch debian9-systemvmtemplate in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit 85cbd3a251ca449eb0126dbf96d45f038c529fc6 Author: Rohit Yadav <[email protected]> AuthorDate: Mon Nov 27 20:32:31 2017 +0530 UI feature: Event timeline listing Signed-off-by: Rohit Yadav <[email protected]> --- api/src/org/apache/cloudstack/api/ApiConstants.java | 2 ++ .../cloudstack/api/command/user/event/ListEventsCmd.java | 7 +++++++ .../org/apache/cloudstack/api/response/EventResponse.java | 2 +- server/src/com/cloud/api/query/QueryManagerImpl.java | 10 +++++++++- ui/l10n/en.js | 1 + ui/scripts/events.js | 14 +++++++++++++- 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java index a5bd95f..89deeef 100644 --- a/api/src/org/apache/cloudstack/api/ApiConstants.java +++ b/api/src/org/apache/cloudstack/api/ApiConstants.java @@ -205,6 +205,7 @@ public class ApiConstants { public static final String OUTOFBANDMANAGEMENT_POWERSTATE = "outofbandmanagementpowerstate"; public static final String OUTOFBANDMANAGEMENT_ENABLED = "outofbandmanagementenabled"; public static final String PARAMS = "params"; + public static final String PARENT_ID = "parentid"; public static final String PARENT_DOMAIN_ID = "parentdomainid"; public static final String PASSWORD = "password"; public static final String SHOULD_UPDATE_PASSWORD = "update_passwd_on_host"; @@ -274,6 +275,7 @@ public class ApiConstants { public static final String SNAPSHOT_QUIESCEVM = "quiescevm"; public static final String SOURCE_ZONE_ID = "sourcezoneid"; public static final String START_DATE = "startdate"; + public static final String START_ID = "startid"; public static final String START_IP = "startip"; public static final String START_IPV6 = "startipv6"; public static final String START_PORT = "startport"; diff --git a/api/src/org/apache/cloudstack/api/command/user/event/ListEventsCmd.java b/api/src/org/apache/cloudstack/api/command/user/event/ListEventsCmd.java index a4934fa..b98c308 100644 --- a/api/src/org/apache/cloudstack/api/command/user/event/ListEventsCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/event/ListEventsCmd.java @@ -65,6 +65,9 @@ public class ListEventsCmd extends BaseListProjectAndAccountResourcesCmd { @Parameter(name = ApiConstants.TYPE, type = CommandType.STRING, description = "the event type (see event types)") private String type; + @Parameter(name = ApiConstants.START_ID, type = CommandType.UUID, entityType = EventResponse.class, description = "the parent/start ID of the event, when provided this will list all the events with the start/parent ID including the parent event") + private Long startId; + ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// ///////////////////////////////////////////////////// @@ -97,6 +100,10 @@ public class ListEventsCmd extends BaseListProjectAndAccountResourcesCmd { return type; } + public Long getStartId() { + return startId; + } + ///////////////////////////////////////////////////// /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// diff --git a/api/src/org/apache/cloudstack/api/response/EventResponse.java b/api/src/org/apache/cloudstack/api/response/EventResponse.java index 5ce66ed..da15434 100644 --- a/api/src/org/apache/cloudstack/api/response/EventResponse.java +++ b/api/src/org/apache/cloudstack/api/response/EventResponse.java @@ -78,7 +78,7 @@ public class EventResponse extends BaseResponse implements ControlledViewEntityR @Param(description = "the state of the event") private Event.State state; - @SerializedName("parentid") + @SerializedName(ApiConstants.PARENT_ID) @Param(description = "whether the event is parented") private String parentId; diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index 42bef79..2a6919b 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -520,6 +520,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q String keyword = cmd.getKeyword(); Integer entryTime = cmd.getEntryTime(); Integer duration = cmd.getDuration(); + Long startId = cmd.getStartId(); Ternary<Long, Boolean, ListProjectResourcesCriteria> domainIdRecursiveListProject = new Ternary<Long, Boolean, ListProjectResourcesCriteria>( cmd.getDomainId(), cmd.isRecursive(), null); @@ -542,7 +543,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q sb.and("createDateG", sb.entity().getCreateDate(), SearchCriteria.Op.GTEQ); sb.and("createDateL", sb.entity().getCreateDate(), SearchCriteria.Op.LTEQ); sb.and("state", sb.entity().getState(), SearchCriteria.Op.NEQ); - sb.and("startId", sb.entity().getStartId(), SearchCriteria.Op.EQ); + sb.or("startId", sb.entity().getStartId(), SearchCriteria.Op.EQ); sb.and("createDate", sb.entity().getCreateDate(), SearchCriteria.Op.BETWEEN); sb.and("displayEvent", sb.entity().getDisplay(), SearchCriteria.Op.EQ); sb.and("archived", sb.entity().getArchived(), SearchCriteria.Op.EQ); @@ -561,6 +562,13 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q sc.setParameters("id", id); } + if (startId != null) { + sc.setParameters("startId", startId); + if (id == null) { + sc.setParameters("id", startId); + } + } + if (keyword != null) { SearchCriteria<EventJoinVO> ssc = _eventJoinDao.createSearchCriteria(); ssc.addOr("type", SearchCriteria.Op.LIKE, "%" + keyword + "%"); diff --git a/ui/l10n/en.js b/ui/l10n/en.js index 9f5b1a5..a0e5324 100644 --- a/ui/l10n/en.js +++ b/ui/l10n/en.js @@ -749,6 +749,7 @@ var dictionary = {"ICMP.code":"ICMP Code", "label.event":"Event", "label.event.archived":"Event Archived", "label.event.deleted":"Event Deleted", +"label.event.timeline":"Event Timeline", "label.every":"Every", "label.example":"Example", "label.expunge":"Expunge", diff --git a/ui/scripts/events.js b/ui/scripts/events.js index 2fd70dd..6c4aeb4 100644 --- a/ui/scripts/events.js +++ b/ui/scripts/events.js @@ -338,6 +338,14 @@ var data = {}; listViewDataProvider(args, data); + if ("events" in args.context) { + var startId = args.context.events[0].parentid; + if (!startId) { + startId = args.context.events[0].id; + } + data.startid = startId; + } + $.ajax({ url: createURL('listEvents'), data: data, @@ -357,8 +365,12 @@ }, detailView: { name: 'label.details', - actions: { + viewAll: { + path: 'events', + label: 'label.event.timeline', + }, + actions: { // Remove single event remove: { label: 'label.delete', -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
