github.com/kotovmak/go-admin@v1.1.1/tests/tables/external.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/parameter"
     7  	"github.com/kotovmak/go-admin/plugins/admin/modules/table"
     8  	"github.com/kotovmak/go-admin/template/types/form"
     9  )
    10  
    11  // GetExternalTable return the model from external data source.
    12  func GetExternalTable(ctx *context.Context) (externalTable table.Table) {
    13  
    14  	externalTable = table.NewDefaultTable()
    15  
    16  	info := externalTable.GetInfo()
    17  	info.AddField("ID", "id", db.Int).FieldSortable()
    18  	info.AddField("Title", "title", db.Varchar)
    19  
    20  	info.SetTable("external").
    21  		SetTitle("Externals").
    22  		SetDescription("Externals").
    23  		SetGetDataFn(func(param parameter.Parameters) ([]map[string]interface{}, int) {
    24  			return []map[string]interface{}{
    25  				{
    26  					"id":    10,
    27  					"title": "this is a title",
    28  				}, {
    29  					"id":    11,
    30  					"title": "this is a title2",
    31  				}, {
    32  					"id":    12,
    33  					"title": "this is a title3",
    34  				}, {
    35  					"id":    13,
    36  					"title": "this is a title4",
    37  				},
    38  			}, 10
    39  		})
    40  
    41  	formList := externalTable.GetForm()
    42  	formList.AddField("ID", "id", db.Int, form.Default).FieldDisplayButCanNotEditWhenUpdate().FieldDisableWhenCreate()
    43  	formList.AddField("Title", "title", db.Varchar, form.Text)
    44  
    45  	formList.SetTable("external").SetTitle("Externals").SetDescription("Externals")
    46  
    47  	detail := externalTable.GetDetail()
    48  
    49  	detail.SetTable("external").
    50  		SetTitle("Externals").
    51  		SetDescription("Externals").
    52  		SetGetDataFn(func(param parameter.Parameters) ([]map[string]interface{}, int) {
    53  			return []map[string]interface{}{
    54  				{
    55  					"id":    10,
    56  					"title": "this is a title",
    57  				},
    58  			}, 1
    59  		})
    60  
    61  	return
    62  }