代码拉取完成,页面将自动刷新
同步操作将从 go-admin/go-admin 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package controller
import (
"bytes"
"github.com/chenhg5/go-admin/context"
"github.com/chenhg5/go-admin/modules/auth"
"github.com/chenhg5/go-admin/modules/menu"
"github.com/chenhg5/go-admin/plugins/admin/models"
"github.com/chenhg5/go-admin/plugins/admin/modules/file"
"github.com/chenhg5/go-admin/template"
"github.com/chenhg5/go-admin/template/types"
"net/http"
"strings"
)
// 显示新建表单
func ShowNewForm(ctx *context.Context) {
defer GlobalDeferHandler(ctx)
user := ctx.UserValue["user"].(auth.User)
prefix := ctx.Request.URL.Query().Get("prefix")
tmpl, tmplName := template.Get("adminlte").GetTemplate(ctx.Request.Header.Get("X-PJAX") == "true")
path := ctx.Path()
menu.GlobalMenu.SetActiveClass(path)
page := ctx.Request.URL.Query().Get("page")
if page == "" {
page = "1"
}
pageSize := ctx.Request.URL.Query().Get("pageSize")
if pageSize == "" {
pageSize = "10"
}
sortField := ctx.Request.URL.Query().Get("sort")
if sortField == "" {
sortField = "id"
}
sortType := ctx.Request.URL.Query().Get("sort_type")
if sortType == "" {
sortType = "desc"
}
ctx.Response.Header.Add("Content-Type", "text/html; charset=utf-8")
buf := new(bytes.Buffer)
tmpl.ExecuteTemplate(buf, tmplName, types.Page{
User: user,
Menu: menu.GetGlobalMenu(user),
System: types.SystemInfo{
"0.0.1",
},
Panel: types.Panel{
Content: template.Get(Config.THEME).Form().
SetPrefix(Config.PREFIX).
SetContent(models.GetNewFormList(models.TableList[prefix].Form.FormList)).
SetUrl(Config.PREFIX + "/new/" + prefix).
SetToken(auth.TokenHelper.AddToken()).
SetTitle("New").
SetInfoUrl(Config.PREFIX + "/info/" + prefix + "?page=" + page + "&pageSize=" + pageSize + "&sort=" + sortField + "&sort_type=" + sortType).
GetContent(),
Description: models.TableList[prefix].Form.Description,
Title: models.TableList[prefix].Form.Title,
},
AssertRootUrl: Config.PREFIX,
Title: Config.TITLE,
Logo: Config.LOGO,
MiniLogo: Config.MINILOGO,
})
ctx.WriteString(buf.String())
}
// 新建数据
func NewForm(ctx *context.Context) {
defer GlobalDeferHandler(ctx)
token := ctx.Request.FormValue("_t")
if !auth.TokenHelper.CheckToken(token) {
ctx.SetStatusCode(http.StatusBadRequest)
ctx.WriteString(`{"code":400, "msg":"新增失败"}`)
return
}
prefix := ctx.Request.URL.Query().Get("prefix")
form := ctx.Request.MultipartForm
// 处理上传文件,目前仅仅支持传本地
if len((*form).File) > 0 {
file.GetFileEngine("local").Upload(form)
}
if prefix == "manager" { // 管理员管理新建
NewManager((*form).Value)
} else if prefix == "roles" { // 管理员角色管理新建
NewRole((*form).Value)
} else {
models.TableList[prefix].InsertDataFromDatabase(prefix, (*form).Value)
}
models.RefreshTableList()
previous := ctx.Request.FormValue("_previous_")
prevUrlArr := strings.Split(previous, "?")
paramArr := strings.Split(prevUrlArr[1], "&")
page := "1"
pageSize := "10"
sort := "id"
sortType := "desc"
for i := 0; i < len(paramArr); i++ {
if strings.Index(paramArr[i], "pageSize") >= 0 {
pageSize = strings.Split(paramArr[i], "=")[1]
} else {
if strings.Index(paramArr[i], "page") >= 0 {
page = strings.Split(paramArr[i], "=")[1]
} else if strings.Index(paramArr[i], "sort") >= 0 {
sort = strings.Split(paramArr[i], "=")[1]
} else {
sortType = strings.Split(paramArr[i], "=")[1]
}
}
}
thead, infoList, paginator, title, description := models.TableList[prefix].GetDataFromDatabase(map[string]string{
"page": page,
"path": prevUrlArr[0],
"sortField": sort,
"sortType": sortType,
"prefix": prefix,
"pageSize": pageSize,
})
menu.GlobalMenu.SetActiveClass(previous)
buffer := new(bytes.Buffer)
editUrl := Config.PREFIX + "/info/" + prefix + "/edit" + GetRouteParameterString(page, pageSize, sortType, sort)
newUrl := Config.PREFIX + "/info/" + prefix + "/new" + GetRouteParameterString(page, pageSize, sortType, sort)
deleteUrl := Config.PREFIX + "/delete/" + prefix
tmpl, tmplName := template.Get("adminlte").GetTemplate(true)
dataTable := template.Get(Config.THEME).DataTable().SetInfoList(infoList).SetThead(thead).SetEditUrl(editUrl).SetNewUrl(newUrl).SetDeleteUrl(deleteUrl)
table := dataTable.GetContent()
box := template.Get(Config.THEME).Box().
SetBody(table).
SetHeader(dataTable.GetDataTableHeader()).
WithHeadBorder(false).
SetFooter(paginator.GetContent()).
GetContent()
user := ctx.UserValue["user"].(auth.User)
tmpl.ExecuteTemplate(buffer, tmplName, types.Page{
User: user,
Menu: menu.GetGlobalMenu(user),
System: types.SystemInfo{
"0.0.1",
},
Panel: types.Panel{
Content: box,
Description: description,
Title: title,
},
AssertRootUrl: Config.PREFIX,
Title: Config.TITLE,
Logo: Config.LOGO,
MiniLogo: Config.MINILOGO,
})
ctx.WriteString(buffer.String())
ctx.Response.Header.Add("Content-Type", "text/html; charset=utf-8")
ctx.Response.Header.Add("X-PJAX-URL", previous)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。