Skip to content

Commit 30c4048

Browse files
committed
handle empty operands in extended search
1 parent 8c2bad0 commit 30c4048

File tree

3 files changed

+105
-53
lines changed

3 files changed

+105
-53
lines changed

src/main/java/de/sub/goobi/persistence/managers/PropertyMysqlHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ static void saveProperty(GoobiProperty property) throws SQLException {
265265
}
266266

267267
public static List<String> getPropertyTitles(PropertyOwnerType propertyType) throws SQLException {
268-
String sql = "select distinct property_name from properties where object_type = ? order by property_name";
268+
String sql = "select distinct property_name from properties where object_type = ? and property_name is not null order by property_name";
269269
Connection connection = null;
270270
try {
271271
connection = MySQLHelper.getInstance().getConnection();

src/main/java/org/goobi/beans/Process.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1808,7 +1808,7 @@ public boolean changeProcessTitle(String newTitle) {
18081808
}
18091809
}
18101810
}
1811-
} catch (IOException | SwapException |NullPointerException e) {
1811+
} catch (IOException | SwapException | NullPointerException e) {
18121812
log.trace("could not rename folder", e);
18131813
}
18141814

src/main/java/org/goobi/production/search/api/ExtendedSearchRow.java

Lines changed: 103 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -66,60 +66,112 @@ public class ExtendedSearchRow implements Serializable {
6666
private String institutionName;
6767

6868
public String createSearchString() {
69-
String value = "";
70-
if (fieldName.equals("PROCESSTITLE") && !fieldValue.isEmpty()) {
71-
value = "\"" + this.fieldOperand + this.fieldValue + "\" ";
72-
} else if (fieldName.equals("PROCESSID") && !fieldValue.isEmpty()) {
73-
value = "\"" + this.fieldOperand + FilterString.ID + this.fieldValue + "\" ";
74-
}
75-
76-
else if (fieldName.equals("BATCH") && !fieldValue.isEmpty()) {
77-
value = "\"" + this.fieldOperand + FilterString.BATCH + this.fieldValue + "\" ";
78-
}
79-
80-
else if (fieldName.equals("PROJECT") && !this.projectName.equals(Helper.getTranslation("notSelected"))) {
81-
value = "\"" + this.fieldOperand + FilterString.PROJECT + this.projectName + "\" ";
82-
83-
} else if (fieldName.equals("METADATA") && !this.metadataName.equals(Helper.getTranslation("notSelected")) && !metadataValue.isEmpty()) {
84-
value = "\"" + this.fieldOperand + FilterString.METADATA + metadataName + ":" + metadataValue + "\" ";
85-
86-
}
87-
88-
else if (fieldName.equals("PROCESSPROPERTY") && !processPropertyName.equals(Helper.getTranslation("notSelected"))
69+
StringBuilder value = new StringBuilder();
70+
71+
if ("PROCESSTITLE".equals(fieldName) && !fieldValue.isEmpty()) {
72+
value.append("\"");
73+
if (StringUtils.isNotBlank(fieldOperand)) {
74+
value.append(fieldOperand);
75+
}
76+
value.append(fieldValue);
77+
value.append("\"");
78+
} else if ("PROCESSID".equals(fieldName) && !fieldValue.isEmpty()) {
79+
value.append("\"");
80+
if (StringUtils.isNotBlank(fieldOperand)) {
81+
value.append(fieldOperand);
82+
}
83+
value.append(FilterString.ID);
84+
value.append(fieldValue);
85+
value.append("\"");
86+
} else if ("BATCH".equals(fieldName) && !fieldValue.isEmpty()) {
87+
value.append("\"");
88+
if (StringUtils.isNotBlank(fieldOperand)) {
89+
value.append(fieldOperand);
90+
}
91+
value.append(FilterString.BATCH);
92+
value.append(fieldValue);
93+
value.append("\"");
94+
} else if ("PROJECT".equals(fieldName) && !this.projectName.equals(Helper.getTranslation("notSelected"))) {
95+
value.append("\"");
96+
if (StringUtils.isNotBlank(fieldOperand)) {
97+
value.append(fieldOperand);
98+
}
99+
value.append(FilterString.PROJECT);
100+
value.append(fieldValue);
101+
value.append("\"");
102+
} else if ("METADATA".equals(fieldName) && !this.metadataName.equals(Helper.getTranslation("notSelected")) && !metadataValue.isEmpty()) {
103+
value.append("\"");
104+
if (StringUtils.isNotBlank(fieldOperand)) {
105+
value.append(fieldOperand);
106+
}
107+
value.append(FilterString.METADATA);
108+
value.append(metadataName);
109+
value.append(":");
110+
value.append(fieldValue);
111+
value.append("\"");
112+
} else if ("PROCESSPROPERTY".equals(fieldName) && !processPropertyName.equals(Helper.getTranslation("notSelected"))
89113
&& !processPropertyValue.isEmpty()) {
90-
value = "\"" + this.fieldOperand + FilterString.PROCESSPROPERTY + this.processPropertyName + ":" + processPropertyValue + "\" ";
91-
}
92-
93-
else if (fieldName.equals("WORKPIECE") && !masterpiecePropertyName.equals(Helper.getTranslation("notSelected"))
94-
&& !masterpiecePropertyValue.isEmpty()) {
95-
value = "\"" + this.fieldOperand + FilterString.WORKPIECE + this.masterpiecePropertyName + ":" + masterpiecePropertyValue + "\" ";
96-
}
97-
98-
else if (fieldName.equals("TEMPLATE") && !templatePropertyName.equals(Helper.getTranslation("notSelected"))
99-
&& !templatePropertyValue.isEmpty()) {
100-
value = "\"" + this.fieldOperand + FilterString.TEMPLATE + this.templatePropertyName + ":" + templatePropertyValue + "\" ";
101-
}
102-
103-
else if (fieldName.equals("STEP") && !stepStatus.equals(Helper.getTranslation("notSelected")) && !stepName.isEmpty()
114+
value.append("\"");
115+
if (StringUtils.isNotBlank(fieldOperand)) {
116+
value.append(fieldOperand);
117+
}
118+
value.append(FilterString.PROCESSPROPERTY);
119+
value.append(processPropertyName);
120+
value.append(":");
121+
value.append(processPropertyValue);
122+
value.append("\"");
123+
} else if ("STEP".equals(fieldName) && !stepStatus.equals(Helper.getTranslation("notSelected")) && !stepName.isEmpty()
104124
&& !stepName.equals(Helper.getTranslation("notSelected"))) {
105-
value = "\"" + this.fieldOperand + this.stepStatus + ":" + this.stepName + "\" ";
125+
value.append("\"");
126+
if (StringUtils.isNotBlank(fieldOperand)) {
127+
value.append(fieldOperand);
128+
}
129+
value.append(stepStatus);
130+
value.append(":");
131+
value.append(stepName);
132+
value.append("\"");
133+
} else if ("JOURNAL".equals(fieldName) && !fieldValue.isEmpty()) {
134+
value.append("\"");
135+
if (StringUtils.isNotBlank(fieldOperand)) {
136+
value.append(fieldOperand);
137+
}
138+
value.append(FilterString.JOURNAL);
139+
value.append(fieldValue);
140+
value.append("\"");
141+
} else if ("INSTITUTION".equals(fieldName) && StringUtils.isNotBlank(institutionName)) {
142+
value.append("\"");
143+
if (StringUtils.isNotBlank(fieldOperand)) {
144+
value.append(fieldOperand);
145+
}
146+
value.append(FilterString.INSTITUTION);
147+
value.append(institutionName);
148+
value.append("\"");
149+
} else if ("PROCESSDATE".equals(fieldName) && !fieldValue.isEmpty()) {
150+
value.append("\"");
151+
value.append(FilterString.PROCESS_DATE);
152+
if (StringUtils.isNotBlank(fieldOperand)) {
153+
value.append(fieldOperand);
154+
}
155+
value.append(fieldValue);
156+
value.append("\"");
157+
} else if ("STEPSTARTDATE".equals(fieldName) && !fieldValue.isEmpty()) {
158+
value.append("\"");
159+
value.append(FilterString.STEP_START_DATE);
160+
if (StringUtils.isNotBlank(fieldOperand)) {
161+
value.append(fieldOperand);
162+
}
163+
value.append(fieldValue);
164+
value.append("\"");
165+
} else if ("STEPFINISHDATE".equals(fieldName) && !fieldValue.isEmpty()) {
166+
value.append("\"");
167+
value.append(FilterString.STEP_FINISH_DATE);
168+
if (StringUtils.isNotBlank(fieldOperand)) {
169+
value.append(fieldOperand);
170+
}
171+
value.append(fieldValue);
172+
value.append("\"");
106173
}
107-
108-
else if (fieldName.equals("JOURNAL") && !fieldValue.isEmpty()) {
109-
value = "\"" + this.fieldOperand + FilterString.JOURNAL + fieldValue + "\" ";
110-
}
111-
112-
else if (fieldName.equals("INSTITUTION") && StringUtils.isNotBlank(institutionName)) {
113-
value = "\"" + this.fieldOperand + FilterString.INSTITUTION + ":" + institutionName + "\" ";
114-
} else if (fieldName.equals("PROCESSDATE") && !fieldValue.isEmpty()) {
115-
value = "\"" + FilterString.PROCESS_DATE + this.fieldOperand + fieldValue + "\" ";
116-
} else if (fieldName.equals("STEPSTARTDATE") && !fieldValue.isEmpty()) {
117-
value = "\"" + FilterString.STEP_START_DATE + this.fieldOperand + fieldValue + "\" ";
118-
} else if (fieldName.equals("STEPFINISHDATE") && !fieldValue.isEmpty()) {
119-
value = "\"" + FilterString.STEP_FINISH_DATE + this.fieldOperand + fieldValue + "\" ";
120-
}
121-
122-
return value;
174+
return value.toString();
123175
}
124176

125177
}

0 commit comments

Comments
 (0)