فهرست منبع

update to v1.2.11

cg33 6 سال پیش
والد
کامیت
ebac943556
3فایلهای تغییر یافته به همراه52 افزوده شده و 12 حذف شده
  1. 12 2
      tables/authors.go
  2. 18 5
      tables/posts.go
  3. 22 5
      tables/users.go

+ 12 - 2
tables/authors.go

@@ -4,6 +4,9 @@ import (
 	"github.com/GoAdminGroup/go-admin/context"
 	"github.com/GoAdminGroup/go-admin/modules/db"
 	"github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
+	"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"
 )
 
@@ -17,12 +20,19 @@ func GetAuthorsTable(ctx *context.Context) (authorsTable table.Table) {
 
 	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("First Name", "first_name", db.Varchar).FieldHide()
+	info.AddField("Last Name", "last_name", db.Varchar).FieldHide()
+	info.AddField("Name", "name", db.Varchar).FieldDisplay(func(value types.FieldModel) interface{} {
+		first, _ := value.Row["first_name"].(string)
+		last, _ := value.Row["last_name"].(string)
+		return first + " " + last
+	})
 	info.AddField("Email", "email", db.Varchar)
 	info.AddField("Birthdate", "birthdate", db.Date)
 	info.AddField("Added", "added", db.Timestamp)
 
+	info.AddButton("Articles", icon.Tv, action.PopUpWithIframe("/authors/list", "文章",
+		action.IframeData{Src: "/admin/info/posts"}, "900px", "560px"))
 	info.SetTable("authors").SetTitle("Authors").SetDescription("Authors")
 
 	formList := authorsTable.GetForm()

+ 18 - 5
tables/posts.go

@@ -18,15 +18,28 @@ func GetPostsTable(ctx *context.Context) (postsTable table.Table) {
 	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{} {
+	info.AddField("AuthorID", "author_id", db.Int).FieldDisplay(func(value types.FieldModel) interface{} {
 		return template.Default().
 			Link().
-			SetURL("/admin/info/authors/detail?__goadmin_detail_pk=100").
-			SetContent("100").
+			SetURL("/admin/info/authors/detail?__goadmin_detail_pk=" + value.Value).
+			SetContent(template.HTML(value.Value)).
 			OpenInNewTab().
-			SetTabTitle("Author Detail").
+			SetTabTitle(template.HTML("Author Detail(" + value.Value + ")")).
 			GetContent()
 	})
+	info.AddField("AuthorName", "name", db.Varchar).FieldDisplay(func(value types.FieldModel) interface{} {
+		return value.Row["authors_goadmin_join_first_name"].(string) + " " + value.Row["authors_goadmin_join_last_name"].(string)
+	})
+	info.AddField("AuthorFirstName", "first_name", db.Varchar).FieldJoin(types.Join{
+		Field:     "author_id",
+		JoinField: "id",
+		Table:     "authors",
+	}).FieldHide()
+	info.AddField("AuthorLastName", "last_name", db.Varchar).FieldJoin(types.Join{
+		Field:     "author_id",
+		JoinField: "id",
+		Table:     "authors",
+	}).FieldHide()
 	info.AddField("Description", "description", db.Varchar)
 	info.AddField("Content", "content", db.Varchar).FieldEditAble(editType.Textarea)
 	info.AddField("Date", "date", db.Varchar)
@@ -37,7 +50,7 @@ func GetPostsTable(ctx *context.Context) (postsTable table.Table) {
 	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("Content", "content", db.Varchar, form.RichText).FieldEnableFileUpload()
 	formList.AddField("Date", "date", db.Varchar, form.Datetime)
 
 	formList.SetTable("posts").SetTitle("Posts").SetDescription("Posts")

+ 22 - 5
tables/users.go

@@ -31,7 +31,7 @@ func GetUserTable(ctx *context.Context) (userTable table.Table) {
 		},
 	})
 
-	info := userTable.GetInfo().SetFilterFormLayout(form.LayoutTwoCol)
+	info := userTable.GetInfo().SetFilterFormLayout(form.LayoutThreeCol)
 	info.AddField("ID", "id", db.Int).FieldSortable()
 	info.AddField("Name", "name", db.Varchar).FieldEditAble(editType.Text).
 		FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike})
@@ -43,13 +43,20 @@ func GetUserTable(ctx *context.Context) (userTable table.Table) {
 			return "women"
 		}
 		return "unknown"
-	}).FieldEditAble(editType.Select).FieldEditOptions(types.FieldOptions{
-		{Value: "0", Text: "men"},
-		{Value: "1", Text: "women"},
+	}).FieldEditAble(editType.Switch).FieldEditOptions(types.FieldOptions{
+		{Value: "0", Text: "👨"},
+		{Value: "1", Text: "👩"},
 	}).FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptions(types.FieldOptions{
 		{Value: "0", Text: "men"},
 		{Value: "1", Text: "women"},
 	})
+	info.AddColumn("personality", func(value types.FieldModel) interface{} {
+		return "handsome"
+	})
+	info.AddColumnButtons("see more", types.GetColumnButton("more", icon.Info,
+		action.PopUp("/see/more/example", "Detail", func(ctx *context.Context) (success bool, msg string, data interface{}) {
+			return true, "ok", "<h1>Detail</h1><p>balabala</p><p>this feature will be released in v1.2.7</p>"
+		})))
 	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{} {
@@ -66,15 +73,25 @@ func GetUserTable(ctx *context.Context) (userTable table.Table) {
 		func(ctx *context.Context) (success bool, msg string, data interface{}) {
 			return true, "success", ""
 		}))
+	info.AddActionButton("Preview", action.PopUp("/admin/preview", "Preview",
+		func(ctx *context.Context) (success bool, msg string, data interface{}) {
+			return true, "", "<h2>hello world</h2>"
+		}))
 	info.AddButton("google", icon.Google, action.Jump("https://google.com"))
-	info.AddButton("info", icon.Terminal, action.PopUp("/admin/popup", "Popup Example",
+	info.AddButton("popup", icon.Terminal, action.PopUp("/admin/popup", "Popup Example",
 		func(ctx *context.Context) (success bool, msg string, data interface{}) {
 			return true, "", "<h2>hello world</h2>"
 		}))
+	info.AddButton("iframe", icon.Tv, action.PopUpWithIframe("/admin/iframe", "Iframe Example",
+		action.IframeData{Src: "/admin/info/profile/new"}, "900px", "600px"))
 	info.AddButton("ajax", icon.Android, action.Ajax("/admin/ajax",
 		func(ctx *context.Context) (success bool, msg string, data interface{}) {
 			return true, "success", ""
 		}))
+	info.AddSelectBox("gender", types.FieldOptions{
+		{Value: "0", Text: "men"},
+		{Value: "1", Text: "women"},
+	}, action.FieldFilter("gender"))
 
 	info.SetTable("users").SetTitle("Users").SetDescription("Users")