2016-06-10 17:27:27 +00:00
|
|
|
// Code generated by go-bindata.
|
|
|
|
// sources:
|
2016-06-10 21:18:44 +00:00
|
|
|
// assets/public/css/styles.css
|
|
|
|
// assets/public/js/application.js
|
2016-06-14 19:33:59 +00:00
|
|
|
// assets/templates/actions.tmpl
|
2016-06-10 21:38:52 +00:00
|
|
|
// assets/templates/base.tmpl
|
|
|
|
// assets/templates/listing.tmpl
|
2016-06-11 13:32:50 +00:00
|
|
|
// assets/templates/single.tmpl
|
2016-06-10 17:27:27 +00:00
|
|
|
// DO NOT EDIT!
|
|
|
|
|
2016-06-10 21:18:44 +00:00
|
|
|
package filemanager
|
2016-06-10 17:27:27 +00:00
|
|
|
|
|
|
|
import (
|
2016-06-21 15:19:54 +00:00
|
|
|
"bytes"
|
|
|
|
"compress/gzip"
|
2016-06-10 17:27:27 +00:00
|
|
|
"fmt"
|
2016-06-21 15:19:54 +00:00
|
|
|
"io"
|
2016-06-10 17:27:27 +00:00
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
2016-06-21 15:19:54 +00:00
|
|
|
"time"
|
2016-06-10 17:27:27 +00:00
|
|
|
)
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func bindataRead(data []byte, name string) ([]byte, error) {
|
|
|
|
gz, err := gzip.NewReader(bytes.NewBuffer(data))
|
2016-06-10 17:27:27 +00:00
|
|
|
if err != nil {
|
2016-06-21 15:19:54 +00:00
|
|
|
return nil, fmt.Errorf("Read %q: %v", name, err)
|
2016-06-10 17:27:27 +00:00
|
|
|
}
|
2016-06-21 15:19:54 +00:00
|
|
|
|
|
|
|
var buf bytes.Buffer
|
|
|
|
_, err = io.Copy(&buf, gz)
|
|
|
|
clErr := gz.Close()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("Read %q: %v", name, err)
|
|
|
|
}
|
|
|
|
if clErr != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return buf.Bytes(), nil
|
2016-06-10 17:27:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type asset struct {
|
|
|
|
bytes []byte
|
|
|
|
info os.FileInfo
|
|
|
|
}
|
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
type bindataFileInfo struct {
|
|
|
|
name string
|
|
|
|
size int64
|
|
|
|
mode os.FileMode
|
|
|
|
modTime time.Time
|
|
|
|
}
|
|
|
|
|
|
|
|
func (fi bindataFileInfo) Name() string {
|
|
|
|
return fi.name
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) Size() int64 {
|
|
|
|
return fi.size
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) Mode() os.FileMode {
|
|
|
|
return fi.mode
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) ModTime() time.Time {
|
|
|
|
return fi.modTime
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) IsDir() bool {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
func (fi bindataFileInfo) Sys() interface{} {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
var _publicCssStylesCss = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x5b\x79\x6f\xdb\x48\x96\xff\x7f\x80\xf9\x0e\x35\x31\x1a\x89\x33\x22\x2d\xc9\x47\x12\x79\x07\x18\x6f\x8f\x7b\xda\x98\x24\xbd\x48\xb2\xd8\x1d\x04\x01\x58\x22\x8b\x52\xad\x49\x16\xc1\x22\x6d\x2b\xbd\xf9\xee\xfb\x5e\x5d\x2c\x92\x25\xd9\xd9\xdd\xee\xa8\x3b\x3a\xea\x78\xaf\xde\xf1\x7b\x47\x31\x27\x2f\xff\x44\x2a\xd1\x94\xb4\xe0\x5f\x59\x9c\x4a\x49\xee\x4e\xe3\x79\x7c\x4a\xfe\x9b\xbc\xbb\xf9\x44\xde\xf2\x94\x55\x92\xc1\xb7\x0d\x6f\xb7\xdd\x3a\x4e\x45\x79\x52\xb1\x54\x14\x54\x9e\x0c\xd7\xbd\x3c\xf9\xe3\x1f\xf0\x75\xf2\xf2\xe5\x1f\xff\x40\x5e\x92\x45\x4c\x3e\xb2\x96\x64\x2c\xa7\x5d\xd1\x92\x5c\x54\xf0\x17\x2d\x79\xb1\x23\xad\x20\x92\x56\x32\x92\xac\xe1\x79\xac\x66\x2f\x63\xf2\x6f\x0d\xbb\x63\x30\x89\xff\xf2\x91\xd0\x2a\x23\x37\xd7\xa4\x65\x0f\x2d\x91\x40\x81\xd0\xec\xbf\x3a\xd9\x12\x9a\xb7\xac\x81\x3d\xef\x80\x2f\x22\x1a\x0e\xf3\x69\xcb\x45\x45\xd2\x2d\xad\x36\x6c\xa6\xf6\x82\x3f\xf7\xc0\xad\xe8\x80\x3a\x97\x74\x5d\xf0\x6a\x43\x3a\x20\x46\xbe\x0a\x51\x2a\x7a\x8a\xd7\x6d\x5b\x16\xe4\x57\xf8\x0a\x7f\x90\xbd\x48\xb3\xb7\xf2\x98\xbb\xd4\xa3\x27\x70\x1c\xb5\x08\xbf\x44\xa5\x8c\x90\xb1\x08\x19\x8b\x34\x63\x2b\xb2\x98\xcf\x7f\xe8\x67\x2f\xfb\xd9\xf7\x6c\x7d\xcb\xdb\x27\xae\xf8\xe6\x4b\xf0\x03\x2b\xc5\x1d\x73\x12\x2c\x69\xb3\xe1\x55\xcf\xfe\x5a\x64\x3b\xcb\xbe\x1e\x5b\x91\xf9\xa5\xdb\x83\xfc\xfc\xe9\xdd\xdb\x73\x94\x40\x5d\xd0\x1d\xee\xc2\x2b\x8e\xb2\x92\x6a\xc9\x5f\xfe\xdf\xfe\x4c\x34\xff\xa3\x68\x1a\x96\xb6\x24\x59\x17\x22\xbd\x4d\x1c\x0b\x95\x68\x35\x1b\x2c\x03\x79\x37\xa0\xe4\x9d\x61\x92\x15\xac\x54\xaa\xaf\x50\xeb\xaf\x4f\xde\xc4\xdf\xb5\x51\x92\xb1\x96\xf2\x42\x26\x04\xbf\xc8\xae\x04\x71\xec\x12\xb3\xdb\x62\x7e\xb2\x58\xa8\xed\xd0\xa8\x7e\xe2\x0d\xcb\xc5\xc3\x77\xee\x5f\x52\x5e\xb9\xfd\x16\xbd\x0a\x68\xd3\xf2\xb4\x60\x33\x42\x25\xcf\xe0\xcd\xf0\x31\x23\x39\xdf\xa4\xb4\x46\x69\xab\xcf\x5d\x03\x83\xb9\x10\x60\xbc\x33\xb2\x65\x34\x53\xef\x9b\x46\x74\xf5\x8c\xe0\xe6\xf0\x37\xab\xba\x19\xa9\xe8\xdd\x8c\x48\xe0\x49\xad\x34\x27\xb1\x4a\x36\xec\xad\x88\x62\xf7\x72\x64\x2d\xe0\x6f\xee\x3c\xbc\x02\x9b\x67\xd1\x81\x63\x8d\x24\x0d\xee\xf7\xde\x7a\x33\xb9\x63\x78\x2c\x5a\x10\xf8\xba\xa9\x94\x62\x44\x4e\x92\xba\x11\x9b\x86\x49\xa9\x04\xf1\xe3\xb6\x11\x25\x1c\xca\xc8\x73\xa6\x84\xfb\x4b\xcd\x1a\xea\x49\xa7\xcb\xb8\x98\x91\x94\x56\x77\x14\x64\x62\xd7\xcf\xc8\x1d\x08\x4b\x4c\x4e\xe5\x33\x1d\xf2\x3b\xcb\x56\xa4\xd8\x02\x29\x50\xc9\x70\xc5\x41\x1f\xb2\xa0\x52\x0a\x90\x79\x45\xd6\x8d\xb8\x07\xc7\x96\x24\x07\xf6\x2d\x69\x84\x87\x44\x31\x9b\x38\xe0\x48\x01\x0f\x1a\x51\xc8\xd8\xf7\x44\xf6\x90\x02\xff\xa0\x40\xbe\xd9\x2a\x63\x45\xa8\x3a\x37\x70\x24\x47\x07\x5f\x81\xb8\x5f\x7c\xb6\xfb\x7c\x39\x9e\x9c\xb7\x12\x8e\x77\xbd\xe3\xc0\x7d\x35\xfb\x57\x59\x86\x22\x23\xc9\xe7\x2d\xcf\x32\x56\x7d\x49\x88\x6c\x77\x0a\xd0\x50\x9b\x35\x0c\x0e\xfc\xe6\x64\x31\xd7\x1c\xff\x0c\x22\x26\xed\x96\x91\xa4\x65\x25\xd0\x6b\x59\x32\xf5\xb2\x13\xe5\x1b\x33\xf2\x91\xe6\xb4\xe1\x33\xdf\x41\xc8\xbf\x90\xe5\xb2\x3f\x91\x25\x3f\x23\x76\xbb\x7d\xc7\xb1\xe8\xf3\x96\x57\xb7\xbf\x39\xd2\x18\xbd\xe0\x39\x37\x0d\x58\xf8\x9a\xa6\xb7\xe8\x55\x70\x0e\x08\x51\xe0\xb9\x4a\xcd\x14\xdc\x09\x66\x15\xc8\x91\x03\x05\x4f\x5b\xf6\x28\xfd\xea\x48\xad\x5e\x91\xb6\x81\x48\x50\xd3\x06\xa4\x36\xd6\xcc\x4d\x09\xf6\x0c\xbb\x36\xe0\xcd\x74\xcd\x0b\xde\xee\xd0\x4b\x72\x91\x42\xa4\xc9\xac\xac\x25\xb9\xdf\xb2\x0a\x19\xdc\x11\xd8\x06\x3c\x4a\x0a\x64\x81\x56\x1a\x91\x14\x67\x27\x5b\xd8\xa8\x01\xc5\x82\x58\x3d\xb6\x56\x7a\x14\xd4\xb2\xd2\x13\x0c\x9b\x60\x9e\x68\xf6\x43\xb0\xff\x84\xe1\xa5\x00\x5b\x2f\x00\x3e\x4a\x5a\x81\xa7\xfc\xe6\xd2\xb7\xc6\xf9\x98\x45\x4e\x6c\x4c\x83\x87\x77\xd4\xf5\xba\xf9\xdc\xf2\xb6\x60\x5f\x9c\x2e\x44\x03\x0e\x1b\xad\x45\xdb\x8a\x12\x62\x65\xfd\x40\x32\xf8\xcc\xb2\x7d\x1e\x82\x4c\x30\x38\x7b\x8b\xd9\x45\xb2\x16\x05\x2c\x57\x48\x65\x0d\xfa\xec\xcf\x87\x99\x58\x03\xde\x82\xab\xc2\x39\xfc\x94\xe0\xde\x78\xe6\xf9\x7c\xaf\x6f\xee\x39\xbe\xa6\x15\x24\x95\xe5\xd5\x80\x88\xe2\x1d\x00\xb0\x05\x64\x4b\xf7\x91\xb9\x83\xdd\x20\x97\x01\x8f\xde\x2e\x12\xb3\x4e\x65\x46\x40\x40\x87\x7f\x05\x5e\xf0\x96\x98\x00\x92\xa8\xb1\xc4\x04\
|
2016-06-21 15:19:54 +00:00
|
|
|
|
|
|
|
func publicCssStylesCssBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_publicCssStylesCss,
|
|
|
|
"public/css/styles.css",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2016-06-10 21:18:44 +00:00
|
|
|
func publicCssStylesCss() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := publicCssStylesCssBytes()
|
2016-06-10 17:27:27 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
info := bindataFileInfo{name: "public/css/styles.css", size: 14615, mode: os.FileMode(438), modTime: time.Unix(1466631017, 0)}
|
2016-06-21 15:19:54 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
2016-06-22 20:03:48 +00:00
|
|
|
var _publicJsApplicationJs = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xbc\x5a\xfb\x6f\x1b\xb9\xf1\xff\xdd\x80\xff\x07\x66\xbf\x07\xec\xca\x27\xcb\x76\xbe\x05\x0a\xd4\x27\x07\x3e\x5b\x07\x1f\xea\xf8\x82\x44\x28\x0a\xe4\x71\x58\x6b\x29\x89\xf5\x6a\xa9\x72\xb9\x76\xd4\x46\xff\x7b\x67\xf8\x5a\xee\x53\xb2\xaf\x4d\x51\xd8\xce\x72\x66\x38\xf3\x99\x27\xc9\x0b\x8a\x9c\x92\x5c\x0a\x36\x93\xc1\xf9\xe1\xc1\xe1\xc1\x63\x2c\x48\x4e\x53\x3a\x93\x34\xf9\x55\xd2\x55\x4e\xc6\xe4\xe3\x67\xb5\x74\x72\x42\x2e\x85\x88\x37\x64\x2d\xb8\xe4\x72\xb3\xa6\x64\x5e\x64\x33\xc9\x78\x46\x24\x27\x82\xae\xf8\x23\x25\x71\x46\x80\x7d\x45\x33\x79\x78\xa0\xc8\x47\x8e\x7c\xa4\x49\x26\x7a\x19\x04\x3b\xf6\xc8\xb0\x0c\xc8\xbf\x0f\x0f\x08\xea\xc0\x60\x59\x2e\x59\x3e\x62\x59\x42\xbf\xfe\x36\x77\x14\xa0\x0a\x61\x73\x12\x31\xf2\x6a\x4c\x8e\xcf\x34\x87\x26\xcd\xd7\x29\x9b\xd1\x88\x0d\xc9\x99\x22\xdb\x1e\x1e\x6c\xf7\x52\x7c\x9d\xc6\xb3\x5d\x9a\x2b\x9a\x36\xd5\x79\x9a\x4c\xd2\x21\xc9\xe8\xd3\x24\xed\xd1\x5f\x91\xf5\x68\xff\x91\x7d\x06\x16\x25\xa5\xa6\xfb\x35\x9f\x15\x6a\xd7\x76\xf5\x73\x9a\x25\x24\x26\x33\x9e\xcb\x62\x45\xe8\x23\x52\xc2\x67\x26\xc1\x8d\xf3\xc3\x03\xcb\xed\x19\x83\x1c\x57\x8a\x7c\xf2\x58\xb7\x46\xd2\xaf\xc6\x0b\x89\x65\x4c\x58\xbe\x8e\xe5\x6c\xa9\x88\x23\xd0\x90\x5c\x15\xb9\xe4\x9a\x59\x33\xa0\x5d\x3d\xea\x82\x3a\x0b\x2a\x95\x92\xfc\x81\x51\xf8\x95\x49\x05\x73\x8b\x72\x40\x78\xa5\xa9\x7c\xb5\xb2\x78\x45\x4b\x70\x05\xd5\x50\x91\xf7\x74\x31\xf9\xba\x8e\x82\xe8\xcd\x5f\xe0\xff\x5f\xbe\x8d\x8e\xce\x3f\x7d\xca\x8f\x06\x01\xf9\x91\x20\x0b\xfc\x0a\xf0\xc3\xa7\x4f\x63\xfc\x15\x7d\xfc\x72\xfe\xf9\x68\x30\x3a\xfa\x61\xf0\xed\x0b\xfc\x0c\x94\x3f\x04\x95\x85\xc8\x4a\x7b\xb5\x92\xd6\xe5\x91\xa0\x43\x12\xfc\x70\x16\xf8\x36\x5e\x2d\xe3\x6c\x41\x73\xb0\xe8\xbe\x90\x52\xfb\x41\x2e\x29\x49\x79\x9c\xb0\x6c\x01\xa1\xc4\x56\x31\x6a\x7e\x78\x60\x42\xc6\xb3\x70\xa6\x98\xa7\xfc\xd6\x10\xfb\x76\x6a\x1b\x53\x00\x8b\xba\x50\xc3\xe8\x38\x37\x5f\xb9\x60\x0b\x96\xc5\xe9\x14\x50\x87\x25\x43\x04\x41\x96\x51\x71\x33\x7d\x7b\xab\x12\xd5\x7d\xce\xe5\x26\xa5\x23\xbe\x8e\x67\x4c\x6e\x80\xfc\x54\x2f\xe7\x54\x4e\xd9\x8a\xf2\x42\x46\xf5\x9d\x9b\x12\x81\x2d\xfc\x89\x91\x59\x1a\xe7\xf9\x38\x00\xab\xa8\x60\x71\x7a\xcc\xc0\x87\x39\xc9\xd7\x2c\x0b\x2e\xe2\x42\x72\x41\xc1\x1f\x3f\x9d\xb0\x8b\xf0\xdc\x17\x53\xd7\xe0\x4c\xc5\xf6\x90\xbc\x3e\x3d\x1d\x68\x65\x0c\xfa\xbe\x61\x6d\x40\xbb\xdc\x44\xa8\x13\x9e\xd1\xfd\x30\xbe\x46\xca\x4a\xa1\x11\x82\x8b\x21\x59\xca\x95\x49\x56\x5d\x39\xda\x81\x42\xc4\x61\x5d\x24\x1f\x24\x5d\xc3\x67\x00\x69\x7c\xe1\x15\x1c\x1f\x24\x94\x78\x5e\x96\xa2\x16\xbb\x71\x11\x73\xbf\x52\x5e\x47\x29\xcd\x16\x72\x49\xc6\xb0\xa9\x71\x41\x19\x89\xb5\x44\x8d\x42\x6d\x56\x72\x6c\x45\x84\x2a\x80\xb1\x58\x90\xad\xd3\x38\xa7\xe0\x9b\x2e\x95\xdb\x2c\x25\x7e\x44\x38\x7b\x9d\x93\x3c\xd1\x73\x26\x72\xd9\x94\x8c\x56\x29\x60\xad\x05\x0d\x74\x3a\x43\x28\xb8\x98\xa5\x3c\xa7\x65\xe4\x6c\xc1\xd1\xd0\x93\x9e\x2f\x07\x83\xc2\x13\xa3\xf1\xee\x75\x86\x67\x75\x89\x19\x34\x8f\xd3\x8a\xdd\x7e\xb6\x58\xf3\x4b\x6c\x4c\xf8\xce\x63\x50\xda\x8b\x5b\x5d\x58\xe7\x5c\x40\xb8\x2e\x16\x29\xa6\x39\xd6\x87\x15\x4f\x28\xe1\x73\xf2\xc8\xe8\x93\xee\xb5\xf8\x57\xb3\x0a\xab\x2a\x5e\xd6\x82\x99\x2d\x88\x2e\x32\x5c\x95\x8c\x42\x94\x70\x9c\xb2\x5c\xea\x60\x40\x7a\xfc\x97\xae\x2c\x3e\x83\xc9\x92\x9f\x37\xbf\x26\x51\x68\x48\x42\x93\x85\xe8\x41\xb3\x0b\x34\xa6\x50\x8a\x82\x86\xc6\x99\xb5\xba\x88\x4e\x70\x5b\x8e\x15\xa1\xc2\xca\x73\x5b\x2f\x87\x42\x2a\x2c\xe1\x85\x88\x4e\x52\xfa\x37\x58\x9f\x42\xe2\x46\x3b\x2c\xec\xc3\xfc\x46\x49\xca\x15\xd0\xc8\x42\x54\xef\xd1\x29\xa3\xc1\xae\xee\x55\x41\x1c\x19\x6e\x61\x8b\x12\xf4\x67\x82\xa8\x78\x4c\x37\xe8\x61\xc1\x7d\x7c\xd0\xed\xbe\x58\x00\x02\x44\x33\x30\xb0\x1b\xd9\x23\x15\xed\x48\x31\x8a\x13\xb3\xa5\xc9\x7a\xbd\xd9\xbe\xe9\x81\x1b\xfd\x0e\xf1\x57\xa4\x5e\x96\xd4\x90\x34\x2e\x79\x81\x60\x54\xcb\x89\x6d\xaa\xae\x07\x3f\x5f\xfb\x3d\x7c\xc8\xd7\x14\x08\x58\x4a\x2d\xac\x2a\x2b\xb4\x27\x71\xad\x37\x6d\xba\x0a\xad\x41\xf7\x09\xc6\x32\xfe\x34\x42\x31\x55\xb2\x8f\xa7\x9f\x61\x68\x08\xdf\x88\xf8\x49\x07\xf7\xa0\x07\x28\x5f\x8a\xf9\x3b\xe5\x33\xd5\x94\x5a\x84\xec\x61\xf2\x7d\x3c\x7b\x68\xb1\x
|
2016-06-11 22:03:54 +00:00
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func publicJsApplicationJsBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_publicJsApplicationJs,
|
|
|
|
"public/js/application.js",
|
|
|
|
)
|
2016-06-10 17:27:27 +00:00
|
|
|
}
|
|
|
|
|
2016-06-10 21:18:44 +00:00
|
|
|
func publicJsApplicationJs() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := publicJsApplicationJsBytes()
|
2016-06-10 21:18:44 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-22 20:03:48 +00:00
|
|
|
info := bindataFileInfo{name: "public/js/application.js", size: 9659, mode: os.FileMode(438), modTime: time.Unix(1466625611, 0)}
|
2016-06-21 15:19:54 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
var _templatesActionsTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x84\x8f\x31\x6e\x85\x30\x10\x44\x7b\x4e\xb1\x72\x9f\x70\x01\x43\x95\x26\xa7\xb0\x2c\x76\x90\x56\x32\xeb\x08\x5b\xa1\x40\xdc\x3d\x06\x82\xfe\xa7\x00\x2a\x17\x33\x7e\x6f\x67\x9e\x89\xd1\x8b\x82\x8c\xef\xb2\x44\x4d\x86\x96\xa5\x22\xcb\xf2\x4b\x5d\xf0\x29\x35\xff\x81\x21\xe1\xc6\xc4\x1f\xa8\x69\x2b\x22\x2b\x47\x3c\xf8\x8c\x51\x7c\xf8\x90\x6e\xfd\xde\xae\x15\x27\xea\x14\x93\xad\xa5\x74\x6d\x5d\x60\xe5\x2d\x2e\xe9\xe9\xf3\x3b\x7d\xc9\xb8\x49\x2e\x2d\x23\xd4\x0f\xd8\x3c\x37\xa2\x21\x32\x1c\x58\xf2\xae\x79\xf7\x40\xf9\x76\x06\xc7\x49\x43\xf4\xfc\x30\xa5\x97\x00\x77\x74\xcf\x63\x2e\xc9\x08\xc8\x78\xe0\xee\xa5\x13\xf0\x75\xf4\x5f\x00\x00\x00\xff\xff\x48\xd7\xb4\x16\x93\x01\x00\x00")
|
2016-06-10 21:18:44 +00:00
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func templatesActionsTmplBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_templatesActionsTmpl,
|
|
|
|
"templates/actions.tmpl",
|
|
|
|
)
|
2016-06-10 21:18:44 +00:00
|
|
|
}
|
|
|
|
|
2016-06-14 19:33:59 +00:00
|
|
|
func templatesActionsTmpl() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := templatesActionsTmplBytes()
|
2016-06-14 19:33:59 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
info := bindataFileInfo{name: "templates/actions.tmpl", size: 403, mode: os.FileMode(438), modTime: time.Unix(1466630275, 0)}
|
2016-06-21 15:19:54 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
2016-06-14 19:33:59 +00:00
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
var _templatesBaseTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xb4\x56\xdf\xab\xdb\x36\x14\x7e\xcf\x5f\xa1\x8a\x41\x1e\xd6\x58\x19\x6c\x2f\xc5\xce\x60\xf7\x76\xac\xd0\x6e\xa5\x77\x63\xec\x29\x28\xf6\xb1\xad\x56\x96\x3c\x49\xce\x6d\x08\xf9\xdf\x77\x64\xd9\x8e\x93\x26\x4e\xba\x31\x08\xc4\x96\x8f\xbe\xf3\xeb\x3b\x9f\x14\xbf\x78\xfc\xed\xe1\xf7\xbf\xde\xbf\x26\xa5\xab\xe4\x6a\x16\x87\x3f\x12\x97\xc0\x33\xfc\x27\xb1\x13\x4e\xc2\x6a\xbf\x8f\x7e\xe5\x15\x1c\x0e\x31\x0b\x0b\xfe\x53\x05\x8e\x13\x85\xcb\x09\xdd\x0a\x78\xae\xb5\x71\x94\xa4\x5a\x39\x50\x2e\xa1\xcf\x22\x73\x65\x92\xc1\x56\xa4\xb0\x68\x5f\x5e\x12\xa1\x84\x13\x5c\x2e\x6c\xca\x25\x24\xdf\x45\x4b\xda\x02\x49\xa1\x3e\x91\xd2\x40\x9e\xd0\xd2\xb9\xda\xbe\x62\x2c\x47\x18\x1b\x15\x5a\x17\x12\x78\x2d\x6c\x94\xea\x8a\x09\x04\xff\x31\xe7\x95\x90\xbb\xe4\x1d\x77\x60\x10\xeb\xdb\x37\xb8\x68\x29\x31\x20\x13\x6a\xdd\x4e\x82\x2d\x01\xdc\x39\xf0\x7c\x12\x38\xb5\xb6\xc7\xfd\xa0\x37\xda\xe9\x57\xdf\x2f\x97\x2f\x7f\x58\x2e\xe7\x2d\xee\xfc\x88\x3b\x27\x6e\x57\x43\x32\x77\xf0\xd9\xf9\x6d\xf3\xa3\x9f\xf3\x08\xba\x8c\xf6\x7b\x12\x3d\x68\x95\x8b\x22\xfa\x89\x5b\xf8\xe3\xc3\x5b\x72\x38\xb0\x75\x2e\x24\x54\x5c\xf1\x02\xb3\xc0\x8a\x19\xc5\xa5\xc7\x63\x01\x20\xc2\xc7\x90\x82\x4d\x8d\xa8\x1d\xb1\x26\xfd\x2a\xa8\x8f\x96\xf1\xba\x96\x22\xe5\x4e\x68\x15\x7d\x44\xb4\x98\x05\x2c\x0f\x8b\x48\x22\x27\x0a\x06\xbc\x27\xef\xf6\xc9\xc7\x4d\x28\x45\x54\xb4\x41\xdf\x7e\xd1\x9b\xfb\x0d\x5f\x5a\x76\x56\x6c\x30\x43\x54\x50\x59\xd8\x1d\x3c\xf4\x9b\x7e\x69\x0a\xfd\x5a\xf1\x8d\x84\xac\x07\x7f\xb1\x58\x10\xbf\x4c\x6a\xd9\x14\x42\x11\xeb\x9a\x3c\x27\x8b\x45\xeb\xef\xdf\x54\xb4\x44\xb0\xa9\x52\xde\x55\xcb\x13\x90\xdb\x45\xec\xd3\x8d\x59\x37\x30\xf1\x46\x67\xbb\xb6\x71\x7e\x01\x4c\x70\x9c\x89\x6d\x5f\x46\xf2\x8d\xc4\xcc\x5e\x25\x24\x7a\x6f\x70\x36\x74\x63\xdf\xfa\x54\x43\x51\x8e\x7d\x69\xad\x28\xed\x96\x49\xcc\x8f\xb9\xa3\x01\xfc\xdd\x19\x10\xe6\x9b\xc5\xf6\x7b\x90\x16\xf0\x29\x8a\x18\xfe\xb0\x59\x63\xf0\xc3\x61\x88\x34\x14\xa2\x0b\x89\xa4\x92\x5b\x9b\x50\x9e\xfa\xf4\x28\x11\x59\x42\x6b\xdc\x37\x18\x91\x58\xf4\x36\x55\x37\x6e\x0b\xd1\x8e\xdb\xca\x36\x9b\x4c\x18\x48\x9d\x36\xbb\x35\x37\x46\x3f\xaf\x25\xe4\x2e\x66\x62\xf0\xc0\x86\xac\xf1\x99\xaf\x7c\x0c\x21\xc8\xd9\x95\x08\x48\x26\x6c\x4b\x91\x0b\xa1\xfc\x87\x48\x46\x81\x8c\x09\x8a\x1f\xea\xd5\xb5\xea\x9e\x53\x83\x92\xae\xce\x7d\x0e\x17\xe9\xf3\x65\x99\xa7\xa6\xc0\xbf\x1d\x01\x7f\xc6\x21\x26\xef\xc2\x14\x9f\x86\xd9\x56\x6f\x46\x4e\xe8\xd1\xaa\x31\xa1\x6c\x20\xc8\x44\x81\xd2\x12\xb6\x46\xab\xb5\x11\x45\x39\x6e\x90\x4f\xa1\x85\xf1\xaa\x5e\x5f\x28\xd0\xb1\x70\x27\x04\xf6\x09\xbd\xb1\x8f\xc2\x0c\xf1\xe5\xda\x54\x77\x34\x0a\xb8\x49\xcb\x31\x43\x84\xaa\x1b\x17\x04\x95\x7a\x41\xa5\xa8\x05\x3c\x85\x52\x4b\x9c\x9c\x84\x3e\xb5\x1b\xe8\xd0\xc6\x91\x9b\x6b\xf4\xf5\xe7\xd0\x1d\x9c\xf1\x66\x6b\x3f\xa0\x28\x33\x70\x91\x29\x57\x3d\x34\xb5\xd4\x3c\xbb\xc3\x87\x57\xe5\x75\xb0\xbe\xec\xe1\x7c\x20\xf0\xdd\x41\x85\x15\x70\xd8\xd9\xe0\x12\xcf\xb5\x68\x24\x0d\x5d\x6b\x66\xb7\x98\xd5\xf9\x9a\x54\xd8\x53\xd6\x5f\x90\x42\x0b\xce\x09\x55\xd8\x29\xc9\xb8\x47\x28\x3a\x98\x09\x65\x98\x2e\xb8\xd4\x85\x6e\xdc\x1d\x05\x87\xcf\xc2\xad\x9d\x5e\xa3\x64\xdf\x1e\xfe\x61\x3d\x28\xb7\x17\xea\xd9\x29\xbb\x7b\x43\x1f\x96\x8f\xc3\x69\x2d\x37\xdc\x74\x81\xc4\xb7\x99\xb2\xe1\xe9\xa7\x3b\xc2\x0e\x92\xe5\x8d\xaf\x10\xb1\x1e\x30\x6c\xcd\x55\x0b\x6d\x41\xa2\xe0\x41\xb6\x50\x4d\xb5\x01\x8c\x69\x89\xe7\x12\x7e\xec\x2d\xfb\xef\xd1\x30\xd8\x23\xc4\xf8\x84\x82\x53\x94\x1b\x09\x40\xff\x34\x2e\x62\x5c\x71\x11\x5c\x9e\xe0\x74\x37\x40\xc4\x79\xe4\x78\x41\x0c\xa6\xac\xb7\x45\xb1\xd0\xae\x3b\x17\x9f\xc0\x6c\x91\xb0\xcf\xc2\x95\xb3\x40\xc8\xf6\xc4\x57\x5a\xd7\xa0\xc0\x10\xa5\x91\x9f\x60\x0c\x66\x78\x76\x3d\x4c\x79\x96\xed\xac\xdf\x6e\xfc\x05\x8e\xae\x1e\xfc\x42\x4f\x26\xae\xb2\xaf\xc4\x2b\x30\x84\x66\xd3\xde\x05\x4b\x9e\x66\x82\xdb\xe0\x62\x31\xba\x5b\xd1\xd5\x58\xa3\xbd\xaf\x68\x76\x63\x10\xff\x44\x58\xc2\x49\x2e\xf9\x56\x37\x86\xe8\x7c\x46\xfe\x8f\xb8\xbc\xd3\x36\x9e\x93\xee\xb0\xa1\xd2\x31\x0b\xb7\x12\xe4\xba\xbf\xde\xff\x13\x00\x00\xff\xff\x8f\xc0\xd0\x15\xf5\x0b\x00\x00")
|
2016-06-21 15:19:54 +00:00
|
|
|
|
|
|
|
func templatesBaseTmplBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_templatesBaseTmpl,
|
|
|
|
"templates/base.tmpl",
|
|
|
|
)
|
2016-06-14 19:33:59 +00:00
|
|
|
}
|
|
|
|
|
2016-06-10 21:38:52 +00:00
|
|
|
func templatesBaseTmpl() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := templatesBaseTmplBytes()
|
2016-06-10 21:38:52 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
info := bindataFileInfo{name: "templates/base.tmpl", size: 3061, mode: os.FileMode(438), modTime: time.Unix(1466630263, 0)}
|
2016-06-21 15:19:54 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
var _templatesListingTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x93\x31\x4f\xc3\x30\x10\x85\xf7\xfe\x8a\x93\x07\xb6\x34\x4e\xa1\x20\x15\x37\x13\x03\x48\x14\x21\x28\x0b\x4b\x65\xea\x4b\x7b\x52\xe2\x54\xb6\xe9\x40\x94\xff\x8e\xdd\x34\x69\x53\x40\x74\xca\xc5\xf7\xde\x77\xf7\x12\xb9\xaa\x40\x61\x46\x1a\x81\x2d\x4b\xed\x50\x3b\x06\x75\x3d\x00\xa1\x68\x0b\xcb\x5c\x5a\x3b\x65\x39\x59\x47\x7a\xc5\xd2\x01\xf4\xce\x83\x41\x7a\xab\x61\x40\xaa\x2f\x83\xaa\x8a\xc0\x48\xbd\x42\x18\x3e\x38\x2c\x6c\x60\xf6\xdd\xe4\x8f\x1b\x63\x55\x0d\xdf\x5e\x1e\xeb\xba\x71\xee\x44\x4d\x05\x42\xc2\xda\x60\xf6\x43\xd2\xf0\x29\xf3\x70\x7b\x47\xa6\x81\x07\x3d\xb5\xf4\x42\x3a\x34\x24\xf3\x88\xfc\x96\x96\xa5\x59\x99\x2b\x34\x22\xa6\x63\x00\xe6\x16\xcf\xf0\x92\xb6\x68\xdc\x42\x19\xda\xe2\x22\xa3\x1c\x4f\x31\x5a\xb5\x14\x11\xcb\x7d\x88\xb8\x4b\x71\x56\x1e\x61\x37\x52\xb7\x0b\x68\x59\x20\x4b\xbd\xe6\xc9\x17\x75\x2d\xe2\xd0\xfc\x27\xf9\x06\x94\x74\x32\x2a\x8d\x8f\x39\x65\x51\xc2\xd2\x8b\x42\x49\xbb\xbe\x15\xf1\xe6\xef\xcc\x7d\x97\x9f\xf8\x4a\x5f\x18\xd6\xf2\xe5\xfd\x67\x21\x75\xf3\x7e\xca\x38\x04\x0e\x88\xfd\xd6\x6b\x52\x28\x3f\x72\xec\x32\x81\x70\x54\x60\x98\x80\xa1\xd8\xf1\x77\xd0\x59\xa9\xe6\xa1\xc3\x60\xc4\xf9\x75\xc4\x93\x88\x8f\xe6\xc9\x78\xc2\xaf\x26\x7c\xfc\xce\x8e\xe7\x77\x52\x9e\xc4\x7c\x14\x07\x3d\xf0\xcb\x46\x09\xcf\x33\x88\xf8\xcd\x84\x73\x16\x56\x0c\x33\xba\xcf\xd9\x2d\xfc\xcb\x1f\x39\x54\xc7\x61\xda\xd3\xfd\xd3\x5f\x0c\xdf\x09\x77\xe1\x3b\x00\x00\xff\xff\xae\x4f\x3d\x8f\x23\x03\x00\x00")
|
2016-06-10 21:38:52 +00:00
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func templatesListingTmplBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_templatesListingTmpl,
|
|
|
|
"templates/listing.tmpl",
|
|
|
|
)
|
2016-06-10 21:38:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func templatesListingTmpl() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := templatesListingTmplBytes()
|
2016-06-10 17:27:27 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
info := bindataFileInfo{name: "templates/listing.tmpl", size: 803, mode: os.FileMode(438), modTime: time.Unix(1466630287, 0)}
|
2016-06-21 15:19:54 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
var _templatesSingleTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x90\x41\xce\x82\x30\x14\x84\xf7\x3d\xc5\xa4\x07\x80\x0b\x14\xfe\xc5\xbf\x75\x65\xf4\x00\x0d\x7d\x90\x97\x40\xc1\xb6\x68\x0c\xe1\xee\xb6\x85\x60\x5c\xe8\xf2\x0d\xf3\x7d\x61\xba\x2c\x30\xd4\xb2\x25\xc8\x66\xb4\x81\x6c\x90\x58\x57\x21\xa0\x06\xcd\x16\x4d\xaf\xbd\xaf\xf2\xa7\x78\x92\x93\xb5\x00\x22\xc3\x2d\xe8\x86\xe2\xf2\x9c\x22\xc8\x83\xee\x28\x63\x00\x14\x0f\x1d\xbc\x6b\x2a\x19\x6b\xc5\xf5\x7c\x8a\xf9\x9f\xd3\x8f\x2a\xb8\x99\x32\x9e\x78\xea\x3d\x7d\x4a\xf4\x6c\x78\x3c\x24\xf9\xfa\xa1\x51\x65\x6e\x7c\xd7\xdd\xd9\xd0\xb8\x4f\x39\x2a\xbb\x7c\x72\x54\x27\xeb\xff\x36\x38\x96\x54\x99\xb2\x6d\x1a\x59\x93\xff\x42\x95\xe9\x05\x6a\x21\xde\xd9\x2b\x00\x00\xff\xff\xef\x07\xd5\xe5\x2d\x01\x00\x00")
|
2016-06-11 22:03:54 +00:00
|
|
|
|
2016-06-21 15:19:54 +00:00
|
|
|
func templatesSingleTmplBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_templatesSingleTmpl,
|
|
|
|
"templates/single.tmpl",
|
|
|
|
)
|
2016-06-10 17:27:27 +00:00
|
|
|
}
|
|
|
|
|
2016-06-11 13:32:50 +00:00
|
|
|
func templatesSingleTmpl() (*asset, error) {
|
2016-06-21 15:19:54 +00:00
|
|
|
bytes, err := templatesSingleTmplBytes()
|
2016-06-11 13:32:50 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2016-06-23 07:11:41 +00:00
|
|
|
info := bindataFileInfo{name: "templates/single.tmpl", size: 301, mode: os.FileMode(438), modTime: time.Unix(1466630292, 0)}
|
2016-06-21 15:19:54 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
2016-06-11 13:32:50 +00:00
|
|
|
}
|
|
|
|
|
2016-06-10 17:27:27 +00:00
|
|
|
// Asset loads and returns the asset for the given name.
|
|
|
|
// It returns an error if the asset could not be found or
|
|
|
|
// could not be loaded.
|
|
|
|
func Asset(name string) ([]byte, error) {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
if f, ok := _bindata[cannonicalName]; ok {
|
|
|
|
a, err := f()
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
|
|
|
|
}
|
|
|
|
return a.bytes, nil
|
|
|
|
}
|
|
|
|
return nil, fmt.Errorf("Asset %s not found", name)
|
|
|
|
}
|
|
|
|
|
|
|
|
// MustAsset is like Asset but panics when Asset would return an error.
|
|
|
|
// It simplifies safe initialization of global variables.
|
|
|
|
func MustAsset(name string) []byte {
|
|
|
|
a, err := Asset(name)
|
|
|
|
if err != nil {
|
|
|
|
panic("asset: Asset(" + name + "): " + err.Error())
|
|
|
|
}
|
|
|
|
|
|
|
|
return a
|
|
|
|
}
|
|
|
|
|
|
|
|
// AssetInfo loads and returns the asset info for the given name.
|
|
|
|
// It returns an error if the asset could not be found or
|
|
|
|
// could not be loaded.
|
|
|
|
func AssetInfo(name string) (os.FileInfo, error) {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
if f, ok := _bindata[cannonicalName]; ok {
|
|
|
|
a, err := f()
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
|
|
|
|
}
|
|
|
|
return a.info, nil
|
|
|
|
}
|
|
|
|
return nil, fmt.Errorf("AssetInfo %s not found", name)
|
|
|
|
}
|
|
|
|
|
|
|
|
// AssetNames returns the names of the assets.
|
|
|
|
func AssetNames() []string {
|
|
|
|
names := make([]string, 0, len(_bindata))
|
|
|
|
for name := range _bindata {
|
|
|
|
names = append(names, name)
|
|
|
|
}
|
|
|
|
return names
|
|
|
|
}
|
|
|
|
|
|
|
|
// _bindata is a table, holding each asset generator, mapped to its name.
|
|
|
|
var _bindata = map[string]func() (*asset, error){
|
2016-06-10 21:18:44 +00:00
|
|
|
"public/css/styles.css": publicCssStylesCss,
|
|
|
|
"public/js/application.js": publicJsApplicationJs,
|
2016-06-14 19:33:59 +00:00
|
|
|
"templates/actions.tmpl": templatesActionsTmpl,
|
2016-06-10 21:38:52 +00:00
|
|
|
"templates/base.tmpl": templatesBaseTmpl,
|
|
|
|
"templates/listing.tmpl": templatesListingTmpl,
|
2016-06-11 13:32:50 +00:00
|
|
|
"templates/single.tmpl": templatesSingleTmpl,
|
2016-06-10 17:27:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// AssetDir returns the file names below a certain
|
|
|
|
// directory embedded in the file by go-bindata.
|
|
|
|
// For example if you run go-bindata on data/... and data contains the
|
|
|
|
// following hierarchy:
|
|
|
|
// data/
|
|
|
|
// foo.txt
|
|
|
|
// img/
|
|
|
|
// a.png
|
|
|
|
// b.png
|
|
|
|
// then AssetDir("data") would return []string{"foo.txt", "img"}
|
|
|
|
// AssetDir("data/img") would return []string{"a.png", "b.png"}
|
|
|
|
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
|
|
|
|
// AssetDir("") will return []string{"data"}.
|
|
|
|
func AssetDir(name string) ([]string, error) {
|
|
|
|
node := _bintree
|
|
|
|
if len(name) != 0 {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
pathList := strings.Split(cannonicalName, "/")
|
|
|
|
for _, p := range pathList {
|
|
|
|
node = node.Children[p]
|
|
|
|
if node == nil {
|
|
|
|
return nil, fmt.Errorf("Asset %s not found", name)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if node.Func != nil {
|
|
|
|
return nil, fmt.Errorf("Asset %s not found", name)
|
|
|
|
}
|
|
|
|
rv := make([]string, 0, len(node.Children))
|
|
|
|
for childName := range node.Children {
|
|
|
|
rv = append(rv, childName)
|
|
|
|
}
|
|
|
|
return rv, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type bintree struct {
|
|
|
|
Func func() (*asset, error)
|
|
|
|
Children map[string]*bintree
|
|
|
|
}
|
|
|
|
var _bintree = &bintree{nil, map[string]*bintree{
|
2016-06-10 21:18:44 +00:00
|
|
|
"public": &bintree{nil, map[string]*bintree{
|
|
|
|
"css": &bintree{nil, map[string]*bintree{
|
|
|
|
"styles.css": &bintree{publicCssStylesCss, map[string]*bintree{}},
|
|
|
|
}},
|
|
|
|
"js": &bintree{nil, map[string]*bintree{
|
|
|
|
"application.js": &bintree{publicJsApplicationJs, map[string]*bintree{}},
|
|
|
|
}},
|
|
|
|
}},
|
|
|
|
"templates": &bintree{nil, map[string]*bintree{
|
2016-06-14 19:33:59 +00:00
|
|
|
"actions.tmpl": &bintree{templatesActionsTmpl, map[string]*bintree{}},
|
2016-06-10 21:38:52 +00:00
|
|
|
"base.tmpl": &bintree{templatesBaseTmpl, map[string]*bintree{}},
|
|
|
|
"listing.tmpl": &bintree{templatesListingTmpl, map[string]*bintree{}},
|
2016-06-11 13:32:50 +00:00
|
|
|
"single.tmpl": &bintree{templatesSingleTmpl, map[string]*bintree{}},
|
2016-06-10 21:18:44 +00:00
|
|
|
}},
|
2016-06-10 17:27:27 +00:00
|
|
|
}}
|
|
|
|
|
|
|
|
// RestoreAsset restores an asset under the given directory
|
|
|
|
func RestoreAsset(dir, name string) error {
|
|
|
|
data, err := Asset(name)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
info, err := AssetInfo(name)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// RestoreAssets restores an asset under the given directory recursively
|
|
|
|
func RestoreAssets(dir, name string) error {
|
|
|
|
children, err := AssetDir(name)
|
|
|
|
// File
|
|
|
|
if err != nil {
|
|
|
|
return RestoreAsset(dir, name)
|
|
|
|
}
|
|
|
|
// Dir
|
|
|
|
for _, child := range children {
|
|
|
|
err = RestoreAssets(dir, filepath.Join(name, child))
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func _filePath(dir, name string) string {
|
|
|
|
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
|
|
|
|
}
|
|
|
|
|