diff --git a/service/middleware.go b/service/middleware.go index 93e7f305..89b378e5 100644 --- a/service/middleware.go +++ b/service/middleware.go @@ -80,8 +80,8 @@ func adminRoot() (string, int) { } adminRoot := "/yao/" - if root, ok := share.App.Optional["adminRoot"].(string); ok && root != "" { - root = strings.TrimPrefix(root, "/") + if share.App.AdminRoot != "" { + root := strings.TrimPrefix(share.App.AdminRoot, "/") root = strings.TrimSuffix(root, "/") adminRoot = fmt.Sprintf("/%s/", root) } diff --git a/share/types.go b/share/types.go index 8e8b4fdf..8c88a6fa 100644 --- a/share/types.go +++ b/share/types.go @@ -80,6 +80,7 @@ type AppInfo struct { Storage AppStorage `json:"storage,omitempty"` Option map[string]interface{} `json:"option,omitempty"` XGen string `json:"xgen,omitempty"` + AdminRoot string `json:"adminRoot,omitempty"` Optional map[string]interface{} `json:"optional,omitempty"` } diff --git a/widgets/chart/chart.go b/widgets/chart/chart.go index d9887171..99169403 100644 --- a/widgets/chart/chart.go +++ b/widgets/chart/chart.go @@ -174,6 +174,7 @@ func (dsl *DSL) Xgen() (map[string]interface{}, error) { } setting["fields"] = fields + setting["config"] = dsl.Config for _, cProp := range dsl.CProps { err := cProp.Replace(setting, func(cProp component.CloudPropsDSL) interface{} { return map[string]interface{}{ diff --git a/widgets/chart/types.go b/widgets/chart/types.go index 0fee340b..e5a88830 100644 --- a/widgets/chart/types.go +++ b/widgets/chart/types.go @@ -9,14 +9,15 @@ import ( // DSL the chart DSL type DSL struct { - ID string `json:"id,omitempty"` - Name string `json:"name,omitempty"` - Action *ActionDSL `json:"action"` - Layout *LayoutDSL `json:"layout"` - Fields *FieldsDSL `json:"fields"` - ComputesIn field.ComputeFields `json:"-"` - ComputesOut field.ComputeFields `json:"-"` - CProps field.CloudProps `json:"-"` + ID string `json:"id,omitempty"` + Name string `json:"name,omitempty"` + Action *ActionDSL `json:"action"` + Layout *LayoutDSL `json:"layout"` + Fields *FieldsDSL `json:"fields"` + Config map[string]interface{} `json:"config,omitempty"` + ComputesIn field.ComputeFields `json:"-"` + ComputesOut field.ComputeFields `json:"-"` + CProps field.CloudProps `json:"-"` } // ActionDSL the chart action DSL diff --git a/widgets/form/form.go b/widgets/form/form.go index e258052e..5286d45c 100644 --- a/widgets/form/form.go +++ b/widgets/form/form.go @@ -192,6 +192,7 @@ func (dsl *DSL) Xgen() (map[string]interface{}, error) { } setting["fields"] = fields + setting["config"] = dsl.Config for _, cProp := range dsl.CProps { err := cProp.Replace(setting, func(cProp component.CloudPropsDSL) interface{} { return map[string]interface{}{ diff --git a/widgets/form/types.go b/widgets/form/types.go index ed707f66..4b4d9247 100644 --- a/widgets/form/types.go +++ b/widgets/form/types.go @@ -9,14 +9,15 @@ import ( // DSL the form DSL type DSL struct { - ID string `json:"id,omitempty"` - Name string `json:"name,omitempty"` - Action *ActionDSL `json:"action"` - Layout *LayoutDSL `json:"layout"` - Fields *FieldsDSL `json:"fields"` - ComputesIn field.ComputeFields `json:"-"` - ComputesOut field.ComputeFields `json:"-"` - CProps field.CloudProps `json:"-"` + ID string `json:"id,omitempty"` + Name string `json:"name,omitempty"` + Action *ActionDSL `json:"action"` + Layout *LayoutDSL `json:"layout"` + Fields *FieldsDSL `json:"fields"` + Config map[string]interface{} `json:"config,omitempty"` + ComputesIn field.ComputeFields `json:"-"` + ComputesOut field.ComputeFields `json:"-"` + CProps field.CloudProps `json:"-"` } // ActionDSL the form action DSL diff --git a/widgets/table/table.go b/widgets/table/table.go index 88ae3749..556cd0fd 100644 --- a/widgets/table/table.go +++ b/widgets/table/table.go @@ -261,6 +261,7 @@ func (dsl *DSL) Xgen() (map[string]interface{}, error) { } setting["fields"] = fields + setting["config"] = dsl.Config for _, cProp := range dsl.CProps { err := cProp.Replace(setting, func(cProp component.CloudPropsDSL) interface{} { return map[string]interface{}{ diff --git a/widgets/table/table_test.go b/widgets/table/table_test.go index 4daaab68..5a11c2f6 100644 --- a/widgets/table/table_test.go +++ b/widgets/table/table_test.go @@ -22,7 +22,7 @@ func TestLoad(t *testing.T) { if err != nil { t.Fatal(err) } - assert.Equal(t, 6, len(Tables)) + assert.Equal(t, 9, len(Tables)) } func TestLoadID(t *testing.T) { diff --git a/widgets/table/types.go b/widgets/table/types.go index a67fad75..e3e3a82b 100644 --- a/widgets/table/types.go +++ b/widgets/table/types.go @@ -9,15 +9,16 @@ import ( // DSL the table DSL type DSL struct { - Root string `json:"-"` - ID string `json:"id,omitempty"` - Name string `json:"name,omitempty"` - Action *ActionDSL `json:"action"` - Layout *LayoutDSL `json:"layout"` - Fields *FieldsDSL `json:"fields"` - ComputesIn field.ComputeFields `json:"-"` - ComputesOut field.ComputeFields `json:"-"` - CProps field.CloudProps `json:"-"` + Root string `json:"-"` + ID string `json:"id,omitempty"` + Name string `json:"name,omitempty"` + Action *ActionDSL `json:"action"` + Layout *LayoutDSL `json:"layout"` + Fields *FieldsDSL `json:"fields"` + Config map[string]interface{} `json:"config,omitempty"` + ComputesIn field.ComputeFields `json:"-"` + ComputesOut field.ComputeFields `json:"-"` + CProps field.CloudProps `json:"-"` } // ActionDSL the table action DSL