Skip to content

Commit 8701646

Browse files
committed
cleanup the alarm configuration details dialog
1 parent 1cf6eed commit 8701646

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

app/alarm/logging-ui/src/main/java/org/phoebus/applications/alarm/logging/ui/AlarmLogConfigSearchJob.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@
1010
import org.phoebus.framework.jobs.JobRunnableWithCancel;
1111

1212
import javax.ws.rs.core.MediaType;
13+
import javax.ws.rs.core.MultivaluedHashMap;
14+
import javax.ws.rs.core.MultivaluedMap;
1315
import java.time.ZoneId;
1416
import java.time.format.DateTimeFormatter;
17+
import java.util.Arrays;
1518
import java.util.List;
1619
import java.util.function.BiConsumer;
1720
import java.util.function.Consumer;
@@ -63,11 +66,13 @@ public Runnable getRunnable() {
6366
"config: " + pattern);
6467

6568
try {
69+
MultivaluedMap<String, String> map = new MultivaluedHashMap<>();
70+
map.put("config", Arrays.asList(pattern));
71+
map.put("size", Arrays.asList(String.valueOf(1)));
6672
List<AlarmLogTableItem> result = objectMapper
67-
.readValue(client.path("/search/alarm/config/"+pattern)
68-
.accept(MediaType.APPLICATION_JSON).get(String.class),
73+
.readValue(client.path("/search/alarm/").queryParams(map).accept(MediaType.APPLICATION_JSON).get(String.class),
6974
new TypeReference<List<AlarmLogTableItem>>() {
70-
});
75+
});
7176
if (result.size() >= 1) {
7277
alarmMessageHandler.accept(result.get(0));
7378
}

app/alarm/logging-ui/src/main/java/org/phoebus/applications/alarm/logging/ui/AlarmLogTableController.java

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.phoebus.applications.alarm.logging.ui;
22

3+
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
5+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
36
import com.sun.jersey.api.client.WebResource;
47
import javafx.animation.KeyFrame;
58
import javafx.animation.KeyValue;
@@ -43,6 +46,7 @@
4346
import java.net.URI;
4447
import java.net.URISyntaxException;
4548
import java.time.Instant;
49+
import java.time.format.DateTimeFormatter;
4650
import java.util.Arrays;
4751
import java.util.List;
4852
import java.util.Map;
@@ -494,6 +498,11 @@ public void search() {
494498
updateQuery();
495499
}
496500

501+
private static final ObjectMapper objectMapper = new ObjectMapper();
502+
static {
503+
objectMapper.registerModule(new JavaTimeModule());
504+
}
505+
497506
@FXML
498507
public void createContextMenu() {
499508
final ContextMenu contextMenu = new ContextMenu();
@@ -519,7 +528,24 @@ public void createContextMenu() {
519528
alarmInfo.setHeaderText(null);
520529
alarmInfo.setResizable(true);
521530
// Corner case: search query may return zero results (or null), so dialog message should show that.
522-
alarmInfo.setContentText(result == null ? Messages.ConfigurationInfoNotFound : result.toString());
531+
if (result == null) {
532+
alarmInfo.setContentText(Messages.ConfigurationInfoNotFound);
533+
} else {
534+
try {
535+
String newLine = System.lineSeparator();
536+
StringBuilder sb = new StringBuilder();
537+
sb.append("message_time: " + TimestampFormats.MILLI_FORMAT.format(result.getMessage_time()) + newLine);
538+
sb.append("config: " + result.getConfig() + newLine);
539+
sb.append("user: " + result.getUser() + newLine);
540+
sb.append("host: " + result.getHost() + newLine);
541+
sb.append("enabled: " + result.isEnabled() + newLine);
542+
Object jsonObject = objectMapper.readValue(result.getConfig_msg(), Object.class);
543+
sb.append("config_msg: " + objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonObject) + newLine);
544+
alarmInfo.setContentText(sb.toString());
545+
} catch (JsonProcessingException e) {
546+
alarmInfo.setContentText(Messages.ConfigurationInfoNotFound);
547+
}
548+
}
523549
alarmInfo.show();
524550
}),
525551
(url, ex) -> ExceptionDetailsErrorDialog.openError("Alarm Log Info Error", ex.getMessage(), ex)

0 commit comments

Comments
 (0)