-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathmain.go
More file actions
110 lines (95 loc) · 2.87 KB
/
main.go
File metadata and controls
110 lines (95 loc) · 2.87 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package main
import (
_ "github.com/GoAdminGroup/go-admin/adapter/gin"
_ "github.com/GoAdminGroup/go-admin/modules/db/drivers/sqlite"
_ "github.com/GoAdminGroup/themes/sword"
"io/ioutil"
"log"
"os"
"os/signal"
"path/filepath"
"github.com/GoAdminGroup/filemanager"
"github.com/GoAdminGroup/go-admin/context"
"github.com/GoAdminGroup/go-admin/engine"
"github.com/GoAdminGroup/go-admin/modules/auth"
"github.com/GoAdminGroup/go-admin/modules/config"
"github.com/GoAdminGroup/go-admin/modules/language"
"github.com/GoAdminGroup/go-admin/plugins/admin/models"
"github.com/GoAdminGroup/go-admin/template/types/action"
"github.com/GoAdminGroup/librarian"
"github.com/GoAdminGroup/librarian/modules/theme"
"github.com/gin-gonic/gin"
)
func main() {
gin.SetMode(gin.ReleaseMode)
gin.DefaultWriter = ioutil.Discard
r := gin.Default()
e := engine.Default()
cfg := config.Config{
Databases: config.DatabaseList{
"default": {
Driver: config.DriverSqlite,
File: "./admin.db",
},
},
UrlPrefix: "admin",
Store: config.Store{
Path: "./uploads",
Prefix: "uploads",
},
Language: language.EN,
IndexUrl: "/librarian/README",
Debug: true,
AccessAssetsLogOff: true,
HideConfigCenterEntrance: true,
HideAppInfoEntrance: true,
HideVisitorUserCenterEntrance: true,
Logo: "<b>Li</b>brarian",
MiniLogo: "Li",
Theme: "sword",
Title: "Librarian",
//ExcludeThemeComponents: []string{"datatable", "form"},
//Animation: config.PageAnimation{
// Type: "fadeInUp",
//},
}
theme.Set(theme.Config{
HideNavBar: true,
HideMenuIcon: true,
FixedSidebar: true,
ChangeTitle: true,
})
dir, err := os.Getwd()
if err != nil {
panic(err)
}
const visitorRoleID = int64(3)
if err := e.AddConfig(cfg).
AddNavButtons("Menu", "", action.Jump("/admin/menu")).
AddNavButtons("Files", "", action.Jump("/admin/fm/def/list")).
//AddNavButtons("", icon.Pencil, action.Jump("/admin/menu")).
AddPlugins(librarian.NewLibrarianWithConfig(librarian.Config{
Path: filepath.Join(dir, "docs"),
MenuUserRoleID: visitorRoleID,
Prefix: "librarian",
BuildMenu: true, // auto build menus
}), filemanager.NewFileManager(filepath.Join(dir, "docs"))).
Use(r); err != nil {
panic(err)
}
r.Static("/uploads", "./uploads")
e.Data("GET", "/admin/librarian", func(ctx *context.Context) {
conn := e.SqliteConnection()
user := models.User().SetConn(conn).Find(visitorRoleID)
_ = auth.SetCookie(ctx, user, conn)
ctx.Redirect("/admin/librarian/README")
}, true)
go func() {
_ = r.Run(":9033")
}()
quit := make(chan os.Signal)
signal.Notify(quit, os.Interrupt)
<-quit
log.Print("closing database connection")
e.SqliteConnection().Close()
}