Skip to content

Commit

Permalink
Merge pull request #1397 from dimagi/jt/clear-on-search
Browse files Browse the repository at this point in the history
Parses and stores search_on_clear from suite
  • Loading branch information
Jtang-1 authored Jan 22, 2024
2 parents 25298d3 + 6e85c85 commit ed8413c
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 4 deletions.
6 changes: 6 additions & 0 deletions src/cli/java/org/commcare/util/screen/QueryScreen.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ public class QueryScreen extends Screen {
private boolean defaultSearch;

private boolean dynamicSearch;
private boolean searchOnClear;

public QueryScreen(String domainedUsername, String password, PrintStream out,
VirtualDataInstanceStorage instanceStorage, SessionUtils sessionUtils) {
Expand Down Expand Up @@ -96,6 +97,7 @@ public void init(SessionWrapper sessionWrapper) throws CommCareSessionException
mTitle = getTitleLocaleString();
description = getDescriptionLocaleString();
dynamicSearch = getQueryDatum().getDynamicSearch();
searchOnClear = getQueryDatum().isSearchOnClear();
groupHeaders = getQueryDatum().getUserQueryGroupHeaders();
}

Expand Down Expand Up @@ -221,6 +223,10 @@ public boolean getDynamicSearch() {
return dynamicSearch;
}

public boolean isSearchOnClear(){
return searchOnClear;
}

@Override
public boolean prompt(PrintStream out) {
if (doDefaultSearch()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,10 @@ public boolean getDynamicSearch() {
return queryDatum.getDynamicSearch();
}

public boolean isSearchOnClear() {
return queryDatum.isSearchOnClear();
}

// Converts a string containing space separated list of choices
// into a string array of individual choices
public static String[] extractMultipleChoices(String answer) {
Expand Down
10 changes: 8 additions & 2 deletions src/main/java/org/commcare/suite/model/RemoteQueryDatum.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public class RemoteQueryDatum extends SessionDatum {
private boolean useCaseTemplate;
private boolean defaultSearch;
private boolean dynamicSearch;
private boolean searchOnClear;
private Text title;
private Text description;

Expand All @@ -49,14 +50,15 @@ public RemoteQueryDatum(URL url, String storageInstance,
List<QueryData> hiddenQueryValues,
OrderedHashtable<String, QueryPrompt> userQueryPrompts, boolean useCaseTemplate,
boolean defaultSearch, boolean dynamicSearch, Text title, Text description,
Hashtable<String, QueryGroup> userQueryGroupHeaders) {
Hashtable<String, QueryGroup> userQueryGroupHeaders, boolean searchOnClear) {
super(storageInstance, url.toString());
this.hiddenQueryValues = hiddenQueryValues;
this.userQueryPrompts = userQueryPrompts;
this.userQueryGroupHeaders = userQueryGroupHeaders;
this.useCaseTemplate = useCaseTemplate;
this.defaultSearch = defaultSearch;
this.dynamicSearch = dynamicSearch;
this.searchOnClear = searchOnClear;
this.title = title;
this.description = description;
}
Expand Down Expand Up @@ -95,6 +97,9 @@ public boolean getDynamicSearch() {
return dynamicSearch;
}

public boolean isSearchOnClear() {
return searchOnClear;
}
public Text getTitleText() {
return title;
}
Expand All @@ -120,6 +125,7 @@ public void readExternal(DataInputStream in, PrototypeFactory pf)
useCaseTemplate = ExtUtil.readBool(in);
defaultSearch = ExtUtil.readBool(in);
dynamicSearch = ExtUtil.readBool(in);
searchOnClear = ExtUtil.readBool(in);
}

@Override
Expand All @@ -133,6 +139,6 @@ public void writeExternal(DataOutputStream out) throws IOException {
ExtUtil.writeBool(out, useCaseTemplate);
ExtUtil.writeBool(out, defaultSearch);
ExtUtil.writeBool(out, dynamicSearch);

ExtUtil.writeBool(out, searchOnClear);
}
}
4 changes: 3 additions & 1 deletion src/main/java/org/commcare/xml/SessionDatumParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ private RemoteQueryDatum parseRemoteQueryDatum()

boolean defaultSearch = "true".equals(parser.getAttributeValue(null, "default_search"));
boolean dynamicSearch = "true".equals(parser.getAttributeValue(null, "dynamic_search"));
boolean searchOnClear = "true".equals(parser.getAttributeValue(null, "search_on_clear"));
Text title = null;
Text description = null;
Hashtable<String, QueryGroup> groupPrompts = new Hashtable<>();
Expand All @@ -152,6 +153,7 @@ private RemoteQueryDatum parseRemoteQueryDatum()
}
}
return new RemoteQueryDatum(queryUrl, queryResultStorageInstance, hiddenQueryValues,
userQueryPrompts, useCaseTemplate, defaultSearch, dynamicSearch, title, description, groupPrompts);
userQueryPrompts, useCaseTemplate, defaultSearch, dynamicSearch, title, description, groupPrompts,
searchOnClear);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ public void testRemoteQueryDatum() throws Exception {
Assert.assertEquals("Description text", description.evaluate());

Assert.assertTrue(((RemoteQueryDatum)datum).getDynamicSearch());

Assert.assertTrue(((RemoteQueryDatum)datum).isSearchOnClear());
}

@Test
Expand Down
2 changes: 1 addition & 1 deletion src/test/resources/case_claim_example/suite.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
<instance id="casedb" src="jr://instance/casedb"/>
<instance id="my-search-input" src="jr://instance/search-input/patients"/>
<session>
<query url="https://www.fake.com/patient_search/" storage-instance="patients" dynamic_search="true">
<query url="https://www.fake.com/patient_search/" storage-instance="patients" dynamic_search="true" search_on_clear="true">
<title>
<text>
<locale id="query.title"/>
Expand Down

0 comments on commit ed8413c

Please sign in to comment.