mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 01:05:32 +00:00
First Page
This commit is contained in:
9
app/pages.go
Normal file
9
app/pages.go
Normal file
@@ -0,0 +1,9 @@
|
||||
package app
|
||||
|
||||
import "github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels"
|
||||
|
||||
var pages []pagemodels.IPage
|
||||
|
||||
func Register(page pagemodels.IPage) {
|
||||
pages = append(pages, page)
|
||||
}
|
||||
40
app/pb.go
40
app/pb.go
@@ -4,6 +4,9 @@ import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels"
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/templating"
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/views"
|
||||
"github.com/mattn/go-sqlite3"
|
||||
"github.com/pocketbase/dbx"
|
||||
"github.com/pocketbase/pocketbase"
|
||||
@@ -14,11 +17,12 @@ import (
|
||||
type App struct {
|
||||
PB *pocketbase.PocketBase
|
||||
MAConfig Config
|
||||
Pages []pagemodels.IPage
|
||||
}
|
||||
|
||||
const (
|
||||
TEST_SUPERUSER_MAIL = "test@test.de"
|
||||
TEST_SUPERUSER_PASS = "passwort"
|
||||
TEST_SUPERUSER_MAIL = "demo@example.com"
|
||||
TEST_SUPERUSER_PASS = "password"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -94,3 +98,35 @@ func (app *App) setupTestuser() {
|
||||
return e.Next()
|
||||
})
|
||||
}
|
||||
|
||||
func (app *App) Serve() error {
|
||||
engine := templating.NewEngine(&views.LayoutFS, &views.RoutesFS)
|
||||
|
||||
app.PB.OnBootstrap().BindFunc(func(e *core.BootstrapEvent) error {
|
||||
e.Next()
|
||||
for _, page := range pages {
|
||||
err := page.Up(e.App)
|
||||
if err != nil {
|
||||
page.Down(e.App)
|
||||
continue
|
||||
}
|
||||
app.Pages = append(app.Pages, page)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
app.PB.OnServe().BindFunc(func(e *core.ServeEvent) error {
|
||||
for _, page := range app.Pages {
|
||||
page.Setup(e.Router, e.App, engine)
|
||||
}
|
||||
return e.Next()
|
||||
})
|
||||
return app.PB.Start()
|
||||
}
|
||||
|
||||
func (app *App) ResetPages() error {
|
||||
for _, page := range pages {
|
||||
page.Down(app.PB)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user