|
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(); |
|
`) |
|
} |
|
|