[add] widget table env default value support

This commit is contained in:
Max 2022-10-03 19:38:17 +08:00
parent ef1866e7ea
commit fb19e8d288
4 changed files with 25 additions and 7 deletions

View file

@ -41,6 +41,7 @@ env:
TAB_NAME: "::PET ADMIN" TAB_NAME: "::PET ADMIN"
PAGE_SIZE: "20" PAGE_SIZE: "20"
PAGE_LINK: "https://yaoapps.com" PAGE_LINK: "https://yaoapps.com"
PAGE_ICON: "icon-trash"
DEMO_APP: ${{ github.WORKSPACE }}/../app DEMO_APP: ${{ github.WORKSPACE }}/../app

View file

@ -45,6 +45,7 @@ env:
TAB_NAME: "::PET ADMIN" TAB_NAME: "::PET ADMIN"
PAGE_SIZE: "20" PAGE_SIZE: "20"
PAGE_LINK: "https://yaoapps.com" PAGE_LINK: "https://yaoapps.com"
PAGE_ICON: "icon-trash"
DEMO_APP: ${{ github.WORKSPACE }}/../app DEMO_APP: ${{ github.WORKSPACE }}/../app

View file

@ -52,21 +52,36 @@ func replaceAny(value interface{}, defaults map[string]interface{}) interface{}
func replaceStr(value string, defaults map[string]interface{}) interface{} { func replaceStr(value string, defaults map[string]interface{}) interface{} {
if strings.HasPrefix(value, "\\$$ENV.") { v := strings.TrimSpace(value)
return fmt.Sprintf("$ENV.%s", strings.TrimLeft(value, "\\$$ENV.")) if strings.HasPrefix(v, "\\$$ENV.") {
return fmt.Sprintf("$ENV.%s", strings.TrimLeft(v, "\\$$ENV."))
} }
if !strings.HasPrefix(value, "$ENV.") { if !strings.HasPrefix(v, "$ENV.") {
return value return value
} }
name := strings.TrimLeft(value, "$ENV.") return getEnv(v, defaults)
}
func getEnv(value string, defaults map[string]interface{}) interface{} {
vars := strings.Split(value, "||")
name := strings.TrimLeft(strings.TrimSpace(vars[0]), "$ENV.")
v := os.Getenv(name) v := os.Getenv(name)
if v != "" { if v != "" {
return v return v
} }
if len(vars) > 1 {
v = strings.TrimSpace(vars[1])
}
if v == "" {
return defaults[name] return defaults[name]
}
return v
} }
func replaceMap(values map[string]interface{}, defaults map[string]interface{}) map[string]interface{} { func replaceMap(values map[string]interface{}, defaults map[string]interface{}) map[string]interface{} {

View file

@ -30,6 +30,7 @@ func TestReadFile(t *testing.T) {
assert.Equal(t, "::PET ADMIN", res.Get("name")) assert.Equal(t, "::PET ADMIN", res.Get("name"))
assert.Equal(t, "20", res.Get("action.search.default.2")) assert.Equal(t, "20", res.Get("action.search.default.2"))
assert.Equal(t, "https://yaoapps.com", res.Get("layout.header.preset.import.operation.0.link")) assert.Equal(t, "https://yaoapps.com", res.Get("layout.header.preset.import.operation.0.link"))
assert.Equal(t, "cured", res.Get("layout.table.operation.actions.2.action.Table.save.status")) assert.Equal(t, "cured", res.Get("layout.table.operation.actions[2].action.Table.save.status"))
assert.Equal(t, "提示", res["layout.table.operation.actions[5].confirm.title"])
assert.Equal(t, "icon-trash", res["layout.table.operation.actions[5].icon"])
} }