pagebuilder

package
v0.0.0-...-932f57c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2025 License: MIT Imports: 39 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AddContainerEvent                = "page_builder_AddContainerEvent"
	DeleteContainerConfirmationEvent = "page_builder_DeleteContainerConfirmationEvent"
	DeleteContainerEvent             = "page_builder_DeleteContainerEvent"
	MoveContainerEvent               = "page_builder_MoveContainerEvent"
	MoveUpDownContainerEvent         = "page_builder_MoveUpDownContainerEvent"
	ToggleContainerVisibilityEvent   = "page_builder_ToggleContainerVisibilityEvent"
	MarkAsSharedContainerEvent       = "page_builder_MarkAsSharedContainerEvent"
	RenameContainerDialogEvent       = "page_builder_RenameContainerDialogEvent"
	RenameContainerEvent             = "page_builder_RenameContainerEvent"
	ShowSortedContainerDrawerEvent   = "page_builder_ShowSortedContainerDrawerEvent"
	ReloadRenderPageOrTemplateEvent  = "page_builder_ReloadRenderPageOrTemplateEvent"
	AutoSaveContainerEvent           = "page_builder_AutoSaveContainerEvent"

	DevicePhone    = "phone"
	DeviceTablet   = "tablet"
	DeviceComputer = "computer"

	EventUp     = "up"
	EventDown   = "down"
	EventDelete = "delete"
	EventAdd    = "add"
	EventEdit   = "edit"

	EditorTabElements = "Elements"
	EditorTabLayers   = "Layers"
)
View Source
const ContainerToPageLayoutKey = "ContainerToPageLayout"
View Source
const I18nPageBuilderKey i18n.ModuleKey = "I18nPageBuilderKey"
View Source
const (
	PageBuilderPreviewCard = "PageBuilderPreviewCard"
)

Variables

View Source
var Messages_en_US = &Messages{
	Category:                       "Category",
	Preview:                        "Preview",
	Containers:                     "Containers",
	AddContainers:                  "Add Containers",
	New:                            "New",
	Shared:                         "Shared",
	Select:                         "Select",
	SelectedTemplateLabel:          "Template",
	CreateFromTemplate:             "Create From Template",
	ChangeTemplate:                 "Change Template",
	RelatedOnlinePages:             "Related Online Pages",
	RepublishAllRelatedOnlinePages: "Republish All",
	Unnamed:                        "Unnamed",
	NotDescribed:                   "Not Described",
	Blank:                          "Blank",
	NewPage:                        "New Page",
	FilterTabAllVersions:           "All Versions",
	FilterTabOnlineVersion:         "Online Versions",
	FilterTabNamedVersions:         "Named Versions",
	Rename:                         "Rename",
	PageOverView:                   "Page Overview",
	ErrPermissionDenied:            "Permission Denied",
}
View Source
var Messages_ja_JP = &Messages{
	Category:                       "カテゴリー",
	Preview:                        "プレビュー",
	Containers:                     "コンテナ",
	AddContainers:                  "コンテナを追加する",
	New:                            "新規",
	Shared:                         "共有",
	Select:                         "選択する",
	SelectedTemplateLabel:          "テンプレート",
	CreateFromTemplate:             "テンプレートから新規作成する",
	ChangeTemplate:                 "テンプレートを変更する",
	RelatedOnlinePages:             "関連オンラインページ",
	RepublishAllRelatedOnlinePages: "すべて再公開",
	Unnamed:                        "名前なし",
	NotDescribed:                   "記述されていません",
	Blank:                          "空白",
	NewPage:                        "新しいページ",
	FilterTabAllVersions:           "全てのバージョン",
	FilterTabOnlineVersion:         "オンラインバージョン",
	FilterTabNamedVersions:         "名付け済みバージョン",
	Rename:                         "名前の変更",
	PageOverView:                   "ページ概要",
	ErrPermissionDenied:            "許可が拒否されました",
}
View Source
var Messages_zh_CN = &Messages{
	Category:                       "目录",
	Preview:                        "预览",
	Containers:                     "组件",
	AddContainers:                  "增加组件",
	New:                            "新增",
	Shared:                         "公用的",
	Select:                         "选择",
	SelectedTemplateLabel:          "模板",
	CreateFromTemplate:             "从模板中创建",
	ChangeTemplate:                 "更改模版",
	RelatedOnlinePages:             "相关在线页面",
	RepublishAllRelatedOnlinePages: "重新发布所有页面",
	Unnamed:                        "未命名",
	NotDescribed:                   "未描述",
	Blank:                          "空白",
	NewPage:                        "新页面",
	FilterTabAllVersions:           "所有版本",
	FilterTabOnlineVersion:         "在线版本",
	FilterTabNamedVersions:         "已命名版本",
	Rename:                         "重命名",
	PageOverView:                   "页面概览",
	ErrPermissionDenied:            "沒有權限",
}

Functions

func DefaultPageLayoutFunc

func DefaultPageLayoutFunc(body h.HTMLComponent, input *PageLayoutInput, ctx *web.EventContext) h.HTMLComponent

Types

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

func New

func New(prefix string, db *gorm.DB, i18nB *i18n.Builder) *Builder

func (*Builder) Activity

func (b *Builder) Activity(v *activity.Builder) (r *Builder)

func (*Builder) ContainerByName

func (b *Builder) ContainerByName(name string) (r *ContainerBuilder)

func (*Builder) DefaultDevice

func (b *Builder) DefaultDevice(v string) (r *Builder)

func (*Builder) DuplicateBtnColor

func (b *Builder) DuplicateBtnColor(v string) (r *Builder)

func (*Builder) Editor

func (b *Builder) Editor(m *ModelBuilder) web.PageFunc

func (*Builder) ExpendContainers

func (b *Builder) ExpendContainers(v bool) (r *Builder)

func (*Builder) GetPageTitle

func (b *Builder) GetPageTitle() SubPageTitleFunc

func (*Builder) GetPresetsBuilder

func (b *Builder) GetPresetsBuilder() (r *presets.Builder)

func (*Builder) Images

func (b *Builder) Images(v http.Handler, imagesPrefix string) (r *Builder)

func (*Builder) Install

func (b *Builder) Install(pb *presets.Builder) (err error)

func (*Builder) L10n

func (b *Builder) L10n(v *l10n.Builder) (r *Builder)

func (*Builder) Media

func (b *Builder) Media(v *media.Builder) (r *Builder)

func (*Builder) Model

func (b *Builder) Model(mb *presets.ModelBuilder) (r *ModelBuilder)

func (*Builder) ModelInstall

func (b *Builder) ModelInstall(pb *presets.Builder, mb *presets.ModelBuilder) (err error)

func (*Builder) Note

func (b *Builder) Note(v *note.Builder) (r *Builder)

func (*Builder) PageLayout

func (b *Builder) PageLayout(v PageLayoutFunc) (r *Builder)

func (*Builder) PageStyle

func (b *Builder) PageStyle(v h.HTMLComponent) (r *Builder)

func (*Builder) Prefix

func (b *Builder) Prefix(v string) (r *Builder)

func (*Builder) PreviewDevices

func (b *Builder) PreviewDevices(devices ...Device)

func (*Builder) PublishBtnColor

func (b *Builder) PublishBtnColor(v string) (r *Builder)

func (*Builder) Publisher

func (b *Builder) Publisher(v *publish.Builder) (r *Builder)

func (*Builder) RegisterContainer

func (b *Builder) RegisterContainer(name string) (r *ContainerBuilder)

func (*Builder) RegisterModelContainer

func (b *Builder) RegisterModelContainer(name string, mb *presets.ModelBuilder) (r *ContainerBuilder)

func (*Builder) SEO

func (b *Builder) SEO(v *seo.Builder) (r *Builder)

func (*Builder) ServeHTTP

func (b *Builder) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*Builder) SubPageTitle

func (b *Builder) SubPageTitle(v SubPageTitleFunc) (r *Builder)

func (*Builder) TemplateEnabled

func (b *Builder) TemplateEnabled(v bool) (r *Builder)

func (*Builder) WrapCategoryInstall

func (b *Builder) WrapCategoryInstall(w func(presets.ModelInstallFunc) presets.ModelInstallFunc) (r *Builder)

func (*Builder) WrapPageInstall

func (b *Builder) WrapPageInstall(w func(presets.ModelInstallFunc) presets.ModelInstallFunc) (r *Builder)

func (*Builder) WrapTemplateInstall

func (b *Builder) WrapTemplateInstall(w func(presets.ModelInstallFunc) presets.ModelInstallFunc) (r *Builder)

type Category

type Category struct {
	gorm.Model
	Name        string
	Path        string
	Description string

	IndentLevel int `gorm:"-"`

	l10n.Locale
}

func (*Category) PrimaryColumnValuesBySlug

func (c *Category) PrimaryColumnValuesBySlug(slug string) map[string]string

func (*Category) PrimarySlug

func (c *Category) PrimarySlug() string

func (*Category) TableName

func (*Category) TableName() string

type Container

type Container struct {
	gorm.Model
	PageID        uint
	PageVersion   string
	PageModelName string
	ModelName     string
	ModelID       uint
	DisplayOrder  float64
	Shared        bool
	Hidden        bool
	DisplayName   string

	l10n.Locale
	LocalizeFromModelID uint
}

func (*Container) PrimaryColumnValuesBySlug

func (c *Container) PrimaryColumnValuesBySlug(slug string) map[string]string

func (*Container) PrimarySlug

func (c *Container) PrimarySlug() string

func (*Container) TableName

func (*Container) TableName() string

type ContainerBuilder

type ContainerBuilder struct {
	// contains filtered or unexported fields
}

func (*ContainerBuilder) Cover

func (*ContainerBuilder) Editing

func (b *ContainerBuilder) Editing(vs ...interface{}) *presets.EditingBuilder

func (*ContainerBuilder) GetModelBuilder

func (b *ContainerBuilder) GetModelBuilder() *presets.ModelBuilder

func (*ContainerBuilder) Group

func (*ContainerBuilder) Model

func (b *ContainerBuilder) Model(m interface{}) *ContainerBuilder

func (*ContainerBuilder) ModelTypeName

func (b *ContainerBuilder) ModelTypeName() string

func (*ContainerBuilder) NewModel

func (b *ContainerBuilder) NewModel() interface{}

func (*ContainerBuilder) RenderFunc

func (b *ContainerBuilder) RenderFunc(v RenderFunc) *ContainerBuilder

type ContainerSorter

type ContainerSorter struct {
	Items []ContainerSorterItem `json:"items"`
}

type ContainerSorterItem

type ContainerSorterItem struct {
	Index          int    `json:"index"`
	Label          string `json:"label"`
	ModelName      string `json:"model_name"`
	ModelID        string `json:"model_id"`
	DisplayName    string `json:"display_name"`
	ContainerID    string `json:"container_id"`
	URL            string `json:"url"`
	Shared         bool   `json:"shared"`
	Hidden         bool   `json:"hidden"`
	VisibilityIcon string `json:"visibility_icon"`
	ParamID        string `json:"param_id"`
	Locale         string `json:"locale"`
}

type DemoContainer

type DemoContainer struct {
	gorm.Model
	ModelName string
	ModelID   uint

	l10n.Locale
}

func (*DemoContainer) PrimaryColumnValuesBySlug

func (c *DemoContainer) PrimaryColumnValuesBySlug(slug string) map[string]string

func (*DemoContainer) PrimarySlug

func (c *DemoContainer) PrimarySlug() string

func (*DemoContainer) TableName

func (*DemoContainer) TableName() string

type Device

type Device struct {
	Name  string
	Width string
	Icon  string
}

type Messages

type Messages struct {
	Category                       string
	Preview                        string
	Containers                     string
	AddContainers                  string
	New                            string
	Shared                         string
	Select                         string
	SelectedTemplateLabel          string
	CreateFromTemplate             string
	ChangeTemplate                 string
	RelatedOnlinePages             string
	RepublishAllRelatedOnlinePages string
	Unnamed                        string
	NotDescribed                   string
	Blank                          string
	NewPage                        string
	FilterTabAllVersions           string
	FilterTabOnlineVersion         string
	FilterTabNamedVersions         string
	Rename                         string
	PageOverView                   string
	ErrPermissionDenied            i18n.ErrorString
}

func MustGetMessages

func MustGetMessages(ctx context.Context) *Messages

type ModelBuilder

type ModelBuilder struct {
	// contains filtered or unexported fields
}

func (*ModelBuilder) ContextValueProvider

func (b *ModelBuilder) ContextValueProvider(in context.Context) context.Context

type Page

type Page struct {
	gorm.Model
	Title      string
	Slug       string
	CategoryID uint

	SEO seo.Setting
	publish.Status
	publish.Schedule
	publish.Version
	l10n.Locale
}

func (*Page) GetCategory

func (p *Page) GetCategory(db *gorm.DB) (category Category, err error)

func (*Page) GetID

func (p *Page) GetID() uint

func (*Page) GetPublishActions

func (p *Page) GetPublishActions(mb *presets.ModelBuilder, db *gorm.DB, ctx context.Context, _ storage.Storage) (objs []*publish.PublishAction, err error)

func (*Page) GetTitle

func (p *Page) GetTitle() string

func (*Page) GetUnPublishActions

func (p *Page) GetUnPublishActions(mb *presets.ModelBuilder, db *gorm.DB, ctx context.Context, _ storage.Storage) (objs []*publish.PublishAction, err error)

func (*Page) PermissionRN

func (p *Page) PermissionRN() []string

func (*Page) PrimaryColumnValuesBySlug

func (p *Page) PrimaryColumnValuesBySlug(slug string) map[string]string

func (*Page) PrimarySlug

func (p *Page) PrimarySlug() string

func (*Page) TableName

func (*Page) TableName() string

type PageLayoutFunc

type PageLayoutFunc func(body h.HTMLComponent, input *PageLayoutInput, ctx *web.EventContext) h.HTMLComponent

type PageLayoutInput

type PageLayoutInput struct {
	SeoTags           h.HTMLComponent
	CanonicalLink     h.HTMLComponent
	StructuredData    h.HTMLComponent
	FreeStyleCss      []string
	FreeStyleTopJs    []string
	FreeStyleBottomJs []string
	Hreflang          map[string]string
	Header            h.HTMLComponent
	Footer            h.HTMLComponent
	IsEditor          bool
	LocaleCode        string
	EditorCss         []h.HTMLComponent
	IsPreview         bool
}

type PageTitleInterface

type PageTitleInterface interface {
	GetTitle() string
}

type PrimarySlugInterface

type PrimarySlugInterface interface {
	PrimarySlug() string
	PrimaryColumnValuesBySlug(slug string) map[string]string
}

type RenderFunc

type RenderFunc func(obj interface{}, input *RenderInput, ctx *web.EventContext) h.HTMLComponent

type RenderInput

type RenderInput struct {
	Page        *Page
	IsEditor    bool
	IsReadonly  bool
	Device      string
	ContainerId string
	DisplayName string
}

type SubPageTitleFunc

type SubPageTitleFunc func(ctx *web.EventContext) string

type Template

type Template struct {
	gorm.Model
	Name        string
	Description string

	l10n.Locale
}

func (*Template) GetID

func (t *Template) GetID() uint

func (*Template) Page

func (t *Template) Page() *Page

func (*Template) PrimaryColumnValuesBySlug

func (t *Template) PrimaryColumnValuesBySlug(slug string) map[string]string

func (*Template) PrimarySlug

func (t *Template) PrimarySlug() string

func (*Template) TableName

func (*Template) TableName() string

Directories

Path Synopsis
examplemain command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL