admin / modules /page /page.go
AZLABS's picture
Upload folder using huggingface_hub
530729e verified
// Copyright 2019 GoAdmin Core Team. All rights reserved.
// Use of this source code is governed by a Apache-2.0 style
// license that can be found in the LICENSE file.
package page
import (
"bytes"
"github.com/GoAdminGroup/go-admin/context"
"github.com/GoAdminGroup/go-admin/modules/config"
"github.com/GoAdminGroup/go-admin/modules/db"
"github.com/GoAdminGroup/go-admin/modules/logger"
"github.com/GoAdminGroup/go-admin/modules/menu"
"github.com/GoAdminGroup/go-admin/plugins/admin/models"
"github.com/GoAdminGroup/go-admin/template"
"github.com/GoAdminGroup/go-admin/template/types"
)
// SetPageContent set and return the panel of page content.
func SetPageContent(ctx *context.Context, user models.UserModel, c func(ctx interface{}) (types.Panel, error), conn db.Connection) {
panel, err := c(ctx)
if err != nil {
logger.ErrorCtx(ctx, "SetPageContent %+v", err)
panel = template.WarningPanel(ctx, err.Error())
}
tmpl, tmplName := template.Get(ctx, config.GetTheme()).GetTemplate(ctx.IsPjax())
ctx.AddHeader("Content-Type", "text/html; charset=utf-8")
buf := new(bytes.Buffer)
err = tmpl.ExecuteTemplate(buf, tmplName, types.NewPage(ctx, &types.NewPageParam{
User: user,
Menu: menu.GetGlobalMenu(user, conn, ctx.Lang()).SetActiveClass(config.URLRemovePrefix(ctx.Path())),
Panel: panel.GetContent(config.IsProductionEnvironment()),
Assets: template.GetComponentAssetImportHTML(ctx),
TmplHeadHTML: template.Default(ctx).GetHeadHTML(),
TmplFootJS: template.Default(ctx).GetFootJS(),
Iframe: ctx.IsIframe(),
}))
if err != nil {
logger.ErrorCtx(ctx, "SetPageContent %+v", err)
}
ctx.WriteString(buf.String())
}