| package types |
|
|
| import ( |
| "html/template" |
| "strconv" |
|
|
| "github.com/GoAdminGroup/go-admin/context" |
| "github.com/GoAdminGroup/go-admin/modules/language" |
| "github.com/GoAdminGroup/go-admin/modules/utils" |
| ) |
|
|
| type DefaultSelection struct { |
| *BaseButton |
| Options FieldOptions |
| Placeholder string |
| Width int |
| } |
|
|
| func btnUUID() string { |
| return "info-btn-" + utils.Uuid(10) |
| } |
|
|
| func GetDefaultSelection(placeholder string, options FieldOptions, action Action, widths ...int) *DefaultSelection { |
|
|
| id := btnUUID() |
| action.SetBtnId("." + id) |
|
|
| var width = 100 |
| if len(widths) > 0 { |
| width = widths[0] |
| } |
| node := action.GetCallbacks() |
| return &DefaultSelection{ |
| BaseButton: &BaseButton{ |
| Id: id, |
| Action: action, |
| Url: node.Path, |
| Method: node.Method, |
| }, |
| Placeholder: placeholder, |
| Width: width, |
| Options: options, |
| } |
|
|
| } |
|
|
| func (b *DefaultSelection) Content(ctx *context.Context) (template.HTML, template.JS) { |
|
|
| optionsHtml := `<option value='__go_admin_all__'>` + language.Get("All") + `</option>` |
|
|
| for _, op := range b.Options { |
| optionsHtml += `<option value='` + op.Value + `'>` + op.Text + `</option>` |
| } |
|
|
| h := template.HTML(`<div class="btn-group pull-right" style="margin-right: 10px"> |
| <div style="width:`+strconv.Itoa(b.Width)+`px;"> |
| <select style="width:100%;height:30px;" class="`+b.Id+` select2-hidden-accessible" name="`+b.Id+`" |
| data-multiple="false" data-placeholder="`+b.Placeholder+`" tabindex="-1" aria-hidden="true"> |
| <option></option> |
| `+optionsHtml+` |
| </select> |
| </div> |
| </div> |
| <style type="text/css"> |
| .box-header .select2-container .select2-selection--single { |
| height: 30px; |
| line-height: 24px; |
| } |
| .box-header .select2-container--default .select2-selection--single .select2-selection__rendered |
| { |
| line-height: 24px; |
| } |
| </style>`) + b.Action.ExtContent(ctx) |
|
|
| return h, b.Action.Js() + template.JS(` |
| $(".`+b.Id+`").select2(); |
| `) |
| } |
|
|