File size: 2,655 Bytes
530729e |
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 111 |
package main
import (
"log"
"os"
"os/signal"
"time"
_ "github.com/GoAdminGroup/go-admin/adapter/gear"
_ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql"
_ "github.com/GoAdminGroup/themes/sword"
"github.com/teambition/gear"
"github.com/GoAdminGroup/go-admin/engine"
"github.com/GoAdminGroup/go-admin/examples/datamodel"
"github.com/GoAdminGroup/go-admin/modules/config"
"github.com/GoAdminGroup/go-admin/modules/language"
"github.com/GoAdminGroup/go-admin/plugins/example"
"github.com/GoAdminGroup/go-admin/template"
"github.com/GoAdminGroup/go-admin/template/chartjs"
"github.com/GoAdminGroup/themes/adminlte"
)
func main() {
app := gear.New()
e := engine.Default()
cfg := config.Config{
Env: config.EnvLocal,
Databases: config.DatabaseList{
"default": {
Host: "127.0.0.1",
Port: "3306",
User: "root",
Pwd: "root",
Name: "godmin",
MaxIdleConns: 50,
MaxOpenConns: 150,
ConnMaxLifetime: time.Hour,
Driver: config.DriverMysql,
//Driver: config.DriverSqlite,
//File: "../datamodel/admin.db",
},
},
Store: config.Store{
Path: "./uploads",
Prefix: "uploads",
},
UrlPrefix: "admin",
Language: language.CN,
IndexUrl: "/",
Debug: true,
AccessAssetsLogOff: true,
Animation: config.PageAnimation{
Type: "fadeInUp",
},
ColorScheme: adminlte.ColorschemeSkinBlack,
BootstrapFilePath: "./../datamodel/bootstrap.go",
}
template.AddComp(chartjs.NewChart())
// customize a plugin
examplePlugin := example.NewExample()
// load from golang.Plugin
//
// examplePlugin := plugins.LoadFromPlugin("../datamodel/example.so")
// customize the login page
// example: https://github.com/GoAdminGroup/demo.go-admin.cn/blob/master/main.go#L39
//
// template.AddComp("login", datamodel.LoginPage)
// load config from json file
//
// e.AddConfigFromJSON("../datamodel/config.json")
if err := e.AddConfig(&cfg).
AddGenerators(datamodel.Generators).
// add generator, first parameter is the url prefix of table when visit.
// example:
//
// "user" => http://localhost:9033/admin/info/user
//
AddGenerator("user", datamodel.GetUserTable).
AddDisplayFilterXssJsFilter().
AddPlugins(examplePlugin).
Use(app); err != nil {
panic(err)
}
// customize your pages
e.HTML("GET", "/admin", datamodel.GetContent)
go func() {
app.Start(":8099")
}()
quit := make(chan os.Signal, 1)
signal.Notify(quit, os.Interrupt)
<-quit
log.Print("closing database connection")
e.MysqlConnection().Close()
}
|