/
admin.go
68 lines (53 loc) · 1.81 KB
/
admin.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package admin
import (
"github.com/qor/action_bar"
"github.com/qor/admin"
"github.com/qor/help"
"github.com/qor/media/asset_manager"
"github.com/qor/media/media_library"
"github.com/qor/qor-example/config/application"
"github.com/qor/qor-example/config/i18n"
"github.com/qor/qor-example/models/settings"
)
// ActionBar admin action bar
var ActionBar *action_bar.ActionBar
// AssetManager asset manager
var AssetManager *admin.Resource
// New new home app
func New(config *Config) *App {
if config.Prefix == "" {
config.Prefix = "/admin"
}
return &App{Config: config}
}
// App home app
type App struct {
Config *Config
}
// Config home config struct
type Config struct {
Prefix string
}
// ConfigureApplication configure application
func (app App) ConfigureApplication(application *application.Application) {
Admin := application.Admin
AssetManager = Admin.AddResource(&asset_manager.AssetManager{}, &admin.Config{Invisible: true})
// Add Media Library
Admin.AddResource(&media_library.MediaLibrary{}, &admin.Config{Menu: []string{"Site Management"}})
// Add Help
Help := Admin.NewResource(&help.QorHelpEntry{})
Help.Meta(&admin.Meta{Name: "Body", Config: &admin.RichEditorConfig{AssetManager: AssetManager}})
// Add action bar
ActionBar = action_bar.New(Admin)
ActionBar.RegisterAction(&action_bar.Action{Name: "Admin Dashboard", Link: "/admin"})
// Add Translations
Admin.AddResource(i18n.I18n, &admin.Config{Menu: []string{"Site Management"}, Priority: -1})
// Add Setting
Admin.AddResource(&settings.Setting{}, &admin.Config{Name: "Shop Setting", Menu: []string{"Site Management"}, Singleton: true, Priority: 1})
SetupNotification(Admin)
SetupWorker(Admin)
SetupSEO(Admin)
SetupWidget(Admin)
SetupDashboard(Admin)
application.Router.Mount(app.Config.Prefix, Admin.NewServeMux(app.Config.Prefix))
}