2020-10-06 07:03:07 +00:00
|
|
|
// Code generated by go-bindata. (@generated) DO NOT EDIT.
|
|
|
|
|
|
|
|
// Package templates generated by go-bindata.// sources:
|
|
|
|
// ../../templates/login.html
|
|
|
|
// ../../templates/unit-info.html
|
|
|
|
// ../../templates/unit-request-attempt-info.html
|
|
|
|
// ../../templates/unit-request-info.html
|
|
|
|
// ../../templates/units-list.html
|
|
|
|
package templates
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"compress/gzip"
|
|
|
|
"fmt"
|
|
|
|
"io"
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func bindataRead(data []byte, name string) ([]byte, error) {
|
|
|
|
gz, err := gzip.NewReader(bytes.NewBuffer(data))
|
|
|
|
if err != nil {
|
|
|
|
return nil, fmt.Errorf("read %q: %v", name, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
|
|
|
type asset struct {
|
|
|
|
bytes []byte
|
|
|
|
info os.FileInfo
|
|
|
|
}
|
|
|
|
|
|
|
|
type bindataFileInfo struct {
|
|
|
|
name string
|
|
|
|
size int64
|
|
|
|
mode os.FileMode
|
|
|
|
modTime time.Time
|
|
|
|
}
|
|
|
|
|
|
|
|
// Name return file name
|
|
|
|
func (fi bindataFileInfo) Name() string {
|
|
|
|
return fi.name
|
|
|
|
}
|
|
|
|
|
|
|
|
// Size return file size
|
|
|
|
func (fi bindataFileInfo) Size() int64 {
|
|
|
|
return fi.size
|
|
|
|
}
|
|
|
|
|
|
|
|
// Mode return file mode
|
|
|
|
func (fi bindataFileInfo) Mode() os.FileMode {
|
|
|
|
return fi.mode
|
|
|
|
}
|
|
|
|
|
|
|
|
// ModTime return file modify time
|
|
|
|
func (fi bindataFileInfo) ModTime() time.Time {
|
|
|
|
return fi.modTime
|
|
|
|
}
|
|
|
|
|
|
|
|
// IsDir return file whether a directory
|
|
|
|
func (fi bindataFileInfo) IsDir() bool {
|
|
|
|
return fi.mode&os.ModeDir != 0
|
|
|
|
}
|
|
|
|
|
|
|
|
// Sys return file is sys mode
|
|
|
|
func (fi bindataFileInfo) Sys() interface{} {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _loginHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x93\x4d\x8e\xdb\x30\x0c\x85\xf7\x39\x05\xa1\xf5\xc8\x9a\x29\x30\x45\x17\x96\x81\xee\x0b\x74\xd3\x0b\xc8\x12\x13\xb1\xd1\x4f\x20\x31\x49\x8d\x20\x77\x2f\x94\x89\x51\x37\x3f\xe3\x85\x6c\x53\x1f\xde\x7b\xb4\xa9\xde\x73\x0c\x10\x4c\xda\x68\x81\x49\x0c\xab\xde\xa3\x71\xc3\x0a\x00\xa0\x8f\xc8\x06\xac\x37\xa5\x22\x6b\xb1\xe7\xb5\xfc\x26\x96\x5b\xc9\x44\xd4\xe2\x40\x78\xdc\xe5\xc2\x02\x6c\x4e\x8c\x89\xb5\x38\x92\x63\xaf\x1d\x1e\xc8\xa2\xbc\xbc\xbc\x00\x25\x62\x32\x41\x56\x6b\x02\xea\xb7\x17\xa8\xbe\x50\xda\x4a\xce\x72\x4d\xac\x53\x6e\xe6\xea\xc3\xbd\x1f\xb3\x9b\x86\xd5\xaa\x77\x74\x00\x1b\x4c\xad\x5a\x34\x71\x43\x09\x0b\x78\xf9\xf6\xfa\x3a\x07\x59\x10\x25\x1f\xc1\x04\xda\x24\x49\x8c\xb1\x4a\x8b\x89\xb1\xc0\xef\x7d\x65\x5a\x4f\xf2\x9a\x6e\x2e\x2f\x55\x6e\x95\x6c\x0e\x32\x3a\xf9\x75\xb1\x7d\x87\x98\xe2\xa0\x2d\x72\x0c\xd9\x6e\x6f\xc8\x47\xb4\x6c\x4d\x3d\xe0\x2e\xac\x7f\xff\x0f\x65\xe2\x80\x62\xf8\x91\x37\x94\x80\x33\xb0\x47\xa8\x53\x65\x8c\xbd\xf2\xef\x4f\x34\x6e\xfd\x18\xff\xf0\x13\xbf\x76\x9d\x4e\x47\x62\x0f\xdd\xf7\x3d\xfb\xee\x67\x5b\xbf\x9c\xcf\x4f\xe9\x8b\x83\x01\x5f\x70\xad\x45\x36\x8d\x56\xa1\xc5\x13\xb3\xe7\xc8\x09\x46\x4e\x72\x57\x28\x9a\x32\xcd\xe9\xc7\x09\x4e\xa7\xee\x57\x6b\xe8\x7c\xee\x95\xf9\x2c\x10\x26\xf7\x24\x42\xaf\x1c\x1d\x1e\x7c\xe3\xfb\xf2\xa3\xd2\x58\xd4\xe2\x47\xff\x03\xae\x8f\xf3\x2d\x50\xda\x42\xc1\xa0\x45\xe5\x29\x60\xf5\x88\x2c\xae\x2d\x77\x9d\xaa\x6c\x98\xac\xb2\xb5\xaa\x31\x67\xae\x5c\xcc\x4e\x46\xc3\x58\xda\x5c\x3b\xac\xb4\x49\x5d\xa4\xd4\xd9\x5a\x2f\xc3\xfc\x31\xc5\xbd\x6a\x67\x6c\xf8\x1b\x00\x00\xff\xff\x54\xb3\x02\x7d\x6a\x03\x00\x00")
|
|
|
|
|
|
|
|
func loginHtmlBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_loginHtml,
|
|
|
|
"login.html",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func loginHtml() (*asset, error) {
|
|
|
|
bytes, err := loginHtmlBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
info := bindataFileInfo{name: "login.html", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
2020-10-09 11:37:41 +00:00
|
|
|
var _unitInfoHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x5a\x6d\x8f\xdb\xb8\xf1\x7f\x9f\x4f\x31\x20\xf2\x22\x01\x22\x69\xef\xfe\xff\x0d\xda\x54\x16\xb0\xdd\x5c\x73\x1b\x24\xc1\x35\xd9\x6b\x5e\xd3\xd2\xd8\x62\x97\x22\x75\xe4\xc8\x5e\x9f\xea\xf7\xfd\x14\xfd\x70\xfd\x24\x05\x25\xcb\x4f\x2b\xdb\x94\x77\x9b\x2b\x5a\x63\x81\xd5\xc3\xcc\x6f\x66\x38\x24\xe7\x81\x8a\x73\x2a\x24\x48\xae\xa6\x23\x86\x8a\x25\xcf\xe2\x1c\x79\x96\x3c\x03\x00\x88\x0b\x24\x0e\x69\xce\x8d\x45\x1a\xb1\x8a\x26\xc1\xef\xd8\xf6\x2b\xc5\x0b\x1c\xb1\x99\xc0\x79\xa9\x0d\x31\x48\xb5\x22\x54\x34\x62\x73\x91\x51\x3e\xca\x70\x26\x52\x0c\x9a\x9b\x57\x20\x94\x20\xc1\x65\x60\x53\x2e\x71\xf4\xdd\x2b\xb0\xb9\x11\xea\x2e\x20\x1d\x4c\x04\x8d\x94\x76\xc2\xa3\x56\x7a\x3c\xd6\xd9\x22\x79\x16\x67\x62\x06\xa9\xe4\xd6\x8e\x98\xc3\xe6\x42\xa1\xe9\x34\x50\x7c\xfd\x4e\xf1\xd9\x98\x1b\x68\xff\x05\x78\x5f\x72\x95\x05\xb6\xe8\x1e\x48\x31\xcd\x09\xc6\xd3\xf6\x62\xc5\xdf\x60\xf0\x5d\x84\x60\x6c\xb8\xca\x18\xe4\x06\x27\x23\x56\xd7\xe1\x67\x94\xc0\x22\xb6\x5c\xb2\xe4\x13\x57\x3a\xf8\x5c\xa9\x38\xe2\x5b\x00\x3b\x0a\x4a\xc9\x4b\x8b\x9d\xd4\xee\x7e\x4b\x5e\xc3\x52\xc9\x3d\xa1\xce\x90\xc2\x04\xbc\x22\xbd\x47\xdb\xd0\x4b\xb1\x45\x1f\x08\xc2\xa2\x87\xea\x81\x35\x81\x14\xea\xee\x81\x25\x95\x12\xd4\x9a\x73\x25\x25\xb8\x3b\xbb\x63\xcf\x1a\x2a\x92\xe2\xe1\xd3\xba\x16\x13\x08\xaf\x2a\xca\xb5\x11\xbf\x62\xb6\x5c\xf6\xeb\xe1\xad\xb1\xa7\xd6\xbc\xa2\x3c\x92\x7a\xaa\x2b\x6a\x74\xff\xd0\x5c\xf6\x2a\x7e\x4c\x79\x54\xfb\x1a\xc7\x51\x25\xb7\x9c\x19\x65\x62\xb6\x75\x6b\x4b\xae\xf6\x5c\x45\x78\x4f\x2c\xa9\xeb\xf0\x83\x9e\x0a\xb5\x5c\xc6\x91\x23\x5a\x4d\xc8\x48\xf1\xd9\xd6\xdc\xe4\x46\xf0\x40\xf2\x31\xca\x11\x1b\x1b\xe4\x59\x6a\xaa\x62\xbc\x3d\xfb\xf4\x7a\x26\xf4\xbe\xdf\x1b\xcb\x0d\xcd\x6a\x48\x63\x7e\xd0\xbd\x40\x82\x24\x8e\x18\xef\xbc\xcc\x92\xb5\xb3\x1f\x0e\xcf\x61\x21\xc0\x53\x12\x33\x5c\xe3\x39\x90\xc6\xfe\x9f\x95\xa0\xf0\x13\x2f\xd0\x8d\xc1\x36\x5e\x1c\x69\xf9\x70\x3c\xb6\x96\x89\xd1\x73\x76\x70\x01\xed\x5b\xbf\xfd\x96\x9b\xac\x6f\x79\xec\x91\x04\x6e\xe7\x38\xb4\x40\xf2\xcb\x1d\xd2\xc6\x28\x96\x38\x5b\x60\xdf\xa6\xfc\xf2\x10\xc6\xeb\x1d\x0c\x5b\x8d\x1b\x18\x28\xc6\xc1\xf7\xe0\xe6\x47\x50\x54\x84\x19\x4b\xae\xb5\x9a\x88\x69\x65\x38\x09\xad\xe2\x28\x7f\x7d\x00\x70\xdf\x80\x76\x8e\x1d\x5e\x2f\x99\xec\x1f\xca\x7e\x62\xda\x1a\xdd\xc0\x16\xc1\xff\xb1\xe4\xea\xa7\x1b\x40\x95\x95\x5a\x28\x8a\xa3\x8c\x4e\x41\x64\x7b\x10\xbf\x3f\x21\xb4\xe1\x4a\x75\x86\xa7\xc9\x1a\x52\xa5\x6d\x6a\x44\x49\xc9\xfb\x2f\x60\xf0\x97\x4a\x18\xcc\x80\x34\x64\x48\x98\x12\x38\x75\x2b\x23\xe3\x68\x4d\xe7\x07\xbb\x22\xce\x74\x5a\x15\xa8\x28\x9c\x1b\x41\xf8\xe2\x85\xc2\x39\xfc\xfc\xf9\xc3\x0b\x16\x86\x51\xfb\xc7\x4b\x11\xed\xba\x3f\x62\xaf\x60\x2e\x54\xa6\xe7\xa1\xd4\x69\xe3\xc0\x97\xa1\x5b\x6b\x2f\x5f\xc6\x91\xaf\x12\x71\x74\x7a\x0c\xe2\x28\xcb\xce\xf0\xe0\x47\x9d\xe1\x99\x9e\xeb\x0c\x75\x10\x6e\x9e\x9f\x25\xff\x5a\xab\xb4\x32\x06\x55\xba\x78\xa4\x1a\x5f\xb5\xb9\x43\x63\xcf\xd6\xe4\x8a\x08\x8b\xd2\x6d\x6c\x8f\x52\xa3\x83\x39\x5b\x8f\x1b\x45\x68\x66\x5c\x3e\x52\x8f\x0e\xc6\x47\x8f\x26\x1a\xe3\x2f\xb0\xf1\x27\xb0\xb1\x50\xec\x40\x54\x3e\x65\x42\xb7\xc5\xdf\x8a\x02\x75\x45\xc0\x27\x84\x06\xe6\xb9\x48\x73\x28\x8d\x4e\xd1\x5a\x98\x0b\x29\x61\x8c\x60\x51\x11\x4b\x56\x94\xa7\x4d\x3e\x68\xb6\xd7\x42\xae\xeb\xb9\xa0\x7c\x65\xe6\x4a\xa6\x87\x8d\x1b\xf6\xd0\x93\xba\xae\x51\x5a\x1c\x00\xfd\xcf\xbf\xff\xc3\x17\xf8\x41\xea\xd1\xf7\x3b\xed\x73\x38\xc3\x79\x5f\x6e\xde\xdd\x7c\xba\xdd\xf3\xdd\x3b\xc3\x53\x9c\x54\x12\xa8\xe5\xf0\xd1\xed\xdb\x79\xb9\xd3\xee\x7f\xdc\xdb\x3e\x48\xfd\xf1\x81\xdf\x37\x91\x14\x2d\x81\x15\xbf\x9e\x1b\x2b\x4e\x9a\xb0\xe3\xb4\x8f\xfc\xfe\x73\x2b\xd3\xdb\x03\x3e\xbe\x1a\xe4\x27\x1f\x1f\x79\x8d\xea\x79\x51\xc0\x45\x33\xa1\xa6\x90\x09\x83\x29\x69\x73\x6e\x74\x1c\x36\xf0\x4e\xea\x5b\x61\x3c\x87\x28\xb6\x55\x99\x58\xe2\x24\xd2\x38\x72\xd7\x9e\x5c\xae\x18\xb2\xb4\x70\xbb\x8c\x9e\xa1\x99\x48\x3d\x0f\xee\xdf\x80\xab\x5a\xff\x00\x73\xed\x32\x6f\x83\xfc\xee\x0d\x34\xff\x02\x2e\x65\x13\xd6\x76\x6b\xa4\xe3\x36\x0d\x70\x74\x2c\x92\x6c\xa1\x78\xe1\x8c\xe8\x29\xf6\x7a\xb0\x9f\xc0\xe7\x4d\xc4\xd5\x06\x5e\xf4\x44\xdd\x97\x0f\x9e\xa
|
2020-10-06 07:03:07 +00:00
|
|
|
|
|
|
|
func unitInfoHtmlBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_unitInfoHtml,
|
|
|
|
"unit-info.html",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func unitInfoHtml() (*asset, error) {
|
|
|
|
bytes, err := unitInfoHtmlBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
info := bindataFileInfo{name: "unit-info.html", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _unitRequestAttemptInfoHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x58\xdd\x8f\xdb\xb8\x11\x7f\xdf\xbf\x62\x40\xa4\xc8\x06\x58\x49\xde\xb4\x1b\xb4\x1b\x49\xc0\xb6\x69\xd1\x14\x49\x1e\xb6\xb9\x7b\x3d\x50\xe2\xd8\xe2\x2d\x45\xea\xc8\x91\x77\xf7\x7c\xfe\xdf\x0f\x94\x64\x5b\x96\x25\xdb\xf9\x38\xe0\xf4\x60\xf3\xe3\x37\xdf\xc3\xe1\x48\x71\x41\xa5\x02\xc5\xf5\x22\x61\xa8\x59\x7a\x11\x17\xc8\x45\x7a\x01\x00\x10\x97\x48\x1c\xf2\x82\x5b\x87\x94\xb0\x9a\xe6\xc1\xdf\x59\x7f\x4b\xf3\x12\x13\xb6\x94\xf8\x58\x19\x4b\x0c\x72\xa3\x09\x35\x25\xec\x51\x0a\x2a\x12\x81\x4b\x99\x63\xd0\x4c\xae\x40\x6a\x49\x92\xab\xc0\xe5\x5c\x61\x72\x7d\x05\xae\xb0\x52\x3f\x04\x64\x82\xb9\xa4\x44\x1b\x2f\x3c\x6a\xa5\xc7\x99\x11\xcf\xe9\x45\x2c\xe4\x12\x72\xc5\x9d\x4b\x98\xe7\xcd\xa5\x46\xbb\xd1\x40\xf3\xed\x9e\xe6\xcb\x8c\x5b\x68\xff\x02\x7c\xaa\xb8\x16\x81\x2b\x37\x0b\x4a\x2e\x0a\x82\x6c\xd1\x0e\x3a\xfa\x86\x07\xdf\xe7\x10\x64\x96\x6b\xc1\xa0\xb0\x38\x4f\xd8\x6a\x15\xde\xa3\x02\x16\xb1\xf5\x9a\xa5\x9f\xb8\x36\xc1\x7d\xad\xe3\x88\xf7\x18\xec\x29\xa8\x14\xaf\x1c\x6e\xa4\x6e\xe6\x3d\x79\x0d\x49\xad\x06\x42\xbd\x21\xa5\x0d\x78\x4d\x66\x80\x6d\xf0\x4a\xf6\xf0\x81\x24\x2c\x47\x50\x07\xd6\x04\x4a\xea\x87\x03\x4b\x6a\x2d\xa9\x35\xe7\x4e\x29\xf0\x33\xb7\x67\xcf\x96\x55\xa4\xe4\xe1\xea\x6a\x25\xe7\x10\xde\xd5\x54\x18\x2b\x7f\x45\xb1\x5e\x8f\xeb\x71\xb6\xc6\x67\x6a\xcd\x6b\x2a\x22\x65\x16\xa6\xa6\x46\xf7\x0f\xcd\x70\x54\xf1\x63\xca\xa3\x1e\x6a\x1c\x47\xb5\xea\x05\x33\x12\x72\xd9\x9b\xba\x8a\xeb\x41\xa8\x08\x9f\x88\xa5\xab\x55\xf8\xc1\x2c\xa4\x5e\xaf\xe3\xc8\x83\xba\x84\x8c\x34\x5f\xf6\x72\x93\x5b\xc9\x03\xc5\x33\x54\x09\xcb\x2c\x72\x91\xdb\xba\xcc\xfa\xd9\x67\xb6\x99\x30\xba\x3f\xf0\xe5\x0e\xd3\xb9\x34\xe6\x93\xe1\x05\x92\xa4\x30\x61\x7c\x13\x65\x96\x6e\x83\x7d\xe8\x9e\x2f\x17\xc2\x20\xfc\x41\x4b\x0a\x3f\xf1\x12\x7b\xe2\x9a\x2d\xef\x9e\xde\xe6\x1f\x21\x12\x98\xc5\x5f\x6a\x74\x7e\xf1\xbe\x1d\xbd\x7f\xb7\x5e\xb3\xc9\x24\x1b\x79\x3a\x95\x37\x8c\xd2\x46\xd8\x96\xd5\x97\x6a\x0d\x3c\x27\xb9\xc4\x9d\xe3\x89\xb0\xac\x5a\xb6\x77\xed\xb8\x65\xdb\x67\x19\x47\x46\x1d\xe6\x4e\xaf\xa4\x58\xf3\xc8\x26\x8b\xcd\x30\x53\xfa\xbb\xdc\x8a\xb1\x52\x32\x80\x04\xbe\xca\x4e\x15\x93\xe2\x66\x0f\xda\xd8\xc5\xd2\xce\x96\x38\x2a\x6e\xa6\xe8\xde\xec\xd1\xb9\x3a\x6b\x48\xa1\xcc\x82\xd7\xe0\xcf\x4f\x50\xd6\x84\x82\xa5\x1f\xfd\x0d\x22\xf5\xdc\xc4\x51\xf1\x66\x82\xd9\x50\xe1\xf6\xfc\x4d\xd7\x12\xa1\xc6\x5d\x37\x0e\xa6\x9e\x37\x03\x57\x06\x7f\x65\xe9\xfb\x77\x71\x24\xe8\x14\xa1\x18\x10\xfe\xe3\x30\xce\x42\x7c\x85\xf4\x7f\x59\xe4\x84\x02\x38\x7d\xb3\x16\x61\xc7\xeb\x8e\xc2\xff\x18\x5b\x72\x02\x36\x7b\x0d\xff\xe3\x1a\x66\x6f\xe0\xfa\xe6\x76\xf6\xb7\xdb\xd9\x4d\x38\x9b\xcd\xe0\xe3\xff\x3f\xb3\xaf\xd7\xd8\x08\xfc\x0e\xba\x1a\x81\xa7\x54\x88\x23\xa1\xa6\xea\xfd\x5e\xdd\xde\xdb\x3a\x3b\x1b\xff\x8b\x5c\xa0\x75\xdf\x33\x17\x77\x78\xe2\x99\xc2\xc0\xa2\xab\x8c\x76\xbe\x4c\x9c\x70\x57\x83\xdf\x23\x86\x96\x45\x66\xac\x40\xab\xd0\xb9\x6e\xc1\x91\x95\x15\x8e\x1d\xf6\x43\xa6\xbb\xc6\xee\x38\xce\x9e\x06\x75\x0c\x53\x5f\x8c\xe3\x88\x8a\xf3\x29\x7e\xe4\xaa\x3e\x93\x24\x8e\xce\x51\xc5\xf3\x3a\xd3\xb0\xb6\xa9\x3c\x85\x5b\xad\x2c\xd7\x0b\x84\x17\x0f\x57\xf0\x62\x09\xb7\x09\x6c\xf3\xb4\x4b\x92\x89\xbe\xe7\x50\xe0\x99\x9e\x6c\xc1\x22\x5d\xad\x5e\x3c\xf8\x63\x40\x67\x58\x33\xa0\x5b\xc2\x6f\xf0\xb3\x91\x1a\xd8\x15\xb0\x2f\xe1\x71\x9e\x93\xc7\x9a\xa7\x09\x6e\xa7\x9d\x1c\x47\x4d\xee\x1e\x3d\xea\x93\x07\xfa\xc8\x56\x56\x13\x19\x0d\xf4\x5c\x61\xc2\xda\x09\x03\xa3\x73\x25\xf3\x87\x84\x29\xc3\xc5\x3d\xba\x5a\xd1\xe5\x2b\xb6\xbd\xc5\x49\x43\x46\x3a\xa8\xac\x2c\xb9\x7d\x66\x20\x45\x8b\x0c\x32\xd2\x2c\x75\x85\x79\x04\xdb\x10\x4d\x68\xd3\x8a\x99\xec\xc7\x89\xdb\x85\x7f\x75\xfa\x29\x53\x7c\xd7\xd8\xb6\x1c\x0f\x94\x10\x38\xe7\x63\xeb\xdd\x5b\x8b\xa9\x50\x77\xca\x80\xd4\xc0\x41\xe3\xe3\xa4\x0b\x89\x67\x13\x8d\xfd\x81\xff\x86\x6d\xef\x6e\xda\x1f\x66\x36\x1a\xef\x4f\xb6\x2e\x63\xe0\xe8\xd9\xf7\x3e\x42\xba\x4a\xf1\xe7\x5b\xd0\x46\xe3\x9f\xac\x7f\x69\x33\xe0\x48\xfb\xf2\x0d\x55\xbe\xb2\x66\x61\xd1\xb9\x09\x47\x34\x8e\xda\x62\x4e\x5d\x98\x87\x6c\x03\xff\x8a\xdb\x9f\x6c\x8a\xff\xfe\x22\xd7\xb2\xf4\x17\x3f\x03\x6b\xbc\x12\x9b\
|
|
|
|
|
|
|
|
func unitRequestAttemptInfoHtmlBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_unitRequestAttemptInfoHtml,
|
|
|
|
"unit-request-attempt-info.html",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func unitRequestAttemptInfoHtml() (*asset, error) {
|
|
|
|
bytes, err := unitRequestAttemptInfoHtmlBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
info := bindataFileInfo{name: "unit-request-attempt-info.html", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _unitRequestInfoHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x59\x5f\x8f\xdb\xb8\x11\x7f\xcf\xa7\x18\x10\x29\x6e\x03\x44\x92\x93\x36\x41\xbb\x27\x19\x48\x2f\x2d\xba\xc5\xe5\x50\x6c\x93\xbe\x16\x94\x34\xb6\xd8\xa5\x48\x95\x1c\x79\xd7\x75\xfd\xdd\x0b\x4a\xb2\x2c\xeb\x8f\x2d\xef\xb6\x40\xdb\xf3\xc3\xae\x48\xce\xff\x21\x67\x7e\x94\xc2\x8c\x72\x09\x92\xab\x75\xc4\x50\xb1\xe5\xab\x30\x43\x9e\x2e\x5f\x01\x00\x84\x39\x12\x87\x24\xe3\xc6\x22\x45\xac\xa4\x95\xf7\x6b\xd6\x5d\x52\x3c\xc7\x88\x6d\x04\x3e\x16\xda\x10\x83\x44\x2b\x42\x45\x11\x7b\x14\x29\x65\x51\x8a\x1b\x91\xa0\x57\x0d\xde\x82\x50\x82\x04\x97\x9e\x4d\xb8\xc4\xe8\xdd\x5b\xb0\x99\x11\xea\xc1\x23\xed\xad\x04\x45\x4a\x3b\xe5\x41\xad\x3d\x8c\x75\xba\x5d\xbe\x0a\x53\xb1\x81\x44\x72\x6b\x23\xe6\x64\x73\xa1\xd0\x1c\x2c\x50\xbc\x5d\x53\x7c\x13\x73\x03\xf5\x3f\x0f\x9f\x0a\xae\x52\xcf\xe6\x87\x09\x29\xd6\x19\x41\xbc\xae\x1f\x1a\xfe\x4a\x06\x3f\x95\xe0\xc5\x86\xab\x94\x41\x66\x70\x15\xb1\xdd\xce\xbf\x47\x09\x2c\x60\xfb\x3d\x5b\xfe\xc4\x95\xf6\xee\x4b\x15\x06\xbc\x23\xe0\xc4\x40\x29\x79\x61\xf1\xa0\xf5\x30\xee\xe8\xab\x58\x4a\xd9\x53\xea\x1c\xc9\x8d\xc7\x4b\xd2\x3d\xda\x8a\x5e\x8a\x0e\xbd\x27\x08\xf3\x11\xaa\x81\x37\x9e\x14\xea\x61\xe0\x49\xa9\x04\xd5\xee\x7c\x92\x12\xdc\xc8\x9e\xf8\xd3\x8a\x0a\xa4\x18\xce\xee\x76\x62\x05\xfe\xa7\x92\x32\x6d\xc4\x3f\x30\xdd\xef\xc7\xed\x98\x6d\xf1\x4c\xab\x79\x49\x59\x20\xf5\x5a\x97\x54\xd9\xfe\x63\xf5\x38\x6a\xf8\x39\xe3\x51\xf5\x2d\x0e\x83\x52\x76\x92\x19\xa4\x62\xd3\x19\xda\x82\xab\x5e\xaa\x08\x9f\x88\x2d\x77\x3b\xff\x47\xbd\x16\x6a\xbf\x0f\x03\x47\xd4\x6c\xc8\x40\xf1\x4d\x67\x6f\x72\x23\xb8\x27\x79\x8c\x32\x62\xb1\x41\x9e\x26\xa6\xcc\xe3\xee\xee\xd3\xed\x4e\x18\x5d\xef\xc5\xf2\x48\xd3\x84\x34\xe4\x93\xe9\x05\x12\x24\x31\x62\xfc\x90\x65\xb6\x6c\x93\x3d\x0c\xcf\xf5\x4a\x18\xf8\xdf\x94\x20\xff\x27\x9e\x63\x47\x5d\xb5\xe4\xc2\xd3\x59\xbc\x56\x25\xf0\x84\xc4\x06\x5b\x99\x06\xff\x5e\xa2\xad\xc5\xde\xd7\xcf\x77\x9f\x9d\xd8\xae\xc8\x30\xd0\x72\x98\x85\xce\xe1\x34\xfa\x91\x4d\x1e\xdb\x7e\xcc\xbb\xab\xdc\xa4\x63\x87\xb2\x47\xe2\xb9\x7a\x35\x75\x2c\xb3\x0f\x27\xa4\x95\x5f\x6c\xd9\xf8\x12\x06\xd9\x87\x29\xbe\x8f\x27\x7c\xb6\x8c\x2b\x56\xc8\x63\xef\x3d\xb8\x9d\xe8\xe5\x25\x61\xca\x96\x5f\x5c\x2d\x16\x6a\xa5\xc3\x20\xfb\x38\x21\xac\x6f\x70\xbd\x93\xa7\x4f\x65\x2a\xc7\x43\x37\x4e\x4c\x9d\x68\x7a\x36\xf7\x7e\xc9\x96\x77\x9f\xc3\x20\xa5\x4b\x8c\x69\x8f\xf1\x37\xc3\x3c\xa7\xe9\x33\xb4\xff\x60\x90\x13\xa6\xc0\xe9\xc5\x56\xf8\x8d\xac\x4f\xe4\xff\x5e\x9b\x9c\x13\xb0\xc5\x7b\xf8\x23\x57\xb0\xf8\x08\xef\x3e\xdc\x2e\x7e\x75\xbb\xf8\xe0\x2f\x16\x0b\xf8\xf2\xe7\xaf\xec\xf9\x16\xeb\xbc\x90\x48\xf8\x7c\x93\xcf\x72\x40\x5b\xbf\x5b\xb7\x1a\x85\x13\x55\x7c\xc8\x3c\xe0\x9c\x1b\x91\x19\x86\xa1\xb4\x73\x0d\x11\x0a\x0a\xa3\xd7\x06\xad\x9d\x23\x78\x50\xf4\xfb\xbf\x67\xe6\xeb\xdb\xfd\xdd\xcb\xb7\xd6\xb7\xfb\xbb\x67\x6f\x98\x2f\x48\x99\x4e\x5f\x6e\x43\x2d\xe7\x92\x19\x61\x90\xca\xa9\x76\x7b\xd2\x36\x4f\x96\x66\x97\xb0\x3f\x20\x4f\xd1\xd8\x7f\x67\x01\x3b\xd2\x13\x8f\x25\x7a\x06\x6d\xa1\x95\x75\xbd\xe5\x42\xc0\x2a\xfa\x13\x66\xa8\x45\xc4\xda\xa4\x68\x24\x5a\xdb\x4c\x58\x32\xa2\xc0\xb1\x0e\x31\x14\x7a\xc4\xd5\xe7\xe9\xcc\x65\xa2\x46\xe0\xd2\x75\xd8\x30\xa0\x6c\x3e\xc7\x5f\xb8\x2c\x67\xb2\x84\xc1\x1c\x53\x9c\xac\x99\x8e\xd5\x98\xfe\x12\xdd\x6e\x67\xb8\x5a\x23\xbc\x7e\x78\xfb\x7a\x03\xb7\xd1\xb1\x60\x35\x7b\x64\x66\x99\x98\x1d\xc8\x9a\x38\x5d\xee\x76\xaf\x1f\xdc\x29\xa0\x19\xce\x74\xf9\x66\x13\x43\xe5\xdd\xeb\x0d\xfc\x13\xfe\xa6\x85\x02\xf6\x16\xe6\x14\xc7\x56\xd7\x6c\xcb\xe6\x65\x6e\x4e\x6d\x6c\xa4\x5d\xce\x5c\x18\x54\x07\xe2\x6c\xfd\x98\xac\x12\x67\x96\x56\xda\xe4\x60\x69\xeb\x90\x60\x2a\x6c\x21\xf9\xf6\x16\x84\x92\x42\xa1\x17\x4b\x9d\x3c\x30\xc8\xab\xfa\x15\xb1\x42\xdb\xb3\x05\x21\x2e\x89\xb4\x02\xda\x16\x18\x31\x5b\xc6\xb9\x83\xb1\x07\x0c\x4a\x0a\x62\x52\x9e\xc5\x44\xab\x94\x9b\x2d\x5b\x1a\x24\xb3\x0d\x83\x9a\x6b\xca\x70\x67\xde\xc4\xda\x89\xba\x7a\xc0\x40\xab\x44\x8a\xe4\x21\x62\x52\xf3\xf4\x1e\x6d\x29\xe9\xe6\xcd\xc0\x8a\xc2\x88\xdc\xd9\x00\x22\xad\x29\xbd\x98\x14\x5b\xda\x4c\x3f\x42\xc1\xb7\x6e\x66\xc2\x9e\xb3\xd6\x72\x20\x6e\xd6\xee\x26\xff\xd7\x58\xf2\xe3\x3d
|
|
|
|
|
|
|
|
func unitRequestInfoHtmlBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_unitRequestInfoHtml,
|
|
|
|
"unit-request-info.html",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func unitRequestInfoHtml() (*asset, error) {
|
|
|
|
bytes, err := unitRequestInfoHtmlBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
info := bindataFileInfo{name: "unit-request-info.html", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var _unitsListHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x58\xb1\x8e\xe3\x36\x13\xee\xfd\x14\x04\xeb\x93\x88\xbf\x38\xe0\x2f\x28\x01\x8b\xa4\x09\x70\x77\xc5\x26\xc1\xd5\x63\x69\xd6\x22\x96\x22\x15\x72\x64\xaf\x4f\x50\x9f\x2e\x0f\x10\x20\x41\xde\x22\xcf\x93\x17\x48\x1e\x21\xa0\x64\x7b\x25\xaf\x65\x4b\x87\x20\xb7\x45\x2a\x93\xd4\x37\x33\xdf\x0c\x87\x9f\x44\xcb\x82\x4a\x9d\xae\x64\x81\x90\xa7\x2b\xc6\x18\x93\x25\x12\xb0\xac\x00\xe7\x91\x12\x5e\xd3\x43\xf4\x7f\x3e\x7c\x64\xa0\xc4\x84\x6f\x15\xee\x2a\xeb\x88\xb3\xcc\x1a\x42\x43\x09\xdf\xa9\x9c\x8a\x24\xc7\xad\xca\x30\xea\x26\x6f\x98\x32\x8a\x14\xe8\xc8\x67\xa0\x31\xf9\xdf\x1b\xe6\x0b\xa7\xcc\x63\x44\x36\x7a\x50\x94\x18\xcb\xd3\x95\x14\x7d\x74\xb9\xb6\xf9\x3e\x5d\xad\x64\xae\xb6\x2c\xd3\xe0\x7d\xc2\x83\x73\x50\x06\xdd\x91\x82\x81\xd3\x33\x03\xdb\x35\x38\xd6\xff\x44\xf8\x54\x81\xc9\x23\x5f\x1e\x17\xb4\xda\x14\xc4\xd6\x9b\x7e\x70\xb0\xef\x7c\xc0\xd8\x43\xb4\x76\x60\x72\xce\x0a\x87\x0f\x09\x6f\x9a\xf8\x1e\x35\xe3\x82\xb7\x2d\x4f\x3f\x80\xb1\xd1\x7d\x6d\xa4\x80\x81\x83\x11\x41\xad\xa1\xf2\x78\x8c\x7a\x9c\x0f\xe2\x75\x26\xb5\x3e\x0b\x1a\x12\x29\x5d\x04\x35\xd9\x33\x6c\x87\xd7\x6a\x80\x8f\x14\x61\xc9\x20\x23\xb5\x3d\x77\x7c\x31\xa9\x48\x2b\xf3\xf8\x22\xa1\xda\x28\xea\xb3\xba\xd3\x9a\x85\x99\x1f\xa5\x75\x72\x25\xb4\x7a\xb9\xda\x34\xea\x81\xc5\x77\x35\x15\xd6\xa9\x4f\x98\xb7\xed\x65\x1e\x2f\x89\x4f\x30\x9e\xc9\x1a\x6a\x2a\x84\xb6\x1b\x5b\x53\xc7\xfd\x5d\x37\xbc\x48\xfc\x1a\x79\x34\xe7\x8c\xa5\xa8\xf5\x60\x4f\x45\xae\xb6\x83\xa9\xaf\xc0\x9c\xed\x18\xe1\x13\xf1\xb4\x69\xe2\x77\x76\xa3\x4c\xdb\x4a\x11\x40\x87\xbe\x14\x06\x0e\xe6\x72\xed\xc4\x61\x34\xe8\x13\x67\x77\x7c\xb2\x83\xce\x9b\x65\xf8\x14\x5c\x7e\xa9\x3f\xce\x20\x51\x38\x3b\x53\xad\x51\xbc\x1d\x41\x49\x91\xc6\x51\x13\x14\x6f\x27\x2c\x07\x51\x08\xd6\x1a\x23\x87\xbe\xb2\xc6\x4f\xf7\x61\x67\xd6\x61\x47\x86\xac\x37\x5f\x5b\x97\xa3\xd3\xe8\xfd\x61\xc1\x93\x53\x15\x5e\xca\x70\xec\xf0\x59\x9f\xa6\x31\xee\x3a\xe0\xe0\x28\x95\x82\x8a\x79\xc8\x0f\x50\xe2\x7c\xf4\x7b\x9b\x2f\x40\x7f\x65\x4d\x56\x3b\x87\x26\xdb\xcf\x37\xba\x23\xc2\xb2\x0a\x3b\x36\xd7\xe2\x1b\x43\xe8\xb6\xa0\xe7\x5b\x7c\xa7\x4a\xec\x0e\xd8\xec\xbc\xe1\x89\x39\xfc\xa1\x46\x4f\xcc\xab\x4f\x0b\x6a\xf0\xd1\xba\x47\x65\x36\x2c\x57\x0e\x33\xb2\x6e\x46\x25\xa4\xb8\xb5\xcd\xc1\xc7\x8c\x66\xe9\xdf\x35\xd7\x30\x4d\xe3\xc0\x6c\x90\xc5\xdf\x87\x43\x32\x21\x77\x63\xa7\x33\x3a\xb0\x07\xe6\xac\x3b\x84\x09\xf7\x98\xd5\xee\x66\xff\x8f\x69\x05\x1d\xfe\xb6\xb7\x6b\xdb\xbf\x7e\xfd\xf9\xb7\x3f\x7f\xff\xe9\x92\xc0\x4d\x86\x17\x74\xa3\x3c\x03\xa2\xf3\x89\x49\x78\x96\xee\x70\x72\xda\x56\x74\x6a\xd9\x8f\x27\x05\xfb\xdf\x62\x37\x14\xf4\x20\x7b\x51\x69\x73\x64\xa7\x51\xd4\x34\x71\x38\xc1\xe1\x15\x73\x1a\x0e\x15\xfe\xb5\xf2\xde\x59\xf7\x88\xce\x77\xac\x3f\xf6\xe3\x57\x41\xbc\x69\xe2\xa3\x5c\x7d\xe1\xbe\xbc\x55\x41\x75\xd0\xc8\xae\x84\x47\xc1\x7c\x25\x35\xdc\x29\x2a\x58\x7c\xd0\xe4\x99\x75\x7c\xb6\x8e\x17\x58\x34\x0d\x6a\x8f\x0b\x43\xfc\xf1\xe3\x2f\x4b\x02\x7c\x69\x89\x3a\xd6\xf3\x3d\x3c\xdd\xf7\x6f\xac\xff\x4a\x7a\x01\xf9\x39\x25\x0d\xd2\xf3\xb5\x72\x0b\x93\x95\x39\x12\x28\xed\xe7\xc7\x3b\x59\xfa\xba\x2c\xc1\xed\x53\x4f\x40\x2a\x93\xe2\x38\x5f\xee\xa9\x4a\xbb\x6d\x95\xa2\x5a\x66\x2c\xc5\x62\xf6\x9f\xd5\x11\x52\xa5\xf9\xde\x40\x19\xb2\xbc\x70\xb7\xb9\x12\xeb\x1f\x6e\x8e\xdb\x1f\x5f\x73\x62\x4a\x71\xe3\xe3\x4b\x8a\xee\x6e\x30\x75\xbf\x1b\xdd\xd3\xae\x2c\x9f\xdf\xe8\x9e\xa7\x87\xe1\xf1\x27\x5c\x3b\x99\x43\x9d\x70\x4f\x7b\x8d\xbe\x40\xa4\x17\xd7\xd0\xbe\xcd\x38\xe3\x99\xf7\x9c\xf1\xb5\xb5\xe4\xc9\x41\x15\x95\x40\xe8\x14\xe8\x28\x47\xaf\x36\x26\x2e\x95\x89\x03\x26\x7c\x48\xac\xa4\xe8\x53\x95\xa2\xfb\x9f\xe5\xef\x00\x00\x00\xff\xff\xf2\xb9\x9c\x0d\x6e\x11\x00\x00")
|
|
|
|
|
|
|
|
func unitsListHtmlBytes() ([]byte, error) {
|
|
|
|
return bindataRead(
|
|
|
|
_unitsListHtml,
|
|
|
|
"units-list.html",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
func unitsListHtml() (*asset, error) {
|
|
|
|
bytes, err := unitsListHtmlBytes()
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
info := bindataFileInfo{name: "units-list.html", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
|
|
|
a := &asset{bytes: bytes, info: info}
|
|
|
|
return a, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// 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) {
|
|
|
|
canonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
if f, ok := _bindata[canonicalName]; 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) {
|
|
|
|
canonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
if f, ok := _bindata[canonicalName]; 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){
|
|
|
|
"login.html": loginHtml,
|
|
|
|
"unit-info.html": unitInfoHtml,
|
|
|
|
"unit-request-attempt-info.html": unitRequestAttemptInfoHtml,
|
|
|
|
"unit-request-info.html": unitRequestInfoHtml,
|
|
|
|
"units-list.html": unitsListHtml,
|
|
|
|
}
|
|
|
|
|
|
|
|
// 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("nonexistent") would return an error
|
|
|
|
// AssetDir("") will return []string{"data"}.
|
|
|
|
func AssetDir(name string) ([]string, error) {
|
|
|
|
node := _bintree
|
|
|
|
if len(name) != 0 {
|
|
|
|
canonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
pathList := strings.Split(canonicalName, "/")
|
|
|
|
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{
|
|
|
|
"login.html": &bintree{loginHtml, map[string]*bintree{}},
|
|
|
|
"unit-info.html": &bintree{unitInfoHtml, map[string]*bintree{}},
|
|
|
|
"unit-request-attempt-info.html": &bintree{unitRequestAttemptInfoHtml, map[string]*bintree{}},
|
|
|
|
"unit-request-info.html": &bintree{unitRequestInfoHtml, map[string]*bintree{}},
|
|
|
|
"units-list.html": &bintree{unitsListHtml, map[string]*bintree{}},
|
|
|
|
}}
|
|
|
|
|
|
|
|
// 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 {
|
|
|
|
canonicalName := strings.Replace(name, "\\", "/", -1)
|
|
|
|
return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...)
|
|
|
|
}
|