From: elgekko Date: Tue, 23 May 2023 09:00:33 +0000 (+0200) Subject: Add project and partner name to project selector/filter X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=4c3c3093ab8658a05502105bedb2bcdd7a9b0cf4;p=sly-crm.git Add project and partner name to project selector/filter --- diff --git a/lis-ui/src/main/java/hu/user/lis/ui/converter/ProjectToInfoConverter.java b/lis-ui/src/main/java/hu/user/lis/ui/converter/ProjectToInfoConverter.java new file mode 100644 index 0000000..51cf2c9 --- /dev/null +++ b/lis-ui/src/main/java/hu/user/lis/ui/converter/ProjectToInfoConverter.java @@ -0,0 +1,19 @@ +package hu.user.lis.ui.converter; + +import hu.user.lis.db.Project; +import org.zkoss.bind.BindContext; +import org.zkoss.bind.Converter; +import org.zkoss.zul.Bandbox; + +public class ProjectToInfoConverter implements Converter { + + @Override + public String coerceToUi(Project project, Bandbox bandbox, BindContext bindContext) { + return project == null ? null : String.format("%s | %s | %s", project.getHumanId(), project.getName(), project.getPartner().getName()); + } + + @Override + public Project coerceToBean(String s, Bandbox bandbox, BindContext bindContext) { + return null; + } +} \ No newline at end of file diff --git a/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectSelectorDataModel.java b/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectSelectorDataModel.java index 807334d..48c4786 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectSelectorDataModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectSelectorDataModel.java @@ -23,12 +23,25 @@ public class ProjectSelectorDataModel extends CachedDataModel { @Autowired ProjectService projectService; private String partialName; + private String partialPartnerName; + private String partialHumanId; private boolean filter(Project project) { - if (StringUtils.isBlank(partialName)) { + if (StringUtils.isBlank(partialHumanId) && StringUtils.isBlank(partialName) && StringUtils.isBlank(partialPartnerName)) { return true; - } else { - if (project.getHumanId().toLowerCase().startsWith(partialName.toLowerCase())) { + } + if (StringUtils.isNotBlank(partialHumanId)) { + if (project.getHumanId().toLowerCase().contains(partialHumanId.toLowerCase())) { + return true; + } + } + if (StringUtils.isNotBlank(partialName)) { + if (project.getName().toLowerCase().contains(partialName.toLowerCase())) { + return true; + } + } + if (StringUtils.isNotBlank(partialPartnerName)) { + if (project.getPartner().getName().toLowerCase().contains(partialPartnerName.toLowerCase())) { return true; } } @@ -54,10 +67,21 @@ public class ProjectSelectorDataModel extends CachedDataModel { return result; } - public void search(String partialName) { - log.info("Searching project using filter {}", partialName); + public void search(String partialName, String partialPartnerName, String partialHumanId) { + log.info("Searching projects using filter {} {} {}", partialHumanId, partialName, partialHumanId); + this.partialPartnerName = partialPartnerName; + this.partialHumanId = partialHumanId; this.partialName = partialName; super.reset(); BindUtils.postNotifyChange(null, null, this, "*"); } + + public void getLimited() { + log.info("Searching projects using limit {}", SEARCH_LIMIT); + this.partialPartnerName = null; + this.partialHumanId = null; + this.partialName = null; + super.reset(); + BindUtils.postNotifyChange(null, null, this, "*"); + } } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java index 294b83f..3e9bdb7 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java @@ -50,14 +50,14 @@ public class ServiceRecordEditorModel extends AbstractValidator { public void onProjectBandChanging(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) { InputEvent event = (InputEvent) ctx.getTriggerEvent(); log.info("onProjectBandChanging: {}", event.getValue()); - projectSelectorDataModel.search(event.getValue()); + projectSelectorDataModel.search(event.getValue(), null, null); } @Command public void onProjectBandOpen(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) { OpenEvent event = (OpenEvent) ctx.getTriggerEvent(); log.info("onProjectBandOpen: {}", event.isOpen()); - projectSelectorDataModel.search(null); + projectSelectorDataModel.getLimited(); } @Command diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/ServiceRecordsViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/ServiceRecordsViewModel.java index 06cefa5..10f9303 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/ServiceRecordsViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/ServiceRecordsViewModel.java @@ -64,14 +64,14 @@ public class ServiceRecordsViewModel implements EventListener { public void onProjectFilterBandChanging(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) { InputEvent event = (InputEvent) ctx.getTriggerEvent(); log.info("onProjectFilterBandChanging: {}", event.getValue()); - projectSelectorDataModel.search(event.getValue()); + projectSelectorDataModel.search(event.getValue(), null, null); } @Command public void onProjectFilterBandOpen(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) { OpenEvent event = (OpenEvent) ctx.getTriggerEvent(); log.info("onProjectFilterBandOpen: {}", event.isOpen()); - projectSelectorDataModel.search(null); + projectSelectorDataModel.getLimited(); } @Command diff --git a/lis-ui/src/main/resources/web/project-filter.zul b/lis-ui/src/main/resources/web/project-filter.zul index ae38c72..7be201b 100644 --- a/lis-ui/src/main/resources/web/project-filter.zul +++ b/lis-ui/src/main/resources/web/project-filter.zul @@ -1,8 +1,8 @@ + forward="onOK=submit.onClick, onCancel=cancel.onClick" width="400px"> - + + + diff --git a/lis-ui/src/main/resources/web/project-selector.zul b/lis-ui/src/main/resources/web/project-selector.zul index 171f46e..24d1cc9 100644 --- a/lis-ui/src/main/resources/web/project-selector.zul +++ b/lis-ui/src/main/resources/web/project-selector.zul @@ -1,7 +1,7 @@ - - + @@ -30,18 +30,22 @@ } ]]> - - + - + + + diff --git a/lis-ui/src/main/resources/web/service-record-editor.zul b/lis-ui/src/main/resources/web/service-record-editor.zul index a51c2e7..7cc8c8e 100644 --- a/lis-ui/src/main/resources/web/service-record-editor.zul +++ b/lis-ui/src/main/resources/web/service-record-editor.zul @@ -1,7 +1,7 @@ - @@ -12,13 +12,13 @@ - - + + + + - -