From: Vásáry Dániel Date: Mon, 27 Nov 2023 20:58:55 +0000 (+0100) Subject: Invoice view functions X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=4176cb0c9f3a9af8c953089601ed862739c1f343;p=sly-crm.git Invoice view functions --- diff --git a/lis-ui/src/main/java/hu/user/lis/ui/Constants.java b/lis-ui/src/main/java/hu/user/lis/ui/Constants.java index 5587187..9f7c54a 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/Constants.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/Constants.java @@ -9,10 +9,12 @@ public class Constants { public static final String PROJECT_EDITOR_QUEUE = "PROJECT_EDITOR_QUEUE"; public static final String PROCESS_EVENT_QUEUE = "PROJECT_EDITOR_QUEUE"; public static final String SHOW_PROJECT_EDITOR = "SHOW_PROJECT_EDITOR"; + public static final String SHOW_INVOICE_PAYMENT = "SHOW_INVOICE_PAYMENT"; public static final String SHOW_PROJECTS_LIST = "SHOW_PROJECTS_LIST"; public static final String SHOW_SERVICE_RECORDS_LIST = "SHOW_SERVICE_RECORDS_LIST"; public static final String SET_SERVICE_RECORDS_LIST_DATA = "SET_SERVICE_RECORDS_LIST_DATA"; public static final String SET_PROJECT_EDITOR_DATA = "SET_PROJECT_EDITOR_DATA"; + public static final String SET_INVOICE_PAYMENT_DATA = "SET_INVOICE_PAYMENT_DATA"; public static final String SET_PROJECTS_LIST_DATA = "SET_PROJECTS_LIST_DATA"; public static final String REFRESH_INVOICE_IMPORT_TASKS = "REFRESH_INVOICE_IMPORT_TASKS"; public static final String NAV_PARTNERS = "/partners"; diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectAttachEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectAttachEditorModel.java new file mode 100644 index 0000000..a6286fc --- /dev/null +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectAttachEditorModel.java @@ -0,0 +1,41 @@ +package hu.user.lis.ui.editor; + +import hu.user.lis.ui.view.ProjectsViewModel; +import lombok.Getter; +import lombok.extern.log4j.Log4j2; +import org.zkoss.bind.annotation.BindingParam; +import org.zkoss.bind.annotation.Command; +import org.zkoss.bind.annotation.Init; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Window; + +import java.util.Objects; + + +@Getter +@Log4j2 +public class ProjectAttachEditorModel extends ProjectsViewModel { + + @Init + @Override + public void init() { + super.init(); + } + + @Override + protected String getNavigation() { + return null; + } + + @Command + public void onCloseWindow(@BindingParam("target") Window target, @BindingParam("save") boolean save) { + if (save) { + if (Objects.nonNull(getSelectedEntity())) { + Events.postEvent(new Event("onClose", target, getSelectedEntity())); + } + } else { + Events.postEvent(new Event("onClose", target, null)); + } + } +} diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/common/Editors.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/common/Editors.java index 0803e22..f904d58 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/common/Editors.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/common/Editors.java @@ -14,9 +14,11 @@ public class Editors { public static final String TREASURY = "~./editor/treasury-editor.zul"; public static final String ASSOCIATE = "~./editor/associate-editor.zul"; public static final String PARTNER = "~./editor/partner-editor.zul"; + public static final String PROJECT_ATTACH = "~./editor/project-attach.zul"; public static final String IMPORT_INVOICE_ASSIGN = "~./editor/import-invoice-assign-editor.zul"; public static final String IMPORT_INVOICE_APPROVE = "~./editor/import-invoice-approve-editor.zul"; public static final String PROJECT = "~./editor/project-editor.zul"; + public static final String INVOICE_PAYMENT = "~./invoice-payment.zul"; public static final String POPUP_EDITOR = "~./editor/popup-editor.zul"; public static void doEdit(String page, E entity, EditCompleted editCompleted) { diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/common/EntityEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/common/EntityEditorModel.java index ed8b666..417fc2c 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/common/EntityEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/common/EntityEditorModel.java @@ -80,7 +80,7 @@ public abstract class EntityEditorModel extends Abstract eventBus.registerForBinding(this); origDocument = (T) Executions.getCurrent().getArg().get("origDocument"); formDocument = (T) Executions.getCurrent().getArg().get("formDocument"); - if (Objects.nonNull(getFormValidator())) { + if (Objects.nonNull(getFormValidator()) && Objects.nonNull(getFormDocument())) { getFormValidator().validate(getFormDocument()); } } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/event/EventBus.java b/lis-ui/src/main/java/hu/user/lis/ui/event/EventBus.java index 055c381..5408ffb 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/event/EventBus.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/event/EventBus.java @@ -70,6 +70,10 @@ public class EventBus { getQueue().publish(new Event(Constants.SHOW_PROJECT_EDITOR, null, data)); } + public void showInvoicePayment(Object data) { + getQueue().publish(new Event(Constants.SHOW_INVOICE_PAYMENT, null, data)); + } + public void showServiceRecordsList(Object data) { getQueue().publish(new Event(Constants.SHOW_SERVICE_RECORDS_LIST, null, data)); } @@ -78,8 +82,12 @@ public class EventBus { getQueue().publish(new Event(Constants.SET_SERVICE_RECORDS_LIST_DATA, null, data)); } - public void setProjectEditorData(Long data) { - getQueue().publish(new Event(Constants.SET_PROJECT_EDITOR_DATA, null, data)); + public void setProjectEditorData(Long id) { + getQueue().publish(new Event(Constants.SET_PROJECT_EDITOR_DATA, null, id)); + } + + public void setInvoicePaymentData(Long data) { + getQueue().publish(InvoicePaymentData.builder().id(data).build()); } public void setProjectsListData(Object data) { diff --git a/lis-ui/src/main/java/hu/user/lis/ui/event/InvoicePaymentData.java b/lis-ui/src/main/java/hu/user/lis/ui/event/InvoicePaymentData.java new file mode 100644 index 0000000..8ab058c --- /dev/null +++ b/lis-ui/src/main/java/hu/user/lis/ui/event/InvoicePaymentData.java @@ -0,0 +1,20 @@ +package hu.user.lis.ui.event; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; +import org.zkoss.zk.ui.event.Event; + +import static hu.user.lis.ui.Constants.SET_INVOICE_PAYMENT_DATA; + +@Getter +@Setter +@Builder +public class InvoicePaymentData extends Event { + private final Long id; + + public InvoicePaymentData(Long id) { + super(SET_INVOICE_PAYMENT_DATA); + this.id = id; + } +} diff --git a/lis-ui/src/main/java/hu/user/lis/ui/event/ProjectEditorData.java b/lis-ui/src/main/java/hu/user/lis/ui/event/ProjectEditorData.java new file mode 100644 index 0000000..261dc0a --- /dev/null +++ b/lis-ui/src/main/java/hu/user/lis/ui/event/ProjectEditorData.java @@ -0,0 +1,20 @@ +package hu.user.lis.ui.event; + +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; +import org.zkoss.zk.ui.event.Event; + +import static hu.user.lis.ui.Constants.SET_PROJECT_EDITOR_DATA; + +@Getter +@Setter +@Builder +public class ProjectEditorData extends Event { + private final Long id; + + public ProjectEditorData(Long id) { + super(SET_PROJECT_EDITOR_DATA); + this.id = id; + } +} diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/ApproveInvoicesViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/ApproveInvoicesViewModel.java index ebe3e19..d70eb80 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/ApproveInvoicesViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/ApproveInvoicesViewModel.java @@ -72,6 +72,7 @@ public class ApproveInvoicesViewModel extends EntityViewModel implem @Command @NotifyChange("approveInvoicesDataModel") public void onRefresh() { + approveInvoicesDataModel.clearSelection(); setSelectedEntity(null); approveInvoicesDataModel.refresh(); BindUtils.postNotifyChange(this, "selectedEntity"); diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/AssignInvoicesViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/AssignInvoicesViewModel.java index ec73c91..73aab0b 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/AssignInvoicesViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/AssignInvoicesViewModel.java @@ -71,6 +71,7 @@ public class AssignInvoicesViewModel extends EntityViewModel impleme @Command public void onRefresh() { + assignInvoicesDataModel.clearSelection(); setSelectedEntity(null); assignInvoicesDataModel.refresh(); BindUtils.postNotifyChange(this, "selectedEntity"); diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/AssociatesViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/AssociatesViewModel.java index 240fef7..8163e59 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/AssociatesViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/AssociatesViewModel.java @@ -9,6 +9,7 @@ import hu.user.lis.ui.editor.common.Editors; import hu.user.lis.ui.view.common.FilterActiveViewModel; import lombok.Getter; import lombok.extern.log4j.Log4j2; +import org.zkoss.bind.BindUtils; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Init; import org.zkoss.zk.ui.select.annotation.WireVariable; @@ -53,6 +54,7 @@ public class AssociatesViewModel extends FilterActiveViewModel { } else { associatesDataModel.search(isFilterShowActive(), isFilterShowInActive()); } + BindUtils.postNotifyChange(this, "selectedEntity"); } @Command diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/ImportInvoicesSuspendedViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/ImportInvoicesSuspendedViewModel.java index 942f64a..4c76dbd 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/ImportInvoicesSuspendedViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/ImportInvoicesSuspendedViewModel.java @@ -16,6 +16,7 @@ import hu.user.lis.ui.view.common.EntityViewModel; import hu.user.lis.workflow.invoice.service.WorkflowManagerService; import lombok.Getter; import lombok.extern.log4j.Log4j2; +import org.zkoss.bind.BindUtils; import org.zkoss.bind.PropertyChangeEvent; import org.zkoss.bind.annotation.*; import org.zkoss.zk.ui.Component; @@ -101,7 +102,9 @@ public class ImportInvoicesSuspendedViewModel extends EntityViewModel i @Command public void refresh() { invoicesDataModel.clearSelection(); + setSelectedEntity(null); invoicesDataModel.search(invoiceFilter); + BindUtils.postNotifyChange(this, "selectedEntity"); } @Command diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/IndexViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/IndexViewModel.java index 2227fc5..245a89f 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/IndexViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/IndexViewModel.java @@ -1,5 +1,6 @@ package hu.user.lis.ui.view; +import com.google.common.collect.ImmutableMap; import hu.user.lis.ui.Constants; import hu.user.lis.ui.auth.CurrentProfile; import hu.user.lis.ui.editor.common.Editors; @@ -58,32 +59,32 @@ public class IndexViewModel implements EventListener { @WireVariable private EventBus eventBus; - @WireVariable private BuildProperties buildProperties; - @WireVariable private SessionSettings sessionSettings; - @WireVariable private CurrentProfile currentProfile; - @WireVariable private WorkflowManagerService workflowManagerService; - private String searchPhrase; - private String page; - + private final Map specialRoutes = ImmutableMap.of( + Constants.NAV_PROJECTS, this::showProjectEditor, + Constants.NAV_INVOICE_PAYMENT, this::showInvoicePayment + ); private String importInvoiceMenuClassName; - private String assignInvoiceMenuClassName; - private String approveInvoiceMenuClassName; - private String assignInvoicesLabel; - private String approveInvoicesLabel; + private final Map eventHandlers = ImmutableMap.of( + Constants.REFRESH_INVOICE_IMPORT_TASKS, this::updateImportInvoiceMenus, + Constants.SHOW_SERVICE_RECORDS_LIST, this::showServiceRecords, + Constants.SHOW_PROJECT_EDITOR, this::showProjectEditor, + Constants.SHOW_INVOICE_PAYMENT, this::showInvoicePayment, + Constants.SHOW_PROJECTS_LIST, this::showProjects + ); @Init public void init() { @@ -92,21 +93,31 @@ public class IndexViewModel implements EventListener { String path = sessionSettings.getCurrentPath(); log.info("2. Current session is {} path {}", sessionSettings.getSessionId(), path); route(path); - updateImportInvoiceMenus(); + updateImportInvoiceMenus(null); } private void route(String path) { - if (path.startsWith(Constants.NAV_PROJECTS + "/") && path.split("/").length > 2) { - String id = path.split("/")[2]; - selectPage(Editors.PROJECT); - eventBus.setProjectEditorData(Long.parseLong(id)); + if (Constants.NAV_ROOT.equals(path)) + path = Constants.NAV_PARTNERS; + + String[] pathTokens = path.split("/"); + if (pathTokens.length > 2) { + Long id = Long.parseLong(pathTokens[2]); + specialRoutes.get(path).route(id); } else { - if (Constants.NAV_ROOT.equals(path)) - path = Constants.NAV_PARTNERS; setPage("~." + path + ".zul"); } } + public void showProjectEditor(Long id) { + selectPage(Editors.PROJECT); + eventBus.setProjectEditorData(id); + } + + public void showInvoicePayment(Long id) { + selectPage(Editors.INVOICE_PAYMENT); + eventBus.setInvoicePaymentData(id); + } @Command public void selectPage(@BindingParam("page") String page) { @@ -116,26 +127,33 @@ public class IndexViewModel implements EventListener { @Override public void onEvent(Event event) { - if (Constants.SHOW_SERVICE_RECORDS_LIST.equals(event.getName())) { - selectPage(SERVICE_RECORDS_LIST); - eventBus.setServiceRecordsListData(event.getData()); - } - if (Constants.SHOW_PROJECT_EDITOR.equals(event.getName())) { - selectPage(Editors.PROJECT); - eventBus.setProjectEditorData((Long) event.getData()); - } - if (Constants.SHOW_PROJECTS_LIST.equals(event.getName())) { - selectPage(PROJECTS_LIST); - if (event.getData() != null) { - eventBus.setProjectsListData(event.getData()); - } + if (eventHandlers.containsKey(event.getName())) { + eventHandlers.get(event.getName()).handle(event); } - if (Constants.REFRESH_INVOICE_IMPORT_TASKS.equals(event.getName())) { - updateImportInvoiceMenus(); + } + + private void showServiceRecords(Event event) { + selectPage(SERVICE_RECORDS_LIST); + eventBus.setServiceRecordsListData(event.getData()); + } + + private void showProjectEditor(Event event) { + showProjectEditor((Long) event.getData()); + } + + private void showInvoicePayment(Event event) { + selectPage(Editors.INVOICE_PAYMENT); + eventBus.setInvoicePaymentData((Long) event.getData()); + } + + private void showProjects(Event event) { + selectPage(PROJECTS_LIST); + if (event.getData() != null) { + eventBus.setProjectsListData(event.getData()); } } - private void updateImportInvoiceMenus() { + private void updateImportInvoiceMenus(Event event) { long assignInvoiceTaskCount = workflowManagerService.countAssignInvoiceTasks(); long approveInvoiceTaskCount = workflowManagerService.countApproveInvoiceTasks(); if (assignInvoiceTaskCount > 0) { @@ -196,5 +214,4 @@ public class IndexViewModel implements EventListener { }); } - } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicePaymentViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicePaymentViewModel.java index fb882dd..be29ec0 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicePaymentViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicePaymentViewModel.java @@ -10,6 +10,7 @@ import hu.user.lis.ui.data.PaymentsDataModel; import hu.user.lis.ui.data.common.CachedSpringDataModel; import hu.user.lis.ui.editor.selector.EntitySelectorRouter; import hu.user.lis.ui.event.EventBus; +import hu.user.lis.ui.event.InvoicePaymentData; import hu.user.lis.ui.view.common.EntityViewModel; import lombok.Getter; import lombok.Setter; @@ -19,6 +20,8 @@ import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Init; import org.zkoss.bind.annotation.NotifyChange; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.select.annotation.WireVariable; import org.zkoss.zk.ui.util.Notification; import org.zkoss.zul.ListModelList; @@ -27,8 +30,10 @@ import java.util.List; import java.util.Objects; import java.util.Optional; +import static hu.user.lis.ui.Constants.SET_INVOICE_PAYMENT_DATA; + @Log4j2 -public class InvoicePaymentViewModel extends EntityViewModel { +public class InvoicePaymentViewModel extends EntityViewModel implements EventListener { @Getter private final ListModelList partners = new ListModelList<>(); @@ -80,6 +85,7 @@ public class InvoicePaymentViewModel extends EntityViewModel { @Override public void init() { super.init(); + eventBus.register(this); setReadonlyForm(true); // addColumns(ImmutableMap.of( // "partner.name", ASCENDING, @@ -179,6 +185,23 @@ public class InvoicePaymentViewModel extends EntityViewModel { getFormDocument().setPaid(newPaymentDisabled); invoiceRepository.save(getFormDocument()); } + } + + @Override + public void onEvent(Event event) throws Exception { + if (SET_INVOICE_PAYMENT_DATA.equals(event.getName())) { + Optional opInvoice = invoiceRepository.findById(((InvoicePaymentData) event).getId()); + opInvoice.ifPresent(invoice -> { + this.showEditor(invoice); + invoiceNumber = invoice.getHumanId(); + filterPartner = null; + setPartnerRequired(false); + BindUtils.postNotifyChange(this, "partnerRequired"); + BindUtils.postNotifyChange(this, "invoiceNumber"); + }); + } } + + } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicesViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicesViewModel.java index 816d6f0..ee1a8b2 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicesViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicesViewModel.java @@ -92,7 +92,9 @@ public class InvoicesViewModel extends EntityViewModel implements Event @Command public void refresh() { invoicesDataModel.clearSelection(); + setSelectedEntity(null); invoicesDataModel.search(invoiceFilter); + BindUtils.postNotifyChange(this, "selectedEntity"); } @Command @@ -113,7 +115,6 @@ public class InvoicesViewModel extends EntityViewModel implements Event // (this.equals(propertyEvent.getBase()) && propertyEvent.getProperty().startsWith("invoiceFilter"))) if (invoiceFilter.equals(propertyEvent.getBase())) { log.info("Refresh needed, {} changed", propertyEvent.getProperty()); - refresh(); } } @@ -153,4 +154,20 @@ public class InvoicesViewModel extends EntityViewModel implements Event }); } + @Command + public void onChangeProject() { + Editors.doEdit(Editors.PROJECT_ATTACH, getSelectedEntity().getProject(), null, modifiedEntity -> { + if (modifiedEntity != null) { + getSelectedEntity().setProject(modifiedEntity); + invoiceDataModel.save(getSelectedEntity()); + refresh(); + } + }); + + } + + @Command + public void onInvoicePayment() { + eventBus.showInvoicePayment(getSelectedEntity().getId()); + } } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/PartnersViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/PartnersViewModel.java index de0a98f..97ca997 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/PartnersViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/PartnersViewModel.java @@ -9,6 +9,7 @@ import hu.user.lis.ui.editor.common.Editors; import hu.user.lis.ui.view.common.FilterActiveViewModel; import lombok.Getter; import lombok.extern.log4j.Log4j2; +import org.zkoss.bind.BindUtils; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Init; import org.zkoss.zk.ui.select.annotation.WireVariable; @@ -46,11 +47,13 @@ public class PartnersViewModel extends FilterActiveViewModel { protected void refresh() { partnersDataModel.clearSelection(); + setSelectedEntity(null); if (isFilterShowBoth()) { partnersDataModel.search(true, true); } else { partnersDataModel.search(isFilterShowActive(), isFilterShowInActive()); } + BindUtils.postNotifyChange(this, "selectedEntity"); } @Command diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/ProjectsViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/ProjectsViewModel.java index 7f5f90d..7ae3f6f 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/ProjectsViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/ProjectsViewModel.java @@ -9,6 +9,7 @@ import hu.user.lis.ui.event.EventBus; import hu.user.lis.ui.view.common.FilterActiveViewModel; import lombok.Getter; import lombok.extern.log4j.Log4j2; +import org.zkoss.bind.BindUtils; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Destroy; import org.zkoss.bind.annotation.Init; @@ -65,6 +66,7 @@ public class ProjectsViewModel extends FilterActiveViewModel implements } else { projectsDataModel.search(isFilterShowActive(), isFilterShowInActive()); } + BindUtils.postNotifyChange(this, "selectedEntity"); } @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 87db3db..82dd620 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 @@ -14,6 +14,7 @@ import hu.user.lis.ui.view.common.EntityViewModel; import lombok.Getter; import lombok.extern.log4j.Log4j2; import org.zkoss.bind.BindContext; +import org.zkoss.bind.BindUtils; import org.zkoss.bind.PropertyChangeEvent; import org.zkoss.bind.annotation.*; import org.zkoss.zk.ui.Component; @@ -91,6 +92,7 @@ public class ServiceRecordsViewModel extends EntityViewModel impl } else { serviceRecordsDataModel.listAll(); } + BindUtils.postNotifyChange(this, "selectedEntity"); } @Command diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/SpecialRoute.java b/lis-ui/src/main/java/hu/user/lis/ui/view/SpecialRoute.java new file mode 100644 index 0000000..1b30579 --- /dev/null +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/SpecialRoute.java @@ -0,0 +1,5 @@ +package hu.user.lis.ui.view; + +public interface SpecialRoute { + void route(Long id); +} diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/UIEventHandler.java b/lis-ui/src/main/java/hu/user/lis/ui/view/UIEventHandler.java new file mode 100644 index 0000000..9c419dd --- /dev/null +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/UIEventHandler.java @@ -0,0 +1,7 @@ +package hu.user.lis.ui.view; + +import org.zkoss.zk.ui.event.Event; + +public interface UIEventHandler { + void handle(Event event); +} diff --git a/lis-ui/src/main/resources/web/editor/project-attach.zul b/lis-ui/src/main/resources/web/editor/project-attach.zul new file mode 100644 index 0000000..6e4fb72 --- /dev/null +++ b/lis-ui/src/main/resources/web/editor/project-attach.zul @@ -0,0 +1,66 @@ + + + + + + + + + + + +
+ + + + + + + + + + + +
+ + +