Files
EdgeAdmin/internal/web/actions/actionutils/parent_action.go

79 lines
1.8 KiB
Go
Raw Normal View History

2020-07-22 22:19:39 +08:00
package actionutils
import (
"errors"
"fmt"
"github.com/TeaOSLab/EdgeAdmin/internal/oplogs"
"github.com/TeaOSLab/EdgeAdmin/internal/rpc"
"github.com/TeaOSLab/EdgeAdmin/internal/rpc/admin"
"github.com/TeaOSLab/EdgeAdmin/internal/utils"
"github.com/iwind/TeaGo/actions"
"net/http"
"strconv"
)
type ParentAction struct {
actions.ActionObject
}
func (this *ParentAction) ErrorPage(err error) {
if err == nil {
return
}
// 日志
this.CreateLog(oplogs.LevelError, "系统发生错误:%s", err.Error())
if this.Request.Method == http.MethodGet {
FailPage(this, err)
} else {
Fail(this, err)
}
}
func (this *ParentAction) ErrorText(err string) {
this.ErrorPage(errors.New(err))
}
func (this *ParentAction) NotFound(name string, itemId int) {
this.ErrorPage(errors.New(name + " id: '" + strconv.Itoa(itemId) + "' is not found"))
}
func (this *ParentAction) NewPage(total int, size ...int) *Page {
if len(size) > 0 {
return NewActionPage(this, total, size[0])
}
return NewActionPage(this, total, 10)
}
func (this *ParentAction) Nav(mainMenu string, tab string, firstMenu string) {
this.Data["mainMenu"] = mainMenu
this.Data["mainTab"] = tab
this.Data["firstMenuItem"] = firstMenu
}
func (this *ParentAction) SecondMenu(menuItem string) {
this.Data["secondMenuItem"] = menuItem
}
func (this *ParentAction) AdminId() int {
return this.Context.GetInt("adminId")
}
func (this *ParentAction) CreateLog(level string, description string, args ...interface{}) {
rpcClient, err := rpc.SharedRPC()
if err != nil {
utils.PrintError(err)
return
}
_, err = rpcClient.AdminRPC().CreateLog(rpcClient.Context(this.AdminId()), &admin.CreateLogRequest{
Level: level,
Description: fmt.Sprintf(description, args...),
Action: this.Request.URL.Path,
Ip: this.RequestRemoteIP(),
})
if err != nil {
utils.PrintError(err)
}
}