mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 09:15:33 +00:00
75 lines
1.9 KiB
Go
75 lines
1.9 KiB
Go
package pagemodels
|
|
|
|
import (
|
|
"github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels"
|
|
"github.com/pocketbase/pocketbase/core"
|
|
)
|
|
|
|
func BasePageCollection(pagename string) *core.Collection {
|
|
c := core.NewBaseCollection(GeneratePageTableName(pagename))
|
|
c.ListRule = dbmodels.PUBLIC_LIST_RULE
|
|
c.ViewRule = dbmodels.PUBLIC_VIEW_RULE
|
|
c.Fields = append(c.Fields, StandardPageFields()...)
|
|
return c
|
|
}
|
|
|
|
func StandardPageFields() core.FieldsList {
|
|
ret := core.NewFieldsList(
|
|
RequiredTextField(F_TITLE),
|
|
EditorField(F_DESCRIPTION),
|
|
TextField(F_TAGS),
|
|
)
|
|
|
|
ret = append(ret, CreatedUpdatedFields()...)
|
|
return ret
|
|
}
|
|
|
|
func RequiredTextField(name string) *core.TextField {
|
|
return &core.TextField{Name: name, Required: true, Presentable: true}
|
|
}
|
|
|
|
func EditorField(name string) *core.EditorField {
|
|
return &core.EditorField{Name: name, Required: false, Presentable: false}
|
|
}
|
|
|
|
func TextField(name string) *core.TextField {
|
|
return &core.TextField{Name: name, Required: false, Presentable: false}
|
|
}
|
|
|
|
func ImageField(name string, multiselect bool) *core.FileField {
|
|
maxSelect := 1
|
|
if multiselect {
|
|
maxSelect = 999
|
|
}
|
|
return &core.FileField{
|
|
Name: name,
|
|
Required: false,
|
|
MaxSize: 100 * 1024 * 1024,
|
|
MaxSelect: maxSelect,
|
|
MimeTypes: dbmodels.MUSENALM_MIME_TYPES,
|
|
Thumbs: []string{"0x300", "0x500", "0x1000", "300x0", "500x0", "1000x0"},
|
|
}
|
|
}
|
|
|
|
func RequiredImageField(name string, multiselect bool) *core.FileField {
|
|
maxSelect := 1
|
|
if multiselect {
|
|
maxSelect = 999
|
|
}
|
|
return &core.FileField{
|
|
Name: name,
|
|
Required: true,
|
|
MaxSize: 100 * 1024 * 1024,
|
|
MaxSelect: maxSelect,
|
|
MimeTypes: dbmodels.MUSENALM_MIME_TYPES,
|
|
Thumbs: []string{"0x300", "0x500", "0x1000", "300x0", "500x0", "1000x0"},
|
|
}
|
|
}
|
|
|
|
func CreatedUpdatedFields() core.FieldsList {
|
|
return core.NewFieldsList(
|
|
&core.AutodateField{Name: dbmodels.CREATED_FIELD, OnCreate: true},
|
|
&core.AutodateField{Name: dbmodels.UPDATED_FIELD, OnCreate: true, OnUpdate: true},
|
|
)
|
|
}
|