aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--form_input.go9
-rw-r--r--key_form_input.go18
-rw-r--r--memfs_www_embed.go2
3 files changed, 25 insertions, 4 deletions
diff --git a/form_input.go b/form_input.go
index 48ad067..5fd0a8d 100644
--- a/form_input.go
+++ b/form_input.go
@@ -5,9 +5,14 @@ package trunks
type FormInputKind string
+// List of valid value for field FormInput.Kind.
const (
- FormInputKindNumber = "number"
- FormInputKindString = "string"
+ // FormInputKindBoolean only used for convertion, for example
+ // ToJsonObject.
+ // In the WUI, it will be rendered as string.
+ FormInputKindBoolean = `boolean`
+ FormInputKindNumber = `number`
+ FormInputKindString = `string`
)
// FormInput provide the information to create an input component.
diff --git a/key_form_input.go b/key_form_input.go
index 4922517..e457466 100644
--- a/key_form_input.go
+++ b/key_form_input.go
@@ -6,6 +6,7 @@ package trunks
import (
"net/http"
"net/url"
+ "strings"
"github.com/shuLhan/share/lib/math/big"
)
@@ -27,10 +28,25 @@ func (kfi KeyFormInput) ToHttpHeader() (headers http.Header) {
}
// ToJsonObject convert the KeyFormInput into JSON object.
+// FormInput with Kind is FormInputKindBoolean will be converted to true if
+// the Value is either "true", "yes", or "1".
func (kfi KeyFormInput) ToJsonObject() (data map[string]interface{}) {
+ var (
+ k string
+ fi FormInput
+ vstr string
+ )
+
data = make(map[string]interface{}, len(kfi))
- for k, fi := range kfi {
+ for k, fi = range kfi {
switch fi.Kind {
+ case FormInputKindBoolean:
+ vstr = strings.ToLower(fi.Value)
+ if vstr == `true` || vstr == `yes` || vstr == `1` {
+ data[k] = true
+ } else {
+ data[k] = false
+ }
case FormInputKindNumber:
data[k], _ = big.NewRat(fi.Value).Float64()
default:
diff --git a/memfs_www_embed.go b/memfs_www_embed.go
index d279b37..12631b7 100644
--- a/memfs_www_embed.go
+++ b/memfs_www_embed.go
@@ -16,7 +16,7 @@ func generate__www() *memfs.Node {
GenFuncName: "generate__www",
}
node.SetMode(2147484141)
- node.SetModTimeUnix(1661400207, 805315661)
+ node.SetModTimeUnix(1683285123, 263412025)
node.SetName("/")
node.SetSize(0)
node.AddChild(_memfsWWW_getNode(memfsWWW, "/doc", generate__www_doc))