Search improvements
authorVásáry Dániel <vasary@elgekko.net>
Mon, 4 Mar 2024 12:49:11 +0000 (13:49 +0100)
committerVásáry Dániel <vasary@elgekko.net>
Mon, 4 Mar 2024 12:49:11 +0000 (13:49 +0100)
sly-crm-db/src/main/java/hu/user/lis/db/repository/ProjectRepositorySearchImpl.java
sly-crm-ui/src/main/java/hu/user/lis/ui/view/ProjectsViewModel.java
sly-crm-ui/src/main/resources/web/index.zul
sly-crm-ui/src/main/resources/web/invoices.zul
sly-crm-ui/src/main/resources/web/projects.zul
sly-crm-ui/src/main/resources/web/service-records.zul
sly-crm-ui/src/main/resources/web/settings.zul
sly-crm-ui/src/main/resources/web/widget/entity-selector.zul

index b1192e2198d1f4423b8ef6a95cea4aac6e6c3ab9..85221d16fa8c460958711fb1978ff59f2059c797 100644 (file)
@@ -64,7 +64,7 @@ public class ProjectRepositorySearchImpl implements ProjectRepositorySearch {
             predicates.add(cb.isFalse(root.get("active")));
         }
         if (filter.isActual()) {
-            predicates.add(cb.isTrue(root.join("projectStatus").get("active")));
+            predicates.add(cb.isTrue(root.join("projectStatus").get("actual")));
         }
         if (Objects.nonNull(filter.getPartner())) {
             predicates.add(cb.equal(root.get("partner"), filter.getPartner()));
index cf62b00a0c0bf8fda8fbfade1a73eec43bffabe5..5d923cf2148195986682cc06e1bbc4f688589193 100644 (file)
@@ -16,7 +16,12 @@ 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.bind.annotation.AfterCompose;
+import org.zkoss.bind.annotation.Command;
+import org.zkoss.bind.annotation.ContextParam;
+import org.zkoss.bind.annotation.ContextType;
+import org.zkoss.bind.annotation.Destroy;
+import org.zkoss.bind.annotation.Init;
 import org.zkoss.zk.ui.Component;
 import org.zkoss.zk.ui.event.Event;
 import org.zkoss.zk.ui.event.EventListener;
@@ -81,7 +86,7 @@ public class ProjectsViewModel extends FilterActiveViewModel<Project> implements
     @Override
     @AfterCompose
     public void onAfterCompose(@ContextParam(ContextType.VIEW) Component view) {
-        entitySelectorRouter.configureSelector(Partner.class, this, "partnerFilter.partner");
+        entitySelectorRouter.configureSelector(Partner.class, this, "activeFilter.partner");
     }
 
     protected ActiveFilter createFilter() {
@@ -134,6 +139,7 @@ public class ProjectsViewModel extends FilterActiveViewModel<Project> implements
         if (event instanceof PropertyChangeEvent) {
             PropertyChangeEvent propertyEvent = (PropertyChangeEvent) event;
 //           (this.equals(propertyEvent.getBase()) && propertyEvent.getProperty().startsWith("invoiceFilter")))
+            log.info("PropertyChangeEvent {} {}", propertyEvent.getBase().getClass().getSimpleName(), propertyEvent.getProperty());
             if (getProjectFilter().equals(propertyEvent.getBase())) {
                 log.info("Refresh needed, {} changed", propertyEvent.getProperty());
                 refresh();
index 9370c8531b8ec441d210239a7fd0bc28a9fb6422..26faef6a773d4d3597a54560d29547d21dcd80a6 100644 (file)
@@ -45,7 +45,7 @@
                     </hlayout>
                 </hbox>
                 <hbox pack="stretch" hflex="min" align="end">
-                    <menubar autodrop="true" hflex="true">
+                    <menubar hflex="true">
                         <menu iconSclass="z-icon-user" label="@load(vm.currentProfile.associate.name)">
                             <menupopup>
                                 <menuitem iconSclass="z-icon-user" label="Profil">
         </caption>
         <borderlayout>
             <north border="none" hflex="true">
-                <vlayout>
-                    <hlayout valign="middle">
-                        <menubar autodrop="true" hflex="true">
-                            <!--                            <menuitem label="POPUP" onClick="@command('onShowPopup')"/>-->
-
-                            <menuitem iconSclass="z-icon-group" label="Partnerek"
-                                      onClick="@command(vm.selectPage('~./partners.zul'))"/>
-                            <menuitem iconSclass="z-icon-tasks" label="Projektek"
-                                      onClick="@command(vm.selectPage('~./projects.zul'))"/>
-                            <menuitem iconSclass="z-icon-th" label="Munkalapok"
-                                      onClick="@command(vm.selectPage('~./service-records.zul'))"/>
+                <menubar hflex="true">
+                    <menuitem iconSclass="z-icon-group" label="Partnerek"
+                              onClick="@command(vm.selectPage('~./partners.zul'))"/>
+                    <menuitem iconSclass="z-icon-tasks" label="Projektek"
+                              onClick="@command(vm.selectPage('~./projects.zul'))"/>
+                    <menuitem iconSclass="z-icon-th" label="Munkalapok"
+                              onClick="@command(vm.selectPage('~./service-records.zul'))"/>
+                    <menuseparator/>
+                    <menuitem iconSclass="z-icon-user" label="Munkatársak"
+                              onClick="@command(vm.selectPage('~./associates.zul'))"/>
+                    <menu iconSclass="z-icon-euro" label="Számlák"
+                          sclass="@bind(vm.importInvoiceMenuClassName)">
+                        <menupopup>
+                            <menuitem iconSclass="z-icon-money" label="Összes számla"
+                                      onClick="@command(vm.selectPage('~./invoices.zul'))"/>
+                            <menuitem iconSclass="z-icon-credit-card" label="Számla kiegyenlítés"
+                                      onClick="@command(vm.selectPage('~./invoice-payment.zul'))"/>
                             <menuseparator/>
-                            <menuitem iconSclass="z-icon-user" label="Munkatársak"
-                                      onClick="@command(vm.selectPage('~./associates.zul'))"/>
-                            <menu iconSclass="z-icon-euro" label="Számlák"
+                            <menu iconSclass="z-icon-tasks" label="Számla iktatás"
                                   sclass="@bind(vm.importInvoiceMenuClassName)">
                                 <menupopup>
-                                    <menuitem iconSclass="z-icon-money" label="Összes számla"
-                                              onClick="@command(vm.selectPage('~./invoices.zul'))"/>
-                                    <menuitem iconSclass="z-icon-credit-card" label="Számla kiegyenlítés"
-                                              onClick="@command(vm.selectPage('~./invoice-payment.zul'))"/>
-                                    <menuseparator/>
-                                    <menu iconSclass="z-icon-tasks" label="Számla iktatás"
-                                          sclass="@bind(vm.importInvoiceMenuClassName)">
-                                        <menupopup>
-                                            <menuitem iconSclass="z-icon-paperclip"
-                                                      label="@bind(vm.assignInvoicesLabel)"
-                                                      onClick="@command(vm.selectPage('~./import-invoices-assign.zul'))"
-                                                      sclass="@bind(vm.assignInvoiceMenuClassName)"/>
-                                            <menuitem iconSclass="z-icon-check-square-o"
-                                                      label="@bind(vm.approveInvoicesLabel)"
-                                                      onClick="@command(vm.selectPage('~./import-invoices-approve.zul'))"
-                                                      sclass="@bind(vm.approveInvoiceMenuClassName)"/>
-                                            <menuseparator/>
-                                            <menuitem iconSclass="z-icon-hand-stop-o"
-                                                      label="Számla parkoló"
-                                                      onClick="@command(vm.selectPage('~./import-invoices-suspended.zul'))"/>
-                                        </menupopup>
-                                    </menu>
+                                    <menuitem iconSclass="z-icon-paperclip"
+                                              label="@bind(vm.assignInvoicesLabel)"
+                                              onClick="@command(vm.selectPage('~./import-invoices-assign.zul'))"
+                                              sclass="@bind(vm.assignInvoiceMenuClassName)"/>
+                                    <menuitem iconSclass="z-icon-check-square-o"
+                                              label="@bind(vm.approveInvoicesLabel)"
+                                              onClick="@command(vm.selectPage('~./import-invoices-approve.zul'))"
+                                              sclass="@bind(vm.approveInvoiceMenuClassName)"/>
                                     <menuseparator/>
-                                    <menuitem iconSclass="z-icon-code-fork" label="Import elindítása"
-                                              onClick="@command('onStartImportInvoiceProcess')"/>
+                                    <menuitem iconSclass="z-icon-hand-stop-o"
+                                              label="Számla parkoló"
+                                              onClick="@command(vm.selectPage('~./import-invoices-suspended.zul'))"/>
                                 </menupopup>
                             </menu>
                             <menuseparator/>
-                            <menu iconSclass="z-icon-cogs" label="Adminisztráció">
-                                <menupopup>
-                                    <menuitem iconSclass="z-icon-cog" label="Beállítások"
-                                              onClick="@command(vm.selectPage('~./settings.zul'))"/>
-                                    <menuseparator/>
-                                    <!--                                    <menuitem iconSclass="z-icon-share-alt" label="Camunda"-->
-                                    <!--                                              onClick="@command(vm.selectPage('/camunda'))"/>-->
-                                    <menuitem iconSclass="z-icon-times-circle-o" label="Folyamatok leállítása"
-                                              onClick="@command('onCancelProcesses')"/>
-                                </menupopup>
-                            </menu>
-                        </menubar>
-                        <hbox hflex="min" pack="right">
-                            <textbox value="@bind(vm.searchPhrase)" onOK="@command('search')" disabled="true"/>
-                            <button iconSclass="z-icon-search"/>
-                        </hbox>
-                    </hlayout>
-                </vlayout>
+                            <menuitem iconSclass="z-icon-code-fork" label="Import elindítása"
+                                      onClick="@command('onStartImportInvoiceProcess')"/>
+                        </menupopup>
+                    </menu>
+                    <menuseparator/>
+                    <menu iconSclass="z-icon-cogs" label="Adminisztráció">
+                        <menupopup>
+                            <menuitem iconSclass="z-icon-cog" label="Beállítások"
+                                      onClick="@command(vm.selectPage('~./settings.zul'))"/>
+                            <menuseparator/>
+                            <!--                                    <menuitem iconSclass="z-icon-share-alt" label="Camunda"-->
+                            <!--                                              onClick="@command(vm.selectPage('/camunda'))"/>-->
+                            <menuitem iconSclass="z-icon-times-circle-o" label="Folyamatok leállítása"
+                                      onClick="@command('onCancelProcesses')"/>
+                        </menupopup>
+                    </menu>
+                </menubar>
+                <!--                        <hbox hflex="min" pack="right">-->
+                <!--                            <textbox value="@bind(vm.searchPhrase)" onOK="@command('search')" disabled="true"/>-->
+                <!--                            <button iconSclass="z-icon-search"/>-->
+                <!--                        </hbox>-->
             </north>
             <center border="none" hflex="true">
                 <include src="@load(vm.page)" hflex="true" vflex="true"/>
index 52b8c0e97d811b1617bb041e7db53fb9d282df2f..c57d6c497ce0449ced335f180f257a45c44377f0 100644 (file)
         </caption>
         <borderlayout>
             <north hflex="true">
-                <tabbox id="tb">
-                    <tabs id="tabs">
-                        <tab label="Partner"/>
-                        <tab label="Projekt"/>
-                        <tab label="Dátum"/>
-                    </tabs>
-                    <toolbar>
-                        <toolbarbutton mode="toggle" iconSclass="z-icon-external-link" label="Bejövő"
-                                       checked="@load(vm.invoiceFilter.incoming)"
-                                       onClick="@command('setIncoming', incoming=true)"/>
-                        <toolbarbutton mode="toggle" iconSclass="z-icon-sign-in" label="Kimenő"
-                                       checked="@load(!vm.invoiceFilter.incoming)"
-                                       onClick="@command('setIncoming', incoming=false)"/>
+                <toolbar>
+                    <vlayout>
+                        <hlayout valign="middle">
+                            <toolbarbutton mode="toggle" iconSclass="z-icon-external-link" label="Bejövő"
+                                           checked="@load(vm.invoiceFilter.incoming)"
+                                           onClick="@command('setIncoming', incoming=true)"/>
+                            <toolbarbutton mode="toggle" iconSclass="z-icon-sign-in" label="Kimenő"
+                                           checked="@load(!vm.invoiceFilter.incoming)"
+                                           onClick="@command('setIncoming', incoming=false)"/>
 
-                        <space bar="true"/>
+                            <space bar="true"/>
 
-                        <toolbarbutton mode="toggle" iconSclass="z-icon-credit-card" label="Kiegyenlítve"
-                                       checked="@bind(vm.invoiceFilter.paid)"/>
-                    </toolbar>
-                    <tabpanels>
-                        <tabpanel>
-                            <entity-selector selector_id="inv_partner" entity="Partner"
+                            <toolbarbutton mode="toggle" iconSclass="z-icon-credit-card" label="Kiegyenlítve"
+                                           checked="@bind(vm.invoiceFilter.paid)"/>
+                        </hlayout>
+                    </vlayout>
+                    <vlayout>
+                        <hlayout valign="middle">
+                            <entity-selector selector_id="inv_partner" entity="Partner" placeholder="Partner"
                                              style="display: inline-block;" width="300px"/>
-
-                        </tabpanel>
-                        <tabpanel>
-                            <entity-selector selector_id="inv_project" entity="Project"
+                            <space bar="true"/>
+                            <entity-selector selector_id="inv_project" entity="Project" placeholder="Project"
                                              style="display: inline-block;" width="300px"/>
-                        </tabpanel>
-                        <tabpanel>
-                            <hlayout>
-                                <combobox instant="true" model="${dateTypes}"
-                                          selectedItem="@bind(vm.invoiceFilter.dateType)"
-                                          readonly="true">
-                                    <template name="model">
-                                        <comboitem label="${each.display}"/>
-                                    </template>
-                                </combobox>
+                            <space bar="true"/>
+                            <combobox instant="true" model="${dateTypes}"
+                                      selectedItem="@bind(vm.invoiceFilter.dateType)"
+                                      readonly="true">
+                                <template name="model">
+                                    <comboitem label="${each.display}"/>
+                                </template>
+                            </combobox>
 
-                                <space bar="false"/>
+                            <space bar="false"/>
 
-                                <datebox instant="true" format="yyyy. MM. dd."
-                                         value="@bind(vm.invoiceFilter.paymentDeadLineFrom)"/>
-                                <label value="-"/>
-                                <datebox instant="true" format="yyyy. MM. dd."
-                                         value="@bind(vm.invoiceFilter.paymentDeadLineTo)"/>
-                            </hlayout>
-                        </tabpanel>
-                    </tabpanels>
-                </tabbox>
+                            <datebox instant="true" format="yyyy. MM. dd."
+                                     value="@bind(vm.invoiceFilter.paymentDeadLineFrom)"/>
+                            <label value="-"/>
+                            <datebox instant="true" format="yyyy. MM. dd."
+                                     value="@bind(vm.invoiceFilter.paymentDeadLineTo)"/>
+                        </hlayout>
+                    </vlayout>
+                </toolbar>
             </north>
             <center border="none">
                 <vlayout vflex="true">
index 36d108b2e3e81354076a473ba66acfd243bc4c03..02b7347f9794d5de23d33ed1dd5fce2cd46210b8 100644 (file)
             </hbox>
         </caption>
         <borderlayout>
-            <north flex="true">
-                <tabbox id="tb">
-                    <tabs id="tabs">
-                        <tab label="Partner"/>
-                    </tabs>
-                    <toolbar>
-                        <toolbarbutton mode="toggle" iconSclass="z-icon-credit-card" label="Aktuális"
-                                       checked="@bind(vm.projectFilter.actual)"/>
-                        <space bar="tre"/>
-                        <toolbarbutton mode="toggle" iconSclass="z-icon-check" label="Aktív"
-                                       checked="@bind(vm.filterShowActive)"/>
-                        <toolbarbutton mode="toggle" iconSclass="z-icon-ban" label="Inaktív"
-                                       checked="@bind(vm.filterShowInActive)"/>
-                        <toolbarbutton mode="toggle" iconSclass="z-icon-adjust" label="Mind"
-                                       checked="@bind(vm.filterShowBoth)"/>
-                    </toolbar>
-                    <tabpanels>
-                        <tabpanel>
-                            <entity-selector selector_id="inv_partner" entity="Partner"
+            <north>
+                <toolbar>
+                    <vlayout>
+                        <hlayout valign="middle">
+                            <toolbarbutton mode="toggle" iconSclass="z-icon-newspaper-o" label="Folyó ügyek"
+                                           checked="@bind(vm.projectFilter.actual)"/>
+                            <space bar="true"/>
+                            <toolbarbutton mode="toggle" iconSclass="z-icon-check" label="Aktív"
+                                           checked="@bind(vm.filterShowActive)"/>
+                            <toolbarbutton mode="toggle" iconSclass="z-icon-ban" label="Inaktív"
+                                           checked="@bind(vm.filterShowInActive)"/>
+                            <toolbarbutton mode="toggle" iconSclass="z-icon-adjust" label="Mind"
+                                           checked="@bind(vm.filterShowBoth)"/>
+                        </hlayout>
+                        <hlayout valign="middle">
+                            <entity-selector selector_id="inv_partner" entity="Partner" placeholder="Ügyfél"
                                              style="display: inline-block;" width="300px"/>
 
-                        </tabpanel>
-                    </tabpanels>
-                </tabbox>
+                        </hlayout>
+                    </vlayout>
+                </toolbar>
 
             </north>
             <center border="none">
index 9696835d38de4a242bd052fcefafaa0482bfadd8..6b14b61eafc6015e301ece0fbec26335faf2c008 100644 (file)
             </hbox>
         </caption>
         <borderlayout>
-            <north flex="true">
+            <north>
                 <toolbar>
-                    <toolbarbutton label="Projekt" tooltip="project_filter"/>
-                    <popup id="project_filter">
-                        <label value="Projekt"/>
-                        <separator orient="vertical"/>
-                        <entity-selector selector_id="sr_project" entity="Project" style="display: inline-block;"
-                                         width="300px"/>
-                    </popup>
-                    <toolbarbutton label="Munkatárs" tooltip="associate_filter"/>
-                    <popup id="associate_filter">
-                        <label value="Munkatárs"/>
-                        <separator orient="vertical"/>
-                        <entity-selector selector_id="sr_associate" entity="Associate" style="display: inline-block;"
-                                         width="300px"/>
-                    </popup>
-                    <separator orient="vertical"/>
-                    <toolbarbutton label="Alaphelyzet" iconSclass="z-icon-ban" onClick="@command('onClearFilters')"/>
+                    <vlayout>
+                        <hlayout valign="middle">
+                            <toolbarbutton label="Alaphelyzet" iconSclass="z-icon-ban"
+                                           onClick="@command('onClearFilters')"/>
+                        </hlayout>
+                        <hlayout valign="middle">
+                            <entity-selector selector_id="sr_project" entity="Project" style="display: inline-block;"
+                                             width="300px" placeholder="Projekt"/>
+
+                            <space bar="true"/>
+                            <entity-selector selector_id="sr_associate" entity="Associate"
+                                             style="display: inline-block;"
+                                             width="300px" placeholder="Munkatárs"/>
+                        </hlayout>
+                    </vlayout>
                 </toolbar>
             </north>
             <center border="none">
index cd21eda420cf2118d48de8db536af003865f2bdc..f0fe4290e4456b016a7980d3f54d4755a3319675 100644 (file)
@@ -34,7 +34,7 @@
                                 <listheader label="Sorrend" align="left"/>
                                 <listheader label="Név" align="left"/>
                                 <listheader label="Aktív" align="left"/>
-                                <listheader label="Aktuális" align="left"/>
+                                <listheader label="Folyó ügyek" align="left"/>
                             </listhead>
                             <template name="model">
                                 <listitem>
index 80bfecbbeaab835145320f37ea885a26907e14e9..f543c810d5fbd90562ff5f2552ff5d4307c1008e 100644 (file)
@@ -4,7 +4,8 @@
         <bandbox id="entityBandBox_${selector_id}" autodrop="true" hflex="true" mold="rounded"
                  value="@load(vmEntity.selectedEntity) @converter(vmEntity.displayConverter)"
                  onChanging="@command('onEntityBandChanging')" onOpen="@command('onEntityBandOpen')"
-                 forward="onOK=submit.onClick, onCancel=cancel.onClick" disabled="${readonly}" readonly="${readonly}">
+                 forward="onOK=submit.onClick, onCancel=cancel.onClick" disabled="${readonly}" readonly="${readonly}"
+                 placeholder="${placeholder}">
             <attribute c:name="_doKeyDown">
                 <![CDATA[
                             function (evt) {