diff --git a/rapidoid-gui/src/main/java/org/rapidoid/gui/Field.java b/rapidoid-gui/src/main/java/org/rapidoid/gui/Field.java index 02ea057249..936740c8ed 100644 --- a/rapidoid-gui/src/main/java/org/rapidoid/gui/Field.java +++ b/rapidoid-gui/src/main/java/org/rapidoid/gui/Field.java @@ -103,8 +103,7 @@ private Var initVar(Item item, Property prop) { return Models.propertyVar(varName, item, prop.name(), initValue); } catch (Exception e) { - // FIXME x.errors().put(varName, "Invalid value!"); - Log.warn("Invalid value for property: " + prop.name(), e); + prop.errors().add("Invalid value!"); return Models.propertyVar(varName, item, prop.name(), null); } } @@ -164,7 +163,7 @@ protected Tag field(String name, String desc, FieldType type, Collection opti inputWrap = layout == FormLayout.HORIZONTAL ? div(inp).class_("col-sm-8") : inp; } - Tag err = span("").class_("field-error"); + Tag err = span(U.join(", ", prop.errors())).class_("field-error"); Tag group = lbl != null ? div(lbl, inputWrap, err) : div(inputWrap, err); group = group.class_("form-group"); return group; diff --git a/rapidoid-gui/src/main/java/org/rapidoid/model/Property.java b/rapidoid-gui/src/main/java/org/rapidoid/model/Property.java index cfcef7ff86..f18a90c074 100644 --- a/rapidoid-gui/src/main/java/org/rapidoid/model/Property.java +++ b/rapidoid-gui/src/main/java/org/rapidoid/model/Property.java @@ -6,6 +6,7 @@ import java.io.Serializable; import java.lang.annotation.Annotation; import java.lang.reflect.ParameterizedType; +import java.util.Set; /* * #%L @@ -43,4 +44,6 @@ public interface Property extends Serializable { Object get(Item item); + Set errors(); + } diff --git a/rapidoid-gui/src/main/java/org/rapidoid/model/impl/AbstractProperty.java b/rapidoid-gui/src/main/java/org/rapidoid/model/impl/AbstractProperty.java new file mode 100644 index 0000000000..9c278dab3e --- /dev/null +++ b/rapidoid-gui/src/main/java/org/rapidoid/model/impl/AbstractProperty.java @@ -0,0 +1,17 @@ +package org.rapidoid.model.impl; + +import org.rapidoid.model.Property; +import org.rapidoid.u.U; + +import java.util.Set; + +public abstract class AbstractProperty implements Property { + + private final Set errors = U.set(); + + @Override + public Set errors() { + return errors; + } + +} diff --git a/rapidoid-gui/src/main/java/org/rapidoid/model/impl/BeanProperty.java b/rapidoid-gui/src/main/java/org/rapidoid/model/impl/BeanProperty.java index cfab9207a7..986388373e 100644 --- a/rapidoid-gui/src/main/java/org/rapidoid/model/impl/BeanProperty.java +++ b/rapidoid-gui/src/main/java/org/rapidoid/model/impl/BeanProperty.java @@ -24,14 +24,13 @@ import org.rapidoid.annotation.Since; import org.rapidoid.commons.Str; import org.rapidoid.model.Item; -import org.rapidoid.model.Property; import java.lang.annotation.Annotation; import java.lang.reflect.ParameterizedType; @Authors("Nikolche Mihajlovski") @Since("2.0.0") -public class BeanProperty implements Property { +public class BeanProperty extends AbstractProperty { private static final long serialVersionUID = 7627370931428864929L; diff --git a/rapidoid-gui/src/main/java/org/rapidoid/model/impl/BuiltInProperty.java b/rapidoid-gui/src/main/java/org/rapidoid/model/impl/BuiltInProperty.java index 866b1d95c8..bd5e662d8f 100644 --- a/rapidoid-gui/src/main/java/org/rapidoid/model/impl/BuiltInProperty.java +++ b/rapidoid-gui/src/main/java/org/rapidoid/model/impl/BuiltInProperty.java @@ -23,14 +23,13 @@ import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; import org.rapidoid.model.Item; -import org.rapidoid.model.Property; import java.lang.annotation.Annotation; import java.lang.reflect.ParameterizedType; @Authors("Nikolche Mihajlovski") @Since("2.2.0") -public class BuiltInProperty implements Property { +public class BuiltInProperty extends AbstractProperty { private static final long serialVersionUID = -2697490242616488024L; diff --git a/rapidoid-gui/src/main/java/org/rapidoid/model/impl/CalcProperty.java b/rapidoid-gui/src/main/java/org/rapidoid/model/impl/CalcProperty.java index ce4327bb74..8c150e666f 100644 --- a/rapidoid-gui/src/main/java/org/rapidoid/model/impl/CalcProperty.java +++ b/rapidoid-gui/src/main/java/org/rapidoid/model/impl/CalcProperty.java @@ -25,14 +25,13 @@ import org.rapidoid.lambda.Calc; import org.rapidoid.lambda.Lmbd; import org.rapidoid.model.Item; -import org.rapidoid.model.Property; import java.lang.annotation.Annotation; import java.lang.reflect.ParameterizedType; @Authors("Nikolche Mihajlovski") @Since("2.2.0") -public class CalcProperty implements Property { +public class CalcProperty extends AbstractProperty { private static final long serialVersionUID = -2697490242616488024L; diff --git a/rapidoid-http-fast/src/main/java/org/rapidoid/http/HttpUtils.java b/rapidoid-http-fast/src/main/java/org/rapidoid/http/HttpUtils.java index 9624d91139..31646dd30d 100644 --- a/rapidoid-http-fast/src/main/java/org/rapidoid/http/HttpUtils.java +++ b/rapidoid-http-fast/src/main/java/org/rapidoid/http/HttpUtils.java @@ -202,11 +202,7 @@ private static void postProcessRedirect(Resp resp) { } } - public static boolean isDevMode(Req x) { - return Conf.dev(); - } - - public static final void reload(Req x) { + public static void reload(Req x) { Map sel = U.map("body", PAGE_RELOAD); x.response().json(U.map("_sel_", sel)); } @@ -215,8 +211,8 @@ public static String constructUrl(Req x, String path) { return (Conf.is("https") ? "https://" : "http://") + x.host() + path; } - public static boolean hasEvent(Req req) { - return false; // FIXME + public static String getCommand(Req req) { + return isPostReq(req) ? (String) req.data("_cmd", null) : null; } }