UI: basic label list

- create new label
This commit is contained in:
Unknwon committed 2015-07-24 21:02:49 +08:00
1 parent 86dbda0b42
commit ac95f6d50f
27 files changed
+3686 -166

No files matched your search

+7 -1
View File
@@ -171,12 +171,16 @@ func AssignForm(form interface{}, data map[string]interface{}) {
func getSize(field reflect.StructField, prefix string) string {
for _, rule := range strings.Split(field.Tag.Get("binding"), ";") {
if strings.HasPrefix(rule, prefix) {
return rule[8 : len(rule)-1]
return rule[len(prefix) : len(rule)-1]
}
}
return ""
}
func GetSize(field reflect.StructField) string {
return getSize(field, "Size(")
}
func GetMinSize(field reflect.StructField) string {
return getSize(field, "MinSize(")
}
@@ -227,6 +231,8 @@ func validate(errs binding.Errors, data map[string]interface{}, f Form, l macaro
data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_error")
case binding.ERR_ALPHA_DASH_DOT:
data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_dot_error")
case binding.ERR_SIZE:
data["ErrorMsg"] = trName + l.Tr("form.size_error", GetSize(field))
case binding.ERR_MIN_SIZE:
data["ErrorMsg"] = trName + l.Tr("form.min_size_error", GetMinSize(field))
case binding.ERR_MAX_SIZE:
+2 -2
View File
@@ -134,8 +134,8 @@ func (f *CreateMilestoneForm) Validate(ctx *macaron.Context, errs binding.Errors
// \/ \/ \/ \/
type CreateLabelForm struct {
Title string `form:"title" binding:"Required;MaxSize(50)"`
Color string `form:"color" binding:"Required;Size(7)"`
Title string `binding:"Required;MaxSize(50)" locale:"repo.issues.label_name"`
Color string `binding:"Required;Size(7)" locale:"repo.issues.label_color"`
}
func (f *CreateLabelForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
+3 -3
View File
@@ -726,7 +726,7 @@ func confLocaleTranslators() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "conf/locale/TRANSLATORS", size: 606, mode: os.FileMode(420), modTime: time.Unix(1437262032, 0)}
info := bindataFileInfo{name: "conf/locale/TRANSLATORS", size: 606, mode: os.FileMode(420), modTime: time.Unix(1437728161, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -771,7 +771,7 @@ func confLocaleLocale_deDeIni() (*asset, error) {
return a, nil
}
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xeb\x72\xdc\x48\xb2\xde\x7f\x3c\x05\x66\x1c\xb2\x66\x22\xa8\x56\xcc\x4c\xd8\xe1\x98\x90\x34\xe6\x90\xa3\xcb\x1e\x51\xd4\x11\xa9\x5d\x1f\x2b\x14\x58\x74\x03\xec\xc6\xb2\x1b\xe8\xc5\x85\x3d\xdc\x5f\x7e\x0d\xbf\x9e\x9f\xc4\x99\x5f\x66\xd6\x05\x40\x53\xa3\x3d\x0e\x9f\x3f\x64\xa1\x2a\xeb\x96\x95\x95\x95\xb7\xaa\xce\xf7\xfb\xac\x28\xbb\x55\xfa\x3c\x3d\x4d\xf7\x79\x55\x6f\xcb\xae\x4b\xbb\x72\x7b\xf3\x64\xd3\x74\x7d\x59\xa4\xaf\xaa\x9e\xbe\xdb\xbb\x6a\x55\x26\xc9\xa6\xd9\x95\x04\xfa\x9a\xfe\x25\x45\xde\x6d\x96\x4d\xde\x16\x94\x71\x6e\xe9\xa4\xfc\x7d\xbf\x6d\x5a\x06\xfa\x4d\x52\xc9\xa6\xdc\xee\xb9\x0e\xfd\x4b\xba\x6a\x5d\x67\x55\x4d\x9f\x57\x94\x4a\xdf\xd4\x49\xd7\xac\xaa\x7c\x9b\x05\x05\xc8\xb0\xf2\x9f\xd3\x1f\xeb\x22\xbd\xea\xcb\x7d\xfa\xac\xdb\xe5\xdb\xed\x8b\xbc\x43\x95\xbe\x4c\xf3\xd5\xaa\x19\xea\xfe\xd9\x53\x29\x90\xc6\x9b\xa1\xb7\xd6\x2f\x87\x5e\xf2\x86\xbd\x65\x7d\xdc\x27\x6d\xb9\xae\x68\x62\x2d\x65\x7d\xd0\x64\x72\x28\x97\x5d\xd5\xf3\xa0\xff\x22\xa9\xe4\xae\x6c\xbb\xaa\xe1\xf1\xfc\x59\x52\xc9\x3e\x5f\x33\xc0\x7b\xfa\x97\xf4\xe5\x6e\xbf\xcd\x51\xe1\x5a\x93\xc9\x36\xaf\xd7\x83\xc0\xbc\xd5\x64\x92\x0c\x84\xb9\x3a\x07\xce\x3e\x6a\x32\x29\x77\x79\xb5\x65\xfc\x3c\xe1\x04\xb5\xdb\x75\x87\x06\x58\x7c\xaf\x49\x1a\x63\xd6\xdf\xef\x4b\x0c\xf1\xc9\x35\xa5\x92\x55\xbe\xef\x57\x9b\x9c\x72\xce\x24\x95\x10\xd0\xbe\xa1\xb1\x36\xed\x3d\xe0\xec\x23\x69\xda\x75\x5e\x57\xff\xc8\x7b\x19\xff\x65\xf0\x99\xec\xaa\xb6\x6d\x78\xea\x17\x48\x24\x75\x79\xc8\xb8\x1d\xca\x79\x57\x1e\xc2\x56\xb8\x64\x57\xad\x5b\x99\x25\x17\x5e\xe0\x8b\x5b\xe1\xb2\x9b\xa6\xbd\xd5\x82\x97\x9c\x1c\x55\xa5\x41\x68\x69\xdc\x7f\x5e\x13\x5e\xb4\xf4\x02\x1f\x11\x40\x97\xe4\xc5\xae\xaa\xb3\x7d\x5e\x97\x8c\xa3\x53\xfe\x22\xbc\xd0\x57\xa2\xcb\x9d\x75\x65\xdf\x57\xf5\xba\xe3\x62\xc9\x4a\xaf\x34\x2b\x09\xca\x5c\x1e\x8f\xa7\xcb\x6e\xca\xb2\x90\x11\x75\xe9\x4b\x4a\x27\xfb\x61\xbb\xa5\xb9\xff\x7d\x28\xbb\x9e\xe1\xdf\xd3\x37\xcd\x42\xbe\x93\xaa\xeb\x28\x41\xd9\x6f\x90\x48\x68\x01\xea\x15\x86\x74\x86\x44\x92\x7c\xea\xca\xbc\x5d\x6d\x3e\x27\xf2\x1f\x3d\x72\x62\xb1\x58\x1c\x5d\x1a\x26\x07\x25\x05\xe9\xc1\x3a\x48\x56\x4d\xc1\x1f\x67\xf4\x8f\x9a\xae\xea\xae\x27\x92\xfe\x9c\x68\x82\xc1\x24\x25\x68\xec\xab\x7e\x5b\xfa\x4c\xec\x8f\x8e\xd7\x21\x7d\x59\xb5\x5d\xff\xa4\xaf\x88\xe4\x3e\x0c\x75\xc2\xf3\x23\x72\xce\x8a\xa5\xed\xf2\x57\x0d\x61\x07\xd9\x2d\xcd\xef\xe2\xfe\xea\x5f\xdf\x9e\xa4\xef\x69\xab\xaf\xdb\x92\xd2\x29\xb5\x41\xff\xa8\xce\x4f\x8b\x84\x6a\x59\x4f\xe7\x79\x9f\x2f\xf3\xae\xf4\x68\xe5\x42\xa1\x51\x57\x06\x4a\x65\xb6\x01\x16\xd1\xf5\xd1\x7c\xe7\xe8\x9c\xda\xd0\xdd\xe1\xda\x78\xc7\x5b\x84\xf2\x99\x6b\xa0\xf2\xfb\x6d\xc9\xf9\xd4\x54\xfa\xe6\xdd\xbb\xcb\xf3\x5f\xd3\xb2\x5e\x57\x75\x99\x1e\xaa\x7e\x93\x0e\xfd\xcd\x7f\xcb\xd6\x65\x5d\xb6\xc4\x44\x56\x55\x4a\x3b\xa3\x25\x22\x48\x89\x3c\x65\x72\x8b\xa4\xeb\xb6\xd9\x4e\xd0\x7b\x75\xf5\x36\xbd\x60\x14\xef\xf3\x7e\x83\x81\xf4\x9b\xa4\xfb\xfb\x96\x51\xe4\x3a\xbc\xde\x94\xe9\x4d\x45\xb3\x06\x50\x73\x63\xf8\x48\x0b\x1d\xe3\x22\x29\xdb\x36\xa3\x7d\xdf\xdf\x67\x5a\x59\xdb\x1b\x43\x4a\x13\x44\x3a\x75\xd3\xa7\xcb\x32\x45\x9d\x45\x92\xd8\x80\x0d\xbb\xa7\xfb\xfd\xb6\x5a\xc9\x8e\x7d\x25\x65\x1e\xd1\xcc\xa2\x15\x4b\x21\x1c\x10\x65\x65\x01\xba\x88\xff\xdd\x37\x43\x9b\x46\x6c\x00\xf5\x37\x25\xf1\xe5\xcd\x40\x5b\x2e\x27\x9e\xba\x6d\x86\xe2\x1b\x50\xaa\x8d\xde\x13\x6a\xfa\xa1\xa1\x01\x03\x3b\x0e\xc0\x77\x71\x4a\x14\xc7\xa7\x42\x5b\xee\x1a\xe2\x0e\x8e\xd8\x2b\x22\xa8\x43\x45\x85\x34\xd3\x2e\xbf\xa3\xfd\xd6\x37\x69\xbf\xa9\xba\xb4\x20\x62\x5b\x71\xc3\xb4\x35\x06\xe2\xc7\x42\x16\x44\xa0\x42\x1a\x96\x17\xaf\x01\xa0\x76\x03\x51\xd3\x86\x1a\x63\x6e\xcf\x47\x13\x35\x39\x37\x4e\x4c\x89\xda\x01\x7d\x13\xe5\x36\xc4\x5b\x99\xfb\x9d\x23\xa1\xdf\x61\xfb\x34\xaa\xfc\xe6\x86\x46\xd5\x11\x55\xbc\x4e\x57\xdb\x86\x48\xea\xe3\x87\xb7\x54\x79\xd3\xf7\xfb\x6c\xdf\xb4\x20\xe3\xeb\xeb\xf7\xb4\x3d\xda\xde\xe7\x06\xb8\x66\x98\x7a\xd8\x2d\xe9\xeb\xb0\xa9\x88\x09\xe4\xc1\x02\x01\x15\x5b\x3e\x60\xea\xb4\xa9\x17\x58\xab\xa1\xdd\x8e\x96\x91\xba\xb4\x92\x23\xc3\xe3\x21\x3c\xe5\x3f\x57\x7e\x94\x98\x6e\x47\xa7\xf0\x01\x8b\x4a\x53\x2d\x71\x9a\x10\x6d\x35\x7b\x6e\x37\x20\xae\x4b\xcd\xf0\x14\x85\x13\xc8\x95\xcb\x39\x44\xa5\x38\xe3\x03\x5e\xba\xa3\x09\xeb\x6e\xbe\xba\x20\x34\x60\x4b\x23\xf7\xa6\x6d\x76\x94\xfb\x92\xfe\xf9\x0c\x3f\xfc\x0b\x6e\x0f\x30\x79\x51\x10\x9b\xe9\x4e\xd2\x0f\x2f\xcf\xd2\xff\xf2\xd3\x8f\x3f\x2e\xd2\x37\x3d\x6f\x08\xa6\x91\xbf\xf1\xda\x52\x52\x0e\x44\x07\x4a\x3b\xb7\xa7\xe5\xff\x96\x09\xfc\xdb\xf4\x19\x4a\xff\x7b\xf9\x7b\x4e\xe7\x6c\xb9\x58\x35\xbb\x17\xbc\xb9\x77\x79\xbf\x48\xb8\x84\xa8\x46\xc9\xe9\xaa\xac\x0b\x4a\xe8\xb1\xaa\x65\x01\xd7\xd1\xf2\xe0\x90\x95\xd3\x3f\x5b\x35\xf5\x4d\xd5\xf2\x84\x7e\xab\xf3\x25\xe1\xc4\xe4\x02\x62\xc7\x28\xb1\xb3\x8b\x90\x46\x1b\xb9\xba\xb9\xf7\xa0\x98\xea\x3b\xce\xd4\x05\x4d\x58\x56\xa2\x46\x55\x64\x72\x58\xbe\x42\x36\xd6\xed\x92\xa6\xd7\x1a\xbe\x3b\x8f\xf0\xe6\xe6\x66\x4b\x8c\xcd\x98\x95\xf6\x70\x29\xb9\xc2\xb7\x42\x10\x22\xc6\x3d\x24\x9b\xfLine truncated
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xeb\x72\xdc\x48\xb2\xde\x7f\x3c\x05\x66\x1c\xb2\x66\x22\xa8\x56\xcc\x4c\xd8\xe1\x98\x90\x34\xe6\x90\xa3\xcb\x1e\x51\xd4\x11\xa9\x5d\x1f\x2b\x14\x58\x74\x03\xec\xc6\xb2\x1b\xe8\xc5\x85\x3d\xdc\x5f\x7e\x0d\xbf\x9e\x9f\xc4\x99\x5f\x66\xd6\x05\x40\x53\xa3\x3d\x0e\x9f\x3f\x64\x75\x55\xd6\x2d\x2b\x2b\x2b\x6f\x55\xc8\xf7\xfb\xac\x28\xbb\x55\xfa\x3c\x3d\x4d\xf7\x79\x55\x6f\xcb\xae\x4b\xbb\x72\x7b\xf3\x64\xd3\x74\x7d\x59\xa4\xaf\xaa\x9e\x7e\xb7\x77\xd5\xaa\x4c\x92\x4d\xb3\x2b\x09\xf4\x35\xfd\x4b\x8a\xbc\xdb\x2c\x9b\xbc\x2d\x28\xe3\xdc\xd2\x49\xf9\xfb\x7e\xdb\xb4\x0c\xf4\x9b\xa4\x92\x4d\xb9\xdd\x73\x1d\xfa\x97\x74\xd5\xba\xce\xaa\x9a\x7e\x5e\x51\x2a\x7d\x53\x27\x5d\xb3\xaa\xf2\x6d\x16\x14\x20\xc3\xca\x7f\x4e\x7f\xac\x8b\xf4\xaa\x2f\xf7\xe9\xb3\x6e\x97\x6f\xb7\x2f\xf2\x0e\x55\xfa\x32\xcd\x57\xab\x66\xa8\xfb\x67\x4f\xa5\x40\x1a\x6f\x86\xde\x5a\xbf\x1c\x7a\xc9\x1b\xf6\x96\xf5\x71\x9f\xb4\xe5\xba\xa2\x89\xb5\x94\xf5\x41\x93\xc9\xa1\x5c\x76\x55\xcf\x83\xfe\x8b\xa4\x92\xbb\xb2\xed\xaa\x86\xc7\xf3\x67\x49\x25\xfb\x7c\xcd\x00\xef\xe9\x5f\xd2\x97\xbb\xfd\x36\x47\x85\x6b\x4d\x26\xdb\xbc\x5e\x0f\x02\xf3\x56\x93\x49\x32\x10\xe6\xea\x1c\x38\xfb\xa8\xc9\xa4\xdc\xe5\xd5\x96\xf1\xf3\x84\x13\xd4\x6e\xd7\x1d\x1a\x60\xf1\xbd\x26\x69\x8c\x59\x7f\xbf\x2f\x31\xc4\x27\xd7\x94\x4a\x56\xf9\xbe\x5f\x6d\x72\xca\x39\x93\x54\x42\x40\xfb\x86\xc6\xda\xb4\xf7\x80\xb3\x1f\x49\xd3\xae\xf3\xba\xfa\x47\xde\xcb\xf8\x2f\x83\x9f\xc9\xae\x6a\xdb\x86\xa7\x7e\x81\x44\x52\x97\x87\x8c\xdb\xa1\x9c\x77\xe5\x21\x6c\x85\x4b\x76\xd5\xba\x95\x59\x72\xe1\x05\x7e\x71\x2b\x5c\x76\xd3\xb4\xb7\x5a\xf0\x92\x93\xa3\xaa\x34\x08\x2d\x8d\xfb\xcf\x6b\xc2\x8b\x96\x5e\xe0\x47\x04\xd0\x25\x79\xb1\xab\xea\x6c\x9f\xd7\x25\xe3\xe8\x94\x7f\x11\x5e\xe8\x57\xa2\xcb\x9d\x75\x65\xdf\x57\xf5\xba\xe3\x62\xc9\x4a\xaf\x34\x2b\x09\xca\x5c\x1e\x8f\xa7\xcb\x6e\xca\xb2\x90\x11\x75\xe9\x4b\x4a\x27\xfb\x61\xbb\xa5\xb9\xff\x7d\x28\xbb\x9e\xe1\xdf\xd3\x6f\x9a\x85\xfc\x4e\xaa\xae\xa3\x04\x65\xbf\x41\x22\xa1\x05\xa8\x57\x18\xd2\x19\x12\x49\xf2\xa9\x2b\xf3\x76\xb5\xf9\x9c\xc8\x7f\xf4\xc8\x89\xc5\x62\x71\x74\x69\x98\x1c\x94\x14\xa4\x07\xeb\x20\x59\x35\x05\xff\x38\xa3\x7f\xd4\x74\x55\x77\x3d\x91\xf4\xe7\x44\x13\x0c\x26\x29\x41\x63\x5f\xf5\xdb\xd2\x67\x62\x7f\x74\xbc\x0e\xe9\xcb\xaa\xed\xfa\x27\x7d\x45\x24\xf7\x61\xa8\x13\x9e\x1f\x91\x73\x56\x2c\x6d\x97\xbf\x6a\x08\x3b\xc8\x6e\x69\x7e\x17\xf7\x57\xff\xfa\xf6\x24\x7d\x4f\x5b\x7d\xdd\x96\x94\x4e\xa9\x0d\xfa\x47\x75\x7e\x5a\x24\x54\xcb\x7a\x3a\xcf\xfb\x7c\x99\x77\xa5\x47\x2b\x17\x0a\x8d\xba\x32\x50\x2a\xb3\x0d\xb0\x88\xae\x8f\xe6\x3b\x47\xe7\xd4\x86\xee\x0e\xd7\xc6\x3b\xde\x22\x94\xcf\x5c\x03\x95\xdf\x6f\x4b\xce\xa7\xa6\xd2\x37\xef\xde\x5d\x9e\xff\x9a\x96\xf5\xba\xaa\xcb\xf4\x50\xf5\x9b\x74\xe8\x6f\xfe\x5b\xb6\x2e\xeb\xb2\x25\x26\xb2\xaa\x52\xda\x19\x2d\x11\x41\x4a\xe4\x29\x93\x5b\x24\x5d\xb7\xcd\x76\x82\xde\xab\xab\xb7\xe9\x05\xa3\x78\x9f\xf7\x1b\x0c\xa4\xdf\x24\xdd\xdf\xb7\x8c\x22\xd7\xe1\xf5\xa6\x4c\x6f\x2a\x9a\x35\x80\x9a\x1b\xc3\x47\x5a\xe8\x18\x17\x49\xd9\xb6\x19\xed\xfb\xfe\x3e\xd3\xca\xda\xde\x18\x52\x9a\x20\xd2\xa9\x9b\x3e\x5d\x96\x29\xea\x2c\x92\xc4\x06\x6c\xd8\x3d\xdd\xef\xb7\xd5\x4a\x76\xec\x2b\x29\xf3\x88\x66\x16\xad\x58\x0a\xe1\x80\x28\x2b\x0b\xd0\x45\xfc\xef\xbe\x19\xda\x34\x62\x03\xa8\xbf\x29\x89\x2f\x6f\x06\xda\x72\x39\xf1\xd4\x6d\x33\x14\xdf\x80\x52\x6d\xf4\x9e\x50\xd3\x0f\x0d\x0d\x18\xd8\x71\x00\xbe\x8b\x53\xa2\x38\x3e\x15\xda\x72\xd7\x10\x77\x70\xc4\x5e\x11\x41\x1d\x2a\x2a\xa4\x99\x76\xf9\x1d\xed\xb7\xbe\x49\xfb\x4d\xd5\xa5\x05\x11\xdb\x8a\x1b\xa6\xad\x31\x10\x3f\x16\xb2\x20\x02\x15\xd2\xb0\xbc\x78\x0d\x00\xb5\x1b\x88\x9a\x36\xd4\x18\x73\x7b\x3e\x9a\xa8\xc9\xb9\x71\x62\x4a\xd4\x0e\xe8\x9b\x28\xb7\x21\xde\xca\xdc\xef\x1c\x09\xfd\x1d\xb6\x4f\xa3\xca\x6f\x6e\x68\x54\x1d\x51\xc5\xeb\x74\xb5\x6d\x88\xa4\x3e\x7e\x78\x4b\x95\x37\x7d\xbf\xcf\xf6\x4d\x0b\x32\xbe\xbe\x7e\x4f\xdb\xa3\xed\x7d\x6e\x80\x6b\x86\xa9\x87\xdd\x92\x7e\x1d\x36\x15\x31\x81\x3c\x58\x20\xa0\x62\xcb\x07\x4c\x9d\x36\xf5\x02\x6b\x35\xb4\xdb\xd1\x32\x52\x97\x56\x72\x64\x78\x3c\x84\xa7\xfc\xe7\xca\x8f\x12\xd3\xed\xe8\x14\x3e\x60\x51\x69\xaa\x25\x4e\x13\xa2\xad\x66\xcf\xed\x06\xc4\x75\xa9\x19\x9e\xa2\x70\x02\xb9\x72\x39\x87\xa8\x14\x67\x7c\xc0\x4b\x77\x34\x61\xdd\xcd\x57\x17\x84\x06\x6c\x69\xe4\xde\xb4\xcd\x8e\x72\x5f\xd2\x3f\x9f\xe1\x87\x7f\xc1\xed\x01\x26\x2f\x0a\x62\x33\xdd\x49\xfa\xe1\xe5\x59\xfa\x5f\x7e\xfa\xf1\xc7\x45\xfa\xa6\xe7\x0d\xc1\x34\xf2\x37\x5e\x5b\x4a\xca\x81\xe8\x40\x69\xe7\xf6\xb4\xfc\xdf\x32\x81\x7f\x9b\x3e\x43\xe9\x7f\x2f\x7f\xcf\xe9\x9c\x2d\x17\xab\x66\xf7\x82\x37\xf7\x2e\xef\x17\x09\x97\x10\xd5\x28\x39\x5d\x95\x75\x41\x09\x3d\x56\xb5\x2c\xe0\x3a\x5a\x1e\x1c\xb2\x72\xfa\x67\xab\xa6\xbe\xa9\x5a\x9e\xd0\x6f\x75\xbe\x24\x9c\x98\x5c\x40\xec\x18\x25\x76\x76\x11\xd2\x68\x23\x57\x37\xf7\x1e\x14\x53\x7d\xc7\x99\xba\xa0\x09\xcb\x4a\xd4\xa8\x8a\x4c\x0e\xcb\x57\xc8\xc6\xba\x5d\xd2\xf4\x5a\xc3\x77\xe7\x11\xde\xdc\xdc\x6c\x89\xb1\x19\xb3\xd2\x1e\x2e\x25\x57\xf8\x56\x08\x42\xc4\xb8\x87\x6Line truncated
func confLocaleLocale_enUsIniBytes() ([]byte, error) {
return bindataRead(
@@ -786,7 +786,7 @@ func confLocaleLocale_enUsIni() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 33385, mode: os.FileMode(420), modTime: time.Unix(1437725453, 0)}
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 33685, mode: os.FileMode(420), modTime: time.Unix(1437742006, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}