list

package
v1.7.4 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2026 License: GPL-2.0 Imports: 39 Imported by: 0

Documentation

Overview

templ: version: v0.3.1020

templ: version: v0.3.1020

templ: version: v0.3.1020

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllowListEdit added in v1.7.2

func AllowListEdit(ctx context.Context) bool

func AllowListRowSelect added in v1.7.2

func AllowListRowSelect(ctx context.Context) bool

func ExportCSV added in v1.7.2

func ExportCSV[T attrs.Definer](w http.ResponseWriter, r *http.Request, m *ListExportMixin[T], qs *queries.QuerySet[T], export *Export) error

func ExportJSON added in v1.7.2

func ExportJSON[T attrs.Definer](w http.ResponseWriter, r *http.Request, m *ListExportMixin[T], qs *queries.QuerySet[T], export *Export) error

func ExportText added in v1.7.2

func ExportText[T attrs.Definer](w http.ResponseWriter, r *http.Request, m *ListExportMixin[T], qs *queries.QuerySet[T], export *Export) error

func PageFromContext added in v1.7.2

func PageFromContext[T any](ctx context.Context) pagination.PageObject[T]

func PaginatorFromContext added in v1.7.2

func PaginatorFromContext[T attrs.Definer](ctx context.Context) pagination.Pagination[T]

func RenameColumn added in v1.7.2

func RenameColumn[T attrs.Definer](column ListColumn[T], fieldName string) *renamedColumn[T]

func SetAllowListEdit added in v1.7.2

func SetAllowListEdit(ctx context.Context, allow bool) context.Context

func SetAllowListRowSelect added in v1.7.2

func SetAllowListRowSelect(ctx context.Context, allow bool) context.Context

Types

type BoundBoolFunc added in v1.7.2

type BoundBoolFunc[T attrs.Definer] = func(r *http.Request, defs attrs.Definitions, row T) bool

type BoundView added in v1.7.2

type BoundView[T attrs.Definer] struct {
	View       *View[T]
	Bases      []views.View
	W          http.ResponseWriter
	R          *http.Request
	Context    ctx.Context
	QuerySet   *queries.QuerySet[T]
	Pagination pagination.Pagination[T]
	PageObject pagination.PageObject[T]
	Page       int
	Amount     int
}

func NewBoundView added in v1.7.2

func NewBoundView[T attrs.Definer](w http.ResponseWriter, r *http.Request, view *View[T], bases []views.View) *BoundView[T]

func (*BoundView[T]) GetContext added in v1.7.2

func (v *BoundView[T]) GetContext(r *http.Request, qs *queries.QuerySet[T], context ctx.Context) (ctx.Context, error)

func (*BoundView[T]) GetList added in v1.7.2

func (v *BoundView[T]) GetList(r *http.Request, pageObject pagination.PageObject[T], columns []ListColumn[T], context ctx.Context) (list StringRenderer, err error)

func (*BoundView[T]) GetPaginator added in v1.7.2

func (v *BoundView[T]) GetPaginator(req *http.Request, qs *queries.QuerySet[T]) (pagination.Pagination[T], pagination.PageObject[T], error)

func (*BoundView[T]) GetQuerySet added in v1.7.2

func (v *BoundView[T]) GetQuerySet(r *http.Request) (*queries.QuerySet[T], error)

func (*BoundView[T]) Mixins added in v1.7.2

func (v *BoundView[T]) Mixins() []views.View

func (*BoundView[T]) ServeXXX added in v1.7.2

func (v *BoundView[T]) ServeXXX(w http.ResponseWriter, req *http.Request)

type ColumnGroup

type ColumnGroup[T attrs.Definer] interface {
	Row() T
	AddColumn(column ListColumn[T])
	Form(r *http.Request, opts ...func(forms.Form)) forms.Form
	Component(r *http.Request, form *ListForm[T]) templ.Component
}

type EditableColumnConfig added in v1.7.2

type EditableColumnConfig struct {
	FieldName     string
	Widget        widgets.Widget
	WidgetAttrs   map[string]string
	HasPermission BoundBoolFunc[attrs.Definer]
	ColumnAttrs   map[string]any
}

type Export added in v1.7.2

type Export struct {
	Filename string          `json:"-"`
	Header   []string        `json:"header"`
	Rows     [][]interface{} `json:"rows"`
}

type ExportColumn added in v1.7.2

type ExportColumn[T any] interface {
	FieldNames() []string
	IsExportable(r *http.Request) bool
	ExportHeader(r *http.Request) string
	ExportValue(r *http.Request, object T) (interface{}, error)
}

type FieldExportColumn added in v1.7.2

type FieldExportColumn[T attrs.Definer] struct {
	FieldName     string
	HasPermission func(r *http.Request) bool
	Header        func(c context.Context) string
}

func (*FieldExportColumn[T]) ExportHeader added in v1.7.2

func (c *FieldExportColumn[T]) ExportHeader(r *http.Request) string

func (*FieldExportColumn[T]) ExportValue added in v1.7.2

func (c *FieldExportColumn[T]) ExportValue(r *http.Request, obj T) (interface{}, error)

func (*FieldExportColumn[T]) FieldNames added in v1.7.2

func (c *FieldExportColumn[T]) FieldNames() []string

func (*FieldExportColumn[T]) IsExportable added in v1.7.2

func (c *FieldExportColumn[T]) IsExportable(r *http.Request) bool

type List

type List[T attrs.Definer] struct {
	Model        T
	Columns      []ListColumn[T]
	HideHeadings bool
	// contains filtered or unexported fields
}

func NewList

func NewList[T attrs.Definer](r *http.Request, modelObj T, list []T, columns ...ListColumn[T]) *List[T]

func NewListWithGroups added in v1.7.2

func NewListWithGroups[T attrs.Definer](r *http.Request, modelObj T, list []T, columns []ListColumn[T], newGroup func(r *http.Request, obj T, cols []ListColumn[T]) ColumnGroup[T]) *List[T]

func (*List[T]) Component

func (l *List[T]) Component() templ.Component

func (*List[T]) Form added in v1.7.2

func (l *List[T]) Form(opts ...func(forms.Form)) *ListForm[T]

func (*List[T]) Media added in v1.7.2

func (l *List[T]) Media() media.Media

func (*List[T]) Render

func (l *List[T]) Render() string

type ListColumn

type ListColumn[T attrs.Definer] interface {
	Header(r *http.Request) templ.Component
	FieldName() string
	Component(r *http.Request, defs attrs.Definitions, row T) templ.Component
	Attributes(r *http.Request, defs attrs.Definitions, row T, colIndex, colCount int) map[string]any
}

func BooleanColumnFunc added in v1.7.2

func BooleanColumnFunc[T attrs.Definer](header func(ctx context.Context) string, data func(r *http.Request, defs attrs.Definitions, row T) bool) ListColumn[T]

func BooleanFieldColumn added in v1.7.2

func BooleanFieldColumn[T attrs.Definer](header func(ctx context.Context) string, fieldName string) ListColumn[T]

func ChangeColumnType added in v1.7.2

func ChangeColumnType[T1, T2 attrs.Definer](col ListColumn[T2], args ...any) ListColumn[T1]

func Column

func Column[T attrs.Definer](header func(ctx context.Context) string, getter any) ListColumn[T]

func DateTimeColumnFunc added in v1.7.2

func DateTimeColumnFunc[T attrs.Definer](fmt string, header func(ctx context.Context) string, data func(r *http.Request, defs attrs.Definitions, row T) time.Time) ListColumn[T]

func DateTimeFieldColumn added in v1.7.2

func DateTimeFieldColumn[T attrs.Definer](fmt string, header func(ctx context.Context) string, fieldName string) ListColumn[T]

func EditableColumn added in v1.7.2

func EditableColumn[T attrs.Definer](header func(ctx context.Context) string, config EditableColumnConfig) ListColumn[T]

func FieldCheckbox added in v1.7.2

func FieldCheckbox[T attrs.Definer](header func(ctx context.Context) string, fieldName string, hasPermission BoundBoolFunc[T]) ListColumn[T]

func FieldColumn

func FieldColumn[T attrs.Definer](header func(ctx context.Context) string, fieldName string) ListColumn[T]

func FuncColumn

func FuncColumn[T attrs.Definer](header func(ctx context.Context) string, data func(r *http.Request, defs attrs.Definitions, row T) interface{}) ListColumn[T]

func HTMLColumn

func HTMLColumn[T attrs.Definer](header func(ctx context.Context) string, getHTML func(r *http.Request, defs attrs.Definitions, row T) template.HTML) ListColumn[T]

func HTMLFieldColumn added in v1.7.2

func HTMLFieldColumn[T attrs.Definer](header func(ctx context.Context) string, fieldName string) ListColumn[T]

func LinkColumn

func LinkColumn[T attrs.Definer](header func(ctx context.Context) string, fieldName string, getURL func(r *http.Request, defs attrs.Definitions, row T) string) ListColumn[T]

func ProcessableFieldColumn added in v1.7.2

func ProcessableFieldColumn[T attrs.Definer, VAL any](header func(ctx context.Context) string, fieldName string, process func(r *http.Request, defs attrs.Definitions, row T, value VAL) any) ListColumn[T]

func RowSelectColumn added in v1.7.2

func RowSelectColumn[T attrs.Definer](formName string, isChecked BoundBoolFunc[T], hasPermission func(r *http.Request) bool, wraps ListColumn[T], hdrAttrs, attrs map[string]any) ListColumn[T]

func TitleFieldColumn

func TitleFieldColumn[T attrs.Definer](wraps ListColumn[T], getURL func(r *http.Request, defs attrs.Definitions, row T) string) ListColumn[T]

type ListColumnGroup added in v1.7.2

type ListColumnGroup[T attrs.Definer] struct {
	Definitions attrs.Definitions
	Columns     []ListColumn[T]
	Instance    T
	Attrs       func(r *http.Request, definitions attrs.Definitions, instance T) map[string]any
}

func NewColumnGroup added in v1.7.2

func NewColumnGroup[T attrs.Definer](r *http.Request, instance T, columns []ListColumn[T]) *ListColumnGroup[T]

func (*ListColumnGroup[T]) AddColumn added in v1.7.2

func (c *ListColumnGroup[T]) AddColumn(column ListColumn[T])

func (*ListColumnGroup[T]) Component added in v1.7.2

func (c *ListColumnGroup[T]) Component(r *http.Request, form *ListForm[T]) templ.Component

func (*ListColumnGroup[T]) Form added in v1.7.2

func (c *ListColumnGroup[T]) Form(r *http.Request, opts ...func(forms.Form)) forms.Form

func (*ListColumnGroup[T]) GetAttrs added in v1.7.2

func (c *ListColumnGroup[T]) GetAttrs(r *http.Request, definitions attrs.Definitions, instance T) map[string]any

func (*ListColumnGroup[T]) RenderColumns added in v1.7.2

func (c *ListColumnGroup[T]) RenderColumns(r *http.Request, form *ListForm[T]) templ.Component

func (*ListColumnGroup[T]) Row added in v1.7.2

func (c *ListColumnGroup[T]) Row() T

type ListEditableColumn added in v1.7.2

type ListEditableColumn[T attrs.Definer] interface {
	ListColumn[T]
	FormField(r *http.Request, row T) fields.Field
	EditableComponent(r *http.Request, defs attrs.Definitions, row T, form forms.Form, field *forms.BoundFormField) templ.Component
}

type ListExportMixin added in v1.7.2

type ListExportMixin[T attrs.Definer] struct {
	Model          T
	Columns        []ExportColumn[T]
	GetFileName    func(r *http.Request) string
	ChangeQuerySet func(r *http.Request, qs *queries.QuerySet[T]) (*queries.QuerySet[T], error)
	Export         func(w http.ResponseWriter, r *http.Request, m *ListExportMixin[T], qs *queries.QuerySet[T], export *Export) error
}

func (*ListExportMixin[T]) Hijack added in v1.7.2

func (*ListExportMixin[T]) ServeXXX added in v1.7.2

func (m *ListExportMixin[T]) ServeXXX(w http.ResponseWriter, r *http.Request)

type ListForm added in v1.7.2

type ListForm[T attrs.Definer] struct {
	List *List[T]
	// contains filtered or unexported fields
}

func NewListForm added in v1.7.2

func NewListForm[T attrs.Definer](l *List[T], opts ...func(forms.Form)) *ListForm[T]

func (*ListForm[T]) BoundErrors added in v1.7.2

func (lf *ListForm[T]) BoundErrors() *orderedmap.OrderedMap[string, []error]

func (*ListForm[T]) CleanedData added in v1.7.2

func (lf *ListForm[T]) CleanedData() map[any]map[string]any

func (*ListForm[T]) Errors added in v1.7.2

func (lf *ListForm[T]) Errors() []error

func (*ListForm[T]) ForInstance added in v1.7.2

func (lf *ListForm[T]) ForInstance(instance T) forms.Form

func (*ListForm[T]) Forms added in v1.7.2

func (lf *ListForm[T]) Forms() map[any]forms.Form

func (*ListForm[T]) IsValid added in v1.7.2

func (lf *ListForm[T]) IsValid() bool

type ListMediaColumn added in v1.7.2

type ListMediaColumn interface {
	Media(defs attrs.StaticDefinitions) media.Media
}

type ListObjectMixin added in v1.7.2

type ListObjectMixin[T attrs.Definer] struct {
	ListView    *View[T]
	List        StringRenderer
	FormOptions []func(forms.Form)
}

func (*ListObjectMixin[T]) GetContext added in v1.7.2

func (m *ListObjectMixin[T]) GetContext(r *http.Request, view views.View, qs *queries.QuerySet[T], viewCtx ctx.Context) (ctx.Context, error)

func (*ListObjectMixin[T]) Hijack added in v1.7.2

func (*ListObjectMixin[T]) ServeXXX added in v1.7.2

func (m *ListObjectMixin[T]) ServeXXX(w http.ResponseWriter, r *http.Request)

type StringRenderer added in v1.7.2

type StringRenderer interface {
	Render() string
}

type View

type View[T attrs.Definer] struct {
	Model            T
	AllowedMethods   []string
	BaseTemplateKey  string
	TemplateName     string
	AmountParam      string
	PageParam        string
	MaxAmount        int
	DefaultAmount    int
	ListColumns      []ListColumn[T]
	Mixins           func(r *http.Request, v *View[T]) []views.View
	TitleFieldColumn func(col ListColumn[T]) ListColumn[T]
	GetContextFn     func(r *http.Request, qs *queries.QuerySet[T]) (ctx.Context, error)
	ChangeContextFn  func(r *http.Request, qs *queries.QuerySet[T], ctx ctx.Context) (ctx.Context, error)
	List             func(*http.Request, pagination.PageObject[T], []ListColumn[T], ctx.Context) (StringRenderer, error)
	QuerySet         func(r *http.Request) *queries.QuerySet[T]
	OnError          func(w http.ResponseWriter, r *http.Request, err error)
}

func (*View[T]) Bind added in v1.7.2

func (v *View[T]) Bind(w http.ResponseWriter, req *http.Request) (views.View, error)

func (*View[T]) Clone added in v1.7.2

func (v *View[T]) Clone() *View[T]

func (*View[T]) GetContext

func (v *View[T]) GetContext(r *http.Request, qs *queries.QuerySet[T]) (ctx.Context, error)

func (*View[T]) GetListColumns added in v1.7.2

func (v *View[T]) GetListColumns(r *http.Request) ([]ListColumn[T], error)

func (*View[T]) GetPaginator added in v1.7.2

func (v *View[T]) GetPaginator(req *http.Request, qs *queries.QuerySet[T]) (pagination.Pagination[T], pagination.PageObject[T], error)

func (*View[T]) GetQuerySet added in v1.7.2

func (v *View[T]) GetQuerySet(r *http.Request) (*queries.QuerySet[T], error)

func (*View[T]) GetTemplate added in v1.7.2

func (v *View[T]) GetTemplate(req *http.Request) string

func (*View[T]) Methods added in v1.7.2

func (v *View[T]) Methods() []string

func (*View[T]) Render added in v1.7.2

func (v *View[T]) Render(w http.ResponseWriter, req *http.Request, templateName string, context ctx.Context) error

func (*View[T]) ServeXXX added in v1.7.2

func (v *View[T]) ServeXXX(w http.ResponseWriter, req *http.Request)

func (*View[T]) TakeControl added in v1.7.2

func (v *View[T]) TakeControl(w http.ResponseWriter, r *http.Request, view views.View)

Jump to

Keyboard shortcuts

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