mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 01:05:32 +00:00
Erste Experimente mit Reihen
This commit is contained in:
@@ -2,6 +2,10 @@ package pagemodels
|
||||
|
||||
const PAGE_DB_PREFIX = "page_"
|
||||
|
||||
func GeneratePageTableName(pagename, tablename string) string {
|
||||
return PAGE_DB_PREFIX + pagename + "_" + tablename
|
||||
func GeneratePageTableName(pagename string, tablename ...string) string {
|
||||
name := PAGE_DB_PREFIX + pagename
|
||||
for _, t := range tablename {
|
||||
name += "_" + t
|
||||
}
|
||||
return name
|
||||
}
|
||||
|
||||
65
pagemodels/functions.go
Normal file
65
pagemodels/functions.go
Normal file
@@ -0,0 +1,65 @@
|
||||
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 = StandardPageFields()
|
||||
return c
|
||||
}
|
||||
|
||||
func StandardPageFields() core.FieldsList {
|
||||
ret := core.NewFieldsList(
|
||||
RequiredTextField(F_TITLE),
|
||||
EditorField(F_DESCRIPTION),
|
||||
TextField(F_TAGS),
|
||||
)
|
||||
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"},
|
||||
}
|
||||
}
|
||||
@@ -5,21 +5,6 @@ import (
|
||||
"github.com/pocketbase/pocketbase/tools/filesystem"
|
||||
)
|
||||
|
||||
const (
|
||||
P_INDEX_NAME = "index"
|
||||
T_INDEX_BILDER = "bilder"
|
||||
T_INDEX_TEXTE = "texte"
|
||||
|
||||
F_INDEX_BILDER_TITEL = "Titel"
|
||||
F_INDEX_BILDER_BESCHREIBUNG = "Beschreibung"
|
||||
F_INDEX_BILDER_BILD = "Bild"
|
||||
F_INDEX_BILDER_VORSCHAU = "Vorschau"
|
||||
|
||||
F_INDEX_TEXTE_TITEL = "Titel"
|
||||
F_INDEX_TEXTE_ABS1 = "Abs1"
|
||||
F_INDEX_TEXTE_ABS2 = "Abs2"
|
||||
)
|
||||
|
||||
type IndexBilder struct {
|
||||
core.BaseRecordProxy
|
||||
}
|
||||
@@ -35,35 +20,35 @@ func NewIndexBilder(record *core.Record) *IndexBilder {
|
||||
}
|
||||
|
||||
func (b *IndexBilder) Titel() string {
|
||||
return b.GetString(F_INDEX_BILDER_TITEL)
|
||||
return b.GetString(F_TITLE)
|
||||
}
|
||||
|
||||
func (b *IndexBilder) SetTitel(titel string) {
|
||||
b.Set(F_INDEX_BILDER_TITEL, titel)
|
||||
b.Set(F_TITLE, titel)
|
||||
}
|
||||
|
||||
func (b *IndexBilder) Beschreibung() string {
|
||||
return b.GetString(F_INDEX_BILDER_BESCHREIBUNG)
|
||||
return b.GetString(F_DESCRIPTION)
|
||||
}
|
||||
|
||||
func (b *IndexBilder) SetBeschreibung(beschreibung string) {
|
||||
b.Set(F_INDEX_BILDER_BESCHREIBUNG, beschreibung)
|
||||
b.Set(F_DESCRIPTION, beschreibung)
|
||||
}
|
||||
|
||||
func (b *IndexBilder) Bild() string {
|
||||
return b.GetString(F_INDEX_BILDER_BILD)
|
||||
return b.GetString(F_IMAGE)
|
||||
}
|
||||
|
||||
func (b *IndexBilder) SetBild(bild *filesystem.File) {
|
||||
b.Set(F_INDEX_BILDER_BILD, bild)
|
||||
b.Set(F_IMAGE, bild)
|
||||
}
|
||||
|
||||
func (b *IndexBilder) Vorschau() string {
|
||||
return b.GetString(F_INDEX_BILDER_VORSCHAU)
|
||||
return b.GetString(F_PREVIEW)
|
||||
}
|
||||
|
||||
func (b *IndexBilder) SetVorschau(vorschau *filesystem.File) {
|
||||
b.Set(F_INDEX_BILDER_VORSCHAU, vorschau)
|
||||
b.Set(F_PREVIEW, vorschau)
|
||||
}
|
||||
|
||||
type IndexTexte struct {
|
||||
@@ -71,7 +56,7 @@ type IndexTexte struct {
|
||||
}
|
||||
|
||||
func (t *IndexTexte) TableName() string {
|
||||
return GeneratePageTableName(P_INDEX_NAME, T_INDEX_TEXTE)
|
||||
return GeneratePageTableName(P_INDEX_NAME)
|
||||
}
|
||||
|
||||
func NewIndexTexte(record *core.Record) *IndexTexte {
|
||||
@@ -81,11 +66,11 @@ func NewIndexTexte(record *core.Record) *IndexTexte {
|
||||
}
|
||||
|
||||
func (t *IndexTexte) Titel() string {
|
||||
return t.GetString(F_INDEX_TEXTE_TITEL)
|
||||
return t.GetString(F_TITLE)
|
||||
}
|
||||
|
||||
func (t *IndexTexte) SetTitel(titel string) {
|
||||
t.Set(F_INDEX_TEXTE_TITEL, titel)
|
||||
t.Set(F_TITLE, titel)
|
||||
}
|
||||
|
||||
func (t *IndexTexte) Abs1() string {
|
||||
|
||||
20
pagemodels/pagedata.go
Normal file
20
pagemodels/pagedata.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package pagemodels
|
||||
|
||||
const (
|
||||
P_INDEX_NAME = "index"
|
||||
T_INDEX_BILDER = "bilder"
|
||||
T_INDEX_TEXTE = "texte"
|
||||
|
||||
P_REIHEN_NAME = "reihen"
|
||||
|
||||
F_TITLE = "Titel"
|
||||
F_DESCRIPTION = "Beschreibung"
|
||||
F_IMAGE = "Bild"
|
||||
F_PREVIEW = "Vorschau"
|
||||
F_TEXT = "Text"
|
||||
F_TAGS = "Stichworte"
|
||||
|
||||
F_INDEX_TEXTE_ABS1 = "Abs1"
|
||||
F_INDEX_TEXTE_ABS2 = "Abs2"
|
||||
F_INDEX_GO_BUTTON = "GoButton"
|
||||
)
|
||||
60
pagemodels/reihen.go
Normal file
60
pagemodels/reihen.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package pagemodels
|
||||
|
||||
import (
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
"github.com/pocketbase/pocketbase/tools/filesystem"
|
||||
)
|
||||
|
||||
type Reihen struct {
|
||||
core.BaseRecordProxy
|
||||
}
|
||||
|
||||
func (r *Reihen) TableName() string {
|
||||
return GeneratePageTableName(P_REIHEN_NAME)
|
||||
}
|
||||
|
||||
func NewReihen(record *core.Record) *Reihen {
|
||||
i := &Reihen{}
|
||||
i.SetProxyRecord(record)
|
||||
return i
|
||||
}
|
||||
|
||||
func (r *Reihen) Title() string {
|
||||
return r.GetString(F_TITLE)
|
||||
}
|
||||
|
||||
func (r *Reihen) SetTitle(titel string) {
|
||||
r.Set(F_TITLE, titel)
|
||||
}
|
||||
|
||||
func (r *Reihen) Description() string {
|
||||
return r.GetString(F_DESCRIPTION)
|
||||
}
|
||||
|
||||
func (r *Reihen) SetDescription(beschreibung string) {
|
||||
r.Set(F_DESCRIPTION, beschreibung)
|
||||
}
|
||||
|
||||
func (r *Reihen) Keywords() string {
|
||||
return r.GetString(F_TAGS)
|
||||
}
|
||||
|
||||
func (r *Reihen) SetKeywords(keywords string) {
|
||||
r.Set(F_TAGS, keywords)
|
||||
}
|
||||
|
||||
func (r *Reihen) Text() string {
|
||||
return r.GetString(F_TEXT)
|
||||
}
|
||||
|
||||
func (r *Reihen) SetText(text string) {
|
||||
r.Set(F_TEXT, text)
|
||||
}
|
||||
|
||||
func (r *Reihen) Image() string {
|
||||
return r.GetString(F_IMAGE)
|
||||
}
|
||||
|
||||
func (r *Reihen) SetImage(image *filesystem.File) {
|
||||
r.Set(F_IMAGE, image)
|
||||
}
|
||||
Reference in New Issue
Block a user