cg33 6 роки тому
батько
коміт
ce16dc698a
6 змінених файлів з 359 додано та 140 видалено
  1. 3 3
      main.go
  2. 38 0
      tables/authors.go
  3. 45 0
      tables/posts.go
  4. 20 0
      tables/tables.go
  5. 110 0
      tables/users.go
  6. 143 137
      vendor/vendor.json

+ 3 - 3
main.go

@@ -8,8 +8,8 @@ import (
 	_ "github.com/GoAdminGroup/go-admin/modules/db/drivers/sqlite" // sql driver
 	_ "github.com/GoAdminGroup/themes/adminlte"                    // theme
 
+	"github.com/GoAdminGroup/example/tables"
 	"github.com/GoAdminGroup/go-admin/engine"
-	"github.com/GoAdminGroup/go-admin/examples/datamodel"
 	"github.com/GoAdminGroup/go-admin/plugins/admin"
 	"github.com/GoAdminGroup/go-admin/plugins/example"
 	"github.com/GoAdminGroup/go-admin/template"
@@ -26,14 +26,14 @@ func main() {
 
 	eng := engine.Default()
 
-	adminPlugin := admin.NewAdmin(datamodel.Generators)
+	adminPlugin := admin.NewAdmin(tables.Generators)
 
 	// add generator, first parameter is the url prefix of table when visit.
 	// example:
 	//
 	// "user" => http://localhost:9033/admin/info/user
 	//
-	adminPlugin.AddGenerator("user", datamodel.GetUserTable)
+	adminPlugin.AddGenerator("user", tables.GetUserTable)
 
 	// customize a plugin
 	// 自己定制一个插件👇

+ 38 - 0
tables/authors.go

@@ -0,0 +1,38 @@
+package tables
+
+import (
+	"github.com/GoAdminGroup/go-admin/modules/db"
+	"github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
+	"github.com/GoAdminGroup/go-admin/template/types/form"
+)
+
+// GetAuthorsTable return the model of table author.
+func GetAuthorsTable() (authorsTable table.Table) {
+
+	authorsTable = table.NewDefaultTable(table.DefaultConfig())
+
+	// connect your custom connection
+	// authorsTable = table.NewDefaultTable(table.DefaultConfigWithDriverAndConnection("mysql", "admin"))
+
+	info := authorsTable.GetInfo()
+	info.AddField("ID", "id", db.Int).FieldSortable()
+	info.AddField("First Name", "first_name", db.Varchar)
+	info.AddField("Last Name", "last_name", db.Varchar)
+	info.AddField("Email", "email", db.Varchar)
+	info.AddField("Birthdate", "birthdate", db.Date)
+	info.AddField("Added", "added", db.Timestamp)
+
+	info.SetTable("authors").SetTitle("Authors").SetDescription("Authors")
+
+	formList := authorsTable.GetForm()
+	formList.AddField("ID", "id", db.Int, form.Default).FieldNotAllowEdit().FieldNotAllowAdd()
+	formList.AddField("First Name", "first_name", db.Varchar, form.Text)
+	formList.AddField("Last Name", "last_name", db.Varchar, form.Text)
+	formList.AddField("Email", "email", db.Varchar, form.Text)
+	formList.AddField("Birthdate", "birthdate", db.Date, form.Text)
+	formList.AddField("Added", "added", db.Timestamp, form.Text)
+
+	formList.SetTable("authors").SetTitle("Authors").SetDescription("Authors")
+
+	return
+}

+ 45 - 0
tables/posts.go

@@ -0,0 +1,45 @@
+package tables
+
+import (
+	"github.com/GoAdminGroup/go-admin/modules/db"
+	"github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
+	"github.com/GoAdminGroup/go-admin/template"
+	"github.com/GoAdminGroup/go-admin/template/types"
+	"github.com/GoAdminGroup/go-admin/template/types/form"
+	editType "github.com/GoAdminGroup/go-admin/template/types/table"
+)
+
+// GetPostsTable return the model of table posts.
+func GetPostsTable() (postsTable table.Table) {
+
+	postsTable = table.NewDefaultTable(table.DefaultConfig())
+
+	info := postsTable.GetInfo()
+	info.AddField("ID", "id", db.Int).FieldSortable()
+	info.AddField("Title", "title", db.Varchar)
+	info.AddField("AuthorID", "author_id", db.Varchar).FieldDisplay(func(value types.FieldModel) interface{} {
+		return template.Default().
+			Link().
+			SetURL("/admin/info/authors/detail?__goadmin_detail_pk=100").
+			SetContent("100").
+			OpenInNewTab().
+			SetTabTitle("Author Detail").
+			GetContent()
+	})
+	info.AddField("Description", "description", db.Varchar)
+	info.AddField("Content", "content", db.Varchar).FieldEditAble(editType.Textarea)
+	info.AddField("Date", "date", db.Varchar)
+
+	info.SetTable("posts").SetTitle("Posts").SetDescription("Posts")
+
+	formList := postsTable.GetForm()
+	formList.AddField("ID", "id", db.Int, form.Default).FieldNotAllowEdit().FieldNotAllowAdd()
+	formList.AddField("Title", "title", db.Varchar, form.Text)
+	formList.AddField("Description", "description", db.Varchar, form.Text)
+	formList.AddField("Content", "content", db.Varchar, form.Text)
+	formList.AddField("Date", "date", db.Varchar, form.Datetime)
+
+	formList.SetTable("posts").SetTitle("Posts").SetDescription("Posts")
+
+	return
+}

+ 20 - 0
tables/tables.go

@@ -0,0 +1,20 @@
+package tables
+
+import "github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
+
+// generators is a map of table models.
+//
+// The key of generators is the prefix of table info url.
+// The corresponding value is the Form and TableName data.
+//
+// http://{{config.Domain}}:{{Port}}/{{config.Prefix}}/info/{{key}}
+//
+// example:
+//
+// "posts"   => http://localhost:9033/admin/info/posts
+// "authors" => http://localhost:9033/admin/info/authors
+//
+var Generators = map[string]table.Generator{
+	"posts":   GetPostsTable,
+	"authors": GetAuthorsTable,
+}

+ 110 - 0
tables/users.go

@@ -0,0 +1,110 @@
+package tables
+
+import (
+	"fmt"
+	"github.com/GoAdminGroup/go-admin/modules/db"
+	form2 "github.com/GoAdminGroup/go-admin/plugins/admin/modules/form"
+	"github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
+	"github.com/GoAdminGroup/go-admin/template"
+	"github.com/GoAdminGroup/go-admin/template/icon"
+	"github.com/GoAdminGroup/go-admin/template/types"
+	"github.com/GoAdminGroup/go-admin/template/types/action"
+	"github.com/GoAdminGroup/go-admin/template/types/form"
+	editType "github.com/GoAdminGroup/go-admin/template/types/table"
+)
+
+// GetUserTable return the model of table user.
+func GetUserTable() (userTable table.Table) {
+
+	userTable = table.NewDefaultTable(table.Config{
+		Driver:     db.DriverMysql,
+		CanAdd:     true,
+		Editable:   true,
+		Deletable:  true,
+		Exportable: true,
+		Connection: table.DefaultConnectionName,
+		PrimaryKey: table.PrimaryKey{
+			Type: db.Int,
+			Name: table.DefaultPrimaryKeyName,
+		},
+	})
+
+	info := userTable.GetInfo().SetFilterFormLayout(form.LayoutTwoCol)
+	info.AddField("ID", "id", db.Int).FieldSortable()
+	info.AddField("Name", "name", db.Varchar).FieldEditAble(editType.Text).
+		FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike})
+	info.AddField("Gender", "gender", db.Tinyint).FieldDisplay(func(model types.FieldModel) interface{} {
+		if model.Value == "0" {
+			return "men"
+		}
+		if model.Value == "1" {
+			return "women"
+		}
+		return "unknown"
+	}).FieldEditAble(editType.Select).FieldEditOptions([]map[string]string{
+		{"value": "0", "text": "men"},
+		{"value": "1", "text": "women"},
+	}).FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptions([]map[string]string{
+		{"value": "0", "field": "men"},
+		{"value": "1", "field": "women"},
+	})
+	info.AddField("Phone", "phone", db.Varchar).FieldFilterable()
+	info.AddField("City", "city", db.Varchar).FieldFilterable()
+	info.AddField("Avatar", "avatar", db.Varchar).FieldDisplay(func(value types.FieldModel) interface{} {
+		return template.Default().Image().
+			SetSrc(`//quick.go-admin.cn/demo/assets/dist/img/gopher_avatar.png`).
+			SetHeight("120").SetWidth("120").WithModal().GetContent()
+	})
+	info.AddField("CreatedAt", "created_at", db.Timestamp).
+		FieldFilterable(types.FilterType{FormType: form.DatetimeRange})
+	info.AddField("UpdatedAt", "updated_at", db.Timestamp).FieldEditAble(editType.Datetime)
+
+	info.AddActionButton("google", action.Jump("https://google.com"))
+	info.AddButton("google", icon.Google, action.Jump("https://google.com"))
+	info.AddButton("info", icon.Terminal, action.PopUp("/admin/popup", "Popup Example"))
+
+	info.SetTable("users").SetTitle("Users").SetDescription("Users")
+
+	formList := userTable.GetForm()
+	formList.AddField("ID", "id", db.Int, form.Default).FieldNotAllowEdit().FieldNotAllowAdd()
+	formList.AddField("Ip", "ip", db.Varchar, form.Text)
+	formList.AddField("Name", "name", db.Varchar, form.Text)
+	formList.AddField("Gender", "gender", db.Tinyint, form.Radio).
+		FieldOptions([]map[string]string{
+			{
+				"field":    "gender",
+				"label":    "men",
+				"value":    "0",
+				"selected": "checked",
+			}, {
+				"field":    "gender",
+				"label":    "women",
+				"value":    "1",
+				"selected": "",
+			},
+		})
+	formList.AddField("Phone", "phone", db.Varchar, form.Text)
+	formList.AddField("City", "city", db.Varchar, form.Text)
+	formList.AddField("Custom Field", "role", db.Varchar, form.Text).
+		FieldPostFilterFn(func(value types.PostFieldModel) string {
+			fmt.Println("user custom field", value)
+			return ""
+		})
+
+	formList.AddField("UpdatedAt", "updated_at", db.Timestamp, form.Default).FieldNotAllowAdd()
+	formList.AddField("CreatedAt", "created_at", db.Timestamp, form.Default).FieldNotAllowAdd()
+
+	userTable.GetForm().SetTabGroups(types.
+		NewTabGroups("id", "ip", "name", "gender", "city").
+		AddGroup("phone", "role", "created_at", "updated_at")).
+		SetTabHeaders("profile1", "profile2")
+
+	formList.SetTable("users").SetTitle("Users").SetDescription("Users")
+
+	formList.SetPostHook(func(values form2.Values) error {
+		fmt.Println("userTable.GetForm().PostHook", values)
+		return nil
+	})
+
+	return
+}

+ 143 - 137
vendor/vendor.json

@@ -6,308 +6,314 @@
 			"checksumSHA1": "ZAJH7xmNfLcSraAs5y8CKTt4z3Q=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/github.com/360EntSecGroup-Skylar/excelize",
 			"path": "github.com/360EntSecGroup-Skylar/excelize",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "IUpQV6ZkXI0Mg1oVuFPLEcJB2wg=",
 			"path": "github.com/GoAdminGroup/go-admin/adapter",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "Fm2100IORLPyVs4BzexGNTA8Sac=",
 			"path": "github.com/GoAdminGroup/go-admin/adapter/gin",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "3PGcWKINmmxmFzStnelQgvKBN9Q=",
 			"path": "github.com/GoAdminGroup/go-admin/context",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "lkDmHRvB6BxF0gzxRB8V0JR/QEA=",
+			"checksumSHA1": "KhpMG8VGlPMjonV+fhfH1TZZDOs=",
 			"path": "github.com/GoAdminGroup/go-admin/engine",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "mpz1yq16XeFLDT9rENXbZR3Lmzk=",
+			"checksumSHA1": "TQAb6vrOQkbS6s2Tzfbz0KGFxxk=",
 			"path": "github.com/GoAdminGroup/go-admin/examples/datamodel",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "4nj1GrfwtmnzEWEQRrdmwWDaYyw=",
+			"checksumSHA1": "U11VYADq+Ajk/7n/AuFUsSarCUk=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/auth",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "cVXVSmovLBE0AhzQpuPlQhM71bQ=",
+			"checksumSHA1": "LPOJMHjj4z3s66mcYHs0CIDOrZ0=",
+			"path": "github.com/GoAdminGroup/go-admin/modules/collection",
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
+		},
+		{
+			"checksumSHA1": "mnvFBm+QpM0CHdh5EKHBgUT/2Jg=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/config",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "dEIzWFrZCdM9jrXrHEyGiWCihSA=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/db",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "aFSOjhawM6ewbHsV5qMz4PqaPw0=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/db/dialect",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "aceu5UOVJICgrviAjGoofDQbk8Q=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/db/drivers/sqlite",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "taRUkgY+elg6GVkHI14mN4/PeLw=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/file",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "rSvsuKlucFiJW5EHf9K8ELnzpjQ=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/language",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "NQvd3sDc6srXRXBLBKifjfBIXSc=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/logger",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "U207bZNyldQYAaSp6iteBWv5OPc=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/menu",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "vT5Z+d+f14wcrALFCyrE3OKLUi0=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/page",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "nKx36bwDdVw6zbcx+5qy53VKifA=",
+			"checksumSHA1": "FPMd+BMMiiBiPbJUm8WTgbifjRo=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/service",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "1BEBQFZPmoNNqpRE2CnkI7rHySw=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/system",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "Po+H3XcEvbNLlaDzL5cmNBpzexk=",
 			"path": "github.com/GoAdminGroup/go-admin/modules/utils",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "DFBSSXhLqd/Md86ANvF4dogTJPs=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "gOpNKLXL6hrzk6G0VQ6FbvRN4g0=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "bI2fPK3ZbZMhl/zeU3iFJHJyPR4=",
+			"checksumSHA1": "0bz7rOY6Xcw6oJQ/y8BuLt07HXQ=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/controller",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "5vWu9VDhoCDI5g5ZNcaF8mPnc7U=",
+			"checksumSHA1": "W6Dph5ifqdKfmx81kbnnB7wuvZw=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/models",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "ctenhSsui18BtarT3EA2/t9BSyU=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/modules",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "6gc8WOIZAALya2i7kQdLiLX8giI=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/modules/captcha",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "RXhakzf3GE00nC4uhhU/nczEs7E=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/modules/constant",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "nNjiy61bVLoH5pbiNou83otHngU=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/modules/form",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "iVnrfeVugTEcXUrydoiFaRfGv8I=",
+			"checksumSHA1": "YRceActs+ucsmIUaUjObJfIwtp4=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/modules/guard",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "lPtaTN8Ekp0HLKJqsjgQzTiS3MY=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/modules/paginator",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "hkpNeTV5qytIlkTGMI49n3P1uFQ=",
+			"checksumSHA1": "x1L+L0Do3396/RkYFjtA/UvV4x8=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/modules/parameter",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "ufqda6efIfqf44udEHEkaYMFxvM=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/modules/response",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "htNHUj+ddEBSLTi/LS9ZJGIGrsQ=",
+			"checksumSHA1": "RDZqUwKYGDSN0aYHUkXPZfokf/4=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/admin/modules/table",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "Vc9IhAwBJsRghbKhv8WJtS2bZVI=",
 			"path": "github.com/GoAdminGroup/go-admin/plugins/example",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "icgCKLaRCF23GlfLXVN5qo1fQiw=",
+			"checksumSHA1": "fR9UPIcNlrHivQVKvZqqtEhkMh8=",
 			"path": "github.com/GoAdminGroup/go-admin/template",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "Y6CTP+ieJKCKQ66wVPdjeoNKOLI=",
 			"path": "github.com/GoAdminGroup/go-admin/template/chartjs",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "pRFe1+VJG4NyQWzhuw2z/UyoAc0=",
+			"checksumSHA1": "QOkuWofTjzrJmlyJcojZjvmm2jQ=",
 			"path": "github.com/GoAdminGroup/go-admin/template/components",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "Tq1FN06gRCp2DbHrM6QRlvx77Bw=",
 			"path": "github.com/GoAdminGroup/go-admin/template/icon",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "u0WGYyhJcY+anSmv+iI7EB0KZYA=",
 			"path": "github.com/GoAdminGroup/go-admin/template/login",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "44hymYBP6R8cg9U2UUzQEt4Fc5M=",
+			"checksumSHA1": "J3ghA+HhYGzTY/VQoAirtr7xNc0=",
 			"path": "github.com/GoAdminGroup/go-admin/template/types",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "5lx78zD+zFD1TcEN+HcXw5lvAm8=",
 			"path": "github.com/GoAdminGroup/go-admin/template/types/action",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "p0Atb9QOTSBSy8bHHFDDfFeFkwM=",
 			"path": "github.com/GoAdminGroup/go-admin/template/types/form",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "hGexEfmZecm7ALFGp6Af11hE2wA=",
 			"path": "github.com/GoAdminGroup/go-admin/template/types/table",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
-			"checksumSHA1": "c0AfdMQ1SrY5zF8Pj3AsDAWvKk8=",
+			"checksumSHA1": "sHbITJmr5BYEV9jOqY8YANbpskw=",
 			"path": "github.com/GoAdminGroup/themes/adminlte",
-			"revision": "440b6990b0c23ff7612dd3ab903c14c55f412c14",
-			"revisionTime": "2020-01-13T22:42:15Z"
+			"revision": "41cd2ff950d922f66bbc0fa26158639a9417692d",
+			"revisionTime": "2020-01-19T13:50:12Z"
 		},
 		{
 			"checksumSHA1": "3iPerqIGmvzuAw6H9G+MDHByZSg=",
 			"path": "github.com/GoAdminGroup/themes/adminlte/components",
-			"revision": "440b6990b0c23ff7612dd3ab903c14c55f412c14",
-			"revisionTime": "2020-01-13T22:42:15Z"
+			"revision": "41cd2ff950d922f66bbc0fa26158639a9417692d",
+			"revisionTime": "2020-01-19T13:50:12Z"
 		},
 		{
 			"checksumSHA1": "yZZ8LazmFXGpZsfjFMQub5mPwfI=",
 			"path": "github.com/GoAdminGroup/themes/adminlte/components/chart_legend",
-			"revision": "440b6990b0c23ff7612dd3ab903c14c55f412c14",
-			"revisionTime": "2020-01-13T22:42:15Z"
+			"revision": "41cd2ff950d922f66bbc0fa26158639a9417692d",
+			"revisionTime": "2020-01-19T13:50:12Z"
 		},
 		{
 			"checksumSHA1": "FI1La3r0Tw6ak8D6aSl7mQte7ng=",
 			"path": "github.com/GoAdminGroup/themes/adminlte/components/description",
-			"revision": "440b6990b0c23ff7612dd3ab903c14c55f412c14",
-			"revisionTime": "2020-01-13T22:42:15Z"
+			"revision": "41cd2ff950d922f66bbc0fa26158639a9417692d",
+			"revisionTime": "2020-01-19T13:50:12Z"
 		},
 		{
 			"checksumSHA1": "jhrNLvcYxxtkZhGDbnS+35tTcSg=",
 			"path": "github.com/GoAdminGroup/themes/adminlte/components/infobox",
-			"revision": "440b6990b0c23ff7612dd3ab903c14c55f412c14",
-			"revisionTime": "2020-01-13T22:42:15Z"
+			"revision": "41cd2ff950d922f66bbc0fa26158639a9417692d",
+			"revisionTime": "2020-01-19T13:50:12Z"
 		},
 		{
 			"checksumSHA1": "oKhwhDQ3zjMJVBcSs7PNU48HAKI=",
 			"path": "github.com/GoAdminGroup/themes/adminlte/components/productlist",
-			"revision": "440b6990b0c23ff7612dd3ab903c14c55f412c14",
-			"revisionTime": "2020-01-13T22:42:15Z"
+			"revision": "41cd2ff950d922f66bbc0fa26158639a9417692d",
+			"revisionTime": "2020-01-19T13:50:12Z"
 		},
 		{
 			"checksumSHA1": "MH1/5lw1z7AT+HIWan8XAkfUZHY=",
 			"path": "github.com/GoAdminGroup/themes/adminlte/components/progress_group",
-			"revision": "440b6990b0c23ff7612dd3ab903c14c55f412c14",
-			"revisionTime": "2020-01-13T22:42:15Z"
+			"revision": "41cd2ff950d922f66bbc0fa26158639a9417692d",
+			"revisionTime": "2020-01-19T13:50:12Z"
 		},
 		{
 			"checksumSHA1": "iR7R8ICPykFEwmSiHVyj/TjqBDA=",
 			"path": "github.com/GoAdminGroup/themes/adminlte/components/smallbox",
-			"revision": "440b6990b0c23ff7612dd3ab903c14c55f412c14",
-			"revisionTime": "2020-01-13T22:42:15Z"
+			"revision": "41cd2ff950d922f66bbc0fa26158639a9417692d",
+			"revisionTime": "2020-01-19T13:50:12Z"
 		},
 		{
-			"checksumSHA1": "VVa2JoSqZ05SsXNQ6F3h0hhxugc=",
+			"checksumSHA1": "FK30T6Pi22P/X3O0aNnq0L3mSVY=",
 			"path": "github.com/GoAdminGroup/themes/adminlte/resource",
-			"revision": "440b6990b0c23ff7612dd3ab903c14c55f412c14",
-			"revisionTime": "2020-01-13T22:42:15Z"
+			"revision": "41cd2ff950d922f66bbc0fa26158639a9417692d",
+			"revisionTime": "2020-01-19T13:50:12Z"
 		},
 		{
 			"checksumSHA1": "EDr3Ou14mAd1g2X1AL1NAh8t6zw=",
@@ -367,8 +373,8 @@
 			"checksumSHA1": "SEnjvwVyfuU2xBaOfXfwPD5MZqk=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/github.com/mattn/go-colorable",
 			"path": "github.com/mattn/go-colorable",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "AGYXOcAtYsDYMIQOkmr38ehdEM8=",
@@ -386,8 +392,8 @@
 			"checksumSHA1": "CIK3BBNX3nuUQCmNqTQydNfMNKI=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/github.com/mgutz/ansi",
 			"path": "github.com/mgutz/ansi",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "ZTcgWKWHsrX0RXYVXn5Xeb8Q0go=",
@@ -405,8 +411,8 @@
 			"checksumSHA1": "2jsbDTvwxafPp7FJjJ8IIFlTLjs=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/github.com/mohae/deepcopy",
 			"path": "github.com/mohae/deepcopy",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "+nVM+CEZGAopOrYlLifgWP+X01E=",
@@ -419,8 +425,8 @@
 			"checksumSHA1": "4GI/G+nYyCQ3ltASSBIunUr2LYk=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/github.com/sirupsen/logrus",
 			"path": "github.com/sirupsen/logrus",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "8mJ7vjP4pj4Y8FH5jVT22mW5acA=",
@@ -432,8 +438,8 @@
 			"checksumSHA1": "oCH3J96RWvO8W4xjix47PModpio=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/golang.org/x/crypto/bcrypt",
 			"path": "golang.org/x/crypto/bcrypt",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "ejjxT0+wDWWncfh0Rt3lSH4IbXQ=",
@@ -445,8 +451,8 @@
 			"checksumSHA1": "oVPHWesOmZ02vLq2fglGvf+AMgk=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/golang.org/x/crypto/blowfish",
 			"path": "golang.org/x/crypto/blowfish",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "REkmyB368pIiip76LiqMLspgCRk=",
@@ -464,29 +470,29 @@
 			"checksumSHA1": "WiKh0UElNn4k5R6jD+ieXA7KX6I=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/golang.org/x/text/internal/language",
 			"path": "golang.org/x/text/internal/language",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "VDwNSsZP6KShjTSwGUQUGJVrs1I=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/golang.org/x/text/internal/language/compact",
 			"path": "golang.org/x/text/internal/language/compact",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "hyNCcTwMQnV6/MK8uUW9E5H0J0M=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/golang.org/x/text/internal/tag",
 			"path": "golang.org/x/text/internal/tag",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "JjCA9d5oEYmK+ZPP+hLcgUb0Gng=",
 			"origin": "github.com/GoAdminGroup/go-admin/vendor/golang.org/x/text/language",
 			"path": "golang.org/x/text/language",
-			"revision": "f3fd66caef78e8bc37dd072176243e1da082d417",
-			"revisionTime": "2020-01-13T22:47:27Z"
+			"revision": "278fdef8922add80dd247049b86e3bd61bd5c7ec",
+			"revisionTime": "2020-01-19T13:49:53Z"
 		},
 		{
 			"checksumSHA1": "s4yxtZss88Rf9psrJz9S1EAy6vI=",