Skip to content

Commit 9065d8a

Browse files
authored
Merge pull request #3275 from ControlSystemStudio/CSSTUDIO-2947
Support quoted search term in save&restore
2 parents c33bb87 + 1a769c4 commit 9065d8a

File tree

2 files changed

+10
-21
lines changed

2 files changed

+10
-21
lines changed

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/client/SaveAndRestoreClientImpl.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,18 @@
2929
import org.phoebus.security.store.SecureStore;
3030
import org.phoebus.security.tokens.AuthenticationScope;
3131
import org.phoebus.security.tokens.ScopedAuthenticationToken;
32+
import org.phoebus.util.http.QueryParamsHelper;
3233

3334
import javax.ws.rs.core.MultivaluedMap;
3435
import java.net.CookieHandler;
3536
import java.net.CookieManager;
3637
import java.net.CookiePolicy;
3738
import java.net.URI;
39+
import java.net.URLEncoder;
3840
import java.net.http.HttpClient;
3941
import java.net.http.HttpRequest;
4042
import java.net.http.HttpResponse;
43+
import java.nio.charset.StandardCharsets;
4144
import java.time.Duration;
4245
import java.util.Base64;
4346
import java.util.List;
@@ -461,7 +464,7 @@ public CompositeSnapshot updateCompositeSnapshot(CompositeSnapshot compositeSnap
461464
public SearchResult search(MultivaluedMap<String, String> searchParams) {
462465
try {
463466
HttpRequest request = HttpRequest.newBuilder()
464-
.uri(URI.create(Preferences.jmasarServiceUrl + "/search?" + mapToQueryParams(searchParams)))
467+
.uri(URI.create(Preferences.jmasarServiceUrl + "/search?" + QueryParamsHelper.mapToQueryParams(searchParams)))
465468
.header("Content-Type", CONTENT_TYPE_JSON)
466469
.GET()
467470
.build();
@@ -697,17 +700,4 @@ private HttpResponse<String> getCall(String relativeUrl) {
697700
throw new RuntimeException(e);
698701
}
699702
}
700-
701-
private String mapToQueryParams(MultivaluedMap<String, String> map) {
702-
StringBuilder stringBuilder = new StringBuilder();
703-
map.keySet().forEach(k -> {
704-
List<String> value = map.get(k);
705-
if (value != null && !value.isEmpty()) {
706-
stringBuilder.append(k).append("=");
707-
stringBuilder.append(String.join(",", value));
708-
stringBuilder.append("&");
709-
}
710-
});
711-
return stringBuilder.toString();
712-
}
713703
}

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -559,13 +559,6 @@ protected void updateItem(Node node, boolean empty) {
559559
hitCountProperty, pagination.pageCountProperty()));
560560
pagination.pageCountProperty().bind(pageCountProperty);
561561

562-
query.addListener((observable, oldValue, newValue) -> {
563-
if (newValue == null || newValue.isEmpty()) {
564-
clearSearch();
565-
} else {
566-
search();
567-
}
568-
});
569562

570563
resultTableView.setOnDragDetected(e -> {
571564
List<Node> selectedNodes = resultTableView.getSelectionModel().getSelectedItems();
@@ -728,6 +721,12 @@ private void updateParametersAndSearch() {
728721
return;
729722
}
730723
query.set(buildQueryString());
724+
if(query.get().isEmpty()){
725+
clearSearch();
726+
}
727+
else{
728+
search();
729+
}
731730
}
732731

733732
/**

0 commit comments

Comments
 (0)