mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2026-02-04 10:35:30 +00:00
+extra page table
This commit is contained in:
@@ -582,6 +582,7 @@ func pagesTable() *core.Collection {
|
||||
func pagesTableFields() core.FieldsList {
|
||||
fields := core.NewFieldsList(
|
||||
&core.TextField{Name: dbmodels.KEY_FIELD, Required: true, Presentable: true},
|
||||
&core.TextField{Name: dbmodels.TITLE_FIELD, Required: false},
|
||||
&core.TextField{Name: dbmodels.URL_FIELD, Required: false},
|
||||
&core.TextField{Name: dbmodels.TEMPLATE_FIELD, Required: false},
|
||||
&core.TextField{Name: dbmodels.LAYOUT_FIELD, Required: false},
|
||||
|
||||
@@ -325,42 +325,42 @@ const (
|
||||
)
|
||||
|
||||
var pageMetaSeed = map[string]PageMeta{
|
||||
pageDataKey(pagemodels.P_INDEX_NAME): {
|
||||
pagemodels.P_INDEX_NAME: {
|
||||
Title: INDEX_TITLE,
|
||||
Description: INDEX_DESCRIPTION,
|
||||
Keywords: "",
|
||||
},
|
||||
pageDataKey(pagemodels.P_REIHEN_NAME): {
|
||||
pagemodels.P_REIHEN_NAME: {
|
||||
Title: REIHEN_TITLE,
|
||||
Description: REIHEN_DESCRIPTION,
|
||||
Keywords: "",
|
||||
},
|
||||
pageDataKey(pagemodels.P_DANK_NAME): {
|
||||
pagemodels.P_DANK_NAME: {
|
||||
Title: "Danksagungen",
|
||||
Description: DANKSAGUNGEN_DESCRIPTION,
|
||||
Keywords: "",
|
||||
},
|
||||
pageDataKey(pagemodels.P_EINFUEHRUNG_NAME): {
|
||||
pagemodels.P_EINFUEHRUNG_NAME: {
|
||||
Title: EINLEITUNG_TITLE,
|
||||
Description: EINLEITUNG_DESCRIPTION,
|
||||
Keywords: "",
|
||||
},
|
||||
pageDataKey(pagemodels.P_KONTAKT_NAME): {
|
||||
pagemodels.P_KONTAKT_NAME: {
|
||||
Title: KONTAKT_TITLE,
|
||||
Description: KONTAKT_DESCRIPTION,
|
||||
Keywords: "",
|
||||
},
|
||||
pageDataKey(pagemodels.P_LIT_NAME): {
|
||||
pagemodels.P_LIT_NAME: {
|
||||
Title: LITERATUR_TITLE,
|
||||
Description: LITERATUR_DESCRIPTION,
|
||||
Keywords: "",
|
||||
},
|
||||
pageDataKey(pagemodels.P_DOK_NAME): {
|
||||
pagemodels.P_DOK_NAME: {
|
||||
Title: DOKUMENTATION_TITLE,
|
||||
Description: DOKUMENTATION_DESCRIPTION,
|
||||
Keywords: "",
|
||||
},
|
||||
pageDataKey(pagemodels.P_KABINETT_NAME): {
|
||||
pagemodels.P_KABINETT_NAME: {
|
||||
Title: KABINETT_TITLE,
|
||||
Description: KABINETT_DESCRIPTION,
|
||||
Keywords: "",
|
||||
@@ -382,7 +382,7 @@ var pageHTMLSeed = map[string]string{
|
||||
func init() {
|
||||
m.Register(func(app core.App) error {
|
||||
for key, meta := range pageMetaSeed {
|
||||
if err := upsertData(app, key, meta); err != nil {
|
||||
if err := upsertPageMeta(app, key, meta); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -413,7 +413,7 @@ func init() {
|
||||
}
|
||||
|
||||
for key := range pageMetaSeed {
|
||||
if err := deleteByKey(app, dbmodels.DATA_TABLE, key); err != nil {
|
||||
if err := deleteByKey(app, dbmodels.PAGES_TABLE, key); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,10 +11,6 @@ type PageMeta struct {
|
||||
Keywords string `json:"keywords"`
|
||||
}
|
||||
|
||||
func pageDataKey(name string) string {
|
||||
return "page." + name
|
||||
}
|
||||
|
||||
func pageHTMLKey(name, section string) string {
|
||||
if section == "" {
|
||||
return "page." + name
|
||||
@@ -22,6 +18,33 @@ func pageHTMLKey(name, section string) string {
|
||||
return "page." + name + "." + section
|
||||
}
|
||||
|
||||
func upsertPageMeta(app core.App, key string, meta PageMeta) error {
|
||||
collection, err := app.FindCollectionByNameOrId(dbmodels.PAGES_TABLE)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
record, _ := app.FindFirstRecordByData(collection.Id, dbmodels.KEY_FIELD, key)
|
||||
if record == nil {
|
||||
record = core.NewRecord(collection)
|
||||
record.Set(dbmodels.KEY_FIELD, key)
|
||||
}
|
||||
record.Set(dbmodels.TITLE_FIELD, meta.Title)
|
||||
|
||||
data := map[string]any{}
|
||||
if existing := record.Get(dbmodels.DATA_FIELD); existing != nil {
|
||||
if existingMap, ok := existing.(map[string]any); ok {
|
||||
data = existingMap
|
||||
} else if existingMap, ok := existing.(map[string]interface{}); ok {
|
||||
data = map[string]any(existingMap)
|
||||
}
|
||||
}
|
||||
data["description"] = meta.Description
|
||||
data["keywords"] = meta.Keywords
|
||||
record.Set(dbmodels.DATA_FIELD, data)
|
||||
return app.Save(record)
|
||||
}
|
||||
|
||||
func upsertHTML(app core.App, key, value string) error {
|
||||
collection, err := app.FindCollectionByNameOrId(dbmodels.HTML_TABLE)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user