doortts doortts 2018-10-25
api: Support ISSUE_LABE_CHANGED event
@b782a77670954f9346444892c566eb8934f8b0f4
app/controllers/IssueApp.java
--- app/controllers/IssueApp.java
+++ app/controllers/IssueApp.java
@@ -432,7 +432,7 @@
                 IssueLabel label = IssueLabel.finder.byId(labelId);
                 issue.labels.add(label);
                 isLabelChanged = true;
-                addedLabels.append(label.category.name).append(" - ").append(label.name);
+                addedLabels.append(label.category.name).append(" - ").append(label.name).append(" ").append(label.color);
             }
         }
 
@@ -441,7 +441,7 @@
                 IssueLabel label = IssueLabel.finder.byId(labelId);
                 issue.labels.remove(label);
                 isLabelChanged = true;
-                deletedLabels.append(label.category.name).append(" - ").append(label.name);
+                deletedLabels.append(label.category.name).append(" - ").append(label.name).append(" ").append(label.color);
             }
         }
 
app/controllers/api/IssueApi.java
--- app/controllers/api/IssueApi.java
+++ app/controllers/api/IssueApi.java
@@ -107,12 +107,14 @@
         if (issue.events.size() > 0) {
             for (IssueEvent event: issue.events) {
                 ObjectNode result = Json.newObject();
+                User sender = User.findByLoginId(event.senderLoginId);
                 result.put("id", event.id);
                 result.put("createdDate", JodaDateUtil.getDateString(event.created, JodaDateUtil.ISO_FORMAT));
                 result.put("eventType", event.eventType.toString());
                 result.put("eventDescription", event.eventType.getDescr());
                 result.put("oldValue", event.oldValue);
                 result.put("newValue", event.newValue);
+                result.put("actor", getActorJson(sender));
                 array.add(result);
             }
         }
@@ -120,6 +122,14 @@
         return array;
     }
 
+    private static JsonNode getActorJson(User user) {
+        ObjectNode result = Json.newObject();
+        result.put("name", user.getPureNameOnly());
+        result.put("loginId", user.loginId);
+        result.put("englishName", user.englishName);
+        return result;
+    }
+
     @Transactional
     @IsCreatable(ResourceType.ISSUE_POST)
     public static Result newIssues(String owner, String projectName) {
app/views/issue/partial_event_timeline.scala.html
--- app/views/issue/partial_event_timeline.scala.html
+++ app/views/issue/partial_event_timeline.scala.html
@@ -58,7 +58,7 @@
         categoryAndName
     } else {
         var categoryName = splitedCategoryAndName(0).trim
-        var labelName = splitedCategoryAndName(1).trim
+        var labelName = splitedCategoryAndName(1).split(" #")(0).trim
         val issueLabel = IssueLabel.findByName(labelName, categoryName, project)
         if(issueLabel != null) {
             val labelColor = issueLabel.color
Add a comment
List