All number inputs improved
authorVásáry Dániel <vasary@elgekko.net>
Fri, 1 Mar 2024 10:18:55 +0000 (11:18 +0100)
committerVásáry Dániel <vasary@elgekko.net>
Fri, 1 Mar 2024 10:18:55 +0000 (11:18 +0100)
sly-crm-ui/src/main/java/hu/user/lis/ui/converter/DoubleToStringConverter.java
sly-crm-ui/src/main/java/hu/user/lis/ui/converter/IntegerToStringConverter.java [new file with mode: 0644]
sly-crm-ui/src/main/java/hu/user/lis/ui/editor/common/EntityAttachmentEditorModel.java
sly-crm-ui/src/main/java/hu/user/lis/ui/editor/common/EntityEditorModel.java
sly-crm-ui/src/main/resources/web/editor/associate-editor.zul
sly-crm-ui/src/main/resources/web/editor/service-record-editor.zul
sly-crm-ui/src/main/resources/web/static/js/numberbox.utils.js

index f2af6b2a7fdda42f3c3b17dd1768c0f68a053208..c852e0fbb572c6fcea2472393d9ce38ccb4bece5 100644 (file)
@@ -37,7 +37,7 @@ public class DoubleToStringConverter implements Converter<String, Double, Compon
                 }
             }
         } catch (Exception e) {
-            log.error("Can't parse {} to double type", data);
+            log.error("Can't parse {} to Double type", data);
         }
         return result;
     }
diff --git a/sly-crm-ui/src/main/java/hu/user/lis/ui/converter/IntegerToStringConverter.java b/sly-crm-ui/src/main/java/hu/user/lis/ui/converter/IntegerToStringConverter.java
new file mode 100644 (file)
index 0000000..f8d3062
--- /dev/null
@@ -0,0 +1,31 @@
+package hu.user.lis.ui.converter;
+
+import lombok.extern.log4j.Log4j2;
+import org.apache.logging.log4j.util.Strings;
+import org.zkoss.bind.BindContext;
+import org.zkoss.bind.Converter;
+import org.zkoss.zk.ui.Component;
+
+import java.util.Objects;
+
+@Log4j2
+public class IntegerToStringConverter implements Converter<String, Integer, Component> {
+
+    @Override
+    public String coerceToUi(Integer data, Component listCell, BindContext bindContext) {
+        return Objects.isNull(data) ? null : String.valueOf(data);
+    }
+
+    @Override
+    public Integer coerceToBean(String data, Component listCell, BindContext bindContext) {
+        Integer result = null;
+        try {
+            if (Strings.isNotBlank(data)) {
+                result = Integer.parseInt(data.replace(" ", "").replace("-", ""));
+            }
+        } catch (Exception e) {
+            log.error("Can't parse {} to Integer type", data);
+        }
+        return result;
+    }
+}
index 62ac12d18582079b05d8043d87f305ac988f7786..9f50196611ad0977975b70b31aa76b40ad24ca80 100644 (file)
@@ -46,7 +46,8 @@ public abstract class EntityAttachmentEditorModel<T extends Serializable> extend
 
     @Override
     protected boolean canSave(T entity) {
-        return true;
+        //ha kotelezo a fajl csatolas: entityDocumentDataModel.getActions().isEmpty() ellenorzes kell
+        return super.canSave(entity);
     }
 
     @Command
index 4827a280d06a512e3f1955ed140e909507239bd2..ced6f81723fb04b546c7e9ce40b88dbd2fd0d100 100644 (file)
@@ -104,7 +104,7 @@ public abstract class EntityEditorModel<T extends Serializable> extends Abstract
     protected boolean canSave(T entity) {
         boolean result = false;
         if (Objects.nonNull(getFormValidator())) {
-            getFormValidator().validate(entity);
+            result = getFormValidator().validate(entity);
         }
         return result;
     }
index ec4de9cc6c16ea777341968fe015d9bd0547e652..33f39732c5a06e4f2e521c053c017cb5d363f8e4 100644 (file)
@@ -1,6 +1,4 @@
-<?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
-<?link rel="stylesheet" type="text/css" href="~./static/css/webclient.css" ?>
-<zk>
+<zk xmlns:c="client/attribute" xmlns:w="client">
     <zscript>
         import hu.user.lis.db.Vat;
         ListModelList vats = new ListModelList(Vat.values());
                                 <hlayout>
                                     <vlayout>
                                         <label value="Havi önköltség"/>
-                                        <doublebox value="@bind(vm.formDocument.monthlyCost) @validator(vm)"
-                                                   format="#,###.##" locale="hu" instant="true"
-                                                   forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
+                                        <textbox instant="true" sclass="number-box"
+                                                 value="@bind(vm.formDocument.monthlyCost) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                                 w:onBind="configureFloat(this.$n())"
+                                                 c:onPaste="preventPastingNonDigit(event)"/>
                                     </vlayout>
                                     <vlayout>
                                         <label value="Havi önköltség ÁFA"/>
index c39a2111a07bbd96c5041af7e1172dfd1c69986d..311dfa5a3451ed408f957454c4b218baefd314ef 100644 (file)
@@ -1,5 +1,5 @@
 <?component name="entity-selector" inline="true" class="hu.user.lis.ui.editor.widget.EntitySelector"?>
-<zk>
+<zk xmlns:c="client/attribute" xmlns:w="client">
     <window id="serviceRecordPopup" width="50%" height="450px" closable="true" sizable="true" maximizable="true"
             viewModel="@id('vm') @init('hu.user.lis.ui.editor.ServiceRecordEditorModel')">
         <caption label="Munkalap szerkesztés"/>
                                     </vlayout>
                                     <vlayout>
                                         <label value="Óraszám"/>
-                                        <intbox value="@bind(vm.formDocument.workHours) @validator(vm)"
-                                                format="locale:hu-HU" instant="true"
-                                                forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
+                                        <textbox instant="true" sclass="number-box"
+                                                 value="@bind(vm.formDocument.workHours) @validator(vm) @converter('hu.user.lis.ui.converter.IntegerToStringConverter')"
+                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                                 w:onBind="configureInt(this.$n())"
+                                                 c:onPaste="preventPastingNonDigit(event)"/>
                                     </vlayout>
                                 </hlayout>
                                 <label value="Leírás"/>
@@ -52,7 +54,7 @@
                     </tabpanels>
                 </tabbox>
             </center>
-            <south border="none" flex="true" style="text-align: right; padding: 10px">
+            <south border="none" style="text-align: right; padding: 10px">
                 <hlayout>
                     <button id="cancel" label="Bezár"
                             onClick="@command('onCloseWindow', target=serviceRecordPopup, save=false)"/>
index 72319c509ac0193bbdc62ab4bec27ef7535d0eb3..2fdd5fd58e7f2e35e54914989ac81684043007fa 100644 (file)
@@ -5,3 +5,11 @@ function configureFloat(widget) {
         delimiter: ' '
     });
 }
+
+function configureInt(widget) {
+    new Cleave(widget, {
+        numeral: true,
+        numeralDecimalScale: 0,
+        delimiter: ' '
+    });
+}