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
|
|
|
|
}
|
|
|
|
|
|
|
|
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\
|
|
|
|
|
|
|
|
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-21 15:19:54 +00:00
|
|
|
info := bindataFileInfo{name: "public/css/styles.css", size: 14615, mode: os.FileMode(438), modTime: time.Unix(1465976770, 0)}
|
|
|
|
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-22 20:03:48 +00:00
|
|
|
var _templatesActionsTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\xd0\x41\x0a\x83\x30\x10\x05\xd0\xbd\xe0\x1d\x42\xf6\xad\x17\x88\x59\x75\xd3\x53\x84\xe0\x8c\xf0\x21\x4e\x8a\x09\x75\x21\xde\xbd\x91\x56\x5a\x0a\x66\xfd\x7f\x5e\x3e\xb3\xae\x8a\x78\x84\xb0\xd2\x7e\xc8\x88\x92\xb4\xda\xb6\xb6\x31\x84\xa7\x1a\x82\x4f\xa9\xff\x04\x5a\x81\x7a\x1d\x1f\x2c\xda\x1a\x1c\xd9\xe4\x33\xcf\xf0\xe1\x82\x61\x7f\x6b\xf7\xdc\x41\x9c\xf0\x62\x3a\x58\xd3\x15\xc7\xb6\x4d\xf9\x06\xa3\xba\xde\xd3\x0d\x73\xf1\xcf\xf4\x99\xc5\x4f\x5c\xf3\xa7\x48\xec\x98\x90\xbf\x7a\xb1\x59\xa8\xba\x9a\xe2\x22\x21\x7a\xaa\xc9\x23\x02\xbb\xa3\xf8\xbb\xfd\x14\xe5\xc0\xb9\x3a\xf6\xdd\xf8\xbb\xc3\xb1\xf5\x15\x00\x00\xff\xff\x18\x92\xdd\xe0\x7a\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-22 20:03:48 +00:00
|
|
|
info := bindataFileInfo{name: "templates/actions.tmpl", size: 378, mode: os.FileMode(438), modTime: time.Unix(1466625303, 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-22 20:21:32 +00:00
|
|
|
var _templatesBaseTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xac\x56\xdf\x8b\xe3\x36\x10\x7e\x4e\xa1\xff\x83\x4e\x14\xf2\xd0\x8b\x95\x42\xfb\x72\xd8\x29\x74\xf7\x4a\x0f\xee\xda\xe3\xb6\xa5\xf4\x29\x28\xf6\xd8\xd6\x9d\x2c\xb9\x92\x9c\xbd\x10\xf2\xbf\x77\x24\xff\x88\xe3\x6c\xcc\x5d\xd9\x65\x21\xb6\x67\xf4\xcd\xcc\xa7\x99\x4f\x8a\x5f\xdc\xff\x71\xf7\xe7\x3f\xef\x5f\x93\xd2\x55\x72\xf3\xed\x37\x71\xf7\xbb\x88\x4b\xe0\x99\x7f\x58\xc4\x4e\x38\x09\x9b\xe3\x31\xfa\x9d\x57\x70\x3a\xc5\xac\xfd\x10\x6c\x15\x38\x4e\x14\x7e\x4f\xe8\x5e\xc0\x63\xad\x8d\xa3\x24\xd5\xca\x81\x72\x09\x7d\x14\x99\x2b\x93\x0c\xf6\x22\x85\x55\x78\x79\x49\x84\x12\x4e\x70\xb9\xb2\x29\x97\x90\xfc\x10\xad\x69\x40\x5a\xc4\x52\xa8\x4f\xa4\x34\x90\x27\xb4\x74\xae\xb6\xaf\x18\xcb\x11\xc8\x46\x85\xd6\x85\x04\x5e\x0b\x1b\xa5\xba\x62\x02\xe1\x7f\xce\x79\x25\xe4\x21\x79\xc7\x1d\x18\x44\xfb\xfe\x0d\x7e\xb4\x94\x18\x90\x09\xb5\xee\x20\xc1\x96\x00\xee\x1a\x7a\x39\x0b\x9d\x5a\xdb\x23\x7f\xd0\x3b\xed\xf4\xab\x1f\xd7\xeb\x97\x3f\xad\xd7\xcb\x80\xbc\x3c\x23\x2f\x89\x3b\xd4\x90\x2c\x1d\x7c\x76\x7e\xd9\x32\x44\x22\xa4\x0d\x35\x4d\xa3\x2b\xeb\x78\x24\xd1\x9d\x56\xb9\x28\xa2\x5f\xb8\x85\xbf\x3e\xbc\x25\xa7\x13\xdb\xe6\x42\x42\xc5\x15\x2f\xb0\x14\x24\xce\x28\x2e\x3d\x24\x6b\x01\x22\x7c\xec\xeb\xb0\xa9\x11\xb5\x23\xd6\xa4\x5f\x05\xf6\xd1\x32\x5e\xd7\x52\xa4\xdc\x09\xad\xa2\x8f\x88\x17\xb3\x16\xab\x05\x46\x2c\x91\x13\x05\x03\xe2\x83\x0f\xfd\xe0\x73\x27\x94\x22\x6e\x1c\x72\xd9\x8c\x62\x9e\x3d\x7c\x47\x0c\x66\x50\x19\xba\x8f\x40\x7b\xff\xdf\x9a\x42\xbf\x56\x7c\x27\x61\x70\x58\xc4\x2f\x56\x2b\xe2\x0d\xa4\x96\x4d\x21\x14\xb1\xae\xc9\x73\xb2\x5a\x6d\x3a\xfb\xff\x20\xb3\x44\xb8\x79\x16\xbf\x88\xc6\x0b\x98\x2f\xe1\x6f\x28\x3c\x66\xfd\xe4\xc4\x3b\x9d\x1d\xf0\x81\xe0\x5f\x18\x27\x30\xdd\x3e\x66\x62\xdf\xe5\x82\x2b\xbf\x93\x58\xe4\xab\x84\x44\xef\x0d\x0e\x8a\x6e\xec\x5b\x5f\x75\xcf\xd1\xb0\x35\xc1\x8d\x52\x64\x9b\x9f\x19\x40\x13\xfc\xdb\x99\x98\xdf\x28\x76\x3c\x82\xb4\x80\x4f\x51\xc4\xf0\x1f\xa7\x76\x0c\x7b\x3a\x0d\xa9\x62\x0d\x98\x06\x49\x25\xb7\x36\xa1\x3c\xf5\xa5\x51\x22\xb2\x84\xd6\xb8\x00\xad\xa2\xb7\x55\xdd\x90\xad\x44\x18\xb2\x8d\x6d\x76\x99\x30\x90\x3a\x6d\x0e\x5b\x6e\x8c\x7e\xdc\x4a\xc8\x5d\xcc\x04\xd2\xe2\x4b\x8b\x19\x0f\xbd\xd0\x26\xd2\x91\x7e\x15\x8c\x64\xc2\x86\x7e\x78\xa6\xa8\x97\xdd\xb7\x88\xeb\xcd\x35\x53\xd3\xad\xa6\x1d\x67\x7d\xae\x4f\x76\xc3\x88\xb2\xb9\x9e\xf6\x6f\x67\xa4\x5f\x71\x0e\xc9\xbb\x76\x10\x07\x00\x4f\x0c\x39\x0f\x9b\xd7\x53\xbf\x6f\x68\xb8\x59\x76\x5a\xc2\xde\x68\xb5\x35\xa2\x28\x43\xb1\x7e\x7d\xbb\xd2\xe3\xd5\x93\xb2\x5b\x2a\x26\x5d\xd6\x65\xfd\xc6\xde\x0b\xd3\xfb\xe5\xda\x54\xfd\x3c\xdc\xe6\x1c\xb8\x49\xcb\x10\x35\x16\xaa\x6e\x5c\xab\x7a\xd4\xab\x1e\xc5\xa1\xe5\x29\x94\x5a\x62\x5f\x27\xf4\x21\xb8\xf6\x42\xc5\xce\xf0\xb7\xba\xcc\x1f\x17\x73\xfb\xed\xed\x5b\x3f\x35\x28\x02\x70\xde\xe5\x59\xcc\xa6\x96\x9a\x67\x73\xa8\x5e\x1e\xb7\xad\xdb\x04\x73\xd2\xb0\xf8\xea\xa0\xc2\x12\x1d\x6e\x51\x1b\x03\xcf\x97\x68\x64\xee\x59\x7f\x1e\xb1\x43\x89\xe0\xb3\xca\x66\xc1\x39\xa1\x0a\xfb\xe4\xdc\xce\xcd\x4d\xb7\xee\x72\x3c\xfb\x98\x37\x88\x94\xba\xd0\x8d\x9b\x83\x85\xcf\xc2\x6d\x9d\xde\xa2\x30\x3e\x41\xe4\x75\x43\x06\x11\x64\x83\x0a\x7a\xdb\xb8\x2d\x3b\xf7\x90\x8f\x4f\xc0\x69\x2d\x77\xdc\xd0\x2b\xc1\xbc\x95\xf1\x8e\xa7\x9f\xe6\xf2\x6d\x15\xc3\x7b\x4d\xd2\x0d\x42\x61\x6b\xae\x02\x8c\x05\x89\x12\x03\xd9\x4a\x35\xd5\x0e\x30\xfe\x1a\x95\x1e\x8d\x1b\xd2\x5b\x22\x3f\x74\xd3\x59\x9b\xef\x96\xb3\xe3\x88\x9b\x40\x48\xc5\x85\xea\xc8\x21\xe4\x02\xa4\xbb\x43\x21\xc8\x3d\xc7\x2b\xd6\xb0\x82\x75\x4b\xc2\x08\x6b\xd7\x1f\x29\x0f\x60\xf6\xd8\x6c\x8f\xc2\x95\xbe\x91\xc2\x99\xa9\xb4\xae\x41\x81\x21\x4a\x63\x5f\x81\x31\x58\xcf\xe4\x82\x95\xf2\x2c\x3b\x58\xbf\xd6\xf8\x0b\x10\xdd\xdc\xf9\x0f\x41\xa6\x38\xe6\xf9\x15\x48\x05\x46\x6e\x76\xe1\x16\x55\xf2\x34\x13\xdc\xb6\xe0\xab\xd1\x85\x84\x6e\xc6\xaa\xe8\xa3\x44\x64\x6e\x70\xfe\xf6\xd5\x70\x92\x4b\xbe\xd7\x8d\x21\x3a\x7f\xfe\x84\x7c\xc0\x90\xc8\x45\xd7\x7a\xfd\xea\xb9\x8d\x59\x77\x8c\x63\xf7\xb6\x77\xe3\xff\x02\x00\x00\xff\xff\x30\x80\xac\x89\x35\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-22 20:21:32 +00:00
|
|
|
info := bindataFileInfo{name: "templates/base.tmpl", size: 2869, mode: os.FileMode(438), modTime: time.Unix(1466626339, 0)}
|
2016-06-21 15:19:54 +00:00
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _templatesListingTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x93\x31\x6f\xea\x30\x14\x85\xe7\x20\xf1\x1f\x2c\x0f\x6f\x0b\x71\x78\x8f\x57\x89\x9a\x4c\x1d\x5a\xa9\x54\x55\x4b\x97\x2e\xc8\xc5\x37\x70\xa5\xc4\x41\xb6\xcb\xd0\x28\xff\xbd\x76\x4c\x20\xd0\x56\x65\xe2\x62\x9f\xf3\xdd\x73\x94\xa4\xae\x89\x84\x1c\x15\x10\xba\xaa\x94\x05\x65\x29\x69\x9a\xe1\x80\x4b\xdc\x91\x55\x21\x8c\x99\xd1\x02\x8d\x45\xb5\xa6\xd9\x70\x10\xf5\xcf\xbd\x41\x38\xab\xa6\x04\xe5\xa9\x2c\xaa\xeb\x98\x68\xa1\xd6\x40\x46\x77\x16\x4a\xe3\x99\xd1\x89\x1b\xdd\x71\x30\xd6\xf5\xe8\xe5\xe9\xbe\x69\x82\xb3\x15\x85\x29\xe2\x82\x6c\x34\xe4\x5f\x24\x81\x8f\xb9\x83\x9b\x1b\xd4\x01\xee\xf5\xd8\xd1\x4b\x61\x41\xa3\x28\x62\x74\x29\x0d\xcd\xf2\xaa\x90\xa0\x79\x82\x7d\x00\x14\x06\x2e\xf0\xa2\x32\xa0\xed\x52\x6a\xdc\xc1\x32\xc7\x02\xce\x31\x4a\x76\x14\x9e\x88\x7d\x89\xe4\xd0\xe2\xa2\x3e\xdc\x6c\x85\xea\x02\x28\x51\x02\xcd\x9c\xe6\xc1\x0d\x4d\xc3\x13\x7f\xf9\x4b\xf3\x2d\x91\xc2\x8a\xb8\xd2\xae\xe6\x8c\xc6\x29\xcd\xfe\x94\x52\x98\xcd\x35\x4f\xb6\x3f\x77\x3e\x75\xb9\x8d\xcf\xf8\x01\x3e\x96\x1b\x6f\xdf\x4b\xa1\xc2\xff\x73\xc6\xb1\xb0\x47\xec\x53\x6f\x50\x82\x78\x2b\x5c\x72\x6e\xb1\x04\x4f\x06\x3f\xb4\xdc\x16\x36\xaf\xe4\xc2\xdf\xd0\x31\x63\xff\x63\x96\xc6\x6c\xbc\x48\x27\x53\xf6\x6f\xca\x26\xaf\xb4\xbf\xf6\xa0\x64\x69\xc2\xc6\x89\xd7\x13\xf6\x37\x28\xc9\xe3\x9c\xc4\xec\x6a\xca\x18\xf5\xc9\xfc\x8a\xec\x18\xf0\x9b\x27\x70\x9c\xfa\xe1\xbb\xd3\xee\xd7\x7d\x09\xee\xaa\x7d\xf9\x3f\x03\x00\x00\xff\xff\x1a\xe7\x37\xe9\x15\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-21 15:19:54 +00:00
|
|
|
info := bindataFileInfo{name: "templates/listing.tmpl", size: 789, mode: os.FileMode(438), modTime: time.Unix(1465976769, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _templatesSingleTmpl = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x7c\x90\x41\x0e\x82\x30\x10\x45\xf7\x24\xdc\x61\xd2\x03\xc0\x05\x0a\x2e\xdc\xba\x32\x7a\x80\x86\x0e\x64\x12\x28\xd8\x16\x8d\x21\xdc\xdd\x69\xb1\x44\x17\xba\x9c\x99\xf7\x5f\xf2\x67\x59\x40\x63\x4b\x06\x41\x34\xa3\xf1\x68\xbc\x80\x75\xcd\xb3\x3c\x93\x83\x22\x03\x4d\xaf\x9c\xab\xe2\x8d\x47\xb4\xa2\x0e\x37\x00\xce\x51\x0b\x78\x83\xe2\xf2\x9c\x38\x4c\x83\xea\x70\x8b\x02\x48\x1a\x3a\x70\xb6\xa9\x04\x63\xc5\xf5\x7c\xe2\xfd\xc1\xaa\x47\xe5\xed\x8c\xc1\x10\xf3\xd8\x3b\xfc\x96\xa8\x59\xd3\xb8\x4b\xe2\xf4\x57\x23\xcb\xc8\xfc\x16\xde\x49\xe3\x98\x0a\xed\xcc\xdb\x3f\x59\xac\x83\xf8\xb8\xf5\x66\x4a\x96\x61\x97\x48\xa3\xd3\x27\xca\xf0\x8a\x58\xfc\x63\xff\x0a\x00\x00\xff\xff\x01\xfd\x71\xfe\x3a\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-21 15:19:54 +00:00
|
|
|
info := bindataFileInfo{name: "templates/single.tmpl", size: 314, mode: os.FileMode(438), modTime: time.Unix(1465932482, 0)}
|
|
|
|
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, "/")...)...)
|
|
|
|
}
|
|
|
|
|