diff --git a/cmd/start.go b/cmd/start.go index 752dae11..01e68426 100644 --- a/cmd/start.go +++ b/cmd/start.go @@ -247,12 +247,14 @@ func printApis(silent bool) { } } - fmt.Printf(color.CyanString("\n%s(%d)\n", "WebSocket", len(websocket.Upgraders))) - for name, upgrader := range websocket.Upgraders { // WebSocket - fmt.Println( - colorMehtod("GET"), - color.WhiteString(filepath.Join("/websocket", name)), - "\tprocess:", upgrader.Process) + if len(websocket.Upgraders) > 0 { + fmt.Printf(color.CyanString("\n%s(%d)\n", "WebSocket", len(websocket.Upgraders))) + for name, upgrader := range websocket.Upgraders { // WebSocket + fmt.Println( + colorMehtod("GET"), + color.WhiteString(filepath.Join("/websocket", name)), + "\tprocess:", upgrader.Process) + } } } diff --git a/engine/load.go b/engine/load.go index 37a53d94..b6287775 100644 --- a/engine/load.go +++ b/engine/load.go @@ -30,6 +30,7 @@ import ( "github.com/yaoapp/yao/task" "github.com/yaoapp/yao/websocket" "github.com/yaoapp/yao/widget" + "github.com/yaoapp/yao/widgets" ) // Load 根据配置加载 API, FLow, Model, Plugin @@ -102,6 +103,14 @@ func Load(cfg config.Config) (err error) { printErr(cfg.Mode, "Plugin", err) } + // XGEN NEXT + if os.Getenv("YAO_UI") == "XGEN-NEXT" { + err = widgets.Load(cfg) // Load build-in widgets + if err != nil { + printErr(cfg.Mode, "Widgets", err) + } + } + err = table.Load(cfg) // 加载数据表格 table if err != nil { printErr(cfg.Mode, "Table", err) @@ -119,8 +128,6 @@ func Load(cfg config.Config) (err error) { importer.Load(cfg) // 加载数据导入 imports - // workflow.Load(cfg) // 加载工作流 workflow - err = api.Load(cfg) // 加载业务接口 API if err != nil { printErr(cfg.Mode, "API", err) diff --git a/main.go b/main.go index 64609582..b2421961 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( _ "github.com/yaoapp/yao/network" _ "github.com/yaoapp/yao/system" _ "github.com/yaoapp/yao/user" + _ "github.com/yaoapp/yao/utils" _ "github.com/yaoapp/yao/xfs" ) diff --git a/user/process.go b/user/process.go index d5e896d6..11ec4aca 100644 --- a/user/process.go +++ b/user/process.go @@ -12,6 +12,7 @@ import ( func init() { gou.RegisterProcessHandler("xiang.user.Captcha", ProcessCaptcha) gou.RegisterProcessHandler("xiang.user.Login", ProcessLogin) + gou.AliasProcess("xiang.user.Login", "yao.admin.Login") } // ProcessLogin xiang.user.Login 用户登录 diff --git a/utils/process.go b/utils/process.go new file mode 100644 index 00000000..63607b7a --- /dev/null +++ b/utils/process.go @@ -0,0 +1,8 @@ +package utils + +import "github.com/yaoapp/gou" + +func init() { + gou.AliasProcess("xiang.helper.Captcha", "yao.utils.Captcha") + gou.AliasProcess("xiang.helper.CaptchaValidate", "yao.utils.CaptchaValidate") +} diff --git a/widgets/app/app.go b/widgets/app/app.go index a311bb76..c8f8719a 100644 --- a/widgets/app/app.go +++ b/widgets/app/app.go @@ -158,7 +158,7 @@ func processXgen(process *gou.Process) interface{} { if admin, has := login.Logins["admin"]; has { xgenLogin["entry"]["admin"] = admin.Layout.Entry xgenLogin["admin"] = map[string]interface{}{ - "captcha": "/api/__yao/login/admin/captcha", + "captcha": "/api/__yao/login/admin/captcha?type=digit", "login": "/api/__yao/login/admin", } } @@ -166,7 +166,7 @@ func processXgen(process *gou.Process) interface{} { if user, has := login.Logins["user"]; has { xgenLogin["entry"]["user"] = user.Layout.Entry xgenLogin["user"] = map[string]interface{}{ - "captcha": "/api/__yao/login/user/captcha", + "captcha": "/api/__yao/login/user/captcha?type=digit", "login": "/api/__yao/login/user", } } diff --git a/widgets/login/login.go b/widgets/login/login.go index 55697efb..8d042c3f 100644 --- a/widgets/login/login.go +++ b/widgets/login/login.go @@ -14,7 +14,7 @@ import ( // // API: // GET /api/__yao/login/:id/captcha -> Default process: yao.utils.Captcha :query -// POST /api/__yao/login/:id -> Default process: yao.user.Login :payload +// POST /api/__yao/login/:id -> Default process: yao.admin.Login :payload // // Logins the loaded login widgets @@ -74,7 +74,7 @@ func exportAPI() error { for _, dsl := range Logins { // login action - process := "yao.user.Login" + process := "yao.admin.Login" args := []string{":payload"} if dsl.Action.Process != "" { process = dsl.Action.Process diff --git a/widgets/login/login_test.go b/widgets/login/login_test.go index b00f90be..15a78a29 100644 --- a/widgets/login/login_test.go +++ b/widgets/login/login_test.go @@ -23,7 +23,7 @@ func TestLoad(t *testing.T) { assert.Equal(t, "admin", Logins["admin"].ID) assert.Equal(t, "Admin Login", Logins["admin"].Name) - assert.Equal(t, "yao.user.login", Logins["admin"].Action.Process) + assert.Equal(t, "yao.admin.login", Logins["admin"].Action.Process) assert.Equal(t, []string{":payload"}, Logins["admin"].Action.Args) assert.Equal(t, "yao.utils.Captcha", Logins["admin"].Layout.Captcha) assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover) @@ -55,7 +55,7 @@ func TestLoadHK(t *testing.T) { assert.Equal(t, "admin", Logins["admin"].ID) assert.Equal(t, "管理員登錄", Logins["admin"].Name) - assert.Equal(t, "yao.user.login", Logins["admin"].Action.Process) + assert.Equal(t, "yao.admin.login", Logins["admin"].Action.Process) assert.Equal(t, []string{":payload"}, Logins["admin"].Action.Args) assert.Equal(t, "yao.utils.Captcha", Logins["admin"].Layout.Captcha) assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover) @@ -87,7 +87,7 @@ func TestLoadCN(t *testing.T) { assert.Equal(t, "admin", Logins["admin"].ID) assert.Equal(t, "管理员登录", Logins["admin"].Name) - assert.Equal(t, "yao.user.login", Logins["admin"].Action.Process) + assert.Equal(t, "yao.admin.login", Logins["admin"].Action.Process) assert.Equal(t, []string{":payload"}, Logins["admin"].Action.Args) assert.Equal(t, "yao.utils.Captcha", Logins["admin"].Layout.Captcha) assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover) diff --git a/widgets/widgets.go b/widgets/widgets.go index e7465231..a438d569 100644 --- a/widgets/widgets.go +++ b/widgets/widgets.go @@ -9,16 +9,26 @@ import ( // Load the widgets func Load(cfg config.Config) error { + // login widget err := login.Load(cfg) if err != nil { return err } - // app login + err = login.Export() + if err != nil { + return err + } + + // app widget err = app.Load(cfg) if err != nil { return err } + err = app.Export() + if err != nil { + return err + } return nil }