github.com/kotovmak/go-admin@v1.1.1/tests/tables/posts.go (about)

     1  package tables
     2  
     3  import (
     4  	"github.com/kotovmak/go-admin/context"
     5  	"github.com/kotovmak/go-admin/modules/db"
     6  	"github.com/kotovmak/go-admin/plugins/admin/modules/table"
     7  	"github.com/kotovmak/go-admin/template"
     8  	"github.com/kotovmak/go-admin/template/types"
     9  	"github.com/kotovmak/go-admin/template/types/form"
    10  	editType "github.com/kotovmak/go-admin/template/types/table"
    11  )
    12  
    13  // GetPostsTable return the model of table posts.
    14  func GetPostsTable(ctx *context.Context) (postsTable table.Table) {
    15  
    16  	postsTable = table.NewDefaultTable(table.DefaultConfig())
    17  
    18  	info := postsTable.GetInfo()
    19  	info.AddField("ID", "id", db.Int).FieldSortable()
    20  	info.AddField("Title", "title", db.Varchar)
    21  	info.AddField("AuthorID", "author_id", db.Varchar).FieldDisplay(func(value types.FieldModel) interface{} {
    22  		return template.Default().
    23  			Link().
    24  			SetURL("/admin/info/authors/detail?__goadmin_detail_pk=100").
    25  			SetContent("100").
    26  			OpenInNewTab().
    27  			SetTabTitle("Author Detail").
    28  			GetContent()
    29  	})
    30  	info.AddField("Description", "description", db.Varchar)
    31  	info.AddField("Content", "content", db.Varchar).FieldEditAble(editType.Textarea)
    32  	info.AddField("Date", "date", db.Varchar)
    33  
    34  	info.SetTable("posts").SetTitle("Posts").SetDescription("Posts")
    35  
    36  	formList := postsTable.GetForm()
    37  	formList.AddField("ID", "id", db.Int, form.Default).FieldDisplayButCanNotEditWhenUpdate().FieldDisableWhenCreate()
    38  	formList.AddField("Title", "title", db.Varchar, form.Text)
    39  	formList.AddField("Description", "description", db.Varchar, form.Text)
    40  	formList.AddField("Content", "content", db.Varchar, form.RichText).FieldEnableFileUpload()
    41  	formList.AddField("Date", "date", db.Varchar, form.Datetime)
    42  
    43  	formList.SetTable("posts").SetTitle("Posts").SetDescription("Posts")
    44  
    45  	return
    46  }