Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -55,33 +55,41 @@ private String buildWorkflowQuery(ProcessesFilter processesFilter, List<String>
String q = processesFilter.getQuery();
Boolean enabled = processesFilter.getEnabled();
Boolean manager = processesFilter.getManager();
boolean managerProcess = memberships.stream().anyMatch(m -> m.endsWith("platform/processes"));
String query = " ( workFlow.title like '%" + q + "%' OR workFlow.description like '%" + q + "%' OR workFlow.summary like '%" + q + "%' )";
String queryString = "SELECT DISTINCT workFlow FROM WorkFlow workFlow";
if(memberships != null) {
queryString = queryString + " LEFT JOIN workFlow.manager manager "
+ " LEFT JOIN workFlow.participator participator ";
}
if(StringUtils.isNotEmpty(q) || memberships != null || enabled != null){
queryString = queryString + " WHERE";
if (StringUtils.isNotEmpty(q)){
queryString = queryString + " ( workFlow.title like '%" + q + "%'";
queryString = queryString + " OR workFlow.description like '%" + q + "%'";
queryString = queryString + " OR workFlow.summary like '%" + q + "%' )";
queryString = queryString + " AND";
}
if ( enabled != null){
queryString = queryString + " workFlow.enabled = " + enabled;
queryString = queryString + " AND";
if (enabled != null || manager == true || managerProcess == false) {
if(memberships != null) {
if ( Boolean.FALSE.equals(manager)) {
queryString = queryString + " LEFT JOIN workFlow.manager manager";
}
queryString = queryString + " LEFT JOIN workFlow.participator participator";
}
if ( memberships != null){
queryString = queryString + " ( manager IN ('"+String.join("','", getMembersShipGroup(memberships))+"') ";
if ( Boolean.FALSE.equals(manager)){
queryString = queryString + " OR participator IN ('"+String.join("','", memberships)+"')) ";
} else {
queryString = queryString + " AND participator IN ('"+String.join("','", memberships)+"')) ";
if(StringUtils.isNotEmpty(q) || memberships != null || enabled != null){
queryString = queryString + " WHERE";
if (StringUtils.isNotEmpty(q)){
queryString = queryString + query;
queryString = queryString + " AND";
}
if ( enabled != null){
queryString = queryString + " workFlow.enabled = " + enabled;
queryString = queryString + " AND";
}
if ( memberships != null){
if ( Boolean.FALSE.equals(manager)){
queryString = queryString + " ( manager IN ('"+String.join("','", getMembersShipGroup(memberships))+"') ";
queryString = queryString + " OR participator IN ('"+String.join("','", memberships)+"')) ";
} else {
queryString = queryString + " participator IN ('"+String.join("','", memberships)+"') ";
}
}
if (queryString.endsWith(" AND")) {
queryString = queryString.substring(0, queryString.length() - 4);
}
}
if (queryString.endsWith(" AND")) {
queryString = queryString.substring(0, queryString.length() - 4);
} else {
if (StringUtils.isNotEmpty(q)) {
queryString = queryString + " WHERE" + query;
}
}

Expand All @@ -90,7 +98,8 @@ private String buildWorkflowQuery(ProcessesFilter processesFilter, List<String>

private List<String> getMembersShipGroup(List<String> memberships) {
return memberships.stream()
.map(s -> (!s.startsWith("manager:/") && !s.startsWith("member:/")) ? s : s.replace("manager:","").replace("member:","") )
.map(s -> (!s.startsWith("manager:/") && !s.startsWith("member:/") && !s.startsWith("*:/"))
? s : s.replace("manager:","").replace("member:","").replace("*:",""))
.collect(Collectors.toList());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
<template #activator="{ on, attrs }">
<v-btn
:class="isMobile ? 'three-dots mr-n2 mt-3' : 'three-dots mt-1'"
dark
icon
v-bind="attrs"
v-on="!isMobileMenu && on"
Expand Down