Skip to content

Commit ead0710

Browse files
committed
Added 'performSearchIfEmptyText' parameter to ChosenOption
1 parent 33a0168 commit ead0710

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

plugin/src/main/java/com/arcbees/chosen/client/ChosenOptions.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public class ChosenOptions {
3131
private boolean searchContains;
3232
private boolean singleBackstrokeDelete;
3333
private boolean highlightSearchTerm;
34+
private boolean performSearchIfEmptyText;
3435
private ResultsFilter resultFilter;
3536
private DropdownPosition dropdownPosition;
3637
private Element dropdownBoundaries;
@@ -266,6 +267,15 @@ public boolean isSingleBackstrokeDelete() {
266267
return singleBackstrokeDelete;
267268
}
268269

270+
public ChosenOptions setPerformSearchIfEmptyText(boolean performSearchIfEmptyText) {
271+
this.performSearchIfEmptyText = performSearchIfEmptyText;
272+
return this;
273+
}
274+
275+
public boolean isPerformSearchIfEmptyText() {
276+
return performSearchIfEmptyText;
277+
}
278+
269279
public ChosenOptions setSingleBackstrokeDelete(boolean singleBackstrokeDelete) {
270280
this.singleBackstrokeDelete = singleBackstrokeDelete;
271281
return this;
@@ -297,6 +307,7 @@ private void setDefault() {
297307
maxSelectedOptions = -1;
298308
highlightSearchTerm = true;
299309
dropdownPosition = DropdownPosition.BELOW;
310+
performSearchIfEmptyText = true;
300311
mobileViewportMaxWidth = 649;
301312
oneSelectedTextMultipleMobile = "{} item selected";
302313
manySelectedTextMultipleMobile = "{} items selected";

plugin/src/main/java/com/arcbees/chosen/client/ClientResultsFilter.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ public void filter(String searchText, ChosenImpl chosen, boolean isShowing) {
4040
RegExp regex = RegExp.compile(regexAnchor + escapedSearchText, "i");
4141
RegExp zregex = RegExp.compile("(" + escapedSearchText + ")", "i");
4242

43+
boolean performSearch = true;
44+
if (!options.isPerformSearchIfEmptyText() && searchText.isEmpty()) {
45+
performSearch = false;
46+
}
47+
4348
int results = 0;
4449

4550
List<SelectItem> selectItems = chosen.getSelectItems();
@@ -63,13 +68,13 @@ public void filter(String searchText, ChosenImpl chosen, boolean isShowing) {
6368
optionContent = option.getText();
6469
}
6570

66-
if (regex.test(optionContent)) {
71+
if (performSearch && regex.test(optionContent)) {
6772
found = true;
6873
results++;
6974
} else if (optionContent.contains(" ") || optionContent.indexOf("[") == 0) {
7075
String[] parts = optionContent.replaceAll("\\[|\\]", "").split(" ");
7176
for (String part : parts) {
72-
if (regex.test(part)) {
77+
if (performSearch && regex.test(part)) {
7378
found = true;
7479
results++;
7580
}

0 commit comments

Comments
 (0)